Commit 4d591c18491a2a9acc31ea43863970266299b952

Initial version of the framework

  The framework is capable of loading a website's content as JSON and
rendering them in HTML.
The content in JSON can be text or multimedia(images, audio, video).
It can also load external JS and CSS plugins. (More in docs.)

The code resides in js/framework.js. The markup used(assumed) in code is
in index.html
Rest are boilerplate code or library files.
  • CHANGELOG.md 87 ---------------------------------------------------------------------------------------
  • LICENSE.md 19 -------------------
  • css/bootstrap.css 5893 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  • doc/README.md 38 --------------------------------------
  • doc/contribute.md 104 --------------------------------------------------------------------------------------------------------
  • doc/crossdomain.md 21 ---------------------
  • doc/css.md 135 ---------------------------------------------------------------------------------------------------------------------------------------
  • doc/extend.md 507 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  • doc/faq.md 77 -----------------------------------------------------------------------------
  • doc/htaccess.md 323 -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  • doc/html.md 170 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  • doc/js.md 31 -------------------------------
  • doc/misc.md 25 -------------------------
  • doc/usage.md 109 -------------------------------------------------------------------------------------------------------------
  • index.html 103 -----------------------------++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  • js/framework.js 493 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  • js/vendor/jquery-1.8.0.min.js 2 --
  • js/vendor/modernizr-2.6.1.min.js 4 ----
  • Diff rendering mode:
  • inline
  • side by side

CHANGELOG.md

1### HEAD
2
3### 4.0.0 (28 August, 2012)
4
5* Improve the Apache compression configuration ([#1012](https://github.com/h5bp/html5-boilerplate/issues/1012), [#1173](https://github.com/h5bp/html5-boilerplate/issues/1173)).
6* Add a HiDPI example media query ([#1127](https://github.com/h5bp/html5-boilerplate/issues/1127)).
7* Add bundled docs ([#1154](https://github.com/h5bp/html5-boilerplate/issues/1154)).
8* Add MIT license ([#1139](https://github.com/h5bp/html5-boilerplate/issues/1139)).
9* Update to Normalize.css 1.0.1.
10* Separate Normalize.css from the rest of the CSS ([#1160](https://github.com/h5bp/html5-boilerplate/issues/1160)).
11* Improve `console.log` protection ([#1107](https://github.com/h5bp/html5-boilerplate/issues/1107)).
12* Replace hot pink text selection color with a neutral color.
13* Change image replacement technique ([#1149](https://github.com/h5bp/html5-boilerplate/issues/1149)).
14* Code format and consistency changes ([#1112](https://github.com/h5bp/html5-boilerplate/issues/1112)).
15* Rename CSS file and rename JS files and subdirectories.
16* Update to jQuery 1.8 ([#1161](https://github.com/h5bp/html5-boilerplate/issues/1161)).
17* Update to Modernizr 2.6.1 ([#1086](https://github.com/h5bp/html5-boilerplate/issues/1086)).
18* Remove uncompressed jQuery ([#1153](https://github.com/h5bp/html5-boilerplate/issues/1153)).
19* Remove superfluous inline comments ([#1150](https://github.com/h5bp/html5-boilerplate/issues/1150)).
20
21### 3.0.2 (February 19, 2012)
22
23* Update to Modernizr 2.5.3.
24
25### 3.0.1 (February 08, 2012).
26
27* Update to Modernizr 2.5.2 (includes html5shiv 3.3).
28
29### 3.0.0 (February 06, 2012)
30
31* Improvements to `.htaccess`.
32* Improve 404 design.
33* Simplify JS folder structure.
34* Change `html` IE class names changed to target ranges rather than specific versions of IE.
35* Update CSS to include latest normalize.css changes and better typographic defaults ([#825](https://github.com/h5bp/html5-boilerplate/issues/825)).
36* Update to Modernizr 2.5 (includes yepnope 1.5 and html5shiv 3.2).
37* Update to jQuery 1.7.1.
38* Revert to async snippet for the Google Analytics script.
39* Remove the ant build script ([#826](https://github.com/h5bp/html5-boilerplate/issues/826)).
40* Remove Respond.js ([#816](https://github.com/h5bp/html5-boilerplate/issues/816)).
41* Remove the `demo/` directory ([#808](https://github.com/h5bp/html5-boilerplate/issues/808)).
42* Remove the `test/` directory ([#808](https://github.com/h5bp/html5-boilerplate/issues/808)).
43* Remove Google Chrome Frame script for IE6 users; replace with links to Chrome Frame and options for alternative browsers.
44* Remove `initial-scale=1` from the viewport `meta` ([#824](https://github.com/h5bp/html5-boilerplate/issues/824)).
45* Remove `defer` from all scripts to avoid legacy IE bugs.
46* Remove explicit Site Speed tracking for Google Analytics. It's now enabled by default.
47
48### 2.0.0 (August 10, 2011)
49
50* Change starting CSS to be based on normalize.css instead of reset.css ([#500](https://github.com/h5bp/html5-boilerplate/issues/500)).
51* Add Respond.js media query polyfill.
52* Add Google Chrome Frame script prompt for IE6 users.
53* Simplify the `html` conditional comments for modern browsers and add an `oldie` class.
54* Update clearfix to use "micro clearfix".
55* Add placeholder CSS MQs for mobile-first approach.
56* Add `textarea { resize: vertical; }` to only allow vertical resizing.
57* Add `img { max-width: 100%; }` to the print styles; prevents images being truncated.
58* Add Site Speed tracking for Google Analytics.
59* Update to jQuery 1.6.2 (and use minified by default).
60* Update to Modernizr 2.0 Complete, Production minified (includes yepnope, html5shiv, and Respond.js).
61* Use `Modernizr.load()` to load the Google Analytics script.
62* Much faster build process.
63* Add build script options for CSSLint, JSLint, JSHint tools.
64* Build script now compresses all images in subfolders.
65* Build script now versions files by SHA hash.
66* Many `.htaccess` improvements including: disable directory browsing, improved support for all versions of Apache, more robust and extensive HTTP compression rules.
67* Remove `handheld.css` as it has very poor device support.
68* Remove touch-icon `link` elements from the HTML and include improved touch-icon support.
69* Remove the cache-busting query paramaters from files references in the HTML.
70* Remove IE6 PNGFix.
71
72### 1.0.0 (March 21, 2011)
73
74* Rewrite build script to make it more customizable and flexible.
75* Add a humans.txt.
76* Numerous `.htaccess` improvements (including inline documentation).
77* Move the alternative server configurations to the H5BP server configs repo.
78* Use a protocol-relative url to reference jQuery and prevent mixed content warnings.
79* Optimize the Google Analytics snippet.
80* Use Eric Meyer's recent CSS reset update and the HTML5 Doctor reset.
81* More robust `sub`/`sup` CSS styles.
82* Add keyboard `.focusable` helper class that extends `.visuallyhidden`.
83* Print styles no longer print hash or JavaScript links.
84* Add a print reset for IE's proprietary filters.
85* Remove IE9-specific conditional class on the `html` element.
86* Remove margins from lists within `nav` elements.
87* Remove YUI profiling.

LICENSE.md

1Copyright (c) HTML5 Boilerplate
2
3Permission is hereby granted, free of charge, to any person obtaining a copy of
4this software and associated documentation files (the "Software"), to deal in
5the Software without restriction, including without limitation the rights to
6use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
7of the Software, and to permit persons to whom the Software is furnished to do
8so, subject to the following conditions:
9
10The above copyright notice and this permission notice shall be included in all
11copies or substantial portions of the Software.
12
13THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19SOFTWARE.

css/bootstrap.css

1/*!
2 * Bootstrap v2.2.1
3 *
4 * Copyright 2012 Twitter, Inc
5 * Licensed under the Apache License v2.0
6 * http://www.apache.org/licenses/LICENSE-2.0
7 *
8 * Designed and built with all the love in the world @twitter by @mdo and @fat.
9 */
10
11article,
12aside,
13details,
14figcaption,
15figure,
16footer,
17header,
18hgroup,
19nav,
20section {
21 display: block;
22}
23
24audio,
25canvas,
26video {
27 display: inline-block;
28 *display: inline;
29 *zoom: 1;
30}
31
32audio:not([controls]) {
33 display: none;
34}
35
36html {
37 font-size: 100%;
38 -webkit-text-size-adjust: 100%;
39 -ms-text-size-adjust: 100%;
40}
41
42a:focus {
43 outline: thin dotted #333;
44 outline: 5px auto -webkit-focus-ring-color;
45 outline-offset: -2px;
46}
47
48a:hover,
49a:active {
50 outline: 0;
51}
52
53sub,
54sup {
55 position: relative;
56 font-size: 75%;
57 line-height: 0;
58 vertical-align: baseline;
59}
60
61sup {
62 top: -0.5em;
63}
64
65sub {
66 bottom: -0.25em;
67}
68
69img {
70 width: auto\9;
71 height: auto;
72 max-width: 100%;
73 vertical-align: middle;
74 border: 0;
75 -ms-interpolation-mode: bicubic;
76}
77
78#map_canvas img,
79.google-maps img {
80 max-width: none;
81}
82
83button,
84input,
85select,
86textarea {
87 margin: 0;
88 font-size: 100%;
89 vertical-align: middle;
90}
91
92button,
93input {
94 *overflow: visible;
95 line-height: normal;
96}
97
98button::-moz-focus-inner,
99input::-moz-focus-inner {
100 padding: 0;
101 border: 0;
102}
103
104button,
105html input[type="button"],
106input[type="reset"],
107input[type="submit"] {
108 cursor: pointer;
109 -webkit-appearance: button;
110}
111
112input[type="search"] {
113 -webkit-box-sizing: content-box;
114 -moz-box-sizing: content-box;
115 box-sizing: content-box;
116 -webkit-appearance: textfield;
117}
118
119input[type="search"]::-webkit-search-decoration,
120input[type="search"]::-webkit-search-cancel-button {
121 -webkit-appearance: none;
122}
123
124textarea {
125 overflow: auto;
126 vertical-align: top;
127}
128
129.clearfix {
130 *zoom: 1;
131}
132
133.clearfix:before,
134.clearfix:after {
135 display: table;
136 line-height: 0;
137 content: "";
138}
139
140.clearfix:after {
141 clear: both;
142}
143
144.hide-text {
145 font: 0/0 a;
146 color: transparent;
147 text-shadow: none;
148 background-color: transparent;
149 border: 0;
150}
151
152.input-block-level {
153 display: block;
154 width: 100%;
155 min-height: 30px;
156 -webkit-box-sizing: border-box;
157 -moz-box-sizing: border-box;
158 box-sizing: border-box;
159}
160
161body {
162 margin: 0;
163 font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
164 font-size: 14px;
165 line-height: 20px;
166 color: #333333;
167 background-color: #ffffff;
168}
169
170a {
171 color: #0088cc;
172 text-decoration: none;
173}
174
175a:hover {
176 color: #005580;
177 text-decoration: underline;
178}
179
180.img-rounded {
181 -webkit-border-radius: 6px;
182 -moz-border-radius: 6px;
183 border-radius: 6px;
184}
185
186.img-polaroid {
187 padding: 4px;
188 background-color: #fff;
189 border: 1px solid #ccc;
190 border: 1px solid rgba(0, 0, 0, 0.2);
191 -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
192 -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
193 box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
194}
195
196.img-circle {
197 -webkit-border-radius: 500px;
198 -moz-border-radius: 500px;
199 border-radius: 500px;
200}
201
202.row {
203 margin-left: -20px;
204 *zoom: 1;
205}
206
207.row:before,
208.row:after {
209 display: table;
210 line-height: 0;
211 content: "";
212}
213
214.row:after {
215 clear: both;
216}
217
218[class*="span"] {
219 float: left;
220 min-height: 1px;
221 margin-left: 20px;
222}
223
224.container,
225.navbar-static-top .container,
226.navbar-fixed-top .container,
227.navbar-fixed-bottom .container {
228 width: 940px;
229}
230
231.span12 {
232 width: 940px;
233}
234
235.span11 {
236 width: 860px;
237}
238
239.span10 {
240 width: 780px;
241}
242
243.span9 {
244 width: 700px;
245}
246
247.span8 {
248 width: 620px;
249}
250
251.span7 {
252 width: 540px;
253}
254
255.span6 {
256 width: 460px;
257}
258
259.span5 {
260 width: 380px;
261}
262
263.span4 {
264 width: 300px;
265}
266
267.span3 {
268 width: 220px;
269}
270
271.span2 {
272 width: 140px;
273}
274
275.span1 {
276 width: 60px;
277}
278
279.offset12 {
280 margin-left: 980px;
281}
282
283.offset11 {
284 margin-left: 900px;
285}
286
287.offset10 {
288 margin-left: 820px;
289}
290
291.offset9 {
292 margin-left: 740px;
293}
294
295.offset8 {
296 margin-left: 660px;
297}
298
299.offset7 {
300 margin-left: 580px;
301}
302
303.offset6 {
304 margin-left: 500px;
305}
306
307.offset5 {
308 margin-left: 420px;
309}
310
311.offset4 {
312 margin-left: 340px;
313}
314
315.offset3 {
316 margin-left: 260px;
317}
318
319.offset2 {
320 margin-left: 180px;
321}
322
323.offset1 {
324 margin-left: 100px;
325}
326
327.row-fluid {
328 width: 100%;
329 *zoom: 1;
330}
331
332.row-fluid:before,
333.row-fluid:after {
334 display: table;
335 line-height: 0;
336 content: "";
337}
338
339.row-fluid:after {
340 clear: both;
341}
342
343.row-fluid [class*="span"] {
344 display: block;
345 float: left;
346 width: 100%;
347 min-height: 30px;
348 margin-left: 2.127659574468085%;
349 *margin-left: 2.074468085106383%;
350 -webkit-box-sizing: border-box;
351 -moz-box-sizing: border-box;
352 box-sizing: border-box;
353}
354
355.row-fluid [class*="span"]:first-child {
356 margin-left: 0;
357}
358
359.row-fluid .controls-row [class*="span"] + [class*="span"] {
360 margin-left: 2.127659574468085%;
361}
362
363.row-fluid .span12 {
364 width: 100%;
365 *width: 99.94680851063829%;
366}
367
368.row-fluid .span11 {
369 width: 91.48936170212765%;
370 *width: 91.43617021276594%;
371}
372
373.row-fluid .span10 {
374 width: 82.97872340425532%;
375 *width: 82.92553191489361%;
376}
377
378.row-fluid .span9 {
379 width: 74.46808510638297%;
380 *width: 74.41489361702126%;
381}
382
383.row-fluid .span8 {
384 width: 65.95744680851064%;
385 *width: 65.90425531914893%;
386}
387
388.row-fluid .span7 {
389 width: 57.44680851063829%;
390 *width: 57.39361702127659%;
391}
392
393.row-fluid .span6 {
394 width: 48.93617021276595%;
395 *width: 48.88297872340425%;
396}
397
398.row-fluid .span5 {
399 width: 40.42553191489362%;
400 *width: 40.37234042553192%;
401}
402
403.row-fluid .span4 {
404 width: 31.914893617021278%;
405 *width: 31.861702127659576%;
406}
407
408.row-fluid .span3 {
409 width: 23.404255319148934%;
410 *width: 23.351063829787233%;
411}
412
413.row-fluid .span2 {
414 width: 14.893617021276595%;
415 *width: 14.840425531914894%;
416}
417
418.row-fluid .span1 {
419 width: 6.382978723404255%;
420 *width: 6.329787234042553%;
421}
422
423.row-fluid .offset12 {
424 margin-left: 104.25531914893617%;
425 *margin-left: 104.14893617021275%;
426}
427
428.row-fluid .offset12:first-child {
429 margin-left: 102.12765957446808%;
430 *margin-left: 102.02127659574467%;
431}
432
433.row-fluid .offset11 {
434 margin-left: 95.74468085106382%;
435 *margin-left: 95.6382978723404%;
436}
437
438.row-fluid .offset11:first-child {
439 margin-left: 93.61702127659574%;
440 *margin-left: 93.51063829787232%;
441}
442
443.row-fluid .offset10 {
444 margin-left: 87.23404255319149%;
445 *margin-left: 87.12765957446807%;
446}
447
448.row-fluid .offset10:first-child {
449 margin-left: 85.1063829787234%;
450 *margin-left: 84.99999999999999%;
451}
452
453.row-fluid .offset9 {
454 margin-left: 78.72340425531914%;
455 *margin-left: 78.61702127659572%;
456}
457
458.row-fluid .offset9:first-child {
459 margin-left: 76.59574468085106%;
460 *margin-left: 76.48936170212764%;
461}
462
463.row-fluid .offset8 {
464 margin-left: 70.2127659574468%;
465 *margin-left: 70.10638297872339%;
466}
467
468.row-fluid .offset8:first-child {
469 margin-left: 68.08510638297872%;
470 *margin-left: 67.9787234042553%;
471}
472
473.row-fluid .offset7 {
474 margin-left: 61.70212765957446%;
475 *margin-left: 61.59574468085106%;
476}
477
478.row-fluid .offset7:first-child {
479 margin-left: 59.574468085106375%;
480 *margin-left: 59.46808510638297%;
481}
482
483.row-fluid .offset6 {
484 margin-left: 53.191489361702125%;
485 *margin-left: 53.085106382978715%;
486}
487
488.row-fluid .offset6:first-child {
489 margin-left: 51.063829787234035%;
490 *margin-left: 50.95744680851063%;
491}
492
493.row-fluid .offset5 {
494 margin-left: 44.68085106382979%;
495 *margin-left: 44.57446808510638%;
496}
497
498.row-fluid .offset5:first-child {
499 margin-left: 42.5531914893617%;
500 *margin-left: 42.4468085106383%;
501}
502
503.row-fluid .offset4 {
504 margin-left: 36.170212765957444%;
505 *margin-left: 36.06382978723405%;
506}
507
508.row-fluid .offset4:first-child {
509 margin-left: 34.04255319148936%;
510 *margin-left: 33.93617021276596%;
511}
512
513.row-fluid .offset3 {
514 margin-left: 27.659574468085104%;
515 *margin-left: 27.5531914893617%;
516}
517
518.row-fluid .offset3:first-child {
519 margin-left: 25.53191489361702%;
520 *margin-left: 25.425531914893618%;
521}
522
523.row-fluid .offset2 {
524 margin-left: 19.148936170212764%;
525 *margin-left: 19.04255319148936%;
526}
527
528.row-fluid .offset2:first-child {
529 margin-left: 17.02127659574468%;
530 *margin-left: 16.914893617021278%;
531}
532
533.row-fluid .offset1 {
534 margin-left: 10.638297872340425%;
535 *margin-left: 10.53191489361702%;
536}
537
538.row-fluid .offset1:first-child {
539 margin-left: 8.51063829787234%;
540 *margin-left: 8.404255319148938%;
541}
542
543[class*="span"].hide,
544.row-fluid [class*="span"].hide {
545 display: none;
546}
547
548[class*="span"].pull-right,
549.row-fluid [class*="span"].pull-right {
550 float: right;
551}
552
553.container {
554 margin-right: auto;
555 margin-left: auto;
556 *zoom: 1;
557}
558
559.container:before,
560.container:after {
561 display: table;
562 line-height: 0;
563 content: "";
564}
565
566.container:after {
567 clear: both;
568}
569
570.container-fluid {
571 padding-right: 20px;
572 padding-left: 20px;
573 *zoom: 1;
574}
575
576.container-fluid:before,
577.container-fluid:after {
578 display: table;
579 line-height: 0;
580 content: "";
581}
582
583.container-fluid:after {
584 clear: both;
585}
586
587p {
588 margin: 0 0 10px;
589}
590
591.lead {
592 margin-bottom: 20px;
593 font-size: 21px;
594 font-weight: 200;
595 line-height: 30px;
596}
597
598small {
599 font-size: 85%;
600}
601
602strong {
603 font-weight: bold;
604}
605
606em {
607 font-style: italic;
608}
609
610cite {
611 font-style: normal;
612}
613
614.muted {
615 color: #999999;
616}
617
618.text-warning {
619 color: #c09853;
620}
621
622a.text-warning:hover {
623 color: #a47e3c;
624}
625
626.text-error {
627 color: #b94a48;
628}
629
630a.text-error:hover {
631 color: #953b39;
632}
633
634.text-info {
635 color: #3a87ad;
636}
637
638a.text-info:hover {
639 color: #2d6987;
640}
641
642.text-success {
643 color: #468847;
644}
645
646a.text-success:hover {
647 color: #356635;
648}
649
650h1,
651h2,
652h3,
653h4,
654h5,
655h6 {
656 margin: 10px 0;
657 font-family: inherit;
658 font-weight: bold;
659 line-height: 20px;
660 color: inherit;
661 text-rendering: optimizelegibility;
662}
663
664h1 small,
665h2 small,
666h3 small,
667h4 small,
668h5 small,
669h6 small {
670 font-weight: normal;
671 line-height: 1;
672 color: #999999;
673}
674
675h1,
676h2,
677h3 {
678 line-height: 40px;
679}
680
681h1 {
682 font-size: 38.5px;
683}
684
685h2 {
686 font-size: 31.5px;
687}
688
689h3 {
690 font-size: 24.5px;
691}
692
693h4 {
694 font-size: 17.5px;
695}
696
697h5 {
698 font-size: 14px;
699}
700
701h6 {
702 font-size: 11.9px;
703}
704
705h1 small {
706 font-size: 24.5px;
707}
708
709h2 small {
710 font-size: 17.5px;
711}
712
713h3 small {
714 font-size: 14px;
715}
716
717h4 small {
718 font-size: 14px;
719}
720
721.page-header {
722 padding-bottom: 9px;
723 margin: 20px 0 30px;
724 border-bottom: 1px solid #eeeeee;
725}
726
727ul,
728ol {
729 padding: 0;
730 margin: 0 0 10px 25px;
731}
732
733ul ul,
734ul ol,
735ol ol,
736ol ul {
737 margin-bottom: 0;
738}
739
740li {
741 line-height: 20px;
742}
743
744ul.unstyled,
745ol.unstyled {
746 margin-left: 0;
747 list-style: none;
748}
749
750dl {
751 margin-bottom: 20px;
752}
753
754dt,
755dd {
756 line-height: 20px;
757}
758
759dt {
760 font-weight: bold;
761}
762
763dd {
764 margin-left: 10px;
765}
766
767.dl-horizontal {
768 *zoom: 1;
769}
770
771.dl-horizontal:before,
772.dl-horizontal:after {
773 display: table;
774 line-height: 0;
775 content: "";
776}
777
778.dl-horizontal:after {
779 clear: both;
780}
781
782.dl-horizontal dt {
783 float: left;
784 width: 160px;
785 overflow: hidden;
786 clear: left;
787 text-align: right;
788 text-overflow: ellipsis;
789 white-space: nowrap;
790}
791
792.dl-horizontal dd {
793 margin-left: 180px;
794}
795
796hr {
797 margin: 20px 0;
798 border: 0;
799 border-top: 1px solid #eeeeee;
800 border-bottom: 1px solid #ffffff;
801}
802
803abbr[title],
804abbr[data-original-title] {
805 cursor: help;
806 border-bottom: 1px dotted #999999;
807}
808
809abbr.initialism {
810 font-size: 90%;
811 text-transform: uppercase;
812}
813
814blockquote {
815 padding: 0 0 0 15px;
816 margin: 0 0 20px;
817 border-left: 5px solid #eeeeee;
818}
819
820blockquote p {
821 margin-bottom: 0;
822 font-size: 16px;
823 font-weight: 300;
824 line-height: 25px;
825}
826
827blockquote small {
828 display: block;
829 line-height: 20px;
830 color: #999999;
831}
832
833blockquote small:before {
834 content: '\2014 \00A0';
835}
836
837blockquote.pull-right {
838 float: right;
839 padding-right: 15px;
840 padding-left: 0;
841 border-right: 5px solid #eeeeee;
842 border-left: 0;
843}
844
845blockquote.pull-right p,
846blockquote.pull-right small {
847 text-align: right;
848}
849
850blockquote.pull-right small:before {
851 content: '';
852}
853
854blockquote.pull-right small:after {
855 content: '\00A0 \2014';
856}
857
858q:before,
859q:after,
860blockquote:before,
861blockquote:after {
862 content: "";
863}
864
865address {
866 display: block;
867 margin-bottom: 20px;
868 font-style: normal;
869 line-height: 20px;
870}
871
872code,
873pre {
874 padding: 0 3px 2px;
875 font-family: Monaco, Menlo, Consolas, "Courier New", monospace;
876 font-size: 12px;
877 color: #333333;
878 -webkit-border-radius: 3px;
879 -moz-border-radius: 3px;
880 border-radius: 3px;
881}
882
883code {
884 padding: 2px 4px;
885 color: #d14;
886 background-color: #f7f7f9;
887 border: 1px solid #e1e1e8;
888}
889
890pre {
891 display: block;
892 padding: 9.5px;
893 margin: 0 0 10px;
894 font-size: 13px;
895 line-height: 20px;
896 word-break: break-all;
897 word-wrap: break-word;
898 white-space: pre;
899 white-space: pre-wrap;
900 background-color: #f5f5f5;
901 border: 1px solid #ccc;
902 border: 1px solid rgba(0, 0, 0, 0.15);
903 -webkit-border-radius: 4px;
904 -moz-border-radius: 4px;
905 border-radius: 4px;
906}
907
908pre.prettyprint {
909 margin-bottom: 20px;
910}
911
912pre code {
913 padding: 0;
914 color: inherit;
915 background-color: transparent;
916 border: 0;
917}
918
919.pre-scrollable {
920 max-height: 340px;
921 overflow-y: scroll;
922}
923
924form {
925 margin: 0 0 20px;
926}
927
928fieldset {
929 padding: 0;
930 margin: 0;
931 border: 0;
932}
933
934legend {
935 display: block;
936 width: 100%;
937 padding: 0;
938 margin-bottom: 20px;
939 font-size: 21px;
940 line-height: 40px;
941 color: #333333;
942 border: 0;
943 border-bottom: 1px solid #e5e5e5;
944}
945
946legend small {
947 font-size: 15px;
948 color: #999999;
949}
950
951label,
952input,
953button,
954select,
955textarea {
956 font-size: 14px;
957 font-weight: normal;
958 line-height: 20px;
959}
960
961input,
962button,
963select,
964textarea {
965 font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
966}
967
968label {
969 display: block;
970 margin-bottom: 5px;
971}
972
973select,
974textarea,
975input[type="text"],
976input[type="password"],
977input[type="datetime"],
978input[type="datetime-local"],
979input[type="date"],
980input[type="month"],
981input[type="time"],
982input[type="week"],
983input[type="number"],
984input[type="email"],
985input[type="url"],
986input[type="search"],
987input[type="tel"],
988input[type="color"],
989.uneditable-input {
990 display: inline-block;
991 height: 20px;
992 padding: 4px 6px;
993 margin-bottom: 10px;
994 font-size: 14px;
995 line-height: 20px;
996 color: #555555;
997 vertical-align: middle;
998 -webkit-border-radius: 4px;
999 -moz-border-radius: 4px;
1000 border-radius: 4px;
1001}
1002
1003input,
1004textarea,
1005.uneditable-input {
1006 width: 206px;
1007}
1008
1009textarea {
1010 height: auto;
1011}
1012
1013textarea,
1014input[type="text"],
1015input[type="password"],
1016input[type="datetime"],
1017input[type="datetime-local"],
1018input[type="date"],
1019input[type="month"],
1020input[type="time"],
1021input[type="week"],
1022input[type="number"],
1023input[type="email"],
1024input[type="url"],
1025input[type="search"],
1026input[type="tel"],
1027input[type="color"],
1028.uneditable-input {
1029 background-color: #ffffff;
1030 border: 1px solid #cccccc;
1031 -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
1032 -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
1033 box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
1034 -webkit-transition: border linear 0.2s, box-shadow linear 0.2s;
1035 -moz-transition: border linear 0.2s, box-shadow linear 0.2s;
1036 -o-transition: border linear 0.2s, box-shadow linear 0.2s;
1037 transition: border linear 0.2s, box-shadow linear 0.2s;
1038}
1039
1040textarea:focus,
1041input[type="text"]:focus,
1042input[type="password"]:focus,
1043input[type="datetime"]:focus,
1044input[type="datetime-local"]:focus,
1045input[type="date"]:focus,
1046input[type="month"]:focus,
1047input[type="time"]:focus,
1048input[type="week"]:focus,
1049input[type="number"]:focus,
1050input[type="email"]:focus,
1051input[type="url"]:focus,
1052input[type="search"]:focus,
1053input[type="tel"]:focus,
1054input[type="color"]:focus,
1055.uneditable-input:focus {
1056 border-color: rgba(82, 168, 236, 0.8);
1057 outline: 0;
1058 outline: thin dotted \9;
1059 /* IE6-9 */
1060
1061 -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);
1062 -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);
1063 box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);
1064}
1065
1066input[type="radio"],
1067input[type="checkbox"] {
1068 margin: 4px 0 0;
1069 margin-top: 1px \9;
1070 *margin-top: 0;
1071 line-height: normal;
1072 cursor: pointer;
1073}
1074
1075input[type="file"],
1076input[type="image"],
1077input[type="submit"],
1078input[type="reset"],
1079input[type="button"],
1080input[type="radio"],
1081input[type="checkbox"] {
1082 width: auto;
1083}
1084
1085select,
1086input[type="file"] {
1087 height: 30px;
1088 /* In IE7, the height of the select element cannot be changed by height, only font-size */
1089
1090 *margin-top: 4px;
1091 /* For IE7, add top margin to align select with labels */
1092
1093 line-height: 30px;
1094}
1095
1096select {
1097 width: 220px;
1098 background-color: #ffffff;
1099 border: 1px solid #cccccc;
1100}
1101
1102select[multiple],
1103select[size] {
1104 height: auto;
1105}
1106
1107select:focus,
1108input[type="file"]:focus,
1109input[type="radio"]:focus,
1110input[type="checkbox"]:focus {
1111 outline: thin dotted #333;
1112 outline: 5px auto -webkit-focus-ring-color;
1113 outline-offset: -2px;
1114}
1115
1116.uneditable-input,
1117.uneditable-textarea {
1118 color: #999999;
1119 cursor: not-allowed;
1120 background-color: #fcfcfc;
1121 border-color: #cccccc;
1122 -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);
1123 -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);
1124 box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);
1125}
1126
1127.uneditable-input {
1128 overflow: hidden;
1129 white-space: nowrap;
1130}
1131
1132.uneditable-textarea {
1133 width: auto;
1134 height: auto;
1135}
1136
1137input:-moz-placeholder,
1138textarea:-moz-placeholder {
1139 color: #999999;
1140}
1141
1142input:-ms-input-placeholder,
1143textarea:-ms-input-placeholder {
1144 color: #999999;
1145}
1146
1147input::-webkit-input-placeholder,
1148textarea::-webkit-input-placeholder {
1149 color: #999999;
1150}
1151
1152.radio,
1153.checkbox {
1154 min-height: 20px;
1155 padding-left: 20px;
1156}
1157
1158.radio input[type="radio"],
1159.checkbox input[type="checkbox"] {
1160 float: left;
1161 margin-left: -20px;
1162}
1163
1164.controls > .radio:first-child,
1165.controls > .checkbox:first-child {
1166 padding-top: 5px;
1167}
1168
1169.radio.inline,
1170.checkbox.inline {
1171 display: inline-block;
1172 padding-top: 5px;
1173 margin-bottom: 0;
1174 vertical-align: middle;
1175}
1176
1177.radio.inline + .radio.inline,
1178.checkbox.inline + .checkbox.inline {
1179 margin-left: 10px;
1180}
1181
1182.input-mini {
1183 width: 60px;
1184}
1185
1186.input-small {
1187 width: 90px;
1188}
1189
1190.input-medium {
1191 width: 150px;
1192}
1193
1194.input-large {
1195 width: 210px;
1196}
1197
1198.input-xlarge {
1199 width: 270px;
1200}
1201
1202.input-xxlarge {
1203 width: 530px;
1204}
1205
1206input[class*="span"],
1207select[class*="span"],
1208textarea[class*="span"],
1209.uneditable-input[class*="span"],
1210.row-fluid input[class*="span"],
1211.row-fluid select[class*="span"],
1212.row-fluid textarea[class*="span"],
1213.row-fluid .uneditable-input[class*="span"] {
1214 float: none;
1215 margin-left: 0;
1216}
1217
1218.input-append input[class*="span"],
1219.input-append .uneditable-input[class*="span"],
1220.input-prepend input[class*="span"],
1221.input-prepend .uneditable-input[class*="span"],
1222.row-fluid input[class*="span"],
1223.row-fluid select[class*="span"],
1224.row-fluid textarea[class*="span"],
1225.row-fluid .uneditable-input[class*="span"],
1226.row-fluid .input-prepend [class*="span"],
1227.row-fluid .input-append [class*="span"] {
1228 display: inline-block;
1229}
1230
1231input,
1232textarea,
1233.uneditable-input {
1234 margin-left: 0;
1235}
1236
1237.controls-row [class*="span"] + [class*="span"] {
1238 margin-left: 20px;
1239}
1240
1241input.span12,
1242textarea.span12,
1243.uneditable-input.span12 {
1244 width: 926px;
1245}
1246
1247input.span11,
1248textarea.span11,
1249.uneditable-input.span11 {
1250 width: 846px;
1251}
1252
1253input.span10,
1254textarea.span10,
1255.uneditable-input.span10 {
1256 width: 766px;
1257}
1258
1259input.span9,
1260textarea.span9,
1261.uneditable-input.span9 {
1262 width: 686px;
1263}
1264
1265input.span8,
1266textarea.span8,
1267.uneditable-input.span8 {
1268 width: 606px;
1269}
1270
1271input.span7,
1272textarea.span7,
1273.uneditable-input.span7 {
1274 width: 526px;
1275}
1276
1277input.span6,
1278textarea.span6,
1279.uneditable-input.span6 {
1280 width: 446px;
1281}
1282
1283input.span5,
1284textarea.span5,
1285.uneditable-input.span5 {
1286 width: 366px;
1287}
1288
1289input.span4,
1290textarea.span4,
1291.uneditable-input.span4 {
1292 width: 286px;
1293}
1294
1295input.span3,
1296textarea.span3,
1297.uneditable-input.span3 {
1298 width: 206px;
1299}
1300
1301input.span2,
1302textarea.span2,
1303.uneditable-input.span2 {
1304 width: 126px;
1305}
1306
1307input.span1,
1308textarea.span1,
1309.uneditable-input.span1 {
1310 width: 46px;
1311}
1312
1313.controls-row {
1314 *zoom: 1;
1315}
1316
1317.controls-row:before,
1318.controls-row:after {
1319 display: table;
1320 line-height: 0;
1321 content: "";
1322}
1323
1324.controls-row:after {
1325 clear: both;
1326}
1327
1328.controls-row [class*="span"],
1329.row-fluid .controls-row [class*="span"] {
1330 float: left;
1331}
1332
1333.controls-row .checkbox[class*="span"],
1334.controls-row .radio[class*="span"] {
1335 padding-top: 5px;
1336}
1337
1338input[disabled],
1339select[disabled],
1340textarea[disabled],
1341input[readonly],
1342select[readonly],
1343textarea[readonly] {
1344 cursor: not-allowed;
1345 background-color: #eeeeee;
1346}
1347
1348input[type="radio"][disabled],
1349input[type="checkbox"][disabled],
1350input[type="radio"][readonly],
1351input[type="checkbox"][readonly] {
1352 background-color: transparent;
1353}
1354
1355.control-group.warning > label,
1356.control-group.warning .help-block,
1357.control-group.warning .help-inline {
1358 color: #c09853;
1359}
1360
1361.control-group.warning .checkbox,
1362.control-group.warning .radio,
1363.control-group.warning input,
1364.control-group.warning select,
1365.control-group.warning textarea {
1366 color: #c09853;
1367}
1368
1369.control-group.warning input,
1370.control-group.warning select,
1371.control-group.warning textarea {
1372 border-color: #c09853;
1373 -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
1374 -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
1375 box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
1376}
1377
1378.control-group.warning input:focus,
1379.control-group.warning select:focus,
1380.control-group.warning textarea:focus {
1381 border-color: #a47e3c;
1382 -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e;
1383 -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e;
1384 box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #dbc59e;
1385}
1386
1387.control-group.warning .input-prepend .add-on,
1388.control-group.warning .input-append .add-on {
1389 color: #c09853;
1390 background-color: #fcf8e3;
1391 border-color: #c09853;
1392}
1393
1394.control-group.error > label,
1395.control-group.error .help-block,
1396.control-group.error .help-inline {
1397 color: #b94a48;
1398}
1399
1400.control-group.error .checkbox,
1401.control-group.error .radio,
1402.control-group.error input,
1403.control-group.error select,
1404.control-group.error textarea {
1405 color: #b94a48;
1406}
1407
1408.control-group.error input,
1409.control-group.error select,
1410.control-group.error textarea {
1411 border-color: #b94a48;
1412 -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
1413 -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
1414 box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
1415}
1416
1417.control-group.error input:focus,
1418.control-group.error select:focus,
1419.control-group.error textarea:focus {
1420 border-color: #953b39;
1421 -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392;
1422 -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392;
1423 box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #d59392;
1424}
1425
1426.control-group.error .input-prepend .add-on,
1427.control-group.error .input-append .add-on {
1428 color: #b94a48;
1429 background-color: #f2dede;
1430 border-color: #b94a48;
1431}
1432
1433.control-group.success > label,
1434.control-group.success .help-block,
1435.control-group.success .help-inline {
1436 color: #468847;
1437}
1438
1439.control-group.success .checkbox,
1440.control-group.success .radio,
1441.control-group.success input,
1442.control-group.success select,
1443.control-group.success textarea {
1444 color: #468847;
1445}
1446
1447.control-group.success input,
1448.control-group.success select,
1449.control-group.success textarea {
1450 border-color: #468847;
1451 -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
1452 -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
1453 box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
1454}
1455
1456.control-group.success input:focus,
1457.control-group.success select:focus,
1458.control-group.success textarea:focus {
1459 border-color: #356635;
1460 -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b;
1461 -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b;
1462 box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7aba7b;
1463}
1464
1465.control-group.success .input-prepend .add-on,
1466.control-group.success .input-append .add-on {
1467 color: #468847;
1468 background-color: #dff0d8;
1469 border-color: #468847;
1470}
1471
1472.control-group.info > label,
1473.control-group.info .help-block,
1474.control-group.info .help-inline {
1475 color: #3a87ad;
1476}
1477
1478.control-group.info .checkbox,
1479.control-group.info .radio,
1480.control-group.info input,
1481.control-group.info select,
1482.control-group.info textarea {
1483 color: #3a87ad;
1484}
1485
1486.control-group.info input,
1487.control-group.info select,
1488.control-group.info textarea {
1489 border-color: #3a87ad;
1490 -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
1491 -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
1492 box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
1493}
1494
1495.control-group.info input:focus,
1496.control-group.info select:focus,
1497.control-group.info textarea:focus {
1498 border-color: #2d6987;
1499 -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3;
1500 -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3;
1501 box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #7ab5d3;
1502}
1503
1504.control-group.info .input-prepend .add-on,
1505.control-group.info .input-append .add-on {
1506 color: #3a87ad;
1507 background-color: #d9edf7;
1508 border-color: #3a87ad;
1509}
1510
1511input:focus:required:invalid,
1512textarea:focus:required:invalid,
1513select:focus:required:invalid {
1514 color: #b94a48;
1515 border-color: #ee5f5b;
1516}
1517
1518input:focus:required:invalid:focus,
1519textarea:focus:required:invalid:focus,
1520select:focus:required:invalid:focus {
1521 border-color: #e9322d;
1522 -webkit-box-shadow: 0 0 6px #f8b9b7;
1523 -moz-box-shadow: 0 0 6px #f8b9b7;
1524 box-shadow: 0 0 6px #f8b9b7;
1525}
1526
1527.form-actions {
1528 padding: 19px 20px 20px;
1529 margin-top: 20px;
1530 margin-bottom: 20px;
1531 background-color: #f5f5f5;
1532 border-top: 1px solid #e5e5e5;
1533 *zoom: 1;
1534}
1535
1536.form-actions:before,
1537.form-actions:after {
1538 display: table;
1539 line-height: 0;
1540 content: "";
1541}
1542
1543.form-actions:after {
1544 clear: both;
1545}
1546
1547.help-block,
1548.help-inline {
1549 color: #595959;
1550}
1551
1552.help-block {
1553 display: block;
1554 margin-bottom: 10px;
1555}
1556
1557.help-inline {
1558 display: inline-block;
1559 *display: inline;
1560 padding-left: 5px;
1561 vertical-align: middle;
1562 *zoom: 1;
1563}
1564
1565.input-append,
1566.input-prepend {
1567 margin-bottom: 5px;
1568 font-size: 0;
1569 white-space: nowrap;
1570}
1571
1572.input-append input,
1573.input-prepend input,
1574.input-append select,
1575.input-prepend select,
1576.input-append .uneditable-input,
1577.input-prepend .uneditable-input,
1578.input-append .dropdown-menu,
1579.input-prepend .dropdown-menu {
1580 font-size: 14px;
1581}
1582
1583.input-append input,
1584.input-prepend input,
1585.input-append select,
1586.input-prepend select,
1587.input-append .uneditable-input,
1588.input-prepend .uneditable-input {
1589 position: relative;
1590 margin-bottom: 0;
1591 *margin-left: 0;
1592 vertical-align: top;
1593 -webkit-border-radius: 0 4px 4px 0;
1594 -moz-border-radius: 0 4px 4px 0;
1595 border-radius: 0 4px 4px 0;
1596}
1597
1598.input-append input:focus,
1599.input-prepend input:focus,
1600.input-append select:focus,
1601.input-prepend select:focus,
1602.input-append .uneditable-input:focus,
1603.input-prepend .uneditable-input:focus {
1604 z-index: 2;
1605}
1606
1607.input-append .add-on,
1608.input-prepend .add-on {
1609 display: inline-block;
1610 width: auto;
1611 height: 20px;
1612 min-width: 16px;
1613 padding: 4px 5px;
1614 font-size: 14px;
1615 font-weight: normal;
1616 line-height: 20px;
1617 text-align: center;
1618 text-shadow: 0 1px 0 #ffffff;
1619 background-color: #eeeeee;
1620 border: 1px solid #ccc;
1621}
1622
1623.input-append .add-on,
1624.input-prepend .add-on,
1625.input-append .btn,
1626.input-prepend .btn {
1627 vertical-align: top;
1628 -webkit-border-radius: 0;
1629 -moz-border-radius: 0;
1630 border-radius: 0;
1631}
1632
1633.input-append .active,
1634.input-prepend .active {
1635 background-color: #a9dba9;
1636 border-color: #46a546;
1637}
1638
1639.input-prepend .add-on,
1640.input-prepend .btn {
1641 margin-right: -1px;
1642}
1643
1644.input-prepend .add-on:first-child,
1645.input-prepend .btn:first-child {
1646 -webkit-border-radius: 4px 0 0 4px;
1647 -moz-border-radius: 4px 0 0 4px;
1648 border-radius: 4px 0 0 4px;
1649}
1650
1651.input-append input,
1652.input-append select,
1653.input-append .uneditable-input {
1654 -webkit-border-radius: 4px 0 0 4px;
1655 -moz-border-radius: 4px 0 0 4px;
1656 border-radius: 4px 0 0 4px;
1657}
1658
1659.input-append input + .btn-group .btn,
1660.input-append select + .btn-group .btn,
1661.input-append .uneditable-input + .btn-group .btn {
1662 -webkit-border-radius: 0 4px 4px 0;
1663 -moz-border-radius: 0 4px 4px 0;
1664 border-radius: 0 4px 4px 0;
1665}
1666
1667.input-append .add-on,
1668.input-append .btn,
1669.input-append .btn-group {
1670 margin-left: -1px;
1671}
1672
1673.input-append .add-on:last-child,
1674.input-append .btn:last-child {
1675 -webkit-border-radius: 0 4px 4px 0;
1676 -moz-border-radius: 0 4px 4px 0;
1677 border-radius: 0 4px 4px 0;
1678}
1679
1680.input-prepend.input-append input,
1681.input-prepend.input-append select,
1682.input-prepend.input-append .uneditable-input {
1683 -webkit-border-radius: 0;
1684 -moz-border-radius: 0;
1685 border-radius: 0;
1686}
1687
1688.input-prepend.input-append input + .btn-group .btn,
1689.input-prepend.input-append select + .btn-group .btn,
1690.input-prepend.input-append .uneditable-input + .btn-group .btn {
1691 -webkit-border-radius: 0 4px 4px 0;
1692 -moz-border-radius: 0 4px 4px 0;
1693 border-radius: 0 4px 4px 0;
1694}
1695
1696.input-prepend.input-append .add-on:first-child,
1697.input-prepend.input-append .btn:first-child {
1698 margin-right: -1px;
1699 -webkit-border-radius: 4px 0 0 4px;
1700 -moz-border-radius: 4px 0 0 4px;
1701 border-radius: 4px 0 0 4px;
1702}
1703
1704.input-prepend.input-append .add-on:last-child,
1705.input-prepend.input-append .btn:last-child {
1706 margin-left: -1px;
1707 -webkit-border-radius: 0 4px 4px 0;
1708 -moz-border-radius: 0 4px 4px 0;
1709 border-radius: 0 4px 4px 0;
1710}
1711
1712.input-prepend.input-append .btn-group:first-child {
1713 margin-left: 0;
1714}
1715
1716input.search-query {
1717 padding-right: 14px;
1718 padding-right: 4px \9;
1719 padding-left: 14px;
1720 padding-left: 4px \9;
1721 /* IE7-8 doesn't have border-radius, so don't indent the padding */
1722
1723 margin-bottom: 0;
1724 -webkit-border-radius: 15px;
1725 -moz-border-radius: 15px;
1726 border-radius: 15px;
1727}
1728
1729/* Allow for input prepend/append in search forms */
1730
1731.form-search .input-append .search-query,
1732.form-search .input-prepend .search-query {
1733 -webkit-border-radius: 0;
1734 -moz-border-radius: 0;
1735 border-radius: 0;
1736}
1737
1738.form-search .input-append .search-query {
1739 -webkit-border-radius: 14px 0 0 14px;
1740 -moz-border-radius: 14px 0 0 14px;
1741 border-radius: 14px 0 0 14px;
1742}
1743
1744.form-search .input-append .btn {
1745 -webkit-border-radius: 0 14px 14px 0;
1746 -moz-border-radius: 0 14px 14px 0;
1747 border-radius: 0 14px 14px 0;
1748}
1749
1750.form-search .input-prepend .search-query {
1751 -webkit-border-radius: 0 14px 14px 0;
1752 -moz-border-radius: 0 14px 14px 0;
1753 border-radius: 0 14px 14px 0;
1754}
1755
1756.form-search .input-prepend .btn {
1757 -webkit-border-radius: 14px 0 0 14px;
1758 -moz-border-radius: 14px 0 0 14px;
1759 border-radius: 14px 0 0 14px;
1760}
1761
1762.form-search input,
1763.form-inline input,
1764.form-horizontal input,
1765.form-search textarea,
1766.form-inline textarea,
1767.form-horizontal textarea,
1768.form-search select,
1769.form-inline select,
1770.form-horizontal select,
1771.form-search .help-inline,
1772.form-inline .help-inline,
1773.form-horizontal .help-inline,
1774.form-search .uneditable-input,
1775.form-inline .uneditable-input,
1776.form-horizontal .uneditable-input,
1777.form-search .input-prepend,
1778.form-inline .input-prepend,
1779.form-horizontal .input-prepend,
1780.form-search .input-append,
1781.form-inline .input-append,
1782.form-horizontal .input-append {
1783 display: inline-block;
1784 *display: inline;
1785 margin-bottom: 0;
1786 vertical-align: middle;
1787 *zoom: 1;
1788}
1789
1790.form-search .hide,
1791.form-inline .hide,
1792.form-horizontal .hide {
1793 display: none;
1794}
1795
1796.form-search label,
1797.form-inline label,
1798.form-search .btn-group,
1799.form-inline .btn-group {
1800 display: inline-block;
1801}
1802
1803.form-search .input-append,
1804.form-inline .input-append,
1805.form-search .input-prepend,
1806.form-inline .input-prepend {
1807 margin-bottom: 0;
1808}
1809
1810.form-search .radio,
1811.form-search .checkbox,
1812.form-inline .radio,
1813.form-inline .checkbox {
1814 padding-left: 0;
1815 margin-bottom: 0;
1816 vertical-align: middle;
1817}
1818
1819.form-search .radio input[type="radio"],
1820.form-search .checkbox input[type="checkbox"],
1821.form-inline .radio input[type="radio"],
1822.form-inline .checkbox input[type="checkbox"] {
1823 float: left;
1824 margin-right: 3px;
1825 margin-left: 0;
1826}
1827
1828.control-group {
1829 margin-bottom: 10px;
1830}
1831
1832legend + .control-group {
1833 margin-top: 20px;
1834 -webkit-margin-top-collapse: separate;
1835}
1836
1837.form-horizontal .control-group {
1838 margin-bottom: 20px;
1839 *zoom: 1;
1840}
1841
1842.form-horizontal .control-group:before,
1843.form-horizontal .control-group:after {
1844 display: table;
1845 line-height: 0;
1846 content: "";
1847}
1848
1849.form-horizontal .control-group:after {
1850 clear: both;
1851}
1852
1853.form-horizontal .control-label {
1854 float: left;
1855 width: 160px;
1856 padding-top: 5px;
1857 text-align: right;
1858}
1859
1860.form-horizontal .controls {
1861 *display: inline-block;
1862 *padding-left: 20px;
1863 margin-left: 180px;
1864 *margin-left: 0;
1865}
1866
1867.form-horizontal .controls:first-child {
1868 *padding-left: 180px;
1869}
1870
1871.form-horizontal .help-block {
1872 margin-bottom: 0;
1873}
1874
1875.form-horizontal input + .help-block,
1876.form-horizontal select + .help-block,
1877.form-horizontal textarea + .help-block {
1878 margin-top: 10px;
1879}
1880
1881.form-horizontal .form-actions {
1882 padding-left: 180px;
1883}
1884
1885table {
1886 max-width: 100%;
1887 background-color: transparent;
1888 border-collapse: collapse;
1889 border-spacing: 0;
1890}
1891
1892.table {
1893 width: 100%;
1894 margin-bottom: 20px;
1895}
1896
1897.table th,
1898.table td {
1899 padding: 8px;
1900 line-height: 20px;
1901 text-align: left;
1902 vertical-align: top;
1903 border-top: 1px solid #dddddd;
1904}
1905
1906.table th {
1907 font-weight: bold;
1908}
1909
1910.table thead th {
1911 vertical-align: bottom;
1912}
1913
1914.table caption + thead tr:first-child th,
1915.table caption + thead tr:first-child td,
1916.table colgroup + thead tr:first-child th,
1917.table colgroup + thead tr:first-child td,
1918.table thead:first-child tr:first-child th,
1919.table thead:first-child tr:first-child td {
1920 border-top: 0;
1921}
1922
1923.table tbody + tbody {
1924 border-top: 2px solid #dddddd;
1925}
1926
1927.table-condensed th,
1928.table-condensed td {
1929 padding: 4px 5px;
1930}
1931
1932.table-bordered {
1933 border: 1px solid #dddddd;
1934 border-collapse: separate;
1935 *border-collapse: collapse;
1936 border-left: 0;
1937 -webkit-border-radius: 4px;
1938 -moz-border-radius: 4px;
1939 border-radius: 4px;
1940}
1941
1942.table-bordered th,
1943.table-bordered td {
1944 border-left: 1px solid #dddddd;
1945}
1946
1947.table-bordered caption + thead tr:first-child th,
1948.table-bordered caption + tbody tr:first-child th,
1949.table-bordered caption + tbody tr:first-child td,
1950.table-bordered colgroup + thead tr:first-child th,
1951.table-bordered colgroup + tbody tr:first-child th,
1952.table-bordered colgroup + tbody tr:first-child td,
1953.table-bordered thead:first-child tr:first-child th,
1954.table-bordered tbody:first-child tr:first-child th,
1955.table-bordered tbody:first-child tr:first-child td {
1956 border-top: 0;
1957}
1958
1959.table-bordered thead:first-child tr:first-child th:first-child,
1960.table-bordered tbody:first-child tr:first-child td:first-child {
1961 -webkit-border-top-left-radius: 4px;
1962 border-top-left-radius: 4px;
1963 -moz-border-radius-topleft: 4px;
1964}
1965
1966.table-bordered thead:first-child tr:first-child th:last-child,
1967.table-bordered tbody:first-child tr:first-child td:last-child {
1968 -webkit-border-top-right-radius: 4px;
1969 border-top-right-radius: 4px;
1970 -moz-border-radius-topright: 4px;
1971}
1972
1973.table-bordered thead:last-child tr:last-child th:first-child,
1974.table-bordered tbody:last-child tr:last-child td:first-child,
1975.table-bordered tfoot:last-child tr:last-child td:first-child {
1976 -webkit-border-radius: 0 0 0 4px;
1977 -moz-border-radius: 0 0 0 4px;
1978 border-radius: 0 0 0 4px;
1979 -webkit-border-bottom-left-radius: 4px;
1980 border-bottom-left-radius: 4px;
1981 -moz-border-radius-bottomleft: 4px;
1982}
1983
1984.table-bordered thead:last-child tr:last-child th:last-child,
1985.table-bordered tbody:last-child tr:last-child td:last-child,
1986.table-bordered tfoot:last-child tr:last-child td:last-child {
1987 -webkit-border-bottom-right-radius: 4px;
1988 border-bottom-right-radius: 4px;
1989 -moz-border-radius-bottomright: 4px;
1990}
1991
1992.table-bordered caption + thead tr:first-child th:first-child,
1993.table-bordered caption + tbody tr:first-child td:first-child,
1994.table-bordered colgroup + thead tr:first-child th:first-child,
1995.table-bordered colgroup + tbody tr:first-child td:first-child {
1996 -webkit-border-top-left-radius: 4px;
1997 border-top-left-radius: 4px;
1998 -moz-border-radius-topleft: 4px;
1999}
2000
2001.table-bordered caption + thead tr:first-child th:last-child,
2002.table-bordered caption + tbody tr:first-child td:last-child,
2003.table-bordered colgroup + thead tr:first-child th:last-child,
2004.table-bordered colgroup + tbody tr:first-child td:last-child {
2005 -webkit-border-top-right-radius: 4px;
2006 border-top-right-radius: 4px;
2007 -moz-border-radius-topright: 4px;
2008}
2009
2010.table-striped tbody tr:nth-child(odd) td,
2011.table-striped tbody tr:nth-child(odd) th {
2012 background-color: #f9f9f9;
2013}
2014
2015.table-hover tbody tr:hover td,
2016.table-hover tbody tr:hover th {
2017 background-color: #f5f5f5;
2018}
2019
2020table td[class*="span"],
2021table th[class*="span"],
2022.row-fluid table td[class*="span"],
2023.row-fluid table th[class*="span"] {
2024 display: table-cell;
2025 float: none;
2026 margin-left: 0;
2027}
2028
2029.table td.span1,
2030.table th.span1 {
2031 float: none;
2032 width: 44px;
2033 margin-left: 0;
2034}
2035
2036.table td.span2,
2037.table th.span2 {
2038 float: none;
2039 width: 124px;
2040 margin-left: 0;
2041}
2042
2043.table td.span3,
2044.table th.span3 {
2045 float: none;
2046 width: 204px;
2047 margin-left: 0;
2048}
2049
2050.table td.span4,
2051.table th.span4 {
2052 float: none;
2053 width: 284px;
2054 margin-left: 0;
2055}
2056
2057.table td.span5,
2058.table th.span5 {
2059 float: none;
2060 width: 364px;
2061 margin-left: 0;
2062}
2063
2064.table td.span6,
2065.table th.span6 {
2066 float: none;
2067 width: 444px;
2068 margin-left: 0;
2069}
2070
2071.table td.span7,
2072.table th.span7 {
2073 float: none;
2074 width: 524px;
2075 margin-left: 0;
2076}
2077
2078.table td.span8,
2079.table th.span8 {
2080 float: none;
2081 width: 604px;
2082 margin-left: 0;
2083}
2084
2085.table td.span9,
2086.table th.span9 {
2087 float: none;
2088 width: 684px;
2089 margin-left: 0;
2090}
2091
2092.table td.span10,
2093.table th.span10 {
2094 float: none;
2095 width: 764px;
2096 margin-left: 0;
2097}
2098
2099.table td.span11,
2100.table th.span11 {
2101 float: none;
2102 width: 844px;
2103 margin-left: 0;
2104}
2105
2106.table td.span12,
2107.table th.span12 {
2108 float: none;
2109 width: 924px;
2110 margin-left: 0;
2111}
2112
2113.table tbody tr.success td {
2114 background-color: #dff0d8;
2115}
2116
2117.table tbody tr.error td {
2118 background-color: #f2dede;
2119}
2120
2121.table tbody tr.warning td {
2122 background-color: #fcf8e3;
2123}
2124
2125.table tbody tr.info td {
2126 background-color: #d9edf7;
2127}
2128
2129.table-hover tbody tr.success:hover td {
2130 background-color: #d0e9c6;
2131}
2132
2133.table-hover tbody tr.error:hover td {
2134 background-color: #ebcccc;
2135}
2136
2137.table-hover tbody tr.warning:hover td {
2138 background-color: #faf2cc;
2139}
2140
2141.table-hover tbody tr.info:hover td {
2142 background-color: #c4e3f3;
2143}
2144
2145[class^="icon-"],
2146[class*=" icon-"] {
2147 display: inline-block;
2148 width: 14px;
2149 height: 14px;
2150 margin-top: 1px;
2151 *margin-right: .3em;
2152 line-height: 14px;
2153 vertical-align: text-top;
2154 background-image: url("../img/glyphicons-halflings.png");
2155 background-position: 14px 14px;
2156 background-repeat: no-repeat;
2157}
2158
2159/* White icons with optional class, or on hover/active states of certain elements */
2160
2161.icon-white,
2162.nav-pills > .active > a > [class^="icon-"],
2163.nav-pills > .active > a > [class*=" icon-"],
2164.nav-list > .active > a > [class^="icon-"],
2165.nav-list > .active > a > [class*=" icon-"],
2166.navbar-inverse .nav > .active > a > [class^="icon-"],
2167.navbar-inverse .nav > .active > a > [class*=" icon-"],
2168.dropdown-menu > li > a:hover > [class^="icon-"],
2169.dropdown-menu > li > a:hover > [class*=" icon-"],
2170.dropdown-menu > .active > a > [class^="icon-"],
2171.dropdown-menu > .active > a > [class*=" icon-"],
2172.dropdown-submenu:hover > a > [class^="icon-"],
2173.dropdown-submenu:hover > a > [class*=" icon-"] {
2174 background-image: url("../img/glyphicons-halflings-white.png");
2175}
2176
2177.icon-glass {
2178 background-position: 0 0;
2179}
2180
2181.icon-music {
2182 background-position: -24px 0;
2183}
2184
2185.icon-search {
2186 background-position: -48px 0;
2187}
2188
2189.icon-envelope {
2190 background-position: -72px 0;
2191}
2192
2193.icon-heart {
2194 background-position: -96px 0;
2195}
2196
2197.icon-star {
2198 background-position: -120px 0;
2199}
2200
2201.icon-star-empty {
2202 background-position: -144px 0;
2203}
2204
2205.icon-user {
2206 background-position: -168px 0;
2207}
2208
2209.icon-film {
2210 background-position: -192px 0;
2211}
2212
2213.icon-th-large {
2214 background-position: -216px 0;
2215}
2216
2217.icon-th {
2218 background-position: -240px 0;
2219}
2220
2221.icon-th-list {
2222 background-position: -264px 0;
2223}
2224
2225.icon-ok {
2226 background-position: -288px 0;
2227}
2228
2229.icon-remove {
2230 background-position: -312px 0;
2231}
2232
2233.icon-zoom-in {
2234 background-position: -336px 0;
2235}
2236
2237.icon-zoom-out {
2238 background-position: -360px 0;
2239}
2240
2241.icon-off {
2242 background-position: -384px 0;
2243}
2244
2245.icon-signal {
2246 background-position: -408px 0;
2247}
2248
2249.icon-cog {
2250 background-position: -432px 0;
2251}
2252
2253.icon-trash {
2254 background-position: -456px 0;
2255}
2256
2257.icon-home {
2258 background-position: 0 -24px;
2259}
2260
2261.icon-file {
2262 background-position: -24px -24px;
2263}
2264
2265.icon-time {
2266 background-position: -48px -24px;
2267}
2268
2269.icon-road {
2270 background-position: -72px -24px;
2271}
2272
2273.icon-download-alt {
2274 background-position: -96px -24px;
2275}
2276
2277.icon-download {
2278 background-position: -120px -24px;
2279}
2280
2281.icon-upload {
2282 background-position: -144px -24px;
2283}
2284
2285.icon-inbox {
2286 background-position: -168px -24px;
2287}
2288
2289.icon-play-circle {
2290 background-position: -192px -24px;
2291}
2292
2293.icon-repeat {
2294 background-position: -216px -24px;
2295}
2296
2297.icon-refresh {
2298 background-position: -240px -24px;
2299}
2300
2301.icon-list-alt {
2302 background-position: -264px -24px;
2303}
2304
2305.icon-lock {
2306 background-position: -287px -24px;
2307}
2308
2309.icon-flag {
2310 background-position: -312px -24px;
2311}
2312
2313.icon-headphones {
2314 background-position: -336px -24px;
2315}
2316
2317.icon-volume-off {
2318 background-position: -360px -24px;
2319}
2320
2321.icon-volume-down {
2322 background-position: -384px -24px;
2323}
2324
2325.icon-volume-up {
2326 background-position: -408px -24px;
2327}
2328
2329.icon-qrcode {
2330 background-position: -432px -24px;
2331}
2332
2333.icon-barcode {
2334 background-position: -456px -24px;
2335}
2336
2337.icon-tag {
2338 background-position: 0 -48px;
2339}
2340
2341.icon-tags {
2342 background-position: -25px -48px;
2343}
2344
2345.icon-book {
2346 background-position: -48px -48px;
2347}
2348
2349.icon-bookmark {
2350 background-position: -72px -48px;
2351}
2352
2353.icon-print {
2354 background-position: -96px -48px;
2355}
2356
2357.icon-camera {
2358 background-position: -120px -48px;
2359}
2360
2361.icon-font {
2362 background-position: -144px -48px;
2363}
2364
2365.icon-bold {
2366 background-position: -167px -48px;
2367}
2368
2369.icon-italic {
2370 background-position: -192px -48px;
2371}
2372
2373.icon-text-height {
2374 background-position: -216px -48px;
2375}
2376
2377.icon-text-width {
2378 background-position: -240px -48px;
2379}
2380
2381.icon-align-left {
2382 background-position: -264px -48px;
2383}
2384
2385.icon-align-center {
2386 background-position: -288px -48px;
2387}
2388
2389.icon-align-right {
2390 background-position: -312px -48px;
2391}
2392
2393.icon-align-justify {
2394 background-position: -336px -48px;
2395}
2396
2397.icon-list {
2398 background-position: -360px -48px;
2399}
2400
2401.icon-indent-left {
2402 background-position: -384px -48px;
2403}
2404
2405.icon-indent-right {
2406 background-position: -408px -48px;
2407}
2408
2409.icon-facetime-video {
2410 background-position: -432px -48px;
2411}
2412
2413.icon-picture {
2414 background-position: -456px -48px;
2415}
2416
2417.icon-pencil {
2418 background-position: 0 -72px;
2419}
2420
2421.icon-map-marker {
2422 background-position: -24px -72px;
2423}
2424
2425.icon-adjust {
2426 background-position: -48px -72px;
2427}
2428
2429.icon-tint {
2430 background-position: -72px -72px;
2431}
2432
2433.icon-edit {
2434 background-position: -96px -72px;
2435}
2436
2437.icon-share {
2438 background-position: -120px -72px;
2439}
2440
2441.icon-check {
2442 background-position: -144px -72px;
2443}
2444
2445.icon-move {
2446 background-position: -168px -72px;
2447}
2448
2449.icon-step-backward {
2450 background-position: -192px -72px;
2451}
2452
2453.icon-fast-backward {
2454 background-position: -216px -72px;
2455}
2456
2457.icon-backward {
2458 background-position: -240px -72px;
2459}
2460
2461.icon-play {
2462 background-position: -264px -72px;
2463}
2464
2465.icon-pause {
2466 background-position: -288px -72px;
2467}
2468
2469.icon-stop {
2470 background-position: -312px -72px;
2471}
2472
2473.icon-forward {
2474 background-position: -336px -72px;
2475}
2476
2477.icon-fast-forward {
2478 background-position: -360px -72px;
2479}
2480
2481.icon-step-forward {
2482 background-position: -384px -72px;
2483}
2484
2485.icon-eject {
2486 background-position: -408px -72px;
2487}
2488
2489.icon-chevron-left {
2490 background-position: -432px -72px;
2491}
2492
2493.icon-chevron-right {
2494 background-position: -456px -72px;
2495}
2496
2497.icon-plus-sign {
2498 background-position: 0 -96px;
2499}
2500
2501.icon-minus-sign {
2502 background-position: -24px -96px;
2503}
2504
2505.icon-remove-sign {
2506 background-position: -48px -96px;
2507}
2508
2509.icon-ok-sign {
2510 background-position: -72px -96px;
2511}
2512
2513.icon-question-sign {
2514 background-position: -96px -96px;
2515}
2516
2517.icon-info-sign {
2518 background-position: -120px -96px;
2519}
2520
2521.icon-screenshot {
2522 background-position: -144px -96px;
2523}
2524
2525.icon-remove-circle {
2526 background-position: -168px -96px;
2527}
2528
2529.icon-ok-circle {
2530 background-position: -192px -96px;
2531}
2532
2533.icon-ban-circle {
2534 background-position: -216px -96px;
2535}
2536
2537.icon-arrow-left {
2538 background-position: -240px -96px;
2539}
2540
2541.icon-arrow-right {
2542 background-position: -264px -96px;
2543}
2544
2545.icon-arrow-up {
2546 background-position: -289px -96px;
2547}
2548
2549.icon-arrow-down {
2550 background-position: -312px -96px;
2551}
2552
2553.icon-share-alt {
2554 background-position: -336px -96px;
2555}
2556
2557.icon-resize-full {
2558 background-position: -360px -96px;
2559}
2560
2561.icon-resize-small {
2562 background-position: -384px -96px;
2563}
2564
2565.icon-plus {
2566 background-position: -408px -96px;
2567}
2568
2569.icon-minus {
2570 background-position: -433px -96px;
2571}
2572
2573.icon-asterisk {
2574 background-position: -456px -96px;
2575}
2576
2577.icon-exclamation-sign {
2578 background-position: 0 -120px;
2579}
2580
2581.icon-gift {
2582 background-position: -24px -120px;
2583}
2584
2585.icon-leaf {
2586 background-position: -48px -120px;
2587}
2588
2589.icon-fire {
2590 background-position: -72px -120px;
2591}
2592
2593.icon-eye-open {
2594 background-position: -96px -120px;
2595}
2596
2597.icon-eye-close {
2598 background-position: -120px -120px;
2599}
2600
2601.icon-warning-sign {
2602 background-position: -144px -120px;
2603}
2604
2605.icon-plane {
2606 background-position: -168px -120px;
2607}
2608
2609.icon-calendar {
2610 background-position: -192px -120px;
2611}
2612
2613.icon-random {
2614 width: 16px;
2615 background-position: -216px -120px;
2616}
2617
2618.icon-comment {
2619 background-position: -240px -120px;
2620}
2621
2622.icon-magnet {
2623 background-position: -264px -120px;
2624}
2625
2626.icon-chevron-up {
2627 background-position: -288px -120px;
2628}
2629
2630.icon-chevron-down {
2631 background-position: -313px -119px;
2632}
2633
2634.icon-retweet {
2635 background-position: -336px -120px;
2636}
2637
2638.icon-shopping-cart {
2639 background-position: -360px -120px;
2640}
2641
2642.icon-folder-close {
2643 background-position: -384px -120px;
2644}
2645
2646.icon-folder-open {
2647 width: 16px;
2648 background-position: -408px -120px;
2649}
2650
2651.icon-resize-vertical {
2652 background-position: -432px -119px;
2653}
2654
2655.icon-resize-horizontal {
2656 background-position: -456px -118px;
2657}
2658
2659.icon-hdd {
2660 background-position: 0 -144px;
2661}
2662
2663.icon-bullhorn {
2664 background-position: -24px -144px;
2665}
2666
2667.icon-bell {
2668 background-position: -48px -144px;
2669}
2670
2671.icon-certificate {
2672 background-position: -72px -144px;
2673}
2674
2675.icon-thumbs-up {
2676 background-position: -96px -144px;
2677}
2678
2679.icon-thumbs-down {
2680 background-position: -120px -144px;
2681}
2682
2683.icon-hand-right {
2684 background-position: -144px -144px;
2685}
2686
2687.icon-hand-left {
2688 background-position: -168px -144px;
2689}
2690
2691.icon-hand-up {
2692 background-position: -192px -144px;
2693}
2694
2695.icon-hand-down {
2696 background-position: -216px -144px;
2697}
2698
2699.icon-circle-arrow-right {
2700 background-position: -240px -144px;
2701}
2702
2703.icon-circle-arrow-left {
2704 background-position: -264px -144px;
2705}
2706
2707.icon-circle-arrow-up {
2708 background-position: -288px -144px;
2709}
2710
2711.icon-circle-arrow-down {
2712 background-position: -312px -144px;
2713}
2714
2715.icon-globe {
2716 background-position: -336px -144px;
2717}
2718
2719.icon-wrench {
2720 background-position: -360px -144px;
2721}
2722
2723.icon-tasks {
2724 background-position: -384px -144px;
2725}
2726
2727.icon-filter {
2728 background-position: -408px -144px;
2729}
2730
2731.icon-briefcase {
2732 background-position: -432px -144px;
2733}
2734
2735.icon-fullscreen {
2736 background-position: -456px -144px;
2737}
2738
2739.dropup,
2740.dropdown {
2741 position: relative;
2742}
2743
2744.dropdown-toggle {
2745 *margin-bottom: -3px;
2746}
2747
2748.dropdown-toggle:active,
2749.open .dropdown-toggle {
2750 outline: 0;
2751}
2752
2753.caret {
2754 display: inline-block;
2755 width: 0;
2756 height: 0;
2757 vertical-align: top;
2758 border-top: 4px solid #000000;
2759 border-right: 4px solid transparent;
2760 border-left: 4px solid transparent;
2761 content: "";
2762}
2763
2764.dropdown .caret {
2765 margin-top: 8px;
2766 margin-left: 2px;
2767}
2768
2769.dropdown-menu {
2770 position: absolute;
2771 top: 100%;
2772 left: 0;
2773 z-index: 1000;
2774 display: none;
2775 float: left;
2776 min-width: 160px;
2777 padding: 5px 0;
2778 margin: 2px 0 0;
2779 list-style: none;
2780 background-color: #ffffff;
2781 border: 1px solid #ccc;
2782 border: 1px solid rgba(0, 0, 0, 0.2);
2783 *border-right-width: 2px;
2784 *border-bottom-width: 2px;
2785 -webkit-border-radius: 6px;
2786 -moz-border-radius: 6px;
2787 border-radius: 6px;
2788 -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
2789 -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
2790 box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
2791 -webkit-background-clip: padding-box;
2792 -moz-background-clip: padding;
2793 background-clip: padding-box;
2794}
2795
2796.dropdown-menu.pull-right {
2797 right: 0;
2798 left: auto;
2799}
2800
2801.dropdown-menu .divider {
2802 *width: 100%;
2803 height: 1px;
2804 margin: 9px 1px;
2805 *margin: -5px 0 5px;
2806 overflow: hidden;
2807 background-color: #e5e5e5;
2808 border-bottom: 1px solid #ffffff;
2809}
2810
2811.dropdown-menu li > a {
2812 display: block;
2813 padding: 3px 20px;
2814 clear: both;
2815 font-weight: normal;
2816 line-height: 20px;
2817 color: #333333;
2818 white-space: nowrap;
2819}
2820
2821.dropdown-menu li > a:hover,
2822.dropdown-menu li > a:focus,
2823.dropdown-submenu:hover > a {
2824 color: #ffffff;
2825 text-decoration: none;
2826 background-color: #0081c2;
2827 background-image: -moz-linear-gradient(top, #0088cc, #0077b3);
2828 background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3));
2829 background-image: -webkit-linear-gradient(top, #0088cc, #0077b3);
2830 background-image: -o-linear-gradient(top, #0088cc, #0077b3);
2831 background-image: linear-gradient(to bottom, #0088cc, #0077b3);
2832 background-repeat: repeat-x;
2833 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);
2834}
2835
2836.dropdown-menu .active > a,
2837.dropdown-menu .active > a:hover {
2838 color: #333333;
2839 text-decoration: none;
2840 background-color: #0081c2;
2841 background-image: -moz-linear-gradient(top, #0088cc, #0077b3);
2842 background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0077b3));
2843 background-image: -webkit-linear-gradient(top, #0088cc, #0077b3);
2844 background-image: -o-linear-gradient(top, #0088cc, #0077b3);
2845 background-image: linear-gradient(to bottom, #0088cc, #0077b3);
2846 background-repeat: repeat-x;
2847 outline: 0;
2848 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0077b3', GradientType=0);
2849}
2850
2851.dropdown-menu .disabled > a,
2852.dropdown-menu .disabled > a:hover {
2853 color: #999999;
2854}
2855
2856.dropdown-menu .disabled > a:hover {
2857 text-decoration: none;
2858 cursor: default;
2859 background-color: transparent;
2860 background-image: none;
2861}
2862
2863.open {
2864 *z-index: 1000;
2865}
2866
2867.open > .dropdown-menu {
2868 display: block;
2869}
2870
2871.pull-right > .dropdown-menu {
2872 right: 0;
2873 left: auto;
2874}
2875
2876.dropup .caret,
2877.navbar-fixed-bottom .dropdown .caret {
2878 border-top: 0;
2879 border-bottom: 4px solid #000000;
2880 content: "";
2881}
2882
2883.dropup .dropdown-menu,
2884.navbar-fixed-bottom .dropdown .dropdown-menu {
2885 top: auto;
2886 bottom: 100%;
2887 margin-bottom: 1px;
2888}
2889
2890.dropdown-submenu {
2891 position: relative;
2892}
2893
2894.dropdown-submenu > .dropdown-menu {
2895 top: 0;
2896 left: 100%;
2897 margin-top: -6px;
2898 margin-left: -1px;
2899 -webkit-border-radius: 0 6px 6px 6px;
2900 -moz-border-radius: 0 6px 6px 6px;
2901 border-radius: 0 6px 6px 6px;
2902}
2903
2904.dropdown-submenu:hover > .dropdown-menu {
2905 display: block;
2906}
2907
2908.dropup .dropdown-submenu > .dropdown-menu {
2909 top: auto;
2910 bottom: 0;
2911 margin-top: 0;
2912 margin-bottom: -2px;
2913 -webkit-border-radius: 5px 5px 5px 0;
2914 -moz-border-radius: 5px 5px 5px 0;
2915 border-radius: 5px 5px 5px 0;
2916}
2917
2918.dropdown-submenu > a:after {
2919 display: block;
2920 float: right;
2921 width: 0;
2922 height: 0;
2923 margin-top: 5px;
2924 margin-right: -10px;
2925 border-color: transparent;
2926 border-left-color: #cccccc;
2927 border-style: solid;
2928 border-width: 5px 0 5px 5px;
2929 content: " ";
2930}
2931
2932.dropdown-submenu:hover > a:after {
2933 border-left-color: #ffffff;
2934}
2935
2936.dropdown-submenu.pull-left {
2937 float: none;
2938}
2939
2940.dropdown-submenu.pull-left > .dropdown-menu {
2941 left: -100%;
2942 margin-left: 10px;
2943 -webkit-border-radius: 6px 0 6px 6px;
2944 -moz-border-radius: 6px 0 6px 6px;
2945 border-radius: 6px 0 6px 6px;
2946}
2947
2948.dropdown .dropdown-menu .nav-header {
2949 padding-right: 20px;
2950 padding-left: 20px;
2951}
2952
2953.typeahead {
2954 margin-top: 2px;
2955 -webkit-border-radius: 4px;
2956 -moz-border-radius: 4px;
2957 border-radius: 4px;
2958}
2959
2960.well {
2961 min-height: 20px;
2962 padding: 19px;
2963 margin-bottom: 20px;
2964 background-color: #f5f5f5;
2965 border: 1px solid #e3e3e3;
2966 -webkit-border-radius: 4px;
2967 -moz-border-radius: 4px;
2968 border-radius: 4px;
2969 -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
2970 -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
2971 box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
2972}
2973
2974.well blockquote {
2975 border-color: #ddd;
2976 border-color: rgba(0, 0, 0, 0.15);
2977}
2978
2979.well-large {
2980 padding: 24px;
2981 -webkit-border-radius: 6px;
2982 -moz-border-radius: 6px;
2983 border-radius: 6px;
2984}
2985
2986.well-small {
2987 padding: 9px;
2988 -webkit-border-radius: 3px;
2989 -moz-border-radius: 3px;
2990 border-radius: 3px;
2991}
2992
2993.fade {
2994 opacity: 0;
2995 -webkit-transition: opacity 0.15s linear;
2996 -moz-transition: opacity 0.15s linear;
2997 -o-transition: opacity 0.15s linear;
2998 transition: opacity 0.15s linear;
2999}
3000
3001.fade.in {
3002 opacity: 1;
3003}
3004
3005.collapse {
3006 position: relative;
3007 height: 0;
3008 overflow: hidden;
3009 -webkit-transition: height 0.35s ease;
3010 -moz-transition: height 0.35s ease;
3011 -o-transition: height 0.35s ease;
3012 transition: height 0.35s ease;
3013}
3014
3015.collapse.in {
3016 height: auto;
3017}
3018
3019.close {
3020 float: right;
3021 font-size: 20px;
3022 font-weight: bold;
3023 line-height: 20px;
3024 color: #000000;
3025 text-shadow: 0 1px 0 #ffffff;
3026 opacity: 0.2;
3027 filter: alpha(opacity=20);
3028}
3029
3030.close:hover {
3031 color: #000000;
3032 text-decoration: none;
3033 cursor: pointer;
3034 opacity: 0.4;
3035 filter: alpha(opacity=40);
3036}
3037
3038button.close {
3039 padding: 0;
3040 cursor: pointer;
3041 background: transparent;
3042 border: 0;
3043 -webkit-appearance: none;
3044}
3045
3046.btn {
3047 display: inline-block;
3048 *display: inline;
3049 padding: 4px 12px;
3050 margin-bottom: 0;
3051 *margin-left: .3em;
3052 font-size: 14px;
3053 line-height: 20px;
3054 *line-height: 20px;
3055 color: #333333;
3056 text-align: center;
3057 text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);
3058 vertical-align: middle;
3059 cursor: pointer;
3060 background-color: #f5f5f5;
3061 *background-color: #e6e6e6;
3062 background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6);
3063 background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));
3064 background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6);
3065 background-image: -o-linear-gradient(top, #ffffff, #e6e6e6);
3066 background-image: linear-gradient(to bottom, #ffffff, #e6e6e6);
3067 background-repeat: repeat-x;
3068 border: 1px solid #bbbbbb;
3069 *border: 0;
3070 border-color: #e6e6e6 #e6e6e6 #bfbfbf;
3071 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
3072 border-bottom-color: #a2a2a2;
3073 -webkit-border-radius: 4px;
3074 -moz-border-radius: 4px;
3075 border-radius: 4px;
3076 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe6e6e6', GradientType=0);
3077 filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
3078 *zoom: 1;
3079 -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
3080 -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
3081 box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
3082}
3083
3084.btn:hover,
3085.btn:active,
3086.btn.active,
3087.btn.disabled,
3088.btn[disabled] {
3089 color: #333333;
3090 background-color: #e6e6e6;
3091 *background-color: #d9d9d9;
3092}
3093
3094.btn:active,
3095.btn.active {
3096 background-color: #cccccc \9;
3097}
3098
3099.btn:first-child {
3100 *margin-left: 0;
3101}
3102
3103.btn:hover {
3104 color: #333333;
3105 text-decoration: none;
3106 background-color: #e6e6e6;
3107 *background-color: #d9d9d9;
3108 /* Buttons in IE7 don't get borders, so darken on hover */
3109
3110 background-position: 0 -15px;
3111 -webkit-transition: background-position 0.1s linear;
3112 -moz-transition: background-position 0.1s linear;
3113 -o-transition: background-position 0.1s linear;
3114 transition: background-position 0.1s linear;
3115}
3116
3117.btn:focus {
3118 outline: thin dotted #333;
3119 outline: 5px auto -webkit-focus-ring-color;
3120 outline-offset: -2px;
3121}
3122
3123.btn.active,
3124.btn:active {
3125 background-color: #e6e6e6;
3126 background-color: #d9d9d9 \9;
3127 background-image: none;
3128 outline: 0;
3129 -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
3130 -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
3131 box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
3132}
3133
3134.btn.disabled,
3135.btn[disabled] {
3136 cursor: default;
3137 background-color: #e6e6e6;
3138 background-image: none;
3139 opacity: 0.65;
3140 filter: alpha(opacity=65);
3141 -webkit-box-shadow: none;
3142 -moz-box-shadow: none;
3143 box-shadow: none;
3144}
3145
3146.btn-large {
3147 padding: 11px 19px;
3148 font-size: 17.5px;
3149 -webkit-border-radius: 6px;
3150 -moz-border-radius: 6px;
3151 border-radius: 6px;
3152}
3153
3154.btn-large [class^="icon-"],
3155.btn-large [class*=" icon-"] {
3156 margin-top: 2px;
3157}
3158
3159.btn-small {
3160 padding: 2px 10px;
3161 font-size: 11.9px;
3162 -webkit-border-radius: 3px;
3163 -moz-border-radius: 3px;
3164 border-radius: 3px;
3165}
3166
3167.btn-small [class^="icon-"],
3168.btn-small [class*=" icon-"] {
3169 margin-top: 0;
3170}
3171
3172.btn-mini {
3173 padding: 1px 6px;
3174 font-size: 10.5px;
3175 -webkit-border-radius: 3px;
3176 -moz-border-radius: 3px;
3177 border-radius: 3px;
3178}
3179
3180.btn-block {
3181 display: block;
3182 width: 100%;
3183 padding-right: 0;
3184 padding-left: 0;
3185 -webkit-box-sizing: border-box;
3186 -moz-box-sizing: border-box;
3187 box-sizing: border-box;
3188}
3189
3190.btn-block + .btn-block {
3191 margin-top: 5px;
3192}
3193
3194input[type="submit"].btn-block,
3195input[type="reset"].btn-block,
3196input[type="button"].btn-block {
3197 width: 100%;
3198}
3199
3200.btn-primary.active,
3201.btn-warning.active,
3202.btn-danger.active,
3203.btn-success.active,
3204.btn-info.active,
3205.btn-inverse.active {
3206 color: rgba(255, 255, 255, 0.75);
3207}
3208
3209.btn {
3210 border-color: #c5c5c5;
3211 border-color: rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.15) rgba(0, 0, 0, 0.25);
3212}
3213
3214.btn-primary {
3215 color: #ffffff;
3216 text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
3217 background-color: #006dcc;
3218 *background-color: #0044cc;
3219 background-image: -moz-linear-gradient(top, #0088cc, #0044cc);
3220 background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc));
3221 background-image: -webkit-linear-gradient(top, #0088cc, #0044cc);
3222 background-image: -o-linear-gradient(top, #0088cc, #0044cc);
3223 background-image: linear-gradient(to bottom, #0088cc, #0044cc);
3224 background-repeat: repeat-x;
3225 border-color: #0044cc #0044cc #002a80;
3226 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
3227 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0);
3228 filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
3229}
3230
3231.btn-primary:hover,
3232.btn-primary:active,
3233.btn-primary.active,
3234.btn-primary.disabled,
3235.btn-primary[disabled] {
3236 color: #ffffff;
3237 background-color: #0044cc;
3238 *background-color: #003bb3;
3239}
3240
3241.btn-primary:active,
3242.btn-primary.active {
3243 background-color: #003399 \9;
3244}
3245
3246.btn-warning {
3247 color: #ffffff;
3248 text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
3249 background-color: #faa732;
3250 *background-color: #f89406;
3251 background-image: -moz-linear-gradient(top, #fbb450, #f89406);
3252 background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));
3253 background-image: -webkit-linear-gradient(top, #fbb450, #f89406);
3254 background-image: -o-linear-gradient(top, #fbb450, #f89406);
3255 background-image: linear-gradient(to bottom, #fbb450, #f89406);
3256 background-repeat: repeat-x;
3257 border-color: #f89406 #f89406 #ad6704;
3258 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
3259 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0);
3260 filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
3261}
3262
3263.btn-warning:hover,
3264.btn-warning:active,
3265.btn-warning.active,
3266.btn-warning.disabled,
3267.btn-warning[disabled] {
3268 color: #ffffff;
3269 background-color: #f89406;
3270 *background-color: #df8505;
3271}
3272
3273.btn-warning:active,
3274.btn-warning.active {
3275 background-color: #c67605 \9;
3276}
3277
3278.btn-danger {
3279 color: #ffffff;
3280 text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
3281 background-color: #da4f49;
3282 *background-color: #bd362f;
3283 background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f);
3284 background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f));
3285 background-image: -webkit-linear-gradient(top, #ee5f5b, #bd362f);
3286 background-image: -o-linear-gradient(top, #ee5f5b, #bd362f);
3287 background-image: linear-gradient(to bottom, #ee5f5b, #bd362f);
3288 background-repeat: repeat-x;
3289 border-color: #bd362f #bd362f #802420;
3290 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
3291 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffbd362f', GradientType=0);
3292 filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
3293}
3294
3295.btn-danger:hover,
3296.btn-danger:active,
3297.btn-danger.active,
3298.btn-danger.disabled,
3299.btn-danger[disabled] {
3300 color: #ffffff;
3301 background-color: #bd362f;
3302 *background-color: #a9302a;
3303}
3304
3305.btn-danger:active,
3306.btn-danger.active {
3307 background-color: #942a25 \9;
3308}
3309
3310.btn-success {
3311 color: #ffffff;
3312 text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
3313 background-color: #5bb75b;
3314 *background-color: #51a351;
3315 background-image: -moz-linear-gradient(top, #62c462, #51a351);
3316 background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351));
3317 background-image: -webkit-linear-gradient(top, #62c462, #51a351);
3318 background-image: -o-linear-gradient(top, #62c462, #51a351);
3319 background-image: linear-gradient(to bottom, #62c462, #51a351);
3320 background-repeat: repeat-x;
3321 border-color: #51a351 #51a351 #387038;
3322 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
3323 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff51a351', GradientType=0);
3324 filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
3325}
3326
3327.btn-success:hover,
3328.btn-success:active,
3329.btn-success.active,
3330.btn-success.disabled,
3331.btn-success[disabled] {
3332 color: #ffffff;
3333 background-color: #51a351;
3334 *background-color: #499249;
3335}
3336
3337.btn-success:active,
3338.btn-success.active {
3339 background-color: #408140 \9;
3340}
3341
3342.btn-info {
3343 color: #ffffff;
3344 text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
3345 background-color: #49afcd;
3346 *background-color: #2f96b4;
3347 background-image: -moz-linear-gradient(top, #5bc0de, #2f96b4);
3348 background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4));
3349 background-image: -webkit-linear-gradient(top, #5bc0de, #2f96b4);
3350 background-image: -o-linear-gradient(top, #5bc0de, #2f96b4);
3351 background-image: linear-gradient(to bottom, #5bc0de, #2f96b4);
3352 background-repeat: repeat-x;
3353 border-color: #2f96b4 #2f96b4 #1f6377;
3354 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
3355 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2f96b4', GradientType=0);
3356 filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
3357}
3358
3359.btn-info:hover,
3360.btn-info:active,
3361.btn-info.active,
3362.btn-info.disabled,
3363.btn-info[disabled] {
3364 color: #ffffff;
3365 background-color: #2f96b4;
3366 *background-color: #2a85a0;
3367}
3368
3369.btn-info:active,
3370.btn-info.active {
3371 background-color: #24748c \9;
3372}
3373
3374.btn-inverse {
3375 color: #ffffff;
3376 text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
3377 background-color: #363636;
3378 *background-color: #222222;
3379 background-image: -moz-linear-gradient(top, #444444, #222222);
3380 background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#444444), to(#222222));
3381 background-image: -webkit-linear-gradient(top, #444444, #222222);
3382 background-image: -o-linear-gradient(top, #444444, #222222);
3383 background-image: linear-gradient(to bottom, #444444, #222222);
3384 background-repeat: repeat-x;
3385 border-color: #222222 #222222 #000000;
3386 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
3387 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff444444', endColorstr='#ff222222', GradientType=0);
3388 filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
3389}
3390
3391.btn-inverse:hover,
3392.btn-inverse:active,
3393.btn-inverse.active,
3394.btn-inverse.disabled,
3395.btn-inverse[disabled] {
3396 color: #ffffff;
3397 background-color: #222222;
3398 *background-color: #151515;
3399}
3400
3401.btn-inverse:active,
3402.btn-inverse.active {
3403 background-color: #080808 \9;
3404}
3405
3406button.btn,
3407input[type="submit"].btn {
3408 *padding-top: 3px;
3409 *padding-bottom: 3px;
3410}
3411
3412button.btn::-moz-focus-inner,
3413input[type="submit"].btn::-moz-focus-inner {
3414 padding: 0;
3415 border: 0;
3416}
3417
3418button.btn.btn-large,
3419input[type="submit"].btn.btn-large {
3420 *padding-top: 7px;
3421 *padding-bottom: 7px;
3422}
3423
3424button.btn.btn-small,
3425input[type="submit"].btn.btn-small {
3426 *padding-top: 3px;
3427 *padding-bottom: 3px;
3428}
3429
3430button.btn.btn-mini,
3431input[type="submit"].btn.btn-mini {
3432 *padding-top: 1px;
3433 *padding-bottom: 1px;
3434}
3435
3436.btn-link,
3437.btn-link:active,
3438.btn-link[disabled] {
3439 background-color: transparent;
3440 background-image: none;
3441 -webkit-box-shadow: none;
3442 -moz-box-shadow: none;
3443 box-shadow: none;
3444}
3445
3446.btn-link {
3447 color: #0088cc;
3448 cursor: pointer;
3449 border-color: transparent;
3450 -webkit-border-radius: 0;
3451 -moz-border-radius: 0;
3452 border-radius: 0;
3453}
3454
3455.btn-link:hover {
3456 color: #005580;
3457 text-decoration: underline;
3458 background-color: transparent;
3459}
3460
3461.btn-link[disabled]:hover {
3462 color: #333333;
3463 text-decoration: none;
3464}
3465
3466.btn-group {
3467 position: relative;
3468 display: inline-block;
3469 *display: inline;
3470 *margin-left: .3em;
3471 font-size: 0;
3472 white-space: nowrap;
3473 vertical-align: middle;
3474 *zoom: 1;
3475}
3476
3477.btn-group:first-child {
3478 *margin-left: 0;
3479}
3480
3481.btn-group + .btn-group {
3482 margin-left: 5px;
3483}
3484
3485.btn-toolbar {
3486 margin-top: 10px;
3487 margin-bottom: 10px;
3488 font-size: 0;
3489}
3490
3491.btn-toolbar .btn + .btn,
3492.btn-toolbar .btn-group + .btn,
3493.btn-toolbar .btn + .btn-group {
3494 margin-left: 5px;
3495}
3496
3497.btn-group > .btn {
3498 position: relative;
3499 -webkit-border-radius: 0;
3500 -moz-border-radius: 0;
3501 border-radius: 0;
3502}
3503
3504.btn-group > .btn + .btn {
3505 margin-left: -1px;
3506}
3507
3508.btn-group > .btn,
3509.btn-group > .dropdown-menu {
3510 font-size: 14px;
3511}
3512
3513.btn-group > .btn-mini {
3514 font-size: 11px;
3515}
3516
3517.btn-group > .btn-small {
3518 font-size: 12px;
3519}
3520
3521.btn-group > .btn-large {
3522 font-size: 16px;
3523}
3524
3525.btn-group > .btn:first-child {
3526 margin-left: 0;
3527 -webkit-border-bottom-left-radius: 4px;
3528 border-bottom-left-radius: 4px;
3529 -webkit-border-top-left-radius: 4px;
3530 border-top-left-radius: 4px;
3531 -moz-border-radius-bottomleft: 4px;
3532 -moz-border-radius-topleft: 4px;
3533}
3534
3535.btn-group > .btn:last-child,
3536.btn-group > .dropdown-toggle {
3537 -webkit-border-top-right-radius: 4px;
3538 border-top-right-radius: 4px;
3539 -webkit-border-bottom-right-radius: 4px;
3540 border-bottom-right-radius: 4px;
3541 -moz-border-radius-topright: 4px;
3542 -moz-border-radius-bottomright: 4px;
3543}
3544
3545.btn-group > .btn.large:first-child {
3546 margin-left: 0;
3547 -webkit-border-bottom-left-radius: 6px;
3548 border-bottom-left-radius: 6px;
3549 -webkit-border-top-left-radius: 6px;
3550 border-top-left-radius: 6px;
3551 -moz-border-radius-bottomleft: 6px;
3552 -moz-border-radius-topleft: 6px;
3553}
3554
3555.btn-group > .btn.large:last-child,
3556.btn-group > .large.dropdown-toggle {
3557 -webkit-border-top-right-radius: 6px;
3558 border-top-right-radius: 6px;
3559 -webkit-border-bottom-right-radius: 6px;
3560 border-bottom-right-radius: 6px;
3561 -moz-border-radius-topright: 6px;
3562 -moz-border-radius-bottomright: 6px;
3563}
3564
3565.btn-group > .btn:hover,
3566.btn-group > .btn:focus,
3567.btn-group > .btn:active,
3568.btn-group > .btn.active {
3569 z-index: 2;
3570}
3571
3572.btn-group .dropdown-toggle:active,
3573.btn-group.open .dropdown-toggle {
3574 outline: 0;
3575}
3576
3577.btn-group > .btn + .dropdown-toggle {
3578 *padding-top: 5px;
3579 padding-right: 8px;
3580 *padding-bottom: 5px;
3581 padding-left: 8px;
3582 -webkit-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
3583 -moz-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
3584 box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);
3585}
3586
3587.btn-group > .btn-mini + .dropdown-toggle {
3588 *padding-top: 2px;
3589 padding-right: 5px;
3590 *padding-bottom: 2px;
3591 padding-left: 5px;
3592}
3593
3594.btn-group > .btn-small + .dropdown-toggle {
3595 *padding-top: 5px;
3596 *padding-bottom: 4px;
3597}
3598
3599.btn-group > .btn-large + .dropdown-toggle {
3600 *padding-top: 7px;
3601 padding-right: 12px;
3602 *padding-bottom: 7px;
3603 padding-left: 12px;
3604}
3605
3606.btn-group.open .dropdown-toggle {
3607 background-image: none;
3608 -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
3609 -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
3610 box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);
3611}
3612
3613.btn-group.open .btn.dropdown-toggle {
3614 background-color: #e6e6e6;
3615}
3616
3617.btn-group.open .btn-primary.dropdown-toggle {
3618 background-color: #0044cc;
3619}
3620
3621.btn-group.open .btn-warning.dropdown-toggle {
3622 background-color: #f89406;
3623}
3624
3625.btn-group.open .btn-danger.dropdown-toggle {
3626 background-color: #bd362f;
3627}
3628
3629.btn-group.open .btn-success.dropdown-toggle {
3630 background-color: #51a351;
3631}
3632
3633.btn-group.open .btn-info.dropdown-toggle {
3634 background-color: #2f96b4;
3635}
3636
3637.btn-group.open .btn-inverse.dropdown-toggle {
3638 background-color: #222222;
3639}
3640
3641.btn .caret {
3642 margin-top: 8px;
3643 margin-left: 0;
3644}
3645
3646.btn-mini .caret,
3647.btn-small .caret,
3648.btn-large .caret {
3649 margin-top: 6px;
3650}
3651
3652.btn-large .caret {
3653 border-top-width: 5px;
3654 border-right-width: 5px;
3655 border-left-width: 5px;
3656}
3657
3658.dropup .btn-large .caret {
3659 border-bottom-width: 5px;
3660}
3661
3662.btn-primary .caret,
3663.btn-warning .caret,
3664.btn-danger .caret,
3665.btn-info .caret,
3666.btn-success .caret,
3667.btn-inverse .caret {
3668 border-top-color: #ffffff;
3669 border-bottom-color: #ffffff;
3670}
3671
3672.btn-group-vertical {
3673 display: inline-block;
3674 *display: inline;
3675 /* IE7 inline-block hack */
3676
3677 *zoom: 1;
3678}
3679
3680.btn-group-vertical .btn {
3681 display: block;
3682 float: none;
3683 width: 100%;
3684 -webkit-border-radius: 0;
3685 -moz-border-radius: 0;
3686 border-radius: 0;
3687}
3688
3689.btn-group-vertical .btn + .btn {
3690 margin-top: -1px;
3691 margin-left: 0;
3692}
3693
3694.btn-group-vertical .btn:first-child {
3695 -webkit-border-radius: 4px 4px 0 0;
3696 -moz-border-radius: 4px 4px 0 0;
3697 border-radius: 4px 4px 0 0;
3698}
3699
3700.btn-group-vertical .btn:last-child {
3701 -webkit-border-radius: 0 0 4px 4px;
3702 -moz-border-radius: 0 0 4px 4px;
3703 border-radius: 0 0 4px 4px;
3704}
3705
3706.btn-group-vertical .btn-large:first-child {
3707 -webkit-border-radius: 6px 6px 0 0;
3708 -moz-border-radius: 6px 6px 0 0;
3709 border-radius: 6px 6px 0 0;
3710}
3711
3712.btn-group-vertical .btn-large:last-child {
3713 -webkit-border-radius: 0 0 6px 6px;
3714 -moz-border-radius: 0 0 6px 6px;
3715 border-radius: 0 0 6px 6px;
3716}
3717
3718.alert {
3719 padding: 8px 35px 8px 14px;
3720 margin-bottom: 20px;
3721 color: #c09853;
3722 text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
3723 background-color: #fcf8e3;
3724 border: 1px solid #fbeed5;
3725 -webkit-border-radius: 4px;
3726 -moz-border-radius: 4px;
3727 border-radius: 4px;
3728}
3729
3730.alert h4 {
3731 margin: 0;
3732}
3733
3734.alert .close {
3735 position: relative;
3736 top: -2px;
3737 right: -21px;
3738 line-height: 20px;
3739}
3740
3741.alert-success {
3742 color: #468847;
3743 background-color: #dff0d8;
3744 border-color: #d6e9c6;
3745}
3746
3747.alert-danger,
3748.alert-error {
3749 color: #b94a48;
3750 background-color: #f2dede;
3751 border-color: #eed3d7;
3752}
3753
3754.alert-info {
3755 color: #3a87ad;
3756 background-color: #d9edf7;
3757 border-color: #bce8f1;
3758}
3759
3760.alert-block {
3761 padding-top: 14px;
3762 padding-bottom: 14px;
3763}
3764
3765.alert-block > p,
3766.alert-block > ul {
3767 margin-bottom: 0;
3768}
3769
3770.alert-block p + p {
3771 margin-top: 5px;
3772}
3773
3774.nav {
3775 margin-bottom: 20px;
3776 margin-left: 0;
3777 list-style: none;
3778}
3779
3780.nav > li > a {
3781 display: block;
3782}
3783
3784.nav > li > a:hover {
3785 text-decoration: none;
3786 background-color: #eeeeee;
3787}
3788
3789.nav > .pull-right {
3790 float: right;
3791}
3792
3793.nav-header {
3794 display: block;
3795 padding: 3px 15px;
3796 font-size: 11px;
3797 font-weight: bold;
3798 line-height: 20px;
3799 color: #999999;
3800 text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
3801 text-transform: uppercase;
3802}
3803
3804.nav li + .nav-header {
3805 margin-top: 9px;
3806}
3807
3808.nav-list {
3809 padding-right: 15px;
3810 padding-left: 15px;
3811 margin-bottom: 0;
3812}
3813
3814.nav-list > li > a,
3815.nav-list .nav-header {
3816 margin-right: -15px;
3817 margin-left: -15px;
3818 text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
3819}
3820
3821.nav-list > li > a {
3822 padding: 3px 15px;
3823}
3824
3825.nav-list > .active > a,
3826.nav-list > .active > a:hover {
3827 color: #ffffff;
3828 text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2);
3829 background-color: #0088cc;
3830}
3831
3832.nav-list [class^="icon-"],
3833.nav-list [class*=" icon-"] {
3834 margin-right: 2px;
3835}
3836
3837.nav-list .divider {
3838 *width: 100%;
3839 height: 1px;
3840 margin: 9px 1px;
3841 *margin: -5px 0 5px;
3842 overflow: hidden;
3843 background-color: #e5e5e5;
3844 border-bottom: 1px solid #ffffff;
3845}
3846
3847.nav-tabs,
3848.nav-pills {
3849 *zoom: 1;
3850}
3851
3852.nav-tabs:before,
3853.nav-pills:before,
3854.nav-tabs:after,
3855.nav-pills:after {
3856 display: table;
3857 line-height: 0;
3858 content: "";
3859}
3860
3861.nav-tabs:after,
3862.nav-pills:after {
3863 clear: both;
3864}
3865
3866.nav-tabs > li,
3867.nav-pills > li {
3868 float: left;
3869}
3870
3871.nav-tabs > li > a,
3872.nav-pills > li > a {
3873 padding-right: 12px;
3874 padding-left: 12px;
3875 margin-right: 2px;
3876 line-height: 14px;
3877}
3878
3879.nav-tabs {
3880 border-bottom: 1px solid #ddd;
3881}
3882
3883.nav-tabs > li {
3884 margin-bottom: -1px;
3885}
3886
3887.nav-tabs > li > a {
3888 padding-top: 8px;
3889 padding-bottom: 8px;
3890 line-height: 20px;
3891 border: 1px solid transparent;
3892 -webkit-border-radius: 4px 4px 0 0;
3893 -moz-border-radius: 4px 4px 0 0;
3894 border-radius: 4px 4px 0 0;
3895}
3896
3897.nav-tabs > li > a:hover {
3898 border-color: #eeeeee #eeeeee #dddddd;
3899}
3900
3901.nav-tabs > .active > a,
3902.nav-tabs > .active > a:hover {
3903 color: #555555;
3904 cursor: default;
3905 background-color: #ffffff;
3906 border: 1px solid #ddd;
3907 border-bottom-color: transparent;
3908}
3909
3910.nav-pills > li > a {
3911 padding-top: 8px;
3912 padding-bottom: 8px;
3913 margin-top: 2px;
3914 margin-bottom: 2px;
3915 -webkit-border-radius: 5px;
3916 -moz-border-radius: 5px;
3917 border-radius: 5px;
3918}
3919
3920.nav-pills > .active > a,
3921.nav-pills > .active > a:hover {
3922 color: #ffffff;
3923 background-color: #0088cc;
3924}
3925
3926.nav-stacked > li {
3927 float: none;
3928}
3929
3930.nav-stacked > li > a {
3931 margin-right: 0;
3932}
3933
3934.nav-tabs.nav-stacked {
3935 border-bottom: 0;
3936}
3937
3938.nav-tabs.nav-stacked > li > a {
3939 border: 1px solid #ddd;
3940 -webkit-border-radius: 0;
3941 -moz-border-radius: 0;
3942 border-radius: 0;
3943}
3944
3945.nav-tabs.nav-stacked > li:first-child > a {
3946 -webkit-border-top-right-radius: 4px;
3947 border-top-right-radius: 4px;
3948 -webkit-border-top-left-radius: 4px;
3949 border-top-left-radius: 4px;
3950 -moz-border-radius-topright: 4px;
3951 -moz-border-radius-topleft: 4px;
3952}
3953
3954.nav-tabs.nav-stacked > li:last-child > a {
3955 -webkit-border-bottom-right-radius: 4px;
3956 border-bottom-right-radius: 4px;
3957 -webkit-border-bottom-left-radius: 4px;
3958 border-bottom-left-radius: 4px;
3959 -moz-border-radius-bottomright: 4px;
3960 -moz-border-radius-bottomleft: 4px;
3961}
3962
3963.nav-tabs.nav-stacked > li > a:hover {
3964 z-index: 2;
3965 border-color: #ddd;
3966}
3967
3968.nav-pills.nav-stacked > li > a {
3969 margin-bottom: 3px;
3970}
3971
3972.nav-pills.nav-stacked > li:last-child > a {
3973 margin-bottom: 1px;
3974}
3975
3976.nav-tabs .dropdown-menu {
3977 -webkit-border-radius: 0 0 6px 6px;
3978 -moz-border-radius: 0 0 6px 6px;
3979 border-radius: 0 0 6px 6px;
3980}
3981
3982.nav-pills .dropdown-menu {
3983 -webkit-border-radius: 6px;
3984 -moz-border-radius: 6px;
3985 border-radius: 6px;
3986}
3987
3988.nav .dropdown-toggle .caret {
3989 margin-top: 6px;
3990 border-top-color: #0088cc;
3991 border-bottom-color: #0088cc;
3992}
3993
3994.nav .dropdown-toggle:hover .caret {
3995 border-top-color: #005580;
3996 border-bottom-color: #005580;
3997}
3998
3999/* move down carets for tabs */
4000
4001.nav-tabs .dropdown-toggle .caret {
4002 margin-top: 8px;
4003}
4004
4005.nav .active .dropdown-toggle .caret {
4006 border-top-color: #fff;
4007 border-bottom-color: #fff;
4008}
4009
4010.nav-tabs .active .dropdown-toggle .caret {
4011 border-top-color: #555555;
4012 border-bottom-color: #555555;
4013}
4014
4015.nav > .dropdown.active > a:hover {
4016 cursor: pointer;
4017}
4018
4019.nav-tabs .open .dropdown-toggle,
4020.nav-pills .open .dropdown-toggle,
4021.nav > li.dropdown.open.active > a:hover {
4022 color: #ffffff;
4023 background-color: #999999;
4024 border-color: #999999;
4025}
4026
4027.nav li.dropdown.open .caret,
4028.nav li.dropdown.open.active .caret,
4029.nav li.dropdown.open a:hover .caret {
4030 border-top-color: #ffffff;
4031 border-bottom-color: #ffffff;
4032 opacity: 1;
4033 filter: alpha(opacity=100);
4034}
4035
4036.tabs-stacked .open > a:hover {
4037 border-color: #999999;
4038}
4039
4040.tabbable {
4041 *zoom: 1;
4042}
4043
4044.tabbable:before,
4045.tabbable:after {
4046 display: table;
4047 line-height: 0;
4048 content: "";
4049}
4050
4051.tabbable:after {
4052 clear: both;
4053}
4054
4055.tab-content {
4056 overflow: auto;
4057}
4058
4059.tabs-below > .nav-tabs,
4060.tabs-right > .nav-tabs,
4061.tabs-left > .nav-tabs {
4062 border-bottom: 0;
4063}
4064
4065.tab-content > .tab-pane,
4066.pill-content > .pill-pane {
4067 display: none;
4068}
4069
4070.tab-content > .active,
4071.pill-content > .active {
4072 display: block;
4073}
4074
4075.tabs-below > .nav-tabs {
4076 border-top: 1px solid #ddd;
4077}
4078
4079.tabs-below > .nav-tabs > li {
4080 margin-top: -1px;
4081 margin-bottom: 0;
4082}
4083
4084.tabs-below > .nav-tabs > li > a {
4085 -webkit-border-radius: 0 0 4px 4px;
4086 -moz-border-radius: 0 0 4px 4px;
4087 border-radius: 0 0 4px 4px;
4088}
4089
4090.tabs-below > .nav-tabs > li > a:hover {
4091 border-top-color: #ddd;
4092 border-bottom-color: transparent;
4093}
4094
4095.tabs-below > .nav-tabs > .active > a,
4096.tabs-below > .nav-tabs > .active > a:hover {
4097 border-color: transparent #ddd #ddd #ddd;
4098}
4099
4100.tabs-left > .nav-tabs > li,
4101.tabs-right > .nav-tabs > li {
4102 float: none;
4103}
4104
4105.tabs-left > .nav-tabs > li > a,
4106.tabs-right > .nav-tabs > li > a {
4107 min-width: 74px;
4108 margin-right: 0;
4109 margin-bottom: 3px;
4110}
4111
4112.tabs-left > .nav-tabs {
4113 float: left;
4114 margin-right: 19px;
4115 border-right: 1px solid #ddd;
4116}
4117
4118.tabs-left > .nav-tabs > li > a {
4119 margin-right: -1px;
4120 -webkit-border-radius: 4px 0 0 4px;
4121 -moz-border-radius: 4px 0 0 4px;
4122 border-radius: 4px 0 0 4px;
4123}
4124
4125.tabs-left > .nav-tabs > li > a:hover {
4126 border-color: #eeeeee #dddddd #eeeeee #eeeeee;
4127}
4128
4129.tabs-left > .nav-tabs .active > a,
4130.tabs-left > .nav-tabs .active > a:hover {
4131 border-color: #ddd transparent #ddd #ddd;
4132 *border-right-color: #ffffff;
4133}
4134
4135.tabs-right > .nav-tabs {
4136 float: right;
4137 margin-left: 19px;
4138 border-left: 1px solid #ddd;
4139}
4140
4141.tabs-right > .nav-tabs > li > a {
4142 margin-left: -1px;
4143 -webkit-border-radius: 0 4px 4px 0;
4144 -moz-border-radius: 0 4px 4px 0;
4145 border-radius: 0 4px 4px 0;
4146}
4147
4148.tabs-right > .nav-tabs > li > a:hover {
4149 border-color: #eeeeee #eeeeee #eeeeee #dddddd;
4150}
4151
4152.tabs-right > .nav-tabs .active > a,
4153.tabs-right > .nav-tabs .active > a:hover {
4154 border-color: #ddd #ddd #ddd transparent;
4155 *border-left-color: #ffffff;
4156}
4157
4158.nav > .disabled > a {
4159 color: #999999;
4160}
4161
4162.nav > .disabled > a:hover {
4163 text-decoration: none;
4164 cursor: default;
4165 background-color: transparent;
4166}
4167
4168.navbar {
4169 *position: relative;
4170 *z-index: 2;
4171 margin-bottom: 20px;
4172 overflow: visible;
4173 color: #777777;
4174}
4175
4176.navbar-inner {
4177 min-height: 40px;
4178 padding-right: 20px;
4179 padding-left: 20px;
4180 background-color: #fafafa;
4181 background-image: -moz-linear-gradient(top, #ffffff, #f2f2f2);
4182 background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f2f2f2));
4183 background-image: -webkit-linear-gradient(top, #ffffff, #f2f2f2);
4184 background-image: -o-linear-gradient(top, #ffffff, #f2f2f2);
4185 background-image: linear-gradient(to bottom, #ffffff, #f2f2f2);
4186 background-repeat: repeat-x;
4187 border: 1px solid #d4d4d4;
4188 -webkit-border-radius: 4px;
4189 -moz-border-radius: 4px;
4190 border-radius: 4px;
4191 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff2f2f2', GradientType=0);
4192 *zoom: 1;
4193 -webkit-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065);
4194 -moz-box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065);
4195 box-shadow: 0 1px 4px rgba(0, 0, 0, 0.065);
4196}
4197
4198.navbar-inner:before,
4199.navbar-inner:after {
4200 display: table;
4201 line-height: 0;
4202 content: "";
4203}
4204
4205.navbar-inner:after {
4206 clear: both;
4207}
4208
4209.navbar .container {
4210 width: auto;
4211}
4212
4213.nav-collapse.collapse {
4214 height: auto;
4215 overflow: visible;
4216}
4217
4218.navbar .brand {
4219 display: block;
4220 float: left;
4221 padding: 10px 20px 10px;
4222 margin-left: -20px;
4223 font-size: 20px;
4224 font-weight: 200;
4225 color: #777777;
4226 text-shadow: 0 1px 0 #ffffff;
4227}
4228
4229.navbar .brand:hover {
4230 text-decoration: none;
4231}
4232
4233.navbar-text {
4234 margin-bottom: 0;
4235 line-height: 40px;
4236}
4237
4238.navbar-link {
4239 color: #777777;
4240}
4241
4242.navbar-link:hover {
4243 color: #333333;
4244}
4245
4246.navbar .divider-vertical {
4247 height: 40px;
4248 margin: 0 9px;
4249 border-right: 1px solid #ffffff;
4250 border-left: 1px solid #f2f2f2;
4251}
4252
4253.navbar .btn,
4254.navbar .btn-group {
4255 margin-top: 5px;
4256}
4257
4258.navbar .btn-group .btn,
4259.navbar .input-prepend .btn,
4260.navbar .input-append .btn {
4261 margin-top: 0;
4262}
4263
4264.navbar-form {
4265 margin-bottom: 0;
4266 *zoom: 1;
4267}
4268
4269.navbar-form:before,
4270.navbar-form:after {
4271 display: table;
4272 line-height: 0;
4273 content: "";
4274}
4275
4276.navbar-form:after {
4277 clear: both;
4278}
4279
4280.navbar-form input,
4281.navbar-form select,
4282.navbar-form .radio,
4283.navbar-form .checkbox {
4284 margin-top: 5px;
4285}
4286
4287.navbar-form input,
4288.navbar-form select,
4289.navbar-form .btn {
4290 display: inline-block;
4291 margin-bottom: 0;
4292}
4293
4294.navbar-form input[type="image"],
4295.navbar-form input[type="checkbox"],
4296.navbar-form input[type="radio"] {
4297 margin-top: 3px;
4298}
4299
4300.navbar-form .input-append,
4301.navbar-form .input-prepend {
4302 margin-top: 6px;
4303 white-space: nowrap;
4304}
4305
4306.navbar-form .input-append input,
4307.navbar-form .input-prepend input {
4308 margin-top: 0;
4309}
4310
4311.navbar-search {
4312 position: relative;
4313 float: left;
4314 margin-top: 5px;
4315 margin-bottom: 0;
4316}
4317
4318.navbar-search .search-query {
4319 padding: 4px 14px;
4320 margin-bottom: 0;
4321 font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
4322 font-size: 13px;
4323 font-weight: normal;
4324 line-height: 1;
4325 -webkit-border-radius: 15px;
4326 -moz-border-radius: 15px;
4327 border-radius: 15px;
4328}
4329
4330.navbar-static-top {
4331 position: static;
4332 margin-bottom: 0;
4333}
4334
4335.navbar-static-top .navbar-inner {
4336 -webkit-border-radius: 0;
4337 -moz-border-radius: 0;
4338 border-radius: 0;
4339}
4340
4341.navbar-fixed-top,
4342.navbar-fixed-bottom {
4343 position: fixed;
4344 right: 0;
4345 left: 0;
4346 z-index: 1030;
4347 margin-bottom: 0;
4348}
4349
4350.navbar-fixed-top .navbar-inner,
4351.navbar-static-top .navbar-inner {
4352 border-width: 0 0 1px;
4353}
4354
4355.navbar-fixed-bottom .navbar-inner {
4356 border-width: 1px 0 0;
4357}
4358
4359.navbar-fixed-top .navbar-inner,
4360.navbar-fixed-bottom .navbar-inner {
4361 padding-right: 0;
4362 padding-left: 0;
4363 -webkit-border-radius: 0;
4364 -moz-border-radius: 0;
4365 border-radius: 0;
4366}
4367
4368.navbar-static-top .container,
4369.navbar-fixed-top .container,
4370.navbar-fixed-bottom .container {
4371 width: 940px;
4372}
4373
4374.navbar-fixed-top {
4375 top: 0;
4376}
4377
4378.navbar-fixed-top .navbar-inner,
4379.navbar-static-top .navbar-inner {
4380 -webkit-box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1);
4381 -moz-box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1);
4382 box-shadow: 0 1px 10px rgba(0, 0, 0, 0.1);
4383}
4384
4385.navbar-fixed-bottom {
4386 bottom: 0;
4387}
4388
4389.navbar-fixed-bottom .navbar-inner {
4390 -webkit-box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1);
4391 -moz-box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1);
4392 box-shadow: 0 -1px 10px rgba(0, 0, 0, 0.1);
4393}
4394
4395.navbar .nav {
4396 position: relative;
4397 left: 0;
4398 display: block;
4399 float: left;
4400 margin: 0 10px 0 0;
4401}
4402
4403.navbar .nav.pull-right {
4404 float: right;
4405 margin-right: 0;
4406}
4407
4408.navbar .nav > li {
4409 float: left;
4410}
4411
4412.navbar .nav > li > a {
4413 float: none;
4414 padding: 10px 15px 10px;
4415 color: #777777;
4416 text-decoration: none;
4417 text-shadow: 0 1px 0 #ffffff;
4418}
4419
4420.navbar .nav .dropdown-toggle .caret {
4421 margin-top: 8px;
4422}
4423
4424.navbar .nav > li > a:focus,
4425.navbar .nav > li > a:hover {
4426 color: #333333;
4427 text-decoration: none;
4428 background-color: transparent;
4429}
4430
4431.navbar .nav > .active > a,
4432.navbar .nav > .active > a:hover,
4433.navbar .nav > .active > a:focus {
4434 color: #555555;
4435 text-decoration: none;
4436 background-color: #e5e5e5;
4437 -webkit-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125);
4438 -moz-box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125);
4439 box-shadow: inset 0 3px 8px rgba(0, 0, 0, 0.125);
4440}
4441
4442.navbar .btn-navbar {
4443 display: none;
4444 float: right;
4445 padding: 7px 10px;
4446 margin-right: 5px;
4447 margin-left: 5px;
4448 color: #ffffff;
4449 text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
4450 background-color: #ededed;
4451 *background-color: #e5e5e5;
4452 background-image: -moz-linear-gradient(top, #f2f2f2, #e5e5e5);
4453 background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f2f2f2), to(#e5e5e5));
4454 background-image: -webkit-linear-gradient(top, #f2f2f2, #e5e5e5);
4455 background-image: -o-linear-gradient(top, #f2f2f2, #e5e5e5);
4456 background-image: linear-gradient(to bottom, #f2f2f2, #e5e5e5);
4457 background-repeat: repeat-x;
4458 border-color: #e5e5e5 #e5e5e5 #bfbfbf;
4459 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
4460 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2f2f2', endColorstr='#ffe5e5e5', GradientType=0);
4461 filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
4462 -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075);
4463 -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075);
4464 box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075);
4465}
4466
4467.navbar .btn-navbar:hover,
4468.navbar .btn-navbar:active,
4469.navbar .btn-navbar.active,
4470.navbar .btn-navbar.disabled,
4471.navbar .btn-navbar[disabled] {
4472 color: #ffffff;
4473 background-color: #e5e5e5;
4474 *background-color: #d9d9d9;
4475}
4476
4477.navbar .btn-navbar:active,
4478.navbar .btn-navbar.active {
4479 background-color: #cccccc \9;
4480}
4481
4482.navbar .btn-navbar .icon-bar {
4483 display: block;
4484 width: 18px;
4485 height: 2px;
4486 background-color: #f5f5f5;
4487 -webkit-border-radius: 1px;
4488 -moz-border-radius: 1px;
4489 border-radius: 1px;
4490 -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);
4491 -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);
4492 box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);
4493}
4494
4495.btn-navbar .icon-bar + .icon-bar {
4496 margin-top: 3px;
4497}
4498
4499.navbar .nav > li > .dropdown-menu:before {
4500 position: absolute;
4501 top: -7px;
4502 left: 9px;
4503 display: inline-block;
4504 border-right: 7px solid transparent;
4505 border-bottom: 7px solid #ccc;
4506 border-left: 7px solid transparent;
4507 border-bottom-color: rgba(0, 0, 0, 0.2);
4508 content: '';
4509}
4510
4511.navbar .nav > li > .dropdown-menu:after {
4512 position: absolute;
4513 top: -6px;
4514 left: 10px;
4515 display: inline-block;
4516 border-right: 6px solid transparent;
4517 border-bottom: 6px solid #ffffff;
4518 border-left: 6px solid transparent;
4519 content: '';
4520}
4521
4522.navbar-fixed-bottom .nav > li > .dropdown-menu:before {
4523 top: auto;
4524 bottom: -7px;
4525 border-top: 7px solid #ccc;
4526 border-bottom: 0;
4527 border-top-color: rgba(0, 0, 0, 0.2);
4528}
4529
4530.navbar-fixed-bottom .nav > li > .dropdown-menu:after {
4531 top: auto;
4532 bottom: -6px;
4533 border-top: 6px solid #ffffff;
4534 border-bottom: 0;
4535}
4536
4537.navbar .nav li.dropdown.open > .dropdown-toggle,
4538.navbar .nav li.dropdown.active > .dropdown-toggle,
4539.navbar .nav li.dropdown.open.active > .dropdown-toggle {
4540 color: #555555;
4541 background-color: #e5e5e5;
4542}
4543
4544.navbar .nav li.dropdown > .dropdown-toggle .caret {
4545 border-top-color: #777777;
4546 border-bottom-color: #777777;
4547}
4548
4549.navbar .nav li.dropdown.open > .dropdown-toggle .caret,
4550.navbar .nav li.dropdown.active > .dropdown-toggle .caret,
4551.navbar .nav li.dropdown.open.active > .dropdown-toggle .caret {
4552 border-top-color: #555555;
4553 border-bottom-color: #555555;
4554}
4555
4556.navbar .pull-right > li > .dropdown-menu,
4557.navbar .nav > li > .dropdown-menu.pull-right {
4558 right: 0;
4559 left: auto;
4560}
4561
4562.navbar .pull-right > li > .dropdown-menu:before,
4563.navbar .nav > li > .dropdown-menu.pull-right:before {
4564 right: 12px;
4565 left: auto;
4566}
4567
4568.navbar .pull-right > li > .dropdown-menu:after,
4569.navbar .nav > li > .dropdown-menu.pull-right:after {
4570 right: 13px;
4571 left: auto;
4572}
4573
4574.navbar .pull-right > li > .dropdown-menu .dropdown-menu,
4575.navbar .nav > li > .dropdown-menu.pull-right .dropdown-menu {
4576 right: 100%;
4577 left: auto;
4578 margin-right: -1px;
4579 margin-left: 0;
4580 -webkit-border-radius: 6px 0 6px 6px;
4581 -moz-border-radius: 6px 0 6px 6px;
4582 border-radius: 6px 0 6px 6px;
4583}
4584
4585.navbar-inverse {
4586 color: #999999;
4587}
4588
4589.navbar-inverse .navbar-inner {
4590 background-color: #1b1b1b;
4591 background-image: -moz-linear-gradient(top, #222222, #111111);
4592 background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#222222), to(#111111));
4593 background-image: -webkit-linear-gradient(top, #222222, #111111);
4594 background-image: -o-linear-gradient(top, #222222, #111111);
4595 background-image: linear-gradient(to bottom, #222222, #111111);
4596 background-repeat: repeat-x;
4597 border-color: #252525;
4598 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff111111', GradientType=0);
4599}
4600
4601.navbar-inverse .brand,
4602.navbar-inverse .nav > li > a {
4603 color: #999999;
4604 text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
4605}
4606
4607.navbar-inverse .brand:hover,
4608.navbar-inverse .nav > li > a:hover {
4609 color: #ffffff;
4610}
4611
4612.navbar-inverse .nav > li > a:focus,
4613.navbar-inverse .nav > li > a:hover {
4614 color: #ffffff;
4615 background-color: transparent;
4616}
4617
4618.navbar-inverse .nav .active > a,
4619.navbar-inverse .nav .active > a:hover,
4620.navbar-inverse .nav .active > a:focus {
4621 color: #ffffff;
4622 background-color: #111111;
4623}
4624
4625.navbar-inverse .navbar-link {
4626 color: #999999;
4627}
4628
4629.navbar-inverse .navbar-link:hover {
4630 color: #ffffff;
4631}
4632
4633.navbar-inverse .divider-vertical {
4634 border-right-color: #222222;
4635 border-left-color: #111111;
4636}
4637
4638.navbar-inverse .nav li.dropdown.open > .dropdown-toggle,
4639.navbar-inverse .nav li.dropdown.active > .dropdown-toggle,
4640.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle {
4641 color: #ffffff;
4642 background-color: #111111;
4643}
4644
4645.navbar-inverse .nav li.dropdown > .dropdown-toggle .caret {
4646 border-top-color: #999999;
4647 border-bottom-color: #999999;
4648}
4649
4650.navbar-inverse .nav li.dropdown.open > .dropdown-toggle .caret,
4651.navbar-inverse .nav li.dropdown.active > .dropdown-toggle .caret,
4652.navbar-inverse .nav li.dropdown.open.active > .dropdown-toggle .caret {
4653 border-top-color: #ffffff;
4654 border-bottom-color: #ffffff;
4655}
4656
4657.navbar-inverse .navbar-search .search-query {
4658 color: #ffffff;
4659 background-color: #515151;
4660 border-color: #111111;
4661 -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15);
4662 -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15);
4663 box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15);
4664 -webkit-transition: none;
4665 -moz-transition: none;
4666 -o-transition: none;
4667 transition: none;
4668}
4669
4670.navbar-inverse .navbar-search .search-query:-moz-placeholder {
4671 color: #cccccc;
4672}
4673
4674.navbar-inverse .navbar-search .search-query:-ms-input-placeholder {
4675 color: #cccccc;
4676}
4677
4678.navbar-inverse .navbar-search .search-query::-webkit-input-placeholder {
4679 color: #cccccc;
4680}
4681
4682.navbar-inverse .navbar-search .search-query:focus,
4683.navbar-inverse .navbar-search .search-query.focused {
4684 padding: 5px 15px;
4685 color: #333333;
4686 text-shadow: 0 1px 0 #ffffff;
4687 background-color: #ffffff;
4688 border: 0;
4689 outline: 0;
4690 -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);
4691 -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);
4692 box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);
4693}
4694
4695.navbar-inverse .btn-navbar {
4696 color: #ffffff;
4697 text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
4698 background-color: #0e0e0e;
4699 *background-color: #040404;
4700 background-image: -moz-linear-gradient(top, #151515, #040404);
4701 background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#151515), to(#040404));
4702 background-image: -webkit-linear-gradient(top, #151515, #040404);
4703 background-image: -o-linear-gradient(top, #151515, #040404);
4704 background-image: linear-gradient(to bottom, #151515, #040404);
4705 background-repeat: repeat-x;
4706 border-color: #040404 #040404 #000000;
4707 border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
4708 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff151515', endColorstr='#ff040404', GradientType=0);
4709 filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
4710}
4711
4712.navbar-inverse .btn-navbar:hover,
4713.navbar-inverse .btn-navbar:active,
4714.navbar-inverse .btn-navbar.active,
4715.navbar-inverse .btn-navbar.disabled,
4716.navbar-inverse .btn-navbar[disabled] {
4717 color: #ffffff;
4718 background-color: #040404;
4719 *background-color: #000000;
4720}
4721
4722.navbar-inverse .btn-navbar:active,
4723.navbar-inverse .btn-navbar.active {
4724 background-color: #000000 \9;
4725}
4726
4727.breadcrumb {
4728 padding: 8px 15px;
4729 margin: 0 0 20px;
4730 list-style: none;
4731 background-color: #f5f5f5;
4732 -webkit-border-radius: 4px;
4733 -moz-border-radius: 4px;
4734 border-radius: 4px;
4735}
4736
4737.breadcrumb li {
4738 display: inline-block;
4739 *display: inline;
4740 text-shadow: 0 1px 0 #ffffff;
4741 *zoom: 1;
4742}
4743
4744.breadcrumb .divider {
4745 padding: 0 5px;
4746 color: #ccc;
4747}
4748
4749.breadcrumb .active {
4750 color: #999999;
4751}
4752
4753.pagination {
4754 margin: 20px 0;
4755}
4756
4757.pagination ul {
4758 display: inline-block;
4759 *display: inline;
4760 margin-bottom: 0;
4761 margin-left: 0;
4762 -webkit-border-radius: 4px;
4763 -moz-border-radius: 4px;
4764 border-radius: 4px;
4765 *zoom: 1;
4766 -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
4767 -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
4768 box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
4769}
4770
4771.pagination ul > li {
4772 display: inline;
4773}
4774
4775.pagination ul > li > a,
4776.pagination ul > li > span {
4777 float: left;
4778 padding: 4px 12px;
4779 line-height: 20px;
4780 text-decoration: none;
4781 background-color: #ffffff;
4782 border: 1px solid #dddddd;
4783 border-left-width: 0;
4784}
4785
4786.pagination ul > li > a:hover,
4787.pagination ul > .active > a,
4788.pagination ul > .active > span {
4789 background-color: #f5f5f5;
4790}
4791
4792.pagination ul > .active > a,
4793.pagination ul > .active > span {
4794 color: #999999;
4795 cursor: default;
4796}
4797
4798.pagination ul > .disabled > span,
4799.pagination ul > .disabled > a,
4800.pagination ul > .disabled > a:hover {
4801 color: #999999;
4802 cursor: default;
4803 background-color: transparent;
4804}
4805
4806.pagination ul > li:first-child > a,
4807.pagination ul > li:first-child > span {
4808 border-left-width: 1px;
4809 -webkit-border-bottom-left-radius: 4px;
4810 border-bottom-left-radius: 4px;
4811 -webkit-border-top-left-radius: 4px;
4812 border-top-left-radius: 4px;
4813 -moz-border-radius-bottomleft: 4px;
4814 -moz-border-radius-topleft: 4px;
4815}
4816
4817.pagination ul > li:last-child > a,
4818.pagination ul > li:last-child > span {
4819 -webkit-border-top-right-radius: 4px;
4820 border-top-right-radius: 4px;
4821 -webkit-border-bottom-right-radius: 4px;
4822 border-bottom-right-radius: 4px;
4823 -moz-border-radius-topright: 4px;
4824 -moz-border-radius-bottomright: 4px;
4825}
4826
4827.pagination-centered {
4828 text-align: center;
4829}
4830
4831.pagination-right {
4832 text-align: right;
4833}
4834
4835.pagination-large ul > li > a,
4836.pagination-large ul > li > span {
4837 padding: 11px 19px;
4838 font-size: 17.5px;
4839}
4840
4841.pagination-large ul > li:first-child > a,
4842.pagination-large ul > li:first-child > span {
4843 -webkit-border-bottom-left-radius: 6px;
4844 border-bottom-left-radius: 6px;
4845 -webkit-border-top-left-radius: 6px;
4846 border-top-left-radius: 6px;
4847 -moz-border-radius-bottomleft: 6px;
4848 -moz-border-radius-topleft: 6px;
4849}
4850
4851.pagination-large ul > li:last-child > a,
4852.pagination-large ul > li:last-child > span {
4853 -webkit-border-top-right-radius: 6px;
4854 border-top-right-radius: 6px;
4855 -webkit-border-bottom-right-radius: 6px;
4856 border-bottom-right-radius: 6px;
4857 -moz-border-radius-topright: 6px;
4858 -moz-border-radius-bottomright: 6px;
4859}
4860
4861.pagination-mini ul > li:first-child > a,
4862.pagination-small ul > li:first-child > a,
4863.pagination-mini ul > li:first-child > span,
4864.pagination-small ul > li:first-child > span {
4865 -webkit-border-bottom-left-radius: 3px;
4866 border-bottom-left-radius: 3px;
4867 -webkit-border-top-left-radius: 3px;
4868 border-top-left-radius: 3px;
4869 -moz-border-radius-bottomleft: 3px;
4870 -moz-border-radius-topleft: 3px;
4871}
4872
4873.pagination-mini ul > li:last-child > a,
4874.pagination-small ul > li:last-child > a,
4875.pagination-mini ul > li:last-child > span,
4876.pagination-small ul > li:last-child > span {
4877 -webkit-border-top-right-radius: 3px;
4878 border-top-right-radius: 3px;
4879 -webkit-border-bottom-right-radius: 3px;
4880 border-bottom-right-radius: 3px;
4881 -moz-border-radius-topright: 3px;
4882 -moz-border-radius-bottomright: 3px;
4883}
4884
4885.pagination-small ul > li > a,
4886.pagination-small ul > li > span {
4887 padding: 2px 10px;
4888 font-size: 11.9px;
4889}
4890
4891.pagination-mini ul > li > a,
4892.pagination-mini ul > li > span {
4893 padding: 1px 6px;
4894 font-size: 10.5px;
4895}
4896
4897.pager {
4898 margin: 20px 0;
4899 text-align: center;
4900 list-style: none;
4901 *zoom: 1;
4902}
4903
4904.pager:before,
4905.pager:after {
4906 display: table;
4907 line-height: 0;
4908 content: "";
4909}
4910
4911.pager:after {
4912 clear: both;
4913}
4914
4915.pager li {
4916 display: inline;
4917}
4918
4919.pager li > a,
4920.pager li > span {
4921 display: inline-block;
4922 padding: 5px 14px;
4923 background-color: #fff;
4924 border: 1px solid #ddd;
4925 -webkit-border-radius: 15px;
4926 -moz-border-radius: 15px;
4927 border-radius: 15px;
4928}
4929
4930.pager li > a:hover {
4931 text-decoration: none;
4932 background-color: #f5f5f5;
4933}
4934
4935.pager .next > a,
4936.pager .next > span {
4937 float: right;
4938}
4939
4940.pager .previous > a,
4941.pager .previous > span {
4942 float: left;
4943}
4944
4945.pager .disabled > a,
4946.pager .disabled > a:hover,
4947.pager .disabled > span {
4948 color: #999999;
4949 cursor: default;
4950 background-color: #fff;
4951}
4952
4953.modal-backdrop {
4954 position: fixed;
4955 top: 0;
4956 right: 0;
4957 bottom: 0;
4958 left: 0;
4959 z-index: 1040;
4960 background-color: #000000;
4961}
4962
4963.modal-backdrop.fade {
4964 opacity: 0;
4965}
4966
4967.modal-backdrop,
4968.modal-backdrop.fade.in {
4969 opacity: 0.8;
4970 filter: alpha(opacity=80);
4971}
4972
4973.modal {
4974 position: fixed;
4975 top: 50%;
4976 left: 50%;
4977 z-index: 1050;
4978 width: 560px;
4979 margin: -250px 0 0 -280px;
4980 background-color: #ffffff;
4981 border: 1px solid #999;
4982 border: 1px solid rgba(0, 0, 0, 0.3);
4983 *border: 1px solid #999;
4984 -webkit-border-radius: 6px;
4985 -moz-border-radius: 6px;
4986 border-radius: 6px;
4987 outline: none;
4988 -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
4989 -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
4990 box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);
4991 -webkit-background-clip: padding-box;
4992 -moz-background-clip: padding-box;
4993 background-clip: padding-box;
4994}
4995
4996.modal.fade {
4997 top: -25%;
4998 -webkit-transition: opacity 0.3s linear, top 0.3s ease-out;
4999 -moz-transition: opacity 0.3s linear, top 0.3s ease-out;
5000 -o-transition: opacity 0.3s linear, top 0.3s ease-out;
5001 transition: opacity 0.3s linear, top 0.3s ease-out;
5002}
5003
5004.modal.fade.in {
5005 top: 50%;
5006}
5007
5008.modal-header {
5009 padding: 9px 15px;
5010 border-bottom: 1px solid #eee;
5011}
5012
5013.modal-header .close {
5014 margin-top: 2px;
5015}
5016
5017.modal-header h3 {
5018 margin: 0;
5019 line-height: 30px;
5020}
5021
5022.modal-body {
5023 max-height: 400px;
5024 padding: 15px;
5025 overflow-y: auto;
5026}
5027
5028.modal-form {
5029 margin-bottom: 0;
5030}
5031
5032.modal-footer {
5033 padding: 14px 15px 15px;
5034 margin-bottom: 0;
5035 text-align: right;
5036 background-color: #f5f5f5;
5037 border-top: 1px solid #ddd;
5038 -webkit-border-radius: 0 0 6px 6px;
5039 -moz-border-radius: 0 0 6px 6px;
5040 border-radius: 0 0 6px 6px;
5041 *zoom: 1;
5042 -webkit-box-shadow: inset 0 1px 0 #ffffff;
5043 -moz-box-shadow: inset 0 1px 0 #ffffff;
5044 box-shadow: inset 0 1px 0 #ffffff;
5045}
5046
5047.modal-footer:before,
5048.modal-footer:after {
5049 display: table;
5050 line-height: 0;
5051 content: "";
5052}
5053
5054.modal-footer:after {
5055 clear: both;
5056}
5057
5058.modal-footer .btn + .btn {
5059 margin-bottom: 0;
5060 margin-left: 5px;
5061}
5062
5063.modal-footer .btn-group .btn + .btn {
5064 margin-left: -1px;
5065}
5066
5067.modal-footer .btn-block + .btn-block {
5068 margin-left: 0;
5069}
5070
5071.tooltip {
5072 position: absolute;
5073 z-index: 1030;
5074 display: block;
5075 padding: 5px;
5076 font-size: 11px;
5077 opacity: 0;
5078 filter: alpha(opacity=0);
5079 visibility: visible;
5080}
5081
5082.tooltip.in {
5083 opacity: 0.8;
5084 filter: alpha(opacity=80);
5085}
5086
5087.tooltip.top {
5088 margin-top: -3px;
5089}
5090
5091.tooltip.right {
5092 margin-left: 3px;
5093}
5094
5095.tooltip.bottom {
5096 margin-top: 3px;
5097}
5098
5099.tooltip.left {
5100 margin-left: -3px;
5101}
5102
5103.tooltip-inner {
5104 max-width: 200px;
5105 padding: 3px 8px;
5106 color: #ffffff;
5107 text-align: center;
5108 text-decoration: none;
5109 background-color: #000000;
5110 -webkit-border-radius: 4px;
5111 -moz-border-radius: 4px;
5112 border-radius: 4px;
5113}
5114
5115.tooltip-arrow {
5116 position: absolute;
5117 width: 0;
5118 height: 0;
5119 border-color: transparent;
5120 border-style: solid;
5121}
5122
5123.tooltip.top .tooltip-arrow {
5124 bottom: 0;
5125 left: 50%;
5126 margin-left: -5px;
5127 border-top-color: #000000;
5128 border-width: 5px 5px 0;
5129}
5130
5131.tooltip.right .tooltip-arrow {
5132 top: 50%;
5133 left: 0;
5134 margin-top: -5px;
5135 border-right-color: #000000;
5136 border-width: 5px 5px 5px 0;
5137}
5138
5139.tooltip.left .tooltip-arrow {
5140 top: 50%;
5141 right: 0;
5142 margin-top: -5px;
5143 border-left-color: #000000;
5144 border-width: 5px 0 5px 5px;
5145}
5146
5147.tooltip.bottom .tooltip-arrow {
5148 top: 0;
5149 left: 50%;
5150 margin-left: -5px;
5151 border-bottom-color: #000000;
5152 border-width: 0 5px 5px;
5153}
5154
5155.popover {
5156 position: absolute;
5157 top: 0;
5158 left: 0;
5159 z-index: 1010;
5160 display: none;
5161 width: 236px;
5162 padding: 1px;
5163 background-color: #ffffff;
5164 border: 1px solid #ccc;
5165 border: 1px solid rgba(0, 0, 0, 0.2);
5166 -webkit-border-radius: 6px;
5167 -moz-border-radius: 6px;
5168 border-radius: 6px;
5169 -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
5170 -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
5171 box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
5172 -webkit-background-clip: padding-box;
5173 -moz-background-clip: padding;
5174 background-clip: padding-box;
5175}
5176
5177.popover.top {
5178 margin-top: -10px;
5179}
5180
5181.popover.right {
5182 margin-left: 10px;
5183}
5184
5185.popover.bottom {
5186 margin-top: 10px;
5187}
5188
5189.popover.left {
5190 margin-left: -10px;
5191}
5192
5193.popover-title {
5194 padding: 8px 14px;
5195 margin: 0;
5196 font-size: 14px;
5197 font-weight: normal;
5198 line-height: 18px;
5199 background-color: #f7f7f7;
5200 border-bottom: 1px solid #ebebeb;
5201 -webkit-border-radius: 5px 5px 0 0;
5202 -moz-border-radius: 5px 5px 0 0;
5203 border-radius: 5px 5px 0 0;
5204}
5205
5206.popover-content {
5207 padding: 9px 14px;
5208}
5209
5210.popover-content p,
5211.popover-content ul,
5212.popover-content ol {
5213 margin-bottom: 0;
5214}
5215
5216.popover .arrow,
5217.popover .arrow:after {
5218 position: absolute;
5219 display: inline-block;
5220 width: 0;
5221 height: 0;
5222 border-color: transparent;
5223 border-style: solid;
5224}
5225
5226.popover .arrow:after {
5227 z-index: -1;
5228 content: "";
5229}
5230
5231.popover.top .arrow {
5232 bottom: -10px;
5233 left: 50%;
5234 margin-left: -10px;
5235 border-top-color: #ffffff;
5236 border-width: 10px 10px 0;
5237}
5238
5239.popover.top .arrow:after {
5240 bottom: -1px;
5241 left: -11px;
5242 border-top-color: rgba(0, 0, 0, 0.25);
5243 border-width: 11px 11px 0;
5244}
5245
5246.popover.right .arrow {
5247 top: 50%;
5248 left: -10px;
5249 margin-top: -10px;
5250 border-right-color: #ffffff;
5251 border-width: 10px 10px 10px 0;
5252}
5253
5254.popover.right .arrow:after {
5255 bottom: -11px;
5256 left: -1px;
5257 border-right-color: rgba(0, 0, 0, 0.25);
5258 border-width: 11px 11px 11px 0;
5259}
5260
5261.popover.bottom .arrow {
5262 top: -10px;
5263 left: 50%;
5264 margin-left: -10px;
5265 border-bottom-color: #ffffff;
5266 border-width: 0 10px 10px;
5267}
5268
5269.popover.bottom .arrow:after {
5270 top: -1px;
5271 left: -11px;
5272 border-bottom-color: rgba(0, 0, 0, 0.25);
5273 border-width: 0 11px 11px;
5274}
5275
5276.popover.left .arrow {
5277 top: 50%;
5278 right: -10px;
5279 margin-top: -10px;
5280 border-left-color: #ffffff;
5281 border-width: 10px 0 10px 10px;
5282}
5283
5284.popover.left .arrow:after {
5285 right: -1px;
5286 bottom: -11px;
5287 border-left-color: rgba(0, 0, 0, 0.25);
5288 border-width: 11px 0 11px 11px;
5289}
5290
5291.thumbnails {
5292 margin-left: -20px;
5293 list-style: none;
5294 *zoom: 1;
5295}
5296
5297.thumbnails:before,
5298.thumbnails:after {
5299 display: table;
5300 line-height: 0;
5301 content: "";
5302}
5303
5304.thumbnails:after {
5305 clear: both;
5306}
5307
5308.row-fluid .thumbnails {
5309 margin-left: 0;
5310}
5311
5312.thumbnails > li {
5313 float: left;
5314 margin-bottom: 20px;
5315 margin-left: 20px;
5316}
5317
5318.thumbnail {
5319 display: block;
5320 padding: 4px;
5321 line-height: 20px;
5322 border: 1px solid #ddd;
5323 -webkit-border-radius: 4px;
5324 -moz-border-radius: 4px;
5325 border-radius: 4px;
5326 -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055);
5327 -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055);
5328 box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055);
5329 -webkit-transition: all 0.2s ease-in-out;
5330 -moz-transition: all 0.2s ease-in-out;
5331 -o-transition: all 0.2s ease-in-out;
5332 transition: all 0.2s ease-in-out;
5333}
5334
5335a.thumbnail:hover {
5336 border-color: #0088cc;
5337 -webkit-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);
5338 -moz-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);
5339 box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);
5340}
5341
5342.thumbnail > img {
5343 display: block;
5344 max-width: 100%;
5345 margin-right: auto;
5346 margin-left: auto;
5347}
5348
5349.thumbnail .caption {
5350 padding: 9px;
5351 color: #555555;
5352}
5353
5354.media,
5355.media-body {
5356 overflow: hidden;
5357 *overflow: visible;
5358 zoom: 1;
5359}
5360
5361.media,
5362.media .media {
5363 margin-top: 15px;
5364}
5365
5366.media:first-child {
5367 margin-top: 0;
5368}
5369
5370.media-object {
5371 display: block;
5372}
5373
5374.media-heading {
5375 margin: 0 0 5px;
5376}
5377
5378.media .pull-left {
5379 margin-right: 10px;
5380}
5381
5382.media .pull-right {
5383 margin-left: 10px;
5384}
5385
5386.media-list {
5387 margin-left: 0;
5388 list-style: none;
5389}
5390
5391.label,
5392.badge {
5393 display: inline-block;
5394 padding: 2px 4px;
5395 font-size: 11.844px;
5396 font-weight: bold;
5397 line-height: 14px;
5398 color: #ffffff;
5399 text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
5400 white-space: nowrap;
5401 vertical-align: baseline;
5402 background-color: #999999;
5403}
5404
5405.label {
5406 -webkit-border-radius: 3px;
5407 -moz-border-radius: 3px;
5408 border-radius: 3px;
5409}
5410
5411.badge {
5412 padding-right: 9px;
5413 padding-left: 9px;
5414 -webkit-border-radius: 9px;
5415 -moz-border-radius: 9px;
5416 border-radius: 9px;
5417}
5418
5419a.label:hover,
5420a.badge:hover {
5421 color: #ffffff;
5422 text-decoration: none;
5423 cursor: pointer;
5424}
5425
5426.label-important,
5427.badge-important {
5428 background-color: #b94a48;
5429}
5430
5431.label-important[href],
5432.badge-important[href] {
5433 background-color: #953b39;
5434}
5435
5436.label-warning,
5437.badge-warning {
5438 background-color: #f89406;
5439}
5440
5441.label-warning[href],
5442.badge-warning[href] {
5443 background-color: #c67605;
5444}
5445
5446.label-success,
5447.badge-success {
5448 background-color: #468847;
5449}
5450
5451.label-success[href],
5452.badge-success[href] {
5453 background-color: #356635;
5454}
5455
5456.label-info,
5457.badge-info {
5458 background-color: #3a87ad;
5459}
5460
5461.label-info[href],
5462.badge-info[href] {
5463 background-color: #2d6987;
5464}
5465
5466.label-inverse,
5467.badge-inverse {
5468 background-color: #333333;
5469}
5470
5471.label-inverse[href],
5472.badge-inverse[href] {
5473 background-color: #1a1a1a;
5474}
5475
5476.btn .label,
5477.btn .badge {
5478 position: relative;
5479 top: -1px;
5480}
5481
5482.btn-mini .label,
5483.btn-mini .badge {
5484 top: 0;
5485}
5486
5487@-webkit-keyframes progress-bar-stripes {
5488 from {
5489 background-position: 40px 0;
5490 }
5491 to {
5492 background-position: 0 0;
5493 }
5494}
5495
5496@-moz-keyframes progress-bar-stripes {
5497 from {
5498 background-position: 40px 0;
5499 }
5500 to {
5501 background-position: 0 0;
5502 }
5503}
5504
5505@-ms-keyframes progress-bar-stripes {
5506 from {
5507 background-position: 40px 0;
5508 }
5509 to {
5510 background-position: 0 0;
5511 }
5512}
5513
5514@-o-keyframes progress-bar-stripes {
5515 from {
5516 background-position: 0 0;
5517 }
5518 to {
5519 background-position: 40px 0;
5520 }
5521}
5522
5523@keyframes progress-bar-stripes {
5524 from {
5525 background-position: 40px 0;
5526 }
5527 to {
5528 background-position: 0 0;
5529 }
5530}
5531
5532.progress {
5533 height: 20px;
5534 margin-bottom: 20px;
5535 overflow: hidden;
5536 background-color: #f7f7f7;
5537 background-image: -moz-linear-gradient(top, #f5f5f5, #f9f9f9);
5538 background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9));
5539 background-image: -webkit-linear-gradient(top, #f5f5f5, #f9f9f9);
5540 background-image: -o-linear-gradient(top, #f5f5f5, #f9f9f9);
5541 background-image: linear-gradient(to bottom, #f5f5f5, #f9f9f9);
5542 background-repeat: repeat-x;
5543 -webkit-border-radius: 4px;
5544 -moz-border-radius: 4px;
5545 border-radius: 4px;
5546 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#fff9f9f9', GradientType=0);
5547 -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
5548 -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
5549 box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
5550}
5551
5552.progress .bar {
5553 float: left;
5554 width: 0;
5555 height: 100%;
5556 font-size: 12px;
5557 color: #ffffff;
5558 text-align: center;
5559 text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
5560 background-color: #0e90d2;
5561 background-image: -moz-linear-gradient(top, #149bdf, #0480be);
5562 background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be));
5563 background-image: -webkit-linear-gradient(top, #149bdf, #0480be);
5564 background-image: -o-linear-gradient(top, #149bdf, #0480be);
5565 background-image: linear-gradient(to bottom, #149bdf, #0480be);
5566 background-repeat: repeat-x;
5567 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff149bdf', endColorstr='#ff0480be', GradientType=0);
5568 -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
5569 -moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
5570 box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
5571 -webkit-box-sizing: border-box;
5572 -moz-box-sizing: border-box;
5573 box-sizing: border-box;
5574 -webkit-transition: width 0.6s ease;
5575 -moz-transition: width 0.6s ease;
5576 -o-transition: width 0.6s ease;
5577 transition: width 0.6s ease;
5578}
5579
5580.progress .bar + .bar {
5581 -webkit-box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15);
5582 -moz-box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15);
5583 box-shadow: inset 1px 0 0 rgba(0, 0, 0, 0.15), inset 0 -1px 0 rgba(0, 0, 0, 0.15);
5584}
5585
5586.progress-striped .bar {
5587 background-color: #149bdf;
5588 background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
5589 background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
5590 background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
5591 background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
5592 background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
5593 -webkit-background-size: 40px 40px;
5594 -moz-background-size: 40px 40px;
5595 -o-background-size: 40px 40px;
5596 background-size: 40px 40px;
5597}
5598
5599.progress.active .bar {
5600 -webkit-animation: progress-bar-stripes 2s linear infinite;
5601 -moz-animation: progress-bar-stripes 2s linear infinite;
5602 -ms-animation: progress-bar-stripes 2s linear infinite;
5603 -o-animation: progress-bar-stripes 2s linear infinite;
5604 animation: progress-bar-stripes 2s linear infinite;
5605}
5606
5607.progress-danger .bar,
5608.progress .bar-danger {
5609 background-color: #dd514c;
5610 background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35);
5611 background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35));
5612 background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35);
5613 background-image: -o-linear-gradient(top, #ee5f5b, #c43c35);
5614 background-image: linear-gradient(to bottom, #ee5f5b, #c43c35);
5615 background-repeat: repeat-x;
5616 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffee5f5b', endColorstr='#ffc43c35', GradientType=0);
5617}
5618
5619.progress-danger.progress-striped .bar,
5620.progress-striped .bar-danger {
5621 background-color: #ee5f5b;
5622 background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
5623 background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
5624 background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
5625 background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
5626 background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
5627}
5628
5629.progress-success .bar,
5630.progress .bar-success {
5631 background-color: #5eb95e;
5632 background-image: -moz-linear-gradient(top, #62c462, #57a957);
5633 background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957));
5634 background-image: -webkit-linear-gradient(top, #62c462, #57a957);
5635 background-image: -o-linear-gradient(top, #62c462, #57a957);
5636 background-image: linear-gradient(to bottom, #62c462, #57a957);
5637 background-repeat: repeat-x;
5638 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff62c462', endColorstr='#ff57a957', GradientType=0);
5639}
5640
5641.progress-success.progress-striped .bar,
5642.progress-striped .bar-success {
5643 background-color: #62c462;
5644 background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
5645 background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
5646 background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
5647 background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
5648 background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
5649}
5650
5651.progress-info .bar,
5652.progress .bar-info {
5653 background-color: #4bb1cf;
5654 background-image: -moz-linear-gradient(top, #5bc0de, #339bb9);
5655 background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9));
5656 background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9);
5657 background-image: -o-linear-gradient(top, #5bc0de, #339bb9);
5658 background-image: linear-gradient(to bottom, #5bc0de, #339bb9);
5659 background-repeat: repeat-x;
5660 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff339bb9', GradientType=0);
5661}
5662
5663.progress-info.progress-striped .bar,
5664.progress-striped .bar-info {
5665 background-color: #5bc0de;
5666 background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
5667 background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
5668 background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
5669 background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
5670 background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
5671}
5672
5673.progress-warning .bar,
5674.progress .bar-warning {
5675 background-color: #faa732;
5676 background-image: -moz-linear-gradient(top, #fbb450, #f89406);
5677 background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));
5678 background-image: -webkit-linear-gradient(top, #fbb450, #f89406);
5679 background-image: -o-linear-gradient(top, #fbb450, #f89406);
5680 background-image: linear-gradient(to bottom, #fbb450, #f89406);
5681 background-repeat: repeat-x;
5682 filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffbb450', endColorstr='#fff89406', GradientType=0);
5683}
5684
5685.progress-warning.progress-striped .bar,
5686.progress-striped .bar-warning {
5687 background-color: #fbb450;
5688 background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));
5689 background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
5690 background-image: -moz-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
5691 background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
5692 background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
5693}
5694
5695.accordion {
5696 margin-bottom: 20px;
5697}
5698
5699.accordion-group {
5700 margin-bottom: 2px;
5701 border: 1px solid #e5e5e5;
5702 -webkit-border-radius: 4px;
5703 -moz-border-radius: 4px;
5704 border-radius: 4px;
5705}
5706
5707.accordion-heading {
5708 border-bottom: 0;
5709}
5710
5711.accordion-heading .accordion-toggle {
5712 display: block;
5713 padding: 8px 15px;
5714}
5715
5716.accordion-toggle {
5717 cursor: pointer;
5718}
5719
5720.accordion-inner {
5721 padding: 9px 15px;
5722 border-top: 1px solid #e5e5e5;
5723}
5724
5725.carousel {
5726 position: relative;
5727 margin-bottom: 20px;
5728 line-height: 1;
5729}
5730
5731.carousel-inner {
5732 position: relative;
5733 width: 100%;
5734 overflow: hidden;
5735}
5736
5737.carousel .item {
5738 position: relative;
5739 display: none;
5740 -webkit-transition: 0.6s ease-in-out left;
5741 -moz-transition: 0.6s ease-in-out left;
5742 -o-transition: 0.6s ease-in-out left;
5743 transition: 0.6s ease-in-out left;
5744}
5745
5746.carousel .item > img {
5747 display: block;
5748 line-height: 1;
5749}
5750
5751.carousel .active,
5752.carousel .next,
5753.carousel .prev {
5754 display: block;
5755}
5756
5757.carousel .active {
5758 left: 0;
5759}
5760
5761.carousel .next,
5762.carousel .prev {
5763 position: absolute;
5764 top: 0;
5765 width: 100%;
5766}
5767
5768.carousel .next {
5769 left: 100%;
5770}
5771
5772.carousel .prev {
5773 left: -100%;
5774}
5775
5776.carousel .next.left,
5777.carousel .prev.right {
5778 left: 0;
5779}
5780
5781.carousel .active.left {
5782 left: -100%;
5783}
5784
5785.carousel .active.right {
5786 left: 100%;
5787}
5788
5789.carousel-control {
5790 position: absolute;
5791 top: 40%;
5792 left: 15px;
5793 width: 40px;
5794 height: 40px;
5795 margin-top: -20px;
5796 font-size: 60px;
5797 font-weight: 100;
5798 line-height: 30px;
5799 color: #ffffff;
5800 text-align: center;
5801 background: #222222;
5802 border: 3px solid #ffffff;
5803 -webkit-border-radius: 23px;
5804 -moz-border-radius: 23px;
5805 border-radius: 23px;
5806 opacity: 0.5;
5807 filter: alpha(opacity=50);
5808}
5809
5810.carousel-control.right {
5811 right: 15px;
5812 left: auto;
5813}
5814
5815.carousel-control:hover {
5816 color: #ffffff;
5817 text-decoration: none;
5818 opacity: 0.9;
5819 filter: alpha(opacity=90);
5820}
5821
5822.carousel-caption {
5823 position: absolute;
5824 right: 0;
5825 bottom: 0;
5826 left: 0;
5827 padding: 15px;
5828 background: #333333;
5829 background: rgba(0, 0, 0, 0.75);
5830}
5831
5832.carousel-caption h4,
5833.carousel-caption p {
5834 line-height: 20px;
5835 color: #ffffff;
5836}
5837
5838.carousel-caption h4 {
5839 margin: 0 0 5px;
5840}
5841
5842.carousel-caption p {
5843 margin-bottom: 0;
5844}
5845
5846.hero-unit {
5847 padding: 60px;
5848 margin-bottom: 30px;
5849 font-size: 18px;
5850 font-weight: 200;
5851 line-height: 30px;
5852 color: inherit;
5853 background-color: #eeeeee;
5854 -webkit-border-radius: 6px;
5855 -moz-border-radius: 6px;
5856 border-radius: 6px;
5857}
5858
5859.hero-unit h1 {
5860 margin-bottom: 0;
5861 font-size: 60px;
5862 line-height: 1;
5863 letter-spacing: -1px;
5864 color: inherit;
5865}
5866
5867.hero-unit li {
5868 line-height: 30px;
5869}
5870
5871.pull-right {
5872 float: right;
5873}
5874
5875.pull-left {
5876 float: left;
5877}
5878
5879.hide {
5880 display: none;
5881}
5882
5883.show {
5884 display: block;
5885}
5886
5887.invisible {
5888 visibility: hidden;
5889}
5890
5891.affix {
5892 position: fixed;
5893}

doc/README.md

1[HTML5 Boilerplate homepage](http://html5boilerplate.com)
2
3# HTML5 Boilerplate documentation:
4
5## Getting started
6
7* [Usage](usage.md) — Overview of the project contents.
8* [FAQ](faq.md) — Frequently asked questions, along with their answers.
9
10## The core of HTML5 Boilerplate
11
12* [HTML](html.md) — A guide to the default HTML.
13* [CSS](css.md) — A guide to the default CSS.
14* [JavaScript](js.md) — A guide to the default JavaScript.
15* [.htaccess](htaccess.md) — All about the Apache web server config (also see
16 our [alternative server configs](https://github.com/h5bp/server-configs)).
17* [crossdomain.xml](crossdomain.md) — An introduction to making use of
18 crossdomain requests.
19* [Everything else](misc.md).
20
21## Development
22
23* [Contributing to HTML5 Boilerplate](contribute.md) — Guidelines on how to
24 contribute effectively.
25* [Extending and customizing HTML5 Boilerplate](extend.md) — Going further with
26 the boilerplate.
27
28## Related projects
29
30HTML5 Boilerplate has several related projects to help improve the performance
31of your site/app in various production environments.
32
33* [Server configs](https://github.com/h5bp/server-configs) — Configs for
34 non-Apache servers.
35* [Node build script](https://github.com/h5bp/node-build-script) — A
36 feature-rich [grunt](https://github.com/cowboy/grunt) plugin.
37* [Ant build script](https://github.com/h5bp/ant-build-script) — The original
38 HTML5 Boilerplate build script.

doc/contribute.md

1[HTML5 Boilerplate homepage](http://html5boilerplate.com) | [Documentation
2table of contents](README.md)
3
4# Contributing to HTML5 Boilerplate
5
6♥ HTML5 Boilerplate and want to get involved? Thanks! There are plenty of ways
7you can help!
8
9
10## Reporting issues
11
12A bug is a _demonstrable problem_ that is caused by the code in the
13repository.
14
15Please read the following guidelines before you [report an issue](https://github.com/h5bp/html5-boilerplate/issues/):
16
171. **Use the GitHub issue search** — check if the issue has already been
18 reported. If it has been, please comment on the existing issue.
19
202. **Check if the issue has been fixed** — the latest `master` or
21 development branch may already contain a fix.
22
233. **Isolate the demonstrable problem** — make sure that the code in the
24 project's repository is _definitely_ responsible for the issue. Create a
25 [reduced test case](http://css-tricks.com/6263-reduced-test-cases/) - an
26 extremely simple and immediately viewable example of the issue.
27
284. **Include a live example** — provide a link to your reduced test case
29 when appropriate (e.g. if the issue is related to (front-end technologies).
30 Please use [jsFiddle](http://jsfiddle.net) to host examples.
31
32Please try to be as detailed as possible in your report too. What is your
33environment? What steps will reproduce the issue? What browser(s) and OS
34experience the problem? What would you expect to be the outcome? All these
35details will help people to assess and fix any potential bugs.
36
37### Example of a good bug report:
38
39> Short and descriptive title
40>
41> A summary of the issue and the browser/OS environment in which it occurs. If
42> suitable, include the steps required to reproduce the bug.
43>
44> 1. This is the first step
45> 2. This is the second step
46> 3. Further steps, etc.
47>
48> `<url>` (a link to the reduced test case)
49>
50> Any other information you want to share that is relevant to the issue being
51> reported. This might include the lines of code that you have identified as
52> causing the bug, and potential solutions (and your opinions on their
53> merits).
54
55A good bug report shouldn't leave people needing to chase you up to get further
56information that is required to assess or fix the bug.
57
58**[File a bug report](https://github.com/h5bp/html5-boilerplate/issues/)**
59
60
61## Pull requests
62
63Good pull requests — patches, improvements, new features — are a fantastic
64help. They should remain focused in scope and avoid containing unrelated
65commits.
66
67If your contribution involves a significant amount of work or substantial
68changes to any part of the project, please open an issue to discuss it first.
69
70Please follow this process; it's the best way to get your work included in the
71project:
72
731. [Fork](http://help.github.com/fork-a-repo/) the project.
74
752. Clone your fork (`git clone
76 https://github.com/<your-username>/html5-boilerplate.git`).
77
783. Add an `upstream` remote (`git remote add upstream
79 https://github.com/h5bp/html5-boilerplate.git`).
80
814. Get the latest changes from upstream (e.g. `git pull upstream
82 <dev-branch>`).
83
845. Create a new topic branch to contain your feature, change, or fix (`git
85 checkout -b <topic-branch-name>`).
86
876. Make sure that your changes adhere to the current coding conventions used
88 throughout the project - indentation, accurate comments, etc. Please update
89 any documentation that is relevant to the change you are making.
90
917. Commit your changes in logical chunks; use git's [interactive
92 rebase](https://help.github.com/articles/interactive-rebase) feature to tidy
93 up your commits before making them public. Please adhere to these [git commit
94 message
95 guidelines](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html)
96 or your pull request is unlikely be merged into the main project.
97
988. Locally merge (or rebase) the upstream branch into your topic branch.
99
1009. Push your topic branch up to your fork (`git push origin
101 <topic-branch-name>`).
102
10310. [Open a Pull Request](http://help.github.com/send-pull-requests/) with a
104 clear title and description. Please mention which browsers you tested in.

doc/crossdomain.md

1[HTML5 Boilerplate homepage](http://html5boilerplate.com) | [Documentation
2table of contents](README.md)
3
4# crossdomain.xml
5
6A cross-domain policy file is an XML document that grants a web client—such as
7Adobe Flash Player, Adobe Reader, etc., permission to handle data across
8multiple domains. When a client hosts content from a particular source domain
9and that content makes requests directed towards a domain other than its own,
10the remote domain would need to host a cross-domain policy file that grants
11access to the source domain, allowing the client to continue with the
12transaction. Policy files grant read access to data, permit a client to include
13custom headers in cross-domain requests, and are also used with sockets to
14grant permissions for socket-based connections.
15
16For full details, check out Adobe's article about the [cross-domain policy file
17specification](http://www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html)
18
19Read the [Cross-domain policy file
20specification](http://learn.adobe.com/wiki/download/attachments/64389123/CrossDomain_PolicyFile_Specification.pdf?version=1)
21- (PDF, 129 KB)

doc/css.md

1[HTML5 Boilerplate homepage](http://html5boilerplate.com) | [Documentation
2table of contents](README.md)
3
4# The CSS
5
6The HTML5 Boilerplate starting CSS includes:
7
8* [Normalize.css](https://github.com/necolas/normalize.css).
9* Useful HTML5 Boilerplate defaults.
10* Common helpers.
11* Placeholder media queries.
12* Print styles.
13
14This starting CSS does not rely on the presence of conditional classnames,
15conditional style sheets, or Modernizr. It is ready to use whatever your
16development preferences happen to be.
17
18
19## Normalize.css
20
21Normalize.css is a modern, HTML5-ready alternative to CSS resets. It contains
22extensive inline documentation. Please refer to the [Normalize.css
23project](http://necolas.github.com/normalize.css/) for more information.
24
25
26## HTML5 Boilerplate defaults
27
28This project includes a handful of base styles that build upon Normalize.css.
29These include:
30
31* Basic typography settings to provide improved text readability by default.
32* Protection against unwanted `text-shadow` during text highlighting.
33* Tweaks to default image alignment, fieldsets, and textareas.
34* A pretty Chrome Frame prompt.
35
36You are free to modify or add to these base styles as your project requires.
37
38
39## Common helpers
40
41#### `.ir`
42
43Add the `.ir` class to any element you are applying image-replacement to. When
44replacing an element's content with an image, make sure to also set a specific
45`background-image: url(pathtoimage.png);`, `width`, and `height` so that your
46replacement image appears.
47
48#### `.hidden`
49
50Add the `.hidden` class to any elements that you want to hide from all
51presentations, including screen readers. It could be an element that will be
52populated later with JavaScript or an element you will hide with JavaScript. Do
53not use this for SEO keyword stuffing. That is just not cool.
54
55#### `.visuallyhidden`
56
57Add the `.visuallyhidden` class to hide text from browsers but make it
58available for screen readers. You can use this to hide text that is specific to
59screen readers but that other users should not see. [About invisible
60content](http://www.webaim.org/techniques/css/invisiblecontent/), [Hiding
61content for
62accessibility](http://snook.ca/archives/html_and_css/hiding-content-for-accessibility),
63[HTML5 Boilerplate
64issue/research](https://github.com/h5bp/html5-boilerplate/issues/194/).
65
66#### `.invisible`
67
68Add the `.invisible` class to any element you want to hide without affecting
69layout. When you use `display: none` an element is effectively removed from the
70layout. But in some cases you want the element to simply be invisible while
71remaining in the flow and not affecting the positioning of surrounding
72content.
73
74#### `.clearfix`
75
76Adding `.clearfix` to an element will ensure that it always fully contains its
77floated children. There have been many variants of the clearfix hack over the
78years, and there are other hacks that can also help you to contain floated
79children, but the HTML5 Boilerplate currently uses the [micro
80clearfix](http://nicolasgallagher.com/micro-clearfix-hack/).
81
82
83## Media Queries
84
85The boilerplate makes it easy to get started with a "Mobile First" and
86[Responsive Web
87Design](http://www.alistapart.com/articles/responsive-web-design/) approach to
88development. But it's worth remembering that there are [no silver
89bullets](http://www.cloudfour.com/css-media-query-for-mobile-is-fools-gold/).
90
91We include a placeholder Media Queries to build up your mobile styles for wider
92viewports and high-resolution displays. It's recommended that you adapt these
93Media Queries based on the content of your site rather than mirroring the fixed
94dimensions of specific devices.
95
96If you do not want to take a "Mobile First" approach, you can simply edit or
97remove these placeholder Media Queries. One possibility would be to work from
98wide viewports down and use `max-width` MQs instead, e.g., `@media only screen
99and (max-width: 480px)`.
100
101Take a look into the [Mobile
102Boilerplate](https://github.com/h5bp/mobile-boilerplate) for features that are
103useful when developing mobile wep apps.
104
105
106## Print styles
107
108* Print styles are inlined to [reduce the number of page
109 requests](http://www.phpied.com/delay-loading-your-print-css/).
110* We strip all background colors and change the font color to dark gray and
111 remove text-shadow. This is meant to help save printer ink.
112* Anchors do not need colors to indicate they are linked. They are underlined
113 to indicate so.
114* Anchors and Abbreviations are expanded to indicate where users reading the
115 printed page can refer to.
116* But we do not want to show link text for image replaced elements (given that
117 they are primarily images).
118
119### Paged media styles
120
121* Paged media is supported only in a [few
122 browsers](http://en.wikipedia.org/wiki/Comparison_of_layout_engines_%28Cascading_Style_Sheets%29#Grammar_and_rules).
123* Paged media support means browsers would know how to interpret instructions
124 on breaking content into pages and on orphans/widows.
125* We use `page-break-inside: avoid;` to prevent an image and table row from
126 being split into two different pages, so use the same `page-break-inside:
127 avoid;` for that as well.
128* Headings should always appear with the text they are titles for. So, we
129 ensure headings never appear in a different page than the text they describe
130 by using `page-break-after: avoid;`.
131* We also apply a default margin for the page specified in `cm`.
132* We do not want [orphans and
133 widows](http://en.wikipedia.org/wiki/Widows_and_orphans) to appear on pages
134 you print. So, by defining `orphans: 3` and `widows: 3` you define the minimal
135 number of words that every line should contain.

doc/extend.md

1[HTML5 Boilerplate homepage](http://html5boilerplate.com) | [Documentation
2table of contents](README.md)
3
4# Extend and customise HTML5 Boilerplate
5
6Here is some useful advice for how you can make your project with HTML5
7Boilerplate even better. We don't want to include it all by default, as not
8everything fits with everyone's needs.
9
10
11## DNS prefetching
12
13In short, DNS Prefetching is a method of informing the browser of domain names
14referenced on a site so that the client can resolve the DNS for those hosts,
15cache them, and when it comes time to use them, have a faster turn around on
16the request.
17
18### Implicit prefetches
19
20There is a lot of prefetching done for you automatically by the browser. When
21the browser encounters an anchor in your html that does not share the same
22domain name as the current location the browser requests, from the client OS,
23the IP address for this new domain. The client first checks its cache and
24then, lacking a cached copy, makes a request from a DNS server. These requests
25happen in the background and are not meant to block the rendering of the
26page.
27
28The goal of this is that when the foreign IP address is finally needed it will
29already be in the client cache and will not block the loading of the foreign
30content. Less requests result in faster page load times. The perception of this
31is increased on a mobile platform where DNS latency can be greater.
32
33#### Disable implicit prefetching
34
35```html
36<meta http-equiv="x-dns-prefetch-control" content="off">
37```
38
39Even with X-DNS-Prefetch-Control meta tag (or http header) browsers will still
40prefetch any explicit dns-prefetch links.
41
42**_WARNING:_** THIS MAY MAKE YOUR SITE SLOWER IF YOU RELY ON RESOURCES FROM
43FOREIGN DOMAINS.
44
45### Explicit prefetches
46
47Typically the browser only scans the HTML for foreign domains. If you have
48resources that are outside of your HTML (a javascript request to a remote
49server or a CDN that hosts content that may not be present on every page of
50your site, for example) then you can queue up a domain name to be prefetched.
51
52```html
53<link rel="dns-prefetch" href="//example.com">
54<link rel="dns-prefetch" href="//ajax.googleapis.com">
55```
56
57You can use as many of these as you need, but it's best if they are all
58immediately after the [Meta
59Charset](https://developer.mozilla.org/en/HTML/Element/meta#attr-charset)
60element (which should go right at the top of the `head`), so the browser can
61act on them ASAP.
62
63#### Common Prefetch Links
64
65Amazon S3:
66
67```html
68<link rel="dns-prefetch" href="//s3.amazonaws.com">
69```
70
71Google APIs:
72
73```html
74<link rel="dns-prefetch" href="//ajax.googleapis.com">
75```
76
77Microsoft Ajax Content Delivery Network:
78
79```html
80<link rel="dns-prefetch" href="//ajax.microsoft.com">
81<link rel="dns-prefetch" href="//ajax.aspnetcdn.com">
82```
83
84### Browser support for DNS prefetching
85
86Chrome, Firefox 3.5+, Safari 5+, Opera (Unknown), IE 9 (called "Pre-resolution"
87on blogs.msdn.com)
88
89### Further reading about DNS prefetching
90
91* https://developer.mozilla.org/En/Controlling_DNS_prefetching
92* http://dev.chromium.org/developers/design-documents/dns-prefetching
93* http://www.apple.com/safari/whats-new.html
94* http://blogs.msdn.com/b/ie/archive/2011/03/17/internet-explorer-9-network-performance-improvements.aspx
95* http://dayofjs.com/videos/22158462/web-browsers_alex-russel
96
97
98## Search
99
100### Direct search spiders to your sitemap
101
102[Learn how to make a sitemap](http://www.sitemaps.org/protocol.php)
103
104```html
105<link rel="sitemap" type="application/xml" title="Sitemap" href="/sitemap.xml">
106```
107
108### Hide pages from search engines
109
110According to Heather Champ, former community manager at Flickr, you should not
111allow search engines to index your "Contact Us" or "Complaints" page if you
112value your sanity. This is an HTML-centric way of achieving that.
113
114```html
115<meta name="robots" content="noindex">
116```
117
118**_WARNING:_** DO NOT INCLUDE ON PAGES THAT SHOULD APPEAR IN SEARCH ENGINES.
119
120### Firefox and IE Search Plugins
121
122Sites with in-site search functionality should be strongly considered for a
123browser search plugin. A "search plugin" is an XML file which defines how your
124plugin behaves in the browser. [How to make a browser search
125plugin](http://www.google.com/search?ie=UTF-8&q=how+to+make+browser+search+plugin).
126
127```html
128<link rel="search" title="" type="application/opensearchdescription+xml" href="">
129```
130
131
132## Internet Explorer
133
134### Prompt users to switch to "Desktop Mode" in IE10 Metro
135
136IE10 does not support plugins, such as Flash, in Metro mode. If your site
137requires plugins, you can let users know that via the X-UA-Compatible meta
138element, which will prompt them to switch to Desktop Mode.
139
140```html
141<meta http-equiv="X-UA-Compatible" content="requiresActiveX=true">
142```
143
144Here's what it looks like alongside H5BP's default X-UA-Compatible values:
145
146```html
147<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1,requiresActiveX=true">
148```
149
150You can find more information in [Microsoft's IEBlog post about prompting for
151plugin use in IE10 Metro
152Mode](http://blogs.msdn.com/b/ie/archive/2012/01/31/web-sites-and-a-plug-in-free-web.aspx).
153
154### IE Pinned Sites (IE9+)
155
156Enabling your application for pinning will allow IE9 users to add it to their
157Windows Taskbar and Start Menu. This comes with a range of new tools that you
158can easily configure with the elements below. See more [documentation on IE9
159Pinned Sites](http://msdn.microsoft.com/en-us/library/gg131029.aspx).
160
161### Name the Pinned Site for Windows
162
163Without this rule, Windows will use the page title as the name for your
164application.
165
166```html
167<meta name="application-name" content="Sample Title">
168```
169
170### Give your Pinned Site a tooltip
171
172You know — a tooltip. A little textbox that appears when the user holds their
173mouse over your Pinned Site's icon.
174
175```html
176<meta name="msapplication-tooltip" content="A description of what this site does.">
177```
178
179### Set a default page for your Pinned Site
180
181If the site should go to a specific URL when it is pinned (such as the
182homepage), enter it here. One idea is to send it to a special URL so you can
183track the number of pinned users, like so:
184`http://www.example.com/index.html?pinned=true`
185
186```html
187<meta name="msapplication-starturl" content="http://www.example.com/index.html?pinned=true">
188```
189
190### Recolor IE's controls manually for a Pinned Site
191
192IE9+ will automatically use the overall color of your Pinned Site's favicon to
193shade its browser buttons. UNLESS you give it another color here. Only use
194named colors (`red`) or hex colors (`#ff0000`).
195
196```html
197<meta name="msapplication-navbutton-color" content="#ff0000">
198```
199
200### Manually set the window size of a Pinned Site
201
202If the site should open at a certain window size once pinned, you can specify
203the dimensions here. It only supports static pixel dimensions. 800x600
204minimum.
205
206```html
207<meta name="msapplication-window" content="width=800;height=600">
208```
209
210### Jump List "Tasks" for Pinned Sites
211
212Add Jump List Tasks that will appear when the Pinned Site's icon gets a
213right-click. Each Task goes to the specified URL, and gets its own mini icon
214(essentially a favicon, a 16x16 .ICO). You can add as many of these as you
215need.
216
217```html
218<meta name="msapplication-task" content="name=Task 1;action-uri=http://host/Page1.html;icon-uri=http://host/icon1.ico">
219<meta name="msapplication-task" content="name=Task 2;action-uri=http://microsoft.com/Page2.html;icon-uri=http://host/icon2.ico">
220```
221
222### (Windows 8) High quality visuals for Pinned Sites
223
224Windows 8 adds the ability for you to provide a PNG tile image and specify the
225tile's background color. [Full details on the IE
226blog](http://blogs.msdn.com/b/ie/archive/2012/06/08/high-quality-visuals-for-pinned-sites-in-windows-8.aspx).
227
228* Create a 144x144 image of your site icon, filling all of the canvas, and
229 using a transparent background.
230* Save this image as a 32-bit PNG and optimize it without reducing
231 colour-depth. It can be named whatever you want (e.g. `metro-tile.png`).
232* To reference the tile and its color, add the HTML `meta` elements described
233 in the IE Blog post.
234
235### (Windows 8) Badges for Pinned Sites
236
237IE10 will poll an XML document for badge information to display on your app's
238tile in the Start screen. The user will be able to receive these badge updates
239even when your app isn't actively running. The badge's value can be a number,
240or one of a predefined list of glyphs.
241
242* [Tutorial on IEBlog with link to badge XML schema](http://blogs.msdn.com/b/ie/archive/2012/04/03/pinned-sites-in-windows-8.aspx)
243* [Available badge values](http://msdn.microsoft.com/en-us/library/ie/br212849.aspx)
244
245```html
246<meta name="msapplication-badge" value="frequency=NUMBER_IN_MINUTES;polling-uri=http://www.example.com/path/to/file.xml">
247```
248
249### Suppress IE6 image toolbar
250
251Kill IE6's pop-up-on-mouseover toolbar for images that can interfere with
252certain designs and be pretty distracting in general.
253
254```html
255<meta http-equiv="imagetoolbar" content="false">
256```
257
258
259## Social Networks
260
261### Facebook Open Graph data
262
263You can control the information that Facebook and others display when users
264share your site. Below are just the most basic data points you might need. For
265specific content types (including "website"), see [Facebook's built-in Open
266Graph content
267templates](https://developers.facebook.com/docs/opengraph/objects/builtin/).
268Take full advantage of Facebook's support for complex data and activity by
269following the [Open Graph
270tutorial](https://developers.facebook.com/docs/opengraph/tutorial/).
271
272```html
273<meta property="og:title" content="">
274<meta property="og:description" content="">
275<meta property="og:image" content="">
276```
277
278### Twitter Cards
279
280Twitter provides a snippet specification that serves a similar purpose to Open
281Graph. In fact, Twitter will use Open Graph when Cards is not available. Note
282that, as of this writing, Twitter requires that app developers activate Cards
283on a per-domain basis. You can read more about the various snippet formats
284and application process in the [official Twitter Cards
285documentation](https://dev.twitter.com/docs/cards).
286
287```html
288<meta name="twitter:card" content="summary">
289<meta name="twitter:site" content="@site_account">
290<meta name="twitter:creator" content="@individual_account">
291<meta name="twitter:url" content="http://www.example.com/path/to/page.html">
292<meta name="twitter:title" content="">
293<meta name="twitter:description" content="">
294<meta name="twitter:image" content="http://www.example.com/path/to/image.jpg">
295```
296
297
298## URLs
299
300### Canonical URL
301
302Signal to search engines and others "Use this URL for this page!" Useful when
303parameters after a `#` or `?` is used to control the display state of a page.
304`http://www.example.com/cart.html?shopping-cart-open=true` can be indexed as
305the cleaner, more accurate `http://www.example.com/cart.html`.
306
307```html
308<link rel="canonical" href="">
309```
310
311### Official shortlink
312
313Signal to the world "This is the shortened URL to use this page!" Poorly
314supported at this time. Learn more by reading the [article about shortlinks on
315the Microformats wiki](http://microformats.org/wiki/rel-shortlink).
316
317```html
318<link rel="shortlink" href="h5bp.com">
319```
320
321
322## News Feeds
323
324### RSS
325
326Have an RSS feed? Link to it here. Want to [learn how to write an RSS feed from
327scratch](http://www.rssboard.org/rss-specification)?
328
329```html
330<link rel="alternate" type="application/rss+xml" title="RSS" href="/rss.xml">
331```
332
333### Atom
334
335Atom is similar to RSS, and you might prefer to use it instead of or in
336addition to it. [See what Atom's all
337about](http://www.atomenabled.org/developers/syndication/).
338
339```html
340<link rel="alternate" type="application/atom+xml" title="Atom" href="/atom.xml">
341```
342
343### Pingbacks
344
345Your server may be notified when another site links to yours. The href
346attribute should contain the location of your pingback service.
347
348```html
349<link rel="pingback" href="">
350```
351
352* High-level explanation: http://codex.wordpress.org/Introduction_to_Blogging#Pingbacks
353* Step-by-step example case: http://www.hixie.ch/specs/pingback/pingback-1.0#TOC5
354* PHP pingback service: http://blog.perplexedlabs.com/2009/07/15/xmlrpc-pingbacks-using-php/
355
356
357## App Stores
358
359### Install a Chrome Web Store app
360
361Users can install a Chrome app directly from your website, as long as the app
362and site have been associated via Google's Webmaster Tools. Read more on
363[Chrome Web Store's Inline Installation
364docs](https://developers.google.com/chrome/web-store/docs/inline_installation).
365
366```html
367<link rel="chrome-webstore-item" href="https://chrome.google.com/webstore/detail/APP_ID">
368```
369
370### Smart App Banners in iOS 6 Safari
371
372Stop bothering everyone with gross modals advertising your entry in the App Store.
373This bit of code will unintrusively allow the user the option to download your iOS
374app, or open it with some data about the user's current state on the website.
375
376```html
377<meta name="apple-itunes-app" content="app-id=APP_ID,app-argument=SOME_TEXT">
378```
379
380## Google Analytics augments
381
382### More tracking settings
383
384The [optimized Google Analytics
385snippet](http://mathiasbynens.be/notes/async-analytics-snippet) included with
386HTML5 Boilerplate includes something like this:
387
388```js
389var _gaq = [['_setAccount', 'UA-XXXXX-X'], ['_trackPageview']];
390```
391
392In case you need more settings, just extend the array literal instead of
393[`.push()`ing to the
394array](http://mathiasbynens.be/notes/async-analytics-snippet#dont-push-it)
395afterwards:
396
397```js
398var _gaq = [['_setAccount', 'UA-XXXXX-X'], ['_trackPageview'], ['_setAllowAnchor', true]];
399```
400
401### Anonymize IP addresses
402
403In some countries, no personal data may be transferred outside jurisdictions
404that do not have similarly strict laws (i.e. from Germany to outside the EU).
405Thus a webmaster using the Google Analytics script may have to ensure that no
406personal (trackable) data is transferred to the US. You can do that with [the
407`_gat.anonymizeIp`
408option](http://code.google.com/apis/analytics/docs/gaJS/gaJSApi_gat.html#_gat._anonymizeIp).
409In use it looks like this:
410
411```js
412var _gaq = [['_setAccount', 'UA-XXXXX-X'], ['_gat._anonymizeIp'], ['_trackPageview']];
413```
414
415### Track jQuery AJAX requests in Google Analytics
416
417An article by @JangoSteve explains how to [track jQuery AJAX requests in Google
418Analytics](http://www.alfajango.com/blog/track-jquery-ajax-requests-in-google-analytics/).
419
420Add this to `plugins.js`:
421
422```js
423/*
424 * Log all jQuery AJAX requests to Google Analytics
425 * See: http://www.alfajango.com/blog/track-jquery-ajax-requests-in-google-analytics/
426 */
427if (typeof _gaq !== "undefined" && _gaq !== null) {
428 $(document).ajaxSend(function(event, xhr, settings){
429 _gaq.push(['_trackPageview', settings.url]);
430 });
431}
432```
433
434### Track JavaScript errors in Google Analytics
435
436Add this function after `_gaq` is defined:
437
438```js
439(function(window){
440 var undefined,
441 link = function (href) {
442 var a = window.document.createElement('a');
443 a.href = href;
444 return a;
445 };
446 window.onerror = function (message, file, row) {
447 var host = link(file).hostname;
448 _gaq.push([
449 '_trackEvent',
450 (host == window.location.hostname || host == undefined || host == '' ? '' : 'external ') + 'error',
451 message, file + ' LINE: ' + row, undefined, undefined, true
452 ]);
453 };
454}(window));
455```
456
457### Track page scroll
458
459Add this function after `_gaq` is defined:
460
461```js
462$(function(){
463 var isDuplicateScrollEvent,
464 scrollTimeStart = new Date,
465 $window = $(window),
466 $document = $(document),
467 scrollPercent;
468
469 $window.scroll(function() {
470 scrollPercent = Math.round(100 * ($window.height() + $window.scrollTop())/$document.height());
471 if (scrollPercent > 90 && !isDuplicateScrollEvent) { //page scrolled to 90%
472 isDuplicateScrollEvent = 1;
473 _gaq.push(['_trackEvent', 'scroll',
474 'Window: ' + $window.height() + 'px; Document: ' + $document.height() + 'px; Time: ' + Math.round((new Date - scrollTimeStart )/1000,1) + 's',
475 undefined, undefined, true
476 ]);
477 }
478 });
479});
480```
481
482
483## Miscellaneous
484
485* Use [HTML5
486 polyfills](https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-browser-Polyfills).
487
488* Use [Microformats](http://microformats.org/wiki/Main_Page) (via
489 [microdata](http://microformats.org/wiki/microdata)) for optimum search
490 results
491 [visibility](http://googlewebmastercentral.blogspot.com/2009/05/introducing-rich-snippets.html).
492
493* If you're building a web app you may want [native style momentum scrolling in
494 iOS5](http://johanbrook.com/browsers/native-momentum-scrolling-ios-5/) using
495 `-webkit-overflow-scrolling: touch`.
496
497* Avoid development/stage websites "leaking" into SERPs (search engine results
498 page) by [implementing X-Robots-tag
499 headers](https://github.com/h5bp/html5-boilerplate/issues/804).
500
501* Screen readers currently have less-than-stellar support for HTML5 but the JS
502 script [accessifyhtml5.js](https://github.com/yatil/accessifyhtml5.js) can
503 help increase accessibility by adding ARIA roles to HTML5 elements.
504
505
506*Many thanks to [Brian Blakely](https://github.com/brianblakely) for
507contributing much of this information.*

doc/faq.md

1[HTML5 Boilerplate homepage](http://html5boilerplate.com) | [Documentation
2table of contents](README.md)
3
4# Frequently asked questions
5
6### Why is the URL for jQuery without "http"?
7
8This is an intentional use of [protocol-relative
9URLs](http://paulirish.com/2010/the-protocol-relative-url/)
10
11**N.B.** Using a protocol-relative URL for files that exist on a CDN is
12problematic when you try to view your local files directly in the browser. The
13browser will attempt to fetch the file from your local file system. We
14recommend that you use a local server to test your pages (or Dropbox). This can
15be done using Python by running `python -m SimpleHTTPServer` from your local
16directory, using Ruby by installing and running
17[asdf](https://rubygems.org/gems/asdf), and by installing any one of XAMPP,
18MAMP, or WAMP.
19
20
21### Why don't you automatically load the latest version of jQuery from the Google CDN?
22
231. The latest version of jQuery may not be compatible with the existing
24 plugins/code on the site. Version updating should be an intentional
25 decision.
262. The latest version has a very short `max-age=3600` compares to the specific
27 version of `max-age=31536000`, which means you won't get the benefits of
28 long-term caching.
29
30
31### Why is the Google Analytics code at the bottom? Google recommends it be placed the `head`.
32
33The advantage to placing it in the `head` is that you will track a user's
34pageview even if they leave the page before it has been fully loaded. However,
35putting the code at the bottom keeps all the scripts together and reinforces
36that scripts at the bottom are the right move.
37
38
39### How can I integrate [Twitter Bootstrap](http://twitter.github.com/bootstrap/) with HTML5 Boilerplate?
40
41You can use [Initializr](http://initializr.com) to create a custom build that
42includes HTML5 Boilerplate with Twitter Bootstrap.
43
44Read more about how [HTML5 Boilerplate and Twitter Bootstrap complement each
45other](http://www.quora.com/Is-Bootstrap-a-complement-OR-an-alternative-to-HTML5-Boilerplate-or-viceversa/answer/Nicolas-Gallagher).
46
47
48### How do I prevent phone numbers looking twice as large and having a Skype highlight?
49
50If this is occurring, it is because a user has the Skype browser extension
51installed.
52
53Use the following CSS to prevent Skype from formatting the numbers on your
54page:
55
56```css
57span.skype_pnh_container {
58 display: none !important;
59}
60
61span.skype_pnh_print_container {
62 display: inline !important;
63}
64```
65
66
67### Do I need to upgrade my sites each time a new version of HTML5 Boilerplate is released?
68
69No. You don't normally replace the foundations of a house once it has been
70built. There is nothing stopping you from trying to work in the latest changes
71but you'll have to assess the costs/benefits of doing so.
72
73
74### Where can I get help for support questions?
75
76Please ask for help on
77[StackOverflow](http://stackoverflow.com/questions/tagged/html5boilerplate).

doc/htaccess.md

1[HTML5 Boilerplate homepage](http://html5boilerplate.com) | [Documentation
2table of contents](README.md)
3
4# .htaccess
5
6In Apache HTTP server, `.htaccess` (hypertext access) is the configuration file
7that allows for web server configuration. HTML5 Boilerplate includes a number
8of best practice server rules for making web pages fast and secure, these rules
9can be applied by configuring `.htaccess` file.
10
11**You'll want to have these modules enabled for optimum performance:**
12
13* `mod_setenvif.c` (setenvif_module)
14* `mod_headers.c` (headers_module)
15* `mod_deflate.c` (deflate_module)
16* `mod_filter.c` (filter_module)
17* `mod_expires.c` (expires_module)
18* `mod_rewrite.c` (rewrite_module)
19
20
21## On Windows
22
23You've got a couple of options that depend on how you installed Apache.
24
251. **WampServer**. This is by far the simplest option. If you have installed
26 WampServer just click on the icon in the task bar, hover over the Apache
27 section in the menu that comes up and then hover over the modules section.
28 You will be presented with a list of modules. Simply click on a module name
29 to enable it (or disable it if it is already enabled). A check mark next to
30 a module indicates that it is enabled. WampServer will automatically restart
31 the Apache service after you enable a module.
32
332. **Manually editing `httpd.conf`**. This assumes that you have manually
34 installed Apache. You will need to locate the `httpd.conf` file which is
35 normally in the `conf` folder in the folder where you installed Apache (for
36 example `C:\apache\conf\httpd.conf`). Open up this file in a text editor. Near
37 the top (after a bunch of comments) you will see a long list of modules. Check
38 to make sure that the modules listed above are not commented out. If they
39 are, go ahead and uncomment them and restart Apache.
40
41That's it, you're done!
42
43
44## On Linux
45
46These instructions should work on any distribution where `apt-get` has been
47used to install Apache.
48
491. Open up a terminal and type the following command. Enter your password when
50 prompted.
51
52 `sudo a2enmod setenvif headers deflate filter expires rewrite include`
53
541. Restart apache by using the following command so the new configuration takes
55 effect.
56
57 `sudo /etc/init.d/apache2 restart`
58
59That's it, you're done!
60
61
62## On Mac
63
64Coming soon...
65
66
67## Security
68
69Do not turn off your ServerSignature (i.e., the `Server:` HTTP header). Serious
70attackers can use other kinds of fingerprinting methods to figure out the
71actual server and components running behind a port. Instead, as a site owner,
72you should keep track of what's listening on ports on hosts that you control.
73Run a periodic scanner to make sure nothing suspicious is running on a host you
74control, and use the ServerSignature to determine if this is the web server and
75version that you expect.
76
77
78## Performance
79
80### Configure ETags
81
82```apache
83FileETag None
84```
85
86Entity tags (ETags) is a mechanism that web servers and browsers use to
87determine whether the component in the browser's cache matches the one on the
88origin server. (An "entity" is another word a "component": images, scripts,
89stylesheets, etc.) ETags were added to provide a mechanism for validating
90entities that is more flexible than the last-modified date. An `ETag` is a
91string that uniquely identifies a specific version of a component. The only
92format constraints are that the string be quoted. The origin server specifies
93the component's `ETag` using the `ETag` response header.
94
95```http
96HTTP/1.1 200 OK
97Last-Modified: Tue, 12 Dec 2006 03:03:59 GMT
98ETag: "10c24bc-4ab-457e1c1f"
99Content-Length: 12195
100```
101
102Later, if the browser has to validate a component, it uses the `If-None-Match`
103header to pass the `ETag` back to the origin server. If the ETags match, a 304
104status code is returned reducing the response by 12195 bytes for this
105example.
106
107```http
108GET /i/yahoo.gif HTTP/1.1
109Host: us.yimg.com
110If-Modified-Since: Tue, 12 Dec 2006 03:03:59 GMT
111If-None-Match: "10c24bc-4ab-457e1c1f"
112HTTP/1.1 304 Not Modified
113```
114
115The problem with ETags is that they typically are constructed using attributes
116that make them unique to a specific server hosting a site. ETags won't match
117when a browser gets the original component from one server and later tries to
118validate that component on a different server, a situation that is all too
119common on web sites that use a cluster of servers to handle requests. By
120default, both Apache and IIS embed data in the ETag that dramatically reduces
121the odds of the validity test succeeding on web sites with multiple servers.
122
123The ETag format for Apache 1.3 and 2.x is inode-size-timestamp. Although a
124given file may reside in the same directory across multiple servers, and have
125the same file size, permissions, timestamp, etc., its inode is different from
126one server to the next.
127
128IIS 5.0 and 6.0 have a similar issue with ETags. The format for ETags on IIS is
129Filetimestamp:ChangeNumber. A ChangeNumber is a counter used to track
130configuration changes to IIS. It's unlikely that the ChangeNumber is the same
131across all IIS servers behind a web site.
132
133The end result is ETags generated by Apache and IIS for the exact same
134component won't match from one server to another. If the ETags don't match, the
135user doesn't receive the small, fast 304 response that ETags were designed for;
136instead, they'll get a normal 200 response along with all the data for the
137component. If you host your web site on just one server, this isn't a problem.
138But if you have multiple servers hosting your web site, and you're using Apache
139or IIS with the default ETag configuration, your users are getting slower
140pages, your servers have a higher load, you're consuming greater bandwidth, and
141proxies aren't caching your content efficiently. Even if your components have a
142far future Expires header, a conditional GET request is still made whenever the
143user hits Reload or Refresh.
144
145If you're not taking advantage of the flexible validation model that ETags
146provide, it's better to just remove the ETag altogether. The Last-Modified
147header validates based on the component's timestamp. And removing the ETag
148reduces the size of the HTTP headers in both the response and subsequent
149requests. This Microsoft Support article describes how to remove ETags. In
150Apache, this is done by simply adding the above line to your Apache
151configuration file.
152
153
154### Gzip Components
155
156Compression reduces response times by reducing the size of the HTTP response.
157
158Starting with HTTP/1.1, web clients indicate support for compression with the
159Accept-Encoding header in the HTTP request.
160
161```
162Accept-Encoding: gzip, deflate
163```
164
165If the web server sees this header in the request, it may compress the response
166using one of the methods listed by the client. The web server notifies the web
167client of this via the Content-Encoding header in the response.
168
169```
170Content-Encoding: gzip
171```
172
173Gzip is the most popular and effective compression method at this time. It was
174developed by the GNU project and standardized by RFC 1952. The only other
175compression format you're likely to see is deflate, but it's less effective and
176less popular.
177
178Gzipping generally reduces the response size by about 70%. Approximately 90% of
179today's Internet traffic travels through browsers that claim to support gzip.
180If you use Apache, the module configuring gzip depends on your version: Apache
1811.3 uses `mod_gzip` while Apache 2.x uses `mod_deflate`.
182
183There are known issues with browsers and proxies that may cause a mismatch in
184what the browser expects and what it receives with regard to compressed
185content. Fortunately, these edge cases are dwindling as the use of older
186browsers drops off. The Apache modules help out by adding appropriate Vary
187response headers automatically.
188
189Servers choose what to gzip based on file type, but are typically too limited
190in what they decide to compress. Most web sites gzip their HTML documents. It's
191also worthwhile to gzip your scripts and stylesheets, but many web sites miss
192this opportunity. In fact, it's worthwhile to compress any text response
193including XML and JSON. Image and PDF files should not be gzipped because they
194are already compressed. Trying to gzip them not only wastes CPU but can
195potentially increase file sizes.
196
197Gzipping as many appropriate file types as possible is an easy way to reduce
198page weight and accelerate the user experience.
199
200
201### Cache busting
202
203A first-time visitor to your page may have to make several HTTP requests, but
204by using the Expires header you make those components cacheable. This avoids
205unnecessary HTTP requests on subsequent page views. Expires headers are most
206often used with images, but they should be used on all components including
207scripts, stylesheets, etc.
208
209Traditionally, if you use a far future Expires header you have to change the
210component's filename whenever the component changes.
211
212The H5BP `.htaccess` has built-in filename cache busting. To use it, uncomment
213the relevant lines in the `.htaccess` file.
214
215Doing so will route all requests for `/path/filename.20120101.ext` to
216`/path/filename.ext`. To use this, just add a time-stamp number (or your own
217numbered versioning system) into your resource filenames in your HTML source
218whenever you update those resources.
219
220#### Example:
221
222```html
223<script src="/js/myscript.20120305.js"></script>
224<script src="/js/jqueryplugin.45.js"></script>
225<link rel="stylesheet" href="css/somestyle.49559939932.css">
226<link rel="stylesheet" href="css/anotherstyle.2.css">
227```
228
229**N.B. You do not have to rename the resource on the filesystem.** All you have
230to do is add the timestamp number to the filename in your HTML source. The
231`.htaccess` directive will serve up the proper file.
232
233Traditional cache busting involved adding a query string to the end of your
234JavaScript or CSS filename whenever you updated it.
235
236```html
237<script src="/js/all.js?v=12"></script>
238```
239
240However, as [Steve Souders](http://stevesouders.com/) explains in [*Revving
241Filenames: don’t use
242querystring*](http://www.stevesouders.com/blog/2008/08/23/revving-filenames-dont-use-querystring/),
243the query string approach is not always reliable for clients behind a Squid
244Proxy Server.
245
246
247## Trailing slash redirects
248
249Trailing slash redirects can be done by adding one of the options below in `.htaccess`.
250
251### Option 1
252Rewrite `domain.com/foo` -> `domain.com/foo/`.
253
254```apache
255RewriteCond %{REQUEST_FILENAME} !-f
256RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/|#(.*))$
257RewriteRule ^(.*)$ $1/ [R=301,L]
258```
259
260### Option 2
261Rewrite `domain.com/foo/` -> `domain.com/foo`
262
263```apache
264RewriteRule ^(.*)/$ $1 [R=301,L]
265```
266
267Here are some tips to show you how to integrate the rewrite rules with
268different CMS tools. There are four areas you need to look out for:
269
270### 1. Keep a backup
271
272If you use trailing slash redirects on an existing site, always keep a backup
273of your `.htaccess` and test thoroughly on your staging server before using it on
274a production server.
275
276### 2. Don't replace existing rules, merge
277
278For example, if you use CodeIgniter you may have existing URL rewrite rules like:
279
280```apache
281RewriteCond %{REQUEST_FILENAME} !-f
282RewriteCond %{REQUEST_FILENAME} !-d
283RewriteRule ^(.*)$ index.php/$1
284```
285
286Merge the above with H5BP rules below:
287
288```apache
289RewriteCond %{REQUEST_FILENAME} !-f
290RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/|#(.*))$
291RewriteRule ^(.*)$ $1/ [R=301,L]
292```
293
294### 3. Be careful of the order
295
296Make sure you test thoroughly in your staging environment. For the above
297example, the order is add trailing slash first, and add your existing rule
298after:
299
300```apache
301# this adds trailing slash
302RewriteCond %{REQUEST_FILENAME} !-f
303RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/|#(.*))$
304RewriteRule ^(.*)$ $1/ [R=301,L]
305
306# this gets rid of index.php
307RewriteCond %{REQUEST_FILENAME} !-f
308RewriteCond %{REQUEST_FILENAME} !-d
309RewriteRule ^(.*)$ index.php/$1
310```
311
312### 4. Double-check `RewriteBase` path is correct
313
314Make sure your `RewriteBase` path points to the correct location and sits above
315any rewrite rules. This usually happens to those have WordPress and ran the
316auto install. For instance, if you have a site at `example.com/blog`, your
317RewriteBase may look like:
318
319```apache
320RewriteBase /blog/
321```
322
323If you already have a working RewriteBase, keep that and don't remove it.

doc/html.md

1[HTML5 Boilerplate homepage](http://html5boilerplate.com) | [Documentation
2table of contents](README.md)
3
4# The HTML
5
6## Conditional `html` classes
7
8A series of IE conditional comments apply the relevant IE-specific classes to
9the `html` tag. This provides one method of specifying CSS fixes for specific
10legacy versions of IE. While you may or may not choose to use this technique in
11your project code, HTML5 Boilerplate's default CSS does not rely on it.
12
13When using the conditional classes technique, applying classes to the `html`
14element has several benefits:
15
16* It avoids a [file blocking
17 issue](http://webforscher.wordpress.com/2010/05/20/ie-6-slowing-down-ie-8/)
18 discovered by Stoyan Stefanov and Markus Leptien.
19* It avoids the need for an empty comment that also fixes the above issue.
20* CMSes like WordPress and Drupal use the body class more heavily. This makes
21 integrating there a touch simpler.
22* It still validates as HTML5.
23* It uses the same element as Modernizr (and Dojo). That feels nice.
24* It can improve the clarity of code in multi-developer teams.
25
26
27## The `no-js` class
28
29Allows you to more easily explicitly add custom styles when JavaScript is
30disabled (`no-js`) or enabled (`js`). More here: [Avoiding the
31FOUC](http://paulirish.com/2009/avoiding-the-fouc-v3/).
32
33
34## The order of meta tags, and `<title>`
35
36As recommended by [the HTML5
37spec](http://www.whatwg.org/specs/web-apps/current-work/complete/semantics.html#charset)
38(4.2.5.5 Specifying the document's character encoding), add your charset
39declaration early (before any ASCII art ;) to avoid a potential
40[encoding-related security
41issue](http://code.google.com/p/doctype/wiki/ArticleUtf7) in IE. It should come
42in the first [1024
43bytes](http://www.whatwg.org/specs/web-apps/current-work/multipage/semantics.html#charset).
44
45The charset should also come before the `<title>` tag, due to [potential XSS
46vectors](http://code.google.com/p/doctype-mirror/wiki/ArticleUtf7).
47
48The meta tag for compatibility mode [needs to be before all elements except
49title and meta](http://h5bp.com/f "Defining Document Compatibility - MSDN").
50And that same meta tag can only be invoked for Google Chrome Frame if it is
51within the [first 1024
52bytes](http://code.google.com/p/chromium/issues/detail?id=23003).
53
54
55## X-UA-Compatible
56
57This makes sure the latest version of IE is used in versions of IE that contain
58multiple rendering engines. Even if a site visitor is using IE8 or IE9, it's
59possible that they're not using the latest rendering engine their browser
60contains. To fix this, use:
61
62```html
63<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
64```
65
66The `meta` tag tells the IE rendering engine two things:
67
681. It should use the latest, or edge, version of the IE rendering environment
692. If already installed, it should use the Google Chrome Frame rendering
70 engine.
71
72This `meta` tag ensures that anyone browsing your site in IE is treated to the
73best possible user experience that their browser can offer.
74
75This line breaks validation, and the Google Chrome Frame part won't work inside
76a conditional comment. To avoid these edge case issues it is recommended that
77you **remove this line and use the `.htaccess`** (or other server config)
78to send these headers instead. You also might want to read [Validating:
79X-UA-Compatible](http://groups.google.com/group/html5boilerplate/browse_thread/thread/6d1b6b152aca8ed2).
80
81If you are serving your site on a non-standard port, you will need to set this
82header on the server-side. This is because the IE preference option 'Display
83intranet sites in Compatibility View' is checked by default.
84
85
86## Mobile viewport
87
88There are a few different options that you can use with the [`viewport` meta
89tag](https://docs.google.com/present/view?id=dkx3qtm_22dxsrgcf4 "Viewport and
90Media Queries - The Complete Idiot's Guide"). You can find out more in [the
91Apple developer docs](http://j.mp/mobileviewport). HTML5 Boilerplate comes with
92a simple setup that strikes a good balance for general use cases.
93
94```html
95<meta name="viewport" content="width=device-width">
96```
97
98## Favicons and Touch Icons
99
100The shortcut icons should be put in the root directory of your site. HTML5
101Boilerplate comes with a default set of icons (include favicon and Apple Touch
102Icons) that you can use as a baseline to create your own.
103
104If your site or icons are in a sub-directory, you will need to reference the
105icons using `link` elements placed in the HTML `head` of your document.
106
107For a comprehensive overview, please read [Everything you always wanted to know
108about touch icons](http://mathiasbynens.be/notes/touch-icons) by Mathias
109Bynens.
110
111
112## Modernizr
113
114HTML5 Boilerplate uses a custom build of Modernizr.
115
116[Modernizr](http://modernizr.com) is a JavaScript library which adds classes to
117the `html` element based on the results of feature test and which ensures that
118all browsers can make use of HTML5 elements (as it includes the HTML5 Shiv).
119This allows you to target parts of your CSS and JavaScript based on the
120features supported by a browser.
121
122In general, in order to keep page load times to a minimum, it's best to call
123any JavaScript at the end of the page because if a script is slow to load
124from an external server it may cause the whole page to hang. That said, the
125Modernizr script *needs* to run *before* the browser begins rendering the page,
126so that browsers lacking support for some of the new HTML5 elements are able to
127handle them properly. Therefore the Modernizr script is the only JavaScript
128file synchronously loaded at the top of the document.
129
130
131## The content area
132
133The central part of the boilerplate template is pretty much empty. This is
134intentional, in order to make the boilerplate suitable for both web page and
135web app development.
136
137### Google Chrome Frame
138
139The main content area of the boilerplate includes a prompt to install Chrome
140Frame (which no longer requires administrative rights) for users of IE 6. If
141you intended to support IE 6, then you should remove the snippet of code.
142
143### Google CDN for jQuery
144
145The Google CDN version of the jQuery JavaScript library is referenced towards
146the bottom of the page using a protocol-independent path (read more about this
147in the [FAQ](faq.md). A local fallback of jQuery is included for rare instances
148when the CDN version might not be available, and to facilitate offline
149development.
150
151Regardless of which JavaScript library you choose to use, it is well worth the
152time and effort to look up and reference the Google CDN (Content Delivery
153Network) version. Your users may already have this version cached in their
154browsers, and Google's CDN is likely to deliver the asset faster than your
155server.
156
157### Google Analytics Tracking Code
158
159Finally, an optimized version of the latest Google Analytics tracking code is
160included. Google recommends that this script be placed at the top of the page.
161Factors to consider: if you place this script at the top of the page, you’ll be
162able to count users who don’t fully load the page, and you’ll incur the max
163number of simultaneous connections of the browser.
164
165Further information:
166
167* [Optimizing the asynchronous Google Analytics
168 snippet](http://mathiasbynens.be/notes/async-analytics-snippet).
169* [Tracking Site Activity - Google
170 Analytics](http://code.google.com/apis/analytics/docs/tracking/asyncTracking.html).

doc/js.md

1[HTML5 Boilerplate homepage](http://html5boilerplate.com) | [Documentation
2table of contents](README.md)
3
4# The JavaScript
5
6Information about the default JavaScript included in the project.
7
8## main.js
9
10This file can be used to contain or reference your site/app JavaScript code.
11For larger projects, you can make use of a JavaScript module loader, like
12[Require.js](http://requirejs.org/), to load any other scripts you need to
13run.
14
15## plugins.js
16
17This file can be used to contain all your plugins, such as jQuery plugins and
18other 3rd party scripts.
19
20One approach is to put jQuery plugins inside of a `(function($){ ...
21})(jQuery);` closure to make sure they're in the jQuery namespace safety
22blanket. Read more about [jQuery plugin
23authoring](http://docs.jquery.com/Plugins/Authoring#Getting_Started)
24
25## vendor
26
27This directory can be used to contain all 3rd party library code.
28
29Minified versions of the latest jQuery and Modernizr libraries are included by
30default. You may wish to create your own [custom Modernizr
31build](http://www.modernizr.com/download/).

doc/misc.md

1[HTML5 Boilerplate homepage](http://html5boilerplate.com) | [Documentation table of contents](README.md)
2
3# Miscellaneous
4
5## .gitignore
6
7HTML5 Boilerplate includes a basic project-level `.gitignore`. This should
8primarily be used to avoid certain project-level files and directories from
9being kept under source control. Different development-environments will
10benefit from different collections of ignores.
11
12OS-specific and editor-specific files should be ignored using a "global
13ignore" that applies to all repositories on your system.
14
15For example, add the following to your `~/.gitconfig`, where the `.gitignore`
16in your HOME directory contains the files and directories you'd like to
17globally ignore:
18
19```gitignore
20[core]
21 excludesfile = ~/.gitignore
22```
23
24* More on global ignores: http://help.github.com/ignore-files/
25* Comprehensive set of ignores on GitHub: https://github.com/github/gitignore

doc/usage.md

1[HTML5 Boilerplate homepage](http://html5boilerplate.com) | [Documentation
2table of contents](README.md)
3
4# Usage
5
6Once you have cloned or downloaded HTML5 Boilerplate, creating a site or app
7usually involves the following:
8
91. Set up the basic structure of the site.
102. Add some content, style, and functionality.
113. Run your site locally to see how it looks.
124. (Optionally run a build script to automate the optimization of your site -
13 e.g. [ant build script](https://github.com/h5bp/ant-build-script) or [node
14 build script](https://github.com/h5bp/node-build-script)).
155. Deploy your site.
16
17
18## Basic structure
19
20A basic HTML5 Boilerplate site initially looks something like this:
21
22```
23.
24├── css
25│ ├── main.css
26│ └── normalize.css
27├── doc
28├── img
29├── js
30│ ├── main.js
31│ ├── plugins.js
32│ └── vendor
33│ ├── jquery.min.js
34│ └── modernizr.min.js
35├── .htaccess
36├── 404.html
37├── index.html
38├── humans.txt
39├── robots.txt
40├── crossdomain.xml
41├── favicon.ico
42└── [apple-touch-icons]
43```
44
45What follows is a general overview of each major part and how to use them.
46
47### css
48
49This directory should contain all your project's CSS files. It includes some
50initial CSS to help get you started from a solid foundation. [About the
51CSS](css.md).
52
53### doc
54
55This directory contains all the HTML5 Boilerplate documentation. You can use it
56as the location and basis for your own project's documentation.
57
58### js
59
60This directory should contain all your project's JS files. Libraries, plugins,
61and custom code can all be included here. It includes some initial JS to help
62get you started. [About the JavaScript](js.md).
63
64### .htaccess
65
66The default web server config is for Apache. [About the .htaccess](htaccess.md).
67
68Host your site on a server other than Apache? You're likely to find the
69corresponding configuration file in our [server configs
70repo](https://github.com/h5bp/server-configs). If you cannot find a
71configuration file for your setup, please consider contributing one so that
72others can benefit too.
73
74### 404.html
75
76A helpful custom 404 to get you started.
77
78### index.html
79
80This is the default HTML skeleton that should form the basis of all pages on
81your site. If you are using a server-side templating framework, then you will
82need to integrate this starting HTML with your setup.
83
84Make sure that you update the URLs for the referenced CSS and JavaScript if you
85modify the directory structure at all.
86
87If you are using Google Analytics, make sure that you edit the corresponding
88snippet at the bottom to include your analytics ID.
89
90### humans.txt
91
92Edit this file to include the team that worked on your site/app, and the
93technology powering it.
94
95### robots.txt
96
97Edit this file to include any pages you need hidden from search engines.
98
99### crossdomain.xml
100
101A template for working with cross-domain requests. [About
102crossdomain.xml](crossdomain.md).
103
104### icons
105
106Replace the default `favicon.ico` and apple touch icons with your own. You
107might want to check out Hans Christian's handy [HTML5 Boilerplate Favicon and
108Apple Touch Icon
109PSD-Template](http://drublic.de/blog/html5-boilerplate-favicons-psd-template/).

index.html

3<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8"> <![endif]-->3<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
4<!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]-->4<!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]-->
5<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->5<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->
6 <head>
7 <meta charset="utf-8">
8 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
9 <title></title>
10 <meta name="description" content="">
11 <meta name="viewport" content="width=device-width">
6 <head>
7 <meta charset="utf-8">
8 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
9 <title> Mouchak - ummm!</title>
10 <meta name="description" content="">
11 <meta name="viewport" content="width=device-width">
1212
13 <!-- Place favicon.ico and apple-touch-icon.png in the root directory -->
13 <!-- Place favicon.ico in the root directory -->
1414
15 <link rel="stylesheet" href="css/normalize.css">
16 <link rel="stylesheet" href="css/main.css">
17 <script src="js/vendor/modernizr-2.6.1.min.js"></script>
18 </head>
19 <body>
20 <!--[if lt IE 7]>
21 <p class="chromeframe">You are using an outdated browser. <a href="http://browsehappy.com/">Upgrade your browser today</a> or <a href="http://www.google.com/chromeframe/?redirect=true">install Google Chrome Frame</a> to better experience this site.</p>
22 <![endif]-->
15 <link rel="stylesheet" href="css/normalize.css">
16 <link rel="stylesheet" href="css/bootstrap.css">
17 <link rel="stylesheet" href="css/main.css">
18 <script src="js/lib/modernizr-2.6.1.min.js"></script>
19 </head>
20 <body>
21 <!--[if lt IE 7]>
22 <p class="chromeframe">You are using an outdated browser. <a href="http://browsehappy.com/">Upgrade your browser today</a> or <a href="http://www.google.com/chromeframe/?redirect=true">install Google Chrome Frame</a> to better experience this site.</p>
23 <![endif]-->
2324
24 <!-- Add your site or application content here -->
25 <p>Hello world! This is HTML5 Boilerplate.</p>
25 <div class="container" id="container">
26 <div id="header"></div>
27 <div id="nav">
28 <ul class="nav nav-pills"></ul>
29 </div>
30 <div class="clearfix"></div>
31 <div id="content-container"></div>
32 <div id="footer"></div>
33 </div>
2634
27 <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
28 <script>window.jQuery || document.write('<script src="js/vendor/jquery-1.8.0.min.js"><\/script>')</script>
29 <script src="js/plugins.js"></script>
30 <script src="js/main.js"></script>
35 <script>
36 //Code to initialize the framework
37 window.M = window.M || {};
38 window.onload = function() {
39 M.load("/maraa/data/maraa2.json");
40 };
41 </script>
42 <script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
43 <script>window.jQuery || document.write('<script src="js/lib/jquery-1.8.0.min.js"><\/script>')</script>
44 <script src="js/lib/underscore.js"></script>
45 <script src="js/lib/backbone.js"></script>
46 <script src="js/lib/bootstrap.js"></script>
47 <script src="js/plugins.js"></script>
48 <script src="js/framework.js"></script>
3149
32 <!-- Google Analytics: change UA-XXXXX-X to be your site's ID. -->
33 <script>
34 var _gaq=[['_setAccount','UA-XXXXX-X'],['_trackPageview']];
35 (function(d,t){var g=d.createElement(t),s=d.getElementsByTagName(t)[0];
36 g.src=('https:'==location.protocol?'//ssl':'//www')+'.google-analytics.com/ga.js';
37 s.parentNode.insertBefore(g,s)}(document,'script'));
38 </script>
39 </body>
50 <!-- Underscore templates -->
51 <script type="text/template" id="news-template">
52 <div id="feeds">
53 <img src="img/ajax-loader.gif" id="feeds-loader"/>
54 </div>
55 </script>
56 <script type="text/template" id="news-item-template">
57 <div class="news-item-wrapper">
58 <div class="news-title"><%= title %></div>
59 <a href="<%= link %>">Read More</a>
60 </div>
61 </script>
62 <script type="text/template" id="nav-dropdown-template">
63 <li class="dropdown">
64 <a class="dropdown-toggle" data-toggle="dropdown" href="#/<%= M.sanitize(name) %>"
65 data-target='#'>
66 <%= name %>
67 <b class="caret"></b>
68 </a>
69 <ul class="dropdown-menu">
70 <% _.each(list, function(item) {
71 %>
72 <li><a href="#/<%= M.sanitize(item) %>"> <%= item %> </a></li>
73 <%
74 });
75 %>
76 </ul>
77 </li>
78 </script>
79 <script type="text/template" id="image-view-template">
80 <div class="img-wrapper">
81 <img src="<%= src %>">
82 </div>
83 </script>
84 </body>
40</html>85</html>

js/framework.js

1(function(M) {
2/* Defining Backbone models, collections and views */
3
4var BaseType = Backbone.Model.extend({
5 defaults: {
6 tags: [],
7 title: "",
8 attr: {}
9 },
10 initialize: function() {
11 }
12});
13
14var Text = BaseType.extend({
15 defaults: {
16 data: "",
17 },
18 initialize: function() {
19 }
20});
21
22var TextView = Backbone.View.extend({
23 tagName: 'div',
24 className: '',
25 initialize: function() {
26 _.bindAll(this);
27 _.bind(this.render, this);
28 },
29 render: function(el) {
30 $(el).append(this.el);
31 var str = '<h4>'+ this.model.get('title') +'</h4> <p>' +
32 this.model.get('data') + '</p>';
33 $(this.el).html(str);
34 M.appendAttrs(this.model, this.el);
35 }
36});
37
38var Table = BaseType.extend({
39 defaults: {
40 data : {
41 th: [],
42 tr:[]
43 }
44 },
45 initialize: function() {
46 }
47});
48
49var TableView = Backbone.View.extend({
50 tagName: 'table',
51 className: 'table',
52 initialize: function() {
53 _.bindAll(this);
54 _.bind(this.render, this);
55 },
56 render: function(el) {
57 var heading = this.model.get('data').th;
58 var str = '<tr>';
59
60 for(var i = 0; i < heading.length; i++) {
61 str += '<th>' + heading[i] + '</th>';
62 }
63 str += '</tr>';
64
65 _.each(this.model.get('data').tr, function(row) {
66 str += '<tr>';
67 for(var i = 0; i < row.length; i++) {
68 if(row[i].match(/http.?:/)) {
69 //console.log(row[i].match(/http:/))
70 }
71 str += '<td>'+ row[i] + '</td>';
72 }
73 str += '</tr>';
74 });
75
76 $(el).append(this.el);
77 $(this.el).html(str);
78 M.appendAttrs(this.model, this.el);
79 }
80});
81
82var Image = BaseType.extend({
83 defaults: {
84 src: ""
85 },
86 initialize:function() {
87 }
88});
89
90var ImageView = Backbone.View.extend({
91 tagName: 'image',
92 className: '',
93
94 initialize: function() {
95 _.bindAll(this);
96 _.bind(this.render, this);
97 },
98 render: function(el) {
99 $(el).append(this.el);
100 $(this.el).attr('src', this.model.get('src'));
101 M.appendAttrs(this.model, this.el);
102 }
103});
104
105
106var Video = BaseType.extend({
107 defaults: {
108 src: ""
109 },
110 initialize:function() {
111 }
112});
113
114var VideoView = Backbone.View.extend({
115 initialize: function() {
116 _.bindAll(this);
117 _.bind(this.render, this);
118 // assuming cross-domain urls will have http in the src,
119 // so also assuming they are embedded flash urls,
120 // hence iframe
121 if(this.model.get('src').match('http')) {
122 this.tagName = 'iframe';
123 }
124 // otherwise, use html5 video tag, if the video is served
125 // from the same domain
126 else {
127 this.tagName = 'video';
128 }
129 },
130 render: function(el) {
131 $(el).append(this.el);
132 $(this.el).attr('src', this.model.get('src'));
133 M.appendAttrs(this.model, this.el);
134 }
135});
136
137var RSS = BaseType.extend({
138 defaults: {
139 src: ""
140 },
141 initialize:function() {
142 }
143});
144
145var RSSView = Backbone.View.extend({
146 el: '#feeds',
147 initialize: function() {
148 _.bindAll(this);
149 _.bind(this.render, this);
150 },
151 render: function() {
152 M.populateFeeds(this.model.get('src'));
153 }
154});
155
156// Plugin model can be used to load dynamic components
157// to the website by loading external JS files.
158// Also the website can be styled by using external CSS files,
159// which can also be loaded via this plugin model.
160var Plugin = BaseType.extend({
161 defaults: {
162 src: "",
163 data: {},
164 callback: ""
165 },
166 initialize: function() {
167 if(this.get('src').match(/\.js/)) {
168 var script = document.createElement('script');
169 var callback = this.get('callback');
170 script.src = this.get('src');
171 document.body.appendChild(script);
172 script.onload = function() {
173 eval(callback);
174 };
175 }
176 else if(this.get('src').match(/\.css/)) {
177 var link = document.createElement('link');
178 link.rel = 'stylesheet';
179 link.href = this.get('src');
180 link.type = 'text/css';
181 document.body.appendChild(link);
182 }
183 }
184});
185
186var PluginView = Backbone.View.extend({
187 initialize: function() {
188 return;
189 },
190 render: function(el) {
191 return;
192 }
193});
194
195var type_map;
196M.type_map = type_map = {
197 model : {
198 'text': Text,
199 'image': Image,
200 'video': Video,
201 'rss': RSS,
202 'table': Table,
203 'plugin': Plugin
204 },
205 view: {
206 'text': TextView,
207 'image': ImageView,
208 'video': VideoView,
209 'rss': RSSView,
210 'table': TableView,
211 'plugin': PluginView
212 }
213};
214
215// var Media = Backbone.Model.extend({
216// defaults:{
217// "audio": new Audio() ,
218// "video": new Video(),
219// "image": new Image()
220// }
221
222// });
223
224var Texts = Backbone.Collection.extend({model: Text});
225var Images = Backbone.Collection.extend({model: Image});
226var Videos = Backbone.Collection.extend({model: Video});
227var RSSs = Backbone.Collection.extend({model: RSS});
228
229
230var Page = Backbone.Model.extend({
231 defaults: {
232 name: "index",
233 title: "",
234 children: [],
235 content: []
236 },
237 initialize: function() {
238 // adding the name of the model as its id.
239 // look up of this model through the collection
240 // is faster this way.
241 this.set({id: M.sanitize(this.get('name'))});
242 }
243});
244
245
246var Pages = Backbone.Collection.extend({
247 model: Page
248});
249
250var PageView = Backbone.View.extend({
251 tagName: 'div',
252 className: 'page',
253 initialize: function() {
254 _.bindAll(this);
255 _.bind(this.render, this);
256 this.render();
257 $(this.el).hide();
258 },
259 render: function() {
260 $('#content-container').append(this.el);
261 $(this.el).append('<h3>'+this.model.get('title')+'</h3>');
262 var self = this;
263 _.each(this.model.get('content'), function(item) {
264 var view = type_map.view[item.get('type')];
265 if(!view) {
266 console.log('Error initing view', item);
267 return;
268 }
269 if(item.get('type') === 'rss') {
270 M.rss_view = new view({model: item});
271 $(self.el).append(_.template($('#news-template').html()));
272 }
273 else {
274 var item_view = new view({model: item});
275 item_view.render(self.el);
276 }
277 });
278 }
279});
280
281var AppView = Backbone.View.extend({
282 el: 'body',
283 events: {
284 'click .nav li a' : 'navClicked'
285 },
286 initialize: function() {
287 _.bindAll(this);
288 },
289 render: function() {
290 M.createNavigation();
291 $('#index').show();
292 },
293 navClicked: function(event) {
294 $('.nav li').removeClass('active');
295 $(event.currentTarget).parent().addClass('active');
296 }
297});
298
299var AppRouter = Backbone.Router.extend({
300 routes : {
301 'index' : 'index',
302 ':page' : 'showPage'
303 },
304 index: function() {
305 $('.page').hide();
306 $('#index').show();
307 },
308 showPage: function(page) {
309 $('.page').hide();
310 //news pages are rendered on the fly,
311 //as feeds have to be fetched.
312 if(page === 'news') {
313 M.rss_view.render();
314 }
315 $('#'+page).show();
316 $('.'+page).show();
317 }
318});
319
320/* Defining other necessary functions */
321M.init = function() {
322 M.tags = {}; //global tag cache
323 M.pages = new Pages(); //global collection of all pages
324
325 // iterate through the JSON to intialize models and views
326 _.each(M.site_content, function(page) {
327 var new_page = new Page(page);
328 var contents = [];
329 _.each(page.content, function(content) {
330 var Item = type_map.model[content.type];
331 if(!Item) {
332 console.log('Error initing item: ', content);
333 return;
334 }
335 var item = new Item(content);
336 contents.push(item);
337 });
338 new_page.set({content: contents});
339 var new_page_view = new PageView({model: new_page,
340 id: new_page.get('id')});
341 M.pages.add(new_page);
342 });
343
344 M.appView = new AppView();
345 M.appView.render();
346 var app_router = new AppRouter();
347 Backbone.history.start();
348 // start with index page
349 //app_router.index();
350 M.simHeir();
351};
352
353// hack to simulate heirarchy among the page views
354// basically add the parent id as class in all of its children
355// elements.
356M.simHeir = function() {
357 _.each(M.pages.models, function(page) {
358 if(page.id == 'index') return;
359 _.each(page.get('children'), function(child) {
360 child = M.sanitize(child);
361 $('#'+child).addClass(page.id);
362 });
363 });
364};
365
366
367// append attributes to elements from the model
368M.appendAttrs = function(model, el) {
369 _.each(model.get('attr'), function(val, key) {
370 $(el).attr(key, val);
371 });
372}
373
374//Helper method for making a list of id associated to tag
375 M.createTagList = function(item,x)
376 {
377
378 for(var i in item['tags'])
379 {
380 if( M.tags[item['tags'][i]] === undefined)
381 {
382 M.tags[item['tags'][i]] = [];
383 M.tags[item['tags'][i]].push(x);
384 }
385 else
386 M.tags[item['tags'][i]].push(x);
387 }
388 };
389
390//create navigational links
391M.createNavigation = function() {
392 var top_level = M.pages.get('index').get('children');
393 $('<li class="active"><a href="#/index">Home</a></li>').appendTo('.nav');;
394 _.each(top_level, function(child) {
395 child = M.sanitize(child);
396 var children = M.pages.get(child).get('children');
397 var page = M.pages.get(child);
398 var dropdown_template = _.template($('#nav-dropdown-template').html());
399 if(_.isEmpty(children)) {
400 li = '<li><a href="#/' + child + '">'+ M.humanReadable(child) +'</a></li>';
401 }
402 else {
403 li = dropdown_template({
404 //no: page.cid,
405 name: M.humanReadable(page.get('name')),
406 list: _.map(children, M.humanReadable)
407 });
408 }
409 $(li).appendTo('.nav');
410 });
411};
412
413// populate with news feeds in the news section
414// gets the feeds from server side script 'feed.py'
415M.populateFeeds = function(rss_url) {
416 $('#feeds-loader').show();
417 $('.news-item-wrapper').remove();
418 jQuery.getFeed({
419 url: 'feeds',
420 type: 'GET',
421 data: "rss_url="+encodeURIComponent(rss_url),
422 success: function(feed) {
423 $('#feeds-loader').hide();
424 var template = _.template($('#news-item-template').html());
425 _.each(feed.items, function(item) {
426 x = $('#feeds').append(template({
427 title: item.title,
428 link: item.link
429 }));
430 });
431 },
432 error: function(err) {
433 $('#feeds-loader').hide();
434 $('#feeds').append('Oops, something went wrong! <br/> Please try again.');
435 }
436 });
437};
438
439/* Other helper functions */
440
441M.contentList = []; //A list to hold out filtered content objects.
442
443//Check for the tags and return only those "content" objects which match a given tag.
444M.checkTags = function(tags){
445 if(_.isArray(tags))
446 {
447 var list = [];
448 _.each(tags,function(item){
449 list.push(M.tags[item]);
450 });
451 return _.uniq(list);
452 }
453 else
454 return false; //Failure code, the function will only accept a list as input
455};
456
457// change all '-' to spaces and capitalize first letter of
458// every word
459M.humanReadable = function(str) {
460 if(typeof str !== "string") {
461 str = '';
462 }
463 return '' + str.replace(/[-]+/g, ' ').replace(/[^\s]+/g, function(str) {
464 //return '' + str.replace(/[-]+/g, ' ').replace(/([A-Z])/g, function(s) { return ' '+s;}).replace(/[^\s]+/g, function(str) {
465 return str.substr(0,1).toUpperCase() + str.substr(1).toLowerCase();
466 });
467};
468
469// change all spaces to '-' and everything to lowercase
470M.sanitize = function(str) {
471 if(typeof str !== "string") {
472 str = '';
473 }
474 return '' + str.replace(/[\s]+/g,'-').replace(/[^\s]+/g, function(str) {
475 //TODO: handle special characters!
476 return str.replace('&', 'and').toLowerCase();
477 });
478};
479
480
481// Loader
482M.load = function(content_url) {
483 if(typeof content_url !== 'string') {
484 console.error('URL to load has to be of type string!!');//TODO: raise custom exception
485 return;
486 }
487 $.getJSON(content_url, function(data) {
488 M.site_content = data;
489 M.init();
490 });
491};
492
493})(M);

js/vendor/jquery-1.8.0.min.js

1/*! jQuery v@1.8.0 jquery.com | jquery.org/license */
2(function(a,b){function G(a){var b=F[a]={};return p.each(a.split(s),function(a,c){b[c]=!0}),b}function J(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(I,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:+d+""===d?+d:H.test(d)?p.parseJSON(d):d}catch(f){}p.data(a,c,d)}else d=b}return d}function K(a){var b;for(b in a){if(b==="data"&&p.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function ba(){return!1}function bb(){return!0}function bh(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function bi(a,b){do a=a[b];while(a&&a.nodeType!==1);return a}function bj(a,b,c){b=b||0;if(p.isFunction(b))return p.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return p.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=p.grep(a,function(a){return a.nodeType===1});if(be.test(b))return p.filter(b,d,!c);b=p.filter(b,d)}return p.grep(a,function(a,d){return p.inArray(a,b)>=0===c})}function bk(a){var b=bl.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}function bC(a,b){return a.getElementsByTagName(b)[0]||a.appendChild(a.ownerDocument.createElement(b))}function bD(a,b){if(b.nodeType!==1||!p.hasData(a))return;var c,d,e,f=p._data(a),g=p._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;d<e;d++)p.event.add(b,c,h[c][d])}g.data&&(g.data=p.extend({},g.data))}function bE(a,b){var c;if(b.nodeType!==1)return;b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase(),c==="object"?(b.parentNode&&(b.outerHTML=a.outerHTML),p.support.html5Clone&&a.innerHTML&&!p.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):c==="input"&&bv.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):c==="option"?b.selected=a.defaultSelected:c==="input"||c==="textarea"?b.defaultValue=a.defaultValue:c==="script"&&b.text!==a.text&&(b.text=a.text),b.removeAttribute(p.expando)}function bF(a){return typeof a.getElementsByTagName!="undefined"?a.getElementsByTagName("*"):typeof a.querySelectorAll!="undefined"?a.querySelectorAll("*"):[]}function bG(a){bv.test(a.type)&&(a.defaultChecked=a.checked)}function bX(a,b){if(b in a)return b;var c=b.charAt(0).toUpperCase()+b.slice(1),d=b,e=bV.length;while(e--){b=bV[e]+c;if(b in a)return b}return d}function bY(a,b){return a=b||a,p.css(a,"display")==="none"||!p.contains(a.ownerDocument,a)}function bZ(a,b){var c,d,e=[],f=0,g=a.length;for(;f<g;f++){c=a[f];if(!c.style)continue;e[f]=p._data(c,"olddisplay"),b?(!e[f]&&c.style.display==="none"&&(c.style.display=""),c.style.display===""&&bY(c)&&(e[f]=p._data(c,"olddisplay",cb(c.nodeName)))):(d=bH(c,"display"),!e[f]&&d!=="none"&&p._data(c,"olddisplay",d))}for(f=0;f<g;f++){c=a[f];if(!c.style)continue;if(!b||c.style.display==="none"||c.style.display==="")c.style.display=b?e[f]||"":"none"}return a}function b$(a,b,c){var d=bO.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function b_(a,b,c,d){var e=c===(d?"border":"content")?4:b==="width"?1:0,f=0;for(;e<4;e+=2)c==="margin"&&(f+=p.css(a,c+bU[e],!0)),d?(c==="content"&&(f-=parseFloat(bH(a,"padding"+bU[e]))||0),c!=="margin"&&(f-=parseFloat(bH(a,"border"+bU[e]+"Width"))||0)):(f+=parseFloat(bH(a,"padding"+bU[e]))||0,c!=="padding"&&(f+=parseFloat(bH(a,"border"+bU[e]+"Width"))||0));return f}function ca(a,b,c){var d=b==="width"?a.offsetWidth:a.offsetHeight,e=!0,f=p.support.boxSizing&&p.css(a,"boxSizing")==="border-box";if(d<=0){d=bH(a,b);if(d<0||d==null)d=a.style[b];if(bP.test(d))return d;e=f&&(p.support.boxSizingReliable||d===a.style[b]),d=parseFloat(d)||0}return d+b_(a,b,c||(f?"border":"content"),e)+"px"}function cb(a){if(bR[a])return bR[a];var b=p("<"+a+">").appendTo(e.body),c=b.css("display");b.remove();if(c==="none"||c===""){bI=e.body.appendChild(bI||p.extend(e.createElement("iframe"),{frameBorder:0,width:0,height:0}));if(!bJ||!bI.createElement)bJ=(bI.contentWindow||bI.contentDocument).document,bJ.write("<!doctype html><html><body>"),bJ.close();b=bJ.body.appendChild(bJ.createElement(a)),c=bH(b,"display"),e.body.removeChild(bI)}return bR[a]=c,c}function ch(a,b,c,d){var e;if(p.isArray(b))p.each(b,function(b,e){c||cd.test(a)?d(a,e):ch(a+"["+(typeof e=="object"?b:"")+"]",e,c,d)});else if(!c&&p.type(b)==="object")for(e in b)ch(a+"["+e+"]",b[e],c,d);else d(a,b)}function cy(a){return function(b,c){typeof b!="string"&&(c=b,b="*");var d,e,f,g=b.toLowerCase().split(s),h=0,i=g.length;if(p.isFunction(c))for(;h<i;h++)d=g[h],f=/^\+/.test(d),f&&(d=d.substr(1)||"*"),e=a[d]=a[d]||[],e[f?"unshift":"push"](c)}}function cz(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h,i=a[f],j=0,k=i?i.length:0,l=a===cu;for(;j<k&&(l||!h);j++)h=i[j](c,d,e),typeof h=="string"&&(!l||g[h]?h=b:(c.dataTypes.unshift(h),h=cz(a,c,d,e,h,g)));return(l||!h)&&!g["*"]&&(h=cz(a,c,d,e,"*",g)),h}function cA(a,c){var d,e,f=p.ajaxSettings.flatOptions||{};for(d in c)c[d]!==b&&((f[d]?a:e||(e={}))[d]=c[d]);e&&p.extend(!0,a,e)}function cB(a,c,d){var e,f,g,h,i=a.contents,j=a.dataTypes,k=a.responseFields;for(f in k)f in d&&(c[k[f]]=d[f]);while(j[0]==="*")j.shift(),e===b&&(e=a.mimeType||c.getResponseHeader("content-type"));if(e)for(f in i)if(i[f]&&i[f].test(e)){j.unshift(f);break}if(j[0]in d)g=j[0];else{for(f in d){if(!j[0]||a.converters[f+" "+j[0]]){g=f;break}h||(h=f)}g=g||h}if(g)return g!==j[0]&&j.unshift(g),d[g]}function cC(a,b){var c,d,e,f,g=a.dataTypes.slice(),h=g[0],i={},j=0;a.dataFilter&&(b=a.dataFilter(b,a.dataType));if(g[1])for(c in a.converters)i[c.toLowerCase()]=a.converters[c];for(;e=g[++j];)if(e!=="*"){if(h!=="*"&&h!==e){c=i[h+" "+e]||i["* "+e];if(!c)for(d in i){f=d.split(" ");if(f[1]===e){c=i[h+" "+f[0]]||i["* "+f[0]];if(c){c===!0?c=i[d]:i[d]!==!0&&(e=f[0],g.splice(j--,0,e));break}}}if(c!==!0)if(c&&a["throws"])b=c(b);else try{b=c(b)}catch(k){return{state:"parsererror",error:c?k:"No conversion from "+h+" to "+e}}}h=e}return{state:"success",data:b}}function cK(){try{return new a.XMLHttpRequest}catch(b){}}function cL(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function cT(){return setTimeout(function(){cM=b},0),cM=p.now()}function cU(a,b){p.each(b,function(b,c){var d=(cS[b]||[]).concat(cS["*"]),e=0,f=d.length;for(;e<f;e++)if(d[e].call(a,b,c))return})}function cV(a,b,c){var d,e=0,f=0,g=cR.length,h=p.Deferred().always(function(){delete i.elem}),i=function(){var b=cM||cT(),c=Math.max(0,j.startTime+j.duration-b),d=1-(c/j.duration||0),e=0,f=j.tweens.length;for(;e<f;e++)j.tweens[e].run(d);return h.notifyWith(a,[j,d,c]),d<1&&f?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:p.extend({},b),opts:p.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:cM||cT(),duration:c.duration,tweens:[],createTween:function(b,c,d){var e=p.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(e),e},stop:function(b){var c=0,d=b?j.tweens.length:0;for(;c<d;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;cW(k,j.opts.specialEasing);for(;e<g;e++){d=cR[e].call(j,a,k,j.opts);if(d)return d}return cU(j,k),p.isFunction(j.opts.start)&&j.opts.start.call(a,j),p.fx.timer(p.extend(i,{anim:j,queue:j.opts.queue,elem:a})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}function cW(a,b){var c,d,e,f,g;for(c in a){d=p.camelCase(c),e=b[d],f=a[c],p.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=p.cssHooks[d];if(g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}}function cX(a,b,c){var d,e,f,g,h,i,j,k,l=this,m=a.style,n={},o=[],q=a.nodeType&&bY(a);c.queue||(j=p._queueHooks(a,"fx"),j.unqueued==null&&(j.unqueued=0,k=j.empty.fire,j.empty.fire=function(){j.unqueued||k()}),j.unqueued++,l.always(function(){l.always(function(){j.unqueued--,p.queue(a,"fx").length||j.empty.fire()})})),a.nodeType===1&&("height"in b||"width"in b)&&(c.overflow=[m.overflow,m.overflowX,m.overflowY],p.css(a,"display")==="inline"&&p.css(a,"float")==="none"&&(!p.support.inlineBlockNeedsLayout||cb(a.nodeName)==="inline"?m.display="inline-block":m.zoom=1)),c.overflow&&(m.overflow="hidden",p.support.shrinkWrapBlocks||l.done(function(){m.overflow=c.overflow[0],m.overflowX=c.overflow[1],m.overflowY=c.overflow[2]}));for(d in b){f=b[d];if(cO.exec(f)){delete b[d];if(f===(q?"hide":"show"))continue;o.push(d)}}g=o.length;if(g){h=p._data(a,"fxshow")||p._data(a,"fxshow",{}),q?p(a).show():l.done(function(){p(a).hide()}),l.done(function(){var b;p.removeData(a,"fxshow",!0);for(b in n)p.style(a,b,n[b])});for(d=0;d<g;d++)e=o[d],i=l.createTween(e,q?h[e]:0),n[e]=h[e]||p.style(a,e),e in h||(h[e]=i.start,q&&(i.end=i.start,i.start=e==="width"||e==="height"?1:0))}}function cY(a,b,c,d,e){return new cY.prototype.init(a,b,c,d,e)}function cZ(a,b){var c,d={height:a},e=0;for(;e<4;e+=2-b)c=bU[e],d["margin"+c]=d["padding"+c]=a;return b&&(d.opacity=d.width=a),d}function c_(a){return p.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}var c,d,e=a.document,f=a.location,g=a.navigator,h=a.jQuery,i=a.$,j=Array.prototype.push,k=Array.prototype.slice,l=Array.prototype.indexOf,m=Object.prototype.toString,n=Object.prototype.hasOwnProperty,o=String.prototype.trim,p=function(a,b){return new p.fn.init(a,b,c)},q=/[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source,r=/\S/,s=/\s+/,t=r.test(" ")?/^[\s\xA0]+|[\s\xA0]+$/g:/^\s+|\s+$/g,u=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^[\],:{}\s]*$/,x=/(?:^|:|,)(?:\s*\[)+/g,y=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,z=/"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,A=/^-ms-/,B=/-([\da-z])/gi,C=function(a,b){return(b+"").toUpperCase()},D=function(){e.addEventListener?(e.removeEventListener("DOMContentLoaded",D,!1),p.ready()):e.readyState==="complete"&&(e.detachEvent("onreadystatechange",D),p.ready())},E={};p.fn=p.prototype={constructor:p,init:function(a,c,d){var f,g,h,i;if(!a)return this;if(a.nodeType)return this.context=this[0]=a,this.length=1,this;if(typeof a=="string"){a.charAt(0)==="<"&&a.charAt(a.length-1)===">"&&a.length>=3?f=[null,a,null]:f=u.exec(a);if(f&&(f[1]||!c)){if(f[1])return c=c instanceof p?c[0]:c,i=c&&c.nodeType?c.ownerDocument||c:e,a=p.parseHTML(f[1],i,!0),v.test(f[1])&&p.isPlainObject(c)&&this.attr.call(a,c,!0),p.merge(this,a);g=e.getElementById(f[2]);if(g&&g.parentNode){if(g.id!==f[2])return d.find(a);this.length=1,this[0]=g}return this.context=e,this.selector=a,this}return!c||c.jquery?(c||d).find(a):this.constructor(c).find(a)}return p.isFunction(a)?d.ready(a):(a.selector!==b&&(this.selector=a.selector,this.context=a.context),p.makeArray(a,this))},selector:"",jquery:"1.8.0",length:0,size:function(){return this.length},toArray:function(){return k.call(this)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=p.merge(this.constructor(),a);return d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")"),d},each:function(a,b){return p.each(this,a,b)},ready:function(a){return p.ready.promise().done(a),this},eq:function(a){return a=+a,a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(k.apply(this,arguments),"slice",k.call(arguments).join(","))},map:function(a){return this.pushStack(p.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:j,sort:[].sort,splice:[].splice},p.fn.init.prototype=p.fn,p.extend=p.fn.extend=function(){var a,c,d,e,f,g,h=arguments[0]||{},i=1,j=arguments.length,k=!1;typeof h=="boolean"&&(k=h,h=arguments[1]||{},i=2),typeof h!="object"&&!p.isFunction(h)&&(h={}),j===i&&(h=this,--i);for(;i<j;i++)if((a=arguments[i])!=null)for(c in a){d=h[c],e=a[c];if(h===e)continue;k&&e&&(p.isPlainObject(e)||(f=p.isArray(e)))?(f?(f=!1,g=d&&p.isArray(d)?d:[]):g=d&&p.isPlainObject(d)?d:{},h[c]=p.extend(k,g,e)):e!==b&&(h[c]=e)}return h},p.extend({noConflict:function(b){return a.$===p&&(a.$=i),b&&a.jQuery===p&&(a.jQuery=h),p},isReady:!1,readyWait:1,holdReady:function(a){a?p.readyWait++:p.ready(!0)},ready:function(a){if(a===!0?--p.readyWait:p.isReady)return;if(!e.body)return setTimeout(p.ready,1);p.isReady=!0;if(a!==!0&&--p.readyWait>0)return;d.resolveWith(e,[p]),p.fn.trigger&&p(e).trigger("ready").off("ready")},isFunction:function(a){return p.type(a)==="function"},isArray:Array.isArray||function(a){return p.type(a)==="array"},isWindow:function(a){return a!=null&&a==a.window},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):E[m.call(a)]||"object"},isPlainObject:function(a){if(!a||p.type(a)!=="object"||a.nodeType||p.isWindow(a))return!1;try{if(a.constructor&&!n.call(a,"constructor")&&!n.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||n.call(a,d)},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},error:function(a){throw new Error(a)},parseHTML:function(a,b,c){var d;return!a||typeof a!="string"?null:(typeof b=="boolean"&&(c=b,b=0),b=b||e,(d=v.exec(a))?[b.createElement(d[1])]:(d=p.buildFragment([a],b,c?null:[]),p.merge([],(d.cacheable?p.clone(d.fragment):d.fragment).childNodes)))},parseJSON:function(b){if(!b||typeof b!="string")return null;b=p.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(w.test(b.replace(y,"@").replace(z,"]").replace(x,"")))return(new Function("return "+b))();p.error("Invalid JSON: "+b)},parseXML:function(c){var d,e;if(!c||typeof c!="string")return null;try{a.DOMParser?(e=new DOMParser,d=e.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(f){d=b}return(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&p.error("Invalid XML: "+c),d},noop:function(){},globalEval:function(b){b&&r.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(A,"ms-").replace(B,C)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var e,f=0,g=a.length,h=g===b||p.isFunction(a);if(d){if(h){for(e in a)if(c.apply(a[e],d)===!1)break}else for(;f<g;)if(c.apply(a[f++],d)===!1)break}else if(h){for(e in a)if(c.call(a[e],e,a[e])===!1)break}else for(;f<g;)if(c.call(a[f],f,a[f++])===!1)break;return a},trim:o?function(a){return a==null?"":o.call(a)}:function(a){return a==null?"":a.toString().replace(t,"")},makeArray:function(a,b){var c,d=b||[];return a!=null&&(c=p.type(a),a.length==null||c==="string"||c==="function"||c==="regexp"||p.isWindow(a)?j.call(d,a):p.merge(d,a)),d},inArray:function(a,b,c){var d;if(b){if(l)return l.call(b,a,c);d=b.length,c=c?c<0?Math.max(0,d+c):c:0;for(;c<d;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,c){var d=c.length,e=a.length,f=0;if(typeof d=="number")for(;f<d;f++)a[e++]=c[f];else while(c[f]!==b)a[e++]=c[f++];return a.length=e,a},grep:function(a,b,c){var d,e=[],f=0,g=a.length;c=!!c;for(;f<g;f++)d=!!b(a[f],f),c!==d&&e.push(a[f]);return e},map:function(a,c,d){var e,f,g=[],h=0,i=a.length,j=a instanceof p||i!==b&&typeof i=="number"&&(i>0&&a[0]&&a[i-1]||i===0||p.isArray(a));if(j)for(;h<i;h++)e=c(a[h],h,d),e!=null&&(g[g.length]=e);else for(f in a)e=c(a[f],f,d),e!=null&&(g[g.length]=e);return g.concat.apply([],g)},guid:1,proxy:function(a,c){var d,e,f;return typeof c=="string"&&(d=a[c],c=a,a=d),p.isFunction(a)?(e=k.call(arguments,2),f=function(){return a.apply(c,e.concat(k.call(arguments)))},f.guid=a.guid=a.guid||f.guid||p.guid++,f):b},access:function(a,c,d,e,f,g,h){var i,j=d==null,k=0,l=a.length;if(d&&typeof d=="object"){for(k in d)p.access(a,c,k,d[k],1,g,e);f=1}else if(e!==b){i=h===b&&p.isFunction(e),j&&(i?(i=c,c=function(a,b,c){return i.call(p(a),c)}):(c.call(a,e),c=null));if(c)for(;k<l;k++)c(a[k],d,i?e.call(a[k],k,c(a[k],d)):e,h);f=1}return f?a:j?c.call(a):l?c(a[0],d):g},now:function(){return(new Date).getTime()}}),p.ready.promise=function(b){if(!d){d=p.Deferred();if(e.readyState==="complete"||e.readyState!=="loading"&&e.addEventListener)setTimeout(p.ready,1);else if(e.addEventListener)e.addEventListener("DOMContentLoaded",D,!1),a.addEventListener("load",p.ready,!1);else{e.attachEvent("onreadystatechange",D),a.attachEvent("onload",p.ready);var c=!1;try{c=a.frameElement==null&&e.documentElement}catch(f){}c&&c.doScroll&&function g(){if(!p.isReady){try{c.doScroll("left")}catch(a){return setTimeout(g,50)}p.ready()}}()}}return d.promise(b)},p.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){E["[object "+b+"]"]=b.toLowerCase()}),c=p(e);var F={};p.Callbacks=function(a){a=typeof a=="string"?F[a]||G(a):p.extend({},a);var c,d,e,f,g,h,i=[],j=!a.once&&[],k=function(b){c=a.memory&&b,d=!0,h=f||0,f=0,g=i.length,e=!0;for(;i&&h<g;h++)if(i[h].apply(b[0],b[1])===!1&&a.stopOnFalse){c=!1;break}e=!1,i&&(j?j.length&&k(j.shift()):c?i=[]:l.disable())},l={add:function(){if(i){var b=i.length;(function d(b){p.each(b,function(b,c){p.isFunction(c)&&(!a.unique||!l.has(c))?i.push(c):c&&c.length&&d(c)})})(arguments),e?g=i.length:c&&(f=b,k(c))}return this},remove:function(){return i&&p.each(arguments,function(a,b){var c;while((c=p.inArray(b,i,c))>-1)i.splice(c,1),e&&(c<=g&&g--,c<=h&&h--)}),this},has:function(a){return p.inArray(a,i)>-1},empty:function(){return i=[],this},disable:function(){return i=j=c=b,this},disabled:function(){return!i},lock:function(){return j=b,c||l.disable(),this},locked:function(){return!j},fireWith:function(a,b){return b=b||[],b=[a,b.slice?b.slice():b],i&&(!d||j)&&(e?j.push(b):k(b)),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!d}};return l},p.extend({Deferred:function(a){var b=[["resolve","done",p.Callbacks("once memory"),"resolved"],["reject","fail",p.Callbacks("once memory"),"rejected"],["notify","progress",p.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return p.Deferred(function(c){p.each(b,function(b,d){var f=d[0],g=a[b];e[d[1]](p.isFunction(g)?function(){var a=g.apply(this,arguments);a&&p.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f+"With"](this===e?c:this,[a])}:c[f])}),a=null}).promise()},promise:function(a){return typeof a=="object"?p.extend(a,d):d}},e={};return d.pipe=d.then,p.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[a^1][2].disable,b[2][2].lock),e[f[0]]=g.fire,e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=k.call(arguments),d=c.length,e=d!==1||a&&p.isFunction(a.promise)?d:0,f=e===1?a:p.Deferred(),g=function(a,b,c){return function(d){b[a]=this,c[a]=arguments.length>1?k.call(arguments):d,c===h?f.notifyWith(b,c):--e||f.resolveWith(b,c)}},h,i,j;if(d>1){h=new Array(d),i=new Array(d),j=new Array(d);for(;b<d;b++)c[b]&&p.isFunction(c[b].promise)?c[b].promise().done(g(b,j,c)).fail(f.reject).progress(g(b,i,h)):--e}return e||f.resolveWith(j,c),f.promise()}}),p.support=function(){var b,c,d,f,g,h,i,j,k,l,m,n=e.createElement("div");n.setAttribute("className","t"),n.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",c=n.getElementsByTagName("*"),d=n.getElementsByTagName("a")[0],d.style.cssText="top:1px;float:left;opacity:.5";if(!c||!c.length||!d)return{};f=e.createElement("select"),g=f.appendChild(e.createElement("option")),h=n.getElementsByTagName("input")[0],b={leadingWhitespace:n.firstChild.nodeType===3,tbody:!n.getElementsByTagName("tbody").length,htmlSerialize:!!n.getElementsByTagName("link").length,style:/top/.test(d.getAttribute("style")),hrefNormalized:d.getAttribute("href")==="/a",opacity:/^0.5/.test(d.style.opacity),cssFloat:!!d.style.cssFloat,checkOn:h.value==="on",optSelected:g.selected,getSetAttribute:n.className!=="t",enctype:!!e.createElement("form").enctype,html5Clone:e.createElement("nav").cloneNode(!0).outerHTML!=="<:nav></:nav>",boxModel:e.compatMode==="CSS1Compat",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},h.checked=!0,b.noCloneChecked=h.cloneNode(!0).checked,f.disabled=!0,b.optDisabled=!g.disabled;try{delete n.test}catch(o){b.deleteExpando=!1}!n.addEventListener&&n.attachEvent&&n.fireEvent&&(n.attachEvent("onclick",m=function(){b.noCloneEvent=!1}),n.cloneNode(!0).fireEvent("onclick"),n.detachEvent("onclick",m)),h=e.createElement("input"),h.value="t",h.setAttribute("type","radio"),b.radioValue=h.value==="t",h.setAttribute("checked","checked"),h.setAttribute("name","t"),n.appendChild(h),i=e.createDocumentFragment(),i.appendChild(n.lastChild),b.checkClone=i.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=h.checked,i.removeChild(h),i.appendChild(n);if(n.attachEvent)for(k in{submit:!0,change:!0,focusin:!0})j="on"+k,l=j in n,l||(n.setAttribute(j,"return;"),l=typeof n[j]=="function"),b[k+"Bubbles"]=l;return p(function(){var c,d,f,g,h="padding:0;margin:0;border:0;display:block;overflow:hidden;",i=e.getElementsByTagName("body")[0];if(!i)return;c=e.createElement("div"),c.style.cssText="visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px",i.insertBefore(c,i.firstChild),d=e.createElement("div"),c.appendChild(d),d.innerHTML="<table><tr><td></td><td>t</td></tr></table>",f=d.getElementsByTagName("td"),f[0].style.cssText="padding:0;margin:0;border:0;display:none",l=f[0].offsetHeight===0,f[0].style.display="",f[1].style.display="none",b.reliableHiddenOffsets=l&&f[0].offsetHeight===0,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",b.boxSizing=d.offsetWidth===4,b.doesNotIncludeMarginInBodyOffset=i.offsetTop!==1,a.getComputedStyle&&(b.pixelPosition=(a.getComputedStyle(d,null)||{}).top!=="1%",b.boxSizingReliable=(a.getComputedStyle(d,null)||{width:"4px"}).width==="4px",g=e.createElement("div"),g.style.cssText=d.style.cssText=h,g.style.marginRight=g.style.width="0",d.style.width="1px",d.appendChild(g),b.reliableMarginRight=!parseFloat((a.getComputedStyle(g,null)||{}).marginRight)),typeof d.style.zoom!="undefined"&&(d.innerHTML="",d.style.cssText=h+"width:1px;padding:1px;display:inline;zoom:1",b.inlineBlockNeedsLayout=d.offsetWidth===3,d.style.display="block",d.style.overflow="visible",d.innerHTML="<div></div>",d.firstChild.style.width="5px",b.shrinkWrapBlocks=d.offsetWidth!==3,c.style.zoom=1),i.removeChild(c),c=d=f=g=null}),i.removeChild(n),c=d=f=g=h=i=n=null,b}();var H=/^(?:\{.*\}|\[.*\])$/,I=/([A-Z])/g;p.extend({cache:{},deletedIds:[],uuid:0,expando:"jQuery"+(p.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){return a=a.nodeType?p.cache[a[p.expando]]:a[p.expando],!!a&&!K(a)},data:function(a,c,d,e){if(!p.acceptData(a))return;var f,g,h=p.expando,i=typeof c=="string",j=a.nodeType,k=j?p.cache:a,l=j?a[h]:a[h]&&h;if((!l||!k[l]||!e&&!k[l].data)&&i&&d===b)return;l||(j?a[h]=l=p.deletedIds.pop()||++p.uuid:l=h),k[l]||(k[l]={},j||(k[l].toJSON=p.noop));if(typeof c=="object"||typeof c=="function")e?k[l]=p.extend(k[l],c):k[l].data=p.extend(k[l].data,c);return f=k[l],e||(f.data||(f.data={}),f=f.data),d!==b&&(f[p.camelCase(c)]=d),i?(g=f[c],g==null&&(g=f[p.camelCase(c)])):g=f,g},removeData:function(a,b,c){if(!p.acceptData(a))return;var d,e,f,g=a.nodeType,h=g?p.cache:a,i=g?a[p.expando]:p.expando;if(!h[i])return;if(b){d=c?h[i]:h[i].data;if(d){p.isArray(b)||(b in d?b=[b]:(b=p.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,f=b.length;e<f;e++)delete d[b[e]];if(!(c?K:p.isEmptyObject)(d))return}}if(!c){delete h[i].data;if(!K(h[i]))return}g?p.cleanData([a],!0):p.support.deleteExpando||h!=h.window?delete h[i]:h[i]=null},_data:function(a,b,c){return p.data(a,b,c,!0)},acceptData:function(a){var b=a.nodeName&&p.noData[a.nodeName.toLowerCase()];return!b||b!==!0&&a.getAttribute("classid")===b}}),p.fn.extend({data:function(a,c){var d,e,f,g,h,i=this[0],j=0,k=null;if(a===b){if(this.length){k=p.data(i);if(i.nodeType===1&&!p._data(i,"parsedAttrs")){f=i.attributes;for(h=f.length;j<h;j++)g=f[j].name,g.indexOf("data-")===0&&(g=p.camelCase(g.substring(5)),J(i,g,k[g]));p._data(i,"parsedAttrs",!0)}}return k}return typeof a=="object"?this.each(function(){p.data(this,a)}):(d=a.split(".",2),d[1]=d[1]?"."+d[1]:"",e=d[1]+"!",p.access(this,function(c){if(c===b)return k=this.triggerHandler("getData"+e,[d[0]]),k===b&&i&&(k=p.data(i,a),k=J(i,a,k)),k===b&&d[1]?this.data(d[0]):k;d[1]=c,this.each(function(){var b=p(this);b.triggerHandler("setData"+e,d),p.data(this,a,c),b.triggerHandler("changeData"+e,d)})},null,c,arguments.length>1,null,!1))},removeData:function(a){return this.each(function(){p.removeData(this,a)})}}),p.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=p._data(a,b),c&&(!d||p.isArray(c)?d=p._data(a,b,p.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=p.queue(a,b),d=c.shift(),e=p._queueHooks(a,b),f=function(){p.dequeue(a,b)};d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),delete e.stop,d.call(a,f,e)),!c.length&&e&&e.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return p._data(a,c)||p._data(a,c,{empty:p.Callbacks("once memory").add(function(){p.removeData(a,b+"queue",!0),p.removeData(a,c,!0)})})}}),p.fn.extend({queue:function(a,c){var d=2;return typeof a!="string"&&(c=a,a="fx",d--),arguments.length<d?p.queue(this[0],a):c===b?this:this.each(function(){var b=p.queue(this,a,c);p._queueHooks(this,a),a==="fx"&&b[0]!=="inprogress"&&p.dequeue(this,a)})},dequeue:function(a){return this.each(function(){p.dequeue(this,a)})},delay:function(a,b){return a=p.fx?p.fx.speeds[a]||a:a,b=b||"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){var d,e=1,f=p.Deferred(),g=this,h=this.length,i=function(){--e||f.resolveWith(g,[g])};typeof a!="string"&&(c=a,a=b),a=a||"fx";while(h--)(d=p._data(g[h],a+"queueHooks"))&&d.empty&&(e++,d.empty.add(i));return i(),f.promise(c)}});var L,M,N,O=/[\t\r\n]/g,P=/\r/g,Q=/^(?:button|input)$/i,R=/^(?:button|input|object|select|textarea)$/i,S=/^a(?:rea|)$/i,T=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,U=p.support.getSetAttribute;p.fn.extend({attr:function(a,b){return p.access(this,p.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){p.removeAttr(this,a)})},prop:function(a,b){return p.access(this,p.prop,a,b,arguments.length>1)},removeProp:function(a){return a=p.propFix[a]||a,this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,f,g,h;if(p.isFunction(a))return this.each(function(b){p(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(s);for(c=0,d=this.length;c<d;c++){e=this[c];if(e.nodeType===1)if(!e.className&&b.length===1)e.className=a;else{f=" "+e.className+" ";for(g=0,h=b.length;g<h;g++)~f.indexOf(" "+b[g]+" ")||(f+=b[g]+" ");e.className=p.trim(f)}}}return this},removeClass:function(a){var c,d,e,f,g,h,i;if(p.isFunction(a))return this.each(function(b){p(this).removeClass(a.call(this,b,this.className))});if(a&&typeof a=="string"||a===b){c=(a||"").split(s);for(h=0,i=this.length;h<i;h++){e=this[h];if(e.nodeType===1&&e.className){d=(" "+e.className+" ").replace(O," ");for(f=0,g=c.length;f<g;f++)while(d.indexOf(" "+c[f]+" ")>-1)d=d.replace(" "+c[f]+" "," ");e.className=a?p.trim(d):""}}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";return p.isFunction(a)?this.each(function(c){p(this).toggleClass(a.call(this,c,this.className,b),b)}):this.each(function(){if(c==="string"){var e,f=0,g=p(this),h=b,i=a.split(s);while(e=i[f++])h=d?h:!g.hasClass(e),g[h?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&p._data(this,"__className__",this.className),this.className=this.className||a===!1?"":p._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ",c=0,d=this.length;for(;c<d;c++)if(this[c].nodeType===1&&(" "+this[c].className+" ").replace(O," ").indexOf(b)>-1)return!0;return!1},val:function(a){var c,d,e,f=this[0];if(!arguments.length){if(f)return c=p.valHooks[f.type]||p.valHooks[f.nodeName.toLowerCase()],c&&"get"in c&&(d=c.get(f,"value"))!==b?d:(d=f.value,typeof d=="string"?d.replace(P,""):d==null?"":d);return}return e=p.isFunction(a),this.each(function(d){var f,g=p(this);if(this.nodeType!==1)return;e?f=a.call(this,d,g.val()):f=a,f==null?f="":typeof f=="number"?f+="":p.isArray(f)&&(f=p.map(f,function(a){return a==null?"":a+""})),c=p.valHooks[this.type]||p.valHooks[this.nodeName.toLowerCase()];if(!c||!("set"in c)||c.set(this,f,"value")===b)this.value=f})}}),p.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,f=a.selectedIndex,g=[],h=a.options,i=a.type==="select-one";if(f<0)return null;c=i?f:0,d=i?f+1:h.length;for(;c<d;c++){e=h[c];if(e.selected&&(p.support.optDisabled?!e.disabled:e.getAttribute("disabled")===null)&&(!e.parentNode.disabled||!p.nodeName(e.parentNode,"optgroup"))){b=p(e).val();if(i)return b;g.push(b)}}return i&&!g.length&&h.length?p(h[f]).val():g},set:function(a,b){var c=p.makeArray(b);return p(a).find("option").each(function(){this.selected=p.inArray(p(this).val(),c)>=0}),c.length||(a.selectedIndex=-1),c}}},attrFn:{},attr:function(a,c,d,e){var f,g,h,i=a.nodeType;if(!a||i===3||i===8||i===2)return;if(e&&p.isFunction(p.fn[c]))return p(a)[c](d);if(typeof a.getAttribute=="undefined")return p.prop(a,c,d);h=i!==1||!p.isXMLDoc(a),h&&(c=c.toLowerCase(),g=p.attrHooks[c]||(T.test(c)?M:L));if(d!==b){if(d===null){p.removeAttr(a,c);return}return g&&"set"in g&&h&&(f=g.set(a,d,c))!==b?f:(a.setAttribute(c,""+d),d)}return g&&"get"in g&&h&&(f=g.get(a,c))!==null?f:(f=a.getAttribute(c),f===null?b:f)},removeAttr:function(a,b){var c,d,e,f,g=0;if(b&&a.nodeType===1){d=b.split(s);for(;g<d.length;g++)e=d[g],e&&(c=p.propFix[e]||e,f=T.test(e),f||p.attr(a,e,""),a.removeAttribute(U?e:c),f&&c in a&&(a[c]=!1))}},attrHooks:{type:{set:function(a,b){if(Q.test(a.nodeName)&&a.parentNode)p.error("type property can't be changed");else if(!p.support.radioValue&&b==="radio"&&p.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}},value:{get:function(a,b){return L&&p.nodeName(a,"button")?L.get(a,b):b in a?a.value:null},set:function(a,b,c){if(L&&p.nodeName(a,"button"))return L.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e,f,g,h=a.nodeType;if(!a||h===3||h===8||h===2)return;return g=h!==1||!p.isXMLDoc(a),g&&(c=p.propFix[c]||c,f=p.propHooks[c]),d!==b?f&&"set"in f&&(e=f.set(a,d,c))!==b?e:a[c]=d:f&&"get"in f&&(e=f.get(a,c))!==null?e:a[c]},propHooks:{tabIndex:{get:function(a){var c=a.getAttributeNode("tabindex");return c&&c.specified?parseInt(c.value,10):R.test(a.nodeName)||S.test(a.nodeName)&&a.href?0:b}}}}),M={get:function(a,c){var d,e=p.prop(a,c);return e===!0||typeof e!="boolean"&&(d=a.getAttributeNode(c))&&d.nodeValue!==!1?c.toLowerCase():b},set:function(a,b,c){var d;return b===!1?p.removeAttr(a,c):(d=p.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase())),c}},U||(N={name:!0,id:!0,coords:!0},L=p.valHooks.button={get:function(a,c){var d;return d=a.getAttributeNode(c),d&&(N[c]?d.value!=="":d.specified)?d.value:b},set:function(a,b,c){var d=a.getAttributeNode(c);return d||(d=e.createAttribute(c),a.setAttributeNode(d)),d.value=b+""}},p.each(["width","height"],function(a,b){p.attrHooks[b]=p.extend(p.attrHooks[b],{set:function(a,c){if(c==="")return a.setAttribute(b,"auto"),c}})}),p.attrHooks.contenteditable={get:L.get,set:function(a,b,c){b===""&&(b="false"),L.set(a,b,c)}}),p.support.hrefNormalized||p.each(["href","src","width","height"],function(a,c){p.attrHooks[c]=p.extend(p.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),p.support.style||(p.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),p.support.optSelected||(p.propHooks.selected=p.extend(p.propHooks.selected,{get:function(a){var b=a.parentNode;return b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex),null}})),p.support.enctype||(p.propFix.enctype="encoding"),p.support.checkOn||p.each(["radio","checkbox"],function(){p.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),p.each(["radio","checkbox"],function(){p.valHooks[this]=p.extend(p.valHooks[this],{set:function(a,b){if(p.isArray(b))return a.checked=p.inArray(p(a).val(),b)>=0}})});var V=/^(?:textarea|input|select)$/i,W=/^([^\.]*|)(?:\.(.+)|)$/,X=/(?:^|\s)hover(\.\S+|)\b/,Y=/^key/,Z=/^(?:mouse|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=function(a){return p.event.special.hover?a:a.replace(X,"mouseenter$1 mouseleave$1")};p.event={add:function(a,c,d,e,f){var g,h,i,j,k,l,m,n,o,q,r;if(a.nodeType===3||a.nodeType===8||!c||!d||!(g=p._data(a)))return;d.handler&&(o=d,d=o.handler,f=o.selector),d.guid||(d.guid=p.guid++),i=g.events,i||(g.events=i={}),h=g.handle,h||(g.handle=h=function(a){return typeof p!="undefined"&&(!a||p.event.triggered!==a.type)?p.event.dispatch.apply(h.elem,arguments):b},h.elem=a),c=p.trim(_(c)).split(" ");for(j=0;j<c.length;j++){k=W.exec(c[j])||[],l=k[1],m=(k[2]||"").split(".").sort(),r=p.event.special[l]||{},l=(f?r.delegateType:r.bindType)||l,r=p.event.special[l]||{},n=p.extend({type:l,origType:k[1],data:e,handler:d,guid:d.guid,selector:f,namespace:m.join(".")},o),q=i[l];if(!q){q=i[l]=[],q.delegateCount=0;if(!r.setup||r.setup.call(a,e,m,h)===!1)a.addEventListener?a.addEventListener(l,h,!1):a.attachEvent&&a.attachEvent("on"+l,h)}r.add&&(r.add.call(a,n),n.handler.guid||(n.handler.guid=d.guid)),f?q.splice(q.delegateCount++,0,n):q.push(n),p.event.global[l]=!0}a=null},global:{},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,q,r=p.hasData(a)&&p._data(a);if(!r||!(m=r.events))return;b=p.trim(_(b||"")).split(" ");for(f=0;f<b.length;f++){g=W.exec(b[f])||[],h=i=g[1],j=g[2];if(!h){for(h in m)p.event.remove(a,h+b[f],c,d,!0);continue}n=p.event.special[h]||{},h=(d?n.delegateType:n.bindType)||h,o=m[h]||[],k=o.length,j=j?new RegExp("(^|\\.)"+j.split(".").sort().join("\\.(?:.*\\.|)")+"(\\.|$)"):null;for(l=0;l<o.length;l++)q=o[l],(e||i===q.origType)&&(!c||c.guid===q.guid)&&(!j||j.test(q.namespace))&&(!d||d===q.selector||d==="**"&&q.selector)&&(o.splice(l--,1),q.selector&&o.delegateCount--,n.remove&&n.remove.call(a,q));o.length===0&&k!==o.length&&((!n.teardown||n.teardown.call(a,j,r.handle)===!1)&&p.removeEvent(a,h,r.handle),delete m[h])}p.isEmptyObject(m)&&(delete r.handle,p.removeData(a,"events",!0))},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,f,g){if(!f||f.nodeType!==3&&f.nodeType!==8){var h,i,j,k,l,m,n,o,q,r,s=c.type||c,t=[];if($.test(s+p.event.triggered))return;s.indexOf("!")>=0&&(s=s.slice(0,-1),i=!0),s.indexOf(".")>=0&&(t=s.split("."),s=t.shift(),t.sort());if((!f||p.event.customEvent[s])&&!p.event.global[s])return;c=typeof c=="object"?c[p.expando]?c:new p.Event(s,c):new p.Event(s),c.type=s,c.isTrigger=!0,c.exclusive=i,c.namespace=t.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+t.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,m=s.indexOf(":")<0?"on"+s:"";if(!f){h=p.cache;for(j in h)h[j].events&&h[j].events[s]&&p.event.trigger(c,d,h[j].handle.elem,!0);return}c.result=b,c.target||(c.target=f),d=d!=null?p.makeArray(d):[],d.unshift(c),n=p.event.special[s]||{};if(n.trigger&&n.trigger.apply(f,d)===!1)return;q=[[f,n.bindType||s]];if(!g&&!n.noBubble&&!p.isWindow(f)){r=n.delegateType||s,k=$.test(r+s)?f:f.parentNode;for(l=f;k;k=k.parentNode)q.push([k,r]),l=k;l===(f.ownerDocument||e)&&q.push([l.defaultView||l.parentWindow||a,r])}for(j=0;j<q.length&&!c.isPropagationStopped();j++)k=q[j][0],c.type=q[j][1],o=(p._data(k,"events")||{})[c.type]&&p._data(k,"handle"),o&&o.apply(k,d),o=m&&k[m],o&&p.acceptData(k)&&o.apply(k,d)===!1&&c.preventDefault();return c.type=s,!g&&!c.isDefaultPrevented()&&(!n._default||n._default.apply(f.ownerDocument,d)===!1)&&(s!=="click"||!p.nodeName(f,"a"))&&p.acceptData(f)&&m&&f[s]&&(s!=="focus"&&s!=="blur"||c.target.offsetWidth!==0)&&!p.isWindow(f)&&(l=f[m],l&&(f[m]=null),p.event.triggered=s,f[s](),p.event.triggered=b,l&&(f[m]=l)),c.result}return},dispatch:function(c){c=p.event.fix(c||a.event);var d,e,f,g,h,i,j,k,l,m,n,o=(p._data(this,"events")||{})[c.type]||[],q=o.delegateCount,r=[].slice.call(arguments),s=!c.exclusive&&!c.namespace,t=p.event.special[c.type]||{},u=[];r[0]=c,c.delegateTarget=this;if(t.preDispatch&&t.preDispatch.call(this,c)===!1)return;if(q&&(!c.button||c.type!=="click")){g=p(this),g.context=this;for(f=c.target;f!=this;f=f.parentNode||this)if(f.disabled!==!0||c.type!=="click"){i={},k=[],g[0]=f;for(d=0;d<q;d++)l=o[d],m=l.selector,i[m]===b&&(i[m]=g.is(m)),i[m]&&k.push(l);k.length&&u.push({elem:f,matches:k})}}o.length>q&&u.push({elem:this,matches:o.slice(q)});for(d=0;d<u.length&&!c.isPropagationStopped();d++){j=u[d],c.currentTarget=j.elem;for(e=0;e<j.matches.length&&!c.isImmediatePropagationStopped();e++){l=j.matches[e];if(s||!c.namespace&&!l.namespace||c.namespace_re&&c.namespace_re.test(l.namespace))c.data=l.data,c.handleObj=l,h=((p.event.special[l.origType]||{}).handle||l.handler).apply(j.elem,r),h!==b&&(c.result=h,h===!1&&(c.preventDefault(),c.stopPropagation()))}}return t.postDispatch&&t.postDispatch.call(this,c),c.result},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return a.which==null&&(a.which=b.charCode!=null?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,c){var d,f,g,h=c.button,i=c.fromElement;return a.pageX==null&&c.clientX!=null&&(d=a.target.ownerDocument||e,f=d.documentElement,g=d.body,a.pageX=c.clientX+(f&&f.scrollLeft||g&&g.scrollLeft||0)-(f&&f.clientLeft||g&&g.clientLeft||0),a.pageY=c.clientY+(f&&f.scrollTop||g&&g.scrollTop||0)-(f&&f.clientTop||g&&g.clientTop||0)),!a.relatedTarget&&i&&(a.relatedTarget=i===a.target?c.toElement:i),!a.which&&h!==b&&(a.which=h&1?1:h&2?3:h&4?2:0),a}},fix:function(a){if(a[p.expando])return a;var b,c,d=a,f=p.event.fixHooks[a.type]||{},g=f.props?this.props.concat(f.props):this.props;a=p.Event(d);for(b=g.length;b;)c=g[--b],a[c]=d[c];return a.target||(a.target=d.srcElement||e),a.target.nodeType===3&&(a.target=a.target.parentNode),a.metaKey=!!a.metaKey,f.filter?f.filter(a,d):a},special:{ready:{setup:p.bindReady},load:{noBubble:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(a,b,c){p.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}},simulate:function(a,b,c,d){var e=p.extend(new p.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?p.event.trigger(e,null,b):p.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},p.event.handle=p.event.dispatch,p.removeEvent=e.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){var d="on"+b;a.detachEvent&&(typeof a[d]=="undefined"&&(a[d]=null),a.detachEvent(d,c))},p.Event=function(a,b){if(this instanceof p.Event)a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?bb:ba):this.type=a,b&&p.extend(this,b),this.timeStamp=a&&a.timeStamp||p.now(),this[p.expando]=!0;else return new p.Event(a,b)},p.Event.prototype={preventDefault:function(){this.isDefaultPrevented=bb;var a=this.originalEvent;if(!a)return;a.preventDefault?a.preventDefault():a.returnValue=!1},stopPropagation:function(){this.isPropagationStopped=bb;var a=this.originalEvent;if(!a)return;a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=bb,this.stopPropagation()},isDefaultPrevented:ba,isPropagationStopped:ba,isImmediatePropagationStopped:ba},p.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){p.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj,g=f.selector;if(!e||e!==d&&!p.contains(d,e))a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b;return c}}}),p.support.submitBubbles||(p.event.special.submit={setup:function(){if(p.nodeName(this,"form"))return!1;p.event.add(this,"click._submit keypress._submit",function(a){var c=a.target,d=p.nodeName(c,"input")||p.nodeName(c,"button")?c.form:b;d&&!p._data(d,"_submit_attached")&&(p.event.add(d,"submit._submit",function(a){a._submit_bubble=!0}),p._data(d,"_submit_attached",!0))})},postDispatch:function(a){a._submit_bubble&&(delete a._submit_bubble,this.parentNode&&!a.isTrigger&&p.event.simulate("submit",this.parentNode,a,!0))},teardown:function(){if(p.nodeName(this,"form"))return!1;p.event.remove(this,"._submit")}}),p.support.changeBubbles||(p.event.special.change={setup:function(){if(V.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio")p.event.add(this,"propertychange._change",function(a){a.originalEvent.propertyName==="checked"&&(this._just_changed=!0)}),p.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1),p.event.simulate("change",this,a,!0)});return!1}p.event.add(this,"beforeactivate._change",function(a){var b=a.target;V.test(b.nodeName)&&!p._data(b,"_change_attached")&&(p.event.add(b,"change._change",function(a){this.parentNode&&!a.isSimulated&&!a.isTrigger&&p.event.simulate("change",this.parentNode,a,!0)}),p._data(b,"_change_attached",!0))})},handle:function(a){var b=a.target;if(this!==b||a.isSimulated||a.isTrigger||b.type!=="radio"&&b.type!=="checkbox")return a.handleObj.handler.apply(this,arguments)},teardown:function(){return p.event.remove(this,"._change"),V.test(this.nodeName)}}),p.support.focusinBubbles||p.each({focus:"focusin",blur:"focusout"},function(a,b){var c=0,d=function(a){p.event.simulate(b,a.target,p.event.fix(a),!0)};p.event.special[b]={setup:function(){c++===0&&e.addEventListener(a,d,!0)},teardown:function(){--c===0&&e.removeEventListener(a,d,!0)}}}),p.fn.extend({on:function(a,c,d,e,f){var g,h;if(typeof a=="object"){typeof c!="string"&&(d=d||c,c=b);for(h in a)this.on(h,c,d,a[h],f);return this}d==null&&e==null?(e=c,d=c=b):e==null&&(typeof c=="string"?(e=d,d=b):(e=d,d=c,c=b));if(e===!1)e=ba;else if(!e)return this;return f===1&&(g=e,e=function(a){return p().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=p.guid++)),this.each(function(){p.event.add(this,a,e,d,c)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,c,d){var e,f;if(a&&a.preventDefault&&a.handleObj)return e=a.handleObj,p(a.delegateTarget).off(e.namespace?e.origType+"."+e.namespace:e.origType,e.selector,e.handler),this;if(typeof a=="object"){for(f in a)this.off(f,c,a[f]);return this}if(c===!1||typeof c=="function")d=c,c=b;return d===!1&&(d=ba),this.each(function(){p.event.remove(this,a,d,c)})},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},live:function(a,b,c){return p(this.context).on(a,this.selector,b,c),this},die:function(a,b){return p(this.context).off(a,this.selector||"**",b),this},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return arguments.length==1?this.off(a,"**"):this.off(b,a||"**",c)},trigger:function(a,b){return this.each(function(){p.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return p.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||p.guid++,d=0,e=function(c){var e=(p._data(this,"lastToggle"+a.guid)||0)%d;return p._data(this,"lastToggle"+a.guid,e+1),c.preventDefault(),b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),p.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){p.fn[b]=function(a,c){return c==null&&(c=a,a=null),arguments.length>0?this.on(b,null,a,c):this.trigger(b)},Y.test(b)&&(p.event.fixHooks[b]=p.event.keyHooks),Z.test(b)&&(p.event.fixHooks[b]=p.event.mouseHooks)}),function(a,b){function bd(a,b,c,d){var e=0,f=b.length;for(;e<f;e++)Z(a,b[e],c,d)}function be(a,b,c,d,e,f){var g,h=$.setFilters[b.toLowerCase()];return h||Z.error(b),(a||!(g=e))&&bd(a||"*",d,g=[],e),g.length>0?h(g,c,f):[]}function bf(a,c,d,e,f){var g,h,i,j,k,l,m,n,p=0,q=f.length,s=L.POS,t=new RegExp("^"+s.source+"(?!"+r+")","i"),u=function(){var a=1,c=arguments.length-2;for(;a<c;a++)arguments[a]===b&&(g[a]=b)};for(;p<q;p++){s.exec(""),a=f[p],j=[],i=0,k=e;while(g=s.exec(a)){n=s.lastIndex=g.index+g[0].length;if(n>i){m=a.slice(i,g.index),i=n,l=[c],B.test(m)&&(k&&(l=k),k=e);if(h=H.test(m))m=m.slice(0,-5).replace(B,"$&*");g.length>1&&g[0].replace(t,u),k=be(m,g[1],g[2],l,k,h)}}k?(j=j.concat(k),(m=a.slice(i))&&m!==")"?B.test(m)?bd(m,j,d,e):Z(m,c,d,e?e.concat(k):k):o.apply(d,j)):Z(a,c,d,e)}return q===1?d:Z.uniqueSort(d)}function bg(a,b,c){var d,e,f,g=[],i=0,j=D.exec(a),k=!j.pop()&&!j.pop(),l=k&&a.match(C)||[""],m=$.preFilter,n=$.filter,o=!c&&b!==h;for(;(e=l[i])!=null&&k;i++){g.push(d=[]),o&&(e=" "+e);while(e){k=!1;if(j=B.exec(e))e=e.slice(j[0].length),k=d.push({part:j.pop().replace(A," "),captures:j});for(f in n)(j=L[f].exec(e))&&(!m[f]||(j=m[f](j,b,c)))&&(e=e.slice(j.shift().length),k=d.push({part:f,captures:j}));if(!k)break}}return k||Z.error(a),g}function bh(a,b,e){var f=b.dir,g=m++;return a||(a=function(a){return a===e}),b.first?function(b,c){while(b=b[f])if(b.nodeType===1)return a(b,c)&&b}:function(b,e){var h,i=g+"."+d,j=i+"."+c;while(b=b[f])if(b.nodeType===1){if((h=b[q])===j)return b.sizset;if(typeof h=="string"&&h.indexOf(i)===0){if(b.sizset)return b}else{b[q]=j;if(a(b,e))return b.sizset=!0,b;b.sizset=!1}}}}function bi(a,b){return a?function(c,d){var e=b(c,d);return e&&a(e===!0?c:e,d)}:b}function bj(a,b,c){var d,e,f=0;for(;d=a[f];f++)$.relative[d.part]?e=bh(e,$.relative[d.part],b):(d.captures.push(b,c),e=bi(e,$.filter[d.part].apply(null,d.captures)));return e}function bk(a){return function(b,c){var d,e=0;for(;d=a[e];e++)if(d(b,c))return!0;return!1}}var c,d,e,f,g,h=a.document,i=h.documentElement,j="undefined",k=!1,l=!0,m=0,n=[].slice,o=[].push,q=("sizcache"+Math.random()).replace(".",""),r="[\\x20\\t\\r\\n\\f]",s="(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",t=s.replace("w","w#"),u="([*^$|!~]?=)",v="\\["+r+"*("+s+")"+r+"*(?:"+u+r+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+t+")|)|)"+r+"*\\]",w=":("+s+")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|((?:[^,]|\\\\,|(?:,(?=[^\\[]*\\]))|(?:,(?=[^\\(]*\\))))*))\\)|)",x=":(nth|eq|gt|lt|first|last|even|odd)(?:\\((\\d*)\\)|)(?=[^-]|$)",y=r+"*([\\x20\\t\\r\\n\\f>+~])"+r+"*",z="(?=[^\\x20\\t\\r\\n\\f])(?:\\\\.|"+v+"|"+w.replace(2,7)+"|[^\\\\(),])+",A=new RegExp("^"+r+"+|((?:^|[^\\\\])(?:\\\\.)*)"+r+"+$","g"),B=new RegExp("^"+y),C=new RegExp(z+"?(?="+r+"*,|$)","g"),D=new RegExp("^(?:(?!,)(?:(?:^|,)"+r+"*"+z+")*?|"+r+"*(.*?))(\\)|$)"),E=new RegExp(z.slice(19,-6)+"\\x20\\t\\r\\n\\f>+~])+|"+y,"g"),F=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,G=/[\x20\t\r\n\f]*[+~]/,H=/:not\($/,I=/h\d/i,J=/input|select|textarea|button/i,K=/\\(?!\\)/g,L={ID:new RegExp("^#("+s+")"),CLASS:new RegExp("^\\.("+s+")"),NAME:new RegExp("^\\[name=['\"]?("+s+")['\"]?\\]"),TAG:new RegExp("^("+s.replace("[-","[-\\*")+")"),ATTR:new RegExp("^"+v),PSEUDO:new RegExp("^"+w),CHILD:new RegExp("^:(only|nth|last|first)-child(?:\\("+r+"*(even|odd|(([+-]|)(\\d*)n|)"+r+"*(?:([+-]|)"+r+"*(\\d+)|))"+r+"*\\)|)","i"),POS:new RegExp(x,"ig"),needsContext:new RegExp("^"+r+"*[>+~]|"+x,"i")},M={},N=[],O={},P=[],Q=function(a){return a.sizzleFilter=!0,a},R=function(a){return function(b){return b.nodeName.toLowerCase()==="input"&&b.type===a}},S=function(a){return function(b){var c=b.nodeName.toLowerCase();return(c==="input"||c==="button")&&b.type===a}},T=function(a){var b=!1,c=h.createElement("div");try{b=a(c)}catch(d){}return c=null,b},U=T(function(a){a.innerHTML="<select></select>";var b=typeof a.lastChild.getAttribute("multiple");return b!=="boolean"&&b!=="string"}),V=T(function(a){a.id=q+0,a.innerHTML="<a name='"+q+"'></a><div name='"+q+"'></div>",i.insertBefore(a,i.firstChild);var b=h.getElementsByName&&h.getElementsByName(q).length===2+h.getElementsByName(q+0).length;return g=!h.getElementById(q),i.removeChild(a),b}),W=T(function(a){return a.appendChild(h.createComment("")),a.getElementsByTagName("*").length===0}),X=T(function(a){return a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!==j&&a.firstChild.getAttribute("href")==="#"}),Y=T(function(a){return a.innerHTML="<div class='hidden e'></div><div class='hidden'></div>",!a.getElementsByClassName||a.getElementsByClassName("e").length===0?!1:(a.lastChild.className="e",a.getElementsByClassName("e").length!==1)}),Z=function(a,b,c,d){c=c||[],b=b||h;var e,f,g,i,j=b.nodeType;if(j!==1&&j!==9)return[];if(!a||typeof a!="string")return c;g=ba(b);if(!g&&!d)if(e=F.exec(a))if(i=e[1]){if(j===9){f=b.getElementById(i);if(!f||!f.parentNode)return c;if(f.id===i)return c.push(f),c}else if(b.ownerDocument&&(f=b.ownerDocument.getElementById(i))&&bb(b,f)&&f.id===i)return c.push(f),c}else{if(e[2])return o.apply(c,n.call(b.getElementsByTagName(a),0)),c;if((i=e[3])&&Y&&b.getElementsByClassName)return o.apply(c,n.call(b.getElementsByClassName(i),0)),c}return bm(a,b,c,d,g)},$=Z.selectors={cacheLength:50,match:L,order:["ID","TAG"],attrHandle:{},createPseudo:Q,find:{ID:g?function(a,b,c){if(typeof b.getElementById!==j&&!c){var d=b.getElementById(a);return d&&d.parentNode?[d]:[]}}:function(a,c,d){if(typeof c.getElementById!==j&&!d){var e=c.getElementById(a);return e?e.id===a||typeof e.getAttributeNode!==j&&e.getAttributeNode("id").value===a?[e]:b:[]}},TAG:W?function(a,b){if(typeof b.getElementsByTagName!==j)return b.getElementsByTagName(a)}:function(a,b){var c=b.getElementsByTagName(a);if(a==="*"){var d,e=[],f=0;for(;d=c[f];f++)d.nodeType===1&&e.push(d);return e}return c}},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(K,""),a[3]=(a[4]||a[5]||"").replace(K,""),a[2]==="~="&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),a[1]==="nth"?(a[2]||Z.error(a[0]),a[3]=+(a[3]?a[4]+(a[5]||1):2*(a[2]==="even"||a[2]==="odd")),a[4]=+(a[6]+a[7]||a[2]==="odd")):a[2]&&Z.error(a[0]),a},PSEUDO:function(a){var b,c=a[4];return L.CHILD.test(a[0])?null:(c&&(b=D.exec(c))&&b.pop()&&(a[0]=a[0].slice(0,b[0].length-c.length-1),c=b[0].slice(0,-1)),a.splice(2,3,c||a[3]),a)}},filter:{ID:g?function(a){return a=a.replace(K,""),function(b){return b.getAttribute("id")===a}}:function(a){return a=a.replace(K,""),function(b){var c=typeof b.getAttributeNode!==j&&b.getAttributeNode("id");return c&&c.value===a}},TAG:function(a){return a==="*"?function(){return!0}:(a=a.replace(K,"").toLowerCase(),function(b){return b.nodeName&&b.nodeName.toLowerCase()===a})},CLASS:function(a){var b=M[a];return b||(b=M[a]=new RegExp("(^|"+r+")"+a+"("+r+"|$)"),N.push(a),N.length>$.cacheLength&&delete M[N.shift()]),function(a){return b.test(a.className||typeof a.getAttribute!==j&&a.getAttribute("class")||"")}},ATTR:function(a,b,c){return b?function(d){var e=Z.attr(d,a),f=e+"";if(e==null)return b==="!=";switch(b){case"=":return f===c;case"!=":return f!==c;case"^=":return c&&f.indexOf(c)===0;case"*=":return c&&f.indexOf(c)>-1;case"$=":return c&&f.substr(f.length-c.length)===c;case"~=":return(" "+f+" ").indexOf(c)>-1;case"|=":return f===c||f.substr(0,c.length+1)===c+"-"}}:function(b){return Z.attr(b,a)!=null}},CHILD:function(a,b,c,d){if(a==="nth"){var e=m++;return function(a){var b,f,g=0,h=a;if(c===1&&d===0)return!0;b=a.parentNode;if(b&&(b[q]!==e||!a.sizset)){for(h=b.firstChild;h;h=h.nextSibling)if(h.nodeType===1){h.sizset=++g;if(h===a)break}b[q]=e}return f=a.sizset-d,c===0?f===0:f%c===0&&f/c>=0}}return function(b){var c=b;switch(a){case"only":case"first":while(c=c.previousSibling)if(c.nodeType===1)return!1;if(a==="first")return!0;c=b;case"last":while(c=c.nextSibling)if(c.nodeType===1)return!1;return!0}}},PSEUDO:function(a,b,c,d){var e=$.pseudos[a]||$.pseudos[a.toLowerCase()];return e||Z.error("unsupported pseudo: "+a),e.sizzleFilter?e(b,c,d):e}},pseudos:{not:Q(function(a,b,c){var d=bl(a.replace(A,"$1"),b,c);return function(a){return!d(a)}}),enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&!!a.checked||b==="option"&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},parent:function(a){return!$.pseudos.empty(a)},empty:function(a){var b;a=a.firstChild;while(a){if(a.nodeName>"@"||(b=a.nodeType)===3||b===4)return!1;a=a.nextSibling}return!0},contains:Q(function(a){return function(b){return(b.textContent||b.innerText||bc(b)).indexOf(a)>-1}}),has:Q(function(a){return function(b){return Z(a,b).length>0}}),header:function(a){return I.test(a.nodeName)},text:function(a){var b,c;return a.nodeName.toLowerCase()==="input"&&(b=a.type)==="text"&&((c=a.getAttribute("type"))==null||c.toLowerCase()===b)},radio:R("radio"),checkbox:R("checkbox"),file:R("file"),password:R("password"),image:R("image"),submit:S("submit"),reset:S("reset"),button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&a.type==="button"||b==="button"},input:function(a){return J.test(a.nodeName)},focus:function(a){var b=a.ownerDocument;return a===b.activeElement&&(!b.hasFocus||b.hasFocus())&&(!!a.type||!!a.href)},active:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b,c){return c?a.slice(1):[a[0]]},last:function(a,b,c){var d=a.pop();return c?a:[d]},even:function(a,b,c){var d=[],e=c?1:0,f=a.length;for(;e<f;e=e+2)d.push(a[e]);return d},odd:function(a,b,c){var d=[],e=c?0:1,f=a.length;for(;e<f;e=e+2)d.push(a[e]);return d},lt:function(a,b,c){return c?a.slice(+b):a.slice(0,+b)},gt:function(a,b,c){return c?a.slice(0,+b+1):a.slice(+b+1)},eq:function(a,b,c){var d=a.splice(+b,1);return c?a:d}}};$.setFilters.nth=$.setFilters.eq,$.filters=$.pseudos,X||($.attrHandle={href:function(a){return a.getAttribute("href",2)},type:function(a){return a.getAttribute("type")}}),V&&($.order.push("NAME"),$.find.NAME=function(a,b){if(typeof b.getElementsByName!==j)return b.getElementsByName(a)}),Y&&($.order.splice(1,0,"CLASS"),$.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!==j&&!c)return b.getElementsByClassName(a)});try{n.call(i.childNodes,0)[0].nodeType}catch(_){n=function(a){var b,c=[];for(;b=this[a];a++)c.push(b);return c}}var ba=Z.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?b.nodeName!=="HTML":!1},bb=Z.contains=i.compareDocumentPosition?function(a,b){return!!(a.compareDocumentPosition(b)&16)}:i.contains?function(a,b){var c=a.nodeType===9?a.documentElement:a,d=b.parentNode;return a===d||!!(d&&d.nodeType===1&&c.contains&&c.contains(d))}:function(a,b){while(b=b.parentNode)if(b===a)return!0;return!1},bc=Z.getText=function(a){var b,c="",d=0,e=a.nodeType;if(e){if(e===1||e===9||e===11){if(typeof a.textContent=="string")return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=bc(a)}else if(e===3||e===4)return a.nodeValue}else for(;b=a[d];d++)c+=bc(b);return c};Z.attr=function(a,b){var c,d=ba(a);return d||(b=b.toLowerCase()),$.attrHandle[b]?$.attrHandle[b](a):U||d?a.getAttribute(b):(c=a.getAttributeNode(b),c?typeof a[b]=="boolean"?a[b]?b:null:c.specified?c.value:null:null)},Z.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},[0,0].sort(function(){return l=0}),i.compareDocumentPosition?e=function(a,b){return a===b?(k=!0,0):(!a.compareDocumentPosition||!b.compareDocumentPosition?a.compareDocumentPosition:a.compareDocumentPosition(b)&4)?-1:1}:(e=function(a,b){if(a===b)return k=!0,0;if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],g=[],h=a.parentNode,i=b.parentNode,j=h;if(h===i)return f(a,b);if(!h)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)g.unshift(j),j=j.parentNode;c=e.length,d=g.length;for(var l=0;l<c&&l<d;l++)if(e[l]!==g[l])return f(e[l],g[l]);return l===c?f(a,g[l],-1):f(e[l],b,1)},f=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),Z.uniqueSort=function(a){var b,c=1;if(e){k=l,a.sort(e);if(k)for(;b=a[c];c++)b===a[c-1]&&a.splice(c--,1)}return a};var bl=Z.compile=function(a,b,c){var d,e,f,g=O[a];if(g&&g.context===b)return g;e=bg(a,b,c);for(f=0;d=e[f];f++)e[f]=bj(d,b,c);return g=O[a]=bk(e),g.context=b,g.runs=g.dirruns=0,P.push(a),P.length>$.cacheLength&&delete O[P.shift()],g};Z.matches=function(a,b){return Z(a,null,null,b)},Z.matchesSelector=function(a,b){return Z(b,null,null,[a]).length>0};var bm=function(a,b,e,f,g){a=a.replace(A,"$1");var h,i,j,k,l,m,p,q,r,s=a.match(C),t=a.match(E),u=b.nodeType;if(L.POS.test(a))return bf(a,b,e,f,s);if(f)h=n.call(f,0);else if(s&&s.length===1){if(t.length>1&&u===9&&!g&&(s=L.ID.exec(t[0]))){b=$.find.ID(s[1],b,g)[0];if(!b)return e;a=a.slice(t.shift().length)}q=(s=G.exec(t[0]))&&!s.index&&b.parentNode||b,r=t.pop(),m=r.split(":not")[0];for(j=0,k=$.order.length;j<k;j++){p=$.order[j];if(s=L[p].exec(m)){h=$.find[p]((s[1]||"").replace(K,""),q,g);if(h==null)continue;m===r&&(a=a.slice(0,a.length-r.length)+m.replace(L[p],""),a||o.apply(e,n.call(h,0)));break}}}if(a){i=bl(a,b,g),d=i.dirruns++,h==null&&(h=$.find.TAG("*",G.test(a)&&b.parentNode||b));for(j=0;l=h[j];j++)c=i.runs++,i(l,b)&&e.push(l)}return e};h.querySelectorAll&&function(){var a,b=bm,c=/'|\\/g,d=/\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,e=[],f=[":active"],g=i.matchesSelector||i.mozMatchesSelector||i.webkitMatchesSelector||i.oMatchesSelector||i.msMatchesSelector;T(function(a){a.innerHTML="<select><option selected></option></select>",a.querySelectorAll("[selected]").length||e.push("\\["+r+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),a.querySelectorAll(":checked").length||e.push(":checked")}),T(function(a){a.innerHTML="<p test=''></p>",a.querySelectorAll("[test^='']").length&&e.push("[*^$]="+r+"*(?:\"\"|'')"),a.innerHTML="<input type='hidden'>",a.querySelectorAll(":enabled").length||e.push(":enabled",":disabled")}),e=e.length&&new RegExp(e.join("|")),bm=function(a,d,f,g,h){if(!g&&!h&&(!e||!e.test(a)))if(d.nodeType===9)try{return o.apply(f,n.call(d.querySelectorAll(a),0)),f}catch(i){}else if(d.nodeType===1&&d.nodeName.toLowerCase()!=="object"){var j=d.getAttribute("id"),k=j||q,l=G.test(a)&&d.parentNode||d;j?k=k.replace(c,"\\$&"):d.setAttribute("id",k);try{return o.apply(f,n.call(l.querySelectorAll(a.replace(C,"[id='"+k+"'] $&")),0)),f}catch(i){}finally{j||d.removeAttribute("id")}}return b(a,d,f,g,h)},g&&(T(function(b){a=g.call(b,"div");try{g.call(b,"[test!='']:sizzle"),f.push($.match.PSEUDO)}catch(c){}}),f=new RegExp(f.join("|")),Z.matchesSelector=function(b,c){c=c.replace(d,"='$1']");if(!ba(b)&&!f.test(c)&&(!e||!e.test(c)))try{var h=g.call(b,c);if(h||a||b.document&&b.document.nodeType!==11)return h}catch(i){}return Z(c,null,null,[b]).length>0})}(),Z.attr=p.attr,p.find=Z,p.expr=Z.selectors,p.expr[":"]=p.expr.pseudos,p.unique=Z.uniqueSort,p.text=Z.getText,p.isXMLDoc=Z.isXML,p.contains=Z.contains}(a);var bc=/Until$/,bd=/^(?:parents|prev(?:Until|All))/,be=/^.[^:#\[\.,]*$/,bf=p.expr.match.needsContext,bg={children:!0,contents:!0,next:!0,prev:!0};p.fn.extend({find:function(a){var b,c,d,e,f,g,h=this;if(typeof a!="string")return p(a).filter(function(){for(b=0,c=h.length;b<c;b++)if(p.contains(h[b],this))return!0});g=this.pushStack("","find",a);for(b=0,c=this.length;b<c;b++){d=g.length,p.find(a,this[b],g);if(b>0)for(e=d;e<g.length;e++)for(f=0;f<d;f++)if(g[f]===g[e]){g.splice(e--,1);break}}return g},has:function(a){var b,c=p(a,this),d=c.length;return this.filter(function(){for(b=0;b<d;b++)if(p.contains(this,c[b]))return!0})},not:function(a){return this.pushStack(bj(this,a,!1),"not",a)},filter:function(a){return this.pushStack(bj(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?bf.test(a)?p(a,this.context).index(this[0])>=0:p.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c,d=0,e=this.length,f=[],g=bf.test(a)||typeof a!="string"?p(a,b||this.context):0;for(;d<e;d++){c=this[d];while(c&&c.ownerDocument&&c!==b&&c.nodeType!==11){if(g?g.index(c)>-1:p.find.matchesSelector(c,a)){f.push(c);break}c=c.parentNode}}return f=f.length>1?p.unique(f):f,this.pushStack(f,"closest",a)},index:function(a){return a?typeof a=="string"?p.inArray(this[0],p(a)):p.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.prevAll().length:-1},add:function(a,b){var c=typeof a=="string"?p(a,b):p.makeArray(a&&a.nodeType?[a]:a),d=p.merge(this.get(),c);return this.pushStack(bh(c[0])||bh(d[0])?d:p.unique(d))},addBack:function(a){return this.add(a==null?this.prevObject:this.prevObject.filter(a))}}),p.fn.andSelf=p.fn.addBack,p.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return p.dir(a,"parentNode")},parentsUntil:function(a,b,c){return p.dir(a,"parentNode",c)},next:function(a){return bi(a,"nextSibling")},prev:function(a){return bi(a,"previousSibling")},nextAll:function(a){return p.dir(a,"nextSibling")},prevAll:function(a){return p.dir(a,"previousSibling")},nextUntil:function(a,b,c){return p.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return p.dir(a,"previousSibling",c)},siblings:function(a){return p.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return p.sibling(a.firstChild)},contents:function(a){return p.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:p.merge([],a.childNodes)}},function(a,b){p.fn[a]=function(c,d){var e=p.map(this,b,c);return bc.test(a)||(d=c),d&&typeof d=="string"&&(e=p.filter(d,e)),e=this.length>1&&!bg[a]?p.unique(e):e,this.length>1&&bd.test(a)&&(e=e.reverse()),this.pushStack(e,a,k.call(arguments).join(","))}}),p.extend({filter:function(a,b,c){return c&&(a=":not("+a+")"),b.length===1?p.find.matchesSelector(b[0],a)?[b[0]]:[]:p.find.matches(a,b)},dir:function(a,c,d){var e=[],f=a[c];while(f&&f.nodeType!==9&&(d===b||f.nodeType!==1||!p(f).is(d)))f.nodeType===1&&e.push(f),f=f[c];return e},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var bl="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",bm=/ jQuery\d+="(?:null|\d+)"/g,bn=/^\s+/,bo=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bp=/<([\w:]+)/,bq=/<tbody/i,br=/<|&#?\w+;/,bs=/<(?:script|style|link)/i,bt=/<(?:script|object|embed|option|style)/i,bu=new RegExp("<(?:"+bl+")[\\s/>]","i"),bv=/^(?:checkbox|radio)$/,bw=/checked\s*(?:[^=]|=\s*.checked.)/i,bx=/\/(java|ecma)script/i,by=/^\s*<!(?:\[CDATA\[|\-\-)|[\]\-]{2}>\s*$/g,bz={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},bA=bk(e),bB=bA.appendChild(e.createElement("div"));bz.optgroup=bz.option,bz.tbody=bz.tfoot=bz.colgroup=bz.caption=bz.thead,bz.th=bz.td,p.support.htmlSerialize||(bz._default=[1,"X<div>","</div>"]),p.fn.extend({text:function(a){return p.access(this,function(a){return a===b?p.text(this):this.empty().append((this[0]&&this[0].ownerDocument||e).createTextNode(a))},null,a,arguments.length)},wrapAll:function(a){if(p.isFunction(a))return this.each(function(b){p(this).wrapAll(a.call(this,b))});if(this[0]){var b=p(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return p.isFunction(a)?this.each(function(b){p(this).wrapInner(a.call(this,b))}):this.each(function(){var b=p(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=p.isFunction(a);return this.each(function(c){p(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){p.nodeName(this,"body")||p(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){(this.nodeType===1||this.nodeType===11)&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){(this.nodeType===1||this.nodeType===11)&&this.insertBefore(a,this.firstChild)})},before:function(){if(!bh(this[0]))return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=p.clean(arguments);return this.pushStack(p.merge(a,this),"before",this.selector)}},after:function(){if(!bh(this[0]))return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=p.clean(arguments);return this.pushStack(p.merge(this,a),"after",this.selector)}},remove:function(a,b){var c,d=0;for(;(c=this[d])!=null;d++)if(!a||p.filter(a,[c]).length)!b&&c.nodeType===1&&(p.cleanData(c.getElementsByTagName("*")),p.cleanData([c])),c.parentNode&&c.parentNode.removeChild(c);return this},empty:function(){var a,b=0;for(;(a=this[b])!=null;b++){a.nodeType===1&&p.cleanData(a.getElementsByTagName("*"));while(a.firstChild)a.removeChild(a.firstChild)}return this},clone:function(a,b){return a=a==null?!1:a,b=b==null?a:b,this.map(function(){return p.clone(this,a,b)})},html:function(a){return p.access(this,function(a){var c=this[0]||{},d=0,e=this.length;if(a===b)return c.nodeType===1?c.innerHTML.replace(bm,""):b;if(typeof a=="string"&&!bs.test(a)&&(p.support.htmlSerialize||!bu.test(a))&&(p.support.leadingWhitespace||!bn.test(a))&&!bz[(bp.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(bo,"<$1></$2>");try{for(;d<e;d++)c=this[d]||{},c.nodeType===1&&(p.cleanData(c.getElementsByTagName("*")),c.innerHTML=a);c=0}catch(f){}}c&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(a){return bh(this[0])?this.length?this.pushStack(p(p.isFunction(a)?a():a),"replaceWith",a):this:p.isFunction(a)?this.each(function(b){var c=p(this),d=c.html();c.replaceWith(a.call(this,b,d))}):(typeof a!="string"&&(a=p(a).detach()),this.each(function(){var b=this.nextSibling,c=this.parentNode;p(this).remove(),b?p(b).before(a):p(c).append(a)}))},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){a=[].concat.apply([],a);var e,f,g,h,i=0,j=a[0],k=[],l=this.length;if(!p.support.checkClone&&l>1&&typeof j=="string"&&bw.test(j))return this.each(function(){p(this).domManip(a,c,d)});if(p.isFunction(j))return this.each(function(e){var f=p(this);a[0]=j.call(this,e,c?f.html():b),f.domManip(a,c,d)});if(this[0]){e=p.buildFragment(a,this,k),g=e.fragment,f=g.firstChild,g.childNodes.length===1&&(g=f);if(f){c=c&&p.nodeName(f,"tr");for(h=e.cacheable||l-1;i<l;i++)d.call(c&&p.nodeName(this[i],"table")?bC(this[i],"tbody"):this[i],i===h?g:p.clone(g,!0,!0))}g=f=null,k.length&&p.each(k,function(a,b){b.src?p.ajax?p.ajax({url:b.src,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0}):p.error("no ajax"):p.globalEval((b.text||b.textContent||b.innerHTML||"").replace(by,"")),b.parentNode&&b.parentNode.removeChild(b)})}return this}}),p.buildFragment=function(a,c,d){var f,g,h,i=a[0];return c=c||e,c=(c[0]||c).ownerDocument||c[0]||c,typeof c.createDocumentFragment=="undefined"&&(c=e),a.length===1&&typeof i=="string"&&i.length<512&&c===e&&i.charAt(0)==="<"&&!bt.test(i)&&(p.support.checkClone||!bw.test(i))&&(p.support.html5Clone||!bu.test(i))&&(g=!0,f=p.fragments[i],h=f!==b),f||(f=c.createDocumentFragment(),p.clean(a,c,f,d),g&&(p.fragments[i]=h&&f)),{fragment:f,cacheable:g}},p.fragments={},p.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){p.fn[a]=function(c){var d,e=0,f=[],g=p(c),h=g.length,i=this.length===1&&this[0].parentNode;if((i==null||i&&i.nodeType===11&&i.childNodes.length===1)&&h===1)return g[b](this[0]),this;for(;e<h;e++)d=(e>0?this.clone(!0):this).get(),p(g[e])[b](d),f=f.concat(d);return this.pushStack(f,a,g.selector)}}),p.extend({clone:function(a,b,c){var d,e,f,g;p.support.html5Clone||p.isXMLDoc(a)||!bu.test("<"+a.nodeName+">")?g=a.cloneNode(!0):(bB.innerHTML=a.outerHTML,bB.removeChild(g=bB.firstChild));if((!p.support.noCloneEvent||!p.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!p.isXMLDoc(a)){bE(a,g),d=bF(a),e=bF(g);for(f=0;d[f];++f)e[f]&&bE(d[f],e[f])}if(b){bD(a,g);if(c){d=bF(a),e=bF(g);for(f=0;d[f];++f)bD(d[f],e[f])}}return d=e=null,g},clean:function(a,b,c,d){var f,g,h,i,j,k,l,m,n,o,q,r,s=0,t=[];if(!b||typeof b.createDocumentFragment=="undefined")b=e;for(g=b===e&&bA;(h=a[s])!=null;s++){typeof h=="number"&&(h+="");if(!h)continue;if(typeof h=="string")if(!br.test(h))h=b.createTextNode(h);else{g=g||bk(b),l=l||g.appendChild(b.createElement("div")),h=h.replace(bo,"<$1></$2>"),i=(bp.exec(h)||["",""])[1].toLowerCase(),j=bz[i]||bz._default,k=j[0],l.innerHTML=j[1]+h+j[2];while(k--)l=l.lastChild;if(!p.support.tbody){m=bq.test(h),n=i==="table"&&!m?l.firstChild&&l.firstChild.childNodes:j[1]==="<table>"&&!m?l.childNodes:[];for(f=n.length-1;f>=0;--f)p.nodeName(n[f],"tbody")&&!n[f].childNodes.length&&n[f].parentNode.removeChild(n[f])}!p.support.leadingWhitespace&&bn.test(h)&&l.insertBefore(b.createTextNode(bn.exec(h)[0]),l.firstChild),h=l.childNodes,l=g.lastChild}h.nodeType?t.push(h):t=p.merge(t,h)}l&&(g.removeChild(l),h=l=g=null);if(!p.support.appendChecked)for(s=0;(h=t[s])!=null;s++)p.nodeName(h,"input")?bG(h):typeof h.getElementsByTagName!="undefined"&&p.grep(h.getElementsByTagName("input"),bG);if(c){q=function(a){if(!a.type||bx.test(a.type))return d?d.push(a.parentNode?a.parentNode.removeChild(a):a):c.appendChild(a)};for(s=0;(h=t[s])!=null;s++)if(!p.nodeName(h,"script")||!q(h))c.appendChild(h),typeof h.getElementsByTagName!="undefined"&&(r=p.grep(p.merge([],h.getElementsByTagName("script")),q),t.splice.apply(t,[s+1,0].concat(r)),s+=r.length)}return t},cleanData:function(a,b){var c,d,e,f,g=0,h=p.expando,i=p.cache,j=p.support.deleteExpando,k=p.event.special;for(;(e=a[g])!=null;g++)if(b||p.acceptData(e)){d=e[h],c=d&&i[d];if(c){if(c.events)for(f in c.events)k[f]?p.event.remove(e,f):p.removeEvent(e,f,c.handle);i[d]&&(delete i[d],j?delete e[h]:e.removeAttribute?e.removeAttribute(h):e[h]=null,p.deletedIds.push(d))}}}}),function(){var a,b;p.uaMatch=function(a){a=a.toLowerCase();var b=/(chrome)[ \/]([\w.]+)/.exec(a)||/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||a.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},a=p.uaMatch(g.userAgent),b={},a.browser&&(b[a.browser]=!0,b.version=a.version),b.webkit&&(b.safari=!0),p.browser=b,p.sub=function(){function a(b,c){return new a.fn.init(b,c)}p.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function c(c,d){return d&&d instanceof p&&!(d instanceof a)&&(d=a(d)),p.fn.init.call(this,c,d,b)},a.fn.init.prototype=a.fn;var b=a(e);return a}}();var bH,bI,bJ,bK=/alpha\([^)]*\)/i,bL=/opacity=([^)]*)/,bM=/^(top|right|bottom|left)$/,bN=/^margin/,bO=new RegExp("^("+q+")(.*)$","i"),bP=new RegExp("^("+q+")(?!px)[a-z%]+$","i"),bQ=new RegExp("^([-+])=("+q+")","i"),bR={},bS={position:"absolute",visibility:"hidden",display:"block"},bT={letterSpacing:0,fontWeight:400,lineHeight:1},bU=["Top","Right","Bottom","Left"],bV=["Webkit","O","Moz","ms"],bW=p.fn.toggle;p.fn.extend({css:function(a,c){return p.access(this,function(a,c,d){return d!==b?p.style(a,c,d):p.css(a,c)},a,c,arguments.length>1)},show:function(){return bZ(this,!0)},hide:function(){return bZ(this)},toggle:function(a,b){var c=typeof a=="boolean";return p.isFunction(a)&&p.isFunction(b)?bW.apply(this,arguments):this.each(function(){(c?a:bY(this))?p(this).show():p(this).hide()})}}),p.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=bH(a,"opacity");return c===""?"1":c}}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":p.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!a||a.nodeType===3||a.nodeType===8||!a.style)return;var f,g,h,i=p.camelCase(c),j=a.style;c=p.cssProps[i]||(p.cssProps[i]=bX(j,i)),h=p.cssHooks[c]||p.cssHooks[i];if(d===b)return h&&"get"in h&&(f=h.get(a,!1,e))!==b?f:j[c];g=typeof d,g==="string"&&(f=bQ.exec(d))&&(d=(f[1]+1)*f[2]+parseFloat(p.css(a,c)),g="number");if(d==null||g==="number"&&isNaN(d))return;g==="number"&&!p.cssNumber[i]&&(d+="px");if(!h||!("set"in h)||(d=h.set(a,d,e))!==b)try{j[c]=d}catch(k){}},css:function(a,c,d,e){var f,g,h,i=p.camelCase(c);return c=p.cssProps[i]||(p.cssProps[i]=bX(a.style,i)),h=p.cssHooks[c]||p.cssHooks[i],h&&"get"in h&&(f=h.get(a,!0,e)),f===b&&(f=bH(a,c)),f==="normal"&&c in bT&&(f=bT[c]),d||e!==b?(g=parseFloat(f),d||p.isNumeric(g)?g||0:f):f},swap:function(a,b,c){var d,e,f={};for(e in b)f[e]=a.style[e],a.style[e]=b[e];d=c.call(a);for(e in b)a.style[e]=f[e];return d}}),a.getComputedStyle?bH=function(a,b){var c,d,e,f,g=getComputedStyle(a,null),h=a.style;return g&&(c=g[b],c===""&&!p.contains(a.ownerDocument.documentElement,a)&&(c=p.style(a,b)),bP.test(c)&&bN.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=c,c=g.width,h.width=d,h.minWidth=e,h.maxWidth=f)),c}:e.documentElement.currentStyle&&(bH=function(a,b){var c,d,e=a.currentStyle&&a.currentStyle[b],f=a.style;return e==null&&f&&f[b]&&(e=f[b]),bP.test(e)&&!bM.test(b)&&(c=f.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),f.left=b==="fontSize"?"1em":e,e=f.pixelLeft+"px",f.left=c,d&&(a.runtimeStyle.left=d)),e===""?"auto":e}),p.each(["height","width"],function(a,b){p.cssHooks[b]={get:function(a,c,d){if(c)return a.offsetWidth!==0||bH(a,"display")!=="none"?ca(a,b,d):p.swap(a,bS,function(){return ca(a,b,d)})},set:function(a,c,d){return b$(a,c,d?b_(a,b,d,p.support.boxSizing&&p.css(a,"boxSizing")==="border-box"):0)}}}),p.support.opacity||(p.cssHooks.opacity={get:function(a,b){return bL.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=p.isNumeric(b)?"alpha(opacity="+b*100+")":"",f=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&p.trim(f.replace(bK,""))===""&&c.removeAttribute){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bK.test(f)?f.replace(bK,e):f+" "+e}}),p(function(){p.support.reliableMarginRight||(p.cssHooks.marginRight={get:function(a,b){return p.swap(a,{display:"inline-block"},function(){if(b)return bH(a,"marginRight")})}}),!p.support.pixelPosition&&p.fn.position&&p.each(["top","left"],function(a,b){p.cssHooks[b]={get:function(a,c){if(c){var d=bH(a,b);return bP.test(d)?p(a).position()[b]+"px":d}}}})}),p.expr&&p.expr.filters&&(p.expr.filters.hidden=function(a){return a.offsetWidth===0&&a.offsetHeight===0||!p.support.reliableHiddenOffsets&&(a.style&&a.style.display||bH(a,"display"))==="none"},p.expr.filters.visible=function(a){return!p.expr.filters.hidden(a)}),p.each({margin:"",padding:"",border:"Width"},function(a,b){p.cssHooks[a+b]={expand:function(c){var d,e=typeof c=="string"?c.split(" "):[c],f={};for(d=0;d<4;d++)f[a+bU[d]+b]=e[d]||e[d-2]||e[0];return f}},bN.test(a)||(p.cssHooks[a+b].set=b$)});var cc=/%20/g,cd=/\[\]$/,ce=/\r?\n/g,cf=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,cg=/^(?:select|textarea)/i;p.fn.extend({serialize:function(){return p.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?p.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||cg.test(this.nodeName)||cf.test(this.type))}).map(function(a,b){var c=p(this).val();return c==null?null:p.isArray(c)?p.map(c,function(a,c){return{name:b.name,value:a.replace(ce,"\r\n")}}):{name:b.name,value:c.replace(ce,"\r\n")}}).get()}}),p.param=function(a,c){var d,e=[],f=function(a,b){b=p.isFunction(b)?b():b==null?"":b,e[e.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=p.ajaxSettings&&p.ajaxSettings.traditional);if(p.isArray(a)||a.jquery&&!p.isPlainObject(a))p.each(a,function(){f(this.name,this.value)});else for(d in a)ch(d,a[d],c,f);return e.join("&").replace(cc,"+")};var ci,cj,ck=/#.*$/,cl=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,cm=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,cn=/^(?:GET|HEAD)$/,co=/^\/\//,cp=/\?/,cq=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,cr=/([?&])_=[^&]*/,cs=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,ct=p.fn.load,cu={},cv={},cw=["*/"]+["*"];try{ci=f.href}catch(cx){ci=e.createElement("a"),ci.href="",ci=ci.href}cj=cs.exec(ci.toLowerCase())||[],p.fn.load=function(a,c,d){if(typeof a!="string"&&ct)return ct.apply(this,arguments);if(!this.length)return this;var e,f,g,h=this,i=a.indexOf(" ");return i>=0&&(e=a.slice(i,a.length),a=a.slice(0,i)),p.isFunction(c)?(d=c,c=b):typeof c=="object"&&(f="POST"),p.ajax({url:a,type:f,dataType:"html",data:c,complete:function(a,b){d&&h.each(d,g||[a.responseText,b,a])}}).done(function(a){g=arguments,h.html(e?p("<div>").append(a.replace(cq,"")).find(e):a)}),this},p.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){p.fn[b]=function(a){return this.on(b,a)}}),p.each(["get","post"],function(a,c){p[c]=function(a,d,e,f){return p.isFunction(d)&&(f=f||e,e=d,d=b),p.ajax({type:c,url:a,data:d,success:e,dataType:f})}}),p.extend({getScript:function(a,c){return p.get(a,b,c,"script")},getJSON:function(a,b,c){return p.get(a,b,c,"json")},ajaxSetup:function(a,b){return b?cA(a,p.ajaxSettings):(b=a,a=p.ajaxSettings),cA(a,b),a},ajaxSettings:{url:ci,isLocal:cm.test(cj[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":cw},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":p.parseJSON,"text xml":p.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:cy(cu),ajaxTransport:cy(cv),ajax:function(a,c){function y(a,c,f,i){var k,s,t,u,w,y=c;if(v===2)return;v=2,h&&clearTimeout(h),g=b,e=i||"",x.readyState=a>0?4:0,f&&(u=cB(l,x,f));if(a>=200&&a<300||a===304)l.ifModified&&(w=x.getResponseHeader("Last-Modified"),w&&(p.lastModified[d]=w),w=x.getResponseHeader("Etag"),w&&(p.etag[d]=w)),a===304?(y="notmodified",k=!0):(k=cC(l,u),y=k.state,s=k.data,t=k.error,k=!t);else{t=y;if(!y||a)y="error",a<0&&(a=0)}x.status=a,x.statusText=""+(c||y),k?o.resolveWith(m,[s,y,x]):o.rejectWith(m,[x,y,t]),x.statusCode(r),r=b,j&&n.trigger("ajax"+(k?"Success":"Error"),[x,l,k?s:t]),q.fireWith(m,[x,y]),j&&(n.trigger("ajaxComplete",[x,l]),--p.active||p.event.trigger("ajaxStop"))}typeof a=="object"&&(c=a,a=b),c=c||{};var d,e,f,g,h,i,j,k,l=p.ajaxSetup({},c),m=l.context||l,n=m!==l&&(m.nodeType||m instanceof p)?p(m):p.event,o=p.Deferred(),q=p.Callbacks("once memory"),r=l.statusCode||{},t={},u={},v=0,w="canceled",x={readyState:0,setRequestHeader:function(a,b){if(!v){var c=a.toLowerCase();a=u[c]=u[c]||a,t[a]=b}return this},getAllResponseHeaders:function(){return v===2?e:null},getResponseHeader:function(a){var c;if(v===2){if(!f){f={};while(c=cl.exec(e))f[c[1].toLowerCase()]=c[2]}c=f[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){return v||(l.mimeType=a),this},abort:function(a){return a=a||w,g&&g.abort(a),y(0,a),this}};o.promise(x),x.success=x.done,x.error=x.fail,x.complete=q.add,x.statusCode=function(a){if(a){var b;if(v<2)for(b in a)r[b]=[r[b],a[b]];else b=a[x.status],x.always(b)}return this},l.url=((a||l.url)+"").replace(ck,"").replace(co,cj[1]+"//"),l.dataTypes=p.trim(l.dataType||"*").toLowerCase().split(s),l.crossDomain==null&&(i=cs.exec(l.url.toLowerCase()),l.crossDomain=!(!i||i[1]==cj[1]&&i[2]==cj[2]&&(i[3]||(i[1]==="http:"?80:443))==(cj[3]||(cj[1]==="http:"?80:443)))),l.data&&l.processData&&typeof l.data!="string"&&(l.data=p.param(l.data,l.traditional)),cz(cu,l,c,x);if(v===2)return x;j=l.global,l.type=l.type.toUpperCase(),l.hasContent=!cn.test(l.type),j&&p.active++===0&&p.event.trigger("ajaxStart");if(!l.hasContent){l.data&&(l.url+=(cp.test(l.url)?"&":"?")+l.data,delete l.data),d=l.url;if(l.cache===!1){var z=p.now(),A=l.url.replace(cr,"$1_="+z);l.url=A+(A===l.url?(cp.test(l.url)?"&":"?")+"_="+z:"")}}(l.data&&l.hasContent&&l.contentType!==!1||c.contentType)&&x.setRequestHeader("Content-Type",l.contentType),l.ifModified&&(d=d||l.url,p.lastModified[d]&&x.setRequestHeader("If-Modified-Since",p.lastModified[d]),p.etag[d]&&x.setRequestHeader("If-None-Match",p.etag[d])),x.setRequestHeader("Accept",l.dataTypes[0]&&l.accepts[l.dataTypes[0]]?l.accepts[l.dataTypes[0]]+(l.dataTypes[0]!=="*"?", "+cw+"; q=0.01":""):l.accepts["*"]);for(k in l.headers)x.setRequestHeader(k,l.headers[k]);if(!l.beforeSend||l.beforeSend.call(m,x,l)!==!1&&v!==2){w="abort";for(k in{success:1,error:1,complete:1})x[k](l[k]);g=cz(cv,l,c,x);if(!g)y(-1,"No Transport");else{x.readyState=1,j&&n.trigger("ajaxSend",[x,l]),l.async&&l.timeout>0&&(h=setTimeout(function(){x.abort("timeout")},l.timeout));try{v=1,g.send(t,y)}catch(B){if(v<2)y(-1,B);else throw B}}return x}return x.abort()},active:0,lastModified:{},etag:{}});var cD=[],cE=/\?/,cF=/(=)\?(?=&|$)|\?\?/,cG=p.now();p.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=cD.pop()||p.expando+"_"+cG++;return this[a]=!0,a}}),p.ajaxPrefilter("json jsonp",function(c,d,e){var f,g,h,i=c.data,j=c.url,k=c.jsonp!==!1,l=k&&cF.test(j),m=k&&!l&&typeof i=="string"&&!(c.contentType||"").indexOf("application/x-www-form-urlencoded")&&cF.test(i);if(c.dataTypes[0]==="jsonp"||l||m)return f=c.jsonpCallback=p.isFunction(c.jsonpCallback)?c.jsonpCallback():c.jsonpCallback,g=a[f],l?c.url=j.replace(cF,"$1"+f):m?c.data=i.replace(cF,"$1"+f):k&&(c.url+=(cE.test(j)?"&":"?")+c.jsonp+"="+f),c.converters["script json"]=function(){return h||p.error(f+" was not called"),h[0]},c.dataTypes[0]="json",a[f]=function(){h=arguments},e.always(function(){a[f]=g,c[f]&&(c.jsonpCallback=d.jsonpCallback,cD.push(f)),h&&p.isFunction(g)&&g(h[0]),h=g=b}),"script"}),p.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){return p.globalEval(a),a}}}),p.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),p.ajaxTransport("script",function(a){if(a.crossDomain){var c,d=e.head||e.getElementsByTagName("head")[0]||e.documentElement;return{send:function(f,g){c=e.createElement("script"),c.async="async",a.scriptCharset&&(c.charset=a.scriptCharset),c.src=a.url,c.onload=c.onreadystatechange=function(a,e){if(e||!c.readyState||/loaded|complete/.test(c.readyState))c.onload=c.onreadystatechange=null,d&&c.parentNode&&d.removeChild(c),c=b,e||g(200,"success")},d.insertBefore(c,d.firstChild)},abort:function(){c&&c.onload(0,1)}}}});var cH,cI=a.ActiveXObject?function(){for(var a in cH)cH[a](0,1)}:!1,cJ=0;p.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&cK()||cL()}:cK,function(a){p.extend(p.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(p.ajaxSettings.xhr()),p.support.ajax&&p.ajaxTransport(function(c){if(!c.crossDomain||p.support.cors){var d;return{send:function(e,f){var g,h,i=c.xhr();c.username?i.open(c.type,c.url,c.async,c.username,c.password):i.open(c.type,c.url,c.async);if(c.xhrFields)for(h in c.xhrFields)i[h]=c.xhrFields[h];c.mimeType&&i.overrideMimeType&&i.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(h in e)i.setRequestHeader(h,e[h])}catch(j){}i.send(c.hasContent&&c.data||null),d=function(a,e){var h,j,k,l,m;try{if(d&&(e||i.readyState===4)){d=b,g&&(i.onreadystatechange=p.noop,cI&&delete cH[g]);if(e)i.readyState!==4&&i.abort();else{h=i.status,k=i.getAllResponseHeaders(),l={},m=i.responseXML,m&&m.documentElement&&(l.xml=m);try{l.text=i.responseText}catch(a){}try{j=i.statusText}catch(n){j=""}!h&&c.isLocal&&!c.crossDomain?h=l.text?200:404:h===1223&&(h=204)}}}catch(o){e||f(-1,o)}l&&f(h,j,l,k)},c.async?i.readyState===4?setTimeout(d,0):(g=++cJ,cI&&(cH||(cH={},p(a).unload(cI)),cH[g]=d),i.onreadystatechange=d):d()},abort:function(){d&&d(0,1)}}}});var cM,cN,cO=/^(?:toggle|show|hide)$/,cP=new RegExp("^(?:([-+])=|)("+q+")([a-z%]*)$","i"),cQ=/queueHooks$/,cR=[cX],cS={"*":[function(a,b){var c,d,e,f=this.createTween(a,b),g=cP.exec(b),h=f.cur(),i=+h||0,j=1;if(g){c=+g[2],d=g[3]||(p.cssNumber[a]?"":"px");if(d!=="px"&&i){i=p.css(f.elem,a,!0)||c||1;do e=j=j||".5",i=i/j,p.style(f.elem,a,i+d),j=f.cur()/h;while(j!==1&&j!==e)}f.unit=d,f.start=i,f.end=g[1]?i+(g[1]+1)*c:c}return f}]};p.Animation=p.extend(cV,{tweener:function(a,b){p.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");var c,d=0,e=a.length;for(;d<e;d++)c=a[d],cS[c]=cS[c]||[],cS[c].unshift(b)},prefilter:function(a,b){b?cR.unshift(a):cR.push(a)}}),p.Tween=cY,cY.prototype={constructor:cY,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(p.cssNumber[c]?"":"px")},cur:function(){var a=cY.propHooks[this.prop];return a&&a.get?a.get(this):cY.propHooks._default.get(this)},run:function(a){var b,c=cY.propHooks[this.prop];return this.pos=b=p.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration),this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):cY.propHooks._default.set(this),this}},cY.prototype.init.prototype=cY.prototype,cY.propHooks={_default:{get:function(a){var b;return a.elem[a.prop]==null||!!a.elem.style&&a.elem.style[a.prop]!=null?(b=p.css(a.elem,a.prop,!1,""),!b||b==="auto"?0:b):a.elem[a.prop]},set:function(a){p.fx.step[a.prop]?p.fx.step[a.prop](a):a.elem.style&&(a.elem.style[p.cssProps[a.prop]]!=null||p.cssHooks[a.prop])?p.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},cY.propHooks.scrollTop=cY.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},p.each(["toggle","show","hide"],function(a,b){var c=p.fn[b];p.fn[b]=function(d,e,f){return d==null||typeof d=="boolean"||!a&&p.isFunction(d)&&p.isFunction(e)?c.apply(this,arguments):this.animate(cZ(b,!0),d,e,f)}}),p.fn.extend({fadeTo:function(a,b,c,d){return this.filter(bY).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=p.isEmptyObject(a),f=p.speed(b,c,d),g=function(){var b=cV(this,p.extend({},a),f);e&&b.stop(!0)};return e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,c,d){var e=function(a){var b=a.stop;delete a.stop,b(d)};return typeof a!="string"&&(d=c,c=a,a=b),c&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,c=a!=null&&a+"queueHooks",f=p.timers,g=p._data(this);if(c)g[c]&&g[c].stop&&e(g[c]);else for(c in g)g[c]&&g[c].stop&&cQ.test(c)&&e(g[c]);for(c=f.length;c--;)f[c].elem===this&&(a==null||f[c].queue===a)&&(f[c].anim.stop(d),b=!1,f.splice(c,1));(b||!d)&&p.dequeue(this,a)})}}),p.each({slideDown:cZ("show"),slideUp:cZ("hide"),slideToggle:cZ("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){p.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),p.speed=function(a,b,c){var d=a&&typeof a=="object"?p.extend({},a):{complete:c||!c&&b||p.isFunction(a)&&a,duration:a,easing:c&&b||b&&!p.isFunction(b)&&b};d.duration=p.fx.off?0:typeof d.duration=="number"?d.duration:d.duration in p.fx.speeds?p.fx.speeds[d.duration]:p.fx.speeds._default;if(d.queue==null||d.queue===!0)d.queue="fx";return d.old=d.complete,d.complete=function(){p.isFunction(d.old)&&d.old.call(this),d.queue&&p.dequeue(this,d.queue)},d},p.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},p.timers=[],p.fx=cY.prototype.init,p.fx.tick=function(){var a,b=p.timers,c=0;for(;c<b.length;c++)a=b[c],!a()&&b[c]===a&&b.splice(c--,1);b.length||p.fx.stop()},p.fx.timer=function(a){a()&&p.timers.push(a)&&!cN&&(cN=setInterval(p.fx.tick,p.fx.interval))},p.fx.interval=13,p.fx.stop=function(){clearInterval(cN),cN=null},p.fx.speeds={slow:600,fast:200,_default:400},p.fx.step={},p.expr&&p.expr.filters&&(p.expr.filters.animated=function(a){return p.grep(p.timers,function(b){return a===b.elem}).length});var c$=/^(?:body|html)$/i;p.fn.offset=function(a){if(arguments.length)return a===b?this:this.each(function(b){p.offset.setOffset(this,a,b)});var c,d,e,f,g,h,i,j,k,l,m=this[0],n=m&&m.ownerDocument;if(!n)return;return(e=n.body)===m?p.offset.bodyOffset(m):(d=n.documentElement,p.contains(d,m)?(c=m.getBoundingClientRect(),f=c_(n),g=d.clientTop||e.clientTop||0,h=d.clientLeft||e.clientLeft||0,i=f.pageYOffset||d.scrollTop,j=f.pageXOffset||d.scrollLeft,k=c.top+i-g,l=c.left+j-h,{top:k,left:l}):{top:0,left:0})},p.offset={bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;return p.support.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(p.css(a,"marginTop"))||0,c+=parseFloat(p.css(a,"marginLeft"))||0),{top:b,left:c}},setOffset:function(a,b,c){var d=p.css(a,"position");d==="static"&&(a.style.position="relative");var e=p(a),f=e.offset(),g=p.css(a,"top"),h=p.css(a,"left"),i=(d==="absolute"||d==="fixed")&&p.inArray("auto",[g,h])>-1,j={},k={},l,m;i?(k=e.position(),l=k.top,m=k.left):(l=parseFloat(g)||0,m=parseFloat(h)||0),p.isFunction(b)&&(b=b.call(a,c,f)),b.top!=null&&(j.top=b.top-f.top+l),b.left!=null&&(j.left=b.left-f.left+m),"using"in b?b.using.call(a,j):e.css(j)}},p.fn.extend({position:function(){if(!this[0])return;var a=this[0],b=this.offsetParent(),c=this.offset(),d=c$.test(b[0].nodeName)?{top:0,left:0}:b.offset();return c.top-=parseFloat(p.css(a,"marginTop"))||0,c.left-=parseFloat(p.css(a,"marginLeft"))||0,d.top+=parseFloat(p.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(p.css(b[0],"borderLeftWidth"))||0,{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||e.body;while(a&&!c$.test(a.nodeName)&&p.css(a,"position")==="static")a=a.offsetParent;return a||e.body})}}),p.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,c){var d=/Y/.test(c);p.fn[a]=function(e){return p.access(this,function(a,e,f){var g=c_(a);if(f===b)return g?c in g?g[c]:g.document.documentElement[e]:a[e];g?g.scrollTo(d?p(g).scrollLeft():f,d?f:p(g).scrollTop()):a[e]=f},a,e,arguments.length,null)}}),p.each({Height:"height",Width:"width"},function(a,c){p.each({padding:"inner"+a,content:c,"":"outer"+a},function(d,e){p.fn[e]=function(e,f){var g=arguments.length&&(d||typeof e!="boolean"),h=d||(e===!0||f===!0?"margin":"border");return p.access(this,function(c,d,e){var f;return p.isWindow(c)?c.document.documentElement["client"+a]:c.nodeType===9?(f=c.documentElement,Math.max(c.body["scroll"+a],f["scroll"+a],c.body["offset"+a],f["offset"+a],f["client"+a])):e===b?p.css(c,d,e,h):p.style(c,d,e,h)},c,g?e:b,g)}})}),a.jQuery=a.$=p,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return p})})(window);

js/vendor/modernizr-2.6.1.min.js

1/* Modernizr 2.6.1 (Custom Build) | MIT & BSD
2 * Build: http://modernizr.com/download/#-fontface-backgroundsize-borderimage-borderradius-boxshadow-flexbox-hsla-multiplebgs-opacity-rgba-textshadow-cssanimations-csscolumns-generatedcontent-cssgradients-cssreflections-csstransforms-csstransforms3d-csstransitions-applicationcache-canvas-canvastext-draganddrop-hashchange-history-audio-video-indexeddb-input-inputtypes-localstorage-postmessage-sessionstorage-websockets-websqldatabase-webworkers-geolocation-inlinesvg-smil-svg-svgclippaths-touch-webgl-shiv-mq-cssclasses-addtest-prefixed-teststyles-testprop-testallprops-hasevent-prefixes-domprefixes-load
3 */
4;window.Modernizr=function(a,b,c){function D(a){j.cssText=a}function E(a,b){return D(n.join(a+";")+(b||""))}function F(a,b){return typeof a===b}function G(a,b){return!!~(""+a).indexOf(b)}function H(a,b){for(var d in a){var e=a[d];if(!G(e,"-")&&j[e]!==c)return b=="pfx"?e:!0}return!1}function I(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:F(f,"function")?f.bind(d||b):f}return!1}function J(a,b,c){var d=a.charAt(0).toUpperCase()+a.slice(1),e=(a+" "+p.join(d+" ")+d).split(" ");return F(b,"string")||F(b,"undefined")?H(e,b):(e=(a+" "+q.join(d+" ")+d).split(" "),I(e,b,c))}function K(){e.input=function(c){for(var d=0,e=c.length;d<e;d++)u[c[d]]=c[d]in k;return u.list&&(u.list=!!b.createElement("datalist")&&!!a.HTMLDataListElement),u}("autocomplete autofocus list placeholder max min multiple pattern required step".split(" ")),e.inputtypes=function(a){for(var d=0,e,f,h,i=a.length;d<i;d++)k.setAttribute("type",f=a[d]),e=k.type!=="text",e&&(k.value=l,k.style.cssText="position:absolute;visibility:hidden;",/^range$/.test(f)&&k.style.WebkitAppearance!==c?(g.appendChild(k),h=b.defaultView,e=h.getComputedStyle&&h.getComputedStyle(k,null).WebkitAppearance!=="textfield"&&k.offsetHeight!==0,g.removeChild(k)):/^(search|tel)$/.test(f)||(/^(url|email)$/.test(f)?e=k.checkValidity&&k.checkValidity()===!1:e=k.value!=l)),t[a[d]]=!!e;return t}("search tel url email datetime date month week time datetime-local number range color".split(" "))}var d="2.6.1",e={},f=!0,g=b.documentElement,h="modernizr",i=b.createElement(h),j=i.style,k=b.createElement("input"),l=":)",m={}.toString,n=" -webkit- -moz- -o- -ms- ".split(" "),o="Webkit Moz O ms",p=o.split(" "),q=o.toLowerCase().split(" "),r={svg:"http://www.w3.org/2000/svg"},s={},t={},u={},v=[],w=v.slice,x,y=function(a,c,d,e){var f,i,j,k=b.createElement("div"),l=b.body,m=l?l:b.createElement("body");if(parseInt(d,10))while(d--)j=b.createElement("div"),j.id=e?e[d]:h+(d+1),k.appendChild(j);return f=["&#173;",'<style id="s',h,'">',a,"</style>"].join(""),k.id=h,(l?k:m).innerHTML+=f,m.appendChild(k),l||(m.style.background="",g.appendChild(m)),i=c(k,a),l?k.parentNode.removeChild(k):m.parentNode.removeChild(m),!!i},z=function(b){var c=a.matchMedia||a.msMatchMedia;if(c)return c(b).matches;var d;return y("@media "+b+" { #"+h+" { position: absolute; } }",function(b){d=(a.getComputedStyle?getComputedStyle(b,null):b.currentStyle)["position"]=="absolute"}),d},A=function(){function d(d,e){e=e||b.createElement(a[d]||"div"),d="on"+d;var f=d in e;return f||(e.setAttribute||(e=b.createElement("div")),e.setAttribute&&e.removeAttribute&&(e.setAttribute(d,""),f=F(e[d],"function"),F(e[d],"undefined")||(e[d]=c),e.removeAttribute(d))),e=null,f}var a={select:"input",change:"input",submit:"form",reset:"form",error:"img",load:"img",abort:"img"};return d}(),B={}.hasOwnProperty,C;!F(B,"undefined")&&!F(B.call,"undefined")?C=function(a,b){return B.call(a,b)}:C=function(a,b){return b in a&&F(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=w.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(w.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(w.call(arguments)))};return e}),s.flexbox=function(){return J("flexWrap")},s.canvas=function(){var a=b.createElement("canvas");return!!a.getContext&&!!a.getContext("2d")},s.canvastext=function(){return!!e.canvas&&!!F(b.createElement("canvas").getContext("2d").fillText,"function")},s.webgl=function(){return!!a.WebGLRenderingContext},s.touch=function(){var c;return"ontouchstart"in a||a.DocumentTouch&&b instanceof DocumentTouch?c=!0:y(["@media (",n.join("touch-enabled),("),h,")","{#modernizr{top:9px;position:absolute}}"].join(""),function(a){c=a.offsetTop===9}),c},s.geolocation=function(){return"geolocation"in navigator},s.postmessage=function(){return!!a.postMessage},s.websqldatabase=function(){return!!a.openDatabase},s.indexedDB=function(){return!!J("indexedDB",a)},s.hashchange=function(){return A("hashchange",a)&&(b.documentMode===c||b.documentMode>7)},s.history=function(){return!!a.history&&!!history.pushState},s.draganddrop=function(){var a=b.createElement("div");return"draggable"in a||"ondragstart"in a&&"ondrop"in a},s.websockets=function(){return"WebSocket"in a||"MozWebSocket"in a},s.rgba=function(){return D("background-color:rgba(150,255,150,.5)"),G(j.backgroundColor,"rgba")},s.hsla=function(){return D("background-color:hsla(120,40%,100%,.5)"),G(j.backgroundColor,"rgba")||G(j.backgroundColor,"hsla")},s.multiplebgs=function(){return D("background:url(https://),url(https://),red url(https://)"),/(url\s*\(.*?){3}/.test(j.background)},s.backgroundsize=function(){return J("backgroundSize")},s.borderimage=function(){return J("borderImage")},s.borderradius=function(){return J("borderRadius")},s.boxshadow=function(){return J("boxShadow")},s.textshadow=function(){return b.createElement("div").style.textShadow===""},s.opacity=function(){return E("opacity:.55"),/^0.55$/.test(j.opacity)},s.cssanimations=function(){return J("animationName")},s.csscolumns=function(){return J("columnCount")},s.cssgradients=function(){var a="background-image:",b="gradient(linear,left top,right bottom,from(#9f9),to(white));",c="linear-gradient(left top,#9f9, white);";return D((a+"-webkit- ".split(" ").join(b+a)+n.join(c+a)).slice(0,-a.length)),G(j.backgroundImage,"gradient")},s.cssreflections=function(){return J("boxReflect")},s.csstransforms=function(){return!!J("transform")},s.csstransforms3d=function(){var a=!!J("perspective");return a&&"webkitPerspective"in g.style&&y("@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}",function(b,c){a=b.offsetLeft===9&&b.offsetHeight===3}),a},s.csstransitions=function(){return J("transition")},s.fontface=function(){var a;return y('@font-face {font-family:"font";src:url("https://")}',function(c,d){var e=b.getElementById("smodernizr"),f=e.sheet||e.styleSheet,g=f?f.cssRules&&f.cssRules[0]?f.cssRules[0].cssText:f.cssText||"":"";a=/src/i.test(g)&&g.indexOf(d.split(" ")[0])===0}),a},s.generatedcontent=function(){var a;return y(['#modernizr:after{content:"',l,'";visibility:hidden}'].join(""),function(b){a=b.offsetHeight>=1}),a},s.video=function(){var a=b.createElement("video"),c=!1;try{if(c=!!a.canPlayType)c=new Boolean(c),c.ogg=a.canPlayType('video/ogg; codecs="theora"').replace(/^no$/,""),c.h264=a.canPlayType('video/mp4; codecs="avc1.42E01E"').replace(/^no$/,""),c.webm=a.canPlayType('video/webm; codecs="vp8, vorbis"').replace(/^no$/,"")}catch(d){}return c},s.audio=function(){var a=b.createElement("audio"),c=!1;try{if(c=!!a.canPlayType)c=new Boolean(c),c.ogg=a.canPlayType('audio/ogg; codecs="vorbis"').replace(/^no$/,""),c.mp3=a.canPlayType("audio/mpeg;").replace(/^no$/,""),c.wav=a.canPlayType('audio/wav; codecs="1"').replace(/^no$/,""),c.m4a=(a.canPlayType("audio/x-m4a;")||a.canPlayType("audio/aac;")).replace(/^no$/,"")}catch(d){}return c},s.localstorage=function(){try{return localStorage.setItem(h,h),localStorage.removeItem(h),!0}catch(a){return!1}},s.sessionstorage=function(){try{return sessionStorage.setItem(h,h),sessionStorage.removeItem(h),!0}catch(a){return!1}},s.webworkers=function(){return!!a.Worker},s.applicationcache=function(){return!!a.applicationCache},s.svg=function(){return!!b.createElementNS&&!!b.createElementNS(r.svg,"svg").createSVGRect},s.inlinesvg=function(){var a=b.createElement("div");return a.innerHTML="<svg/>",(a.firstChild&&a.firstChild.namespaceURI)==r.svg},s.smil=function(){return!!b.createElementNS&&/SVGAnimate/.test(m.call(b.createElementNS(r.svg,"animate")))},s.svgclippaths=function(){return!!b.createElementNS&&/SVGClipPath/.test(m.call(b.createElementNS(r.svg,"clipPath")))};for(var L in s)C(s,L)&&(x=L.toLowerCase(),e[x]=s[L](),v.push((e[x]?"":"no-")+x));return e.input||K(),e.addTest=function(a,b){if(typeof a=="object")for(var d in a)C(a,d)&&e.addTest(d,a[d]);else{a=a.toLowerCase();if(e[a]!==c)return e;b=typeof b=="function"?b():b,f&&(g.className+=" "+(b?"":"no-")+a),e[a]=b}return e},D(""),i=k=null,function(a,b){function k(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x<style>"+b+"</style>",d.insertBefore(c.lastChild,d.firstChild)}function l(){var a=r.elements;return typeof a=="string"?a.split(" "):a}function m(a){var b=i[a[g]];return b||(b={},h++,a[g]=h,i[h]=b),b}function n(a,c,f){c||(c=b);if(j)return c.createElement(a);f||(f=m(c));var g;return f.cache[a]?g=f.cache[a].cloneNode():e.test(a)?g=(f.cache[a]=f.createElem(a)).cloneNode():g=f.createElem(a),g.canHaveChildren&&!d.test(a)?f.frag.appendChild(g):g}function o(a,c){a||(a=b);if(j)return a.createDocumentFragment();c=c||m(a);var d=c.frag.cloneNode(),e=0,f=l(),g=f.length;for(;e<g;e++)d.createElement(f[e]);return d}function p(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return r.shivMethods?n(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+l().join().replace(/\w+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(r,b.frag)}function q(a){a||(a=b);var c=m(a);return r.shivCSS&&!f&&!c.hasCSS&&(c.hasCSS=!!k(a,"article,aside,figcaption,figure,footer,header,hgroup,nav,section{display:block}mark{background:#FF0;color:#000}")),j||p(a,c),a}var c=a.html5||{},d=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,e=/^<|^(?:a|b|button|code|div|fieldset|form|h1|h2|h3|h4|h5|h6|i|iframe|img|input|label|li|link|ol|option|p|param|q|script|select|span|strong|style|table|tbody|td|textarea|tfoot|th|thead|tr|ul)$/i,f,g="_html5shiv",h=0,i={},j;(function(){try{var a=b.createElement("a");a.innerHTML="<xyz></xyz>",f="hidden"in a,j=a.childNodes.length==1||function(){b.createElement("a");var a=b.createDocumentFragment();return typeof a.cloneNode=="undefined"||typeof a.createDocumentFragment=="undefined"||typeof a.createElement=="undefined"}()}catch(c){f=!0,j=!0}})();var r={elements:c.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",shivCSS:c.shivCSS!==!1,supportsUnknownElements:j,shivMethods:c.shivMethods!==!1,type:"default",shivDocument:q,createElement:n,createDocumentFragment:o};a.html5=r,q(b)}(this,b),e._version=d,e._prefixes=n,e._domPrefixes=q,e._cssomPrefixes=p,e.mq=z,e.hasEvent=A,e.testProp=function(a){return H([a])},e.testAllProps=J,e.testStyles=y,e.prefixed=function(a,b,c){return b?J(a,b,c):J(a,"pfx")},g.className=g.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(f?" js "+v.join(" "):""),e}(this,this.document),function(a,b,c){function d(a){return o.call(a)=="[object Function]"}function e(a){return typeof a=="string"}function f(){}function g(a){return!a||a=="loaded"||a=="complete"||a=="uninitialized"}function h(){var a=p.shift();q=1,a?a.t?m(function(){(a.t=="c"?B.injectCss:B.injectJs)(a.s,0,a.a,a.x,a.e,1)},0):(a(),h()):q=0}function i(a,c,d,e,f,i,j){function k(b){if(!o&&g(l.readyState)&&(u.r=o=1,!q&&h(),l.onload=l.onreadystatechange=null,b)){a!="img"&&m(function(){t.removeChild(l)},50);for(var d in y[c])y[c].hasOwnProperty(d)&&y[c][d].onload()}}var j=j||B.errorTimeout,l={},o=0,r=0,u={t:d,s:c,e:f,a:i,x:j};y[c]===1&&(r=1,y[c]=[],l=b.createElement(a)),a=="object"?l.data=c:(l.src=c,l.type=a),l.width=l.height="0",l.onerror=l.onload=l.onreadystatechange=function(){k.call(this,r)},p.splice(e,0,u),a!="img"&&(r||y[c]===2?(t.insertBefore(l,s?null:n),m(k,j)):y[c].push(l))}function j(a,b,c,d,f){return q=0,b=b||"j",e(a)?i(b=="c"?v:u,a,b,this.i++,c,d,f):(p.splice(this.i++,0,a),p.length==1&&h()),this}function k(){var a=B;return a.loader={load:j,i:0},a}var l=b.documentElement,m=a.setTimeout,n=b.getElementsByTagName("script")[0],o={}.toString,p=[],q=0,r="MozAppearance"in l.style,s=r&&!!b.createRange().compareNode,t=s?l:n.parentNode,l=a.opera&&o.call(a.opera)=="[object Opera]",l=!!b.attachEvent&&!l,u=r?"object":l?"script":"img",v=l?"script":u,w=Array.isArray||function(a){return o.call(a)=="[object Array]"},x=[],y={},z={timeout:function(a,b){return b.length&&(a.timeout=b[0]),a}},A,B;B=function(a){function b(a){var a=a.split("!"),b=x.length,c=a.pop(),d=a.length,c={url:c,origUrl:c,prefixes:a},e,f,g;for(f=0;f<d;f++)g=a[f].split("="),(e=z[g.shift()])&&(c=e(c,g));for(f=0;f<b;f++)c=x[f](c);return c}function g(a,e,f,g,i){var j=b(a),l=j.autoCallback;j.url.split(".").pop().split("?").shift(),j.bypass||(e&&(e=d(e)?e:e[a]||e[g]||e[a.split("/").pop().split("?")[0]]||h),j.instead?j.instead(a,e,f,g,i):(y[j.url]?j.noexec=!0:y[j.url]=1,f.load(j.url,j.forceCSS||!j.forceJS&&"css"==j.url.split(".").pop().split("?").shift()?"c":c,j.noexec,j.attrs,j.timeout),(d(e)||d(l))&&f.load(function(){k(),e&&e(j.origUrl,i,g),l&&l(j.origUrl,i,g),y[j.url]=2})))}function i(a,b){function c(a,c){if(a){if(e(a))c||(j=function(){var a=[].slice.call(arguments);k.apply(this,a),l()}),g(a,j,b,0,h);else if(Object(a)===a)for(n in m=function(){var b=0,c;for(c in a)a.hasOwnProperty(c)&&b++;return b}(),a)a.hasOwnProperty(n)&&(!c&&!--m&&(d(j)?j=function(){var a=[].slice.call(arguments);k.apply(this,a),l()}:j[n]=function(a){return function(){var b=[].slice.call(arguments);a&&a.apply(this,b),l()}}(k[n])),g(a[n],j,b,n,h))}else!c&&l()}var h=!!a.test,i=a.load||a.both,j=a.callback||f,k=j,l=a.complete||f,m,n;c(h?a.yep:a.nope,!!i),i&&c(i)}var j,l,m=this.yepnope.loader;if(e(a))g(a,0,m,0);else if(w(a))for(j=0;j<a.length;j++)l=a[j],e(l)?g(l,0,m,0):w(l)?B(l):Object(l)===l&&i(l,m);else Object(a)===a&&i(a,m)},B.addPrefix=function(a,b){z[a]=b},B.addFilter=function(a){x.push(a)},B.errorTimeout=1e4,b.readyState==null&&b.addEventListener&&(b.readyState="loading",b.addEventListener("DOMContentLoaded",A=function(){b.removeEventListener("DOMContentLoaded",A,0),b.readyState="complete"},0)),a.yepnope=k(),a.yepnope.executeStack=h,a.yepnope.injectJs=function(a,c,d,e,i,j){var k=b.createElement("script"),l,o,e=e||B.errorTimeout;k.src=a;for(o in d)k.setAttribute(o,d[o]);c=j?h:c||f,k.onreadystatechange=k.onload=function(){!l&&g(k.readyState)&&(l=1,c(),k.onload=k.onreadystatechange=null)},m(function(){l||(l=1,c(1))},e),i?k.onload():n.parentNode.insertBefore(k,n)},a.yepnope.injectCss=function(a,c,d,e,g,i){var e=b.createElement("link"),j,c=i?h:c||f;e.href=a,e.rel="stylesheet",e.type="text/css";for(j in d)e.setAttribute(j,d[j]);g||(n.parentNode.insertBefore(e,n),m(c,0))}}(this,document),Modernizr.load=function(){yepnope.apply(window,[].slice.call(arguments,0))};