├── Gemfile
├── Gemfile.lock
├── README.md
├── _config.yml
├── _data
└── lists.yml
├── _includes
├── about.html
├── footer.html
├── head.html
├── header.html
├── js.html
├── modal.html
├── nav.html
├── portfolio.html
└── style
│ ├── bootstrap.min.css
│ └── main.css
├── _layouts
├── default.html
└── style.css
├── _posts
├── .2021-01-01-hkcnews.md
├── .2021-01-01-stand.md
├── 2021-01-01-initium.md
├── 2021-01-01-inmedia.md
├── 2021-01-01-matters.md
├── 2021-01-01-pq.md
└── 2021-01-01-vocus.md
├── css
├── font-awesome
│ ├── css
│ │ ├── font-awesome.css
│ │ └── font-awesome.min.css
│ └── fonts
│ │ ├── FontAwesome.otf
│ │ ├── fontawesome-webfont.eot
│ │ ├── fontawesome-webfont.svg
│ │ ├── fontawesome-webfont.ttf
│ │ └── fontawesome-webfont.woff
└── style.css
├── img
├── portfolio
│ ├── hkcnews.jpg
│ ├── initium.jpg
│ ├── inmedia.jpg
│ ├── matters.jpg
│ ├── pq.jpg
│ ├── stand.jpg
│ └── vocus.jpg
└── profile.png
├── index.html
└── js
├── bootstrap.js
├── bootstrap.min.js
├── cbpAnimatedHeader.js
├── cbpAnimatedHeader.min.js
├── classie.js
├── custom.js
├── jquery-1.11.0.js
└── jquery.easing.min.js
/Gemfile:
--------------------------------------------------------------------------------
1 | source "https://rubygems.org"
2 | # Update gems with `bundle install`. Run Jekyll with `bundle exec`, like:
3 | # bundle exec jekyll serve
4 |
5 | # This will help ensure the proper Jekyll version is running.
6 | gem "jekyll", "~> 4.0.0"
7 |
8 | # This is the default theme for new Jekyll sites. You may change.
9 | gem "minima", "~> 2.5"
10 |
11 | # Windows and JRuby does not include zoneinfo files,
12 | # so bundle the tzinfo-data gem and associated library.
13 | install_if -> { RUBY_PLATFORM =~ %r!mingw|mswin|java! } do
14 | gem "tzinfo"
15 | gem "tzinfo-data"
16 | end
17 |
18 | # Performance-booster for watching directories on Windows
19 | gem "wdm", :install_if => Gem.win_platform?
20 |
--------------------------------------------------------------------------------
/Gemfile.lock:
--------------------------------------------------------------------------------
1 | GEM
2 | remote: https://rubygems.org/
3 | specs:
4 | addressable (2.8.0)
5 | public_suffix (>= 2.0.2, < 5.0)
6 | colorator (1.1.0)
7 | concurrent-ruby (1.1.6)
8 | em-websocket (0.5.1)
9 | eventmachine (>= 0.12.9)
10 | http_parser.rb (~> 0.6.0)
11 | eventmachine (1.2.7)
12 | ffi (1.12.2)
13 | forwardable-extended (2.6.0)
14 | http_parser.rb (0.6.0)
15 | i18n (1.8.2)
16 | concurrent-ruby (~> 1.0)
17 | jekyll (4.0.0)
18 | addressable (~> 2.4)
19 | colorator (~> 1.0)
20 | em-websocket (~> 0.5)
21 | i18n (>= 0.9.5, < 2)
22 | jekyll-sass-converter (~> 2.0)
23 | jekyll-watch (~> 2.0)
24 | kramdown (~> 2.1)
25 | kramdown-parser-gfm (~> 1.0)
26 | liquid (~> 4.0)
27 | mercenary (~> 0.3.3)
28 | pathutil (~> 0.9)
29 | rouge (~> 3.0)
30 | safe_yaml (~> 1.0)
31 | terminal-table (~> 1.8)
32 | jekyll-feed (0.15.1)
33 | jekyll (>= 3.7, < 5.0)
34 | jekyll-sass-converter (2.1.0)
35 | sassc (> 2.0.1, < 3.0)
36 | jekyll-seo-tag (2.6.1)
37 | jekyll (>= 3.3, < 5.0)
38 | jekyll-watch (2.2.1)
39 | listen (~> 3.0)
40 | kramdown (2.3.1)
41 | rexml
42 | kramdown-parser-gfm (1.1.0)
43 | kramdown (~> 2.0)
44 | liquid (4.0.3)
45 | listen (3.2.1)
46 | rb-fsevent (~> 0.10, >= 0.10.3)
47 | rb-inotify (~> 0.9, >= 0.9.10)
48 | mercenary (0.3.6)
49 | minima (2.5.1)
50 | jekyll (>= 3.5, < 5.0)
51 | jekyll-feed (~> 0.9)
52 | jekyll-seo-tag (~> 2.1)
53 | pathutil (0.16.2)
54 | forwardable-extended (~> 2.6)
55 | public_suffix (4.0.6)
56 | rb-fsevent (0.10.3)
57 | rb-inotify (0.10.1)
58 | ffi (~> 1.0)
59 | rexml (3.3.9)
60 | rouge (3.16.0)
61 | safe_yaml (1.0.5)
62 | sassc (2.2.1)
63 | ffi (~> 1.9)
64 | terminal-table (1.8.0)
65 | unicode-display_width (~> 1.1, >= 1.1.1)
66 | tzinfo (2.0.4)
67 | concurrent-ruby (~> 1.0)
68 | tzinfo-data (1.2021.2)
69 | tzinfo (>= 1.0.0)
70 | unicode-display_width (1.6.1)
71 | wdm (0.1.1)
72 |
73 | PLATFORMS
74 | ruby
75 |
76 | DEPENDENCIES
77 | jekyll (~> 4.0.0)
78 | minima (~> 2.5)
79 | tzinfo
80 | tzinfo-data
81 | wdm
82 |
83 | BUNDLED WITH
84 | 2.1.4
85 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # BLOG⓪
2 |
3 | Landing page of the Agora Blog Aggregator. 👉 https://agora0.github.io/post
4 |
5 | ## Blog Sources
6 |
7 | | [muitinⒾ](https://agora0.github.io/post/initium) | [aidemnⒾ](https://agora0.github.io/post/inmedia) | [srettaⓂ](https://agora0.github.io/post/matters) |
8 | | -- | -- | -- |
9 | | [](https://theinitium.com) | [](https://inmediahk.net) | [](https://matters.news) |
10 |
11 | ## How to Contribute
12 |
13 | [Agora Community](https://github.com/agorahub) is an open source driven society.
14 | - Join the Agora - [agorahub/_join](https://github.com/agorahub/_join)
15 | - Start exploring - [agorahub/_meta](https://github.com/agorahub/_meta)
16 | - Manage features - [agorahub/blog0#3](https://github.com/agorahub/blog0/issues/3)
17 |
18 | ## Disclaimer
19 |
20 | The information and opinions within this website are for information purposes only. They are not intended to constitute legal or other professional advice, and should not be relied on or treated as a substitute for specific advice relevant to particular circumstances. We accept no responsibility for any errors, omissions or misleading statements on this website, or for any loss which may arise from reliance on materials contained on this website. Certain parts of this site may link to external Internet sites, and other external Internet sites may link to this website. We are not responsible for the content of any external Internet sites.
21 |
--------------------------------------------------------------------------------
/_config.yml:
--------------------------------------------------------------------------------
1 | # Site settings
2 | title: BLOG⓪
3 | baseurl: "/blog0"
4 | url: "https://agorahub.github.io"
5 | description: "Agora Blog Aggregation"
6 | keywords: "agora, 媒体聚合, 海外中文"
7 | subtitle: "墙裂时光 隙水长流"
8 | meta_author: theagora
9 |
10 | # Color settings (hex-codes without the leading hash-tag)
11 | color:
12 | primary: 7794B9 #FF6900
13 | primary-rgb: "255,105,0"
14 | secondary: 7794B9
15 | secondary-dark: 7794B9 #2F4050
16 |
17 | # Footer settings
18 | footer:
19 | copyright: AGORA COMMUNITY
20 | location: Cyberspace
21 | social: Websphere
22 | credits: Credits
23 |
24 | # Social networks usernames (many more available: google-plus, flickr, dribbble, pinterest, instagram, tumblr, linkedin, etc.)
25 | social:
26 | - title: twitter
27 | url: https://twitter.com/agoradao
28 | - title: reddit
29 | url: https://reddit.com/u/agoradao
30 | - title: slack
31 | url: https://agora-republic.slack.com
32 | - title: github
33 | url: https://github.com/agorahub
34 |
35 | # Postal address (add as many lines as necessary)
36 | address:
37 | - line: github.com/agora0
38 | - line: ⓪pen source ⓵nitiative
39 |
40 | # Credits content
41 | credits: AG⓪RA is open to all
made with heart by theagora
42 |
43 | # Build settings
44 | markdown: kramdown
45 | permalink: pretty
46 |
47 | #for posts
48 | defaults:
49 | - scope:
50 | path: ""
51 | type: "posts"
52 | values:
53 | permalink: ""
54 |
--------------------------------------------------------------------------------
/_data/lists.yml:
--------------------------------------------------------------------------------
1 | 'pq':
2 | - name: 24.Q4
3 | repo: https://github.com/agora0/24q4
4 | site: https://agora0.github.io/24q4/pq
5 | - name: 24.Q3
6 | repo: https://github.com/agora0/24q3
7 | site: https://agora0.github.io/24q3/pq
8 | - name: 24.Q2
9 | repo: https://github.com/agora0/24q2
10 | site: https://agora0.github.io/24q2/pq
11 | - name: 24.Q1
12 | repo: https://github.com/agora0/24q1
13 | site: https://agora0.github.io/24q1/pq
14 | - name: 23.Q4
15 | repo: https://github.com/agora0/23q4
16 | site: https://agora0.github.io/23q4/pq
17 | - name: 23.Q3
18 | repo: https://github.com/agora0/23q3
19 | site: https://agora0.github.io/23q3/pq
20 | - name: 23.Q2
21 | repo: https://github.com/agora0/23q2
22 | site: https://agora0.github.io/23q2/pq
23 | - name: 23.Q1
24 | repo: https://github.com/agora0/23q1
25 | site: https://agora0.github.io/23q1/pq
26 | - name: 22.Q4
27 | repo: https://github.com/agora0/22q4
28 | site: https://agora0.github.io/22q4/pq
29 | - name: 22.Q3
30 | repo: https://github.com/agora0/22q3
31 | site: https://agora0.github.io/22q3/pq
32 | - name: 22.Q2
33 | repo: https://github.com/agora0/22q2
34 | site: https://agora0.github.io/22q2/pq
35 | - name: 22.Q1
36 | repo: https://github.com/agora0/22q1
37 | site: https://agora0.github.io/22q1/pq
38 | - name: 21.Q4
39 | repo: https://github.com/agora0/21q4
40 | site: https://agora0.github.io/21q4/stand
41 | - name: 21.Q3
42 | repo: https://github.com/agora0/21q3
43 | site: https://agora0.github.io/21q3/stand
44 | - name: 21.Q2
45 | repo: https://github.com/agora0/21q2
46 | site: https://agora0.github.io/21q2/stand
47 | - name: 21.Q1
48 | repo: https://github.com/agora0/21q1
49 | site: https://agora0.github.io/21q1/stand
50 |
51 | 'inmedia':
52 | - name: 最新
53 | repo: https://github.com/agora0/post
54 | site: https://agora0.github.io/post/inmedia
55 | - name: 25.Q1
56 | repo: https://github.com/agora0/25q1
57 | site: https://agora0.github.io/25q1/inmedia
58 | - name: 24.Q4
59 | repo: https://github.com/agora0/24q4
60 | site: https://agora0.github.io/24q4/inmedia
61 | - name: 24.Q3
62 | repo: https://github.com/agora0/24q3
63 | site: https://agora0.github.io/24q3/inmedia
64 | - name: 24.Q2
65 | repo: https://github.com/agora0/24q2
66 | site: https://agora0.github.io/24q2/inmedia
67 | - name: 24.Q1
68 | repo: https://github.com/agora0/24q1
69 | site: https://agora0.github.io/24q1/inmedia
70 | - name: 23.Q4
71 | repo: https://github.com/agora0/23q4
72 | site: https://agora0.github.io/23q4/inmedia
73 | - name: 23.Q3
74 | repo: https://github.com/agora0/23q3
75 | site: https://agora0.github.io/23q3/inmedia
76 | - name: 23.Q2
77 | repo: https://github.com/agora0/23q2
78 | site: https://agora0.github.io/23q2/inmedia
79 | - name: 23.Q1
80 | repo: https://github.com/agora0/23q1
81 | site: https://agora0.github.io/23q1/inmedia
82 | - name: 22.Q4
83 | repo: https://github.com/agora0/22q4
84 | site: https://agora0.github.io/22q4/inmedia
85 | - name: 22.Q3
86 | repo: https://github.com/agora0/22q3
87 | site: https://agora0.github.io/22q3/inmedia
88 | - name: 22.Q2
89 | repo: https://github.com/agora0/22q2
90 | site: https://agora0.github.io/22q2/inmedia
91 | - name: 22.Q1
92 | repo: https://github.com/agora0/22q1
93 | site: https://agora0.github.io/22q1/inmedia
94 | - name: 21.Q4
95 | repo: https://github.com/agora0/21q4
96 | site: https://agora0.github.io/21q4/hkcnews
97 | - name: 21.Q3
98 | repo: https://github.com/agora0/21q3
99 | site: https://agora0.github.io/21q3/hkcnews
100 |
101 | 'initium':
102 | - name: 最新
103 | repo: https://github.com/agora0/post
104 | site: https://agora0.github.io/post/initium
105 | - name: 25.Q1
106 | repo: https://github.com/agora0/25q1
107 | site: https://agora0.github.io/25q1/initium
108 | - name: 24.Q4
109 | repo: https://github.com/agora0/24q4
110 | site: https://agora0.github.io/24q4/initium
111 | - name: 24.Q3
112 | repo: https://github.com/agora0/24q3
113 | site: https://agora0.github.io/24q3/initium
114 | - name: 24.Q2
115 | repo: https://github.com/agora0/24q2
116 | site: https://agora0.github.io/24q2/initium
117 | - name: 24.Q1
118 | repo: https://github.com/agora0/24q1
119 | site: https://agora0.github.io/24q1/initium
120 | - name: 23.Q4
121 | repo: https://github.com/agora0/23q4
122 | site: https://agora0.github.io/23q4/initium
123 | - name: 23.Q3
124 | repo: https://github.com/agora0/23q3
125 | site: https://agora0.github.io/23q3/initium
126 | - name: 23.Q2
127 | repo: https://github.com/agora0/23q2
128 | site: https://agora0.github.io/23q2/initium
129 | - name: 23.Q1
130 | repo: https://github.com/agora0/23q1
131 | site: https://agora0.github.io/23q1/initium
132 | - name: 22.Q4
133 | repo: https://github.com/agora0/22q4
134 | site: https://agora0.github.io/22q4/initium
135 | - name: 22.Q3
136 | repo: https://github.com/agora0/22q3
137 | site: https://agora0.github.io/22q3/initium
138 | - name: 22.Q2
139 | repo: https://github.com/agora0/22q2
140 | site: https://agora0.github.io/22q2/initium
141 | - name: 22.Q1
142 | repo: https://github.com/agora0/22q1
143 | site: https://agora0.github.io/22q1/initium
144 | - name: 21.Q4
145 | repo: https://github.com/agora0/21q4
146 | site: https://agora0.github.io/21q4/initium
147 | - name: 21.Q3
148 | repo: https://github.com/agora0/21q3
149 | site: https://agora0.github.io/21q3/initium
150 | - name: 21.Q2
151 | repo: https://github.com/agora0/21q2
152 | site: https://agora0.github.io/21q2/initium
153 | - name: 21.Q1
154 | repo: https://github.com/agora0/21q1
155 | site: https://agora0.github.io/21q1/initium
156 | - name: 20.Q4
157 | repo: https://github.com/agora0/20q4
158 | site: https://agora0.github.io/20q4/initium
159 | - name: 20.Q3
160 | repo: https://github.com/agora0/20q3
161 | site: https://agora0.github.io/20q3/initium
162 |
163 | 'matters':
164 | - name: 最新
165 | repo: https://github.com/agora0/post
166 | site: https://agora0.github.io/post/matters
167 | - name: 25.Q1
168 | repo: https://github.com/agora0/25q1
169 | site: https://agora0.github.io/25q1/matters
170 | - name: 24.Q4
171 | repo: https://github.com/agora0/24q4
172 | site: https://agora0.github.io/24q4/matters
173 | - name: 24.Q3
174 | repo: https://github.com/agora0/24q3
175 | site: https://agora0.github.io/24q3/matters
176 | - name: 24.Q2
177 | repo: https://github.com/agora0/24q2
178 | site: https://agora0.github.io/24q2/matters
179 | - name: 24.Q1
180 | repo: https://github.com/agora0/24q1
181 | site: https://agora0.github.io/24q1/matters
182 | - name: 23.Q4
183 | repo: https://github.com/agora0/23q4
184 | site: https://agora0.github.io/23q4/matters
185 | - name: 23.Q3
186 | repo: https://github.com/agora0/23q3
187 | site: https://agora0.github.io/23q3/matters
188 | - name: 23.Q2
189 | repo: https://github.com/agora0/23q2
190 | site: https://agora0.github.io/23q2/matters
191 | - name: 23.Q1
192 | repo: https://github.com/agora0/23q1
193 | site: https://agora0.github.io/23q1/matters
194 | - name: 22.Q4
195 | repo: https://github.com/agora0/22q4
196 | site: https://agora0.github.io/22q4/matters
197 | - name: 22.Q3
198 | repo: https://github.com/agora0/22q3
199 | site: https://agora0.github.io/22q3/matters
200 | - name: 22.Q2
201 | repo: https://github.com/agora0/22q2
202 | site: https://agora0.github.io/22q2/matters
203 | - name: 22.Q1
204 | repo: https://github.com/agora0/22q1
205 | site: https://agora0.github.io/22q1/matters
206 | - name: 21.Q4
207 | repo: https://github.com/agora0/21q4
208 | site: https://agora0.github.io/21q4/matters
209 | - name: 21.Q3
210 | repo: https://github.com/agora0/21q3
211 | site: https://agora0.github.io/21q3/matters
212 | - name: 21.Q2
213 | repo: https://github.com/agora0/21q2
214 | site: https://agora0.github.io/21q2/matters
215 | - name: 21.Q1
216 | repo: https://github.com/agora0/21q1
217 | site: https://agora0.github.io/21q1/matters
218 | - name: 20.Q4
219 | repo: https://github.com/agora0/20q4
220 | site: https://agora0.github.io/20q4/matters
221 | - name: 20.Q3
222 | repo: https://github.com/agora0/20q3
223 | site: https://agora0.github.io/20q3/matters
224 |
225 | 'vocus':
226 | - name: 24.Q3
227 | repo: https://github.com/agora0/24q3
228 | site: https://agora0.github.io/24q3/vocus
229 | - name: 24.Q2
230 | repo: https://github.com/agora0/24q2
231 | site: https://agora0.github.io/24q2/vocus
232 | - name: 24.Q1
233 | repo: https://github.com/agora0/24q1
234 | site: https://agora0.github.io/24q1/vocus
235 | - name: 23.Q4
236 | repo: https://github.com/agora0/23q4
237 | site: https://agora0.github.io/23q4/vocus
238 | - name: 23.Q3
239 | repo: https://github.com/agora0/23q3
240 | site: https://agora0.github.io/23q3/vocus
241 | - name: 23.Q2
242 | repo: https://github.com/agora0/23q2
243 | site: https://agora0.github.io/23q2/vocus
244 | - name: 23.Q1
245 | repo: https://github.com/agora0/23q1
246 | site: https://agora0.github.io/23q1/vocus
247 | - name: 22.Q4
248 | repo: https://github.com/agora0/22q4
249 | site: https://agora0.github.io/22q4/vocus
250 | - name: 22.Q3
251 | repo: https://github.com/agora0/22q3
252 | site: https://agora0.github.io/22q3/vocus
253 | - name: 22.Q2
254 | repo: https://github.com/agora0/22q2
255 | site: https://agora0.github.io/22q2/vocus
256 | - name: 22.Q1
257 | repo: https://github.com/agora0/22q1
258 | site: https://agora0.github.io/22q1/vocus
259 | - name: 21.Q4
260 | repo: https://github.com/agora0/21q4
261 | site: https://agora0.github.io/21q4/vocus
262 | - name: 21.Q3
263 | repo: https://github.com/agora0/21q3
264 | site: https://agora0.github.io/21q3/vocus
265 | - name: 21.Q2
266 | repo: https://github.com/agora0/21q2
267 | site: https://agora0.github.io/21q2/vocus
268 | - name: 21.Q1
269 | repo: https://github.com/agora0/21q1
270 | site: https://agora0.github.io/21q1/vocus
271 | - name: 20.Q4
272 | repo: https://github.com/agora0/20q4
273 | site: https://agora0.github.io/20q4/vocus
274 | - name: 20.Q3
275 | repo: https://github.com/agora0/20q3
276 | site: https://agora0.github.io/20q3/vocus
277 |
--------------------------------------------------------------------------------
/_includes/about.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 |
12 |
「Agora零區」致力於爲原子化個體和散沙性社會探索一組方法論和工作框架。憑藉網絡技術,「零區」建基於一套可擴展的虛擬社區服務框架,包含賦權工具、維權輔助、分佈組織、網絡拓樸、信息聚合、匿名通信等,惟並非提供解決方案。
13 |
14 |
15 |
無論性別、身份、階級、財富、年齡、學識、職業、膚色、語言、性格、立場、信仰、性向、种族、能力…… 你/妳我她/他們都會在「零區」找到意義。
16 |
17 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/_includes/footer.html:
--------------------------------------------------------------------------------
1 |
2 |
41 |
42 |
43 |
48 |
--------------------------------------------------------------------------------
/_includes/head.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | {{ site.title }}
5 |
6 |
7 |
8 | {% if site.meta_author %}{% endif %}
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
26 |
27 |
--------------------------------------------------------------------------------
/_includes/header.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |

7 |
8 | {{ site.title }}
9 |
10 | {{ site.subtitle }}
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/_includes/js.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/_includes/modal.html:
--------------------------------------------------------------------------------
1 |
2 | {% for post in site.posts %}
3 |
4 |
5 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |

18 | {% if post.list %}
19 |
20 | {% for item in site.data.lists[post.list] %}
21 | {{ item.name }} |
22 | {% endfor %}
23 |
24 | {% endif %}
25 | {% if post.description %}
26 |
{{ post.description }}
27 | {% endif %}
28 | {% if post.repo %}
29 |
35 | {% endif %}
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 | {% endfor %}
--------------------------------------------------------------------------------
/_includes/nav.html:
--------------------------------------------------------------------------------
1 |
2 |
33 |
--------------------------------------------------------------------------------
/_includes/portfolio.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 | {% for post in site.posts %}
12 |
22 | {% endfor %}
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/_includes/style/main.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Start Bootstrap - Freelancer Bootstrap Theme (http://startbootstrap.com)
3 | * Code licensed under the Apache License v2.0.
4 | * For details, see http://www.apache.org/licenses/LICENSE-2.0.
5 | */
6 |
7 | body {
8 | overflow-x: hidden;
9 | }
10 |
11 | p {
12 | font-size: 20px;
13 | }
14 |
15 | p.small {
16 | font-size: 16px;
17 | }
18 |
19 | a,
20 | a:hover,
21 | a:focus,
22 | a:active,
23 | a.active {
24 | outline: 0;
25 | color: #{{ site.color.primary }};
26 | }
27 |
28 | h1,
29 | h2,
30 | h3,
31 | h4,
32 | h5,
33 | h6 {
34 | text-transform: uppercase;
35 | font-family: Montserrat,"Helvetica Neue",Helvetica,Arial,sans-serif;
36 | font-weight: 700;
37 | }
38 |
39 | hr.star-light,
40 | hr.star-primary {
41 | margin: 25px auto 30px;
42 | padding: 0;
43 | max-width: 250px;
44 | border: 0;
45 | border-top: solid 5px;
46 | text-align: center;
47 | overflow: visible;
48 | }
49 |
50 | hr.star-light:after,
51 | hr.star-primary:after {
52 | content: "\f192";
53 | display: inline-block;
54 | position: relative;
55 | top: -.8em;
56 | padding: 0 .25em;
57 | font-family: FontAwesome;
58 | font-size: 2em;
59 | }
60 |
61 | hr.star-light {
62 | border-color: #fff;
63 | }
64 |
65 | hr.star-light:after {
66 | color: #fff;
67 | background-color: #{{ site.color.primary }};
68 | }
69 |
70 | hr.star-primary {
71 | border-color: #{{ site.color.secondary }};
72 | }
73 |
74 | hr.star-primary:after {
75 | color: #{{ site.color.secondary }};
76 | background-color: #fff;
77 | }
78 |
79 | .img-centered {
80 | margin: 0 auto;
81 | }
82 |
83 | header {
84 | text-align: center;
85 | color: #fff;
86 | background: #{{ site.color.primary }};
87 | }
88 |
89 | header .container {
90 | padding-top: 100px;
91 | padding-bottom: 50px;
92 | }
93 |
94 | header img {
95 | display: block;
96 | margin: 0 auto 20px;
97 | }
98 |
99 | header .intro-text .title {
100 | display: block;
101 | text-transform: uppercase;
102 | font-family: Montserrat,"Helvetica Neue",Helvetica,Arial,sans-serif;
103 | font-size: 2em;
104 | font-weight: 700;
105 | }
106 |
107 | header .intro-text .subtitle {
108 | font-size: 1.25em;
109 | font-weight: 300;
110 | }
111 |
112 | @media(min-width:768px) {
113 | header .container {
114 | padding-top: 200px;
115 | padding-bottom: 100px;
116 | }
117 |
118 | header .intro-text .title {
119 | font-size: 4.75em;
120 | }
121 |
122 | header .intro-text .subtitle {
123 | font-size: 1.75em;
124 | }
125 | }
126 |
127 | @media(min-width:768px) {
128 | .navbar-fixed-top {
129 | padding: 25px 0;
130 | -webkit-transition: padding .3s;
131 | -moz-transition: padding .3s;
132 | transition: padding .3s;
133 | }
134 |
135 | .navbar-fixed-top .navbar-brand {
136 | font-size: 2em;
137 | -webkit-transition: all .3s;
138 | -moz-transition: all .3s;
139 | transition: all .3s;
140 | }
141 |
142 | .navbar-fixed-top.navbar-shrink {
143 | padding: 10px 0;
144 | }
145 |
146 | .navbar-fixed-top.navbar-shrink .navbar-brand {
147 | font-size: 1.5em;
148 | }
149 | }
150 |
151 | .navbar {
152 | text-transform: uppercase;
153 | font-family: Montserrat,"Helvetica Neue",Helvetica,Arial,sans-serif;
154 | font-weight: 700;
155 | }
156 |
157 | .navbar a:focus {
158 | outline: 0;
159 | }
160 |
161 | .navbar .navbar-nav {
162 | letter-spacing: 1px;
163 | }
164 |
165 | .navbar .navbar-nav li a:focus {
166 | outline: 0;
167 | }
168 |
169 | .navbar-default,
170 | .navbar-inverse {
171 | border: 0;
172 | }
173 |
174 | section {
175 | padding: 100px 0;
176 | }
177 |
178 | section h2 {
179 | margin: 0;
180 | font-size: 3em;
181 | }
182 |
183 | section.success {
184 | color: #fff;
185 | background: #{{ site.color.primary }};
186 | }
187 |
188 | @media(max-width:767px) {
189 | section {
190 | padding: 75px 0;
191 | }
192 |
193 | section.first {
194 | padding-top: 75px;
195 | }
196 | }
197 |
198 | #portfolio .portfolio-item {
199 | right: 0;
200 | margin: 0 0 15px;
201 | }
202 |
203 | #portfolio .portfolio-item .portfolio-link {
204 | display: block;
205 | position: relative;
206 | margin: 0 auto;
207 | max-width: 400px;
208 | }
209 |
210 | #portfolio .portfolio-item .portfolio-link .caption {
211 | position: absolute;
212 | width: 100%;
213 | height: 100%;
214 | opacity: 0;
215 | background: rgba({{ site.color.primary-rgb }},.0);
216 | -webkit-transition: all ease .5s;
217 | -moz-transition: all ease .5s;
218 | transition: all ease .5s;
219 | }
220 |
221 | #portfolio .portfolio-item .portfolio-link .caption:hover {
222 | opacity: 1;
223 | }
224 |
225 | #portfolio .portfolio-item .portfolio-link .caption .caption-content {
226 | position: absolute;
227 | top: 50%;
228 | width: 100%;
229 | height: 20px;
230 | margin-top: -12px;
231 | text-align: center;
232 | font-size: 20px;
233 | color: #fff;
234 | }
235 |
236 | #portfolio .portfolio-item .portfolio-link .caption .caption-content i {
237 | margin-top: -12px;
238 | }
239 |
240 | #portfolio .portfolio-item .portfolio-link .caption .caption-content h3,
241 | #portfolio .portfolio-item .portfolio-link .caption .caption-content h4 {
242 | margin: 0;
243 | }
244 |
245 | #portfolio * {
246 | z-index: 2;
247 | }
248 |
249 | @media(min-width:767px) {
250 | #portfolio .portfolio-item {
251 | margin: 0 0 30px;
252 | }
253 | }
254 |
255 | /* Flexbox Portfolio Grid */
256 | @media (min-width: 640px) {
257 | .portfolio-flex-grid .portfolio-flex-row {
258 | display: flex;
259 | flex-flow: row wrap;
260 | align-items: stretch;
261 | justify-content: space-between;
262 | }
263 | .portfolio-flex-grid .portfolio-flex-row .portfolio-flex-item {
264 | flex: 1 0 49%;
265 | max-width: 49%;
266 | }
267 | }
268 | @media (min-width: 960px) {
269 | .portfolio-flex-grid .portfolio-flex-row .portfolio-flex-item {
270 | flex: 1 0 32%;
271 | max-width: 32%;
272 | }
273 | }
274 | /* A large grid might need four columns on widescreen layouts */
275 | /* @media (min-width: 1380px) {
276 | .portfolio-flex-grid .portfolio-flex-row .portfolio-flex-item {
277 | flex: 1 0 23.5%;
278 | max-width: 23.5%;
279 | }
280 | } */
281 |
282 | .btn-outline {
283 | margin-top: 15px;
284 | border: solid 2px #fff;
285 | font-size: 20px;
286 | color: #fff;
287 | background: 0 0;
288 | transition: all .3s ease-in-out;
289 | }
290 |
291 | .btn-outline:hover,
292 | .btn-outline:focus,
293 | .btn-outline:active,
294 | .btn-outline.active {
295 | border: solid 2px #fff;
296 | color: #{{ site.color.primary }};
297 | background: #fff;
298 | }
299 |
300 | .floating-label-form-group {
301 | position: relative;
302 | margin-bottom: 0;
303 | padding-bottom: .5em;
304 | border-bottom: 1px solid #eee;
305 | }
306 |
307 | .floating-label-form-group input,
308 | .floating-label-form-group textarea {
309 | z-index: 1;
310 | position: relative;
311 | padding-right: 0;
312 | padding-left: 0;
313 | border: 0;
314 | border-radius: 0;
315 | font-size: 1.5em;
316 | background: 0 0;
317 | box-shadow: none!important;
318 | resize: none;
319 | }
320 |
321 | .floating-label-form-group label {
322 | display: block;
323 | z-index: 0;
324 | position: relative;
325 | top: 2em;
326 | margin: 0;
327 | font-size: .85em;
328 | line-height: 1.764705882em;
329 | vertical-align: middle;
330 | vertical-align: baseline;
331 | opacity: 0;
332 | -webkit-transition: top .3s ease,opacity .3s ease;
333 | -moz-transition: top .3s ease,opacity .3s ease;
334 | -ms-transition: top .3s ease,opacity .3s ease;
335 | transition: top .3s ease,opacity .3s ease;
336 | }
337 |
338 | .floating-label-form-group::not(:first-child) {
339 | padding-left: 14px;
340 | border-left: 1px solid #eee;
341 | }
342 |
343 | .floating-label-form-group-with-value label {
344 | top: 0;
345 | opacity: 1;
346 | }
347 |
348 | .floating-label-form-group-with-focus label {
349 | color: #{{ site.color.primary }};
350 | }
351 |
352 | form .row:first-child .floating-label-form-group {
353 | border-top: 1px solid #eee;
354 | }
355 |
356 | footer {
357 | color: #fff;
358 | }
359 |
360 | footer h3 {
361 | margin-bottom: 30px;
362 | }
363 |
364 | footer .footer-above {
365 | padding-top: 50px;
366 | background-color: #{{ site.color.secondary }};
367 | }
368 |
369 | footer .footer-col {
370 | margin-bottom: 50px;
371 | }
372 |
373 | footer .footer-below {
374 | padding: 25px 0;
375 | background-color: #{{ site.color.secondary-dark }};
376 | }
377 |
378 | .btn-social {
379 | display: inline-block;
380 | width: 50px;
381 | height: 50px;
382 | border: 2px solid #fff;
383 | border-radius: 100%;
384 | text-align: center;
385 | font-size: 20px;
386 | line-height: 45px;
387 | }
388 |
389 | .btn:focus,
390 | .btn:active,
391 | .btn.active {
392 | outline: 0;
393 | }
394 |
395 | .scroll-top {
396 | z-index: 1049;
397 | position: fixed;
398 | right: 2%;
399 | bottom: 2%;
400 | width: 50px;
401 | height: 50px;
402 | }
403 |
404 | .scroll-top .btn {
405 | width: 50px;
406 | height: 50px;
407 | border-radius: 100%;
408 | font-size: 20px;
409 | line-height: 28px;
410 | }
411 |
412 | .scroll-top .btn:focus {
413 | outline: 0;
414 | }
415 |
416 | .portfolio-modal .modal-content {
417 | padding: 75px 0;
418 | min-height: 100%;
419 | border: 0;
420 | border-radius: 0;
421 | text-align: center;
422 | background-clip: border-box;
423 | -webkit-box-shadow: none;
424 | box-shadow: none;
425 | }
426 |
427 | .portfolio-modal .modal-content h2 {
428 | margin: 0;
429 | font-size: 3em;
430 | }
431 |
432 | .portfolio-modal .modal-content img {
433 | margin-bottom: 30px;
434 | }
435 |
436 | .portfolio-modal .modal-content .item-details {
437 | margin: 30px 0;
438 | }
439 |
440 | .portfolio-modal .close-modal {
441 | position: absolute;
442 | top: 25px;
443 | right: 25px;
444 | width: 50px;
445 | height: 50px;
446 | background-color: transparent;
447 | cursor: pointer;
448 | }
449 |
450 | .portfolio-modal .close-modal:hover {
451 | opacity: .3;
452 | }
453 |
454 | .portfolio-modal .close-modal .lr {
455 | z-index: 1051;
456 | width: 1px;
457 | height: 50px;
458 | margin-left: 35px;
459 | background-color: #{{ site.color.secondary }};
460 | -webkit-transform: rotate(45deg);
461 | -ms-transform: rotate(45deg);
462 | transform: rotate(45deg);
463 | }
464 |
465 | .portfolio-modal .close-modal .lr .rl {
466 | z-index: 1052;
467 | width: 1px;
468 | height: 50px;
469 | background-color: #{{ site.color.secondary }};
470 | -webkit-transform: rotate(90deg);
471 | -ms-transform: rotate(90deg);
472 | transform: rotate(90deg);
473 | }
474 |
475 | .navbar-nav>.active>a {
476 | background-color: #{{ site.color.secondary-dark }} !important;
477 | }
478 |
479 | /* Fix modal mouse wheel issues */
480 | /* https://github.com/twbs/bootstrap/issues/16297 */
481 | .modal.fade.in {
482 | transform: translateZ(0);
483 | -webkit-transform: translateZ(0);
484 | }
485 |
--------------------------------------------------------------------------------
/_layouts/default.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | {% include head.html %}
4 |
5 | {% include nav.html %}
6 | {% include header.html %}
7 | {% include portfolio.html %}
8 | {% include about.html %}
9 | {% include footer.html %}
10 | {% include modal.html %}
11 | {% include js.html %}
12 |
13 |
14 |
--------------------------------------------------------------------------------
/_layouts/style.css:
--------------------------------------------------------------------------------
1 | {% include style/bootstrap.min.css %}
2 | {% include style/main.css %}
--------------------------------------------------------------------------------
/_posts/.2021-01-01-hkcnews.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | modal-id: hkcnews
4 | title: 眾新聞 #swenⒸ
5 | date: 2021-01-01
6 | img: hkcnews.jpg
7 | alt: Read HKCNEWS on demand
8 | list: hkcnews
9 | repo: agorahub/blog0
10 | description:
眾新聞,2017年1月成立的香港泛民主派網媒。透過眾籌、訂費及捐款營運。2021年1月成立眾新聞中國組。2022年1月初宣佈停運。
眾新聞告別 感謝讀者
今天是2022年1月2日。成立5年的眾新聞,要跟大家告別。
還記得2017年的元旦,眾新聞成立。在記者會上,多名傳媒「老鬼」表示,對本港新聞自由狀況深感憂慮,希望眾新聞可以傳承專業新聞精神,回歸新聞初心,為公眾利益、為公眾服務,「希望我們的一小步,可以鼓勵業界行一小步,各人的一小步可以形成保護新聞自由的一大步。」
然後,眾新聞在資源極度緊絀的情況下,每天嘗試踏出一小步,慢慢地行出一條小路:獨家新聞、數據新聞、人物專訪、調查報道、深度評論、法庭新聞、中國新聞、眾聲集……縱然我們人力有限,新聞不夠多、不夠快,但我們整個小團隊,老鬼和後生仔都一條心,努力在新聞報道上求真、求深。
慢慢地,我們由十人,變成數十人的團隊;由起初街頭人們一句句的「眾新聞?唔識喎」,到今天聽到人們說:「眾新聞?我有睇。」
5年了,多謝大家。
2017年1月1日,眾新聞發布的首篇文章寫道:
「眾新聞在2017這個特別的元旦誕生,因為,我哋想喺以後嘅日子,不論太陽高掛或是風吹雨打,都陪住你唱番呢句:『同熱愛這片土地,大家刻骨銘記,愁或喜,生與死,也是香港地。』」
我們一直熱愛這片土地,但無奈,當下我們面對的不單是風吹雨打,而是龍捲風吹襲,巨浪滔天。
我們從來沒有忘記初心,但可惜,過去兩年社會的遽變,傳媒生存環境惡化,令我們無法再毫無擔憂地,達成我們的理念。
身在風眼,我們這隻小艇,在風高浪急的當下,情況嚴峻。在危機中,我們必須先確保船上的所有人,可以平平安安。
我們,懷著沉重和萬般不捨的心情宣布:
眾新聞將於2022年1月4日(周二)起,停止營運,網站不再更新,一段時間後將會關閉。
衷心感謝訂戶和讀者的支持,你們的厚愛,我們會銘記於心。
過去5年走過的路,會是我們珍重的回憶。
眾新聞團隊
11 | ---
12 |
--------------------------------------------------------------------------------
/_posts/.2021-01-01-stand.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | modal-id: stand
4 | title: 立場新聞 #dnatⓈ
5 | date: 2021-01-01
6 | img: stand.jpg
7 | alt: Read STAND on demand
8 | list: stand
9 | repo: agorahub/blog0
10 | description:
立場新聞,2014年12月成立的非牟利新聞網站。立足香港主場,編採獨立自主,致力守護香港核心價值。2021年12月底宣佈停運。
立場新聞停止運作公告
警方今早(29 日)拘捕本公司多名高層及前高層人員、帶走多人協助調查,並在立場新聞辦公室檢走多部電腦及部分文件,立場新聞已為涉事人員提供協助。
因應情況,立場新聞即時停止運作,包括網站及所有社交媒體立即停止更新,並將於日內移除。署任總編輯林紹桐已請辭,立場新聞所有員工已即時遣散。
立場新聞前身為主場新聞,於 2014 年 12 月成立、以不牟利原則營運,立足香港主場,《立場》編採方針獨立自主,致力守護民主、人權、自由、法治與公義等香港核心價值,至 2021 年 12 月 29 日停運。
感謝讀者一直支持。
立場新聞
2021.12.29
11 | ---
12 |
--------------------------------------------------------------------------------
/_posts/2021-01-01-initium.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | modal-id: initium
4 | title: 端传媒 #muitinⒾ
5 | date: 2021-01-01
6 | img: initium.jpg
7 | alt: Read INITIUM on demand
8 | list: initium
9 | repo: agorahub/blog0
10 | description:
端传媒,2015年8月上线,以原创调查报导和数据新闻为特色,深度解析大中华地区及国际事务。2021年8月,总部由香港迁往新加坡。
11 | ---
12 |
--------------------------------------------------------------------------------
/_posts/2021-01-01-inmedia.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | modal-id: inmedia
4 | title: 獨立媒體 #aidemnⒾ
5 | date: 2021-01-01
6 | img: inmedia.jpg
7 | alt: Read INMEDIA on demand
8 | list: inmedia
9 | repo: agorahub/blog0
10 | description:
獨立媒體,2004年創立的香港網媒,主要內容為時事評論,涉及不同社會政治及文化議題。2020年12月10日前稱香港獨立媒體。
11 | ---
12 |
13 |
--------------------------------------------------------------------------------
/_posts/2021-01-01-matters.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | modal-id: matters
4 | title: 馬特市 #srettaⓂ
5 | date: 2021-01-01
6 | img: matters.jpg
7 | alt: Read MATTERS on demand
8 | list: matters
9 | repo: agorahub/blog0
10 | description:
馬特市,以分佈式網絡為基礎、加密貨幣驅動的創作和公共討論平台。圍繞公共議題、知識生產,重構內容價值生態,保護創作版權。
11 | ---
12 |
--------------------------------------------------------------------------------
/_posts/2021-01-01-pq.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | modal-id: pq
4 | title: 報呱 #qⓅ
5 | date: 2021-01-01
6 | img: pq.jpg
7 | alt: Read PQ on demand
8 | list: pq
9 | repo: agorahub/blog0
10 | description:
報呱,成立於2019年的台灣網媒。發佈新聞及Podcast節目,主旨反制假新聞、輿論風向操作,提供脈絡導航、論點分析。
11 | ---
12 |
13 |
--------------------------------------------------------------------------------
/_posts/2021-01-01-vocus.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | modal-id: vocus
4 | title: 方格子 #sucoⓋ
5 | date: 2021-01-01
6 | img: vocus.jpg
7 | alt: Read VOCUS on demand
8 | list: vocus
9 | repo: agorahub/blog0
10 | description:
方格子,新型態創作與交流平台,堅持全無廣告的乾淨閱讀頁面、盡力教育讀者為內容付費的習慣、並創造作品的多元變現方式。
11 | ---
12 |
--------------------------------------------------------------------------------
/css/font-awesome/css/font-awesome.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Font Awesome 4.1.0 by @davegandy - http://fontawesome.io - @fontawesome
3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
4 | */
5 | /* FONT PATH
6 | * -------------------------- */
7 | @font-face {
8 | font-family: 'FontAwesome';
9 | src: url('../fonts/fontawesome-webfont.eot?v=4.1.0');
10 | src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.1.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff?v=4.1.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.1.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.1.0#fontawesomeregular') format('svg');
11 | font-weight: normal;
12 | font-style: normal;
13 | }
14 | .fa {
15 | display: inline-block;
16 | font-family: FontAwesome;
17 | font-style: normal;
18 | font-weight: normal;
19 | line-height: 1;
20 | -webkit-font-smoothing: antialiased;
21 | -moz-osx-font-smoothing: grayscale;
22 | }
23 | /* makes the font 33% larger relative to the icon container */
24 | .fa-lg {
25 | font-size: 1.33333333em;
26 | line-height: 0.75em;
27 | vertical-align: -15%;
28 | }
29 | .fa-2x {
30 | font-size: 2em;
31 | }
32 | .fa-3x {
33 | font-size: 3em;
34 | }
35 | .fa-4x {
36 | font-size: 4em;
37 | }
38 | .fa-5x {
39 | font-size: 5em;
40 | }
41 | .fa-fw {
42 | width: 1.28571429em;
43 | text-align: center;
44 | }
45 | .fa-ul {
46 | padding-left: 0;
47 | margin-left: 2.14285714em;
48 | list-style-type: none;
49 | }
50 | .fa-ul > li {
51 | position: relative;
52 | }
53 | .fa-li {
54 | position: absolute;
55 | left: -2.14285714em;
56 | width: 2.14285714em;
57 | top: 0.14285714em;
58 | text-align: center;
59 | }
60 | .fa-li.fa-lg {
61 | left: -1.85714286em;
62 | }
63 | .fa-border {
64 | padding: .2em .25em .15em;
65 | border: solid 0.08em #eeeeee;
66 | border-radius: .1em;
67 | }
68 | .pull-right {
69 | float: right;
70 | }
71 | .pull-left {
72 | float: left;
73 | }
74 | .fa.pull-left {
75 | margin-right: .3em;
76 | }
77 | .fa.pull-right {
78 | margin-left: .3em;
79 | }
80 | .fa-spin {
81 | -webkit-animation: spin 2s infinite linear;
82 | -moz-animation: spin 2s infinite linear;
83 | -o-animation: spin 2s infinite linear;
84 | animation: spin 2s infinite linear;
85 | }
86 | @-moz-keyframes spin {
87 | 0% {
88 | -moz-transform: rotate(0deg);
89 | }
90 | 100% {
91 | -moz-transform: rotate(359deg);
92 | }
93 | }
94 | @-webkit-keyframes spin {
95 | 0% {
96 | -webkit-transform: rotate(0deg);
97 | }
98 | 100% {
99 | -webkit-transform: rotate(359deg);
100 | }
101 | }
102 | @-o-keyframes spin {
103 | 0% {
104 | -o-transform: rotate(0deg);
105 | }
106 | 100% {
107 | -o-transform: rotate(359deg);
108 | }
109 | }
110 | @keyframes spin {
111 | 0% {
112 | -webkit-transform: rotate(0deg);
113 | transform: rotate(0deg);
114 | }
115 | 100% {
116 | -webkit-transform: rotate(359deg);
117 | transform: rotate(359deg);
118 | }
119 | }
120 | .fa-rotate-90 {
121 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);
122 | -webkit-transform: rotate(90deg);
123 | -moz-transform: rotate(90deg);
124 | -ms-transform: rotate(90deg);
125 | -o-transform: rotate(90deg);
126 | transform: rotate(90deg);
127 | }
128 | .fa-rotate-180 {
129 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
130 | -webkit-transform: rotate(180deg);
131 | -moz-transform: rotate(180deg);
132 | -ms-transform: rotate(180deg);
133 | -o-transform: rotate(180deg);
134 | transform: rotate(180deg);
135 | }
136 | .fa-rotate-270 {
137 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
138 | -webkit-transform: rotate(270deg);
139 | -moz-transform: rotate(270deg);
140 | -ms-transform: rotate(270deg);
141 | -o-transform: rotate(270deg);
142 | transform: rotate(270deg);
143 | }
144 | .fa-flip-horizontal {
145 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);
146 | -webkit-transform: scale(-1, 1);
147 | -moz-transform: scale(-1, 1);
148 | -ms-transform: scale(-1, 1);
149 | -o-transform: scale(-1, 1);
150 | transform: scale(-1, 1);
151 | }
152 | .fa-flip-vertical {
153 | filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);
154 | -webkit-transform: scale(1, -1);
155 | -moz-transform: scale(1, -1);
156 | -ms-transform: scale(1, -1);
157 | -o-transform: scale(1, -1);
158 | transform: scale(1, -1);
159 | }
160 | .fa-stack {
161 | position: relative;
162 | display: inline-block;
163 | width: 2em;
164 | height: 2em;
165 | line-height: 2em;
166 | vertical-align: middle;
167 | }
168 | .fa-stack-1x,
169 | .fa-stack-2x {
170 | position: absolute;
171 | left: 0;
172 | width: 100%;
173 | text-align: center;
174 | }
175 | .fa-stack-1x {
176 | line-height: inherit;
177 | }
178 | .fa-stack-2x {
179 | font-size: 2em;
180 | }
181 | .fa-inverse {
182 | color: #ffffff;
183 | }
184 | /* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
185 | readers do not read off random characters that represent icons */
186 | .fa-glass:before {
187 | content: "\f000";
188 | }
189 | .fa-music:before {
190 | content: "\f001";
191 | }
192 | .fa-search:before {
193 | content: "\f002";
194 | }
195 | .fa-envelope-o:before {
196 | content: "\f003";
197 | }
198 | .fa-heart:before {
199 | content: "\f004";
200 | }
201 | .fa-star:before {
202 | content: "\f005";
203 | }
204 | .fa-star-o:before {
205 | content: "\f006";
206 | }
207 | .fa-user:before {
208 | content: "\f007";
209 | }
210 | .fa-film:before {
211 | content: "\f008";
212 | }
213 | .fa-th-large:before {
214 | content: "\f009";
215 | }
216 | .fa-th:before {
217 | content: "\f00a";
218 | }
219 | .fa-th-list:before {
220 | content: "\f00b";
221 | }
222 | .fa-check:before {
223 | content: "\f00c";
224 | }
225 | .fa-times:before {
226 | content: "\f00d";
227 | }
228 | .fa-search-plus:before {
229 | content: "\f00e";
230 | }
231 | .fa-search-minus:before {
232 | content: "\f010";
233 | }
234 | .fa-power-off:before {
235 | content: "\f011";
236 | }
237 | .fa-signal:before {
238 | content: "\f012";
239 | }
240 | .fa-gear:before,
241 | .fa-cog:before {
242 | content: "\f013";
243 | }
244 | .fa-trash-o:before {
245 | content: "\f014";
246 | }
247 | .fa-home:before {
248 | content: "\f015";
249 | }
250 | .fa-file-o:before {
251 | content: "\f016";
252 | }
253 | .fa-clock-o:before {
254 | content: "\f017";
255 | }
256 | .fa-road:before {
257 | content: "\f018";
258 | }
259 | .fa-download:before {
260 | content: "\f019";
261 | }
262 | .fa-arrow-circle-o-down:before {
263 | content: "\f01a";
264 | }
265 | .fa-arrow-circle-o-up:before {
266 | content: "\f01b";
267 | }
268 | .fa-inbox:before {
269 | content: "\f01c";
270 | }
271 | .fa-play-circle-o:before {
272 | content: "\f01d";
273 | }
274 | .fa-rotate-right:before,
275 | .fa-repeat:before {
276 | content: "\f01e";
277 | }
278 | .fa-refresh:before {
279 | content: "\f021";
280 | }
281 | .fa-list-alt:before {
282 | content: "\f022";
283 | }
284 | .fa-lock:before {
285 | content: "\f023";
286 | }
287 | .fa-flag:before {
288 | content: "\f024";
289 | }
290 | .fa-headphones:before {
291 | content: "\f025";
292 | }
293 | .fa-volume-off:before {
294 | content: "\f026";
295 | }
296 | .fa-volume-down:before {
297 | content: "\f027";
298 | }
299 | .fa-volume-up:before {
300 | content: "\f028";
301 | }
302 | .fa-qrcode:before {
303 | content: "\f029";
304 | }
305 | .fa-barcode:before {
306 | content: "\f02a";
307 | }
308 | .fa-tag:before {
309 | content: "\f02b";
310 | }
311 | .fa-tags:before {
312 | content: "\f02c";
313 | }
314 | .fa-book:before {
315 | content: "\f02d";
316 | }
317 | .fa-bookmark:before {
318 | content: "\f02e";
319 | }
320 | .fa-print:before {
321 | content: "\f02f";
322 | }
323 | .fa-camera:before {
324 | content: "\f030";
325 | }
326 | .fa-font:before {
327 | content: "\f031";
328 | }
329 | .fa-bold:before {
330 | content: "\f032";
331 | }
332 | .fa-italic:before {
333 | content: "\f033";
334 | }
335 | .fa-text-height:before {
336 | content: "\f034";
337 | }
338 | .fa-text-width:before {
339 | content: "\f035";
340 | }
341 | .fa-align-left:before {
342 | content: "\f036";
343 | }
344 | .fa-align-center:before {
345 | content: "\f037";
346 | }
347 | .fa-align-right:before {
348 | content: "\f038";
349 | }
350 | .fa-align-justify:before {
351 | content: "\f039";
352 | }
353 | .fa-list:before {
354 | content: "\f03a";
355 | }
356 | .fa-dedent:before,
357 | .fa-outdent:before {
358 | content: "\f03b";
359 | }
360 | .fa-indent:before {
361 | content: "\f03c";
362 | }
363 | .fa-video-camera:before {
364 | content: "\f03d";
365 | }
366 | .fa-photo:before,
367 | .fa-image:before,
368 | .fa-picture-o:before {
369 | content: "\f03e";
370 | }
371 | .fa-pencil:before {
372 | content: "\f040";
373 | }
374 | .fa-map-marker:before {
375 | content: "\f041";
376 | }
377 | .fa-adjust:before {
378 | content: "\f042";
379 | }
380 | .fa-tint:before {
381 | content: "\f043";
382 | }
383 | .fa-edit:before,
384 | .fa-pencil-square-o:before {
385 | content: "\f044";
386 | }
387 | .fa-share-square-o:before {
388 | content: "\f045";
389 | }
390 | .fa-check-square-o:before {
391 | content: "\f046";
392 | }
393 | .fa-arrows:before {
394 | content: "\f047";
395 | }
396 | .fa-step-backward:before {
397 | content: "\f048";
398 | }
399 | .fa-fast-backward:before {
400 | content: "\f049";
401 | }
402 | .fa-backward:before {
403 | content: "\f04a";
404 | }
405 | .fa-play:before {
406 | content: "\f04b";
407 | }
408 | .fa-pause:before {
409 | content: "\f04c";
410 | }
411 | .fa-stop:before {
412 | content: "\f04d";
413 | }
414 | .fa-forward:before {
415 | content: "\f04e";
416 | }
417 | .fa-fast-forward:before {
418 | content: "\f050";
419 | }
420 | .fa-step-forward:before {
421 | content: "\f051";
422 | }
423 | .fa-eject:before {
424 | content: "\f052";
425 | }
426 | .fa-chevron-left:before {
427 | content: "\f053";
428 | }
429 | .fa-chevron-right:before {
430 | content: "\f054";
431 | }
432 | .fa-plus-circle:before {
433 | content: "\f055";
434 | }
435 | .fa-minus-circle:before {
436 | content: "\f056";
437 | }
438 | .fa-times-circle:before {
439 | content: "\f057";
440 | }
441 | .fa-check-circle:before {
442 | content: "\f058";
443 | }
444 | .fa-question-circle:before {
445 | content: "\f059";
446 | }
447 | .fa-info-circle:before {
448 | content: "\f05a";
449 | }
450 | .fa-crosshairs:before {
451 | content: "\f05b";
452 | }
453 | .fa-times-circle-o:before {
454 | content: "\f05c";
455 | }
456 | .fa-check-circle-o:before {
457 | content: "\f05d";
458 | }
459 | .fa-ban:before {
460 | content: "\f05e";
461 | }
462 | .fa-arrow-left:before {
463 | content: "\f060";
464 | }
465 | .fa-arrow-right:before {
466 | content: "\f061";
467 | }
468 | .fa-arrow-up:before {
469 | content: "\f062";
470 | }
471 | .fa-arrow-down:before {
472 | content: "\f063";
473 | }
474 | .fa-mail-forward:before,
475 | .fa-share:before {
476 | content: "\f064";
477 | }
478 | .fa-expand:before {
479 | content: "\f065";
480 | }
481 | .fa-compress:before {
482 | content: "\f066";
483 | }
484 | .fa-plus:before {
485 | content: "\f067";
486 | }
487 | .fa-minus:before {
488 | content: "\f068";
489 | }
490 | .fa-asterisk:before {
491 | content: "\f069";
492 | }
493 | .fa-exclamation-circle:before {
494 | content: "\f06a";
495 | }
496 | .fa-gift:before {
497 | content: "\f06b";
498 | }
499 | .fa-leaf:before {
500 | content: "\f06c";
501 | }
502 | .fa-fire:before {
503 | content: "\f06d";
504 | }
505 | .fa-eye:before {
506 | content: "\f06e";
507 | }
508 | .fa-eye-slash:before {
509 | content: "\f070";
510 | }
511 | .fa-warning:before,
512 | .fa-exclamation-triangle:before {
513 | content: "\f071";
514 | }
515 | .fa-plane:before {
516 | content: "\f072";
517 | }
518 | .fa-calendar:before {
519 | content: "\f073";
520 | }
521 | .fa-random:before {
522 | content: "\f074";
523 | }
524 | .fa-comment:before {
525 | content: "\f075";
526 | }
527 | .fa-magnet:before {
528 | content: "\f076";
529 | }
530 | .fa-chevron-up:before {
531 | content: "\f077";
532 | }
533 | .fa-chevron-down:before {
534 | content: "\f078";
535 | }
536 | .fa-retweet:before {
537 | content: "\f079";
538 | }
539 | .fa-shopping-cart:before {
540 | content: "\f07a";
541 | }
542 | .fa-folder:before {
543 | content: "\f07b";
544 | }
545 | .fa-folder-open:before {
546 | content: "\f07c";
547 | }
548 | .fa-arrows-v:before {
549 | content: "\f07d";
550 | }
551 | .fa-arrows-h:before {
552 | content: "\f07e";
553 | }
554 | .fa-bar-chart-o:before {
555 | content: "\f080";
556 | }
557 | .fa-twitter-square:before {
558 | content: "\f081";
559 | }
560 | .fa-facebook-square:before {
561 | content: "\f082";
562 | }
563 | .fa-camera-retro:before {
564 | content: "\f083";
565 | }
566 | .fa-key:before {
567 | content: "\f084";
568 | }
569 | .fa-gears:before,
570 | .fa-cogs:before {
571 | content: "\f085";
572 | }
573 | .fa-comments:before {
574 | content: "\f086";
575 | }
576 | .fa-thumbs-o-up:before {
577 | content: "\f087";
578 | }
579 | .fa-thumbs-o-down:before {
580 | content: "\f088";
581 | }
582 | .fa-star-half:before {
583 | content: "\f089";
584 | }
585 | .fa-heart-o:before {
586 | content: "\f08a";
587 | }
588 | .fa-sign-out:before {
589 | content: "\f08b";
590 | }
591 | .fa-linkedin-square:before {
592 | content: "\f08c";
593 | }
594 | .fa-thumb-tack:before {
595 | content: "\f08d";
596 | }
597 | .fa-external-link:before {
598 | content: "\f08e";
599 | }
600 | .fa-sign-in:before {
601 | content: "\f090";
602 | }
603 | .fa-trophy:before {
604 | content: "\f091";
605 | }
606 | .fa-github-square:before {
607 | content: "\f092";
608 | }
609 | .fa-upload:before {
610 | content: "\f093";
611 | }
612 | .fa-lemon-o:before {
613 | content: "\f094";
614 | }
615 | .fa-phone:before {
616 | content: "\f095";
617 | }
618 | .fa-square-o:before {
619 | content: "\f096";
620 | }
621 | .fa-bookmark-o:before {
622 | content: "\f097";
623 | }
624 | .fa-phone-square:before {
625 | content: "\f098";
626 | }
627 | .fa-twitter:before {
628 | content: "\f099";
629 | }
630 | .fa-facebook:before {
631 | content: "\f09a";
632 | }
633 | .fa-github:before {
634 | content: "\f09b";
635 | }
636 | .fa-unlock:before {
637 | content: "\f09c";
638 | }
639 | .fa-credit-card:before {
640 | content: "\f09d";
641 | }
642 | .fa-rss:before {
643 | content: "\f09e";
644 | }
645 | .fa-hdd-o:before {
646 | content: "\f0a0";
647 | }
648 | .fa-bullhorn:before {
649 | content: "\f0a1";
650 | }
651 | .fa-bell:before {
652 | content: "\f0f3";
653 | }
654 | .fa-certificate:before {
655 | content: "\f0a3";
656 | }
657 | .fa-hand-o-right:before {
658 | content: "\f0a4";
659 | }
660 | .fa-hand-o-left:before {
661 | content: "\f0a5";
662 | }
663 | .fa-hand-o-up:before {
664 | content: "\f0a6";
665 | }
666 | .fa-hand-o-down:before {
667 | content: "\f0a7";
668 | }
669 | .fa-arrow-circle-left:before {
670 | content: "\f0a8";
671 | }
672 | .fa-arrow-circle-right:before {
673 | content: "\f0a9";
674 | }
675 | .fa-arrow-circle-up:before {
676 | content: "\f0aa";
677 | }
678 | .fa-arrow-circle-down:before {
679 | content: "\f0ab";
680 | }
681 | .fa-globe:before {
682 | content: "\f0ac";
683 | }
684 | .fa-wrench:before {
685 | content: "\f0ad";
686 | }
687 | .fa-tasks:before {
688 | content: "\f0ae";
689 | }
690 | .fa-filter:before {
691 | content: "\f0b0";
692 | }
693 | .fa-briefcase:before {
694 | content: "\f0b1";
695 | }
696 | .fa-arrows-alt:before {
697 | content: "\f0b2";
698 | }
699 | .fa-group:before,
700 | .fa-users:before {
701 | content: "\f0c0";
702 | }
703 | .fa-chain:before,
704 | .fa-link:before {
705 | content: "\f0c1";
706 | }
707 | .fa-cloud:before {
708 | content: "\f0c2";
709 | }
710 | .fa-flask:before {
711 | content: "\f0c3";
712 | }
713 | .fa-cut:before,
714 | .fa-scissors:before {
715 | content: "\f0c4";
716 | }
717 | .fa-copy:before,
718 | .fa-files-o:before {
719 | content: "\f0c5";
720 | }
721 | .fa-paperclip:before {
722 | content: "\f0c6";
723 | }
724 | .fa-save:before,
725 | .fa-floppy-o:before {
726 | content: "\f0c7";
727 | }
728 | .fa-square:before {
729 | content: "\f0c8";
730 | }
731 | .fa-navicon:before,
732 | .fa-reorder:before,
733 | .fa-bars:before {
734 | content: "\f0c9";
735 | }
736 | .fa-list-ul:before {
737 | content: "\f0ca";
738 | }
739 | .fa-list-ol:before {
740 | content: "\f0cb";
741 | }
742 | .fa-strikethrough:before {
743 | content: "\f0cc";
744 | }
745 | .fa-underline:before {
746 | content: "\f0cd";
747 | }
748 | .fa-table:before {
749 | content: "\f0ce";
750 | }
751 | .fa-magic:before {
752 | content: "\f0d0";
753 | }
754 | .fa-truck:before {
755 | content: "\f0d1";
756 | }
757 | .fa-pinterest:before {
758 | content: "\f0d2";
759 | }
760 | .fa-pinterest-square:before {
761 | content: "\f0d3";
762 | }
763 | .fa-google-plus-square:before {
764 | content: "\f0d4";
765 | }
766 | .fa-google-plus:before {
767 | content: "\f0d5";
768 | }
769 | .fa-money:before {
770 | content: "\f0d6";
771 | }
772 | .fa-caret-down:before {
773 | content: "\f0d7";
774 | }
775 | .fa-caret-up:before {
776 | content: "\f0d8";
777 | }
778 | .fa-caret-left:before {
779 | content: "\f0d9";
780 | }
781 | .fa-caret-right:before {
782 | content: "\f0da";
783 | }
784 | .fa-columns:before {
785 | content: "\f0db";
786 | }
787 | .fa-unsorted:before,
788 | .fa-sort:before {
789 | content: "\f0dc";
790 | }
791 | .fa-sort-down:before,
792 | .fa-sort-desc:before {
793 | content: "\f0dd";
794 | }
795 | .fa-sort-up:before,
796 | .fa-sort-asc:before {
797 | content: "\f0de";
798 | }
799 | .fa-envelope:before {
800 | content: "\f0e0";
801 | }
802 | .fa-linkedin:before {
803 | content: "\f0e1";
804 | }
805 | .fa-rotate-left:before,
806 | .fa-undo:before {
807 | content: "\f0e2";
808 | }
809 | .fa-legal:before,
810 | .fa-gavel:before {
811 | content: "\f0e3";
812 | }
813 | .fa-dashboard:before,
814 | .fa-tachometer:before {
815 | content: "\f0e4";
816 | }
817 | .fa-comment-o:before {
818 | content: "\f0e5";
819 | }
820 | .fa-comments-o:before {
821 | content: "\f0e6";
822 | }
823 | .fa-flash:before,
824 | .fa-bolt:before {
825 | content: "\f0e7";
826 | }
827 | .fa-sitemap:before {
828 | content: "\f0e8";
829 | }
830 | .fa-umbrella:before {
831 | content: "\f0e9";
832 | }
833 | .fa-paste:before,
834 | .fa-clipboard:before {
835 | content: "\f0ea";
836 | }
837 | .fa-lightbulb-o:before {
838 | content: "\f0eb";
839 | }
840 | .fa-exchange:before {
841 | content: "\f0ec";
842 | }
843 | .fa-cloud-download:before {
844 | content: "\f0ed";
845 | }
846 | .fa-cloud-upload:before {
847 | content: "\f0ee";
848 | }
849 | .fa-user-md:before {
850 | content: "\f0f0";
851 | }
852 | .fa-stethoscope:before {
853 | content: "\f0f1";
854 | }
855 | .fa-suitcase:before {
856 | content: "\f0f2";
857 | }
858 | .fa-bell-o:before {
859 | content: "\f0a2";
860 | }
861 | .fa-coffee:before {
862 | content: "\f0f4";
863 | }
864 | .fa-cutlery:before {
865 | content: "\f0f5";
866 | }
867 | .fa-file-text-o:before {
868 | content: "\f0f6";
869 | }
870 | .fa-building-o:before {
871 | content: "\f0f7";
872 | }
873 | .fa-hospital-o:before {
874 | content: "\f0f8";
875 | }
876 | .fa-ambulance:before {
877 | content: "\f0f9";
878 | }
879 | .fa-medkit:before {
880 | content: "\f0fa";
881 | }
882 | .fa-fighter-jet:before {
883 | content: "\f0fb";
884 | }
885 | .fa-beer:before {
886 | content: "\f0fc";
887 | }
888 | .fa-h-square:before {
889 | content: "\f0fd";
890 | }
891 | .fa-plus-square:before {
892 | content: "\f0fe";
893 | }
894 | .fa-angle-double-left:before {
895 | content: "\f100";
896 | }
897 | .fa-angle-double-right:before {
898 | content: "\f101";
899 | }
900 | .fa-angle-double-up:before {
901 | content: "\f102";
902 | }
903 | .fa-angle-double-down:before {
904 | content: "\f103";
905 | }
906 | .fa-angle-left:before {
907 | content: "\f104";
908 | }
909 | .fa-angle-right:before {
910 | content: "\f105";
911 | }
912 | .fa-angle-up:before {
913 | content: "\f106";
914 | }
915 | .fa-angle-down:before {
916 | content: "\f107";
917 | }
918 | .fa-desktop:before {
919 | content: "\f108";
920 | }
921 | .fa-laptop:before {
922 | content: "\f109";
923 | }
924 | .fa-tablet:before {
925 | content: "\f10a";
926 | }
927 | .fa-mobile-phone:before,
928 | .fa-mobile:before {
929 | content: "\f10b";
930 | }
931 | .fa-circle-o:before {
932 | content: "\f10c";
933 | }
934 | .fa-quote-left:before {
935 | content: "\f10d";
936 | }
937 | .fa-quote-right:before {
938 | content: "\f10e";
939 | }
940 | .fa-spinner:before {
941 | content: "\f110";
942 | }
943 | .fa-circle:before {
944 | content: "\f111";
945 | }
946 | .fa-mail-reply:before,
947 | .fa-reply:before {
948 | content: "\f112";
949 | }
950 | .fa-github-alt:before {
951 | content: "\f113";
952 | }
953 | .fa-folder-o:before {
954 | content: "\f114";
955 | }
956 | .fa-folder-open-o:before {
957 | content: "\f115";
958 | }
959 | .fa-smile-o:before {
960 | content: "\f118";
961 | }
962 | .fa-frown-o:before {
963 | content: "\f119";
964 | }
965 | .fa-meh-o:before {
966 | content: "\f11a";
967 | }
968 | .fa-gamepad:before {
969 | content: "\f11b";
970 | }
971 | .fa-keyboard-o:before {
972 | content: "\f11c";
973 | }
974 | .fa-flag-o:before {
975 | content: "\f11d";
976 | }
977 | .fa-flag-checkered:before {
978 | content: "\f11e";
979 | }
980 | .fa-terminal:before {
981 | content: "\f120";
982 | }
983 | .fa-code:before {
984 | content: "\f121";
985 | }
986 | .fa-mail-reply-all:before,
987 | .fa-reply-all:before {
988 | content: "\f122";
989 | }
990 | .fa-star-half-empty:before,
991 | .fa-star-half-full:before,
992 | .fa-star-half-o:before {
993 | content: "\f123";
994 | }
995 | .fa-location-arrow:before {
996 | content: "\f124";
997 | }
998 | .fa-crop:before {
999 | content: "\f125";
1000 | }
1001 | .fa-code-fork:before {
1002 | content: "\f126";
1003 | }
1004 | .fa-unlink:before,
1005 | .fa-chain-broken:before {
1006 | content: "\f127";
1007 | }
1008 | .fa-question:before {
1009 | content: "\f128";
1010 | }
1011 | .fa-info:before {
1012 | content: "\f129";
1013 | }
1014 | .fa-exclamation:before {
1015 | content: "\f12a";
1016 | }
1017 | .fa-superscript:before {
1018 | content: "\f12b";
1019 | }
1020 | .fa-subscript:before {
1021 | content: "\f12c";
1022 | }
1023 | .fa-eraser:before {
1024 | content: "\f12d";
1025 | }
1026 | .fa-puzzle-piece:before {
1027 | content: "\f12e";
1028 | }
1029 | .fa-microphone:before {
1030 | content: "\f130";
1031 | }
1032 | .fa-microphone-slash:before {
1033 | content: "\f131";
1034 | }
1035 | .fa-shield:before {
1036 | content: "\f132";
1037 | }
1038 | .fa-calendar-o:before {
1039 | content: "\f133";
1040 | }
1041 | .fa-fire-extinguisher:before {
1042 | content: "\f134";
1043 | }
1044 | .fa-rocket:before {
1045 | content: "\f135";
1046 | }
1047 | .fa-maxcdn:before {
1048 | content: "\f136";
1049 | }
1050 | .fa-chevron-circle-left:before {
1051 | content: "\f137";
1052 | }
1053 | .fa-chevron-circle-right:before {
1054 | content: "\f138";
1055 | }
1056 | .fa-chevron-circle-up:before {
1057 | content: "\f139";
1058 | }
1059 | .fa-chevron-circle-down:before {
1060 | content: "\f13a";
1061 | }
1062 | .fa-html5:before {
1063 | content: "\f13b";
1064 | }
1065 | .fa-css3:before {
1066 | content: "\f13c";
1067 | }
1068 | .fa-anchor:before {
1069 | content: "\f13d";
1070 | }
1071 | .fa-unlock-alt:before {
1072 | content: "\f13e";
1073 | }
1074 | .fa-bullseye:before {
1075 | content: "\f140";
1076 | }
1077 | .fa-ellipsis-h:before {
1078 | content: "\f141";
1079 | }
1080 | .fa-ellipsis-v:before {
1081 | content: "\f142";
1082 | }
1083 | .fa-rss-square:before {
1084 | content: "\f143";
1085 | }
1086 | .fa-play-circle:before {
1087 | content: "\f144";
1088 | }
1089 | .fa-ticket:before {
1090 | content: "\f145";
1091 | }
1092 | .fa-minus-square:before {
1093 | content: "\f146";
1094 | }
1095 | .fa-minus-square-o:before {
1096 | content: "\f147";
1097 | }
1098 | .fa-level-up:before {
1099 | content: "\f148";
1100 | }
1101 | .fa-level-down:before {
1102 | content: "\f149";
1103 | }
1104 | .fa-check-square:before {
1105 | content: "\f14a";
1106 | }
1107 | .fa-pencil-square:before {
1108 | content: "\f14b";
1109 | }
1110 | .fa-external-link-square:before {
1111 | content: "\f14c";
1112 | }
1113 | .fa-share-square:before {
1114 | content: "\f14d";
1115 | }
1116 | .fa-compass:before {
1117 | content: "\f14e";
1118 | }
1119 | .fa-toggle-down:before,
1120 | .fa-caret-square-o-down:before {
1121 | content: "\f150";
1122 | }
1123 | .fa-toggle-up:before,
1124 | .fa-caret-square-o-up:before {
1125 | content: "\f151";
1126 | }
1127 | .fa-toggle-right:before,
1128 | .fa-caret-square-o-right:before {
1129 | content: "\f152";
1130 | }
1131 | .fa-euro:before,
1132 | .fa-eur:before {
1133 | content: "\f153";
1134 | }
1135 | .fa-gbp:before {
1136 | content: "\f154";
1137 | }
1138 | .fa-dollar:before,
1139 | .fa-usd:before {
1140 | content: "\f155";
1141 | }
1142 | .fa-rupee:before,
1143 | .fa-inr:before {
1144 | content: "\f156";
1145 | }
1146 | .fa-cny:before,
1147 | .fa-rmb:before,
1148 | .fa-yen:before,
1149 | .fa-jpy:before {
1150 | content: "\f157";
1151 | }
1152 | .fa-ruble:before,
1153 | .fa-rouble:before,
1154 | .fa-rub:before {
1155 | content: "\f158";
1156 | }
1157 | .fa-won:before,
1158 | .fa-krw:before {
1159 | content: "\f159";
1160 | }
1161 | .fa-bitcoin:before,
1162 | .fa-btc:before {
1163 | content: "\f15a";
1164 | }
1165 | .fa-file:before {
1166 | content: "\f15b";
1167 | }
1168 | .fa-file-text:before {
1169 | content: "\f15c";
1170 | }
1171 | .fa-sort-alpha-asc:before {
1172 | content: "\f15d";
1173 | }
1174 | .fa-sort-alpha-desc:before {
1175 | content: "\f15e";
1176 | }
1177 | .fa-sort-amount-asc:before {
1178 | content: "\f160";
1179 | }
1180 | .fa-sort-amount-desc:before {
1181 | content: "\f161";
1182 | }
1183 | .fa-sort-numeric-asc:before {
1184 | content: "\f162";
1185 | }
1186 | .fa-sort-numeric-desc:before {
1187 | content: "\f163";
1188 | }
1189 | .fa-thumbs-up:before {
1190 | content: "\f164";
1191 | }
1192 | .fa-thumbs-down:before {
1193 | content: "\f165";
1194 | }
1195 | .fa-youtube-square:before {
1196 | content: "\f166";
1197 | }
1198 | .fa-youtube:before {
1199 | content: "\f167";
1200 | }
1201 | .fa-xing:before {
1202 | content: "\f168";
1203 | }
1204 | .fa-xing-square:before {
1205 | content: "\f169";
1206 | }
1207 | .fa-youtube-play:before {
1208 | content: "\f16a";
1209 | }
1210 | .fa-dropbox:before {
1211 | content: "\f16b";
1212 | }
1213 | .fa-stack-overflow:before {
1214 | content: "\f16c";
1215 | }
1216 | .fa-instagram:before {
1217 | content: "\f16d";
1218 | }
1219 | .fa-flickr:before {
1220 | content: "\f16e";
1221 | }
1222 | .fa-adn:before {
1223 | content: "\f170";
1224 | }
1225 | .fa-bitbucket:before {
1226 | content: "\f171";
1227 | }
1228 | .fa-bitbucket-square:before {
1229 | content: "\f172";
1230 | }
1231 | .fa-tumblr:before {
1232 | content: "\f173";
1233 | }
1234 | .fa-tumblr-square:before {
1235 | content: "\f174";
1236 | }
1237 | .fa-long-arrow-down:before {
1238 | content: "\f175";
1239 | }
1240 | .fa-long-arrow-up:before {
1241 | content: "\f176";
1242 | }
1243 | .fa-long-arrow-left:before {
1244 | content: "\f177";
1245 | }
1246 | .fa-long-arrow-right:before {
1247 | content: "\f178";
1248 | }
1249 | .fa-apple:before {
1250 | content: "\f179";
1251 | }
1252 | .fa-windows:before {
1253 | content: "\f17a";
1254 | }
1255 | .fa-android:before {
1256 | content: "\f17b";
1257 | }
1258 | .fa-linux:before {
1259 | content: "\f17c";
1260 | }
1261 | .fa-dribbble:before {
1262 | content: "\f17d";
1263 | }
1264 | .fa-skype:before {
1265 | content: "\f17e";
1266 | }
1267 | .fa-foursquare:before {
1268 | content: "\f180";
1269 | }
1270 | .fa-trello:before {
1271 | content: "\f181";
1272 | }
1273 | .fa-female:before {
1274 | content: "\f182";
1275 | }
1276 | .fa-male:before {
1277 | content: "\f183";
1278 | }
1279 | .fa-gittip:before {
1280 | content: "\f184";
1281 | }
1282 | .fa-sun-o:before {
1283 | content: "\f185";
1284 | }
1285 | .fa-moon-o:before {
1286 | content: "\f186";
1287 | }
1288 | .fa-archive:before {
1289 | content: "\f187";
1290 | }
1291 | .fa-bug:before {
1292 | content: "\f188";
1293 | }
1294 | .fa-vk:before {
1295 | content: "\f189";
1296 | }
1297 | .fa-weibo:before {
1298 | content: "\f18a";
1299 | }
1300 | .fa-renren:before {
1301 | content: "\f18b";
1302 | }
1303 | .fa-pagelines:before {
1304 | content: "\f18c";
1305 | }
1306 | .fa-stack-exchange:before {
1307 | content: "\f18d";
1308 | }
1309 | .fa-arrow-circle-o-right:before {
1310 | content: "\f18e";
1311 | }
1312 | .fa-arrow-circle-o-left:before {
1313 | content: "\f190";
1314 | }
1315 | .fa-toggle-left:before,
1316 | .fa-caret-square-o-left:before {
1317 | content: "\f191";
1318 | }
1319 | .fa-dot-circle-o:before {
1320 | content: "\f192";
1321 | }
1322 | .fa-wheelchair:before {
1323 | content: "\f193";
1324 | }
1325 | .fa-vimeo-square:before {
1326 | content: "\f194";
1327 | }
1328 | .fa-turkish-lira:before,
1329 | .fa-try:before {
1330 | content: "\f195";
1331 | }
1332 | .fa-plus-square-o:before {
1333 | content: "\f196";
1334 | }
1335 | .fa-space-shuttle:before {
1336 | content: "\f197";
1337 | }
1338 | .fa-slack:before {
1339 | content: "\f198";
1340 | }
1341 | .fa-envelope-square:before {
1342 | content: "\f199";
1343 | }
1344 | .fa-wordpress:before {
1345 | content: "\f19a";
1346 | }
1347 | .fa-openid:before {
1348 | content: "\f19b";
1349 | }
1350 | .fa-institution:before,
1351 | .fa-bank:before,
1352 | .fa-university:before {
1353 | content: "\f19c";
1354 | }
1355 | .fa-mortar-board:before,
1356 | .fa-graduation-cap:before {
1357 | content: "\f19d";
1358 | }
1359 | .fa-yahoo:before {
1360 | content: "\f19e";
1361 | }
1362 | .fa-google:before {
1363 | content: "\f1a0";
1364 | }
1365 | .fa-reddit:before {
1366 | content: "\f1a1";
1367 | }
1368 | .fa-reddit-square:before {
1369 | content: "\f1a2";
1370 | }
1371 | .fa-stumbleupon-circle:before {
1372 | content: "\f1a3";
1373 | }
1374 | .fa-stumbleupon:before {
1375 | content: "\f1a4";
1376 | }
1377 | .fa-delicious:before {
1378 | content: "\f1a5";
1379 | }
1380 | .fa-digg:before {
1381 | content: "\f1a6";
1382 | }
1383 | .fa-pied-piper-square:before,
1384 | .fa-pied-piper:before {
1385 | content: "\f1a7";
1386 | }
1387 | .fa-pied-piper-alt:before {
1388 | content: "\f1a8";
1389 | }
1390 | .fa-drupal:before {
1391 | content: "\f1a9";
1392 | }
1393 | .fa-joomla:before {
1394 | content: "\f1aa";
1395 | }
1396 | .fa-language:before {
1397 | content: "\f1ab";
1398 | }
1399 | .fa-fax:before {
1400 | content: "\f1ac";
1401 | }
1402 | .fa-building:before {
1403 | content: "\f1ad";
1404 | }
1405 | .fa-child:before {
1406 | content: "\f1ae";
1407 | }
1408 | .fa-paw:before {
1409 | content: "\f1b0";
1410 | }
1411 | .fa-spoon:before {
1412 | content: "\f1b1";
1413 | }
1414 | .fa-cube:before {
1415 | content: "\f1b2";
1416 | }
1417 | .fa-cubes:before {
1418 | content: "\f1b3";
1419 | }
1420 | .fa-behance:before {
1421 | content: "\f1b4";
1422 | }
1423 | .fa-behance-square:before {
1424 | content: "\f1b5";
1425 | }
1426 | .fa-steam:before {
1427 | content: "\f1b6";
1428 | }
1429 | .fa-steam-square:before {
1430 | content: "\f1b7";
1431 | }
1432 | .fa-recycle:before {
1433 | content: "\f1b8";
1434 | }
1435 | .fa-automobile:before,
1436 | .fa-car:before {
1437 | content: "\f1b9";
1438 | }
1439 | .fa-cab:before,
1440 | .fa-taxi:before {
1441 | content: "\f1ba";
1442 | }
1443 | .fa-tree:before {
1444 | content: "\f1bb";
1445 | }
1446 | .fa-spotify:before {
1447 | content: "\f1bc";
1448 | }
1449 | .fa-deviantart:before {
1450 | content: "\f1bd";
1451 | }
1452 | .fa-soundcloud:before {
1453 | content: "\f1be";
1454 | }
1455 | .fa-database:before {
1456 | content: "\f1c0";
1457 | }
1458 | .fa-file-pdf-o:before {
1459 | content: "\f1c1";
1460 | }
1461 | .fa-file-word-o:before {
1462 | content: "\f1c2";
1463 | }
1464 | .fa-file-excel-o:before {
1465 | content: "\f1c3";
1466 | }
1467 | .fa-file-powerpoint-o:before {
1468 | content: "\f1c4";
1469 | }
1470 | .fa-file-photo-o:before,
1471 | .fa-file-picture-o:before,
1472 | .fa-file-image-o:before {
1473 | content: "\f1c5";
1474 | }
1475 | .fa-file-zip-o:before,
1476 | .fa-file-archive-o:before {
1477 | content: "\f1c6";
1478 | }
1479 | .fa-file-sound-o:before,
1480 | .fa-file-audio-o:before {
1481 | content: "\f1c7";
1482 | }
1483 | .fa-file-movie-o:before,
1484 | .fa-file-video-o:before {
1485 | content: "\f1c8";
1486 | }
1487 | .fa-file-code-o:before {
1488 | content: "\f1c9";
1489 | }
1490 | .fa-vine:before {
1491 | content: "\f1ca";
1492 | }
1493 | .fa-codepen:before {
1494 | content: "\f1cb";
1495 | }
1496 | .fa-jsfiddle:before {
1497 | content: "\f1cc";
1498 | }
1499 | .fa-life-bouy:before,
1500 | .fa-life-saver:before,
1501 | .fa-support:before,
1502 | .fa-life-ring:before {
1503 | content: "\f1cd";
1504 | }
1505 | .fa-circle-o-notch:before {
1506 | content: "\f1ce";
1507 | }
1508 | .fa-ra:before,
1509 | .fa-rebel:before {
1510 | content: "\f1d0";
1511 | }
1512 | .fa-ge:before,
1513 | .fa-empire:before {
1514 | content: "\f1d1";
1515 | }
1516 | .fa-git-square:before {
1517 | content: "\f1d2";
1518 | }
1519 | .fa-git:before {
1520 | content: "\f1d3";
1521 | }
1522 | .fa-hacker-news:before {
1523 | content: "\f1d4";
1524 | }
1525 | .fa-tencent-weibo:before {
1526 | content: "\f1d5";
1527 | }
1528 | .fa-qq:before {
1529 | content: "\f1d6";
1530 | }
1531 | .fa-wechat:before,
1532 | .fa-weixin:before {
1533 | content: "\f1d7";
1534 | }
1535 | .fa-send:before,
1536 | .fa-paper-plane:before {
1537 | content: "\f1d8";
1538 | }
1539 | .fa-send-o:before,
1540 | .fa-paper-plane-o:before {
1541 | content: "\f1d9";
1542 | }
1543 | .fa-history:before {
1544 | content: "\f1da";
1545 | }
1546 | .fa-circle-thin:before {
1547 | content: "\f1db";
1548 | }
1549 | .fa-header:before {
1550 | content: "\f1dc";
1551 | }
1552 | .fa-paragraph:before {
1553 | content: "\f1dd";
1554 | }
1555 | .fa-sliders:before {
1556 | content: "\f1de";
1557 | }
1558 | .fa-share-alt:before {
1559 | content: "\f1e0";
1560 | }
1561 | .fa-share-alt-square:before {
1562 | content: "\f1e1";
1563 | }
1564 | .fa-bomb:before {
1565 | content: "\f1e2";
1566 | }
1567 |
--------------------------------------------------------------------------------
/css/font-awesome/css/font-awesome.min.css:
--------------------------------------------------------------------------------
1 | /*!
2 | * Font Awesome 4.1.0 by @davegandy - http://fontawesome.io - @fontawesome
3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
4 | */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.1.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.1.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff?v=4.1.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.1.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.1.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:spin 2s infinite linear;-moz-animation:spin 2s infinite linear;-o-animation:spin 2s infinite linear;animation:spin 2s infinite linear}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg)}100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@-o-keyframes spin{0%{-o-transform:rotate(0deg)}100%{-o-transform:rotate(359deg)}}@keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);-webkit-transform:scale(-1, 1);-moz-transform:scale(-1, 1);-ms-transform:scale(-1, 1);-o-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);-webkit-transform:scale(1, -1);-moz-transform:scale(1, -1);-ms-transform:scale(1, -1);-o-transform:scale(1, -1);transform:scale(1, -1)}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-square:before,.fa-pied-piper:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}
--------------------------------------------------------------------------------
/css/font-awesome/fonts/FontAwesome.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/agorahub/blog0/e390b9b64e5eb948caec1c5309357c8ec0a04e02/css/font-awesome/fonts/FontAwesome.otf
--------------------------------------------------------------------------------
/css/font-awesome/fonts/fontawesome-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/agorahub/blog0/e390b9b64e5eb948caec1c5309357c8ec0a04e02/css/font-awesome/fonts/fontawesome-webfont.eot
--------------------------------------------------------------------------------
/css/font-awesome/fonts/fontawesome-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/agorahub/blog0/e390b9b64e5eb948caec1c5309357c8ec0a04e02/css/font-awesome/fonts/fontawesome-webfont.ttf
--------------------------------------------------------------------------------
/css/font-awesome/fonts/fontawesome-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/agorahub/blog0/e390b9b64e5eb948caec1c5309357c8ec0a04e02/css/font-awesome/fonts/fontawesome-webfont.woff
--------------------------------------------------------------------------------
/css/style.css:
--------------------------------------------------------------------------------
1 | ---
2 | layout: style
3 | ---
--------------------------------------------------------------------------------
/img/portfolio/hkcnews.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/agorahub/blog0/e390b9b64e5eb948caec1c5309357c8ec0a04e02/img/portfolio/hkcnews.jpg
--------------------------------------------------------------------------------
/img/portfolio/initium.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/agorahub/blog0/e390b9b64e5eb948caec1c5309357c8ec0a04e02/img/portfolio/initium.jpg
--------------------------------------------------------------------------------
/img/portfolio/inmedia.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/agorahub/blog0/e390b9b64e5eb948caec1c5309357c8ec0a04e02/img/portfolio/inmedia.jpg
--------------------------------------------------------------------------------
/img/portfolio/matters.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/agorahub/blog0/e390b9b64e5eb948caec1c5309357c8ec0a04e02/img/portfolio/matters.jpg
--------------------------------------------------------------------------------
/img/portfolio/pq.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/agorahub/blog0/e390b9b64e5eb948caec1c5309357c8ec0a04e02/img/portfolio/pq.jpg
--------------------------------------------------------------------------------
/img/portfolio/stand.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/agorahub/blog0/e390b9b64e5eb948caec1c5309357c8ec0a04e02/img/portfolio/stand.jpg
--------------------------------------------------------------------------------
/img/portfolio/vocus.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/agorahub/blog0/e390b9b64e5eb948caec1c5309357c8ec0a04e02/img/portfolio/vocus.jpg
--------------------------------------------------------------------------------
/img/profile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/agorahub/blog0/e390b9b64e5eb948caec1c5309357c8ec0a04e02/img/profile.png
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | ---
--------------------------------------------------------------------------------
/js/bootstrap.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap v3.2.0 (http://getbootstrap.com)
3 | * Copyright 2011-2014 Twitter, Inc.
4 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5 | */
6 |
7 | if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript requires jQuery') }
8 |
9 | /* ========================================================================
10 | * Bootstrap: transition.js v3.2.0
11 | * http://getbootstrap.com/javascript/#transitions
12 | * ========================================================================
13 | * Copyright 2011-2014 Twitter, Inc.
14 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
15 | * ======================================================================== */
16 |
17 |
18 | +function ($) {
19 | 'use strict';
20 |
21 | // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)
22 | // ============================================================
23 |
24 | function transitionEnd() {
25 | var el = document.createElement('bootstrap')
26 |
27 | var transEndEventNames = {
28 | WebkitTransition : 'webkitTransitionEnd',
29 | MozTransition : 'transitionend',
30 | OTransition : 'oTransitionEnd otransitionend',
31 | transition : 'transitionend'
32 | }
33 |
34 | for (var name in transEndEventNames) {
35 | if (el.style[name] !== undefined) {
36 | return { end: transEndEventNames[name] }
37 | }
38 | }
39 |
40 | return false // explicit for ie8 ( ._.)
41 | }
42 |
43 | // http://blog.alexmaccaw.com/css-transitions
44 | $.fn.emulateTransitionEnd = function (duration) {
45 | var called = false
46 | var $el = this
47 | $(this).one('bsTransitionEnd', function () { called = true })
48 | var callback = function () { if (!called) $($el).trigger($.support.transition.end) }
49 | setTimeout(callback, duration)
50 | return this
51 | }
52 |
53 | $(function () {
54 | $.support.transition = transitionEnd()
55 |
56 | if (!$.support.transition) return
57 |
58 | $.event.special.bsTransitionEnd = {
59 | bindType: $.support.transition.end,
60 | delegateType: $.support.transition.end,
61 | handle: function (e) {
62 | if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)
63 | }
64 | }
65 | })
66 |
67 | }(jQuery);
68 |
69 | /* ========================================================================
70 | * Bootstrap: alert.js v3.2.0
71 | * http://getbootstrap.com/javascript/#alerts
72 | * ========================================================================
73 | * Copyright 2011-2014 Twitter, Inc.
74 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
75 | * ======================================================================== */
76 |
77 |
78 | +function ($) {
79 | 'use strict';
80 |
81 | // ALERT CLASS DEFINITION
82 | // ======================
83 |
84 | var dismiss = '[data-dismiss="alert"]'
85 | var Alert = function (el) {
86 | $(el).on('click', dismiss, this.close)
87 | }
88 |
89 | Alert.VERSION = '3.2.0'
90 |
91 | Alert.prototype.close = function (e) {
92 | var $this = $(this)
93 | var selector = $this.attr('data-target')
94 |
95 | if (!selector) {
96 | selector = $this.attr('href')
97 | selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
98 | }
99 |
100 | var $parent = $(selector)
101 |
102 | if (e) e.preventDefault()
103 |
104 | if (!$parent.length) {
105 | $parent = $this.hasClass('alert') ? $this : $this.parent()
106 | }
107 |
108 | $parent.trigger(e = $.Event('close.bs.alert'))
109 |
110 | if (e.isDefaultPrevented()) return
111 |
112 | $parent.removeClass('in')
113 |
114 | function removeElement() {
115 | // detach from parent, fire event then clean up data
116 | $parent.detach().trigger('closed.bs.alert').remove()
117 | }
118 |
119 | $.support.transition && $parent.hasClass('fade') ?
120 | $parent
121 | .one('bsTransitionEnd', removeElement)
122 | .emulateTransitionEnd(150) :
123 | removeElement()
124 | }
125 |
126 |
127 | // ALERT PLUGIN DEFINITION
128 | // =======================
129 |
130 | function Plugin(option) {
131 | return this.each(function () {
132 | var $this = $(this)
133 | var data = $this.data('bs.alert')
134 |
135 | if (!data) $this.data('bs.alert', (data = new Alert(this)))
136 | if (typeof option == 'string') data[option].call($this)
137 | })
138 | }
139 |
140 | var old = $.fn.alert
141 |
142 | $.fn.alert = Plugin
143 | $.fn.alert.Constructor = Alert
144 |
145 |
146 | // ALERT NO CONFLICT
147 | // =================
148 |
149 | $.fn.alert.noConflict = function () {
150 | $.fn.alert = old
151 | return this
152 | }
153 |
154 |
155 | // ALERT DATA-API
156 | // ==============
157 |
158 | $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close)
159 |
160 | }(jQuery);
161 |
162 | /* ========================================================================
163 | * Bootstrap: button.js v3.2.0
164 | * http://getbootstrap.com/javascript/#buttons
165 | * ========================================================================
166 | * Copyright 2011-2014 Twitter, Inc.
167 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
168 | * ======================================================================== */
169 |
170 |
171 | +function ($) {
172 | 'use strict';
173 |
174 | // BUTTON PUBLIC CLASS DEFINITION
175 | // ==============================
176 |
177 | var Button = function (element, options) {
178 | this.$element = $(element)
179 | this.options = $.extend({}, Button.DEFAULTS, options)
180 | this.isLoading = false
181 | }
182 |
183 | Button.VERSION = '3.2.0'
184 |
185 | Button.DEFAULTS = {
186 | loadingText: 'loading...'
187 | }
188 |
189 | Button.prototype.setState = function (state) {
190 | var d = 'disabled'
191 | var $el = this.$element
192 | var val = $el.is('input') ? 'val' : 'html'
193 | var data = $el.data()
194 |
195 | state = state + 'Text'
196 |
197 | if (data.resetText == null) $el.data('resetText', $el[val]())
198 |
199 | $el[val](data[state] == null ? this.options[state] : data[state])
200 |
201 | // push to event loop to allow forms to submit
202 | setTimeout($.proxy(function () {
203 | if (state == 'loadingText') {
204 | this.isLoading = true
205 | $el.addClass(d).attr(d, d)
206 | } else if (this.isLoading) {
207 | this.isLoading = false
208 | $el.removeClass(d).removeAttr(d)
209 | }
210 | }, this), 0)
211 | }
212 |
213 | Button.prototype.toggle = function () {
214 | var changed = true
215 | var $parent = this.$element.closest('[data-toggle="buttons"]')
216 |
217 | if ($parent.length) {
218 | var $input = this.$element.find('input')
219 | if ($input.prop('type') == 'radio') {
220 | if ($input.prop('checked') && this.$element.hasClass('active')) changed = false
221 | else $parent.find('.active').removeClass('active')
222 | }
223 | if (changed) $input.prop('checked', !this.$element.hasClass('active')).trigger('change')
224 | }
225 |
226 | if (changed) this.$element.toggleClass('active')
227 | }
228 |
229 |
230 | // BUTTON PLUGIN DEFINITION
231 | // ========================
232 |
233 | function Plugin(option) {
234 | return this.each(function () {
235 | var $this = $(this)
236 | var data = $this.data('bs.button')
237 | var options = typeof option == 'object' && option
238 |
239 | if (!data) $this.data('bs.button', (data = new Button(this, options)))
240 |
241 | if (option == 'toggle') data.toggle()
242 | else if (option) data.setState(option)
243 | })
244 | }
245 |
246 | var old = $.fn.button
247 |
248 | $.fn.button = Plugin
249 | $.fn.button.Constructor = Button
250 |
251 |
252 | // BUTTON NO CONFLICT
253 | // ==================
254 |
255 | $.fn.button.noConflict = function () {
256 | $.fn.button = old
257 | return this
258 | }
259 |
260 |
261 | // BUTTON DATA-API
262 | // ===============
263 |
264 | $(document).on('click.bs.button.data-api', '[data-toggle^="button"]', function (e) {
265 | var $btn = $(e.target)
266 | if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')
267 | Plugin.call($btn, 'toggle')
268 | e.preventDefault()
269 | })
270 |
271 | }(jQuery);
272 |
273 | /* ========================================================================
274 | * Bootstrap: carousel.js v3.2.0
275 | * http://getbootstrap.com/javascript/#carousel
276 | * ========================================================================
277 | * Copyright 2011-2014 Twitter, Inc.
278 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
279 | * ======================================================================== */
280 |
281 |
282 | +function ($) {
283 | 'use strict';
284 |
285 | // CAROUSEL CLASS DEFINITION
286 | // =========================
287 |
288 | var Carousel = function (element, options) {
289 | this.$element = $(element).on('keydown.bs.carousel', $.proxy(this.keydown, this))
290 | this.$indicators = this.$element.find('.carousel-indicators')
291 | this.options = options
292 | this.paused =
293 | this.sliding =
294 | this.interval =
295 | this.$active =
296 | this.$items = null
297 |
298 | this.options.pause == 'hover' && this.$element
299 | .on('mouseenter.bs.carousel', $.proxy(this.pause, this))
300 | .on('mouseleave.bs.carousel', $.proxy(this.cycle, this))
301 | }
302 |
303 | Carousel.VERSION = '3.2.0'
304 |
305 | Carousel.DEFAULTS = {
306 | interval: 5000,
307 | pause: 'hover',
308 | wrap: true
309 | }
310 |
311 | Carousel.prototype.keydown = function (e) {
312 | switch (e.which) {
313 | case 37: this.prev(); break
314 | case 39: this.next(); break
315 | default: return
316 | }
317 |
318 | e.preventDefault()
319 | }
320 |
321 | Carousel.prototype.cycle = function (e) {
322 | e || (this.paused = false)
323 |
324 | this.interval && clearInterval(this.interval)
325 |
326 | this.options.interval
327 | && !this.paused
328 | && (this.interval = setInterval($.proxy(this.next, this), this.options.interval))
329 |
330 | return this
331 | }
332 |
333 | Carousel.prototype.getItemIndex = function (item) {
334 | this.$items = item.parent().children('.item')
335 | return this.$items.index(item || this.$active)
336 | }
337 |
338 | Carousel.prototype.to = function (pos) {
339 | var that = this
340 | var activeIndex = this.getItemIndex(this.$active = this.$element.find('.item.active'))
341 |
342 | if (pos > (this.$items.length - 1) || pos < 0) return
343 |
344 | if (this.sliding) return this.$element.one('slid.bs.carousel', function () { that.to(pos) }) // yes, "slid"
345 | if (activeIndex == pos) return this.pause().cycle()
346 |
347 | return this.slide(pos > activeIndex ? 'next' : 'prev', $(this.$items[pos]))
348 | }
349 |
350 | Carousel.prototype.pause = function (e) {
351 | e || (this.paused = true)
352 |
353 | if (this.$element.find('.next, .prev').length && $.support.transition) {
354 | this.$element.trigger($.support.transition.end)
355 | this.cycle(true)
356 | }
357 |
358 | this.interval = clearInterval(this.interval)
359 |
360 | return this
361 | }
362 |
363 | Carousel.prototype.next = function () {
364 | if (this.sliding) return
365 | return this.slide('next')
366 | }
367 |
368 | Carousel.prototype.prev = function () {
369 | if (this.sliding) return
370 | return this.slide('prev')
371 | }
372 |
373 | Carousel.prototype.slide = function (type, next) {
374 | var $active = this.$element.find('.item.active')
375 | var $next = next || $active[type]()
376 | var isCycling = this.interval
377 | var direction = type == 'next' ? 'left' : 'right'
378 | var fallback = type == 'next' ? 'first' : 'last'
379 | var that = this
380 |
381 | if (!$next.length) {
382 | if (!this.options.wrap) return
383 | $next = this.$element.find('.item')[fallback]()
384 | }
385 |
386 | if ($next.hasClass('active')) return (this.sliding = false)
387 |
388 | var relatedTarget = $next[0]
389 | var slideEvent = $.Event('slide.bs.carousel', {
390 | relatedTarget: relatedTarget,
391 | direction: direction
392 | })
393 | this.$element.trigger(slideEvent)
394 | if (slideEvent.isDefaultPrevented()) return
395 |
396 | this.sliding = true
397 |
398 | isCycling && this.pause()
399 |
400 | if (this.$indicators.length) {
401 | this.$indicators.find('.active').removeClass('active')
402 | var $nextIndicator = $(this.$indicators.children()[this.getItemIndex($next)])
403 | $nextIndicator && $nextIndicator.addClass('active')
404 | }
405 |
406 | var slidEvent = $.Event('slid.bs.carousel', { relatedTarget: relatedTarget, direction: direction }) // yes, "slid"
407 | if ($.support.transition && this.$element.hasClass('slide')) {
408 | $next.addClass(type)
409 | $next[0].offsetWidth // force reflow
410 | $active.addClass(direction)
411 | $next.addClass(direction)
412 | $active
413 | .one('bsTransitionEnd', function () {
414 | $next.removeClass([type, direction].join(' ')).addClass('active')
415 | $active.removeClass(['active', direction].join(' '))
416 | that.sliding = false
417 | setTimeout(function () {
418 | that.$element.trigger(slidEvent)
419 | }, 0)
420 | })
421 | .emulateTransitionEnd($active.css('transition-duration').slice(0, -1) * 1000)
422 | } else {
423 | $active.removeClass('active')
424 | $next.addClass('active')
425 | this.sliding = false
426 | this.$element.trigger(slidEvent)
427 | }
428 |
429 | isCycling && this.cycle()
430 |
431 | return this
432 | }
433 |
434 |
435 | // CAROUSEL PLUGIN DEFINITION
436 | // ==========================
437 |
438 | function Plugin(option) {
439 | return this.each(function () {
440 | var $this = $(this)
441 | var data = $this.data('bs.carousel')
442 | var options = $.extend({}, Carousel.DEFAULTS, $this.data(), typeof option == 'object' && option)
443 | var action = typeof option == 'string' ? option : options.slide
444 |
445 | if (!data) $this.data('bs.carousel', (data = new Carousel(this, options)))
446 | if (typeof option == 'number') data.to(option)
447 | else if (action) data[action]()
448 | else if (options.interval) data.pause().cycle()
449 | })
450 | }
451 |
452 | var old = $.fn.carousel
453 |
454 | $.fn.carousel = Plugin
455 | $.fn.carousel.Constructor = Carousel
456 |
457 |
458 | // CAROUSEL NO CONFLICT
459 | // ====================
460 |
461 | $.fn.carousel.noConflict = function () {
462 | $.fn.carousel = old
463 | return this
464 | }
465 |
466 |
467 | // CAROUSEL DATA-API
468 | // =================
469 |
470 | $(document).on('click.bs.carousel.data-api', '[data-slide], [data-slide-to]', function (e) {
471 | var href
472 | var $this = $(this)
473 | var $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) // strip for ie7
474 | if (!$target.hasClass('carousel')) return
475 | var options = $.extend({}, $target.data(), $this.data())
476 | var slideIndex = $this.attr('data-slide-to')
477 | if (slideIndex) options.interval = false
478 |
479 | Plugin.call($target, options)
480 |
481 | if (slideIndex) {
482 | $target.data('bs.carousel').to(slideIndex)
483 | }
484 |
485 | e.preventDefault()
486 | })
487 |
488 | $(window).on('load', function () {
489 | $('[data-ride="carousel"]').each(function () {
490 | var $carousel = $(this)
491 | Plugin.call($carousel, $carousel.data())
492 | })
493 | })
494 |
495 | }(jQuery);
496 |
497 | /* ========================================================================
498 | * Bootstrap: collapse.js v3.2.0
499 | * http://getbootstrap.com/javascript/#collapse
500 | * ========================================================================
501 | * Copyright 2011-2014 Twitter, Inc.
502 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
503 | * ======================================================================== */
504 |
505 |
506 | +function ($) {
507 | 'use strict';
508 |
509 | // COLLAPSE PUBLIC CLASS DEFINITION
510 | // ================================
511 |
512 | var Collapse = function (element, options) {
513 | this.$element = $(element)
514 | this.options = $.extend({}, Collapse.DEFAULTS, options)
515 | this.transitioning = null
516 |
517 | if (this.options.parent) this.$parent = $(this.options.parent)
518 | if (this.options.toggle) this.toggle()
519 | }
520 |
521 | Collapse.VERSION = '3.2.0'
522 |
523 | Collapse.DEFAULTS = {
524 | toggle: true
525 | }
526 |
527 | Collapse.prototype.dimension = function () {
528 | var hasWidth = this.$element.hasClass('width')
529 | return hasWidth ? 'width' : 'height'
530 | }
531 |
532 | Collapse.prototype.show = function () {
533 | if (this.transitioning || this.$element.hasClass('in')) return
534 |
535 | var startEvent = $.Event('show.bs.collapse')
536 | this.$element.trigger(startEvent)
537 | if (startEvent.isDefaultPrevented()) return
538 |
539 | var actives = this.$parent && this.$parent.find('> .panel > .in')
540 |
541 | if (actives && actives.length) {
542 | var hasData = actives.data('bs.collapse')
543 | if (hasData && hasData.transitioning) return
544 | Plugin.call(actives, 'hide')
545 | hasData || actives.data('bs.collapse', null)
546 | }
547 |
548 | var dimension = this.dimension()
549 |
550 | this.$element
551 | .removeClass('collapse')
552 | .addClass('collapsing')[dimension](0)
553 |
554 | this.transitioning = 1
555 |
556 | var complete = function () {
557 | this.$element
558 | .removeClass('collapsing')
559 | .addClass('collapse in')[dimension]('')
560 | this.transitioning = 0
561 | this.$element
562 | .trigger('shown.bs.collapse')
563 | }
564 |
565 | if (!$.support.transition) return complete.call(this)
566 |
567 | var scrollSize = $.camelCase(['scroll', dimension].join('-'))
568 |
569 | this.$element
570 | .one('bsTransitionEnd', $.proxy(complete, this))
571 | .emulateTransitionEnd(350)[dimension](this.$element[0][scrollSize])
572 | }
573 |
574 | Collapse.prototype.hide = function () {
575 | if (this.transitioning || !this.$element.hasClass('in')) return
576 |
577 | var startEvent = $.Event('hide.bs.collapse')
578 | this.$element.trigger(startEvent)
579 | if (startEvent.isDefaultPrevented()) return
580 |
581 | var dimension = this.dimension()
582 |
583 | this.$element[dimension](this.$element[dimension]())[0].offsetHeight
584 |
585 | this.$element
586 | .addClass('collapsing')
587 | .removeClass('collapse')
588 | .removeClass('in')
589 |
590 | this.transitioning = 1
591 |
592 | var complete = function () {
593 | this.transitioning = 0
594 | this.$element
595 | .trigger('hidden.bs.collapse')
596 | .removeClass('collapsing')
597 | .addClass('collapse')
598 | }
599 |
600 | if (!$.support.transition) return complete.call(this)
601 |
602 | this.$element
603 | [dimension](0)
604 | .one('bsTransitionEnd', $.proxy(complete, this))
605 | .emulateTransitionEnd(350)
606 | }
607 |
608 | Collapse.prototype.toggle = function () {
609 | this[this.$element.hasClass('in') ? 'hide' : 'show']()
610 | }
611 |
612 |
613 | // COLLAPSE PLUGIN DEFINITION
614 | // ==========================
615 |
616 | function Plugin(option) {
617 | return this.each(function () {
618 | var $this = $(this)
619 | var data = $this.data('bs.collapse')
620 | var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)
621 |
622 | if (!data && options.toggle && option == 'show') option = !option
623 | if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))
624 | if (typeof option == 'string') data[option]()
625 | })
626 | }
627 |
628 | var old = $.fn.collapse
629 |
630 | $.fn.collapse = Plugin
631 | $.fn.collapse.Constructor = Collapse
632 |
633 |
634 | // COLLAPSE NO CONFLICT
635 | // ====================
636 |
637 | $.fn.collapse.noConflict = function () {
638 | $.fn.collapse = old
639 | return this
640 | }
641 |
642 |
643 | // COLLAPSE DATA-API
644 | // =================
645 |
646 | $(document).on('click.bs.collapse.data-api', '[data-toggle="collapse"]', function (e) {
647 | var href
648 | var $this = $(this)
649 | var target = $this.attr('data-target')
650 | || e.preventDefault()
651 | || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') // strip for ie7
652 | var $target = $(target)
653 | var data = $target.data('bs.collapse')
654 | var option = data ? 'toggle' : $this.data()
655 | var parent = $this.attr('data-parent')
656 | var $parent = parent && $(parent)
657 |
658 | if (!data || !data.transitioning) {
659 | if ($parent) $parent.find('[data-toggle="collapse"][data-parent="' + parent + '"]').not($this).addClass('collapsed')
660 | $this[$target.hasClass('in') ? 'addClass' : 'removeClass']('collapsed')
661 | }
662 |
663 | Plugin.call($target, option)
664 | })
665 |
666 | }(jQuery);
667 |
668 | /* ========================================================================
669 | * Bootstrap: dropdown.js v3.2.0
670 | * http://getbootstrap.com/javascript/#dropdowns
671 | * ========================================================================
672 | * Copyright 2011-2014 Twitter, Inc.
673 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
674 | * ======================================================================== */
675 |
676 |
677 | +function ($) {
678 | 'use strict';
679 |
680 | // DROPDOWN CLASS DEFINITION
681 | // =========================
682 |
683 | var backdrop = '.dropdown-backdrop'
684 | var toggle = '[data-toggle="dropdown"]'
685 | var Dropdown = function (element) {
686 | $(element).on('click.bs.dropdown', this.toggle)
687 | }
688 |
689 | Dropdown.VERSION = '3.2.0'
690 |
691 | Dropdown.prototype.toggle = function (e) {
692 | var $this = $(this)
693 |
694 | if ($this.is('.disabled, :disabled')) return
695 |
696 | var $parent = getParent($this)
697 | var isActive = $parent.hasClass('open')
698 |
699 | clearMenus()
700 |
701 | if (!isActive) {
702 | if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {
703 | // if mobile we use a backdrop because click events don't delegate
704 | $('').insertAfter($(this)).on('click', clearMenus)
705 | }
706 |
707 | var relatedTarget = { relatedTarget: this }
708 | $parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget))
709 |
710 | if (e.isDefaultPrevented()) return
711 |
712 | $this.trigger('focus')
713 |
714 | $parent
715 | .toggleClass('open')
716 | .trigger('shown.bs.dropdown', relatedTarget)
717 | }
718 |
719 | return false
720 | }
721 |
722 | Dropdown.prototype.keydown = function (e) {
723 | if (!/(38|40|27)/.test(e.keyCode)) return
724 |
725 | var $this = $(this)
726 |
727 | e.preventDefault()
728 | e.stopPropagation()
729 |
730 | if ($this.is('.disabled, :disabled')) return
731 |
732 | var $parent = getParent($this)
733 | var isActive = $parent.hasClass('open')
734 |
735 | if (!isActive || (isActive && e.keyCode == 27)) {
736 | if (e.which == 27) $parent.find(toggle).trigger('focus')
737 | return $this.trigger('click')
738 | }
739 |
740 | var desc = ' li:not(.divider):visible a'
741 | var $items = $parent.find('[role="menu"]' + desc + ', [role="listbox"]' + desc)
742 |
743 | if (!$items.length) return
744 |
745 | var index = $items.index($items.filter(':focus'))
746 |
747 | if (e.keyCode == 38 && index > 0) index-- // up
748 | if (e.keyCode == 40 && index < $items.length - 1) index++ // down
749 | if (!~index) index = 0
750 |
751 | $items.eq(index).trigger('focus')
752 | }
753 |
754 | function clearMenus(e) {
755 | if (e && e.which === 3) return
756 | $(backdrop).remove()
757 | $(toggle).each(function () {
758 | var $parent = getParent($(this))
759 | var relatedTarget = { relatedTarget: this }
760 | if (!$parent.hasClass('open')) return
761 | $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))
762 | if (e.isDefaultPrevented()) return
763 | $parent.removeClass('open').trigger('hidden.bs.dropdown', relatedTarget)
764 | })
765 | }
766 |
767 | function getParent($this) {
768 | var selector = $this.attr('data-target')
769 |
770 | if (!selector) {
771 | selector = $this.attr('href')
772 | selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
773 | }
774 |
775 | var $parent = selector && $(selector)
776 |
777 | return $parent && $parent.length ? $parent : $this.parent()
778 | }
779 |
780 |
781 | // DROPDOWN PLUGIN DEFINITION
782 | // ==========================
783 |
784 | function Plugin(option) {
785 | return this.each(function () {
786 | var $this = $(this)
787 | var data = $this.data('bs.dropdown')
788 |
789 | if (!data) $this.data('bs.dropdown', (data = new Dropdown(this)))
790 | if (typeof option == 'string') data[option].call($this)
791 | })
792 | }
793 |
794 | var old = $.fn.dropdown
795 |
796 | $.fn.dropdown = Plugin
797 | $.fn.dropdown.Constructor = Dropdown
798 |
799 |
800 | // DROPDOWN NO CONFLICT
801 | // ====================
802 |
803 | $.fn.dropdown.noConflict = function () {
804 | $.fn.dropdown = old
805 | return this
806 | }
807 |
808 |
809 | // APPLY TO STANDARD DROPDOWN ELEMENTS
810 | // ===================================
811 |
812 | $(document)
813 | .on('click.bs.dropdown.data-api', clearMenus)
814 | .on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
815 | .on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)
816 | .on('keydown.bs.dropdown.data-api', toggle + ', [role="menu"], [role="listbox"]', Dropdown.prototype.keydown)
817 |
818 | }(jQuery);
819 |
820 | /* ========================================================================
821 | * Bootstrap: modal.js v3.2.0
822 | * http://getbootstrap.com/javascript/#modals
823 | * ========================================================================
824 | * Copyright 2011-2014 Twitter, Inc.
825 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
826 | * ======================================================================== */
827 |
828 |
829 | +function ($) {
830 | 'use strict';
831 |
832 | // MODAL CLASS DEFINITION
833 | // ======================
834 |
835 | var Modal = function (element, options) {
836 | this.options = options
837 | this.$body = $(document.body)
838 | this.$element = $(element)
839 | this.$backdrop =
840 | this.isShown = null
841 | this.scrollbarWidth = 0
842 |
843 | if (this.options.remote) {
844 | this.$element
845 | .find('.modal-content')
846 | .load(this.options.remote, $.proxy(function () {
847 | this.$element.trigger('loaded.bs.modal')
848 | }, this))
849 | }
850 | }
851 |
852 | Modal.VERSION = '3.2.0'
853 |
854 | Modal.DEFAULTS = {
855 | backdrop: true,
856 | keyboard: true,
857 | show: true
858 | }
859 |
860 | Modal.prototype.toggle = function (_relatedTarget) {
861 | return this.isShown ? this.hide() : this.show(_relatedTarget)
862 | }
863 |
864 | Modal.prototype.show = function (_relatedTarget) {
865 | var that = this
866 | var e = $.Event('show.bs.modal', { relatedTarget: _relatedTarget })
867 |
868 | this.$element.trigger(e)
869 |
870 | if (this.isShown || e.isDefaultPrevented()) return
871 |
872 | this.isShown = true
873 |
874 | this.checkScrollbar()
875 | this.$body.addClass('modal-open')
876 |
877 | this.setScrollbar()
878 | this.escape()
879 |
880 | this.$element.on('click.dismiss.bs.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this))
881 |
882 | this.backdrop(function () {
883 | var transition = $.support.transition && that.$element.hasClass('fade')
884 |
885 | if (!that.$element.parent().length) {
886 | that.$element.appendTo(that.$body) // don't move modals dom position
887 | }
888 |
889 | that.$element
890 | .show()
891 | .scrollTop(0)
892 |
893 | if (transition) {
894 | that.$element[0].offsetWidth // force reflow
895 | }
896 |
897 | that.$element
898 | .addClass('in')
899 | .attr('aria-hidden', false)
900 |
901 | that.enforceFocus()
902 |
903 | var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })
904 |
905 | transition ?
906 | that.$element.find('.modal-dialog') // wait for modal to slide in
907 | .one('bsTransitionEnd', function () {
908 | that.$element.trigger('focus').trigger(e)
909 | })
910 | .emulateTransitionEnd(300) :
911 | that.$element.trigger('focus').trigger(e)
912 | })
913 | }
914 |
915 | Modal.prototype.hide = function (e) {
916 | if (e) e.preventDefault()
917 |
918 | e = $.Event('hide.bs.modal')
919 |
920 | this.$element.trigger(e)
921 |
922 | if (!this.isShown || e.isDefaultPrevented()) return
923 |
924 | this.isShown = false
925 |
926 | this.$body.removeClass('modal-open')
927 |
928 | this.resetScrollbar()
929 | this.escape()
930 |
931 | $(document).off('focusin.bs.modal')
932 |
933 | this.$element
934 | .removeClass('in')
935 | .attr('aria-hidden', true)
936 | .off('click.dismiss.bs.modal')
937 |
938 | $.support.transition && this.$element.hasClass('fade') ?
939 | this.$element
940 | .one('bsTransitionEnd', $.proxy(this.hideModal, this))
941 | .emulateTransitionEnd(300) :
942 | this.hideModal()
943 | }
944 |
945 | Modal.prototype.enforceFocus = function () {
946 | $(document)
947 | .off('focusin.bs.modal') // guard against infinite focus loop
948 | .on('focusin.bs.modal', $.proxy(function (e) {
949 | if (this.$element[0] !== e.target && !this.$element.has(e.target).length) {
950 | this.$element.trigger('focus')
951 | }
952 | }, this))
953 | }
954 |
955 | Modal.prototype.escape = function () {
956 | if (this.isShown && this.options.keyboard) {
957 | this.$element.on('keyup.dismiss.bs.modal', $.proxy(function (e) {
958 | e.which == 27 && this.hide()
959 | }, this))
960 | } else if (!this.isShown) {
961 | this.$element.off('keyup.dismiss.bs.modal')
962 | }
963 | }
964 |
965 | Modal.prototype.hideModal = function () {
966 | var that = this
967 | this.$element.hide()
968 | this.backdrop(function () {
969 | that.$element.trigger('hidden.bs.modal')
970 | })
971 | }
972 |
973 | Modal.prototype.removeBackdrop = function () {
974 | this.$backdrop && this.$backdrop.remove()
975 | this.$backdrop = null
976 | }
977 |
978 | Modal.prototype.backdrop = function (callback) {
979 | var that = this
980 | var animate = this.$element.hasClass('fade') ? 'fade' : ''
981 |
982 | if (this.isShown && this.options.backdrop) {
983 | var doAnimate = $.support.transition && animate
984 |
985 | this.$backdrop = $('')
986 | .appendTo(this.$body)
987 |
988 | this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {
989 | if (e.target !== e.currentTarget) return
990 | this.options.backdrop == 'static'
991 | ? this.$element[0].focus.call(this.$element[0])
992 | : this.hide.call(this)
993 | }, this))
994 |
995 | if (doAnimate) this.$backdrop[0].offsetWidth // force reflow
996 |
997 | this.$backdrop.addClass('in')
998 |
999 | if (!callback) return
1000 |
1001 | doAnimate ?
1002 | this.$backdrop
1003 | .one('bsTransitionEnd', callback)
1004 | .emulateTransitionEnd(150) :
1005 | callback()
1006 |
1007 | } else if (!this.isShown && this.$backdrop) {
1008 | this.$backdrop.removeClass('in')
1009 |
1010 | var callbackRemove = function () {
1011 | that.removeBackdrop()
1012 | callback && callback()
1013 | }
1014 | $.support.transition && this.$element.hasClass('fade') ?
1015 | this.$backdrop
1016 | .one('bsTransitionEnd', callbackRemove)
1017 | .emulateTransitionEnd(150) :
1018 | callbackRemove()
1019 |
1020 | } else if (callback) {
1021 | callback()
1022 | }
1023 | }
1024 |
1025 | Modal.prototype.checkScrollbar = function () {
1026 | if (document.body.clientWidth >= window.innerWidth) return
1027 | this.scrollbarWidth = this.scrollbarWidth || this.measureScrollbar()
1028 | }
1029 |
1030 | Modal.prototype.setScrollbar = function () {
1031 | var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)
1032 | if (this.scrollbarWidth) this.$body.css('padding-right', bodyPad + this.scrollbarWidth)
1033 | }
1034 |
1035 | Modal.prototype.resetScrollbar = function () {
1036 | this.$body.css('padding-right', '')
1037 | }
1038 |
1039 | Modal.prototype.measureScrollbar = function () { // thx walsh
1040 | var scrollDiv = document.createElement('div')
1041 | scrollDiv.className = 'modal-scrollbar-measure'
1042 | this.$body.append(scrollDiv)
1043 | var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth
1044 | this.$body[0].removeChild(scrollDiv)
1045 | return scrollbarWidth
1046 | }
1047 |
1048 |
1049 | // MODAL PLUGIN DEFINITION
1050 | // =======================
1051 |
1052 | function Plugin(option, _relatedTarget) {
1053 | return this.each(function () {
1054 | var $this = $(this)
1055 | var data = $this.data('bs.modal')
1056 | var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option)
1057 |
1058 | if (!data) $this.data('bs.modal', (data = new Modal(this, options)))
1059 | if (typeof option == 'string') data[option](_relatedTarget)
1060 | else if (options.show) data.show(_relatedTarget)
1061 | })
1062 | }
1063 |
1064 | var old = $.fn.modal
1065 |
1066 | $.fn.modal = Plugin
1067 | $.fn.modal.Constructor = Modal
1068 |
1069 |
1070 | // MODAL NO CONFLICT
1071 | // =================
1072 |
1073 | $.fn.modal.noConflict = function () {
1074 | $.fn.modal = old
1075 | return this
1076 | }
1077 |
1078 |
1079 | // MODAL DATA-API
1080 | // ==============
1081 |
1082 | $(document).on('click.bs.modal.data-api', '[data-toggle="modal"]', function (e) {
1083 | var $this = $(this)
1084 | var href = $this.attr('href')
1085 | var $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) // strip for ie7
1086 | var option = $target.data('bs.modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())
1087 |
1088 | if ($this.is('a')) e.preventDefault()
1089 |
1090 | $target.one('show.bs.modal', function (showEvent) {
1091 | if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown
1092 | $target.one('hidden.bs.modal', function () {
1093 | $this.is(':visible') && $this.trigger('focus')
1094 | })
1095 | })
1096 | Plugin.call($target, option, this)
1097 | })
1098 |
1099 | }(jQuery);
1100 |
1101 | /* ========================================================================
1102 | * Bootstrap: tooltip.js v3.2.0
1103 | * http://getbootstrap.com/javascript/#tooltip
1104 | * Inspired by the original jQuery.tipsy by Jason Frame
1105 | * ========================================================================
1106 | * Copyright 2011-2014 Twitter, Inc.
1107 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
1108 | * ======================================================================== */
1109 |
1110 |
1111 | +function ($) {
1112 | 'use strict';
1113 |
1114 | // TOOLTIP PUBLIC CLASS DEFINITION
1115 | // ===============================
1116 |
1117 | var Tooltip = function (element, options) {
1118 | this.type =
1119 | this.options =
1120 | this.enabled =
1121 | this.timeout =
1122 | this.hoverState =
1123 | this.$element = null
1124 |
1125 | this.init('tooltip', element, options)
1126 | }
1127 |
1128 | Tooltip.VERSION = '3.2.0'
1129 |
1130 | Tooltip.DEFAULTS = {
1131 | animation: true,
1132 | placement: 'top',
1133 | selector: false,
1134 | template: '',
1135 | trigger: 'hover focus',
1136 | title: '',
1137 | delay: 0,
1138 | html: false,
1139 | container: false,
1140 | viewport: {
1141 | selector: 'body',
1142 | padding: 0
1143 | }
1144 | }
1145 |
1146 | Tooltip.prototype.init = function (type, element, options) {
1147 | this.enabled = true
1148 | this.type = type
1149 | this.$element = $(element)
1150 | this.options = this.getOptions(options)
1151 | this.$viewport = this.options.viewport && $(this.options.viewport.selector || this.options.viewport)
1152 |
1153 | var triggers = this.options.trigger.split(' ')
1154 |
1155 | for (var i = triggers.length; i--;) {
1156 | var trigger = triggers[i]
1157 |
1158 | if (trigger == 'click') {
1159 | this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))
1160 | } else if (trigger != 'manual') {
1161 | var eventIn = trigger == 'hover' ? 'mouseenter' : 'focusin'
1162 | var eventOut = trigger == 'hover' ? 'mouseleave' : 'focusout'
1163 |
1164 | this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))
1165 | this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))
1166 | }
1167 | }
1168 |
1169 | this.options.selector ?
1170 | (this._options = $.extend({}, this.options, { trigger: 'manual', selector: '' })) :
1171 | this.fixTitle()
1172 | }
1173 |
1174 | Tooltip.prototype.getDefaults = function () {
1175 | return Tooltip.DEFAULTS
1176 | }
1177 |
1178 | Tooltip.prototype.getOptions = function (options) {
1179 | options = $.extend({}, this.getDefaults(), this.$element.data(), options)
1180 |
1181 | if (options.delay && typeof options.delay == 'number') {
1182 | options.delay = {
1183 | show: options.delay,
1184 | hide: options.delay
1185 | }
1186 | }
1187 |
1188 | return options
1189 | }
1190 |
1191 | Tooltip.prototype.getDelegateOptions = function () {
1192 | var options = {}
1193 | var defaults = this.getDefaults()
1194 |
1195 | this._options && $.each(this._options, function (key, value) {
1196 | if (defaults[key] != value) options[key] = value
1197 | })
1198 |
1199 | return options
1200 | }
1201 |
1202 | Tooltip.prototype.enter = function (obj) {
1203 | var self = obj instanceof this.constructor ?
1204 | obj : $(obj.currentTarget).data('bs.' + this.type)
1205 |
1206 | if (!self) {
1207 | self = new this.constructor(obj.currentTarget, this.getDelegateOptions())
1208 | $(obj.currentTarget).data('bs.' + this.type, self)
1209 | }
1210 |
1211 | clearTimeout(self.timeout)
1212 |
1213 | self.hoverState = 'in'
1214 |
1215 | if (!self.options.delay || !self.options.delay.show) return self.show()
1216 |
1217 | self.timeout = setTimeout(function () {
1218 | if (self.hoverState == 'in') self.show()
1219 | }, self.options.delay.show)
1220 | }
1221 |
1222 | Tooltip.prototype.leave = function (obj) {
1223 | var self = obj instanceof this.constructor ?
1224 | obj : $(obj.currentTarget).data('bs.' + this.type)
1225 |
1226 | if (!self) {
1227 | self = new this.constructor(obj.currentTarget, this.getDelegateOptions())
1228 | $(obj.currentTarget).data('bs.' + this.type, self)
1229 | }
1230 |
1231 | clearTimeout(self.timeout)
1232 |
1233 | self.hoverState = 'out'
1234 |
1235 | if (!self.options.delay || !self.options.delay.hide) return self.hide()
1236 |
1237 | self.timeout = setTimeout(function () {
1238 | if (self.hoverState == 'out') self.hide()
1239 | }, self.options.delay.hide)
1240 | }
1241 |
1242 | Tooltip.prototype.show = function () {
1243 | var e = $.Event('show.bs.' + this.type)
1244 |
1245 | if (this.hasContent() && this.enabled) {
1246 | this.$element.trigger(e)
1247 |
1248 | var inDom = $.contains(document.documentElement, this.$element[0])
1249 | if (e.isDefaultPrevented() || !inDom) return
1250 | var that = this
1251 |
1252 | var $tip = this.tip()
1253 |
1254 | var tipId = this.getUID(this.type)
1255 |
1256 | this.setContent()
1257 | $tip.attr('id', tipId)
1258 | this.$element.attr('aria-describedby', tipId)
1259 |
1260 | if (this.options.animation) $tip.addClass('fade')
1261 |
1262 | var placement = typeof this.options.placement == 'function' ?
1263 | this.options.placement.call(this, $tip[0], this.$element[0]) :
1264 | this.options.placement
1265 |
1266 | var autoToken = /\s?auto?\s?/i
1267 | var autoPlace = autoToken.test(placement)
1268 | if (autoPlace) placement = placement.replace(autoToken, '') || 'top'
1269 |
1270 | $tip
1271 | .detach()
1272 | .css({ top: 0, left: 0, display: 'block' })
1273 | .addClass(placement)
1274 | .data('bs.' + this.type, this)
1275 |
1276 | this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)
1277 |
1278 | var pos = this.getPosition()
1279 | var actualWidth = $tip[0].offsetWidth
1280 | var actualHeight = $tip[0].offsetHeight
1281 |
1282 | if (autoPlace) {
1283 | var orgPlacement = placement
1284 | var $parent = this.$element.parent()
1285 | var parentDim = this.getPosition($parent)
1286 |
1287 | placement = placement == 'bottom' && pos.top + pos.height + actualHeight - parentDim.scroll > parentDim.height ? 'top' :
1288 | placement == 'top' && pos.top - parentDim.scroll - actualHeight < 0 ? 'bottom' :
1289 | placement == 'right' && pos.right + actualWidth > parentDim.width ? 'left' :
1290 | placement == 'left' && pos.left - actualWidth < parentDim.left ? 'right' :
1291 | placement
1292 |
1293 | $tip
1294 | .removeClass(orgPlacement)
1295 | .addClass(placement)
1296 | }
1297 |
1298 | var calculatedOffset = this.getCalculatedOffset(placement, pos, actualWidth, actualHeight)
1299 |
1300 | this.applyPlacement(calculatedOffset, placement)
1301 |
1302 | var complete = function () {
1303 | that.$element.trigger('shown.bs.' + that.type)
1304 | that.hoverState = null
1305 | }
1306 |
1307 | $.support.transition && this.$tip.hasClass('fade') ?
1308 | $tip
1309 | .one('bsTransitionEnd', complete)
1310 | .emulateTransitionEnd(150) :
1311 | complete()
1312 | }
1313 | }
1314 |
1315 | Tooltip.prototype.applyPlacement = function (offset, placement) {
1316 | var $tip = this.tip()
1317 | var width = $tip[0].offsetWidth
1318 | var height = $tip[0].offsetHeight
1319 |
1320 | // manually read margins because getBoundingClientRect includes difference
1321 | var marginTop = parseInt($tip.css('margin-top'), 10)
1322 | var marginLeft = parseInt($tip.css('margin-left'), 10)
1323 |
1324 | // we must check for NaN for ie 8/9
1325 | if (isNaN(marginTop)) marginTop = 0
1326 | if (isNaN(marginLeft)) marginLeft = 0
1327 |
1328 | offset.top = offset.top + marginTop
1329 | offset.left = offset.left + marginLeft
1330 |
1331 | // $.fn.offset doesn't round pixel values
1332 | // so we use setOffset directly with our own function B-0
1333 | $.offset.setOffset($tip[0], $.extend({
1334 | using: function (props) {
1335 | $tip.css({
1336 | top: Math.round(props.top),
1337 | left: Math.round(props.left)
1338 | })
1339 | }
1340 | }, offset), 0)
1341 |
1342 | $tip.addClass('in')
1343 |
1344 | // check to see if placing tip in new offset caused the tip to resize itself
1345 | var actualWidth = $tip[0].offsetWidth
1346 | var actualHeight = $tip[0].offsetHeight
1347 |
1348 | if (placement == 'top' && actualHeight != height) {
1349 | offset.top = offset.top + height - actualHeight
1350 | }
1351 |
1352 | var delta = this.getViewportAdjustedDelta(placement, offset, actualWidth, actualHeight)
1353 |
1354 | if (delta.left) offset.left += delta.left
1355 | else offset.top += delta.top
1356 |
1357 | var arrowDelta = delta.left ? delta.left * 2 - width + actualWidth : delta.top * 2 - height + actualHeight
1358 | var arrowPosition = delta.left ? 'left' : 'top'
1359 | var arrowOffsetPosition = delta.left ? 'offsetWidth' : 'offsetHeight'
1360 |
1361 | $tip.offset(offset)
1362 | this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], arrowPosition)
1363 | }
1364 |
1365 | Tooltip.prototype.replaceArrow = function (delta, dimension, position) {
1366 | this.arrow().css(position, delta ? (50 * (1 - delta / dimension) + '%') : '')
1367 | }
1368 |
1369 | Tooltip.prototype.setContent = function () {
1370 | var $tip = this.tip()
1371 | var title = this.getTitle()
1372 |
1373 | $tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)
1374 | $tip.removeClass('fade in top bottom left right')
1375 | }
1376 |
1377 | Tooltip.prototype.hide = function () {
1378 | var that = this
1379 | var $tip = this.tip()
1380 | var e = $.Event('hide.bs.' + this.type)
1381 |
1382 | this.$element.removeAttr('aria-describedby')
1383 |
1384 | function complete() {
1385 | if (that.hoverState != 'in') $tip.detach()
1386 | that.$element.trigger('hidden.bs.' + that.type)
1387 | }
1388 |
1389 | this.$element.trigger(e)
1390 |
1391 | if (e.isDefaultPrevented()) return
1392 |
1393 | $tip.removeClass('in')
1394 |
1395 | $.support.transition && this.$tip.hasClass('fade') ?
1396 | $tip
1397 | .one('bsTransitionEnd', complete)
1398 | .emulateTransitionEnd(150) :
1399 | complete()
1400 |
1401 | this.hoverState = null
1402 |
1403 | return this
1404 | }
1405 |
1406 | Tooltip.prototype.fixTitle = function () {
1407 | var $e = this.$element
1408 | if ($e.attr('title') || typeof ($e.attr('data-original-title')) != 'string') {
1409 | $e.attr('data-original-title', $e.attr('title') || '').attr('title', '')
1410 | }
1411 | }
1412 |
1413 | Tooltip.prototype.hasContent = function () {
1414 | return this.getTitle()
1415 | }
1416 |
1417 | Tooltip.prototype.getPosition = function ($element) {
1418 | $element = $element || this.$element
1419 | var el = $element[0]
1420 | var isBody = el.tagName == 'BODY'
1421 | return $.extend({}, (typeof el.getBoundingClientRect == 'function') ? el.getBoundingClientRect() : null, {
1422 | scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop(),
1423 | width: isBody ? $(window).width() : $element.outerWidth(),
1424 | height: isBody ? $(window).height() : $element.outerHeight()
1425 | }, isBody ? { top: 0, left: 0 } : $element.offset())
1426 | }
1427 |
1428 | Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {
1429 | return placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } :
1430 | placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :
1431 | placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :
1432 | /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }
1433 |
1434 | }
1435 |
1436 | Tooltip.prototype.getViewportAdjustedDelta = function (placement, pos, actualWidth, actualHeight) {
1437 | var delta = { top: 0, left: 0 }
1438 | if (!this.$viewport) return delta
1439 |
1440 | var viewportPadding = this.options.viewport && this.options.viewport.padding || 0
1441 | var viewportDimensions = this.getPosition(this.$viewport)
1442 |
1443 | if (/right|left/.test(placement)) {
1444 | var topEdgeOffset = pos.top - viewportPadding - viewportDimensions.scroll
1445 | var bottomEdgeOffset = pos.top + viewportPadding - viewportDimensions.scroll + actualHeight
1446 | if (topEdgeOffset < viewportDimensions.top) { // top overflow
1447 | delta.top = viewportDimensions.top - topEdgeOffset
1448 | } else if (bottomEdgeOffset > viewportDimensions.top + viewportDimensions.height) { // bottom overflow
1449 | delta.top = viewportDimensions.top + viewportDimensions.height - bottomEdgeOffset
1450 | }
1451 | } else {
1452 | var leftEdgeOffset = pos.left - viewportPadding
1453 | var rightEdgeOffset = pos.left + viewportPadding + actualWidth
1454 | if (leftEdgeOffset < viewportDimensions.left) { // left overflow
1455 | delta.left = viewportDimensions.left - leftEdgeOffset
1456 | } else if (rightEdgeOffset > viewportDimensions.width) { // right overflow
1457 | delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset
1458 | }
1459 | }
1460 |
1461 | return delta
1462 | }
1463 |
1464 | Tooltip.prototype.getTitle = function () {
1465 | var title
1466 | var $e = this.$element
1467 | var o = this.options
1468 |
1469 | title = $e.attr('data-original-title')
1470 | || (typeof o.title == 'function' ? o.title.call($e[0]) : o.title)
1471 |
1472 | return title
1473 | }
1474 |
1475 | Tooltip.prototype.getUID = function (prefix) {
1476 | do prefix += ~~(Math.random() * 1000000)
1477 | while (document.getElementById(prefix))
1478 | return prefix
1479 | }
1480 |
1481 | Tooltip.prototype.tip = function () {
1482 | return (this.$tip = this.$tip || $(this.options.template))
1483 | }
1484 |
1485 | Tooltip.prototype.arrow = function () {
1486 | return (this.$arrow = this.$arrow || this.tip().find('.tooltip-arrow'))
1487 | }
1488 |
1489 | Tooltip.prototype.validate = function () {
1490 | if (!this.$element[0].parentNode) {
1491 | this.hide()
1492 | this.$element = null
1493 | this.options = null
1494 | }
1495 | }
1496 |
1497 | Tooltip.prototype.enable = function () {
1498 | this.enabled = true
1499 | }
1500 |
1501 | Tooltip.prototype.disable = function () {
1502 | this.enabled = false
1503 | }
1504 |
1505 | Tooltip.prototype.toggleEnabled = function () {
1506 | this.enabled = !this.enabled
1507 | }
1508 |
1509 | Tooltip.prototype.toggle = function (e) {
1510 | var self = this
1511 | if (e) {
1512 | self = $(e.currentTarget).data('bs.' + this.type)
1513 | if (!self) {
1514 | self = new this.constructor(e.currentTarget, this.getDelegateOptions())
1515 | $(e.currentTarget).data('bs.' + this.type, self)
1516 | }
1517 | }
1518 |
1519 | self.tip().hasClass('in') ? self.leave(self) : self.enter(self)
1520 | }
1521 |
1522 | Tooltip.prototype.destroy = function () {
1523 | clearTimeout(this.timeout)
1524 | this.hide().$element.off('.' + this.type).removeData('bs.' + this.type)
1525 | }
1526 |
1527 |
1528 | // TOOLTIP PLUGIN DEFINITION
1529 | // =========================
1530 |
1531 | function Plugin(option) {
1532 | return this.each(function () {
1533 | var $this = $(this)
1534 | var data = $this.data('bs.tooltip')
1535 | var options = typeof option == 'object' && option
1536 |
1537 | if (!data && option == 'destroy') return
1538 | if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))
1539 | if (typeof option == 'string') data[option]()
1540 | })
1541 | }
1542 |
1543 | var old = $.fn.tooltip
1544 |
1545 | $.fn.tooltip = Plugin
1546 | $.fn.tooltip.Constructor = Tooltip
1547 |
1548 |
1549 | // TOOLTIP NO CONFLICT
1550 | // ===================
1551 |
1552 | $.fn.tooltip.noConflict = function () {
1553 | $.fn.tooltip = old
1554 | return this
1555 | }
1556 |
1557 | }(jQuery);
1558 |
1559 | /* ========================================================================
1560 | * Bootstrap: popover.js v3.2.0
1561 | * http://getbootstrap.com/javascript/#popovers
1562 | * ========================================================================
1563 | * Copyright 2011-2014 Twitter, Inc.
1564 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
1565 | * ======================================================================== */
1566 |
1567 |
1568 | +function ($) {
1569 | 'use strict';
1570 |
1571 | // POPOVER PUBLIC CLASS DEFINITION
1572 | // ===============================
1573 |
1574 | var Popover = function (element, options) {
1575 | this.init('popover', element, options)
1576 | }
1577 |
1578 | if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')
1579 |
1580 | Popover.VERSION = '3.2.0'
1581 |
1582 | Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {
1583 | placement: 'right',
1584 | trigger: 'click',
1585 | content: '',
1586 | template: ''
1587 | })
1588 |
1589 |
1590 | // NOTE: POPOVER EXTENDS tooltip.js
1591 | // ================================
1592 |
1593 | Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype)
1594 |
1595 | Popover.prototype.constructor = Popover
1596 |
1597 | Popover.prototype.getDefaults = function () {
1598 | return Popover.DEFAULTS
1599 | }
1600 |
1601 | Popover.prototype.setContent = function () {
1602 | var $tip = this.tip()
1603 | var title = this.getTitle()
1604 | var content = this.getContent()
1605 |
1606 | $tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)
1607 | $tip.find('.popover-content').empty()[ // we use append for html objects to maintain js events
1608 | this.options.html ? (typeof content == 'string' ? 'html' : 'append') : 'text'
1609 | ](content)
1610 |
1611 | $tip.removeClass('fade top bottom left right in')
1612 |
1613 | // IE8 doesn't accept hiding via the `:empty` pseudo selector, we have to do
1614 | // this manually by checking the contents.
1615 | if (!$tip.find('.popover-title').html()) $tip.find('.popover-title').hide()
1616 | }
1617 |
1618 | Popover.prototype.hasContent = function () {
1619 | return this.getTitle() || this.getContent()
1620 | }
1621 |
1622 | Popover.prototype.getContent = function () {
1623 | var $e = this.$element
1624 | var o = this.options
1625 |
1626 | return $e.attr('data-content')
1627 | || (typeof o.content == 'function' ?
1628 | o.content.call($e[0]) :
1629 | o.content)
1630 | }
1631 |
1632 | Popover.prototype.arrow = function () {
1633 | return (this.$arrow = this.$arrow || this.tip().find('.arrow'))
1634 | }
1635 |
1636 | Popover.prototype.tip = function () {
1637 | if (!this.$tip) this.$tip = $(this.options.template)
1638 | return this.$tip
1639 | }
1640 |
1641 |
1642 | // POPOVER PLUGIN DEFINITION
1643 | // =========================
1644 |
1645 | function Plugin(option) {
1646 | return this.each(function () {
1647 | var $this = $(this)
1648 | var data = $this.data('bs.popover')
1649 | var options = typeof option == 'object' && option
1650 |
1651 | if (!data && option == 'destroy') return
1652 | if (!data) $this.data('bs.popover', (data = new Popover(this, options)))
1653 | if (typeof option == 'string') data[option]()
1654 | })
1655 | }
1656 |
1657 | var old = $.fn.popover
1658 |
1659 | $.fn.popover = Plugin
1660 | $.fn.popover.Constructor = Popover
1661 |
1662 |
1663 | // POPOVER NO CONFLICT
1664 | // ===================
1665 |
1666 | $.fn.popover.noConflict = function () {
1667 | $.fn.popover = old
1668 | return this
1669 | }
1670 |
1671 | }(jQuery);
1672 |
1673 | /* ========================================================================
1674 | * Bootstrap: scrollspy.js v3.2.0
1675 | * http://getbootstrap.com/javascript/#scrollspy
1676 | * ========================================================================
1677 | * Copyright 2011-2014 Twitter, Inc.
1678 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
1679 | * ======================================================================== */
1680 |
1681 |
1682 | +function ($) {
1683 | 'use strict';
1684 |
1685 | // SCROLLSPY CLASS DEFINITION
1686 | // ==========================
1687 |
1688 | function ScrollSpy(element, options) {
1689 | var process = $.proxy(this.process, this)
1690 |
1691 | this.$body = $('body')
1692 | this.$scrollElement = $(element).is('body') ? $(window) : $(element)
1693 | this.options = $.extend({}, ScrollSpy.DEFAULTS, options)
1694 | this.selector = (this.options.target || '') + ' .nav li > a'
1695 | this.offsets = []
1696 | this.targets = []
1697 | this.activeTarget = null
1698 | this.scrollHeight = 0
1699 |
1700 | this.$scrollElement.on('scroll.bs.scrollspy', process)
1701 | this.refresh()
1702 | this.process()
1703 | }
1704 |
1705 | ScrollSpy.VERSION = '3.2.0'
1706 |
1707 | ScrollSpy.DEFAULTS = {
1708 | offset: 10
1709 | }
1710 |
1711 | ScrollSpy.prototype.getScrollHeight = function () {
1712 | return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight)
1713 | }
1714 |
1715 | ScrollSpy.prototype.refresh = function () {
1716 | var offsetMethod = 'offset'
1717 | var offsetBase = 0
1718 |
1719 | if (!$.isWindow(this.$scrollElement[0])) {
1720 | offsetMethod = 'position'
1721 | offsetBase = this.$scrollElement.scrollTop()
1722 | }
1723 |
1724 | this.offsets = []
1725 | this.targets = []
1726 | this.scrollHeight = this.getScrollHeight()
1727 |
1728 | var self = this
1729 |
1730 | this.$body
1731 | .find(this.selector)
1732 | .map(function () {
1733 | var $el = $(this)
1734 | var href = $el.data('target') || $el.attr('href')
1735 | var $href = /^#./.test(href) && $(href)
1736 |
1737 | return ($href
1738 | && $href.length
1739 | && $href.is(':visible')
1740 | && [[$href[offsetMethod]().top + offsetBase, href]]) || null
1741 | })
1742 | .sort(function (a, b) { return a[0] - b[0] })
1743 | .each(function () {
1744 | self.offsets.push(this[0])
1745 | self.targets.push(this[1])
1746 | })
1747 | }
1748 |
1749 | ScrollSpy.prototype.process = function () {
1750 | var scrollTop = this.$scrollElement.scrollTop() + this.options.offset
1751 | var scrollHeight = this.getScrollHeight()
1752 | var maxScroll = this.options.offset + scrollHeight - this.$scrollElement.height()
1753 | var offsets = this.offsets
1754 | var targets = this.targets
1755 | var activeTarget = this.activeTarget
1756 | var i
1757 |
1758 | if (this.scrollHeight != scrollHeight) {
1759 | this.refresh()
1760 | }
1761 |
1762 | if (scrollTop >= maxScroll) {
1763 | return activeTarget != (i = targets[targets.length - 1]) && this.activate(i)
1764 | }
1765 |
1766 | if (activeTarget && scrollTop <= offsets[0]) {
1767 | return activeTarget != (i = targets[0]) && this.activate(i)
1768 | }
1769 |
1770 | for (i = offsets.length; i--;) {
1771 | activeTarget != targets[i]
1772 | && scrollTop >= offsets[i]
1773 | && (!offsets[i + 1] || scrollTop <= offsets[i + 1])
1774 | && this.activate(targets[i])
1775 | }
1776 | }
1777 |
1778 | ScrollSpy.prototype.activate = function (target) {
1779 | this.activeTarget = target
1780 |
1781 | $(this.selector)
1782 | .parentsUntil(this.options.target, '.active')
1783 | .removeClass('active')
1784 |
1785 | var selector = this.selector +
1786 | '[data-target="' + target + '"],' +
1787 | this.selector + '[href="' + target + '"]'
1788 |
1789 | var active = $(selector)
1790 | .parents('li')
1791 | .addClass('active')
1792 |
1793 | if (active.parent('.dropdown-menu').length) {
1794 | active = active
1795 | .closest('li.dropdown')
1796 | .addClass('active')
1797 | }
1798 |
1799 | active.trigger('activate.bs.scrollspy')
1800 | }
1801 |
1802 |
1803 | // SCROLLSPY PLUGIN DEFINITION
1804 | // ===========================
1805 |
1806 | function Plugin(option) {
1807 | return this.each(function () {
1808 | var $this = $(this)
1809 | var data = $this.data('bs.scrollspy')
1810 | var options = typeof option == 'object' && option
1811 |
1812 | if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options)))
1813 | if (typeof option == 'string') data[option]()
1814 | })
1815 | }
1816 |
1817 | var old = $.fn.scrollspy
1818 |
1819 | $.fn.scrollspy = Plugin
1820 | $.fn.scrollspy.Constructor = ScrollSpy
1821 |
1822 |
1823 | // SCROLLSPY NO CONFLICT
1824 | // =====================
1825 |
1826 | $.fn.scrollspy.noConflict = function () {
1827 | $.fn.scrollspy = old
1828 | return this
1829 | }
1830 |
1831 |
1832 | // SCROLLSPY DATA-API
1833 | // ==================
1834 |
1835 | $(window).on('load.bs.scrollspy.data-api', function () {
1836 | $('[data-spy="scroll"]').each(function () {
1837 | var $spy = $(this)
1838 | Plugin.call($spy, $spy.data())
1839 | })
1840 | })
1841 |
1842 | }(jQuery);
1843 |
1844 | /* ========================================================================
1845 | * Bootstrap: tab.js v3.2.0
1846 | * http://getbootstrap.com/javascript/#tabs
1847 | * ========================================================================
1848 | * Copyright 2011-2014 Twitter, Inc.
1849 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
1850 | * ======================================================================== */
1851 |
1852 |
1853 | +function ($) {
1854 | 'use strict';
1855 |
1856 | // TAB CLASS DEFINITION
1857 | // ====================
1858 |
1859 | var Tab = function (element) {
1860 | this.element = $(element)
1861 | }
1862 |
1863 | Tab.VERSION = '3.2.0'
1864 |
1865 | Tab.prototype.show = function () {
1866 | var $this = this.element
1867 | var $ul = $this.closest('ul:not(.dropdown-menu)')
1868 | var selector = $this.data('target')
1869 |
1870 | if (!selector) {
1871 | selector = $this.attr('href')
1872 | selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
1873 | }
1874 |
1875 | if ($this.parent('li').hasClass('active')) return
1876 |
1877 | var previous = $ul.find('.active:last a')[0]
1878 | var e = $.Event('show.bs.tab', {
1879 | relatedTarget: previous
1880 | })
1881 |
1882 | $this.trigger(e)
1883 |
1884 | if (e.isDefaultPrevented()) return
1885 |
1886 | var $target = $(selector)
1887 |
1888 | this.activate($this.closest('li'), $ul)
1889 | this.activate($target, $target.parent(), function () {
1890 | $this.trigger({
1891 | type: 'shown.bs.tab',
1892 | relatedTarget: previous
1893 | })
1894 | })
1895 | }
1896 |
1897 | Tab.prototype.activate = function (element, container, callback) {
1898 | var $active = container.find('> .active')
1899 | var transition = callback
1900 | && $.support.transition
1901 | && $active.hasClass('fade')
1902 |
1903 | function next() {
1904 | $active
1905 | .removeClass('active')
1906 | .find('> .dropdown-menu > .active')
1907 | .removeClass('active')
1908 |
1909 | element.addClass('active')
1910 |
1911 | if (transition) {
1912 | element[0].offsetWidth // reflow for transition
1913 | element.addClass('in')
1914 | } else {
1915 | element.removeClass('fade')
1916 | }
1917 |
1918 | if (element.parent('.dropdown-menu')) {
1919 | element.closest('li.dropdown').addClass('active')
1920 | }
1921 |
1922 | callback && callback()
1923 | }
1924 |
1925 | transition ?
1926 | $active
1927 | .one('bsTransitionEnd', next)
1928 | .emulateTransitionEnd(150) :
1929 | next()
1930 |
1931 | $active.removeClass('in')
1932 | }
1933 |
1934 |
1935 | // TAB PLUGIN DEFINITION
1936 | // =====================
1937 |
1938 | function Plugin(option) {
1939 | return this.each(function () {
1940 | var $this = $(this)
1941 | var data = $this.data('bs.tab')
1942 |
1943 | if (!data) $this.data('bs.tab', (data = new Tab(this)))
1944 | if (typeof option == 'string') data[option]()
1945 | })
1946 | }
1947 |
1948 | var old = $.fn.tab
1949 |
1950 | $.fn.tab = Plugin
1951 | $.fn.tab.Constructor = Tab
1952 |
1953 |
1954 | // TAB NO CONFLICT
1955 | // ===============
1956 |
1957 | $.fn.tab.noConflict = function () {
1958 | $.fn.tab = old
1959 | return this
1960 | }
1961 |
1962 |
1963 | // TAB DATA-API
1964 | // ============
1965 |
1966 | $(document).on('click.bs.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (e) {
1967 | e.preventDefault()
1968 | Plugin.call($(this), 'show')
1969 | })
1970 |
1971 | }(jQuery);
1972 |
1973 | /* ========================================================================
1974 | * Bootstrap: affix.js v3.2.0
1975 | * http://getbootstrap.com/javascript/#affix
1976 | * ========================================================================
1977 | * Copyright 2011-2014 Twitter, Inc.
1978 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
1979 | * ======================================================================== */
1980 |
1981 |
1982 | +function ($) {
1983 | 'use strict';
1984 |
1985 | // AFFIX CLASS DEFINITION
1986 | // ======================
1987 |
1988 | var Affix = function (element, options) {
1989 | this.options = $.extend({}, Affix.DEFAULTS, options)
1990 |
1991 | this.$target = $(this.options.target)
1992 | .on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this))
1993 | .on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this))
1994 |
1995 | this.$element = $(element)
1996 | this.affixed =
1997 | this.unpin =
1998 | this.pinnedOffset = null
1999 |
2000 | this.checkPosition()
2001 | }
2002 |
2003 | Affix.VERSION = '3.2.0'
2004 |
2005 | Affix.RESET = 'affix affix-top affix-bottom'
2006 |
2007 | Affix.DEFAULTS = {
2008 | offset: 0,
2009 | target: window
2010 | }
2011 |
2012 | Affix.prototype.getPinnedOffset = function () {
2013 | if (this.pinnedOffset) return this.pinnedOffset
2014 | this.$element.removeClass(Affix.RESET).addClass('affix')
2015 | var scrollTop = this.$target.scrollTop()
2016 | var position = this.$element.offset()
2017 | return (this.pinnedOffset = position.top - scrollTop)
2018 | }
2019 |
2020 | Affix.prototype.checkPositionWithEventLoop = function () {
2021 | setTimeout($.proxy(this.checkPosition, this), 1)
2022 | }
2023 |
2024 | Affix.prototype.checkPosition = function () {
2025 | if (!this.$element.is(':visible')) return
2026 |
2027 | var scrollHeight = $(document).height()
2028 | var scrollTop = this.$target.scrollTop()
2029 | var position = this.$element.offset()
2030 | var offset = this.options.offset
2031 | var offsetTop = offset.top
2032 | var offsetBottom = offset.bottom
2033 |
2034 | if (typeof offset != 'object') offsetBottom = offsetTop = offset
2035 | if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element)
2036 | if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element)
2037 |
2038 | var affix = this.unpin != null && (scrollTop + this.unpin <= position.top) ? false :
2039 | offsetBottom != null && (position.top + this.$element.height() >= scrollHeight - offsetBottom) ? 'bottom' :
2040 | offsetTop != null && (scrollTop <= offsetTop) ? 'top' : false
2041 |
2042 | if (this.affixed === affix) return
2043 | if (this.unpin != null) this.$element.css('top', '')
2044 |
2045 | var affixType = 'affix' + (affix ? '-' + affix : '')
2046 | var e = $.Event(affixType + '.bs.affix')
2047 |
2048 | this.$element.trigger(e)
2049 |
2050 | if (e.isDefaultPrevented()) return
2051 |
2052 | this.affixed = affix
2053 | this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null
2054 |
2055 | this.$element
2056 | .removeClass(Affix.RESET)
2057 | .addClass(affixType)
2058 | .trigger($.Event(affixType.replace('affix', 'affixed')))
2059 |
2060 | if (affix == 'bottom') {
2061 | this.$element.offset({
2062 | top: scrollHeight - this.$element.height() - offsetBottom
2063 | })
2064 | }
2065 | }
2066 |
2067 |
2068 | // AFFIX PLUGIN DEFINITION
2069 | // =======================
2070 |
2071 | function Plugin(option) {
2072 | return this.each(function () {
2073 | var $this = $(this)
2074 | var data = $this.data('bs.affix')
2075 | var options = typeof option == 'object' && option
2076 |
2077 | if (!data) $this.data('bs.affix', (data = new Affix(this, options)))
2078 | if (typeof option == 'string') data[option]()
2079 | })
2080 | }
2081 |
2082 | var old = $.fn.affix
2083 |
2084 | $.fn.affix = Plugin
2085 | $.fn.affix.Constructor = Affix
2086 |
2087 |
2088 | // AFFIX NO CONFLICT
2089 | // =================
2090 |
2091 | $.fn.affix.noConflict = function () {
2092 | $.fn.affix = old
2093 | return this
2094 | }
2095 |
2096 |
2097 | // AFFIX DATA-API
2098 | // ==============
2099 |
2100 | $(window).on('load', function () {
2101 | $('[data-spy="affix"]').each(function () {
2102 | var $spy = $(this)
2103 | var data = $spy.data()
2104 |
2105 | data.offset = data.offset || {}
2106 |
2107 | if (data.offsetBottom) data.offset.bottom = data.offsetBottom
2108 | if (data.offsetTop) data.offset.top = data.offsetTop
2109 |
2110 | Plugin.call($spy, data)
2111 | })
2112 | })
2113 |
2114 | }(jQuery);
2115 |
--------------------------------------------------------------------------------
/js/bootstrap.min.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * Bootstrap v3.2.0 (http://getbootstrap.com)
3 | * Copyright 2011-2014 Twitter, Inc.
4 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
5 | */
6 | if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript 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]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",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(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){return a(b.target).is(this)?b.handleObj.handler.apply(this,arguments):void 0}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.2.0",d.prototype.close=function(b){function c(){f.detach().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("bsTransitionEnd",c).emulateTransitionEnd(150):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.2.0",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),d[e](null==f[b]?this.options[b]:f[b]),setTimeout(a.proxy(function(){"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")&&(c.prop("checked")&&this.$element.hasClass("active")?a=!1:b.find(".active").removeClass("active")),a&&c.prop("checked",!this.$element.hasClass("active")).trigger("change")}a&&this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target);d.hasClass("btn")||(d=d.closest(".btn")),b.call(d,"toggle"),c.preventDefault()})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b).on("keydown.bs.carousel",a.proxy(this.keydown,this)),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.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.2.0",c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0},c.prototype.keydown=function(a){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()},c.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},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.to=function(b){var c=this,d=this.getItemIndex(this.$active=this.$element.find(".item.active"));return b>this.$items.length-1||0>b?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){c.to(b)}):d==b?this.pause().cycle():this.slide(b>d?"next":"prev",a(this.$items[b]))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){return this.sliding?void 0:this.slide("next")},c.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},c.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]()}if(e.hasClass("active"))return this.sliding=!1;var j=e[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:g});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,f&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(e)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:g});return a.support.transition&&this.$element.hasClass("slide")?(e.addClass(b),e[0].offsetWidth,d.addClass(g),e.addClass(g),d.one("bsTransitionEnd",function(){e.removeClass([b,g].join(" ")).addClass("active"),d.removeClass(["active",g].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(1e3*d.css("transition-duration").slice(0,-1))):(d.removeClass("active"),e.addClass("active"),this.sliding=!1,this.$element.trigger(m)),f&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this},a(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}}),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.collapse"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b);!e&&f.toggle&&"show"==b&&(b=!b),e||d.data("bs.collapse",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.transitioning=null,this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};c.VERSION="3.2.0",c.DEFAULTS={toggle:!0},c.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},c.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var c=a.Event("show.bs.collapse");if(this.$element.trigger(c),!c.isDefaultPrevented()){var d=this.$parent&&this.$parent.find("> .panel > .in");if(d&&d.length){var e=d.data("bs.collapse");if(e&&e.transitioning)return;b.call(d,"hide"),e||d.data("bs.collapse",null)}var f=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[f](0),this.transitioning=1;var g=function(){this.$element.removeClass("collapsing").addClass("collapse in")[f](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return g.call(this);var h=a.camelCase(["scroll",f].join("-"));this.$element.one("bsTransitionEnd",a.proxy(g,this)).emulateTransitionEnd(350)[f](this.$element[0][h])}}},c.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?void this.$element[c](0).one("bsTransitionEnd",a.proxy(d,this)).emulateTransitionEnd(350):d.call(this)}}},c.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};var d=a.fn.collapse;a.fn.collapse=b,a.fn.collapse.Constructor=c,a.fn.collapse.noConflict=function(){return a.fn.collapse=d,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(c){var d,e=a(this),f=e.attr("data-target")||c.preventDefault()||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""),g=a(f),h=g.data("bs.collapse"),i=h?"toggle":e.data(),j=e.attr("data-parent"),k=j&&a(j);h&&h.transitioning||(k&&k.find('[data-toggle="collapse"][data-parent="'+j+'"]').not(e).addClass("collapsed"),e[g.hasClass("in")?"addClass":"removeClass"]("collapsed")),b.call(g,i)})}(jQuery),+function(a){"use strict";function b(b){b&&3===b.which||(a(e).remove(),a(f).each(function(){var d=c(a(this)),e={relatedTarget:this};d.hasClass("open")&&(d.trigger(b=a.Event("hide.bs.dropdown",e)),b.isDefaultPrevented()||d.removeClass("open").trigger("hidden.bs.dropdown",e))}))}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.2.0",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a('').insertAfter(a(this)).on("click",b);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus"),f.toggleClass("open").trigger("shown.bs.dropdown",h)}return!1}},g.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 e=c(d),g=e.hasClass("open");if(!g||g&&27==b.keyCode)return 27==b.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.divider):visible a",i=e.find('[role="menu"]'+h+', [role="listbox"]'+h);if(i.length){var j=i.index(i.filter(":focus"));38==b.keyCode&&j>0&&j--,40==b.keyCode&&j').appendTo(this.$body),this.$element.on("click.dismiss.bs.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)),e&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;e?this.$backdrop.one("bsTransitionEnd",b).emulateTransitionEnd(150):b()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var f=function(){c.removeBackdrop(),b&&b()};a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",f).emulateTransitionEnd(150):f()}else b&&b()},c.prototype.checkScrollbar=function(){document.body.clientWidth>=window.innerWidth||(this.scrollbarWidth=this.scrollbarWidth||this.measureScrollbar())},c.prototype.setScrollbar=function(){var a=parseInt(this.$body.css("padding-right")||0,10);this.scrollbarWidth&&this.$body.css("padding-right",a+this.scrollbarWidth)},c.prototype.resetScrollbar=function(){this.$body.css("padding-right","")},c.prototype.measureScrollbar=function(){var a=document.createElement("div");a.className="modal-scrollbar-measure",this.$body.append(a);var b=a.offsetWidth-a.clientWidth;return this.$body[0].removeChild(a),b};var d=a.fn.modal;a.fn.modal=b,a.fn.modal.Constructor=c,a.fn.modal.noConflict=function(){return a.fn.modal=d,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(c){var d=a(this),e=d.attr("href"),f=a(d.attr("data-target")||e&&e.replace(/.*(?=#[^\s]+$)/,"")),g=f.data("bs.modal")?"toggle":a.extend({remote:!/#/.test(e)&&e},f.data(),d.data());d.is("a")&&c.preventDefault(),f.one("show.bs.modal",function(a){a.isDefaultPrevented()||f.one("hidden.bs.modal",function(){d.is(":visible")&&d.trigger("focus")})}),b.call(f,g,this)})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tooltip"),f="object"==typeof b&&b;(e||"destroy"!=b)&&(e||d.data("bs.tooltip",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.type=this.options=this.enabled=this.timeout=this.hoverState=this.$element=null,this.init("tooltip",a,b)};c.VERSION="3.2.0",c.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(this.options.viewport.selector||this.options.viewport);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":"focusin",i="hover"==g?"mouseleave":"focusout";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()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.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},c.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},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show()},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide()},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var c=a.contains(document.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!c)return;var d=this,e=this.tip(),f=this.getUID(this.type);this.setContent(),e.attr("id",f),this.$element.attr("aria-describedby",f),this.options.animation&&e.addClass("fade");var g="function"==typeof this.options.placement?this.options.placement.call(this,e[0],this.$element[0]):this.options.placement,h=/\s?auto?\s?/i,i=h.test(g);i&&(g=g.replace(h,"")||"top"),e.detach().css({top:0,left:0,display:"block"}).addClass(g).data("bs."+this.type,this),this.options.container?e.appendTo(this.options.container):e.insertAfter(this.$element);var j=this.getPosition(),k=e[0].offsetWidth,l=e[0].offsetHeight;if(i){var m=g,n=this.$element.parent(),o=this.getPosition(n);g="bottom"==g&&j.top+j.height+l-o.scroll>o.height?"top":"top"==g&&j.top-o.scroll-l<0?"bottom":"right"==g&&j.right+k>o.width?"left":"left"==g&&j.left-kg.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;jg.width&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){return this.$tip=this.$tip||a(this.options.template)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.validate=function(){this.$element[0].parentNode||(this.hide(),this.$element=null,this.options=null)},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){clearTimeout(this.timeout),this.hide().$element.off("."+this.type).removeData("bs."+this.type)};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;(e||"destroy"!=b)&&(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.2.0",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:''}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.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").empty()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.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)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},c.prototype.tip=function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){var e=a.proxy(this.process,this);this.$body=a("body"),this.$scrollElement=a(a(c).is("body")?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",e),this.refresh(),this.process()}function c(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]()})}b.VERSION="3.2.0",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b="offset",c=0;a.isWindow(this.$scrollElement[0])||(b="position",c=this.$scrollElement.scrollTop()),this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight();var d=this;this.$body.find(this.selector).map(function(){var d=a(this),e=d.data("target")||d.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[b]().top+c,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){d.offsets.push(this[0]),d.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b<=e[0])return g!=(a=f[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).parentsUntil(this.options.target,".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.bs.scrollspy")};var d=a.fn.scrollspy;a.fn.scrollspy=c,a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=d,this},a(window).on("load.bs.scrollspy.data-api",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);c.call(b,b.data())})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new c(this)),"string"==typeof b&&e[b]()})}var c=function(b){this.element=a(b)};c.VERSION="3.2.0",c.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.closest("li"),c),this.activate(g,g.parent(),function(){b.trigger({type:"shown.bs.tab",relatedTarget:e})})}}},c.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("bsTransitionEnd",e).emulateTransitionEnd(150):e(),f.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this},a(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(c){c.preventDefault(),b.call(a(this),"show")})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).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(b),this.affixed=this.unpin=this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.2.0",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=a(document).height(),d=this.$target.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(this.$element)),"function"==typeof h&&(h=f.bottom(this.$element));var i=null!=this.unpin&&d+this.unpin<=e.top?!1:null!=h&&e.top+this.$element.height()>=b-h?"bottom":null!=g&&g>=d?"top":!1;if(this.affixed!==i){null!=this.unpin&&this.$element.css("top","");var j="affix"+(i?"-"+i:""),k=a.Event(j+".bs.affix");this.$element.trigger(k),k.isDefaultPrevented()||(this.affixed=i,this.unpin="bottom"==i?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(j).trigger(a.Event(j.replace("affix","affixed"))),"bottom"==i&&this.$element.offset({top:b-this.$element.height()-h}))}}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},d.offsetBottom&&(d.offset.bottom=d.offsetBottom),d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery);
--------------------------------------------------------------------------------
/js/cbpAnimatedHeader.js:
--------------------------------------------------------------------------------
1 | /**
2 | * cbpAnimatedHeader.js v1.0.0
3 | * http://www.codrops.com
4 | *
5 | * Licensed under the MIT license.
6 | * http://www.opensource.org/licenses/mit-license.php
7 | *
8 | * Copyright 2013, Codrops
9 | * http://www.codrops.com
10 | */
11 | var cbpAnimatedHeader = (function() {
12 |
13 | var docElem = document.documentElement,
14 | header = document.querySelector( '.navbar-fixed-top' ),
15 | didScroll = false,
16 | changeHeaderOn = 300;
17 |
18 | function init() {
19 | window.addEventListener( 'scroll', function( event ) {
20 | if( !didScroll ) {
21 | didScroll = true;
22 | setTimeout( scrollPage, 250 );
23 | }
24 | }, false );
25 | }
26 |
27 | function scrollPage() {
28 | var sy = scrollY();
29 | if ( sy >= changeHeaderOn ) {
30 | classie.add( header, 'navbar-shrink' );
31 | }
32 | else {
33 | classie.remove( header, 'navbar-shrink' );
34 | }
35 | didScroll = false;
36 | }
37 |
38 | function scrollY() {
39 | return window.pageYOffset || docElem.scrollTop;
40 | }
41 |
42 | init();
43 |
44 | })();
--------------------------------------------------------------------------------
/js/cbpAnimatedHeader.min.js:
--------------------------------------------------------------------------------
1 | /**
2 | * cbpAnimatedHeader.min.js v1.0.0
3 | * http://www.codrops.com
4 | *
5 | * Licensed under the MIT license.
6 | * http://www.opensource.org/licenses/mit-license.php
7 | *
8 | * Copyright 2013, Codrops
9 | * http://www.codrops.com
10 | */
11 | var cbpAnimatedHeader=(function(){var b=document.documentElement,g=document.querySelector(".cbp-af-header"),e=false,a=300;function f(){window.addEventListener("scroll",function(h){if(!e){e=true;setTimeout(d,250)}},false)}function d(){var h=c();if(h>=a){classie.add(g,"cbp-af-header-shrink")}else{classie.remove(g,"cbp-af-header-shrink")}e=false}function c(){return window.pageYOffset||b.scrollTop}f()})();
--------------------------------------------------------------------------------
/js/classie.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * classie - class helper functions
3 | * from bonzo https://github.com/ded/bonzo
4 | *
5 | * classie.has( elem, 'my-class' ) -> true/false
6 | * classie.add( elem, 'my-new-class' )
7 | * classie.remove( elem, 'my-unwanted-class' )
8 | * classie.toggle( elem, 'my-class' )
9 | */
10 |
11 | /*jshint browser: true, strict: true, undef: true */
12 | /*global define: false */
13 |
14 | ( function( window ) {
15 |
16 | 'use strict';
17 |
18 | // class helper functions from bonzo https://github.com/ded/bonzo
19 |
20 | function classReg( className ) {
21 | return new RegExp("(^|\\s+)" + className + "(\\s+|$)");
22 | }
23 |
24 | // classList support for class management
25 | // altho to be fair, the api sucks because it won't accept multiple classes at once
26 | var hasClass, addClass, removeClass;
27 |
28 | if ( 'classList' in document.documentElement ) {
29 | hasClass = function( elem, c ) {
30 | return elem.classList.contains( c );
31 | };
32 | addClass = function( elem, c ) {
33 | elem.classList.add( c );
34 | };
35 | removeClass = function( elem, c ) {
36 | elem.classList.remove( c );
37 | };
38 | }
39 | else {
40 | hasClass = function( elem, c ) {
41 | return classReg( c ).test( elem.className );
42 | };
43 | addClass = function( elem, c ) {
44 | if ( !hasClass( elem, c ) ) {
45 | elem.className = elem.className + ' ' + c;
46 | }
47 | };
48 | removeClass = function( elem, c ) {
49 | elem.className = elem.className.replace( classReg( c ), ' ' );
50 | };
51 | }
52 |
53 | function toggleClass( elem, c ) {
54 | var fn = hasClass( elem, c ) ? removeClass : addClass;
55 | fn( elem, c );
56 | }
57 |
58 | var classie = {
59 | // full names
60 | hasClass: hasClass,
61 | addClass: addClass,
62 | removeClass: removeClass,
63 | toggleClass: toggleClass,
64 | // short names
65 | has: hasClass,
66 | add: addClass,
67 | remove: removeClass,
68 | toggle: toggleClass
69 | };
70 |
71 | // transport
72 | if ( typeof define === 'function' && define.amd ) {
73 | // AMD
74 | define( classie );
75 | } else {
76 | // browser global
77 | window.classie = classie;
78 | }
79 |
80 | })( window );
81 |
--------------------------------------------------------------------------------
/js/custom.js:
--------------------------------------------------------------------------------
1 | // jQuery for page scrolling feature - requires jQuery Easing plugin
2 | $(function() {
3 | $('.page-scroll a').bind('click', function(event) {
4 | var $anchor = $(this);
5 | $('html, body').stop().animate({
6 | scrollTop: $($anchor.attr('href')).offset().top
7 | }, 1500, 'easeInOutExpo');
8 | event.preventDefault();
9 | });
10 | });
11 |
12 | // Floating label headings for the contact form
13 | $(function() {
14 | $("body").on("input propertychange", ".floating-label-form-group", function(e) {
15 | $(this).toggleClass("floating-label-form-group-with-value", !! $(e.target).val());
16 | }).on("focus", ".floating-label-form-group", function() {
17 | $(this).addClass("floating-label-form-group-with-focus");
18 | }).on("blur", ".floating-label-form-group", function() {
19 | $(this).removeClass("floating-label-form-group-with-focus");
20 | });
21 | });
22 |
23 | // Highlight the top nav as scrolling occurs
24 | $('body').scrollspy({
25 | target: '.navbar-fixed-top'
26 | })
27 |
28 | // Closes the Responsive Menu on Menu Item Click
29 | $('.navbar-collapse ul li a').click(function() {
30 | $('.navbar-toggle:visible').click();
31 | });
32 |
--------------------------------------------------------------------------------
/js/jquery.easing.min.js:
--------------------------------------------------------------------------------
1 | /*
2 | * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/
3 | *
4 | * Uses the built in easing capabilities added In jQuery 1.1
5 | * to offer multiple easing options
6 | *
7 | * TERMS OF USE - EASING EQUATIONS
8 | *
9 | * Open source under the BSD License.
10 | *
11 | * Copyright © 2001 Robert Penner
12 | * All rights reserved.
13 | *
14 | * TERMS OF USE - jQuery Easing
15 | *
16 | * Open source under the BSD License.
17 | *
18 | * Copyright © 2008 George McGinley Smith
19 | * All rights reserved.
20 | *
21 | * Redistribution and use in source and binary forms, with or without modification,
22 | * are permitted provided that the following conditions are met:
23 | *
24 | * Redistributions of source code must retain the above copyright notice, this list of
25 | * conditions and the following disclaimer.
26 | * Redistributions in binary form must reproduce the above copyright notice, this list
27 | * of conditions and the following disclaimer in the documentation and/or other materials
28 | * provided with the distribution.
29 | *
30 | * Neither the name of the author nor the names of contributors may be used to endorse
31 | * or promote products derived from this software without specific prior written permission.
32 | *
33 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
34 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
35 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
36 | * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
37 | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
38 | * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
39 | * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
40 | * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
41 | * OF THE POSSIBILITY OF SUCH DAMAGE.
42 | *
43 | */
44 | jQuery.easing.jswing=jQuery.easing.swing;jQuery.extend(jQuery.easing,{def:"easeOutQuad",swing:function(e,f,a,h,g){return jQuery.easing[jQuery.easing.def](e,f,a,h,g)},easeInQuad:function(e,f,a,h,g){return h*(f/=g)*f+a},easeOutQuad:function(e,f,a,h,g){return -h*(f/=g)*(f-2)+a},easeInOutQuad:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f+a}return -h/2*((--f)*(f-2)-1)+a},easeInCubic:function(e,f,a,h,g){return h*(f/=g)*f*f+a},easeOutCubic:function(e,f,a,h,g){return h*((f=f/g-1)*f*f+1)+a},easeInOutCubic:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f*f+a}return h/2*((f-=2)*f*f+2)+a},easeInQuart:function(e,f,a,h,g){return h*(f/=g)*f*f*f+a},easeOutQuart:function(e,f,a,h,g){return -h*((f=f/g-1)*f*f*f-1)+a},easeInOutQuart:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f*f*f+a}return -h/2*((f-=2)*f*f*f-2)+a},easeInQuint:function(e,f,a,h,g){return h*(f/=g)*f*f*f*f+a},easeOutQuint:function(e,f,a,h,g){return h*((f=f/g-1)*f*f*f*f+1)+a},easeInOutQuint:function(e,f,a,h,g){if((f/=g/2)<1){return h/2*f*f*f*f*f+a}return h/2*((f-=2)*f*f*f*f+2)+a},easeInSine:function(e,f,a,h,g){return -h*Math.cos(f/g*(Math.PI/2))+h+a},easeOutSine:function(e,f,a,h,g){return h*Math.sin(f/g*(Math.PI/2))+a},easeInOutSine:function(e,f,a,h,g){return -h/2*(Math.cos(Math.PI*f/g)-1)+a},easeInExpo:function(e,f,a,h,g){return(f==0)?a:h*Math.pow(2,10*(f/g-1))+a},easeOutExpo:function(e,f,a,h,g){return(f==g)?a+h:h*(-Math.pow(2,-10*f/g)+1)+a},easeInOutExpo:function(e,f,a,h,g){if(f==0){return a}if(f==g){return a+h}if((f/=g/2)<1){return h/2*Math.pow(2,10*(f-1))+a}return h/2*(-Math.pow(2,-10*--f)+2)+a},easeInCirc:function(e,f,a,h,g){return -h*(Math.sqrt(1-(f/=g)*f)-1)+a},easeOutCirc:function(e,f,a,h,g){return h*Math.sqrt(1-(f=f/g-1)*f)+a},easeInOutCirc:function(e,f,a,h,g){if((f/=g/2)<1){return -h/2*(Math.sqrt(1-f*f)-1)+a}return h/2*(Math.sqrt(1-(f-=2)*f)+1)+a},easeInElastic:function(f,h,e,l,k){var i=1.70158;var j=0;var g=l;if(h==0){return e}if((h/=k)==1){return e+l}if(!j){j=k*0.3}if(g