diff --git a/.gitignore b/.gitignore index ea392273..45d67c7a 100644 --- a/.gitignore +++ b/.gitignore @@ -4,7 +4,7 @@ # SASS # ######## -.sass-cache +.sass-cache/ *.scssc @@ -23,6 +23,9 @@ Thumbs.db # Random *.sublime-* -node_modules -dist +node_modules/ +dist/ *.map + +# Jekyll +_site/ diff --git a/.svnignore b/.svnignore new file mode 100644 index 00000000..d31f16c9 --- /dev/null +++ b/.svnignore @@ -0,0 +1,29 @@ +# General # +########### +*.o *.lo *.la #*# .*.rej *.rej +.*~ *~ .#* .DS_Store thumbs.db +Thumbs.db *.bak *.class *.exe *.dll +*.mine *.obj *.ncb *.lib *.log +*.idb *.pdb *.ilk *.msi* .res *.pch *.suo +*.exp *.*~ *.~* ~*.* cvs CVS .CVS .cvs +release Release debug Debug +ignore Ignore bin Bin obj Obj +*.csproj.user *.user +*.generated.cs + + +# Kickoff added # +################# +*.sublime-* +node_modules/ +dist/ +*.map + +# SASS # +######## +.sass-cache/ +*.scssc + +# Jekyll # +########## +_site/ \ No newline at end of file diff --git a/Gruntfile.js b/Gruntfile.js index 3543bb84..cdf146d2 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -19,10 +19,7 @@ module.exports = function (grunt) { pkg: require('./package'), jshint: { - all: [ - 'Gruntfile.js', - 'js/**/*.js' - ], + all: jsFileList, options: { jshintrc: '.jshintrc' } @@ -34,7 +31,9 @@ module.exports = function (grunt) { options: { unixNewlines: true, style: 'expanded', - lineNumbers: true + lineNumbers: false, + debugInfo : false, + precision : 8 }, files: { 'css/kickoff.css': 'scss/kickoff.scss', @@ -55,8 +54,6 @@ module.exports = function (grunt) { uglify: { options: { - message: 'We are now ugly', - // mangle: Turn on or off mangling mangle: true, diff --git a/crossdomain.xml b/crossdomain.xml deleted file mode 100644 index a93d121f..00000000 --- a/crossdomain.xml +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - diff --git a/css/kickoff-old-ie.css b/css/kickoff-old-ie.css index 794780de..b587270d 100644 --- a/css/kickoff-old-ie.css +++ b/css/kickoff-old-ie.css @@ -1,15 +1,17 @@ .dl-horizontal dt { overflow: hidden; text-overflow: ellipsis; - white-space: nowrap; } + white-space: nowrap; +} input[type="file"]:focus, input[type="radio"]:focus, input[type="checkbox"]:focus, -select:focus, .btn:focus { - outline: thin dotted #333333; +select:focus { + outline: thin dotted #333; outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; } + outline-offset: -2px; +} .radio.inline, .checkbox.inline, .form-search input, .form-search textarea, .form-search select, .form-search .help-inline, .form-search .uneditable-input, .form-search .input-prepend, .form-search .input-append, @@ -28,207 +30,157 @@ select:focus, .btn:focus { .form-horizontal .input-prepend, .form-horizontal .input-append, .form-search label, .form-inline label, .help-inline, .input-prepend .add-on, -.input-append .add-on, .btn { - display: inline-block; } - .lt-ie8 .radio.inline, - .lt-ie8 .checkbox.inline, .lt-ie8 .form-search input, .form-search .lt-ie8 input, .lt-ie8 .form-search textarea, .form-search .lt-ie8 textarea, .lt-ie8 .form-search select, .form-search .lt-ie8 select, .lt-ie8 .form-search .help-inline, .form-search .lt-ie8 .help-inline, .lt-ie8 .form-search .uneditable-input, .form-search .lt-ie8 .uneditable-input, .lt-ie8 .form-search .input-prepend, .form-search .lt-ie8 .input-prepend, .lt-ie8 .form-search .input-append, .form-search .lt-ie8 .input-append, - .lt-ie8 .form-inline input, - .form-inline .lt-ie8 input, - .lt-ie8 .form-inline textarea, - .form-inline .lt-ie8 textarea, - .lt-ie8 .form-inline select, - .form-inline .lt-ie8 select, - .lt-ie8 .form-inline .help-inline, - .form-inline .lt-ie8 .help-inline, - .lt-ie8 .form-inline .uneditable-input, - .form-inline .lt-ie8 .uneditable-input, - .lt-ie8 .form-inline .input-prepend, - .form-inline .lt-ie8 .input-prepend, - .lt-ie8 .form-inline .input-append, - .form-inline .lt-ie8 .input-append, - .lt-ie8 .form-horizontal input, - .form-horizontal .lt-ie8 input, - .lt-ie8 .form-horizontal textarea, - .form-horizontal .lt-ie8 textarea, - .lt-ie8 .form-horizontal select, - .form-horizontal .lt-ie8 select, - .lt-ie8 .form-horizontal .help-inline, - .form-horizontal .lt-ie8 .help-inline, - .lt-ie8 .form-horizontal .uneditable-input, - .form-horizontal .lt-ie8 .uneditable-input, - .lt-ie8 .form-horizontal .input-prepend, - .form-horizontal .lt-ie8 .input-prepend, - .lt-ie8 .form-horizontal .input-append, - .form-horizontal .lt-ie8 .input-append, .lt-ie8 .form-search label, .form-search .lt-ie8 label, - .lt-ie8 .form-inline label, - .form-inline .lt-ie8 label, .lt-ie8 .help-inline, .lt-ie8 .input-prepend .add-on, .input-prepend .lt-ie8 .add-on, - .lt-ie8 .input-append .add-on, - .input-append .lt-ie8 .add-on, .lt-ie8 .btn { - display: inline; - zoom: 1; } - -.btn { - *margin-left: .3em; } - .btn:first-child { - *margin-left: 0; } - -.btn, .btn-primary, .btn-warning, .btn-danger, .btn-success, .btn-info, .btn-inverse { - filter: "progid:DXImageTransform.Microsoft.gradient(enabled = false)"; } +.input-append .add-on { + display: inline-block; +} +.lt-ie8 .radio.inline, +.lt-ie8 .checkbox.inline, .lt-ie8 .form-search input, .form-search .lt-ie8 input, .lt-ie8 .form-search textarea, .form-search .lt-ie8 textarea, .lt-ie8 .form-search select, .form-search .lt-ie8 select, .lt-ie8 .form-search .uneditable-input, .form-search .lt-ie8 .uneditable-input, .lt-ie8 .form-search .input-prepend, .form-search .lt-ie8 .input-prepend, .lt-ie8 .form-search .input-append, .form-search .lt-ie8 .input-append, +.lt-ie8 .form-inline input, +.form-inline .lt-ie8 input, +.lt-ie8 .form-inline textarea, +.form-inline .lt-ie8 textarea, +.lt-ie8 .form-inline select, +.form-inline .lt-ie8 select, +.lt-ie8 .form-inline .uneditable-input, +.form-inline .lt-ie8 .uneditable-input, +.lt-ie8 .form-inline .input-prepend, +.form-inline .lt-ie8 .input-prepend, +.lt-ie8 .form-inline .input-append, +.form-inline .lt-ie8 .input-append, +.lt-ie8 .form-horizontal input, +.form-horizontal .lt-ie8 input, +.lt-ie8 .form-horizontal textarea, +.form-horizontal .lt-ie8 textarea, +.lt-ie8 .form-horizontal select, +.form-horizontal .lt-ie8 select, +.lt-ie8 .form-horizontal .uneditable-input, +.form-horizontal .lt-ie8 .uneditable-input, +.lt-ie8 .form-horizontal .input-prepend, +.form-horizontal .lt-ie8 .input-prepend, +.lt-ie8 .form-horizontal .input-append, +.form-horizontal .lt-ie8 .input-append, .lt-ie8 .form-search label, .form-search .lt-ie8 label, +.lt-ie8 .form-inline label, +.form-inline .lt-ie8 label, .lt-ie8 .help-inline, .lt-ie8 .input-prepend .add-on, .input-prepend .lt-ie8 .add-on, +.lt-ie8 .input-append .add-on, +.input-append .lt-ie8 .add-on { + display: inline; + zoom: 1; +} * { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; -ms-box-sizing: border-box; box-sizing: border-box; - *behavior: url(polyfills/boxsizing.htc); } - -article, aside, details, figcaption, figure, footer, header, hgroup, nav, section, summary { - display: block; } +} + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +nav, +section, +summary { + display: block; +} audio, canvas, video { display: inline-block; - *display: inline; - *zoom: 1; } +} audio:not([controls]) { display: none; - height: 0; } + height: 0; +} -[hidden] { - display: none; } +[hidden], +template { + display: none; +} /* ============ */ /* === BASE === */ /* ============ */ -html { - font-size: 100%; - /* 1 */ - -webkit-text-size-adjust: 100%; - /* 2 */ - -ms-text-size-adjust: 100%; - /* 2 */ } - -html, button, input, select, textarea { - font-family: sans-serif; } - body { - margin: 0; } + margin: 0; +} + +a { + background: transparent; +} a:focus { - outline: thin dotted; } + outline: thin dotted; +} a:hover, a:active { - outline: 0; } - -dl, menu, ol.normal, ul.normal { - margin: 1em 0; } - -menu, ol.normal, ul.normal { - padding: 0 0 0 40px; } - -nav ul, -nav ol { - list-style: none; - list-style-image: none; } - -img { - border: 0; - /* 1 */ - -ms-interpolation-mode: bicubic; - /* 2 */ } - -svg:not(:root) { - overflow: hidden; } + outline: 0; +} figure { - margin: 0; } - -form { - margin: 0; } - -fieldset { - border: 1px solid silver; - margin: 0 2px; - padding: 0.35em 0.625em 0.75em; } - -legend { - border: 0; - padding: 0; - white-space: normal; - *margin-left: -7px; } - -button, input, select, textarea { - font-size: 100%; margin: 0; - vertical-align: baseline; - *vertical-align: middle; } +} button, input { - line-height: normal; } - -button, -input[type="button"], -input[type="reset"], -input[type="submit"] { - cursor: pointer; - -webkit-appearance: button; - *overflow: visible; } - -button[disabled], -input[disabled] { - cursor: default; } - -input[type="checkbox"], -input[type="radio"] { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - -ms-box-sizing: border-box; - box-sizing: border-box; - padding: 0; - *height: 13px; - *width: 13px; } + line-height: normal; +} input[type="search"] { - -webkit-appearance: textfield; } + -webkit-appearance: textfield; + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + -ms-box-sizing: content-box; + box-sizing: content-box; +} input[type="search"]::-webkit-search-decoration, input[type="search"]::-webkit-search-cancel-button { - -webkit-appearance: none; } + -webkit-appearance: none; +} button::-moz-focus-inner, input::-moz-focus-inner { border: 0; - padding: 0; } + padding: 0; +} textarea { overflow: auto; - vertical-align: top; } - -table { - border-collapse: collapse; - border-spacing: 0; } + vertical-align: top; +} .container { padding-left: 0px; padding-right: 0px; width: 95%; max-width: 1000px; - margin: 0 auto; } + margin: 0 auto; +} .row { width: 100%; margin: 0 auto; - *zoom: 1; } - .row:before, .row:after { - content: " "; - display: table; } - .row:after { - clear: both; } - .row .row { - min-width: 0; } - .row .row .col { - padding: 0; } + *zoom: 1; +} +.row:before, .row:after { + content: " "; + display: table; +} +.row:after { + clear: both; +} +.row .row { + min-width: 0; +} +.row .row .col { + padding: 0; +} .col { margin-left: 2%; @@ -240,184 +192,65 @@ table { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; -ms-box-sizing: border-box; - box-sizing: border-box; } - .col:first-child { - margin-left: 0; } - .col + .col:last-child { - float: right; } - .col + .col.end { - float: left; } + box-sizing: border-box; +} +.col:first-child { + margin-left: 0; +} +.col + .col:last-child { + float: right; +} +.col + .col.end { + float: left; +} .span1, .mq-alpha-resize-to1 { - width: 6.5%; } + width: 6.5%; +} .span2, .mq-alpha-resize-to2 { - width: 15%; } + width: 15%; +} .span3, .mq-alpha-resize-to3 { - width: 23.5%; } + width: 23.5%; +} .span4, .mq-alpha-resize-to4 { - width: 32%; } + width: 32%; +} .span5, .mq-alpha-resize-to5 { - width: 40.5%; } + width: 40.5%; +} .span6, .mq-alpha-resize-to6 { - width: 49%; } + width: 49%; +} .span7, .mq-alpha-resize-to7 { - width: 57.5%; } + width: 57.5%; +} .span8, .mq-alpha-resize-to8 { - width: 66%; } + width: 66%; +} .span9, .mq-alpha-resize-to9 { - width: 74.5%; } + width: 74.5%; +} .span10, .mq-alpha-resize-to10 { - width: 83%; } + width: 83%; +} .span11, .mq-alpha-resize-to11 { - width: 91.5%; } + width: 91.5%; +} .span12, .mq-alpha-resize-to12 { - width: 100%; } - -.row > .offset1 { - margin-left: 0.065%; } - .row > .offset1:first-child { - margin-left: 20.065; } - -.row > .offset1 { - margin-left: 0.3%; } - .row > .offset1:first-child { - margin-left: 40.3; } - -.row > .offset1 { - margin-left: 0.705%; } - .row > .offset1:first-child { - margin-left: 60.705; } - -.row > .offset1 { - margin-left: 1.28%; } - .row > .offset1:first-child { - margin-left: 81.28; } - -.row > .offset1 { - margin-left: 2.025%; } - .row > .offset1:first-child { - margin-left: 102.025; } - -.row > .offset1 { - margin-left: 2.94%; } - .row > .offset1:first-child { - margin-left: 122.94; } - -.row > .offset1 { - margin-left: 4.025%; } - .row > .offset1:first-child { - margin-left: 144.025; } - -.row > .offset1 { - margin-left: 5.28%; } - .row > .offset1:first-child { - margin-left: 165.28; } - -.row > .offset1 { - margin-left: 6.705%; } - .row > .offset1:first-child { - margin-left: 186.705; } - -.row > .offset1 { - margin-left: 8.3%; } - .row > .offset1:first-child { - margin-left: 208.3; } - -.row > .offset1 { - margin-left: 10.065%; } - .row > .offset1:first-child { - margin-left: 230.065; } - -.row > .push2 { - left: 17%; - position: relative; } - -.row > .push3 { - left: 25.5%; - position: relative; } - -.row > .push4 { - left: 34%; - position: relative; } - -.row > .push5 { - left: 42.5%; - position: relative; } - -.row > .push6 { - left: 51%; - position: relative; } - -.row > .push7 { - left: 59.5%; - position: relative; } - -.row > .push8 { - left: 68%; - position: relative; } - -.row > .push9 { - left: 76.5%; - position: relative; } - -.row > .push10 { - left: 85%; - position: relative; } - -.row > .push11 { - left: 93.5%; - position: relative; } - -.row > .pull2 { - right: 17%; - position: relative; } - -.row > .pull3 { - right: 25.5%; - position: relative; } - -.row > .pull4 { - right: 34%; - position: relative; } - -.row > .pull5 { - right: 42.5%; - position: relative; } - -.row > .pull6 { - right: 51%; - position: relative; } - -.row > .pull7 { - right: 59.5%; - position: relative; } - -.row > .pull8 { - right: 68%; - position: relative; } - -.row > .pull9 { - right: 76.5%; - position: relative; } - -.row > .pull10 { - right: 85%; - position: relative; } - -.row > .pull11 { - right: 93.5%; - position: relative; } + width: 100%; +} .split .col, .shunt { float: none; @@ -425,187 +258,29 @@ table { min-height: 1px; position: relative; width: 100%; - clear: both; } - -.split .col, .shunt { - margin-left: 2%; - padding: 10px; - float: left; - min-height: 1px; - position: relative; - clear: none; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - -ms-box-sizing: border-box; - box-sizing: border-box; } - .split .col:first-child, .shunt:first-child { - margin-left: 0; } - .split .col + .split .col:last-child, .shunt + .shunt:last-child { - float: right; } - .split .col + .split .col.end, .shunt + .shunt.end { - float: left; } - -.span1, .mq-beta-resize-to1, .split .span1 { - width: 6.5%; } - -.span2, .mq-beta-resize-to2, .split .span2 { - width: 15%; } - -.span3, .mq-beta-resize-to3, .split .span3 { - width: 23.5%; } - -.span4, .mq-beta-resize-to4, .split .span4 { - width: 32%; } - -.span5, .mq-beta-resize-to5, .split .span5 { - width: 40.5%; } - -.span6, .mq-beta-resize-to6, .split .span6 { - width: 49%; } - -.span7, .mq-beta-resize-to7, .split .span7 { - width: 57.5%; } - -.span8, .mq-beta-resize-to8, .split .span8 { - width: 66%; } - -.span9, .mq-beta-resize-to9, .split .span9 { - width: 74.5%; } - -.span10, .mq-beta-resize-to10, .split .span10 { - width: 83%; } - -.span11, .mq-beta-resize-to11, .split .span11 { - width: 91.5%; } - -.row > .offset1 { - margin-left: 0.065%; } - .row > .offset1:first-child { - margin-left: 20.065; } - -.row > .offset1 { - margin-left: 0.3%; } - .row > .offset1:first-child { - margin-left: 40.3; } - -.row > .offset1 { - margin-left: 0.705%; } - .row > .offset1:first-child { - margin-left: 60.705; } - -.row > .offset1 { - margin-left: 1.28%; } - .row > .offset1:first-child { - margin-left: 81.28; } - -.row > .offset1 { - margin-left: 2.025%; } - .row > .offset1:first-child { - margin-left: 102.025; } - -.row > .offset1 { - margin-left: 2.94%; } - .row > .offset1:first-child { - margin-left: 122.94; } - -.row > .offset1 { - margin-left: 4.025%; } - .row > .offset1:first-child { - margin-left: 144.025; } - -.row > .offset1 { - margin-left: 5.28%; } - .row > .offset1:first-child { - margin-left: 165.28; } - -.row > .offset1 { - margin-left: 6.705%; } - .row > .offset1:first-child { - margin-left: 186.705; } - -.row > .offset1 { - margin-left: 8.3%; } - .row > .offset1:first-child { - margin-left: 208.3; } - -.row > .offset1 { - margin-left: 10.065%; } - .row > .offset1:first-child { - margin-left: 230.065; } - -.row > .mq-beta-push2, .push2 { - left: 17%; - position: relative; } - -.row > .mq-beta-push3, .push3 { - left: 25.5%; - position: relative; } - -.row > .mq-beta-push4, .push4 { - left: 34%; - position: relative; } - -.row > .mq-beta-push5, .push5 { - left: 42.5%; - position: relative; } - -.row > .mq-beta-push6, .push6 { - left: 51%; - position: relative; } - -.row > .mq-beta-push7, .push7 { - left: 59.5%; - position: relative; } - -.row > .mq-beta-push8, .push8 { - left: 68%; - position: relative; } - -.row > .mq-beta-push9, .push9 { - left: 76.5%; - position: relative; } - -.row > .mq-beta-pull2, .pull2 { - right: 17%; - position: relative; } - -.row > .mq-beta-pull3, .pull3 { - right: 25.5%; - position: relative; } - -.row > .mq-beta-pull4, .pull4 { - right: 34%; - position: relative; } - -.row > .mq-beta-pull5, .pull5 { - right: 42.5%; - position: relative; } - -.row > .mq-beta-pull6, .pull6 { - right: 51%; - position: relative; } - -.row > .mq-beta-pull7, .pull7 { - right: 59.5%; - position: relative; } - -.row > .mq-beta-pull8, .pull8 { - right: 68%; - position: relative; } - -.row > .mq-beta-pull9, .pull9 { - right: 76.5%; - position: relative; } + clear: both; +} .mq-beta-end { - float: right; } + float: right; +} .mq-beta-end { - float: left; } + float: left; +} .centered.col, .centred.col { float: none; - margin: 0 auto; } + margin: 0 auto; +} + +html { + font-size: 16px; + -webkit-text-size-adjust: 100%; + /* 2 */ + -ms-text-size-adjust: 100%; + /* 2 */ +} body { font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; @@ -614,7 +289,8 @@ body { line-height: 22px; line-height: 1.375rem; color: #444444; - background-color: white; } + background-color: white; +} p { font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; @@ -623,17 +299,20 @@ p { line-height: 22px; line-height: 1.375rem; margin-top: 0; - margin-bottom: 22px; } + margin-bottom: 22px; +} h1, h2, h3, h4, h5, h6 { margin: 0; font-family: inherit; font-weight: bold; - color: #46a546; - text-rendering: optimizelegibility; } - h1 small, h2 small, h3 small, h4 small, h5 small, h6 small { - font-weight: normal; - color: #74c474; } + color: #34495e; + text-rendering: optimizelegibility; +} +h1 small, h2 small, h3 small, h4 small, h5 small, h6 small { + font-weight: normal; + color: #4f6f8f; +} h1, .h1, .alpha { font-size: 51px; @@ -641,7 +320,8 @@ h1, .h1, .alpha { line-height: 44px; line-height: 2.75rem; margin-top: 22px; - margin-bottom: 44px; } + margin-bottom: 44px; +} h2, .h2, .beta { font-size: 28px; @@ -649,7 +329,8 @@ h2, .h2, .beta { line-height: 44px; line-height: 2.75rem; margin-top: 44px; - margin-bottom: 22px; } + margin-bottom: 22px; +} h3, .h3, .gamma { font-size: 21px; @@ -657,7 +338,8 @@ h3, .h3, .gamma { line-height: 22px; line-height: 1.375rem; margin-top: 22px; - margin-bottom: 0px; } + margin-bottom: 0px; +} h4, .h4, .delta, h5, .h5, .epsilon, @@ -665,214 +347,280 @@ h6, .h6, .zeta { line-height: 22px; line-height: 1.375rem; margin-top: 0; - margin-bottom: 0; } + margin-bottom: 0; +} h4, .h4, .delta { font-size: 16px; - font-size: 1rem; } + font-size: 1rem; +} h5, .h5, .epsilon { font-size: 12px; - font-size: 0.75rem; } + font-size: 0.75rem; +} h6, .h6, .zeta { font-size: 11px; font-size: 0.6875rem; color: #b3b3b3; - text-transform: uppercase; } - -.page-header { - padding-bottom: 21px; - margin: 22px 0; - border-bottom: 1px solid #b3b3b3 er; } - -.page-header h1 { - line-height: 1; } + text-transform: uppercase; +} a, a:link { - color: #46a546; - text-decoration: none; } + color: #34495e; + text-decoration: none; +} a:visited { - color: #46a546; - text-decoration: none; } + color: #34495e; + text-decoration: none; +} a:hover { - color: #2f6f2f; } + color: #19232d; +} a:active { - color: #2f6f2f; } + color: #19232d; +} + +ul { + list-style-type: disc; +} + +ol { + list-style-type: decimal; +} + +ul, ol { + padding: 0; + margin: 0 0 22px 22px; +} +ul ul, ul ol, ol ul, ol ol { + margin-left: 44px; +} +ul ul, ol ul { + list-style-type: circle; +} +ul ul ul, ol ul ul { + list-style-type: square; +} +ul ol, ol ol { + list-style-type: upper-roman; +} +ul ol ol, ol ol ol { + list-style-type: lower-roman; +} +ul li, ol li { + line-height: 22px; + line-height: 1.375rem; +} +ul ul, ul ol, ol ul, ol ol { + margin-bottom: 0; +} + +.unstyled, form ul, .tabs, .tabs-content, +nav ul, nav ol { + margin: 0; + padding: 0; + list-style: none; + list-style-image: none; +} + +dl { + margin-bottom: 22px; +} + +dt, +dd { + line-height: 22px; + line-height: 1.375rem; +} + +dt { + font-weight: bold; + line-height: 21px; + line-height: 1.3125rem; +} +.dl-horizontal dt { + float: left; + clear: left; + width: 220px; + text-align: right; +} + +dd { + margin-left: 22px; +} +.dl-horizontal dd { + margin-left: 240px; +} hr { margin: 22px 0; border: 0; border-top: 1px solid #b3b3b3 er; - border-bottom: 1px solid white; } + border-bottom: 1px solid #fff; +} strong, b { - font-weight: bold; } + font-weight: bold; +} em, i { - font-style: italic; } + font-style: italic; +} .muted { - color: #b3b3b3; } + color: #b3b3b3; +} abbr[title] { - border-bottom: 1px dotted #dddddd; - cursor: help; } + border-bottom: 1px dotted #ddd; + cursor: help; +} abbr.initialism { font-size: 90%; - text-transform: uppercase; } + text-transform: uppercase; +} blockquote { - padding: 0 0 0 15px; - margin: 0 0 22px; - border-left: 5px solid #b3b3b3 er; } - blockquote p { - margin-bottom: 0; - font-size: 16px; - font-size: 1rem; - font-weight: 300; - line-height: 27.5px; - line-height: 1.71875rem; } - blockquote small { - display: block; - line-height: 22px; - line-height: 1.375rem; - color: #b3b3b3; } - blockquote small:before { - content: '\2014 \00A0'; } - blockquote.pull-right { - float: right; - padding-left: 0; - padding-right: 15px; - border-left: 0; - border-right: 5px solid #b3b3b3 er; } - blockquote.pull-right p, blockquote.pull-right small { - text-align: right; } + padding-left: 10px; + margin: 22px; + border-left: 4px solid #cccccc; +} +blockquote p { + margin-bottom: 0; + font-size: 16px; + font-size: 1rem; + font-weight: 300; + line-height: 27.5px; + line-height: 1.71875rem; +} +blockquote small { + display: block; + line-height: 22px; + line-height: 1.375rem; + color: #b3b3b3; +} +blockquote small:before { + content: '\2014 \00A0'; +} +blockquote.pull-right { + float: right; + padding-left: 0; + padding-right: 10px; + border-left: 0; + border-right: 4px solid #cccccc; +} +blockquote.pull-right, blockquote.pull-right p, blockquote.pull-right small { + text-align: right; +} q:before, q:after, blockquote:before, blockquote:after { - content: ""; } + content: ""; +} address { display: block; margin-bottom: 22px; line-height: 22px; line-height: 1.375rem; - font-style: normal; } + font-style: normal; +} small { - font-size: 75%; } + font-size: 75%; +} cite { - font-style: normal; } + font-style: normal; +} dfn { - font-style: italic; } + font-style: italic; +} mark { - background: #ff0; - color: #000; } + background: #f1c40f; + padding: 2px 4px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + -o-border-radius: 3px; + border-radius: 3px; +} sub, sup { font-size: 75%; line-height: 0px; line-height: 0rem; position: relative; - vertical-align: baseline; } + vertical-align: baseline; +} sup { - top: -0.5em; } + top: -0.5em; +} sub { - bottom: -0.25em; } - -ul { - list-style-type: disc; } + bottom: -0.25em; +} -ol { - list-style-type: decimal; } - -ul, ol { - padding: 0; - margin: 0 0 22px 22px; } - ul ul, ul ol, ol ul, ol ol { - margin-left: 44px; } - ul ul, ol ul { - list-style-type: circle; } - ul ul ul, ol ul ul { - list-style-type: square; } - ul ol, ol ol { - list-style-type: upper-roman; } - ul ol ol, ol ol ol { - list-style-type: lower-roman; } - ul li, ol li { - line-height: 22px; - line-height: 1.375rem; } - ul ul, ul ol, ol ul, ol ol { - margin-bottom: 0; } - -.unstyled, form ul, .tabs, .tabs-content { - margin: 0; - padding: 0; - list-style: none; - list-style-image: none; } - -dl { - margin-bottom: 22px; } - -dt, -dd { - line-height: 22px; - line-height: 1.375rem; } - -dt { - font-weight: bold; - line-height: 21px; - line-height: 1.3125rem; } - .dl-horizontal dt { - float: left; - clear: left; - width: 220px; - text-align: right; } - -dd { - margin-left: 22px; } - .dl-horizontal dd { - margin-left: 240px; } +samp { + font-family: Menlo, Monaco, "Courier New", monospace; +} .text-centre, .text-center { - text-align: center; } + text-align: center; +} .text-left { - text-align: left; } + text-align: left; +} .text-right { - text-align: right; } + text-align: right; +} ::-moz-selection { - color: white; - background: #46a546; } + color: #c9d5e1; + background: #34495e; +} ::selection { - color: white; - background: #46a546; } + color: #c9d5e1; + background: #34495e; +} + +.page-header { + padding-bottom: 21px; + margin: 22px 0; + border-bottom: 1px solid #b3b3b3; +} + +.page-header h1 { + line-height: 1; +} form { - margin: 0 0 22px; } + margin: 0 0 22px; +} fieldset { padding: 0; margin: 0; - border: 0; } + border: 0; +} .control-group { margin-top: 11px; - list-style-type: none; } - legend + .control-group { - margin-top: 22px; - -webkit-margin-top-collapse: separate; } + list-style-type: none; +} +legend + .control-group { + margin-top: 22px; + -webkit-margin-top-collapse: separate; +} legend { display: block; @@ -885,11 +633,14 @@ legend { line-height: 2.75rem; color: #4d4d4d; border: 0; - border-bottom: 1px solid #eeeeee; } - legend small { - font-size: 12px; - font-size: 0.75rem; - color: #b3b3b3; } + border-bottom: 1px solid #eee; + white-space: normal; +} +legend small { + font-size: 12px; + font-size: 0.75rem; + color: #b3b3b3; +} label, input, @@ -900,27 +651,35 @@ textarea { font-size: 1rem; line-height: 22px; line-height: 1.375rem; - font-weight: normal; } + font-weight: normal; + vertical-align: baseline; + *vertical-align: middle; +} input, button, select, textarea { - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; } + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; +} label { display: block; margin-bottom: 5px; color: #4d4d4d; - font-weight: bold; } - label small { - font-weight: normal; - color: #999999; } - label.checkbox, label.radio { - font-weight: normal; - line-height: 1.4; } - label input, label textarea, label select { - display: block; } + font-weight: bold; +} +label small { + font-weight: normal; + color: #999999; +} +label.checkbox, label.radio { + font-weight: normal; + line-height: 1.4; +} +label input, label textarea, label select { + display: block; +} input, textarea, @@ -941,29 +700,34 @@ select, -webkit-border-radius: 3px; -moz-border-radius: 3px; -o-border-radius: 3px; - border-radius: 3px; } + border-radius: 3px; +} .uneditable-textarea { width: auto; - height: auto; } + height: auto; +} input[type="image"], input[type="checkbox"], input[type="radio"] { width: auto; height: auto; padding: 0; margin: 3px 0; - *margin-top: 0; - /* IE7 */ line-height: normal; cursor: pointer; -webkit-border-radius: 0; -moz-border-radius: 0; -o-border-radius: 0; border-radius: 0; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; border: 0 \9; - /* IE9 and down */ } +} input[type="image"] { - border: 0; } + border: 0; +} input[type="file"] { width: auto; height: 28px; @@ -975,22 +739,36 @@ input[type="file"] { -webkit-box-shadow: none; -moz-box-shadow: none; -o-box-shadow: none; - box-shadow: none; } -input[type="button"], input[type="reset"], input[type="submit"] { - width: auto; - height: auto; } + box-shadow: none; +} input[type="image"] { -webkit-box-shadow: none; -moz-box-shadow: none; -o-box-shadow: none; - box-shadow: none; } + box-shadow: none; +} input[type="hidden"] { - display: none; } + display: none; +} input[type="color"] { height: 40px; width: 40px; overflow: hidden; - padding: 2px; } + padding: 2px; +} +input[type="password"] { + font-family: sans-serif; +} + +button, +input[type="button"], +input[type="reset"], +input[type="submit"] { + width: auto; + height: auto; + cursor: pointer; + -webkit-appearance: button; +} select { width: 220px; @@ -1000,34 +778,42 @@ select { /* For IE7, add top margin to align select with labels */ line-height: 28px; line-height: 1.75rem; - background-color: white; } - select[multiple], select[size] { - height: auto; } + background-color: white; +} +select[multiple], select[size] { + height: auto; +} textarea { height: auto; - resize: vertical; } + resize: vertical; +} .radio, .checkbox { - padding-left: 18px; } - .radio input[type="radio"], .radio input[type="checkbox"], - .checkbox input[type="radio"], - .checkbox input[type="checkbox"] { - float: left; - margin-left: -18px; } - .radio.inline, - .checkbox.inline { - padding-top: 5px; - margin-bottom: 0; - vertical-align: middle; } - .radio.inline + .radio.inline, - .checkbox.inline + - .checkbox.inline { - margin-left: 10px; } + padding-left: 18px; +} +.radio input[type="radio"], .radio input[type="checkbox"], +.checkbox input[type="radio"], +.checkbox input[type="checkbox"] { + float: left; + margin-left: -18px; +} +.radio.inline, +.checkbox.inline { + padding-top: 5px; + margin-bottom: 0; + vertical-align: middle; +} +.radio.inline + .radio.inline, +.checkbox.inline + +.checkbox.inline { + margin-left: 10px; +} .control-input > .radio:first-child, .control-input > .checkbox:first-child { - padding-top: 5px; } + padding-top: 5px; +} input, textarea, @@ -1039,7 +825,8 @@ textarea, -webkit-transition: all 0.2s ease-in-out; -moz-transition: all 0.2s ease-in-out; -o-transition: all 0.2s ease-in-out; - transition: all 0.2s ease-in-out; } + transition: all 0.2s ease-in-out; +} input:focus, textarea:focus { @@ -1049,7 +836,8 @@ textarea:focus { -o-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 5px rgba(82, 168, 236, 0.6); box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 5px rgba(82, 168, 236, 0.6); outline: 0; - outline: thin dotted \9; } + outline: thin dotted \9; +} input[type="file"]:focus, input[type="radio"]:focus, @@ -1058,39 +846,44 @@ select:focus { -webkit-box-shadow: none; -moz-box-shadow: none; -o-box-shadow: none; - box-shadow: none; } + box-shadow: none; +} .input-mini { - width: 60px; } + width: 60px; +} .input-small { - width: 90px; } + width: 90px; +} .input-medium { - width: 150px; } + width: 150px; +} .input-large { - width: 210px; } + width: 210px; +} .input-xlarge { - width: 270px; } + width: 270px; +} .input-xxlarge { - width: 530px; } + width: 530px; +} input[class*="span"], select[class*="span"], textarea[class*="span"], -.uneditable-input[class*="span"], -.row-fluid input[class*="span"], -.row-fluid select[class*="span"], -.row-fluid textarea[class*="span"], -.row-fluid .uneditable-input[class*="span"] { +.uneditable-input[class*="span"] { float: none; - margin-left: 0; } + margin-left: 0; +} .file-wrapper input { - width: 90%; } + width: 90%; +} input[disabled], input[readonly], select[disabled], @@ -1099,89 +892,104 @@ textarea[disabled], textarea[readonly] { background-color: #b3b3b3; border-color: #ddd; - cursor: not-allowed; } + cursor: not-allowed; +} input:focus:required:invalid, select:focus:required:invalid, textarea:focus:required:invalid { color: #b94a48; - border-color: #ee5f5b; } - input:focus:required:invalid:focus, - select:focus:required:invalid:focus, - textarea:focus:required:invalid:focus { - border-color: #e9322d; - -webkit-box-shadow: 0 0 6px #f8b9b7; - -moz-box-shadow: 0 0 6px #f8b9b7; - -o-box-shadow: 0 0 6px #f8b9b7; - box-shadow: 0 0 6px #f8b9b7; } + border-color: #ee5f5b; +} +input:focus:required:invalid:focus, +select:focus:required:invalid:focus, +textarea:focus:required:invalid:focus { + border-color: #e9322d; + -webkit-box-shadow: 0 0 6px #f8b9b7; + -moz-box-shadow: 0 0 6px #f8b9b7; + -o-box-shadow: 0 0 6px #f8b9b7; + box-shadow: 0 0 6px #f8b9b7; +} .control-group.warning > label, .control-group.warning .help-block, .control-group.warning .help-inline { - color: #c09853; } + color: #c09853; +} .control-group.warning input, .control-group.warning select, .control-group.warning textarea { color: #c09853; - border-color: #c09853; } - .control-group.warning input:focus, - .control-group.warning select:focus, - .control-group.warning textarea:focus { - border-color: #a47e3c; - -webkit-box-shadow: 0 0 6px #dbc59e; - -moz-box-shadow: 0 0 6px #dbc59e; - -o-box-shadow: 0 0 6px #dbc59e; - box-shadow: 0 0 6px #dbc59e; } + border-color: #c09853; +} +.control-group.warning input:focus, +.control-group.warning select:focus, +.control-group.warning textarea:focus { + border-color: #a47e3c; + -webkit-box-shadow: 0 0 6px #dbc59e; + -moz-box-shadow: 0 0 6px #dbc59e; + -o-box-shadow: 0 0 6px #dbc59e; + box-shadow: 0 0 6px #dbc59e; +} .control-group.warning .input-prepend .add-on, .control-group.warning .input-append .add-on { color: #c09853; background-color: #fcf8e3; - border-color: #c09853; } + border-color: #c09853; +} .control-group.error > label, .control-group.error .help-block, .control-group.error .help-inline { - color: #b94a48; } + color: #b94a48; +} .control-group.error input, .control-group.error select, .control-group.error textarea { color: #b94a48; - border-color: #b94a48; } - .control-group.error input:focus, - .control-group.error select:focus, - .control-group.error textarea:focus { - border-color: #953b39; - -webkit-box-shadow: 0 0 6px #d59392; - -moz-box-shadow: 0 0 6px #d59392; - -o-box-shadow: 0 0 6px #d59392; - box-shadow: 0 0 6px #d59392; } + border-color: #b94a48; +} +.control-group.error input:focus, +.control-group.error select:focus, +.control-group.error textarea:focus { + border-color: #953b39; + -webkit-box-shadow: 0 0 6px #d59392; + -moz-box-shadow: 0 0 6px #d59392; + -o-box-shadow: 0 0 6px #d59392; + box-shadow: 0 0 6px #d59392; +} .control-group.error .input-prepend .add-on, .control-group.error .input-append .add-on { color: #b94a48; background-color: #f2dede; - border-color: #b94a48; } + border-color: #b94a48; +} .control-group.success > label, .control-group.success .help-block, .control-group.success .help-inline { - color: #468847; } + color: #468847; +} .control-group.success input, .control-group.success select, .control-group.success textarea { color: #468847; - border-color: #468847; } - .control-group.success input:focus, - .control-group.success select:focus, - .control-group.success textarea:focus { - border-color: #356635; - -webkit-box-shadow: 0 0 6px #7aba7b; - -moz-box-shadow: 0 0 6px #7aba7b; - -o-box-shadow: 0 0 6px #7aba7b; - box-shadow: 0 0 6px #7aba7b; } + border-color: #468847; +} +.control-group.success input:focus, +.control-group.success select:focus, +.control-group.success textarea:focus { + border-color: #356635; + -webkit-box-shadow: 0 0 6px #7aba7b; + -moz-box-shadow: 0 0 6px #7aba7b; + -o-box-shadow: 0 0 6px #7aba7b; + box-shadow: 0 0 6px #7aba7b; +} .control-group.success .input-prepend .add-on, .control-group.success .input-append .add-on { color: #468847; background-color: #dff0d8; - border-color: #468847; } + border-color: #468847; +} .form-search input, .form-search textarea, .form-search select, .form-search .help-inline, .form-search .uneditable-input, .form-search .input-prepend, .form-search .input-append, .form-inline input, @@ -1198,89 +1006,108 @@ textarea:focus:required:invalid { .form-horizontal .uneditable-input, .form-horizontal .input-prepend, .form-horizontal .input-append { - margin-bottom: 0; } + margin-bottom: 0; +} .form-search .hide, .form-inline .hide, .form-horizontal .hide { - display: none; } + display: none; +} .form-horizontal .control-group { margin-bottom: 22px; - *zoom: 1; } - .form-horizontal .control-group:before, .form-horizontal .control-group:after { - content: " "; - display: table; } - .form-horizontal .control-group:after { - clear: both; } + *zoom: 1; +} +.form-horizontal .control-group:before, .form-horizontal .control-group:after { + content: " "; + display: table; +} +.form-horizontal .control-group:after { + clear: both; +} .form-horizontal .control-label, .form-horizontal .control-group label { float: left; width: 140px; padding-top: 5px; - text-align: right; } + text-align: right; +} .form-horizontal .control-input, .form-horizontal .control-group div { margin-left: 160px; /* Super jank IE7 fix to ensure the inputs in .input-append and input-prepend don't inherit the margin of the parent, in this case .control-input */ *display: inline-block; *margin-left: 0; - *padding-left: 20px; } - .form-horizontal .control-input:first-child, .form-horizontal .control-group div:first-child { - *padding-left: 160px; } + *padding-left: 20px; +} +.form-horizontal .control-input:first-child, .form-horizontal .control-group div:first-child { + *padding-left: 160px; +} .form-horizontal .help-block { margin-top: 11px; - margin-bottom: 0; } + margin-bottom: 0; +} .form-horizontal .form-actions { - padding-left: 160px; } + padding-left: 160px; +} .form-search > *, .form-inline > * { - margin-right: 10px; } - .form-search > *:last-child, - .form-inline > *:last-child { - margin-right: 0; } + margin-right: 10px; +} +.form-search > *:last-child, +.form-inline > *:last-child { + margin-right: 0; +} .form-search .radio, .form-search .checkbox, .form-inline .radio, .form-inline .checkbox { padding-left: 0; margin-bottom: 0; - vertical-align: middle; } + vertical-align: middle; +} .form-search .radio input[type="radio"], .form-search .checkbox input[type="checkbox"], .form-inline .radio input[type="radio"], .form-inline .checkbox input[type="checkbox"] { float: left; margin-left: 0; - margin-right: 3px; } + margin-right: 3px; +} .form-search .input-prepend, .form-search .input-append, .form-inline .input-prepend, .form-inline .input-append { - margin-bottom: 0; } + margin-bottom: 0; +} .search-query { padding-left: 14px; padding-right: 14px; - padding-left: 4px \9; - padding-right: 4px \9; margin-bottom: 0; -webkit-border-radius: 100px; -moz-border-radius: 100px; -o-border-radius: 100px; - border-radius: 100px; } + border-radius: 100px; +} .form-actions { padding: 21px 20px 22px; margin-top: 22px; margin-bottom: 22px; background-color: whitesmoke; - border-top: 1px solid #dddddd; - *zoom: 1; } - .form-actions:before, .form-actions:after { - content: " "; - display: table; } - .form-actions:after { - clear: both; } - .form-actions .btn { - margin-right: 10px; } - .form-actions .btn:last-child { - margin-right: 0; } + border-top: 1px solid #ddd; + *zoom: 1; +} +.form-actions:before, .form-actions:after { + content: " "; + display: table; +} +.form-actions:after { + clear: both; +} +.form-actions .btn, .form-actions .tabs a, .tabs .form-actions a { + margin-right: 10px; +} +.form-actions .btn:last-child, .form-actions .tabs a:last-child, .tabs .form-actions a:last-child { + margin-right: 0; +} .uneditable-input { background-color: white; @@ -1289,141 +1116,172 @@ textarea:focus:required:invalid { -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); -o-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); - cursor: not-allowed; } + cursor: not-allowed; +} :-ms-input-placeholder { - color: #b3b3b3; } + color: #b3b3b3; +} :-moz-placeholder { - color: #b3b3b3; } + color: #b3b3b3; +} ::-webkit-input-placeholder { - color: #b3b3b3; } + color: #b3b3b3; +} .help-block, .help-inline { - color: gray; } + color: #7f8c8d; +} .help-block { display: block; - margin-bottom: 11px; } + margin-bottom: 11px; +} .help-inline { vertical-align: middle; - padding-left: 5px; } + padding-left: 5px; +} .input-prepend, .input-append { - margin-bottom: 5px; } - .input-prepend input, .input-prepend select, .input-prepend .uneditable-input, - .input-append input, - .input-append select, - .input-append .uneditable-input { - position: relative; - margin-bottom: 0; - *margin-left: 0; - vertical-align: middle; - -webkit-border-radius: 0 3px 3px 0; - -moz-border-radius: 0 3px 3px 0; - -o-border-radius: 0 3px 3px 0; - border-radius: 0 3px 3px 0; } - .input-prepend input:focus, .input-prepend select:focus, .input-prepend .uneditable-input:focus, - .input-append input:focus, - .input-append select:focus, - .input-append .uneditable-input:focus { - z-index: 2; } - .input-prepend .uneditable-input, - .input-append .uneditable-input { - border-left-color: #ccc; } - .input-prepend .add-on, - .input-append .add-on { - width: auto; - min-width: 16px; - height: 22px; - padding: 4px 5px; - font-weight: normal; - line-height: 22px; - line-height: 1.375rem; - text-align: center; - text-shadow: 0 1px 0 white; - vertical-align: middle; - background-color: #b3b3b3 er; - border: 1px solid #cccccc; } - .input-prepend .add-on, .input-prepend .btn, - .input-append .add-on, - .input-append .btn { - -webkit-border-radius: 3px 0 0 3px; - -moz-border-radius: 3px 0 0 3px; - -o-border-radius: 3px 0 0 3px; - border-radius: 3px 0 0 3px; } - .input-prepend .active, - .input-append .active { - background-color: #a9dba9; - border-color: #46a546; } - -.input-prepend .add-on, .input-prepend .btn { - margin-right: -1px; } - -.input-append input, .input-append select, .input-append .uneditable-input { - -webkit-border-radius: 3px 0 0 3px; - -moz-border-radius: 3px 0 0 3px; - -o-border-radius: 3px 0 0 3px; - border-radius: 3px 0 0 3px; } + margin-bottom: 5px; +} +.input-prepend input, .input-prepend select, .input-prepend .uneditable-input, +.input-append input, +.input-append select, .input-append .uneditable-input { - border-left-color: #eee; - border-right-color: #ccc; } -.input-append .add-on, .input-append .btn { - margin-left: -1px; + position: relative; + margin-bottom: 0; + *margin-left: 0; + vertical-align: middle; -webkit-border-radius: 0 3px 3px 0; -moz-border-radius: 0 3px 3px 0; -o-border-radius: 0 3px 3px 0; - border-radius: 0 3px 3px 0; } - + border-radius: 0 3px 3px 0; +} +.input-prepend input:focus, .input-prepend select:focus, .input-prepend .uneditable-input:focus, +.input-append input:focus, +.input-append select:focus, +.input-append .uneditable-input:focus { + z-index: 2; +} +.input-prepend .uneditable-input, +.input-append .uneditable-input { + border-left-color: #ccc; +} +.input-prepend .add-on, +.input-append .add-on { + width: auto; + min-width: 16px; + height: 22px; + padding: 4px 5px; + font-weight: normal; + line-height: 22px; + line-height: 1.375rem; + text-align: center; + text-shadow: 0 1px 0 #fff; + vertical-align: middle; + background-color: #b3b3b3 er; + border: 1px solid #ccc; +} +.input-prepend .add-on, .input-prepend .btn, .input-prepend .tabs a, .tabs .input-prepend a, +.input-append .add-on, +.input-append .btn, +.input-append .tabs a, +.tabs .input-append a { + -webkit-border-radius: 3px 0 0 3px; + -moz-border-radius: 3px 0 0 3px; + -o-border-radius: 3px 0 0 3px; + border-radius: 3px 0 0 3px; +} +.input-prepend .active, +.input-append .active { + background-color: #81eed8; + border-color: #1abc9c; +} + +.input-prepend .add-on, .input-prepend .btn, .input-prepend .tabs a, .tabs .input-prepend a { + margin-right: -1px; +} + +.input-append input, .input-append select, .input-append .uneditable-input { + -webkit-border-radius: 3px 0 0 3px; + -moz-border-radius: 3px 0 0 3px; + -o-border-radius: 3px 0 0 3px; + border-radius: 3px 0 0 3px; +} +.input-append .uneditable-input { + border-left-color: #eee; + border-right-color: #ccc; +} +.input-append .add-on, .input-append .btn, .input-append .tabs a, .tabs .input-append a { + margin-left: -1px; + -webkit-border-radius: 0 3px 3px 0; + -moz-border-radius: 0 3px 3px 0; + -o-border-radius: 0 3px 3px 0; + border-radius: 0 3px 3px 0; +} + .input-prepend.input-append input, .input-prepend.input-append select, .input-prepend.input-append .uneditable-input { -webkit-border-radius: 0; -moz-border-radius: 0; -o-border-radius: 0; - border-radius: 0; } -.input-prepend.input-append .add-on:first-child, .input-prepend.input-append .btn:first-child { + border-radius: 0; +} +.input-prepend.input-append .add-on:first-child, .input-prepend.input-append .btn:first-child, .input-prepend.input-append .tabs a:first-child, .tabs .input-prepend.input-append a:first-child { margin-right: -1px; -webkit-border-radius: 3px 0 0 3px; -moz-border-radius: 3px 0 0 3px; -o-border-radius: 3px 0 0 3px; - border-radius: 3px 0 0 3px; } -.input-prepend.input-append .add-on:last-child, .input-prepend.input-append .btn:last-child { + border-radius: 3px 0 0 3px; +} +.input-prepend.input-append .add-on:last-child, .input-prepend.input-append .btn:last-child, .input-prepend.input-append .tabs a:last-child, .tabs .input-prepend.input-append a:last-child { margin-left: -1px; -webkit-border-radius: 0 3px 3px 0; -moz-border-radius: 0 3px 3px 0; -o-border-radius: 0 3px 3px 0; - border-radius: 0 3px 3px 0; } + border-radius: 0 3px 3px 0; +} table { max-width: 100%; border-collapse: collapse; border-spacing: 0; - background-color: transparent; } + background-color: transparent; +} .table { width: 100%; - margin-bottom: 22px; } - .table th, .table td { - padding: 8px; - line-height: 22px; - line-height: 1.375rem; - text-align: left; - vertical-align: top; - border-top: 1px solid #dddddd; } - .table th, .table tfoot td { - font-weight: bold; } - .table thead th { - vertical-align: bottom; } - .table caption + thead tr:first-child th, .table caption + thead tr:first-child td, .table colgroup + thead tr:first-child th, .table colgroup + thead tr:first-child td, .table thead:first-child tr:first-child th, .table thead:first-child tr:first-child td { - border-top: 0; } - .table tbody + tbody { - border-top: 2px solid #dddddd; } + margin-bottom: 22px; +} +.table th, .table td { + padding: 8px; + line-height: 22px; + line-height: 1.375rem; + text-align: left; + vertical-align: top; + border-top: 1px solid #dddddd; +} +.table th, .table tfoot td { + font-weight: bold; +} +.table thead th { + vertical-align: bottom; +} +.table caption + thead tr:first-child th, .table caption + thead tr:first-child td, .table colgroup + thead tr:first-child th, .table colgroup + thead tr:first-child td, .table thead:first-child tr:first-child th, .table thead:first-child tr:first-child td { + border-top: 0; +} +.table tbody + tbody { + border-top: 2px solid #dddddd; +} .table-condensed th, .table-condensed td { - padding: 4px 5px; } + padding: 4px 5px; +} .table-bordered { border: 1px solid #dddddd; @@ -1433,62 +1291,83 @@ table { -webkit-border-radius: 4px; -moz-border-radius: 4px; -o-border-radius: 4px; - border-radius: 4px; } - .table-bordered th, .table-bordered td { - border-left: 1px solid #dddddd; } - .table-bordered caption + thead tr:first-child th, .table-bordered caption + tbody tr:first-child th, .table-bordered caption + tbody tr:first-child td, .table-bordered colgroup + thead tr:first-child th, .table-bordered colgroup + tbody tr:first-child th, .table-bordered colgroup + tbody tr:first-child td, .table-bordered thead:first-child tr:first-child th, .table-bordered tbody:first-child tr:first-child th, .table-bordered tbody:first-child tr:first-child td { - border-top: 0; } - .table-bordered thead:first-child tr:first-child th:first-child, .table-bordered tbody:first-child tr:first-child td:first-child { - -webkit-border-radius: 4px 0 0 0; - -moz-border-radius: 4px 0 0 0; - -o-border-radius: 4px 0 0 0; - border-radius: 4px 0 0 0; } - .table-bordered thead:first-child tr:first-child th:last-child, .table-bordered tbody:first-child tr:first-child td:last-child { - -webkit-border-radius: 0 4px 0 0; - -moz-border-radius: 0 4px 0 0; - -o-border-radius: 0 4px 0 0; - border-radius: 0 4px 0 0; } - .table-bordered thead:last-child tr:last-child th:first-child, .table-bordered tbody:last-child tr:last-child td:first-child { - -webkit-border-radius: 0 0 0 4px; - -moz-border-radius: 0 0 0 4px; - -o-border-radius: 0 0 0 4px; - border-radius: 0 0 0 4px; } - .table-bordered thead:last-child tr:last-child th:last-child, .table-bordered tbody:last-child tr:last-child td:last-child { - -webkit-border-radius: 0 0 4px 0; - -moz-border-radius: 0 0 4px 0; - -o-border-radius: 0 0 4px 0; - border-radius: 0 0 4px 0; } + border-radius: 4px; +} +.table-bordered th, .table-bordered td { + border-left: 1px solid #dddddd; +} +.table-bordered caption + thead tr:first-child th, .table-bordered caption + tbody tr:first-child th, .table-bordered caption + tbody tr:first-child td, .table-bordered colgroup + thead tr:first-child th, .table-bordered colgroup + tbody tr:first-child th, .table-bordered colgroup + tbody tr:first-child td, .table-bordered thead:first-child tr:first-child th, .table-bordered tbody:first-child tr:first-child th, .table-bordered tbody:first-child tr:first-child td { + border-top: 0; +} +.table-bordered thead:first-child tr:first-child th:first-child, .table-bordered tbody:first-child tr:first-child td:first-child { + -webkit-border-radius: 4px 0 0 0; + -moz-border-radius: 4px 0 0 0; + -o-border-radius: 4px 0 0 0; + border-radius: 4px 0 0 0; +} +.table-bordered thead:first-child tr:first-child th:last-child, .table-bordered tbody:first-child tr:first-child td:last-child { + -webkit-border-radius: 0 4px 0 0; + -moz-border-radius: 0 4px 0 0; + -o-border-radius: 0 4px 0 0; + border-radius: 0 4px 0 0; +} +.table-bordered thead:last-child tr:last-child th:first-child, .table-bordered tbody:last-child tr:last-child td:first-child { + -webkit-border-radius: 0 0 0 4px; + -moz-border-radius: 0 0 0 4px; + -o-border-radius: 0 0 0 4px; + border-radius: 0 0 0 4px; +} +.table-bordered thead:last-child tr:last-child th:last-child, .table-bordered tbody:last-child tr:last-child td:last-child { + -webkit-border-radius: 0 0 4px 0; + -moz-border-radius: 0 0 4px 0; + -o-border-radius: 0 0 4px 0; + border-radius: 0 0 4px 0; +} .table-striped tbody tr:nth-child(odd) td, .table-striped tbody tr:nth-child(odd) th { - background-color: #f9f9f9; } + background-color: #f9f9f9; +} .table tbody tr:hover td, .table tbody tr:hover th { - background-color: whitesmoke; } + background-color: whitesmoke; +} table .span1 { - width: 6.5%; } + width: 6.5%; +} table .span2 { - width: 15%; } + width: 15%; +} table .span3 { - width: 23.5%; } + width: 23.5%; +} table .span4 { - width: 32%; } + width: 32%; +} table .span5 { - width: 40.5%; } + width: 40.5%; +} table .span6 { - width: 49%; } + width: 49%; +} table .span7 { - width: 57.5%; } + width: 57.5%; +} table .span8 { - width: 66%; } + width: 66%; +} table .span9 { - width: 74.5%; } + width: 74.5%; +} table .span10 { - width: 83%; } + width: 83%; +} table .span11 { - width: 91.5%; } + width: 91.5%; +} table .span12 { - width: 100%; } + width: 100%; +} code, pre { @@ -1496,18 +1375,19 @@ pre { font-family: Menlo, Monaco, "Courier New", monospace; font-size: 13px; font-size: 0.8125rem; - color: gray; + color: #dd1144; -webkit-border-radius: 3px; -moz-border-radius: 3px; -o-border-radius: 3px; border-radius: 3px; - tab-size: 3; } + tab-size: 3; +} code { padding: 2px 4px; color: #dd1144; - background-color: #f7f7f9; - border: 1px solid #e1e1e8; } + background-color: #fbefc0; +} pre { display: block; @@ -1515,9 +1395,9 @@ pre { margin: 0 0 11px; line-height: 22px; line-height: 1.375rem; - color: #dd1144; + color: #222222; background-color: #f7f7f9; - border: 1px solid #cccccc; + border: 1px solid #ccc; border: 1px solid rgba(0, 0, 0, 0.15); -webkit-border-radius: 4px; -moz-border-radius: 4px; @@ -1526,98 +1406,378 @@ pre { white-space: pre; white-space: pre-wrap; word-break: break-all; - word-wrap: break-word; } - pre.prettyprint { - margin-bottom: 22px; } - pre code { - padding: 0; - color: #dd1144; - background-color: #f7f7f9; - border: 0; } + word-wrap: break-word; +} +pre.prettyprint { + margin-bottom: 22px; +} +pre code { + padding: 0; + color: #222222; + background-color: #f7f7f9; + border: 0; +} .pre-scrollable { max-height: 340px; - overflow-y: scroll; } + overflow-y: scroll; +} + +.btn, .tabs a { + display: inline-block; + /* [1] */ + vertical-align: middle; + /* [2] */ + white-space: nowrap; + /* [3] */ + font-family: inherit; + /* [4] */ + font-size: 100%; + /* [4] */ + cursor: pointer; + /* [5] */ + border: none; + /* [6] */ + margin: 0; + /* [6] */ + padding-top: 0; + /* [6] */ + padding-bottom: 0; + /* [6] */ + line-height: 3; + /* [7] */ + height: 3em; + /* [7] */ + padding-right: 1em; + /* [7] */ + padding-left: 1em; + /* [7] */ + overflow: visible; + /* [8] */ + text-align: center; + background-color: white; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + -o-border-radius: 4px; + border-radius: 4px; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.3), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.3), 0 1px 2px rgba(0, 0, 0, 0.05); + -o-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.3), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.3), 0 1px 2px rgba(0, 0, 0, 0.05); +} +.btn, .tabs a, .btn:hover, .tabs a:hover, .btn:active, .tabs a:active, .btn:focus, .tabs a:focus, .btn:visited, .tabs a:visited { + text-decoration: none; +} +.btn:active, .tabs a:active, .btn:focus, .tabs a:focus { + outline: none; + box-shadow: 0 0 5px rgba(0, 0, 0, 0.5) inset; +} +.btn.disabled, .tabs a.disabled, .btn[disabled], .tabs a[disabled] { + cursor: default; + background-image: none; + zoom: 1; + filter: alpha(opacity=65); + opacity: 0.65; + -webkit-box-shadow: none; + -moz-box-shadow: none; + -o-box-shadow: none; + box-shadow: none; +} + +.btn-large { + font-size: 18px; + font-size: 1.125rem; + line-height: 3.5; + height: 3.5em; + padding-right: 1.5em; + padding-left: 1.5em; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + -o-border-radius: 6px; + border-radius: 6px; +} + +.btn-small { + font-size: 13px; + font-size: 0.8125rem; + line-height: 1.5; + height: 1.5em; + padding-right: 0.5em; + padding-left: 0.5em; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + -o-border-radius: 3px; + border-radius: 3px; +} + +.btn-pill { + padding-left: 1.5em; + padding-right: 1.5em; + -webkit-border-radius: 100em; + -moz-border-radius: 100em; + -o-border-radius: 100em; + border-radius: 100em; +} + +.btn-close { + position: absolute; + right: 20px; + top: 20px; + display: block; + height: 20px; + width: 20px; + line-height: 17px; + background: #000; + color: #34495e; + text-align: center; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + -o-border-radius: 5px; + border-radius: 5px; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.btn-close:hover { + color: #fff; + -webkit-border-radius: 50px; + -moz-border-radius: 50px; + -o-border-radius: 50px; + border-radius: 50px; +} + +.btn-block { + display: block; + width: 100%; + padding-left: 0; + padding-right: 0; +} + +.btn-block + .btn-block { + margin-top: 10px; +} + +input[type="submit"].btn-block, +input[type="reset"].btn-block, +input[type="button"].btn-block { + width: 100%; +} + +.btn-natural { + vertical-align: baseline; + font-size: inherit; + line-height: inherit; + height: auto; + padding-right: 0.5em; + padding-left: 0.5em; +} + +.btn-primary.active, +.btn-warning.active, +.btn-danger.active, +.btn-success.active, +.btn-info.active, +.btn-inverse.active { + color: rgba(255, 255, 255, 0.75); +} + +.btn-primary { + background-color: #34495e; + color: #fff !important; + text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.25); +} +.btn-primary:hover { + background-color: #2c3e50; +} + +.btn-warning { + background-color: #e67e22; + color: #fff !important; + text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.25); +} +.btn-warning:hover { + background-color: #d35400; +} + +.btn-danger { + background-color: #e74c3c; + color: #fff !important; + text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.25); +} +.btn-danger:hover { + background-color: #c0392b; +} + +.btn-success { + background-color: #2ecc71; + color: #fff !important; + text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.25); +} +.btn-success:hover { + background-color: #27ae60; +} + +.btn-info { + background-color: #1abc9c; + color: #fff !important; + text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.25); +} +.btn-info:hover { + background-color: #16a085; +} + +.btn-inverse { + background-color: #444444; + color: #fff !important; + text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.25); +} +.btn-inverse:hover { + background-color: #222222; +} + +.btn-link, +.btn-link:active, +.btn-link[disabled] { + background-color: transparent; + background-image: none; + -webkit-box-shadow: none; + -moz-box-shadow: none; + -o-box-shadow: none; + box-shadow: none; +} + +.btn-link { + border-color: transparent; + cursor: pointer; + color: #34495e; + -webkit-border-radius: 0; + -moz-border-radius: 0; + -o-border-radius: 0; + border-radius: 0; +} + +.btn-link:hover, +.btn-link:focus { + color: #19232d; + text-decoration: underline; + background-color: transparent; +} + +.btn-link[disabled]:hover, +.btn-link[disabled]:focus { + color: #333; + text-decoration: none; +} img { font-style: italic; color: #c00; border: 0; - -ms-interpolation-mode: bicubic; } - img.left { - margin: 0 20px 0 0; } - img.right { - margin: 0 0 0 20px; } + -ms-interpolation-mode: bicubic; +} +img.left { + margin: 0 20px 0 0; +} +img.right { + margin: 0 0 0 20px; +} svg:not(:root) { - overflow: hidden; } + overflow: hidden; +} img, object, embed, video { - max-width: 100%; } + max-width: 100%; +} #map_canvas img, .map_canvas img { - max-width: none!important; } + max-width: none !important; +} .block-grid { display: block; list-style-type: none; - *zoom: 1; } - .block-grid:before, .block-grid:after { - content: " "; - display: table; } - .block-grid:after { - clear: both; } - .block-grid li { - display: block; - height: auto; - float: left; } - .block-grid.two-up { - margin-left: -4%; } - .block-grid.two-up li { - margin-left: 4%; - width: 46%; - margin-bottom: 4%; } - .block-grid.three-up { - margin-left: -2%; } - .block-grid.three-up li { - margin-left: 2%; - width: 31.3%; - margin-bottom: 2%; } - .block-grid.four-up { - margin-left: -2%; } - .block-grid.four-up li { - margin-left: 2%; - width: 23%; - margin-bottom: 2%; } - .block-grid.five-up { - margin-left: -1.5%; } - .block-grid.five-up li { - margin-left: 1.5%; - width: 18.5%; - margin-bottom: 1.5%; } + *zoom: 1; +} +.block-grid:before, .block-grid:after { + content: " "; + display: table; +} +.block-grid:after { + clear: both; +} +.block-grid li { + display: block; + height: auto; + float: left; +} +.block-grid.two-up { + margin-left: -4%; +} +.block-grid.two-up li { + margin-left: 4%; + width: 46%; + margin-bottom: 4%; +} +.block-grid.three-up { + margin-left: -2%; +} +.block-grid.three-up li { + margin-left: 2%; + width: 31.3%; + margin-bottom: 2%; +} +.block-grid.four-up { + margin-left: -2%; +} +.block-grid.four-up li { + margin-left: 2%; + width: 23%; + margin-bottom: 2%; +} +.block-grid.five-up { + margin-left: -1.5%; +} +.block-grid.five-up li { + margin-left: 1.5%; + width: 18.5%; + margin-bottom: 1.5%; +} ul.centred, ul.centered { - text-align: center; } - ul.centred li, ul.centered li { - display: inline; } + text-align: center; +} +ul.centred li, ul.centered li { + display: inline; +} .floated { - *zoom: 1; } - .floated:before, .floated:after { - content: " "; - display: table; } - .floated:after { - clear: both; } - .floated li { - float: left; - display: inline-block; } + *zoom: 1; +} +.floated:before, .floated:after { + content: " "; + display: table; +} +.floated:after { + clear: both; +} +.floated li { + float: left; + display: inline-block; +} .well { min-height: 20px; padding: 19px; margin-bottom: 20px; background-color: #f5f5f5; - border: 1px solid #eeeeee; + border: 1px solid #eee; border: 1px solid rgba(0, 0, 0, 0.05); -webkit-border-radius: 4px; -moz-border-radius: 4px; @@ -1626,48 +1786,73 @@ ul.centred, ul.centered { -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); -o-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); } - .well blockquote { - border-color: #ddd; - border-color: rgba(0, 0, 0, 0.15); } + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); +} +.well blockquote { + border-color: #ddd; + border-color: rgba(0, 0, 0, 0.15); +} .well-large { padding: 24px; -webkit-border-radius: 6px; -moz-border-radius: 6px; -o-border-radius: 6px; - border-radius: 6px; } + border-radius: 6px; +} .well-small { padding: 9px; -webkit-border-radius: 3px; -moz-border-radius: 3px; -o-border-radius: 3px; - border-radius: 3px; } + border-radius: 3px; +} .tabs { *zoom: 1; - margin-bottom: 22px; } - .tabs:before, .tabs:after { - content: " "; - display: table; } - .tabs:after { - clear: both; } - .tabs.is-right li { - float: right; } - .tabs.is-centred, .tabs.is-centered { - text-align: center; } - .tabs.is-centred > li, .tabs.is-centered > li { - display: inline; - float: none; } - .tabs > li { - float: left; - margin: 0 5px; } + margin-bottom: 22px; + border-bottom: 2px solid #1abc9c; +} +.tabs:before, .tabs:after { + content: " "; + display: table; +} +.tabs:after { + clear: both; +} +.tabs.is-right li { + float: right; +} +.tabs.is-centred, .tabs.is-centered { + text-align: center; +} +.tabs.is-centred > li, .tabs.is-centered > li { + display: inline; + float: none; +} +.tabs > li { + float: left; + margin: 0 5px; +} +.tabs a { + background-color: #95a5a6; + -webkit-border-radius: 4px 4px 0 0; + -moz-border-radius: 4px 4px 0 0; + -o-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0; + color: #fff; +} +.tabs a.is-active { + background-color: #1abc9c; +} .tabs-content > li { - display: none; } + display: none; +} .tabs-content > li.is-active { - display: block; } + display: block; +} .alert { padding: 8px 35px 8px 14px; @@ -1678,47 +1863,60 @@ ul.centred, ul.centered { -webkit-border-radius: 4px; -moz-border-radius: 4px; -o-border-radius: 4px; - border-radius: 4px; } - .alert, - .alert h4 { - color: #c09853; } - .alert h4 { - margin: 0; } - .alert .close { - position: relative; - top: -2px; - right: -21px; - line-height: 22px; } + border-radius: 4px; +} +.alert, +.alert h4 { + color: #c09853; +} +.alert h4 { + margin: 0; +} +.alert .close { + position: relative; + top: -2px; + right: -21px; + line-height: 22px; +} .alert-success { background-color: #dff0d8; border-color: #d6e9c6; - color: #468847; } - .alert-success h4 { - color: #468847; } + color: #468847; +} +.alert-success h4 { + color: #468847; +} .alert-error { background-color: #f2dede; border-color: #eed3d7; - color: #b94a48; } - .alert-error h4 { - color: #b94a48; } + color: #b94a48; +} +.alert-error h4 { + color: #b94a48; +} .alert-info { background-color: #d9edf7; border-color: #bce8f1; - color: #3a87ad; } - .alert-info h4 { - color: #3a87ad; } + color: #3a87ad; +} +.alert-info h4 { + color: #3a87ad; +} .alert-block { padding-top: 14px; - padding-bottom: 14px; } - .alert-block > p, - .alert-block > ul { - margin-bottom: 0; } - .alert-block p + p { - margin-top: 5px; } + padding-bottom: 14px; +} +.alert-block > p, +.alert-block > ul { + margin-bottom: 0; +} +.alert-block p + p { + margin-top: 5px; +} .close { float: right; @@ -1729,346 +1927,24 @@ ul.centred, ul.centered { text-shadow: 0 1px 0 white; zoom: 1; filter: alpha(opacity=20); - opacity: 0.2; } - .close:hover, .close:focus { - color: #000; - text-decoration: none; - cursor: pointer; - zoom: 1; - filter: alpha(opacity=40); - opacity: 0.4; } + opacity: 0.2; +} +.close:hover, .close:focus { + color: #000; + text-decoration: none; + cursor: pointer; + zoom: 1; + filter: alpha(opacity=40); + opacity: 0.4; +} button.close { padding: 0; cursor: pointer; background: transparent; border: 0; - -webkit-appearance: none; } - -.btn { - padding: 4px 12px; - margin-bottom: 0; - font-size: 16px; - font-size: 1rem; - line-height: 22px; - line-height: 1.375rem; - text-align: center; - cursor: pointer; - color: #333333; - text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); - background-color: #e6e6e6; - background-image: deprecated-webkit-gradient(linear, left top, left bottom, compact(white 0%, #e6e6e6 100%, false, false, false, false, false, false, false, false)); - background-image: -webkit-linear-gradient(top, compact(white 0%, #e6e6e6 100%, false, false, false, false, false, false, false, false)); - background-image: -moz-linear-gradient(top, compact(white 0%, #e6e6e6 100%, false, false, false, false, false, false, false, false)); - background-image: -ms-linear-gradient(top, compact(white 0%, #e6e6e6 100%, false, false, false, false, false, false, false, false)); - background-image: -o-linear-gradient(top, compact(white 0%, #e6e6e6 100%, false, false, false, false, false, false, false, false)); - background-image: linear-gradient(top, compact(white 0%, #e6e6e6 100%, false, false, false, false, false, false, false, false)); - background-repeat: repeat-x; - border-color: #e6e6e6 #e6e6e6 #bfbfbf; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) fadein(rgba(0, 0, 0, 0.1), 15%); - *background-color: #e6e6e6; - border: 1px solid #cccccc; - *border: 0; - border-bottom-color: #b3b3b3; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - -o-border-radius: 4px; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.3), 0 1px 2px rgba(0, 0, 0, 0.05); - -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.3), 0 1px 2px rgba(0, 0, 0, 0.05); - -o-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.3), 0 1px 2px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.3), 0 1px 2px rgba(0, 0, 0, 0.05); } - .btn:visited { - color: #333333; } - .btn:hover, .btn:focus, .btn:active, .btn.active, .btn.disabled, .btn[disabled] { - color: #333333; - background-color: #e6e6e6; - *background-color: #d9d9d9; } - .btn:active, .btn.active { - background-color: #cccccc \9; } - .btn:hover, .btn:focus { - color: #333; - text-decoration: none; - background-position-y: -15px; - -webkit-transition: background-position 0.1s linear; - -moz-transition: background-position 0.1s linear; - -o-transition: background-position 0.1s linear; - transition: background-position 0.1s linear; } - .btn.active, .btn:active { - background-image: none; - outline: 0; - -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); - -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); - -o-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); } - .btn.disabled, .btn[disabled] { - cursor: default; - background-image: none; - zoom: 1; - filter: alpha(opacity=65); - opacity: 0.65; - -webkit-box-shadow: none; - -moz-box-shadow: none; - -o-box-shadow: none; - box-shadow: none; } - -.btn-large { - padding: 11px 19px; - font-size: 18px; - font-size: 1.125rem; - -webkit-border-radius: 6px; - -moz-border-radius: 6px; - -o-border-radius: 6px; - border-radius: 6px; } - -.btn-large [class^="icon-"], -.btn-large [class*=" icon-"] { - margin-top: 4px; } - -.btn-small { - padding: 2px 10px; - font-size: 14px; - font-size: 0.875rem; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - -o-border-radius: 3px; - border-radius: 3px; } - -.btn-small [class^="icon-"], -.btn-small [class*=" icon-"] { - margin-top: 0; } - -.btn-mini [class^="icon-"], -.btn-mini [class*=" icon-"] { - margin-top: -1px; } - -.btn-mini { - padding: 0 6px; - font-size: 14px; - font-size: 0.875rem; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - -o-border-radius: 3px; - border-radius: 3px; } - -.btn-pill { - -webkit-border-radius: 100em; - -moz-border-radius: 100em; - -o-border-radius: 100em; - border-radius: 100em; - padding-left: 15px; - padding-right: 15px; } - -.btn-block { - display: block; - width: 100%; - padding-left: 0; - padding-right: 0; } - -.btn-block + .btn-block { - margin-top: 5px; } - -input[type="submit"].btn-block, -input[type="reset"].btn-block, -input[type="button"].btn-block { - width: 100%; } - -.btn-primary.active, -.btn-warning.active, -.btn-danger.active, -.btn-success.active, -.btn-info.active, -.btn-inverse.active { - color: rgba(255, 255, 255, 0.75); } - -.btn-primary { - color: white; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #46a566; - background-image: deprecated-webkit-gradient(linear, left top, left bottom, compact(#46a546 0%, #46a566 100%, false, false, false, false, false, false, false, false)); - background-image: -webkit-linear-gradient(top, compact(#46a546 0%, #46a566 100%, false, false, false, false, false, false, false, false)); - background-image: -moz-linear-gradient(top, compact(#46a546 0%, #46a566 100%, false, false, false, false, false, false, false, false)); - background-image: -ms-linear-gradient(top, compact(#46a546 0%, #46a566 100%, false, false, false, false, false, false, false, false)); - background-image: -o-linear-gradient(top, compact(#46a546 0%, #46a566 100%, false, false, false, false, false, false, false, false)); - background-image: linear-gradient(top, compact(#46a546 0%, #46a566 100%, false, false, false, false, false, false, false, false)); - background-repeat: repeat-x; - border-color: #46a566 #46a566 #2f6f45; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) fadein(rgba(0, 0, 0, 0.1), 15%); - *background-color: #46a566; } - .btn-primary:visited { - color: white; } - .btn-primary:hover, .btn-primary:focus, .btn-primary:active, .btn-primary.active, .btn-primary.disabled, .btn-primary[disabled] { - color: white; - background-color: #46a566; - *background-color: #3e935b; } - .btn-primary:active, .btn-primary.active { - background-color: #378150 \9; } - -.btn-warning { - color: white; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #f89406; - background-image: deprecated-webkit-gradient(linear, left top, left bottom, compact(#fbb450 0%, #f89406 100%, false, false, false, false, false, false, false, false)); - background-image: -webkit-linear-gradient(top, compact(#fbb450 0%, #f89406 100%, false, false, false, false, false, false, false, false)); - background-image: -moz-linear-gradient(top, compact(#fbb450 0%, #f89406 100%, false, false, false, false, false, false, false, false)); - background-image: -ms-linear-gradient(top, compact(#fbb450 0%, #f89406 100%, false, false, false, false, false, false, false, false)); - background-image: -o-linear-gradient(top, compact(#fbb450 0%, #f89406 100%, false, false, false, false, false, false, false, false)); - background-image: linear-gradient(top, compact(#fbb450 0%, #f89406 100%, false, false, false, false, false, false, false, false)); - background-repeat: repeat-x; - border-color: #f89406 #f89406 #ad6704; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) fadein(rgba(0, 0, 0, 0.1), 15%); - *background-color: #f89406; } - .btn-warning:visited { - color: white; } - .btn-warning:hover, .btn-warning:focus, .btn-warning:active, .btn-warning.active, .btn-warning.disabled, .btn-warning[disabled] { - color: white; - background-color: #f89406; - *background-color: #df8505; } - .btn-warning:active, .btn-warning.active { - background-color: #c67605 \9; } - -.btn-danger { - color: white; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #bd362f; - background-image: deprecated-webkit-gradient(linear, left top, left bottom, compact(#ee5f5b 0%, #bd362f 100%, false, false, false, false, false, false, false, false)); - background-image: -webkit-linear-gradient(top, compact(#ee5f5b 0%, #bd362f 100%, false, false, false, false, false, false, false, false)); - background-image: -moz-linear-gradient(top, compact(#ee5f5b 0%, #bd362f 100%, false, false, false, false, false, false, false, false)); - background-image: -ms-linear-gradient(top, compact(#ee5f5b 0%, #bd362f 100%, false, false, false, false, false, false, false, false)); - background-image: -o-linear-gradient(top, compact(#ee5f5b 0%, #bd362f 100%, false, false, false, false, false, false, false, false)); - background-image: linear-gradient(top, compact(#ee5f5b 0%, #bd362f 100%, false, false, false, false, false, false, false, false)); - background-repeat: repeat-x; - border-color: #bd362f #bd362f #802420; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) fadein(rgba(0, 0, 0, 0.1), 15%); - *background-color: #bd362f; } - .btn-danger:visited { - color: white; } - .btn-danger:hover, .btn-danger:focus, .btn-danger:active, .btn-danger.active, .btn-danger.disabled, .btn-danger[disabled] { - color: white; - background-color: #bd362f; - *background-color: #a9302a; } - .btn-danger:active, .btn-danger.active { - background-color: #942a25 \9; } - -.btn-success { - color: white; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #51a351; - background-image: deprecated-webkit-gradient(linear, left top, left bottom, compact(#62c462 0%, #51a351 100%, false, false, false, false, false, false, false, false)); - background-image: -webkit-linear-gradient(top, compact(#62c462 0%, #51a351 100%, false, false, false, false, false, false, false, false)); - background-image: -moz-linear-gradient(top, compact(#62c462 0%, #51a351 100%, false, false, false, false, false, false, false, false)); - background-image: -ms-linear-gradient(top, compact(#62c462 0%, #51a351 100%, false, false, false, false, false, false, false, false)); - background-image: -o-linear-gradient(top, compact(#62c462 0%, #51a351 100%, false, false, false, false, false, false, false, false)); - background-image: linear-gradient(top, compact(#62c462 0%, #51a351 100%, false, false, false, false, false, false, false, false)); - background-repeat: repeat-x; - border-color: #51a351 #51a351 #387038; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) fadein(rgba(0, 0, 0, 0.1), 15%); - *background-color: #51a351; } - .btn-success:visited { - color: white; } - .btn-success:hover, .btn-success:focus, .btn-success:active, .btn-success.active, .btn-success.disabled, .btn-success[disabled] { - color: white; - background-color: #51a351; - *background-color: #499249; } - .btn-success:active, .btn-success.active { - background-color: #408140 \9; } - -.btn-info { - color: white; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #2f96b4; - background-image: deprecated-webkit-gradient(linear, left top, left bottom, compact(#5bc0de 0%, #2f96b4 100%, false, false, false, false, false, false, false, false)); - background-image: -webkit-linear-gradient(top, compact(#5bc0de 0%, #2f96b4 100%, false, false, false, false, false, false, false, false)); - background-image: -moz-linear-gradient(top, compact(#5bc0de 0%, #2f96b4 100%, false, false, false, false, false, false, false, false)); - background-image: -ms-linear-gradient(top, compact(#5bc0de 0%, #2f96b4 100%, false, false, false, false, false, false, false, false)); - background-image: -o-linear-gradient(top, compact(#5bc0de 0%, #2f96b4 100%, false, false, false, false, false, false, false, false)); - background-image: linear-gradient(top, compact(#5bc0de 0%, #2f96b4 100%, false, false, false, false, false, false, false, false)); - background-repeat: repeat-x; - border-color: #2f96b4 #2f96b4 #1f6377; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) fadein(rgba(0, 0, 0, 0.1), 15%); - *background-color: #2f96b4; } - .btn-info:visited { - color: white; } - .btn-info:hover, .btn-info:focus, .btn-info:active, .btn-info.active, .btn-info.disabled, .btn-info[disabled] { - color: white; - background-color: #2f96b4; - *background-color: #2a85a0; } - .btn-info:active, .btn-info.active { - background-color: #24748c \9; } - -.btn-inverse { - color: white; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #222222; - background-image: deprecated-webkit-gradient(linear, left top, left bottom, compact(#444444 0%, #222222 100%, false, false, false, false, false, false, false, false)); - background-image: -webkit-linear-gradient(top, compact(#444444 0%, #222222 100%, false, false, false, false, false, false, false, false)); - background-image: -moz-linear-gradient(top, compact(#444444 0%, #222222 100%, false, false, false, false, false, false, false, false)); - background-image: -ms-linear-gradient(top, compact(#444444 0%, #222222 100%, false, false, false, false, false, false, false, false)); - background-image: -o-linear-gradient(top, compact(#444444 0%, #222222 100%, false, false, false, false, false, false, false, false)); - background-image: linear-gradient(top, compact(#444444 0%, #222222 100%, false, false, false, false, false, false, false, false)); - background-repeat: repeat-x; - border-color: #222222 #222222 black; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) fadein(rgba(0, 0, 0, 0.1), 15%); - *background-color: #222222; } - .btn-inverse:visited { - color: white; } - .btn-inverse:hover, .btn-inverse:focus, .btn-inverse:active, .btn-inverse.active, .btn-inverse.disabled, .btn-inverse[disabled] { - color: white; - background-color: #222222; - *background-color: #151515; } - .btn-inverse:active, .btn-inverse.active { - background-color: #090909 \9; } - -button.btn, -input[type="submit"].btn { - *padding-top: 3px; - *padding-bottom: 3px; } - button.btn::-moz-focus-inner, - input[type="submit"].btn::-moz-focus-inner { - padding: 0; - border: 0; } - button.btn.btn-large, - input[type="submit"].btn.btn-large { - *padding-top: 7px; - *padding-bottom: 7px; } - button.btn.btn-small, - input[type="submit"].btn.btn-small { - *padding-top: 3px; - *padding-bottom: 3px; } - button.btn.btn-mini, - input[type="submit"].btn.btn-mini { - *padding-top: 1px; - *padding-bottom: 1px; } - -.btn-link, -.btn-link:active, -.btn-link[disabled] { - background-color: transparent; - background-image: none; - -webkit-box-shadow: none; - -moz-box-shadow: none; - -o-box-shadow: none; - box-shadow: none; } - -.btn-link { - border-color: transparent; - cursor: pointer; - color: #46a546; - -webkit-border-radius: 0; - -moz-border-radius: 0; - -o-border-radius: 0; - border-radius: 0; } - -.btn-link:hover, -.btn-link:focus { - color: #2f6f2f; - text-decoration: underline; - background-color: transparent; } - -.btn-link[disabled]:hover, -.btn-link[disabled]:focus { - color: #333; - text-decoration: none; } + -webkit-appearance: none; +} .ir { background-color: transparent; @@ -2078,19 +1954,23 @@ input[type="submit"].btn { display: block; overflow: hidden; text-align: left; - text-indent: -999em; } + text-indent: -999em; +} .ir br { - display: none; } + display: none; +} .is-hidden, .hide { display: none !important; - visibility: hidden; } + visibility: hidden; +} .is-shown, .show { - display: block; } + display: block; +} .visuallyhidden { border: 0; @@ -2100,67 +1980,85 @@ input[type="submit"].btn { overflow: hidden; padding: 0; position: absolute; - width: 1px; } - .visuallyhidden.focusable:active, .visuallyhidden.focusable:focus { - clip: auto; - height: auto; - margin: 0; - overflow: visible; - position: static; - width: auto; } + width: 1px; +} +.visuallyhidden.focusable:active, .visuallyhidden.focusable:focus { + clip: auto; + height: auto; + margin: 0; + overflow: visible; + position: static; + width: auto; +} .is-invisible { - visibility: hidden; } + visibility: hidden; +} .left { - float: left; } + float: left; +} .right { - float: right; } + float: right; +} .clear { clear: both; - float: none; } + float: none; +} .mb0 { - margin-bottom: 0 !important; } + margin-bottom: 0 !important; +} .mb1 { - margin-bottom: 16 !important; } + margin-bottom: 16 !important; +} .mb2 { - margin-bottom: 24 !important; } + margin-bottom: 24 !important; +} .mb3 { - margin-bottom: 30 !important; } + margin-bottom: 30 !important; +} .mt0 { - margin-top: 0 !important; } + margin-top: 0 !important; +} .mt1 { - margin-top: 16 !important; } + margin-top: 16 !important; +} .mt2 { - margin-top: 24 !important; } + margin-top: 24 !important; +} .mt3 { - margin-top: 30 !important; } + margin-top: 30 !important; +} @media print { * { background: transparent !important; - color: black !important; + color: #000 !important; /* Black prints faster: h5bp.com/s */ box-shadow: none !important; - text-shadow: none !important; } + text-shadow: none !important; + } a:visited { - text-decoration: underline; } + text-decoration: underline; + } a[href]:after { - content: " (" attr(href) ")"; } + content: " (" attr(href) ")"; + } abbr[title]:after { - content: " (" attr(title) ")"; } + content: " (" attr(title) ")"; + } /* * Don't show links for images, or javascript/internal links @@ -2168,30 +2066,39 @@ input[type="submit"].btn { .ir a:after, a[href^="javascript:"]:after, a[href^="#"]:after { - content: ""; } + content: ""; + } pre, blockquote { - border: 1px solid #999999; - page-break-inside: avoid; } + border: 1px solid #999; + page-break-inside: avoid; + } thead { display: table-header-group; - /* h5bp.com/t */ } + /* h5bp.com/t */ + } tr, img { - page-break-inside: avoid; } + page-break-inside: avoid; + } img { - max-width: 100% !important; } + max-width: 100% !important; + } @page { - margin: 0.5cm; } + margin: 0.5cm; +} p, h2, h3 { orphans: 3; - widows: 3; } + widows: 3; + } h2, h3 { - page-break-after: avoid; } } + page-break-after: avoid; + } +} diff --git a/css/kickoff.css b/css/kickoff.css index 8d2c3b20..cd1d8ca5 100644 --- a/css/kickoff.css +++ b/css/kickoff.css @@ -1,15 +1,17 @@ .dl-horizontal dt { overflow: hidden; text-overflow: ellipsis; - white-space: nowrap; } + white-space: nowrap; +} input[type="file"]:focus, input[type="radio"]:focus, input[type="checkbox"]:focus, -select:focus, .btn:focus { - outline: thin dotted #333333; +select:focus { + outline: thin dotted #333; outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; } + outline-offset: -2px; +} .radio.inline, .checkbox.inline, .form-search input, .form-search textarea, .form-search select, .form-search .help-inline, .form-search .uneditable-input, .form-search .input-prepend, .form-search .input-append, @@ -28,209 +30,159 @@ select:focus, .btn:focus { .form-horizontal .input-prepend, .form-horizontal .input-append, .form-search label, .form-inline label, .help-inline, .input-prepend .add-on, -.input-append .add-on, .btn { - display: inline-block; } - .lt-ie8 .radio.inline, - .lt-ie8 .checkbox.inline, .lt-ie8 .form-search input, .form-search .lt-ie8 input, .lt-ie8 .form-search textarea, .form-search .lt-ie8 textarea, .lt-ie8 .form-search select, .form-search .lt-ie8 select, .lt-ie8 .form-search .help-inline, .form-search .lt-ie8 .help-inline, .lt-ie8 .form-search .uneditable-input, .form-search .lt-ie8 .uneditable-input, .lt-ie8 .form-search .input-prepend, .form-search .lt-ie8 .input-prepend, .lt-ie8 .form-search .input-append, .form-search .lt-ie8 .input-append, - .lt-ie8 .form-inline input, - .form-inline .lt-ie8 input, - .lt-ie8 .form-inline textarea, - .form-inline .lt-ie8 textarea, - .lt-ie8 .form-inline select, - .form-inline .lt-ie8 select, - .lt-ie8 .form-inline .help-inline, - .form-inline .lt-ie8 .help-inline, - .lt-ie8 .form-inline .uneditable-input, - .form-inline .lt-ie8 .uneditable-input, - .lt-ie8 .form-inline .input-prepend, - .form-inline .lt-ie8 .input-prepend, - .lt-ie8 .form-inline .input-append, - .form-inline .lt-ie8 .input-append, - .lt-ie8 .form-horizontal input, - .form-horizontal .lt-ie8 input, - .lt-ie8 .form-horizontal textarea, - .form-horizontal .lt-ie8 textarea, - .lt-ie8 .form-horizontal select, - .form-horizontal .lt-ie8 select, - .lt-ie8 .form-horizontal .help-inline, - .form-horizontal .lt-ie8 .help-inline, - .lt-ie8 .form-horizontal .uneditable-input, - .form-horizontal .lt-ie8 .uneditable-input, - .lt-ie8 .form-horizontal .input-prepend, - .form-horizontal .lt-ie8 .input-prepend, - .lt-ie8 .form-horizontal .input-append, - .form-horizontal .lt-ie8 .input-append, .lt-ie8 .form-search label, .form-search .lt-ie8 label, - .lt-ie8 .form-inline label, - .form-inline .lt-ie8 label, .lt-ie8 .help-inline, .lt-ie8 .input-prepend .add-on, .input-prepend .lt-ie8 .add-on, - .lt-ie8 .input-append .add-on, - .input-append .lt-ie8 .add-on, .lt-ie8 .btn { - display: inline; - zoom: 1; } - -.btn { - *margin-left: .3em; } - .btn:first-child { - *margin-left: 0; } - -.btn, .btn-primary, .btn-warning, .btn-danger, .btn-success, .btn-info, .btn-inverse { - filter: "progid:DXImageTransform.Microsoft.gradient(enabled = false)"; } +.input-append .add-on { + display: inline-block; +} +.lt-ie8 .radio.inline, +.lt-ie8 .checkbox.inline, .lt-ie8 .form-search input, .form-search .lt-ie8 input, .lt-ie8 .form-search textarea, .form-search .lt-ie8 textarea, .lt-ie8 .form-search select, .form-search .lt-ie8 select, .lt-ie8 .form-search .uneditable-input, .form-search .lt-ie8 .uneditable-input, .lt-ie8 .form-search .input-prepend, .form-search .lt-ie8 .input-prepend, .lt-ie8 .form-search .input-append, .form-search .lt-ie8 .input-append, +.lt-ie8 .form-inline input, +.form-inline .lt-ie8 input, +.lt-ie8 .form-inline textarea, +.form-inline .lt-ie8 textarea, +.lt-ie8 .form-inline select, +.form-inline .lt-ie8 select, +.lt-ie8 .form-inline .uneditable-input, +.form-inline .lt-ie8 .uneditable-input, +.lt-ie8 .form-inline .input-prepend, +.form-inline .lt-ie8 .input-prepend, +.lt-ie8 .form-inline .input-append, +.form-inline .lt-ie8 .input-append, +.lt-ie8 .form-horizontal input, +.form-horizontal .lt-ie8 input, +.lt-ie8 .form-horizontal textarea, +.form-horizontal .lt-ie8 textarea, +.lt-ie8 .form-horizontal select, +.form-horizontal .lt-ie8 select, +.lt-ie8 .form-horizontal .uneditable-input, +.form-horizontal .lt-ie8 .uneditable-input, +.lt-ie8 .form-horizontal .input-prepend, +.form-horizontal .lt-ie8 .input-prepend, +.lt-ie8 .form-horizontal .input-append, +.form-horizontal .lt-ie8 .input-append, .lt-ie8 .form-search label, .form-search .lt-ie8 label, +.lt-ie8 .form-inline label, +.form-inline .lt-ie8 label, .lt-ie8 .help-inline, .lt-ie8 .input-prepend .add-on, .input-prepend .lt-ie8 .add-on, +.lt-ie8 .input-append .add-on, +.input-append .lt-ie8 .add-on { + display: inline; + zoom: 1; +} * { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; -ms-box-sizing: border-box; box-sizing: border-box; - *behavior: url(polyfills/boxsizing.htc); } - -article, aside, details, figcaption, figure, footer, header, hgroup, nav, section, summary { - display: block; } +} + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +nav, +section, +summary { + display: block; +} audio, canvas, video { display: inline-block; - *display: inline; - *zoom: 1; } +} audio:not([controls]) { display: none; - height: 0; } + height: 0; +} -[hidden] { - display: none; } +[hidden], +template { + display: none; +} /* ============ */ /* === BASE === */ /* ============ */ -html { - font-size: 100%; - /* 1 */ - -webkit-text-size-adjust: 100%; - /* 2 */ - -ms-text-size-adjust: 100%; - /* 2 */ } - -html, button, input, select, textarea { - font-family: sans-serif; } - body { - margin: 0; } + margin: 0; +} + +a { + background: transparent; +} a:focus { - outline: thin dotted; } + outline: thin dotted; +} a:hover, a:active { - outline: 0; } - -dl, menu, ol.normal, ul.normal { - margin: 1em 0; } - -menu, ol.normal, ul.normal { - padding: 0 0 0 40px; } - -nav ul, -nav ol { - list-style: none; - list-style-image: none; } - -img { - border: 0; - /* 1 */ - -ms-interpolation-mode: bicubic; - /* 2 */ } - -svg:not(:root) { - overflow: hidden; } + outline: 0; +} figure { - margin: 0; } - -form { - margin: 0; } - -fieldset { - border: 1px solid silver; - margin: 0 2px; - padding: 0.35em 0.625em 0.75em; } - -legend { - border: 0; - padding: 0; - white-space: normal; - *margin-left: -7px; } - -button, input, select, textarea { - font-size: 100%; margin: 0; - vertical-align: baseline; - *vertical-align: middle; } +} button, input { - line-height: normal; } - -button, -input[type="button"], -input[type="reset"], -input[type="submit"] { - cursor: pointer; - -webkit-appearance: button; - *overflow: visible; } - -button[disabled], -input[disabled] { - cursor: default; } - -input[type="checkbox"], -input[type="radio"] { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - -ms-box-sizing: border-box; - box-sizing: border-box; - padding: 0; - *height: 13px; - *width: 13px; } + line-height: normal; +} input[type="search"] { - -webkit-appearance: textfield; } + -webkit-appearance: textfield; + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + -ms-box-sizing: content-box; + box-sizing: content-box; +} input[type="search"]::-webkit-search-decoration, input[type="search"]::-webkit-search-cancel-button { - -webkit-appearance: none; } + -webkit-appearance: none; +} button::-moz-focus-inner, input::-moz-focus-inner { border: 0; - padding: 0; } + padding: 0; +} textarea { overflow: auto; - vertical-align: top; } - -table { - border-collapse: collapse; - border-spacing: 0; } + vertical-align: top; +} .container { padding-left: 0px; padding-right: 0px; width: 95%; max-width: 1000px; - margin: 0 auto; } + margin: 0 auto; +} .row { width: 100%; margin: 0 auto; - *zoom: 1; } - .row:before, .row:after { - content: " "; - display: table; } - .row:after { - clear: both; } - .row .row { - min-width: 0; } - .row .row .col { - padding: 0; } - -@media screen and (min-width: 48em) { + *zoom: 1; +} +.row:before, .row:after { + content: " "; + display: table; +} +.row:after { + clear: both; +} +.row .row { + min-width: 0; +} +.row .row .col { + padding: 0; +} + +@media screen and (min-width: 25em) { .col { margin-left: 2%; padding: 10px; @@ -241,184 +193,65 @@ table { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; -ms-box-sizing: border-box; - box-sizing: border-box; } - .col:first-child { - margin-left: 0; } - .col + .col:last-child { - float: right; } - .col + .col.end { - float: left; } + box-sizing: border-box; + } + .col:first-child { + margin-left: 0; + } + .col + .col:last-child { + float: right; + } + .col + .col.end { + float: left; + } .span1, .mq-alpha-resize-to1 { - width: 6.5%; } + width: 6.5%; + } .span2, .mq-alpha-resize-to2 { - width: 15%; } + width: 15%; + } .span3, .mq-alpha-resize-to3 { - width: 23.5%; } + width: 23.5%; + } .span4, .mq-alpha-resize-to4 { - width: 32%; } + width: 32%; + } .span5, .mq-alpha-resize-to5 { - width: 40.5%; } + width: 40.5%; + } .span6, .mq-alpha-resize-to6 { - width: 49%; } + width: 49%; + } .span7, .mq-alpha-resize-to7 { - width: 57.5%; } + width: 57.5%; + } .span8, .mq-alpha-resize-to8 { - width: 66%; } + width: 66%; + } .span9, .mq-alpha-resize-to9 { - width: 74.5%; } + width: 74.5%; + } .span10, .mq-alpha-resize-to10 { - width: 83%; } + width: 83%; + } .span11, .mq-alpha-resize-to11 { - width: 91.5%; } + width: 91.5%; + } .span12, .mq-alpha-resize-to12 { - width: 100%; } - - .row > .offset1 { - margin-left: 0.065%; } - .row > .offset1:first-child { - margin-left: 20.065; } - - .row > .offset1 { - margin-left: 0.3%; } - .row > .offset1:first-child { - margin-left: 40.3; } - - .row > .offset1 { - margin-left: 0.705%; } - .row > .offset1:first-child { - margin-left: 60.705; } - - .row > .offset1 { - margin-left: 1.28%; } - .row > .offset1:first-child { - margin-left: 81.28; } - - .row > .offset1 { - margin-left: 2.025%; } - .row > .offset1:first-child { - margin-left: 102.025; } - - .row > .offset1 { - margin-left: 2.94%; } - .row > .offset1:first-child { - margin-left: 122.94; } - - .row > .offset1 { - margin-left: 4.025%; } - .row > .offset1:first-child { - margin-left: 144.025; } - - .row > .offset1 { - margin-left: 5.28%; } - .row > .offset1:first-child { - margin-left: 165.28; } - - .row > .offset1 { - margin-left: 6.705%; } - .row > .offset1:first-child { - margin-left: 186.705; } - - .row > .offset1 { - margin-left: 8.3%; } - .row > .offset1:first-child { - margin-left: 208.3; } - - .row > .offset1 { - margin-left: 10.065%; } - .row > .offset1:first-child { - margin-left: 230.065; } - - .row > .push2 { - left: 17%; - position: relative; } - - .row > .push3 { - left: 25.5%; - position: relative; } - - .row > .push4 { - left: 34%; - position: relative; } - - .row > .push5 { - left: 42.5%; - position: relative; } - - .row > .push6 { - left: 51%; - position: relative; } - - .row > .push7 { - left: 59.5%; - position: relative; } - - .row > .push8 { - left: 68%; - position: relative; } - - .row > .push9 { - left: 76.5%; - position: relative; } - - .row > .push10 { - left: 85%; - position: relative; } - - .row > .push11 { - left: 93.5%; - position: relative; } - - .row > .pull2 { - right: 17%; - position: relative; } - - .row > .pull3 { - right: 25.5%; - position: relative; } - - .row > .pull4 { - right: 34%; - position: relative; } - - .row > .pull5 { - right: 42.5%; - position: relative; } - - .row > .pull6 { - right: 51%; - position: relative; } - - .row > .pull7 { - right: 59.5%; - position: relative; } - - .row > .pull8 { - right: 68%; - position: relative; } - - .row > .pull9 { - right: 76.5%; - position: relative; } - - .row > .pull10 { - right: 85%; - position: relative; } - - .row > .pull11 { - right: 93.5%; - position: relative; } + width: 100%; + } .split .col, .shunt { float: none; @@ -426,186 +259,30 @@ table { min-height: 1px; position: relative; width: 100%; - clear: both; } } + clear: both; + } +} @media screen and (min-width: 62em) { - .split .col, .shunt { - margin-left: 2%; - padding: 10px; - float: left; - min-height: 1px; - position: relative; - clear: none; - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - -ms-box-sizing: border-box; - box-sizing: border-box; } - .split .col:first-child, .shunt:first-child { - margin-left: 0; } - .split .col + .split .col:last-child, .shunt + .shunt:last-child { - float: right; } - .split .col + .split .col.end, .shunt + .shunt.end { - float: left; } - - .span1, .mq-beta-resize-to1, .split .span1 { - width: 6.5%; } - - .span2, .mq-beta-resize-to2, .split .span2 { - width: 15%; } - - .span3, .mq-beta-resize-to3, .split .span3 { - width: 23.5%; } - - .span4, .mq-beta-resize-to4, .split .span4 { - width: 32%; } - - .span5, .mq-beta-resize-to5, .split .span5 { - width: 40.5%; } - - .span6, .mq-beta-resize-to6, .split .span6 { - width: 49%; } - - .span7, .mq-beta-resize-to7, .split .span7 { - width: 57.5%; } - - .span8, .mq-beta-resize-to8, .split .span8 { - width: 66%; } - - .span9, .mq-beta-resize-to9, .split .span9 { - width: 74.5%; } - - .span10, .mq-beta-resize-to10, .split .span10 { - width: 83%; } - - .span11, .mq-beta-resize-to11, .split .span11 { - width: 91.5%; } - - .row > .offset1 { - margin-left: 0.065%; } - .row > .offset1:first-child { - margin-left: 20.065; } - - .row > .offset1 { - margin-left: 0.3%; } - .row > .offset1:first-child { - margin-left: 40.3; } - - .row > .offset1 { - margin-left: 0.705%; } - .row > .offset1:first-child { - margin-left: 60.705; } - - .row > .offset1 { - margin-left: 1.28%; } - .row > .offset1:first-child { - margin-left: 81.28; } - - .row > .offset1 { - margin-left: 2.025%; } - .row > .offset1:first-child { - margin-left: 102.025; } - - .row > .offset1 { - margin-left: 2.94%; } - .row > .offset1:first-child { - margin-left: 122.94; } - - .row > .offset1 { - margin-left: 4.025%; } - .row > .offset1:first-child { - margin-left: 144.025; } - - .row > .offset1 { - margin-left: 5.28%; } - .row > .offset1:first-child { - margin-left: 165.28; } - - .row > .offset1 { - margin-left: 6.705%; } - .row > .offset1:first-child { - margin-left: 186.705; } - - .row > .offset1 { - margin-left: 8.3%; } - .row > .offset1:first-child { - margin-left: 208.3; } - - .row > .offset1 { - margin-left: 10.065%; } - .row > .offset1:first-child { - margin-left: 230.065; } - - .row > .mq-beta-push2, .push2 { - left: 17%; - position: relative; } - - .row > .mq-beta-push3, .push3 { - left: 25.5%; - position: relative; } - - .row > .mq-beta-push4, .push4 { - left: 34%; - position: relative; } - - .row > .mq-beta-push5, .push5 { - left: 42.5%; - position: relative; } - - .row > .mq-beta-push6, .push6 { - left: 51%; - position: relative; } - - .row > .mq-beta-push7, .push7 { - left: 59.5%; - position: relative; } - - .row > .mq-beta-push8, .push8 { - left: 68%; - position: relative; } - - .row > .mq-beta-push9, .push9 { - left: 76.5%; - position: relative; } - - .row > .mq-beta-pull2, .pull2 { - right: 17%; - position: relative; } - - .row > .mq-beta-pull3, .pull3 { - right: 25.5%; - position: relative; } - - .row > .mq-beta-pull4, .pull4 { - right: 34%; - position: relative; } - - .row > .mq-beta-pull5, .pull5 { - right: 42.5%; - position: relative; } - - .row > .mq-beta-pull6, .pull6 { - right: 51%; - position: relative; } - - .row > .mq-beta-pull7, .pull7 { - right: 59.5%; - position: relative; } - - .row > .mq-beta-pull8, .pull8 { - right: 68%; - position: relative; } - - .row > .mq-beta-pull9, .pull9 { - right: 76.5%; - position: relative; } - .mq-beta-end { - float: right; } + float: right; + } .mq-beta-end { - float: left; } } + float: left; + } +} .centered.col, .centred.col { float: none; - margin: 0 auto; } + margin: 0 auto; +} + +html { + font-size: 16px; + -webkit-text-size-adjust: 100%; + /* 2 */ + -ms-text-size-adjust: 100%; + /* 2 */ +} body { font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; @@ -614,7 +291,8 @@ body { line-height: 22px; line-height: 1.375rem; color: #444444; - background-color: white; } + background-color: white; +} p { font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; @@ -623,17 +301,20 @@ p { line-height: 22px; line-height: 1.375rem; margin-top: 0; - margin-bottom: 22px; } + margin-bottom: 22px; +} h1, h2, h3, h4, h5, h6 { margin: 0; font-family: inherit; font-weight: bold; - color: #46a546; - text-rendering: optimizelegibility; } - h1 small, h2 small, h3 small, h4 small, h5 small, h6 small { - font-weight: normal; - color: #74c474; } + color: #34495e; + text-rendering: optimizelegibility; +} +h1 small, h2 small, h3 small, h4 small, h5 small, h6 small { + font-weight: normal; + color: #4f6f8f; +} h1, .h1, .alpha { font-size: 51px; @@ -641,7 +322,8 @@ h1, .h1, .alpha { line-height: 44px; line-height: 2.75rem; margin-top: 22px; - margin-bottom: 44px; } + margin-bottom: 44px; +} h2, .h2, .beta { font-size: 28px; @@ -649,7 +331,8 @@ h2, .h2, .beta { line-height: 44px; line-height: 2.75rem; margin-top: 44px; - margin-bottom: 22px; } + margin-bottom: 22px; +} h3, .h3, .gamma { font-size: 21px; @@ -657,7 +340,8 @@ h3, .h3, .gamma { line-height: 22px; line-height: 1.375rem; margin-top: 22px; - margin-bottom: 0px; } + margin-bottom: 0px; +} h4, .h4, .delta, h5, .h5, .epsilon, @@ -665,214 +349,280 @@ h6, .h6, .zeta { line-height: 22px; line-height: 1.375rem; margin-top: 0; - margin-bottom: 0; } + margin-bottom: 0; +} h4, .h4, .delta { font-size: 16px; - font-size: 1rem; } + font-size: 1rem; +} h5, .h5, .epsilon { font-size: 12px; - font-size: 0.75rem; } + font-size: 0.75rem; +} h6, .h6, .zeta { font-size: 11px; font-size: 0.6875rem; color: #b3b3b3; - text-transform: uppercase; } - -.page-header { - padding-bottom: 21px; - margin: 22px 0; - border-bottom: 1px solid #b3b3b3 er; } - -.page-header h1 { - line-height: 1; } + text-transform: uppercase; +} a, a:link { - color: #46a546; - text-decoration: none; } + color: #34495e; + text-decoration: none; +} a:visited { - color: #46a546; - text-decoration: none; } + color: #34495e; + text-decoration: none; +} a:hover { - color: #2f6f2f; } + color: #19232d; +} a:active { - color: #2f6f2f; } + color: #19232d; +} + +ul { + list-style-type: disc; +} + +ol { + list-style-type: decimal; +} + +ul, ol { + padding: 0; + margin: 0 0 22px 22px; +} +ul ul, ul ol, ol ul, ol ol { + margin-left: 44px; +} +ul ul, ol ul { + list-style-type: circle; +} +ul ul ul, ol ul ul { + list-style-type: square; +} +ul ol, ol ol { + list-style-type: upper-roman; +} +ul ol ol, ol ol ol { + list-style-type: lower-roman; +} +ul li, ol li { + line-height: 22px; + line-height: 1.375rem; +} +ul ul, ul ol, ol ul, ol ol { + margin-bottom: 0; +} + +.unstyled, form ul, .tabs, .tabs-content, +nav ul, nav ol { + margin: 0; + padding: 0; + list-style: none; + list-style-image: none; +} + +dl { + margin-bottom: 22px; +} + +dt, +dd { + line-height: 22px; + line-height: 1.375rem; +} + +dt { + font-weight: bold; + line-height: 21px; + line-height: 1.3125rem; +} +.dl-horizontal dt { + float: left; + clear: left; + width: 220px; + text-align: right; +} + +dd { + margin-left: 22px; +} +.dl-horizontal dd { + margin-left: 240px; +} hr { margin: 22px 0; border: 0; border-top: 1px solid #b3b3b3 er; - border-bottom: 1px solid white; } + border-bottom: 1px solid #fff; +} strong, b { - font-weight: bold; } + font-weight: bold; +} em, i { - font-style: italic; } + font-style: italic; +} .muted { - color: #b3b3b3; } + color: #b3b3b3; +} abbr[title] { - border-bottom: 1px dotted #dddddd; - cursor: help; } + border-bottom: 1px dotted #ddd; + cursor: help; +} abbr.initialism { font-size: 90%; - text-transform: uppercase; } + text-transform: uppercase; +} blockquote { - padding: 0 0 0 15px; - margin: 0 0 22px; - border-left: 5px solid #b3b3b3 er; } - blockquote p { - margin-bottom: 0; - font-size: 16px; - font-size: 1rem; - font-weight: 300; - line-height: 27.5px; - line-height: 1.71875rem; } - blockquote small { - display: block; - line-height: 22px; - line-height: 1.375rem; - color: #b3b3b3; } - blockquote small:before { - content: '\2014 \00A0'; } - blockquote.pull-right { - float: right; - padding-left: 0; - padding-right: 15px; - border-left: 0; - border-right: 5px solid #b3b3b3 er; } - blockquote.pull-right p, blockquote.pull-right small { - text-align: right; } + padding-left: 10px; + margin: 22px; + border-left: 4px solid #cccccc; +} +blockquote p { + margin-bottom: 0; + font-size: 16px; + font-size: 1rem; + font-weight: 300; + line-height: 27.5px; + line-height: 1.71875rem; +} +blockquote small { + display: block; + line-height: 22px; + line-height: 1.375rem; + color: #b3b3b3; +} +blockquote small:before { + content: '\2014 \00A0'; +} +blockquote.pull-right { + float: right; + padding-left: 0; + padding-right: 10px; + border-left: 0; + border-right: 4px solid #cccccc; +} +blockquote.pull-right, blockquote.pull-right p, blockquote.pull-right small { + text-align: right; +} q:before, q:after, blockquote:before, blockquote:after { - content: ""; } + content: ""; +} address { display: block; margin-bottom: 22px; line-height: 22px; line-height: 1.375rem; - font-style: normal; } + font-style: normal; +} small { - font-size: 75%; } + font-size: 75%; +} cite { - font-style: normal; } + font-style: normal; +} dfn { - font-style: italic; } + font-style: italic; +} mark { - background: #ff0; - color: #000; } + background: #f1c40f; + padding: 2px 4px; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + -o-border-radius: 3px; + border-radius: 3px; +} sub, sup { font-size: 75%; line-height: 0px; line-height: 0rem; position: relative; - vertical-align: baseline; } + vertical-align: baseline; +} sup { - top: -0.5em; } + top: -0.5em; +} sub { - bottom: -0.25em; } - -ul { - list-style-type: disc; } + bottom: -0.25em; +} -ol { - list-style-type: decimal; } - -ul, ol { - padding: 0; - margin: 0 0 22px 22px; } - ul ul, ul ol, ol ul, ol ol { - margin-left: 44px; } - ul ul, ol ul { - list-style-type: circle; } - ul ul ul, ol ul ul { - list-style-type: square; } - ul ol, ol ol { - list-style-type: upper-roman; } - ul ol ol, ol ol ol { - list-style-type: lower-roman; } - ul li, ol li { - line-height: 22px; - line-height: 1.375rem; } - ul ul, ul ol, ol ul, ol ol { - margin-bottom: 0; } - -.unstyled, form ul, .tabs, .tabs-content { - margin: 0; - padding: 0; - list-style: none; - list-style-image: none; } - -dl { - margin-bottom: 22px; } - -dt, -dd { - line-height: 22px; - line-height: 1.375rem; } - -dt { - font-weight: bold; - line-height: 21px; - line-height: 1.3125rem; } - .dl-horizontal dt { - float: left; - clear: left; - width: 220px; - text-align: right; } - -dd { - margin-left: 22px; } - .dl-horizontal dd { - margin-left: 240px; } +samp { + font-family: Menlo, Monaco, "Courier New", monospace; +} .text-centre, .text-center { - text-align: center; } + text-align: center; +} .text-left { - text-align: left; } + text-align: left; +} .text-right { - text-align: right; } + text-align: right; +} ::-moz-selection { - color: white; - background: #46a546; } + color: #c9d5e1; + background: #34495e; +} ::selection { - color: white; - background: #46a546; } + color: #c9d5e1; + background: #34495e; +} + +.page-header { + padding-bottom: 21px; + margin: 22px 0; + border-bottom: 1px solid #b3b3b3; +} + +.page-header h1 { + line-height: 1; +} form { - margin: 0 0 22px; } + margin: 0 0 22px; +} fieldset { padding: 0; margin: 0; - border: 0; } + border: 0; +} .control-group { margin-top: 11px; - list-style-type: none; } - legend + .control-group { - margin-top: 22px; - -webkit-margin-top-collapse: separate; } + list-style-type: none; +} +legend + .control-group { + margin-top: 22px; + -webkit-margin-top-collapse: separate; +} legend { display: block; @@ -885,11 +635,14 @@ legend { line-height: 2.75rem; color: #4d4d4d; border: 0; - border-bottom: 1px solid #eeeeee; } - legend small { - font-size: 12px; - font-size: 0.75rem; - color: #b3b3b3; } + border-bottom: 1px solid #eee; + white-space: normal; +} +legend small { + font-size: 12px; + font-size: 0.75rem; + color: #b3b3b3; +} label, input, @@ -900,27 +653,35 @@ textarea { font-size: 1rem; line-height: 22px; line-height: 1.375rem; - font-weight: normal; } + font-weight: normal; + vertical-align: baseline; + *vertical-align: middle; +} input, button, select, textarea { - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; } + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; +} label { display: block; margin-bottom: 5px; color: #4d4d4d; - font-weight: bold; } - label small { - font-weight: normal; - color: #999999; } - label.checkbox, label.radio { - font-weight: normal; - line-height: 1.4; } - label input, label textarea, label select { - display: block; } + font-weight: bold; +} +label small { + font-weight: normal; + color: #999999; +} +label.checkbox, label.radio { + font-weight: normal; + line-height: 1.4; +} +label input, label textarea, label select { + display: block; +} input, textarea, @@ -941,29 +702,34 @@ select, -webkit-border-radius: 3px; -moz-border-radius: 3px; -o-border-radius: 3px; - border-radius: 3px; } + border-radius: 3px; +} .uneditable-textarea { width: auto; - height: auto; } + height: auto; +} input[type="image"], input[type="checkbox"], input[type="radio"] { width: auto; height: auto; padding: 0; margin: 3px 0; - *margin-top: 0; - /* IE7 */ line-height: normal; cursor: pointer; -webkit-border-radius: 0; -moz-border-radius: 0; -o-border-radius: 0; border-radius: 0; + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; border: 0 \9; - /* IE9 and down */ } +} input[type="image"] { - border: 0; } + border: 0; +} input[type="file"] { width: auto; height: 28px; @@ -975,22 +741,36 @@ input[type="file"] { -webkit-box-shadow: none; -moz-box-shadow: none; -o-box-shadow: none; - box-shadow: none; } -input[type="button"], input[type="reset"], input[type="submit"] { - width: auto; - height: auto; } + box-shadow: none; +} input[type="image"] { -webkit-box-shadow: none; -moz-box-shadow: none; -o-box-shadow: none; - box-shadow: none; } + box-shadow: none; +} input[type="hidden"] { - display: none; } + display: none; +} input[type="color"] { height: 40px; width: 40px; overflow: hidden; - padding: 2px; } + padding: 2px; +} +input[type="password"] { + font-family: sans-serif; +} + +button, +input[type="button"], +input[type="reset"], +input[type="submit"] { + width: auto; + height: auto; + cursor: pointer; + -webkit-appearance: button; +} select { width: 220px; @@ -1000,34 +780,42 @@ select { /* For IE7, add top margin to align select with labels */ line-height: 28px; line-height: 1.75rem; - background-color: white; } - select[multiple], select[size] { - height: auto; } + background-color: white; +} +select[multiple], select[size] { + height: auto; +} textarea { height: auto; - resize: vertical; } + resize: vertical; +} .radio, .checkbox { - padding-left: 18px; } - .radio input[type="radio"], .radio input[type="checkbox"], - .checkbox input[type="radio"], - .checkbox input[type="checkbox"] { - float: left; - margin-left: -18px; } - .radio.inline, - .checkbox.inline { - padding-top: 5px; - margin-bottom: 0; - vertical-align: middle; } - .radio.inline + .radio.inline, - .checkbox.inline + - .checkbox.inline { - margin-left: 10px; } + padding-left: 18px; +} +.radio input[type="radio"], .radio input[type="checkbox"], +.checkbox input[type="radio"], +.checkbox input[type="checkbox"] { + float: left; + margin-left: -18px; +} +.radio.inline, +.checkbox.inline { + padding-top: 5px; + margin-bottom: 0; + vertical-align: middle; +} +.radio.inline + .radio.inline, +.checkbox.inline + +.checkbox.inline { + margin-left: 10px; +} .control-input > .radio:first-child, .control-input > .checkbox:first-child { - padding-top: 5px; } + padding-top: 5px; +} input, textarea, @@ -1039,7 +827,8 @@ textarea, -webkit-transition: all 0.2s ease-in-out; -moz-transition: all 0.2s ease-in-out; -o-transition: all 0.2s ease-in-out; - transition: all 0.2s ease-in-out; } + transition: all 0.2s ease-in-out; +} input:focus, textarea:focus { @@ -1049,7 +838,8 @@ textarea:focus { -o-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 5px rgba(82, 168, 236, 0.6); box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 5px rgba(82, 168, 236, 0.6); outline: 0; - outline: thin dotted \9; } + outline: thin dotted \9; +} input[type="file"]:focus, input[type="radio"]:focus, @@ -1058,39 +848,44 @@ select:focus { -webkit-box-shadow: none; -moz-box-shadow: none; -o-box-shadow: none; - box-shadow: none; } + box-shadow: none; +} .input-mini { - width: 60px; } + width: 60px; +} .input-small { - width: 90px; } + width: 90px; +} .input-medium { - width: 150px; } + width: 150px; +} .input-large { - width: 210px; } + width: 210px; +} .input-xlarge { - width: 270px; } + width: 270px; +} .input-xxlarge { - width: 530px; } + width: 530px; +} input[class*="span"], select[class*="span"], textarea[class*="span"], -.uneditable-input[class*="span"], -.row-fluid input[class*="span"], -.row-fluid select[class*="span"], -.row-fluid textarea[class*="span"], -.row-fluid .uneditable-input[class*="span"] { +.uneditable-input[class*="span"] { float: none; - margin-left: 0; } + margin-left: 0; +} .file-wrapper input { - width: 90%; } + width: 90%; +} input[disabled], input[readonly], select[disabled], @@ -1099,89 +894,104 @@ textarea[disabled], textarea[readonly] { background-color: #b3b3b3; border-color: #ddd; - cursor: not-allowed; } + cursor: not-allowed; +} input:focus:required:invalid, select:focus:required:invalid, textarea:focus:required:invalid { color: #b94a48; - border-color: #ee5f5b; } - input:focus:required:invalid:focus, - select:focus:required:invalid:focus, - textarea:focus:required:invalid:focus { - border-color: #e9322d; - -webkit-box-shadow: 0 0 6px #f8b9b7; - -moz-box-shadow: 0 0 6px #f8b9b7; - -o-box-shadow: 0 0 6px #f8b9b7; - box-shadow: 0 0 6px #f8b9b7; } + border-color: #ee5f5b; +} +input:focus:required:invalid:focus, +select:focus:required:invalid:focus, +textarea:focus:required:invalid:focus { + border-color: #e9322d; + -webkit-box-shadow: 0 0 6px #f8b9b7; + -moz-box-shadow: 0 0 6px #f8b9b7; + -o-box-shadow: 0 0 6px #f8b9b7; + box-shadow: 0 0 6px #f8b9b7; +} .control-group.warning > label, .control-group.warning .help-block, .control-group.warning .help-inline { - color: #c09853; } + color: #c09853; +} .control-group.warning input, .control-group.warning select, .control-group.warning textarea { color: #c09853; - border-color: #c09853; } - .control-group.warning input:focus, - .control-group.warning select:focus, - .control-group.warning textarea:focus { - border-color: #a47e3c; - -webkit-box-shadow: 0 0 6px #dbc59e; - -moz-box-shadow: 0 0 6px #dbc59e; - -o-box-shadow: 0 0 6px #dbc59e; - box-shadow: 0 0 6px #dbc59e; } + border-color: #c09853; +} +.control-group.warning input:focus, +.control-group.warning select:focus, +.control-group.warning textarea:focus { + border-color: #a47e3c; + -webkit-box-shadow: 0 0 6px #dbc59e; + -moz-box-shadow: 0 0 6px #dbc59e; + -o-box-shadow: 0 0 6px #dbc59e; + box-shadow: 0 0 6px #dbc59e; +} .control-group.warning .input-prepend .add-on, .control-group.warning .input-append .add-on { color: #c09853; background-color: #fcf8e3; - border-color: #c09853; } + border-color: #c09853; +} .control-group.error > label, .control-group.error .help-block, .control-group.error .help-inline { - color: #b94a48; } + color: #b94a48; +} .control-group.error input, .control-group.error select, .control-group.error textarea { color: #b94a48; - border-color: #b94a48; } - .control-group.error input:focus, - .control-group.error select:focus, - .control-group.error textarea:focus { - border-color: #953b39; - -webkit-box-shadow: 0 0 6px #d59392; - -moz-box-shadow: 0 0 6px #d59392; - -o-box-shadow: 0 0 6px #d59392; - box-shadow: 0 0 6px #d59392; } + border-color: #b94a48; +} +.control-group.error input:focus, +.control-group.error select:focus, +.control-group.error textarea:focus { + border-color: #953b39; + -webkit-box-shadow: 0 0 6px #d59392; + -moz-box-shadow: 0 0 6px #d59392; + -o-box-shadow: 0 0 6px #d59392; + box-shadow: 0 0 6px #d59392; +} .control-group.error .input-prepend .add-on, .control-group.error .input-append .add-on { color: #b94a48; background-color: #f2dede; - border-color: #b94a48; } + border-color: #b94a48; +} .control-group.success > label, .control-group.success .help-block, .control-group.success .help-inline { - color: #468847; } + color: #468847; +} .control-group.success input, .control-group.success select, .control-group.success textarea { color: #468847; - border-color: #468847; } - .control-group.success input:focus, - .control-group.success select:focus, - .control-group.success textarea:focus { - border-color: #356635; - -webkit-box-shadow: 0 0 6px #7aba7b; - -moz-box-shadow: 0 0 6px #7aba7b; - -o-box-shadow: 0 0 6px #7aba7b; - box-shadow: 0 0 6px #7aba7b; } + border-color: #468847; +} +.control-group.success input:focus, +.control-group.success select:focus, +.control-group.success textarea:focus { + border-color: #356635; + -webkit-box-shadow: 0 0 6px #7aba7b; + -moz-box-shadow: 0 0 6px #7aba7b; + -o-box-shadow: 0 0 6px #7aba7b; + box-shadow: 0 0 6px #7aba7b; +} .control-group.success .input-prepend .add-on, .control-group.success .input-append .add-on { color: #468847; background-color: #dff0d8; - border-color: #468847; } + border-color: #468847; +} .form-search input, .form-search textarea, .form-search select, .form-search .help-inline, .form-search .uneditable-input, .form-search .input-prepend, .form-search .input-append, .form-inline input, @@ -1198,89 +1008,108 @@ textarea:focus:required:invalid { .form-horizontal .uneditable-input, .form-horizontal .input-prepend, .form-horizontal .input-append { - margin-bottom: 0; } + margin-bottom: 0; +} .form-search .hide, .form-inline .hide, .form-horizontal .hide { - display: none; } + display: none; +} .form-horizontal .control-group { margin-bottom: 22px; - *zoom: 1; } - .form-horizontal .control-group:before, .form-horizontal .control-group:after { - content: " "; - display: table; } - .form-horizontal .control-group:after { - clear: both; } + *zoom: 1; +} +.form-horizontal .control-group:before, .form-horizontal .control-group:after { + content: " "; + display: table; +} +.form-horizontal .control-group:after { + clear: both; +} .form-horizontal .control-label, .form-horizontal .control-group label { float: left; width: 140px; padding-top: 5px; - text-align: right; } + text-align: right; +} .form-horizontal .control-input, .form-horizontal .control-group div { margin-left: 160px; /* Super jank IE7 fix to ensure the inputs in .input-append and input-prepend don't inherit the margin of the parent, in this case .control-input */ *display: inline-block; *margin-left: 0; - *padding-left: 20px; } - .form-horizontal .control-input:first-child, .form-horizontal .control-group div:first-child { - *padding-left: 160px; } + *padding-left: 20px; +} +.form-horizontal .control-input:first-child, .form-horizontal .control-group div:first-child { + *padding-left: 160px; +} .form-horizontal .help-block { margin-top: 11px; - margin-bottom: 0; } + margin-bottom: 0; +} .form-horizontal .form-actions { - padding-left: 160px; } + padding-left: 160px; +} .form-search > *, .form-inline > * { - margin-right: 10px; } - .form-search > *:last-child, - .form-inline > *:last-child { - margin-right: 0; } + margin-right: 10px; +} +.form-search > *:last-child, +.form-inline > *:last-child { + margin-right: 0; +} .form-search .radio, .form-search .checkbox, .form-inline .radio, .form-inline .checkbox { padding-left: 0; margin-bottom: 0; - vertical-align: middle; } + vertical-align: middle; +} .form-search .radio input[type="radio"], .form-search .checkbox input[type="checkbox"], .form-inline .radio input[type="radio"], .form-inline .checkbox input[type="checkbox"] { float: left; margin-left: 0; - margin-right: 3px; } + margin-right: 3px; +} .form-search .input-prepend, .form-search .input-append, .form-inline .input-prepend, .form-inline .input-append { - margin-bottom: 0; } + margin-bottom: 0; +} .search-query { padding-left: 14px; padding-right: 14px; - padding-left: 4px \9; - padding-right: 4px \9; margin-bottom: 0; -webkit-border-radius: 100px; -moz-border-radius: 100px; -o-border-radius: 100px; - border-radius: 100px; } + border-radius: 100px; +} .form-actions { padding: 21px 20px 22px; margin-top: 22px; margin-bottom: 22px; background-color: whitesmoke; - border-top: 1px solid #dddddd; - *zoom: 1; } - .form-actions:before, .form-actions:after { - content: " "; - display: table; } - .form-actions:after { - clear: both; } - .form-actions .btn { - margin-right: 10px; } - .form-actions .btn:last-child { - margin-right: 0; } + border-top: 1px solid #ddd; + *zoom: 1; +} +.form-actions:before, .form-actions:after { + content: " "; + display: table; +} +.form-actions:after { + clear: both; +} +.form-actions .btn, .form-actions .tabs a, .tabs .form-actions a { + margin-right: 10px; +} +.form-actions .btn:last-child, .form-actions .tabs a:last-child, .tabs .form-actions a:last-child { + margin-right: 0; +} .uneditable-input { background-color: white; @@ -1289,141 +1118,172 @@ textarea:focus:required:invalid { -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); -o-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); - cursor: not-allowed; } + cursor: not-allowed; +} :-ms-input-placeholder { - color: #b3b3b3; } + color: #b3b3b3; +} :-moz-placeholder { - color: #b3b3b3; } + color: #b3b3b3; +} ::-webkit-input-placeholder { - color: #b3b3b3; } + color: #b3b3b3; +} .help-block, .help-inline { - color: gray; } + color: #7f8c8d; +} .help-block { display: block; - margin-bottom: 11px; } + margin-bottom: 11px; +} .help-inline { vertical-align: middle; - padding-left: 5px; } + padding-left: 5px; +} .input-prepend, .input-append { - margin-bottom: 5px; } - .input-prepend input, .input-prepend select, .input-prepend .uneditable-input, - .input-append input, - .input-append select, - .input-append .uneditable-input { - position: relative; - margin-bottom: 0; - *margin-left: 0; - vertical-align: middle; - -webkit-border-radius: 0 3px 3px 0; - -moz-border-radius: 0 3px 3px 0; - -o-border-radius: 0 3px 3px 0; - border-radius: 0 3px 3px 0; } - .input-prepend input:focus, .input-prepend select:focus, .input-prepend .uneditable-input:focus, - .input-append input:focus, - .input-append select:focus, - .input-append .uneditable-input:focus { - z-index: 2; } - .input-prepend .uneditable-input, - .input-append .uneditable-input { - border-left-color: #ccc; } - .input-prepend .add-on, - .input-append .add-on { - width: auto; - min-width: 16px; - height: 22px; - padding: 4px 5px; - font-weight: normal; - line-height: 22px; - line-height: 1.375rem; - text-align: center; - text-shadow: 0 1px 0 white; - vertical-align: middle; - background-color: #b3b3b3 er; - border: 1px solid #cccccc; } - .input-prepend .add-on, .input-prepend .btn, - .input-append .add-on, - .input-append .btn { - -webkit-border-radius: 3px 0 0 3px; - -moz-border-radius: 3px 0 0 3px; - -o-border-radius: 3px 0 0 3px; - border-radius: 3px 0 0 3px; } - .input-prepend .active, - .input-append .active { - background-color: #a9dba9; - border-color: #46a546; } - -.input-prepend .add-on, .input-prepend .btn { - margin-right: -1px; } - -.input-append input, .input-append select, .input-append .uneditable-input { - -webkit-border-radius: 3px 0 0 3px; - -moz-border-radius: 3px 0 0 3px; - -o-border-radius: 3px 0 0 3px; - border-radius: 3px 0 0 3px; } + margin-bottom: 5px; +} +.input-prepend input, .input-prepend select, .input-prepend .uneditable-input, +.input-append input, +.input-append select, .input-append .uneditable-input { - border-left-color: #eee; - border-right-color: #ccc; } -.input-append .add-on, .input-append .btn { - margin-left: -1px; - -webkit-border-radius: 0 3px 3px 0; - -moz-border-radius: 0 3px 3px 0; + position: relative; + margin-bottom: 0; + *margin-left: 0; + vertical-align: middle; + -webkit-border-radius: 0 3px 3px 0; + -moz-border-radius: 0 3px 3px 0; + -o-border-radius: 0 3px 3px 0; + border-radius: 0 3px 3px 0; +} +.input-prepend input:focus, .input-prepend select:focus, .input-prepend .uneditable-input:focus, +.input-append input:focus, +.input-append select:focus, +.input-append .uneditable-input:focus { + z-index: 2; +} +.input-prepend .uneditable-input, +.input-append .uneditable-input { + border-left-color: #ccc; +} +.input-prepend .add-on, +.input-append .add-on { + width: auto; + min-width: 16px; + height: 22px; + padding: 4px 5px; + font-weight: normal; + line-height: 22px; + line-height: 1.375rem; + text-align: center; + text-shadow: 0 1px 0 #fff; + vertical-align: middle; + background-color: #b3b3b3 er; + border: 1px solid #ccc; +} +.input-prepend .add-on, .input-prepend .btn, .input-prepend .tabs a, .tabs .input-prepend a, +.input-append .add-on, +.input-append .btn, +.input-append .tabs a, +.tabs .input-append a { + -webkit-border-radius: 3px 0 0 3px; + -moz-border-radius: 3px 0 0 3px; + -o-border-radius: 3px 0 0 3px; + border-radius: 3px 0 0 3px; +} +.input-prepend .active, +.input-append .active { + background-color: #81eed8; + border-color: #1abc9c; +} + +.input-prepend .add-on, .input-prepend .btn, .input-prepend .tabs a, .tabs .input-prepend a { + margin-right: -1px; +} + +.input-append input, .input-append select, .input-append .uneditable-input { + -webkit-border-radius: 3px 0 0 3px; + -moz-border-radius: 3px 0 0 3px; + -o-border-radius: 3px 0 0 3px; + border-radius: 3px 0 0 3px; +} +.input-append .uneditable-input { + border-left-color: #eee; + border-right-color: #ccc; +} +.input-append .add-on, .input-append .btn, .input-append .tabs a, .tabs .input-append a { + margin-left: -1px; + -webkit-border-radius: 0 3px 3px 0; + -moz-border-radius: 0 3px 3px 0; -o-border-radius: 0 3px 3px 0; - border-radius: 0 3px 3px 0; } + border-radius: 0 3px 3px 0; +} .input-prepend.input-append input, .input-prepend.input-append select, .input-prepend.input-append .uneditable-input { -webkit-border-radius: 0; -moz-border-radius: 0; -o-border-radius: 0; - border-radius: 0; } -.input-prepend.input-append .add-on:first-child, .input-prepend.input-append .btn:first-child { + border-radius: 0; +} +.input-prepend.input-append .add-on:first-child, .input-prepend.input-append .btn:first-child, .input-prepend.input-append .tabs a:first-child, .tabs .input-prepend.input-append a:first-child { margin-right: -1px; -webkit-border-radius: 3px 0 0 3px; -moz-border-radius: 3px 0 0 3px; -o-border-radius: 3px 0 0 3px; - border-radius: 3px 0 0 3px; } -.input-prepend.input-append .add-on:last-child, .input-prepend.input-append .btn:last-child { + border-radius: 3px 0 0 3px; +} +.input-prepend.input-append .add-on:last-child, .input-prepend.input-append .btn:last-child, .input-prepend.input-append .tabs a:last-child, .tabs .input-prepend.input-append a:last-child { margin-left: -1px; -webkit-border-radius: 0 3px 3px 0; -moz-border-radius: 0 3px 3px 0; -o-border-radius: 0 3px 3px 0; - border-radius: 0 3px 3px 0; } + border-radius: 0 3px 3px 0; +} table { max-width: 100%; border-collapse: collapse; border-spacing: 0; - background-color: transparent; } + background-color: transparent; +} .table { width: 100%; - margin-bottom: 22px; } - .table th, .table td { - padding: 8px; - line-height: 22px; - line-height: 1.375rem; - text-align: left; - vertical-align: top; - border-top: 1px solid #dddddd; } - .table th, .table tfoot td { - font-weight: bold; } - .table thead th { - vertical-align: bottom; } - .table caption + thead tr:first-child th, .table caption + thead tr:first-child td, .table colgroup + thead tr:first-child th, .table colgroup + thead tr:first-child td, .table thead:first-child tr:first-child th, .table thead:first-child tr:first-child td { - border-top: 0; } - .table tbody + tbody { - border-top: 2px solid #dddddd; } + margin-bottom: 22px; +} +.table th, .table td { + padding: 8px; + line-height: 22px; + line-height: 1.375rem; + text-align: left; + vertical-align: top; + border-top: 1px solid #dddddd; +} +.table th, .table tfoot td { + font-weight: bold; +} +.table thead th { + vertical-align: bottom; +} +.table caption + thead tr:first-child th, .table caption + thead tr:first-child td, .table colgroup + thead tr:first-child th, .table colgroup + thead tr:first-child td, .table thead:first-child tr:first-child th, .table thead:first-child tr:first-child td { + border-top: 0; +} +.table tbody + tbody { + border-top: 2px solid #dddddd; +} .table-condensed th, .table-condensed td { - padding: 4px 5px; } + padding: 4px 5px; +} .table-bordered { border: 1px solid #dddddd; @@ -1433,62 +1293,83 @@ table { -webkit-border-radius: 4px; -moz-border-radius: 4px; -o-border-radius: 4px; - border-radius: 4px; } - .table-bordered th, .table-bordered td { - border-left: 1px solid #dddddd; } - .table-bordered caption + thead tr:first-child th, .table-bordered caption + tbody tr:first-child th, .table-bordered caption + tbody tr:first-child td, .table-bordered colgroup + thead tr:first-child th, .table-bordered colgroup + tbody tr:first-child th, .table-bordered colgroup + tbody tr:first-child td, .table-bordered thead:first-child tr:first-child th, .table-bordered tbody:first-child tr:first-child th, .table-bordered tbody:first-child tr:first-child td { - border-top: 0; } - .table-bordered thead:first-child tr:first-child th:first-child, .table-bordered tbody:first-child tr:first-child td:first-child { - -webkit-border-radius: 4px 0 0 0; - -moz-border-radius: 4px 0 0 0; - -o-border-radius: 4px 0 0 0; - border-radius: 4px 0 0 0; } - .table-bordered thead:first-child tr:first-child th:last-child, .table-bordered tbody:first-child tr:first-child td:last-child { - -webkit-border-radius: 0 4px 0 0; - -moz-border-radius: 0 4px 0 0; - -o-border-radius: 0 4px 0 0; - border-radius: 0 4px 0 0; } - .table-bordered thead:last-child tr:last-child th:first-child, .table-bordered tbody:last-child tr:last-child td:first-child { - -webkit-border-radius: 0 0 0 4px; - -moz-border-radius: 0 0 0 4px; - -o-border-radius: 0 0 0 4px; - border-radius: 0 0 0 4px; } - .table-bordered thead:last-child tr:last-child th:last-child, .table-bordered tbody:last-child tr:last-child td:last-child { - -webkit-border-radius: 0 0 4px 0; - -moz-border-radius: 0 0 4px 0; - -o-border-radius: 0 0 4px 0; - border-radius: 0 0 4px 0; } + border-radius: 4px; +} +.table-bordered th, .table-bordered td { + border-left: 1px solid #dddddd; +} +.table-bordered caption + thead tr:first-child th, .table-bordered caption + tbody tr:first-child th, .table-bordered caption + tbody tr:first-child td, .table-bordered colgroup + thead tr:first-child th, .table-bordered colgroup + tbody tr:first-child th, .table-bordered colgroup + tbody tr:first-child td, .table-bordered thead:first-child tr:first-child th, .table-bordered tbody:first-child tr:first-child th, .table-bordered tbody:first-child tr:first-child td { + border-top: 0; +} +.table-bordered thead:first-child tr:first-child th:first-child, .table-bordered tbody:first-child tr:first-child td:first-child { + -webkit-border-radius: 4px 0 0 0; + -moz-border-radius: 4px 0 0 0; + -o-border-radius: 4px 0 0 0; + border-radius: 4px 0 0 0; +} +.table-bordered thead:first-child tr:first-child th:last-child, .table-bordered tbody:first-child tr:first-child td:last-child { + -webkit-border-radius: 0 4px 0 0; + -moz-border-radius: 0 4px 0 0; + -o-border-radius: 0 4px 0 0; + border-radius: 0 4px 0 0; +} +.table-bordered thead:last-child tr:last-child th:first-child, .table-bordered tbody:last-child tr:last-child td:first-child { + -webkit-border-radius: 0 0 0 4px; + -moz-border-radius: 0 0 0 4px; + -o-border-radius: 0 0 0 4px; + border-radius: 0 0 0 4px; +} +.table-bordered thead:last-child tr:last-child th:last-child, .table-bordered tbody:last-child tr:last-child td:last-child { + -webkit-border-radius: 0 0 4px 0; + -moz-border-radius: 0 0 4px 0; + -o-border-radius: 0 0 4px 0; + border-radius: 0 0 4px 0; +} .table-striped tbody tr:nth-child(odd) td, .table-striped tbody tr:nth-child(odd) th { - background-color: #f9f9f9; } + background-color: #f9f9f9; +} .table tbody tr:hover td, .table tbody tr:hover th { - background-color: whitesmoke; } + background-color: whitesmoke; +} table .span1 { - width: 6.5%; } + width: 6.5%; +} table .span2 { - width: 15%; } + width: 15%; +} table .span3 { - width: 23.5%; } + width: 23.5%; +} table .span4 { - width: 32%; } + width: 32%; +} table .span5 { - width: 40.5%; } + width: 40.5%; +} table .span6 { - width: 49%; } + width: 49%; +} table .span7 { - width: 57.5%; } + width: 57.5%; +} table .span8 { - width: 66%; } + width: 66%; +} table .span9 { - width: 74.5%; } + width: 74.5%; +} table .span10 { - width: 83%; } + width: 83%; +} table .span11 { - width: 91.5%; } + width: 91.5%; +} table .span12 { - width: 100%; } + width: 100%; +} code, pre { @@ -1496,18 +1377,19 @@ pre { font-family: Menlo, Monaco, "Courier New", monospace; font-size: 13px; font-size: 0.8125rem; - color: gray; + color: #dd1144; -webkit-border-radius: 3px; -moz-border-radius: 3px; -o-border-radius: 3px; border-radius: 3px; - tab-size: 3; } + tab-size: 3; +} code { padding: 2px 4px; color: #dd1144; - background-color: #f7f7f9; - border: 1px solid #e1e1e8; } + background-color: #fbefc0; +} pre { display: block; @@ -1515,9 +1397,9 @@ pre { margin: 0 0 11px; line-height: 22px; line-height: 1.375rem; - color: #dd1144; + color: #222222; background-color: #f7f7f9; - border: 1px solid #cccccc; + border: 1px solid #ccc; border: 1px solid rgba(0, 0, 0, 0.15); -webkit-border-radius: 4px; -moz-border-radius: 4px; @@ -1526,98 +1408,378 @@ pre { white-space: pre; white-space: pre-wrap; word-break: break-all; - word-wrap: break-word; } - pre.prettyprint { - margin-bottom: 22px; } - pre code { - padding: 0; - color: #dd1144; - background-color: #f7f7f9; - border: 0; } + word-wrap: break-word; +} +pre.prettyprint { + margin-bottom: 22px; +} +pre code { + padding: 0; + color: #222222; + background-color: #f7f7f9; + border: 0; +} .pre-scrollable { max-height: 340px; - overflow-y: scroll; } + overflow-y: scroll; +} + +.btn, .tabs a { + display: inline-block; + /* [1] */ + vertical-align: middle; + /* [2] */ + white-space: nowrap; + /* [3] */ + font-family: inherit; + /* [4] */ + font-size: 100%; + /* [4] */ + cursor: pointer; + /* [5] */ + border: none; + /* [6] */ + margin: 0; + /* [6] */ + padding-top: 0; + /* [6] */ + padding-bottom: 0; + /* [6] */ + line-height: 3; + /* [7] */ + height: 3em; + /* [7] */ + padding-right: 1em; + /* [7] */ + padding-left: 1em; + /* [7] */ + overflow: visible; + /* [8] */ + text-align: center; + background-color: white; + -webkit-border-radius: 4px; + -moz-border-radius: 4px; + -o-border-radius: 4px; + border-radius: 4px; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.3), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.3), 0 1px 2px rgba(0, 0, 0, 0.05); + -o-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.3), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.3), 0 1px 2px rgba(0, 0, 0, 0.05); +} +.btn, .tabs a, .btn:hover, .tabs a:hover, .btn:active, .tabs a:active, .btn:focus, .tabs a:focus, .btn:visited, .tabs a:visited { + text-decoration: none; +} +.btn:active, .tabs a:active, .btn:focus, .tabs a:focus { + outline: none; + box-shadow: 0 0 5px rgba(0, 0, 0, 0.5) inset; +} +.btn.disabled, .tabs a.disabled, .btn[disabled], .tabs a[disabled] { + cursor: default; + background-image: none; + zoom: 1; + filter: alpha(opacity=65); + opacity: 0.65; + -webkit-box-shadow: none; + -moz-box-shadow: none; + -o-box-shadow: none; + box-shadow: none; +} + +.btn-large { + font-size: 18px; + font-size: 1.125rem; + line-height: 3.5; + height: 3.5em; + padding-right: 1.5em; + padding-left: 1.5em; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + -o-border-radius: 6px; + border-radius: 6px; +} + +.btn-small { + font-size: 13px; + font-size: 0.8125rem; + line-height: 1.5; + height: 1.5em; + padding-right: 0.5em; + padding-left: 0.5em; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + -o-border-radius: 3px; + border-radius: 3px; +} + +.btn-pill { + padding-left: 1.5em; + padding-right: 1.5em; + -webkit-border-radius: 100em; + -moz-border-radius: 100em; + -o-border-radius: 100em; + border-radius: 100em; +} + +.btn-close { + position: absolute; + right: 20px; + top: 20px; + display: block; + height: 20px; + width: 20px; + line-height: 17px; + background: #000; + color: #34495e; + text-align: center; + -webkit-border-radius: 5px; + -moz-border-radius: 5px; + -o-border-radius: 5px; + border-radius: 5px; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.btn-close:hover { + color: #fff; + -webkit-border-radius: 50px; + -moz-border-radius: 50px; + -o-border-radius: 50px; + border-radius: 50px; +} + +.btn-block { + display: block; + width: 100%; + padding-left: 0; + padding-right: 0; +} + +.btn-block + .btn-block { + margin-top: 10px; +} + +input[type="submit"].btn-block, +input[type="reset"].btn-block, +input[type="button"].btn-block { + width: 100%; +} + +.btn-natural { + vertical-align: baseline; + font-size: inherit; + line-height: inherit; + height: auto; + padding-right: 0.5em; + padding-left: 0.5em; +} + +.btn-primary.active, +.btn-warning.active, +.btn-danger.active, +.btn-success.active, +.btn-info.active, +.btn-inverse.active { + color: rgba(255, 255, 255, 0.75); +} + +.btn-primary { + background-color: #34495e; + color: #fff !important; + text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.25); +} +.btn-primary:hover { + background-color: #2c3e50; +} + +.btn-warning { + background-color: #e67e22; + color: #fff !important; + text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.25); +} +.btn-warning:hover { + background-color: #d35400; +} + +.btn-danger { + background-color: #e74c3c; + color: #fff !important; + text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.25); +} +.btn-danger:hover { + background-color: #c0392b; +} + +.btn-success { + background-color: #2ecc71; + color: #fff !important; + text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.25); +} +.btn-success:hover { + background-color: #27ae60; +} + +.btn-info { + background-color: #1abc9c; + color: #fff !important; + text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.25); +} +.btn-info:hover { + background-color: #16a085; +} + +.btn-inverse { + background-color: #444444; + color: #fff !important; + text-shadow: 0 -1px 1px rgba(0, 0, 0, 0.25); +} +.btn-inverse:hover { + background-color: #222222; +} + +.btn-link, +.btn-link:active, +.btn-link[disabled] { + background-color: transparent; + background-image: none; + -webkit-box-shadow: none; + -moz-box-shadow: none; + -o-box-shadow: none; + box-shadow: none; +} + +.btn-link { + border-color: transparent; + cursor: pointer; + color: #34495e; + -webkit-border-radius: 0; + -moz-border-radius: 0; + -o-border-radius: 0; + border-radius: 0; +} + +.btn-link:hover, +.btn-link:focus { + color: #19232d; + text-decoration: underline; + background-color: transparent; +} + +.btn-link[disabled]:hover, +.btn-link[disabled]:focus { + color: #333; + text-decoration: none; +} img { font-style: italic; color: #c00; border: 0; - -ms-interpolation-mode: bicubic; } - img.left { - margin: 0 20px 0 0; } - img.right { - margin: 0 0 0 20px; } + -ms-interpolation-mode: bicubic; +} +img.left { + margin: 0 20px 0 0; +} +img.right { + margin: 0 0 0 20px; +} svg:not(:root) { - overflow: hidden; } + overflow: hidden; +} img, object, embed, video { - max-width: 100%; } + max-width: 100%; +} #map_canvas img, .map_canvas img { - max-width: none!important; } + max-width: none !important; +} .block-grid { display: block; list-style-type: none; - *zoom: 1; } - .block-grid:before, .block-grid:after { - content: " "; - display: table; } - .block-grid:after { - clear: both; } - .block-grid li { - display: block; - height: auto; - float: left; } - .block-grid.two-up { - margin-left: -4%; } - .block-grid.two-up li { - margin-left: 4%; - width: 46%; - margin-bottom: 4%; } - .block-grid.three-up { - margin-left: -2%; } - .block-grid.three-up li { - margin-left: 2%; - width: 31.3%; - margin-bottom: 2%; } - .block-grid.four-up { - margin-left: -2%; } - .block-grid.four-up li { - margin-left: 2%; - width: 23%; - margin-bottom: 2%; } - .block-grid.five-up { - margin-left: -1.5%; } - .block-grid.five-up li { - margin-left: 1.5%; - width: 18.5%; - margin-bottom: 1.5%; } + *zoom: 1; +} +.block-grid:before, .block-grid:after { + content: " "; + display: table; +} +.block-grid:after { + clear: both; +} +.block-grid li { + display: block; + height: auto; + float: left; +} +.block-grid.two-up { + margin-left: -4%; +} +.block-grid.two-up li { + margin-left: 4%; + width: 46%; + margin-bottom: 4%; +} +.block-grid.three-up { + margin-left: -2%; +} +.block-grid.three-up li { + margin-left: 2%; + width: 31.3%; + margin-bottom: 2%; +} +.block-grid.four-up { + margin-left: -2%; +} +.block-grid.four-up li { + margin-left: 2%; + width: 23%; + margin-bottom: 2%; +} +.block-grid.five-up { + margin-left: -1.5%; +} +.block-grid.five-up li { + margin-left: 1.5%; + width: 18.5%; + margin-bottom: 1.5%; +} ul.centred, ul.centered { - text-align: center; } - ul.centred li, ul.centered li { - display: inline; } + text-align: center; +} +ul.centred li, ul.centered li { + display: inline; +} .floated { - *zoom: 1; } - .floated:before, .floated:after { - content: " "; - display: table; } - .floated:after { - clear: both; } - .floated li { - float: left; - display: inline-block; } + *zoom: 1; +} +.floated:before, .floated:after { + content: " "; + display: table; +} +.floated:after { + clear: both; +} +.floated li { + float: left; + display: inline-block; +} .well { min-height: 20px; padding: 19px; margin-bottom: 20px; background-color: #f5f5f5; - border: 1px solid #eeeeee; + border: 1px solid #eee; border: 1px solid rgba(0, 0, 0, 0.05); -webkit-border-radius: 4px; -moz-border-radius: 4px; @@ -1626,48 +1788,73 @@ ul.centred, ul.centered { -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); -o-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); } - .well blockquote { - border-color: #ddd; - border-color: rgba(0, 0, 0, 0.15); } + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); +} +.well blockquote { + border-color: #ddd; + border-color: rgba(0, 0, 0, 0.15); +} .well-large { padding: 24px; -webkit-border-radius: 6px; -moz-border-radius: 6px; -o-border-radius: 6px; - border-radius: 6px; } + border-radius: 6px; +} .well-small { padding: 9px; -webkit-border-radius: 3px; -moz-border-radius: 3px; -o-border-radius: 3px; - border-radius: 3px; } + border-radius: 3px; +} .tabs { *zoom: 1; - margin-bottom: 22px; } - .tabs:before, .tabs:after { - content: " "; - display: table; } - .tabs:after { - clear: both; } - .tabs.is-right li { - float: right; } - .tabs.is-centred, .tabs.is-centered { - text-align: center; } - .tabs.is-centred > li, .tabs.is-centered > li { - display: inline; - float: none; } - .tabs > li { - float: left; - margin: 0 5px; } + margin-bottom: 22px; + border-bottom: 2px solid #1abc9c; +} +.tabs:before, .tabs:after { + content: " "; + display: table; +} +.tabs:after { + clear: both; +} +.tabs.is-right li { + float: right; +} +.tabs.is-centred, .tabs.is-centered { + text-align: center; +} +.tabs.is-centred > li, .tabs.is-centered > li { + display: inline; + float: none; +} +.tabs > li { + float: left; + margin: 0 5px; +} +.tabs a { + background-color: #95a5a6; + -webkit-border-radius: 4px 4px 0 0; + -moz-border-radius: 4px 4px 0 0; + -o-border-radius: 4px 4px 0 0; + border-radius: 4px 4px 0 0; + color: #fff; +} +.tabs a.is-active { + background-color: #1abc9c; +} .tabs-content > li { - display: none; } + display: none; +} .tabs-content > li.is-active { - display: block; } + display: block; +} .alert { padding: 8px 35px 8px 14px; @@ -1678,47 +1865,60 @@ ul.centred, ul.centered { -webkit-border-radius: 4px; -moz-border-radius: 4px; -o-border-radius: 4px; - border-radius: 4px; } - .alert, - .alert h4 { - color: #c09853; } - .alert h4 { - margin: 0; } - .alert .close { - position: relative; - top: -2px; - right: -21px; - line-height: 22px; } + border-radius: 4px; +} +.alert, +.alert h4 { + color: #c09853; +} +.alert h4 { + margin: 0; +} +.alert .close { + position: relative; + top: -2px; + right: -21px; + line-height: 22px; +} .alert-success { background-color: #dff0d8; border-color: #d6e9c6; - color: #468847; } - .alert-success h4 { - color: #468847; } + color: #468847; +} +.alert-success h4 { + color: #468847; +} .alert-error { background-color: #f2dede; border-color: #eed3d7; - color: #b94a48; } - .alert-error h4 { - color: #b94a48; } + color: #b94a48; +} +.alert-error h4 { + color: #b94a48; +} .alert-info { background-color: #d9edf7; border-color: #bce8f1; - color: #3a87ad; } - .alert-info h4 { - color: #3a87ad; } + color: #3a87ad; +} +.alert-info h4 { + color: #3a87ad; +} .alert-block { padding-top: 14px; - padding-bottom: 14px; } - .alert-block > p, - .alert-block > ul { - margin-bottom: 0; } - .alert-block p + p { - margin-top: 5px; } + padding-bottom: 14px; +} +.alert-block > p, +.alert-block > ul { + margin-bottom: 0; +} +.alert-block p + p { + margin-top: 5px; +} .close { float: right; @@ -1729,346 +1929,24 @@ ul.centred, ul.centered { text-shadow: 0 1px 0 white; zoom: 1; filter: alpha(opacity=20); - opacity: 0.2; } - .close:hover, .close:focus { - color: #000; - text-decoration: none; - cursor: pointer; - zoom: 1; - filter: alpha(opacity=40); - opacity: 0.4; } + opacity: 0.2; +} +.close:hover, .close:focus { + color: #000; + text-decoration: none; + cursor: pointer; + zoom: 1; + filter: alpha(opacity=40); + opacity: 0.4; +} button.close { padding: 0; cursor: pointer; background: transparent; border: 0; - -webkit-appearance: none; } - -.btn { - padding: 4px 12px; - margin-bottom: 0; - font-size: 16px; - font-size: 1rem; - line-height: 22px; - line-height: 1.375rem; - text-align: center; - cursor: pointer; - color: #333333; - text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); - background-color: #e6e6e6; - background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, white), color-stop(100%, #e6e6e6)); - background-image: -webkit-linear-gradient(top, white 0%, #e6e6e6 100%); - background-image: -moz-linear-gradient(top, white 0%, #e6e6e6 100%); - background-image: -ms-linear-gradient(top, white 0%, #e6e6e6 100%); - background-image: -o-linear-gradient(top, white 0%, #e6e6e6 100%); - background-image: linear, top, white 0%, #e6e6e6 100%; - background-repeat: repeat-x; - border-color: #e6e6e6 #e6e6e6 #bfbfbf; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) fadein(rgba(0, 0, 0, 0.1), 15%); - *background-color: #e6e6e6; - border: 1px solid #cccccc; - *border: 0; - border-bottom-color: #b3b3b3; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - -o-border-radius: 4px; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.3), 0 1px 2px rgba(0, 0, 0, 0.05); - -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.3), 0 1px 2px rgba(0, 0, 0, 0.05); - -o-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.3), 0 1px 2px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.3), 0 1px 2px rgba(0, 0, 0, 0.05); } - .btn:visited { - color: #333333; } - .btn:hover, .btn:focus, .btn:active, .btn.active, .btn.disabled, .btn[disabled] { - color: #333333; - background-color: #e6e6e6; - *background-color: #d9d9d9; } - .btn:active, .btn.active { - background-color: #cccccc \9; } - .btn:hover, .btn:focus { - color: #333; - text-decoration: none; - background-position-y: -15px; - -webkit-transition: background-position 0.1s linear; - -moz-transition: background-position 0.1s linear; - -o-transition: background-position 0.1s linear; - transition: background-position 0.1s linear; } - .btn.active, .btn:active { - background-image: none; - outline: 0; - -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); - -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); - -o-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); } - .btn.disabled, .btn[disabled] { - cursor: default; - background-image: none; - zoom: 1; - filter: alpha(opacity=65); - opacity: 0.65; - -webkit-box-shadow: none; - -moz-box-shadow: none; - -o-box-shadow: none; - box-shadow: none; } - -.btn-large { - padding: 11px 19px; - font-size: 18px; - font-size: 1.125rem; - -webkit-border-radius: 6px; - -moz-border-radius: 6px; - -o-border-radius: 6px; - border-radius: 6px; } - -.btn-large [class^="icon-"], -.btn-large [class*=" icon-"] { - margin-top: 4px; } - -.btn-small { - padding: 2px 10px; - font-size: 14px; - font-size: 0.875rem; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - -o-border-radius: 3px; - border-radius: 3px; } - -.btn-small [class^="icon-"], -.btn-small [class*=" icon-"] { - margin-top: 0; } - -.btn-mini [class^="icon-"], -.btn-mini [class*=" icon-"] { - margin-top: -1px; } - -.btn-mini { - padding: 0 6px; - font-size: 14px; - font-size: 0.875rem; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - -o-border-radius: 3px; - border-radius: 3px; } - -.btn-pill { - -webkit-border-radius: 100em; - -moz-border-radius: 100em; - -o-border-radius: 100em; - border-radius: 100em; - padding-left: 15px; - padding-right: 15px; } - -.btn-block { - display: block; - width: 100%; - padding-left: 0; - padding-right: 0; } - -.btn-block + .btn-block { - margin-top: 5px; } - -input[type="submit"].btn-block, -input[type="reset"].btn-block, -input[type="button"].btn-block { - width: 100%; } - -.btn-primary.active, -.btn-warning.active, -.btn-danger.active, -.btn-success.active, -.btn-info.active, -.btn-inverse.active { - color: rgba(255, 255, 255, 0.75); } - -.btn-primary { - color: white; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #46a566; - background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #46a546), color-stop(100%, #46a566)); - background-image: -webkit-linear-gradient(top, #46a546 0%, #46a566 100%); - background-image: -moz-linear-gradient(top, #46a546 0%, #46a566 100%); - background-image: -ms-linear-gradient(top, #46a546 0%, #46a566 100%); - background-image: -o-linear-gradient(top, #46a546 0%, #46a566 100%); - background-image: linear, top, #46a546 0%, #46a566 100%; - background-repeat: repeat-x; - border-color: #46a566 #46a566 #2f6f45; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) fadein(rgba(0, 0, 0, 0.1), 15%); - *background-color: #46a566; } - .btn-primary:visited { - color: white; } - .btn-primary:hover, .btn-primary:focus, .btn-primary:active, .btn-primary.active, .btn-primary.disabled, .btn-primary[disabled] { - color: white; - background-color: #46a566; - *background-color: #3e935b; } - .btn-primary:active, .btn-primary.active { - background-color: #378150 \9; } - -.btn-warning { - color: white; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #f89406; - background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fbb450), color-stop(100%, #f89406)); - background-image: -webkit-linear-gradient(top, #fbb450 0%, #f89406 100%); - background-image: -moz-linear-gradient(top, #fbb450 0%, #f89406 100%); - background-image: -ms-linear-gradient(top, #fbb450 0%, #f89406 100%); - background-image: -o-linear-gradient(top, #fbb450 0%, #f89406 100%); - background-image: linear, top, #fbb450 0%, #f89406 100%; - background-repeat: repeat-x; - border-color: #f89406 #f89406 #ad6704; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) fadein(rgba(0, 0, 0, 0.1), 15%); - *background-color: #f89406; } - .btn-warning:visited { - color: white; } - .btn-warning:hover, .btn-warning:focus, .btn-warning:active, .btn-warning.active, .btn-warning.disabled, .btn-warning[disabled] { - color: white; - background-color: #f89406; - *background-color: #df8505; } - .btn-warning:active, .btn-warning.active { - background-color: #c67605 \9; } - -.btn-danger { - color: white; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #bd362f; - background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ee5f5b), color-stop(100%, #bd362f)); - background-image: -webkit-linear-gradient(top, #ee5f5b 0%, #bd362f 100%); - background-image: -moz-linear-gradient(top, #ee5f5b 0%, #bd362f 100%); - background-image: -ms-linear-gradient(top, #ee5f5b 0%, #bd362f 100%); - background-image: -o-linear-gradient(top, #ee5f5b 0%, #bd362f 100%); - background-image: linear, top, #ee5f5b 0%, #bd362f 100%; - background-repeat: repeat-x; - border-color: #bd362f #bd362f #802420; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) fadein(rgba(0, 0, 0, 0.1), 15%); - *background-color: #bd362f; } - .btn-danger:visited { - color: white; } - .btn-danger:hover, .btn-danger:focus, .btn-danger:active, .btn-danger.active, .btn-danger.disabled, .btn-danger[disabled] { - color: white; - background-color: #bd362f; - *background-color: #a9302a; } - .btn-danger:active, .btn-danger.active { - background-color: #942a25 \9; } - -.btn-success { - color: white; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #51a351; - background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #62c462), color-stop(100%, #51a351)); - background-image: -webkit-linear-gradient(top, #62c462 0%, #51a351 100%); - background-image: -moz-linear-gradient(top, #62c462 0%, #51a351 100%); - background-image: -ms-linear-gradient(top, #62c462 0%, #51a351 100%); - background-image: -o-linear-gradient(top, #62c462 0%, #51a351 100%); - background-image: linear, top, #62c462 0%, #51a351 100%; - background-repeat: repeat-x; - border-color: #51a351 #51a351 #387038; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) fadein(rgba(0, 0, 0, 0.1), 15%); - *background-color: #51a351; } - .btn-success:visited { - color: white; } - .btn-success:hover, .btn-success:focus, .btn-success:active, .btn-success.active, .btn-success.disabled, .btn-success[disabled] { - color: white; - background-color: #51a351; - *background-color: #499249; } - .btn-success:active, .btn-success.active { - background-color: #408140 \9; } - -.btn-info { - color: white; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #2f96b4; - background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #5bc0de), color-stop(100%, #2f96b4)); - background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2f96b4 100%); - background-image: -moz-linear-gradient(top, #5bc0de 0%, #2f96b4 100%); - background-image: -ms-linear-gradient(top, #5bc0de 0%, #2f96b4 100%); - background-image: -o-linear-gradient(top, #5bc0de 0%, #2f96b4 100%); - background-image: linear, top, #5bc0de 0%, #2f96b4 100%; - background-repeat: repeat-x; - border-color: #2f96b4 #2f96b4 #1f6377; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) fadein(rgba(0, 0, 0, 0.1), 15%); - *background-color: #2f96b4; } - .btn-info:visited { - color: white; } - .btn-info:hover, .btn-info:focus, .btn-info:active, .btn-info.active, .btn-info.disabled, .btn-info[disabled] { - color: white; - background-color: #2f96b4; - *background-color: #2a85a0; } - .btn-info:active, .btn-info.active { - background-color: #24748c \9; } - -.btn-inverse { - color: white; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #222222; - background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #444444), color-stop(100%, #222222)); - background-image: -webkit-linear-gradient(top, #444444 0%, #222222 100%); - background-image: -moz-linear-gradient(top, #444444 0%, #222222 100%); - background-image: -ms-linear-gradient(top, #444444 0%, #222222 100%); - background-image: -o-linear-gradient(top, #444444 0%, #222222 100%); - background-image: linear, top, #444444 0%, #222222 100%; - background-repeat: repeat-x; - border-color: #222222 #222222 black; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) fadein(rgba(0, 0, 0, 0.1), 15%); - *background-color: #222222; } - .btn-inverse:visited { - color: white; } - .btn-inverse:hover, .btn-inverse:focus, .btn-inverse:active, .btn-inverse.active, .btn-inverse.disabled, .btn-inverse[disabled] { - color: white; - background-color: #222222; - *background-color: #151515; } - .btn-inverse:active, .btn-inverse.active { - background-color: #090909 \9; } - -button.btn, -input[type="submit"].btn { - *padding-top: 3px; - *padding-bottom: 3px; } - button.btn::-moz-focus-inner, - input[type="submit"].btn::-moz-focus-inner { - padding: 0; - border: 0; } - button.btn.btn-large, - input[type="submit"].btn.btn-large { - *padding-top: 7px; - *padding-bottom: 7px; } - button.btn.btn-small, - input[type="submit"].btn.btn-small { - *padding-top: 3px; - *padding-bottom: 3px; } - button.btn.btn-mini, - input[type="submit"].btn.btn-mini { - *padding-top: 1px; - *padding-bottom: 1px; } - -.btn-link, -.btn-link:active, -.btn-link[disabled] { - background-color: transparent; - background-image: none; - -webkit-box-shadow: none; - -moz-box-shadow: none; - -o-box-shadow: none; - box-shadow: none; } - -.btn-link { - border-color: transparent; - cursor: pointer; - color: #46a546; - -webkit-border-radius: 0; - -moz-border-radius: 0; - -o-border-radius: 0; - border-radius: 0; } - -.btn-link:hover, -.btn-link:focus { - color: #2f6f2f; - text-decoration: underline; - background-color: transparent; } - -.btn-link[disabled]:hover, -.btn-link[disabled]:focus { - color: #333; - text-decoration: none; } + -webkit-appearance: none; +} .ir { background-color: transparent; @@ -2078,19 +1956,23 @@ input[type="submit"].btn { display: block; overflow: hidden; text-align: left; - text-indent: -999em; } + text-indent: -999em; +} .ir br { - display: none; } + display: none; +} .is-hidden, .hide { display: none !important; - visibility: hidden; } + visibility: hidden; +} .is-shown, .show { - display: block; } + display: block; +} .visuallyhidden { border: 0; @@ -2100,107 +1982,140 @@ input[type="submit"].btn { overflow: hidden; padding: 0; position: absolute; - width: 1px; } - .visuallyhidden.focusable:active, .visuallyhidden.focusable:focus { - clip: auto; - height: auto; - margin: 0; - overflow: visible; - position: static; - width: auto; } + width: 1px; +} +.visuallyhidden.focusable:active, .visuallyhidden.focusable:focus { + clip: auto; + height: auto; + margin: 0; + overflow: visible; + position: static; + width: auto; +} .is-invisible { - visibility: hidden; } + visibility: hidden; +} .left { - float: left; } + float: left; +} .right { - float: right; } + float: right; +} .clear { clear: both; - float: none; } + float: none; +} .mb0 { - margin-bottom: 0 !important; } + margin-bottom: 0 !important; +} .mb1 { - margin-bottom: 16 !important; } + margin-bottom: 16 !important; +} .mb2 { - margin-bottom: 24 !important; } + margin-bottom: 24 !important; +} .mb3 { - margin-bottom: 30 !important; } + margin-bottom: 30 !important; +} .mt0 { - margin-top: 0 !important; } + margin-top: 0 !important; +} .mt1 { - margin-top: 16 !important; } + margin-top: 16 !important; +} .mt2 { - margin-top: 24 !important; } + margin-top: 24 !important; +} .mt3 { - margin-top: 30 !important; } + margin-top: 30 !important; +} img { - max-width: 100%; } + max-width: 100%; +} .hidden { display: none; - visibility: hidden; } + visibility: hidden; +} .visible-phone { - display: none !important; } + display: none !important; +} .visible-tablet { - display: none !important; } + display: none !important; +} .hidden-desktop { - display: none !important; } + display: none !important; +} @media screen and (max-width: 47.9375em) { .visible-phone { - display: inherit !important; } + display: inherit !important; + } .hidden-phone { - display: none !important; } + display: none !important; + } .hidden-desktop { - display: inherit !important; } + display: inherit !important; + } .visible-desktop { - display: none !important; } } + display: none !important; + } +} @media screen and (min-width: 48em) and (max-width: 61.1875em) { .visible-tablet { - display: inherit !important; } + display: inherit !important; + } .hidden-tablet { - display: none !important; } + display: none !important; + } .hidden-desktop { - display: inherit !important; } + display: inherit !important; + } .visible-desktop { - display: none !important; } } + display: none !important; + } +} @media print { * { background: transparent !important; - color: black !important; + color: #000 !important; /* Black prints faster: h5bp.com/s */ box-shadow: none !important; - text-shadow: none !important; } + text-shadow: none !important; + } a:visited { - text-decoration: underline; } + text-decoration: underline; + } a[href]:after { - content: " (" attr(href) ")"; } + content: " (" attr(href) ")"; + } abbr[title]:after { - content: " (" attr(title) ")"; } + content: " (" attr(title) ")"; + } /* * Don't show links for images, or javascript/internal links @@ -2208,30 +2123,39 @@ img { .ir a:after, a[href^="javascript:"]:after, a[href^="#"]:after { - content: ""; } + content: ""; + } pre, blockquote { - border: 1px solid #999999; - page-break-inside: avoid; } + border: 1px solid #999; + page-break-inside: avoid; + } thead { display: table-header-group; - /* h5bp.com/t */ } + /* h5bp.com/t */ + } tr, img { - page-break-inside: avoid; } + page-break-inside: avoid; + } img { - max-width: 100% !important; } + max-width: 100% !important; + } @page { - margin: 0.5cm; } + margin: 0.5cm; +} p, h2, h3 { orphans: 3; - widows: 3; } + widows: 3; + } h2, h3 { - page-break-after: avoid; } } + page-break-after: avoid; + } +} diff --git a/css/polyfills/box-sizing.htc b/css/polyfills/box-sizing.htc deleted file mode 100644 index 985b5391..00000000 --- a/css/polyfills/box-sizing.htc +++ /dev/null @@ -1,399 +0,0 @@ -/** -* box-sizing Polyfill -* -* A polyfill for box-sizing: border-box for IE6 & IE7. -* -* JScript -* -* This program is free software: you can redistribute it and/or modify -* it under the terms of the GNU Lesser General Public License as published -* by the Free Software Foundation, either version 3 of the License, or -* (at your option) any later version. -* -* This program is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY; without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -* GNU Lesser General Public License for more details. -* -* See -* -* @category JScript -* @package box-sizing-polyfill -* @author Christian Schepp Schaefer -* @copyright 2012 Christian Schepp Schaefer -* @license http://www.gnu.org/copyleft/lesser.html The GNU LESSER GENERAL PUBLIC LICENSE, Version 3.0 -* @link http://github.com/Schepp/box-sizing-polyfill -* -* PREFACE: -* -* This box-sizing polyfill is based on previous work done by Erik Arvidsson, -* which he published in 2002 on http://webfx.eae.net/dhtml/boxsizing/boxsizing.html. -* -* USAGE: -* -* Add the behavior/HTC after every `box-sizing: border-box;` that you assign: -* -* box-sizing: border-box; -* *behavior: url(/scripts/boxsizing.htc);` -* -* Prefix the `behavior` property with a star, like seen above, so it will only be seen by -* IE6 & IE7, not by IE8+ who already implement box-sizing. -* -* The URL to the HTC file must be relative to your HTML(!) document, not relative to your CSS. -* That's why I'd advise you to use absolute paths like in the example. -* -*/ - - - - - - \ No newline at end of file diff --git a/docs/grunt.md b/docs/grunt.md new file mode 100644 index 00000000..34fd43e8 --- /dev/null +++ b/docs/grunt.md @@ -0,0 +1,50 @@ +[Documentation table of contents](readme.md) + +These docs are still incomplete. If you have any questions, please [file an issue](https://github.com/tmwagency/kickoff/issues/new) + +# Grunt.js + +Kickoff has support for Grunt, the Javascript task runner. + +## Setup + +Setting up Kickoff to use Grunt is extremely simple, follow these simple steps. + +### Step 1 - Install Node +Download and install Node.js from [nodejs.org](http://nodejs.org/) + +### Step 2 - Install the Grunt CLI +In order to get started, you'll want to install Grunt's command line interface (CLI) globally. You may need to use sudo (for OSX, *nix, BSD etc) or run your command shell as Administrator (for Windows) to do this. + +Run `npm install -g grunt-cli`. This will put the grunt command in your system path, allowing it to be run from any directory. + +### Step 3 - Install Sass +Make sure you have Ruby installed, then run `gem install sass` (or possibly `sudo gem install sass`) - you can also install the pre-release version of Sass using `gem install sass --pre`. This will install it globally on your machine so Grunt has access to it. + +### Step 4 - Install LiveReload browser extension +In order to have your browser's styles refresh when a Sass file is modified you will need to install the [LiveReload browser extension](http://feedback.livereload.com/knowledgebase/articles/86242-how-do-i-install-and-use-the-browser-extensions-) (there are versions for Chrome, Safari and Firefox). + +### Step 5 - Checkout Kickoff +Checkout the latest version of Kickoff there using `git clone https://github.com/tmwagency/kickoff.git ProjectName` + +### Step 6 - Install Node dependencies +Grunt will not work without having installed it's dependencies. Kickoff's [package.json](https://github.com/tmwagency/kickoff/blob/master/package.json#L23) uses a few essential Grunt plugins to operate. To install them, `cd` into the project directory, then run `npm install` which will add a new folder called `node_modules` with all the dependencies. + +### Step 7 - Run Grunt +Out of the box, Kickoff is setup to use 3 Grunt tasks, but many more can be used options can be used. + +Running `grunt` in the command line will do a one-time build using the default setup. + +Running `grunt watch` will watch your working directory for any changes and build, compile or run any task that related to that file type. For example, editing a `.scss` file will effectively run the `grunt sass:dev` sub-task which compiles the sass to css. Changing any javascript will effectively run the `grunt uglify` task. + +#### Grunt is now setup! + +## Next steps: +### Javascript +By default Kickoff minifies, concatinates and creates a [Source Map](http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/) for all javascript files included in the project. + +To choose which javascript files you want to include, just edit the `jsFileList` array at the beginning of the file. Files in this array should be organised in the order that you need them to be run. + +### CSS / SCSS +There are two main `.scss` files that get compiled by Grunt: `scss/kickoff.scss` and `scss/kickoff-old-ie.scss`. These are compiled to `css/kickoff.css` and `css/kickoff-old-ie.css`. If you need to add or amend this list, change the `dev` and `deploy` subtasks in the Gruntfile (around [line 30](https://github.com/tmwagency/kickoff/blob/master/Gruntfile.js#L32)). + diff --git a/docs/less.md b/docs/less.md deleted file mode 100644 index 3a9e4160..00000000 --- a/docs/less.md +++ /dev/null @@ -1,65 +0,0 @@ -[Documentation table of contents](readme.md) - -These docs are still incomplete. If you have any questions, please email zmartineau@tmw.co.uk - -# LESS - -Kickoff is made with [Less](http://lesscss.org/) at its core, a dynamic stylesheet language created by our good friend, Alexis Sellier. It makes developing systems-based CSS faster, easier, and more fun. - -### Why LESS? - -One of Twitter Bootstrap's creators wrote a [quick blog post](http://www.wordsbyf.at/2012/03/08/why-less/) about this, summarized here: - -* Bootstrap compiles faster ~6x faster with Less compared to Sass -* Less is written in JavaScript, making it easier to us to dive in and patch compared to Ruby with Sass. -* Less is more; we want to feel like we're writing CSS and making Kickoff approachable to all. - -### What's included? - -As an extension of CSS, LESS includes variables, mixins for reusable snippets of code, operations for simple math, nesting, and even color functions. - -### Learn more - -Visit the official website at http://lesscss.org to learn more - - -## Compiling Kickoff with Less - -Since our CSS is written with Less and utilizes variables and mixins, it needs to be compiled for final production implementation. Here's how: - -### Apps - -#### [Crunch](http://crunchapp.net/) -Crunch is a great looking LESS editor and compiler built on Adobe Air. - -#### [CodeKit](http://incident57.com/codekit/) -Created by the same guy as the [unofficial **Mac** app](http://incident57.com/less/), CodeKit is a **Mac** app that compiles LESS, SASS, Stylus, and CoffeeScript. - -#### [Simpless](http://wearekiss.com/simpless) -**Mac**, **Linux**, and **Windows** app for drag and drop compiling of LESS files. Plus, the [source code is on GitHub](https://github.com/Paratron/SimpLESS). - -## Kickoff's default LESS files - -The four most important .less files in any Kickoff project are: - -#### 1. [kickoff.less](https://github.com/tmwagency/kickoff/blob/master/less/kickoff.less) -All roads lead to here. `Kickoff.less` is the starting point for any kickoff project. Here you choose which other `.less` files your project needs. The order of the imported files is the same order that the CSS is compiled to. - -Exclude any existing items by using a javascript comment `//` at the start of the line or remove that line completely. - -#### 2. [variables.less](https://github.com/tmwagency/kickoff/blob/master/less/variables.less) -This file contains all your app/site's global variables. For example, you can set your background colours, fonts, base text size etc here & use the variable names throughout the rest of your project. - -#### 3. [mixins.less](https://github.com/tmwagency/kickoff/blob/master/less/mixins.less) -Mixins contains many useful items, but the most useful of which are the CSS3 mixins. - -#### 4. [app.less](https://github.com/tmwagency/kickoff/blob/master/less/app.less) -Here you add all your app-specific css/less. - -### Other useful LESS files - -#### [typography.less](https://github.com/tmwagency/kickoff/blob/master/less/typography.less) -You can use the brilliant [Gridlover](http://www.gridlover.net/) to work out your font sizings & spacings - -#### [choreographic-grid.less](https://github.com/tmwagency/kickoff/blob/master/less/choreographic-grid.less) -View the [example page](http://mrmartineau.github.com/Choreographic-Grid/test.html) for a demo then view the source to understand how it works. \ No newline at end of file diff --git a/docs/readme.md b/docs/readme.md index 16752203..f75f214a 100644 --- a/docs/readme.md +++ b/docs/readme.md @@ -8,9 +8,9 @@ ## The core of Kickoff * [HTML](html.md) — A guide to the default HTML. -* [SASS](sass.md) — A guide to the default SASS. -* [LESS](less.md) — A guide to the default LESS. * [CSS](css.md) — A guide to the default CSS. +* [SASS](sass.md) — A guide to the default SASS. +* [Grunt](grunt.md) — A guide to using [Grunt.js](http://gruntjs.com) with Kickoff * [JavaScript](js.md) — A guide to the default JavaScript. * [.htaccess](htaccess.md) — All about the Apache web server config (also see our [alternative server configs](https://github.com/h5bp/server-configs)). diff --git a/examples/carousel.html b/examples/carousel.html deleted file mode 100644 index 1f2158c3..00000000 --- a/examples/carousel.html +++ /dev/null @@ -1,86 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - -
- - - - - - - - - -
- - -
- - - - - -
- -
-
- - - - - - - - - - - - \ No newline at end of file diff --git a/examples/components.html b/examples/components.html deleted file mode 100644 index 111b573b..00000000 --- a/examples/components.html +++ /dev/null @@ -1,315 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Components styling

- - -

1. Default Buttons

-
-
-

Button styles can be applied to anything with the .btn class applied. However, typically you'll want to apply these to only <a> and <button> elements for the best rendering.

- -

Button sizes

-

Fancy larger or smaller buttons? Add .btn-large, .btn-small, or .btn-mini for additional sizes.

- -
-
- -
    -
  • -

    Large buttons

    - Anchor - - - - -

    Normal buttons

    - Anchor - - - - -

    Small buttons

    - Anchor - - - - -

    Mini buttons

    - Anchor - - - -
  • - -
  • - HTML -
    <h4>Large buttons</h4>
    -<a href="" class="btn btn-large">Anchor</a>
    -<input type="submit" value="Submit" class="btn  btn-large btn-primary" />
    -<input type="submit" value="Disabled" class="btn btn-large" disabled />
    -<button type="reset" class="btn btn-large">Cancel</button>
    -
    -<h4>Normal buttons</h4>
    -<a href="" class="btn">Anchor</a>
    -<input type="submit" value="Submit" class="btn btn-primary" />
    -<input type="submit" value="Disabled" class="btn" disabled />
    -<button type="reset" class="btn">Cancel</button>
    -
    -<h4>Small buttons</h4>
    -<a href="" class="btn btn-small">Anchor</a>
    -<input type="submit" value="Submit" class="btn  btn-small btn-primary" />
    -<input type="submit" value="Disabled" class="btn btn-small" disabled />
    -<button type="reset" class="btn btn-small">Cancel</button>
    -
    -<h4>Mini buttons</h4>
    -<a href="" class="btn btn-mini">Anchor</a>
    -<input type="submit" value="Submit" class="btn  btn-mini btn-primary" />
    -<input type="submit" value="Disabled" class="btn btn-mini" disabled />
    -<button type="reset" class="btn btn-mini">Cancel</button>
    - .SCSS -
    .btn-primary {
    -	@include button-background($btn-primary-background, $btn-primary-background-highlight);
    -}
    -
  • -
- -
-
- - -
- -

2. Pill Buttons

-
-
-

Button styles can be applied to anything with the .btn class applied. However, typically you'll want to apply these to only <a> and <button> elements for the best rendering.

-
-
- -
    -
  • -

    Pill buttons

    - Pill - This is a Pill -
  • - -
  • - HTML -
    <a href="#" class="btn btn-pill btn-primary">Pill</a>
    -<a href="#" class="btn btn-pill btn-warning">This is a Pill</a>
    - .SCSS -
    .btn-pill {
    -	@include border-radius(100px);
    -	padding-left: 15px;
    -	padding-right: 15px;
    -}
    -
  • -
- -
-
- - -
- -

3. Button states

-
-
-

The default Kickoff button set has 7 states.

-
-
- -
    -
  • -

    Button colours

    - Default - Primary - Warning - Danger - Success - Info - Inverse -
  • - -
  • - HTML -
    <a href="#" class="btn">Default</a>
    -<a href="#" class="btn btn-primary">Primary</a>
    -<a href="#" class="btn btn-warning">Warning</a>
    -<a href="#" class="btn btn-danger">Danger</a>
    -<a href="#" class="btn btn-success">Success</a>
    -<a href="#" class="btn btn-info">Info</a>
    -<a href="#" class="btn btn-inverse">Inverse</a>
    - .SCSS -
    // Set the backgrounds
    -// -------------------------
    -.btn-primary {
    -	@include button-background($btn-primary-background, $btn-primary-background-highlight);
    -}
    -// Warning appears are orange
    -.btn-warning {
    -	@include button-background($btn-warning-background, $btn-warning-background-highlight);
    -}
    -// Danger and error appear as red
    -.btn-danger {
    -	@include button-background($btn-danger-background, $btn-danger-background-highlight);
    -}
    -// Success appears as green
    -.btn-success {
    -	@include button-background($btn-success-background, $btn-success-background-highlight);
    -}
    -// Info appears as a neutral blue
    -.btn-info {
    -	@include button-background($btn-info-background, $btn-info-background-highlight);
    -}
    -// Inverse appears as dark gray
    -.btn-inverse {
    -	@include button-background($btn-inverse-background, $btn-inverse-background-highlight);
    -}
    -
  • -
- -
-
- - -
- -

4. Alerts

-
-
-

The default Kickoff button set has 7 states.

-
-
- -
    -
  • -

    Alert types

    -
    Default
    -
    - - Warning! Best check yo self, you're not looking too good. -
    -
    Success
    -
    - - Warning! Best check yo self, you're not looking too good. -
    -
    Error
    -
    - - Warning! Best check yo self, you're not looking too good. -
    -
    Alert block
    -
    - -

    Warning!

    - This version allows for more text inside the message box. Add the class alert-block to use this style. -
    -
  • - -
  • - HTML -
    <h5>Default</h5>
    -	<div class="alert">
    -		<strong>Warning!</strong> Best check yo self, you're not looking too good.
    -	</div>
    -	<h5>Success</h5>
    -	<div class="alert alert-success">
    -		<strong>Warning!</strong> Best check yo self, you're not looking too good.
    -	</div>
    -	<h5>Error</h5>
    -	<div class="alert alert-error">
    -		<strong>Warning!</strong> Best check yo self, you're not looking too good.
    -	</div>
    -	<h5>Alert block</h5>
    -	<div class="alert alert-block">
    -		<h4>Warning!</h4>
    -		This version allows for more text inside the message box. Add the class <code>alert-block</code> to use this style.
    -	</div>
    - .SCSS -
    // Set the backgrounds
    -// -------------------------
    -.btn-primary {
    -	@include button-background($btn-primary-background, $btn-primary-background-highlight);
    -}
    -// Warning appears are orange
    -.btn-warning {
    -	@include button-background($btn-warning-background, $btn-warning-background-highlight);
    -}
    -// Danger and error appear as red
    -.btn-danger {
    -	@include button-background($btn-danger-background, $btn-danger-background-highlight);
    -}
    -// Success appears as green
    -.btn-success {
    -	@include button-background($btn-success-background, $btn-success-background-highlight);
    -}
    -// Info appears as a neutral blue
    -.btn-info {
    -	@include button-background($btn-info-background, $btn-info-background-highlight);
    -}
    -// Inverse appears as dark gray
    -.btn-inverse {
    -	@include button-background($btn-inverse-background, $btn-inverse-background-highlight);
    -}
    -
  • -
- -
-
- - -
- - - - - - - - diff --git a/examples/css/grid-tests.css b/examples/css/grid-tests.css deleted file mode 100644 index a11794fd..00000000 --- a/examples/css/grid-tests.css +++ /dev/null @@ -1,87 +0,0 @@ -* { - -webkit-transition: all 0.12s ease-in-out; - -moz-transition: all 0.12s ease-in-out; - -o-transition: all 0.12s ease-in-out; - -ms-transition: all 0.12s ease-in-out; - transition: all 0.12s ease-in-out; -} -body { - padding-top: 80px; -} -.col { - background-color: rgba(0,0,0,0.1); - line-height: 40px; - border-radius:4px; - box-shadow:inset 0 1px 1px rgba(0,0,0,.05); - min-height: 30px; -} -.row { - margin-bottom: 20px; -} -.split div { - background-color: fadeout(teal, 70%); -} -.shunt { - background-color: fadeout(red, 80%); -} -[class*="pull"] { - background-color: fadeout(green, 70%); -} -[class*="push"] { - background-color: fadeout(yellow, 70%); -} -[class*="offset"] { - background-color: fadeout(orange, 60%); -} - -ul.tabs { - padding: 0; - margin: 5px 0 0; - text-align: center; -} -ul.tabs li { - display: block; - padding: 0; - margin: 3px 0; -} -ul.tabs li a { - display: block; - text-decoration: none; - width: auto; - padding: 0px 10px; - border-radius: 2px; - border: 1px solid rgba(0, 0, 0, 0.4); - font-size: .9em; - color: black; - font-weight: bold; -} -ul.tabs li a.active, -ul.tabs li a:hover { - background: rgba(0, 0, 0, 0.4); - color: #fff; -} -ul.tabs_content { - margin: 1.5em 0 0 0; - padding: 0; - list-style-type: none; -} -ul.tabs_content li { - margin: 0; - padding: 0; - display: none; -} -ul.tabs_content li.active { - display: block; -} -/*=== 768> ===*/ -@media screen and (min-width: 768px) { - ul.tabs li { - display: inline-block; - margin: 0; - } - ul.tabs li a { - display: block; - border-radius: 50px; - color: black; - } -} \ No newline at end of file diff --git a/examples/css/shared.css b/examples/css/shared.css deleted file mode 100644 index 6c49a89f..00000000 --- a/examples/css/shared.css +++ /dev/null @@ -1,14 +0,0 @@ -/*.code-example { - display: none; -}*/ -.block-grid li { - text-align: center; - -} -.block-grid a { - display: block; - min-height: 130px; -} -.block-grid p { - margin-bottom: 0; -} diff --git a/examples/css/tests-carousel.css b/examples/css/tests-carousel.css deleted file mode 100644 index 9c770e5e..00000000 --- a/examples/css/tests-carousel.css +++ /dev/null @@ -1,3 +0,0 @@ -body { - padding-top: 80px; -} \ No newline at end of file diff --git a/examples/css/tests-grid.css b/examples/css/tests-grid.css deleted file mode 100644 index 7ce37f5c..00000000 --- a/examples/css/tests-grid.css +++ /dev/null @@ -1,119 +0,0 @@ -* { - -webkit-transition: all 0.12s ease-in-out; - -moz-transition: all 0.12s ease-in-out; - -o-transition: all 0.12s ease-in-out; - -ms-transition: all 0.12s ease-in-out; - transition: all 0.12s ease-in-out; -} -body { - padding: 0px 0 80px; -} -.col { - line-height: 40px; - border-radius:4px; - min-height: 30px; -} -.show-grid .col { - background-color: rgba(0,0,0,0.1); - box-shadow:inset 0 1px 1px rgba(0,0,0,.05); -} -.row { - margin-bottom: 20px; -} -.show-grid .split div { - background-color: fadeout(teal, 70%); -} -.show-grid .shunt { - background-color: fadeout(red, 80%); -} -.show-grid [class*="pull"] { - background-color: fadeout(green, 70%); -} -.show-grid [class*="push"] { - background-color: fadeout(yellow, 70%); -} -.show-grid [class*="offset"] { - background-color: fadeout(orange, 60%); -} - -.centred { - text-align: center; -} - - -ul.tabs { - padding: 0; - margin: 5px 0 0; - text-align: center; -} -ul.tabs li { - display: block; - padding: 0; - margin: 3px 0; -} -ul.tabs li a { - display: block; - text-decoration: none; - width: auto; - padding: 0px 10px; - border-radius: 2px; - border: 1px solid rgba(0, 0, 0, 0.4); - font-size: .9em; - color: black; - font-weight: bold; -} -ul.tabs li a.active, -ul.tabs li a:hover { - background: rgba(0, 0, 0, 0.4); - color: #fff; -} -ul.tabs_content { - margin: 1.5em 0 0 0; - padding: 0; - list-style-type: none; -} -ul.tabs_content li { - margin: 0; - padding: 0; - display: none; -} -ul.tabs_content li.active { - display: block; -} - -footer { - background-color: rgba(0, 0, 0, 0.4); - bottom: 0; - color: #FFFFFF; - display: block; - height: 30px; - left: 0; - line-height: 30px; - position: fixed; - right: 0; - text-align: center; - z-index: 1000; -} -footer a { - color: #FFFFFF; -} - -#show-grid-button { - display: block; - margin: 20px auto; - width: 120px; - padding: 5px; - text-align: center; -} -/*=== 768> ===*/ -@media screen and (min-width: 768px) { - ul.tabs li { - display: inline-block; - margin: 0; - } - ul.tabs li a { - display: block; - border-radius: 50px; - color: black; - } -} \ No newline at end of file diff --git a/examples/elements.html b/examples/elements.html deleted file mode 100644 index ddd6de10..00000000 --- a/examples/elements.html +++ /dev/null @@ -1,301 +0,0 @@ - - - - - - - - - - - Elements - - - - - - - - - - - - - -
-

Elements all the elements in one place

-

Embedded content

- -

img

- - - -

svg

- - - - - - - - -

Pre

- -
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et me.
- -

Pre > Code

-
<html>
-<head>
-</head>
-<body>
-<div class="main">
-
-<div>
-</body>
-</html>
- -

figure

- -
- -
Figcaption content
-
- -

Tabular data

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Jimi Hendrix - albums -
AlbumYearPrice
Are You Experienced1967$10.00
Axis: Bold as Love1967$12.00
Electric Ladyland1968$10.00
Band of Gypsys1970$12.00
- -

Forms

- -
-
- Inputs as descendents of labels (form legend) -
    -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
-
- -
- Inputs as siblings of labels -
    -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
-
- -
- Clickable inputs and buttons -
    -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
-
- -
- box-sizing tests -
    -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
  • -
-
-
- - - -

- Your browser does not support these elements yet! Consider downloading a Chromium Nightly.
-

- -

<progress>

- -

- The progress element (spec: 4.10.16) represents the completion progress of a task and can be both indeterminate as determinate. -

-
    -
  • - - -
  • -
  • - - -
  • -
  • - - -
  • -
  • - - -
  • -
  • - - -
  • -
- -

<meter>

- -

- Displaying a scalar measurement within a known range, like hard drive usage, can be done using the meter element (spec: 4.10.17) -

-
    -
  • - - -
  • -
  • - - -
  • -
  • - - -
  • -
  • - - -
  • -
  • - - -
  • -
  • - - -
  • -
  • - - -
  • -
- - - -
- - - diff --git a/examples/forms.html b/examples/forms.html deleted file mode 100644 index b2fa5f17..00000000 --- a/examples/forms.html +++ /dev/null @@ -1,714 +0,0 @@ - - - - - - - - - - - Forms - - - - - - - - - - - - - - - -
-

Forms styling

- -

1. Form with labels above inputs

-
-
-

Having forms styled like this depends on specific markup with specific class names. Please take the example code below as a guide.

-
- -
- -
    -
  • -
    -
    - Your form -
      -
    • - -
      - -
      -
    • -
    • - -
      -
    • -
    • - -
      -
    • -
    • - - -
      - -
      -
    • -
    • - -
      - - - - -
      -
    • -
    - -
    - -
    - - -
    - -
    -
  • - -
  • -
    <form action="#" class="well">
    -		<fieldset>
    -			<legend>Your form</legend>
    -			<ul>
    -				<li class="control-group">
    -					<label for="name" class="control-label">Name</label>
    -					<div class="controls">
    -						<input type="text" id="name" placeholder="Zander Martineau" />
    -					</div>
    -				</li>
    -				<li class="control-group">
    -					<label for="email" class="control-label">Email</label>
    -					<div class="controls"><input type="email" id="email" placeholder="zander@martineau.tv" /></div>
    -				</li>
    -				<li class="control-group">
    -					<label for="phone" class="control-label">Phone</label>
    -					<div class="controls"><input type="number" id="phone" placeholder="020 123 4567" /></div>
    -				</li>
    -				<li class="control-group">
    -					<label for="comments" class="control-label">Comments</label>
    -					<div class="controls">
    -						<textarea id="comments" rows="3" cols="50"></textarea>
    -					</div>
    -				</li>
    -			</ul>
    -
    -		</fieldset>
    -
    -		<div class="form-actions text_centre">
    -			<input type="submit" value="Submit" class="btn btn-primary" />
    -			<button type="reset" class="btn  btn-inverse">Cancel</button>
    -		</div>
    -
    -	</form>
    -
  • -
- -
-
- - -
- -

2. Forms with inline labels

-
-
-

Assuming you use the same markup as above, all you have to do is simply add a .form-horizontal class to the <form> element & you'll now have right aligned, inline form labels in an instant.

-
- -
- -
    -
  • -
    -
    - Your form -
      -
    • - -
      - -
      -
    • -
    • - -
      - -
      -
    • -
    • - -
      - -
      -
    • -
    • - -
      - -
      -
    • -
    - -
    - -
    - - -
    - -
    -
  • - -
  • -
    <form action="#" class="well form-horizontal">
    -	<fieldset>
    -		<legend>Your form</legend>
    -		<ul>
    -			<li class="control-group">
    -				<label for="name" class="control-label">Name</label>
    -				<div class="controls">
    -					<input type="text" id="name" placeholder="Zander Martineau" />
    -				</div>
    -			</li>
    -			<li class="control-group">
    -				<label for="email" class="control-label">Email</label>
    -				<div class="controls">
    -					<input type="email" id="email" placeholder="zander@martineau.tv" />
    -				</div>
    -			</li>
    -			<li class="control-group">
    -				<label for="phone" class="control-label">Phone</label>
    -				<div class="controls"><input type="number" id="phone" placeholder="020 123 4567" /></div>
    -			</li>
    -			<li class="control-group">
    -				<label for="comments" class="control-label">Comments</label>
    -				<div class="controls">
    -					<textarea id="comments" rows="3" cols="50"></textarea>
    -				</div>
    -			</li>
    -		</ul>
    -
    -	</fieldset>
    -
    -	<div class="form-actions text_centre">
    -		<input type="submit" value="Submit" class="btn btn-primary" />
    -		<button type="reset" class="btn btn-inverse">Cancel</button>
    -	</div>
    -
    -</form>
    -
  • -
- -
-
- - -
- -

3. Inline Form

-
-
-

This is a simplified form where everything is inline. It does not follow the same rules as the previous two examples but you will need to add a class of .form-inline to the <form> element so the inputs & buttons play nicely.

-
- -
- -
    -
  • -
    - - - - -
    -
  • - -
  • -
    <form class="well form-inline">
    -	<input type="text" class="input-medium" placeholder="Email">
    -	<input type="password" class="input-medium" placeholder="Password">
    -	<label class="checkbox">
    -		<input type="checkbox"> Remember me
    -	</label>
    -	<button type="submit" class="btn">Sign in</button>
    -</form>
    -
  • -
- -
-
- - -
- -

4. Search Form

-
-
-

This is similar to the inline form example above

-
- -
- -
    - - - -
- -
-
- - -
- -

5. Form Elements

-
-
-

All the form elements you could need.

-
- -
- -
    -
  • -
    -
    - Your form -
      -
    • - -
      - -
      -
    • -
    • - -
      - -
      -
    • -
    • - -
      - -
      -
    • -
    • - - -
      -
      - -
      -
      -
    • -
    • - -
      - -
      -
    • -
    • - -
      - - - - -
      -
    • -
    • - -
      - - - -
      -
    • -
    • - -
      - -
      -
    • -
    • - -
      - -
      -
    • -
    - -
    - -
    - - -
    - -
    -
  • - -
  • -
    <form action="#" class="well">
    -	<fieldset>
    -		<legend>Your form</legend>
    -		<ul>
    -			<li class="control-group">
    -				<label for="text" class="control-label">Text</label>
    -				<div class="controls">
    -					<input type="text" id="text" placeholder="Zander Martineau" class="input-xlarge" />
    -				</div>
    -			</li>
    -			<li class="control-group">
    -				<label for="email" class="control-label">Email</label>
    -				<div class="controls">
    -					<input type="email" id="email" placeholder="zander@martineau.tv" class="input-xlarge" />
    -				</div>
    -			</li>
    -			<li class="control-group">
    -				<label for="number" class="control-label">Number</label>
    -				<div class="controls">
    -					<input type="number" id="number" placeholder="020 123 4567" class="input-xlarge" />
    -				</div>
    -			</li>
    -			<li class="control-group">
    -				<label for="file" class="control-label">File upload <br>
    -					<small>Firefox uses the <code>size</code> attribute to determine width.</small>
    -				</label>
    -
    -				<div class="controls">
    -					<div class="file-wrapper input-xlarge">
    -						<input type="file" id="file" accept="image/*" size="14" />
    -					</div>
    -				</div>
    -			</li>
    -			<li class="control-group">
    -				<label for="comments" class="control-label">Textarea</label>
    -				<div class="controls">
    -					<textarea id="comments" rows="3" cols="50" class="input-xlarge"></textarea>
    -				</div>
    -			</li>
    -			<li class="control-group">
    -				<label for="comments" class="control-label">Checkboxes & Radio buttons</label>
    -				<div class="controls">
    -					<label class="checkbox">
    -						<input type="checkbox" value="">
    -						Option one is this and that—be sure to include why it's great
    -					</label>
    -
    -					<label class="radio">
    -						<input type="radio" name="optionsRadios" id="optionsRadios1" value="option1" checked>
    -						Option one is this and that—be sure to include why it's great
    -					</label>
    -					<label class="radio">
    -						<input type="radio" name="optionsRadios" id="optionsRadios2" value="option2">
    -						Option two can be something else and selecting it will deselect option one
    -					</label>
    -				</div>
    -			</li>
    -			<li class="control-group">
    -				<label for="comments" class="control-label">Inline checkboxes</label>
    -				<div class="controls">
    -					<label class="checkbox inline">
    -						<input type="checkbox" id="inlineCheckbox1" value="option1"> 1
    -					</label>
    -					<label class="checkbox inline">
    -						<input type="checkbox" id="inlineCheckbox2" value="option2"> 2
    -					</label>
    -					<label class="checkbox inline">
    -						<input type="checkbox" id="inlineCheckbox3" value="option3"> 3
    -					</label>
    -				</div>
    -			</li>
    -			<li class="control-group">
    -				<label for="comments" class="control-label">Comments</label>
    -				<div class="controls">
    -					<select class="input-xlarge">
    -						<option>1</option>
    -						<option>2</option>
    -						<option>3</option>
    -						<option>4</option>
    -						<option>5</option>
    -					</select>
    -				</div>
    -			</li>
    -			<li class="control-group">
    -				<label for="comments" class="control-label">Comments</label>
    -				<div class="controls">
    -					<select multiple="multiple" class="input-xlarge">
    -						<option>1</option>
    -						<option>2</option>
    -						<option>3</option>
    -						<option>4</option>
    -						<option>5</option>
    -					</select>
    -				</div>
    -			</li>
    -		</ul>
    -
    -	</fieldset>
    -
    -	<div class="form-actions text_centre">
    -		<input type="submit" value="Submit" class="btn btn-primary" />
    -		<button type="reset" class="btn  btn-inverse">Cancel</button>
    -	</div>
    -
    -</form>
    -
  • -
- -
-
- - - -
- -

6. Form Validation

-
-
-

Options for validation.

-
- -
- -
    -
  • -
    -
    - Your form -
      -
    • - -
      - -
      -
    • -
    • - -
      - -
      -
    • -
    • - -
      - -
      -
    • -
    • - -
      - -
      -
    • -
    • - -
      - -
      -
    • -
    • - -
      - -
      -
    • -
    • - -
      - - - -
      -
    • -
    • - -
      - - - -
      -
    • -
    • - -
      - -
      -
    • -
    • - -
      - -
      -
    • -
    - -
    - -
    - - -
    - -
    -
  • - -
  • -
    <script>
    -	$(function() {
    -		// http://jaymorrow.github.com/validatr/api.html
    -		$('#validation-form').validatr({
    -			location   : 'none',
    -			showall    : true,
    -			theme      : 'kickoff'
    -		});
    -	});
    -</script>
    -
  • -
- -
-
- - - -
- - - - - - - - - diff --git a/examples/grids.html b/examples/grids.html deleted file mode 100644 index d9463c39..00000000 --- a/examples/grids.html +++ /dev/null @@ -1,387 +0,0 @@ - - - - - - - - - - - Grids - - - - - - - - - - - - -
- - - - - - - - - Hide Grid - - -
    -
  • - - - - -

    Standard Grid

    -

    Percentage widths, set your column size by restricting the .container wrapper <div>

    - -
    -
    - -

    This is a title

    -

    Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean.

    -
    -
    - -
    -
    - -

    This is a title

    -

    Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean.

    -
    -
    - -

    This is a title

    -

    Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean.

    -
    -
    -
    -
    - -
    -
    -

    Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean.

    -
    -
    - -
    -
    -
    -
    -

    One morning, when Gregor Samsa woke from troubled dreams, he found himself transformed in his bed into a horrible vermin. He lay on his armour-like back, and if he lifted his head a little he could see his brown belly, slightly domed and divided by arches into stiff sections.

    -
    -
    -

    One morning, when Gregor Samsa woke from troubled dreams, he found himself transformed in his bed into a horrible vermin. He lay on his armour-like back, and if he lifted his head a little he could see his brown belly, slightly domed and divided by arches into stiff sections.

    -
    -
    - - -
  • -
  • - - - - -

    Choreographic Grid #1: Split columns

    -

    On larger screens, split larger column in two, then on smaller screens split them while still keeping the overall grid.

    - -
    -
    - -

    Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean.

    -
    -
    -

    Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean.

    -
    -
    - -
    -
    -

    One morning, when Gregor Samsa woke from troubled dreams, he found himself transformed in his bed into a horrible vermin. He lay on his armour-like back, and if he lifted his head a little he could see his brown belly, slightly domed and divided by arches into stiff sections.

    -
    -
    -
    -
    -
    -
    - -

    Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean.

    - -
    -
    -

    One morning, when Gregor Samsa woke from troubled dreams, he found himself transformed in his bed into a horrible vermin. He lay on his armour-like back, and if he lifted his head a little he could see his brown belly, slightly domed and divided by arches into stiff sections.

    -
    -
    - -
    -
    - -

    Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean.

    - -
    -
    - -
    -
    -

    One morning, when Gregor Samsa woke from troubled dreams, he found himself transformed in his bed into a horrible vermin. He lay on his armour-like back, and if he lifted his head a little he could see his brown belly, slightly domed and divided by arches into stiff sections.

    -
    -
    -

    One morning, when Gregor Samsa woke from troubled dreams, he found himself transformed in his bed into a horrible vermin. He lay on his armour-like back, and if he lifted his head a little he could see his brown belly, slightly domed and divided by arches into stiff sections.

    -
    -
    - - - -
    -
    - - -
  • -
  • - - - - -

    Choreographic Grid #2: Shunt

    -

    On larger screens, allow smaller columns to site beside other column but on smaller screens 'shunt' them down below its siblings.

    - -
    -
    -

    This is a title

    - -

    Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean.

    -
    -
    -

    This is a title

    - -

    Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean.

    -
    -
    -

    This will be shunted down to it's own row

    -

    Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean.

    -
    -
    - -
    -
    - -
    -
    - -

    This is a title

    -

    Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean.

    -
    -
    - -

    This will be shunted down to it's own row

    -

    Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean.

    -
    -
    - -
    -
    - -

    This is a title

    -

    Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean.

    -
    -
    -

    This will be shunted down to it's own row

    -
    -
    -

    One morning, when Gregor Samsa woke from troubled dreams, he found himself transformed in his bed into a horrible vermin. He lay on his armour-like back, and if he lifted his head a little he could see his brown belly, slightly domed and divided by arches into stiff sections.

    -
    -
    -

    One morning, when Gregor Samsa woke from troubled dreams, he found himself transformed in his bed into a horrible vermin. He lay on his armour-like back, and if he lifted his head a little he could see his brown belly, slightly domed and divided by arches into stiff sections.

    -
    -
    - - - -
    -
    - - -
  • -
  • - - - - -

    Choreographic Grid #3: Offset

    -

    On larger screens, allow smaller columns to site beside other column but on smaller screens 'shunt' them down below its siblings.

    - -
    -
    -

    Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean.

    -
    -
    -

    Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean.

    -
    -
    -
    -
    -

    Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean.

    -
    -
    -

    Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean.

    -
    -
    -
    -
    - 1 -
    -
    -

    Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean.

    -
    -
    -
    -
    -

    Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean.

    -
    -
    -

    Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean.

    -
    -
    -
    -
    -

    Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean.

    -
    -
    -

    Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean.

    -
    -
    -

    Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean.

    -
    -
    -
    -
    -

    Far far away, behind the word mountains, far from the countries Vokalia and Consonantia, there live the blind texts. Separated they live in Bookmarksgrove right at the coast of the Semantics, a large language ocean.

    -
    -
    - - -
  • -
  • - - - - -

    Choreographic Grid #4: Source Ordering

    -

    On larger screens, allow smaller columns to site beside other column but on smaller screens 'shunt' them down below its siblings.

    - -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - - -
  • -
  • - - - - -

    Choreographic Grid #5: Centred Columns

    -

    Add a .centred or .centered class to each column. This also means that you can only have one column per row.

    -
    -
    1
    -
    -
    -
    2
    -
    -
    -
    3
    -
    -
    -
    4
    -
    -
    -
    5
    -
    -
    -
    6
    -
    -
    -
    7
    -
    -
    -
    8
    -
    -
    -
    9
    -
    -
    -
    10
    -
    -
    -
    11
    -
    -
    -
    12
    -
    - - -
  • -
- -
- - - - - - - diff --git a/examples/index.html b/examples/index.html deleted file mode 100644 index ebc355ef..00000000 --- a/examples/index.html +++ /dev/null @@ -1,35 +0,0 @@ - - - - - Kickoff Examples - - - - - - - - - diff --git a/examples/js/google-code-prettify/lang-css.js b/examples/js/google-code-prettify/lang-css.js deleted file mode 100644 index 041e1f59..00000000 --- a/examples/js/google-code-prettify/lang-css.js +++ /dev/null @@ -1,2 +0,0 @@ -PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\f\r ]+/,null," \t\r\n "]],[["str",/^"(?:[^\n\f\r"\\]|\\(?:\r\n?|\n|\f)|\\[\S\s])*"/,null],["str",/^'(?:[^\n\f\r'\\]|\\(?:\r\n?|\n|\f)|\\[\S\s])*'/,null],["lang-css-str",/^url\(([^"')]*)\)/i],["kwd",/^(?:url|rgb|!important|@import|@page|@media|@charset|inherit)(?=[^\w-]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*)\s*:/i],["com",/^\/\*[^*]*\*+(?:[^*/][^*]*\*+)*\//],["com", -/^(?:<\!--|--\>)/],["lit",/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],["lit",/^#[\da-f]{3,6}/i],["pln",/^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i],["pun",/^[^\s\w"']+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[["kwd",/^-?(?:[_a-z]|\\[\da-f]+ ?)(?:[\w-]|\\\\[\da-f]+ ?)*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[["str",/^[^"')]+/]]),["css-str"]); diff --git a/examples/js/google-code-prettify/lang-sql.js b/examples/js/google-code-prettify/lang-sql.js deleted file mode 100644 index da705b0b..00000000 --- a/examples/js/google-code-prettify/lang-sql.js +++ /dev/null @@ -1,2 +0,0 @@ -PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\t\n\r \xa0]+/,null,"\t\n\r Â\xa0"],["str",/^(?:"(?:[^"\\]|\\.)*"|'(?:[^'\\]|\\.)*')/,null,"\"'"]],[["com",/^(?:--[^\n\r]*|\/\*[\S\s]*?(?:\*\/|$))/],["kwd",/^(?:add|all|alter|and|any|as|asc|authorization|backup|begin|between|break|browse|bulk|by|cascade|case|check|checkpoint|close|clustered|coalesce|collate|column|commit|compute|constraint|contains|containstable|continue|convert|create|cross|current|current_date|current_time|current_timestamp|current_user|cursor|database|dbcc|deallocate|declare|default|delete|deny|desc|disk|distinct|distributed|double|drop|dummy|dump|else|end|errlvl|escape|except|exec|execute|exists|exit|fetch|file|fillfactor|for|foreign|freetext|freetexttable|from|full|function|goto|grant|group|having|holdlock|identity|identitycol|identity_insert|if|in|index|inner|insert|intersect|into|is|join|key|kill|left|like|lineno|load|match|merge|national|nocheck|nonclustered|not|null|nullif|of|off|offsets|on|open|opendatasource|openquery|openrowset|openxml|option|or|order|outer|over|percent|plan|precision|primary|print|proc|procedure|public|raiserror|read|readtext|reconfigure|references|replication|restore|restrict|return|revoke|right|rollback|rowcount|rowguidcol|rule|save|schema|select|session_user|set|setuser|shutdown|some|statistics|system_user|table|textsize|then|to|top|tran|transaction|trigger|truncate|tsequal|union|unique|update|updatetext|use|user|using|values|varying|view|waitfor|when|where|while|with|writetext)(?=[^\w-]|$)/i, -null],["lit",/^[+-]?(?:0x[\da-f]+|(?:\.\d+|\d+(?:\.\d*)?)(?:e[+-]?\d+)?)/i],["pln",/^[_a-z][\w-]*/i],["pun",/^[^\w\t\n\r "'\xa0][^\w\t\n\r "'+\xa0-]*/]]),["sql"]); diff --git a/examples/js/google-code-prettify/lang-wiki.js b/examples/js/google-code-prettify/lang-wiki.js deleted file mode 100644 index 9b0b4487..00000000 --- a/examples/js/google-code-prettify/lang-wiki.js +++ /dev/null @@ -1,2 +0,0 @@ -PR.registerLangHandler(PR.createSimpleLexer([["pln",/^[\d\t a-gi-z\xa0]+/,null,"\t Â\xa0abcdefgijklmnopqrstuvwxyz0123456789"],["pun",/^[*=[\]^~]+/,null,"=*~^[]"]],[["lang-wiki.meta",/(?:^^|\r\n?|\n)(#[a-z]+)\b/],["lit",/^[A-Z][a-z][\da-z]+[A-Z][a-z][^\W_]+\b/],["lang-",/^{{{([\S\s]+?)}}}/],["lang-",/^`([^\n\r`]+)`/],["str",/^https?:\/\/[^\s#/?]*(?:\/[^\s#?]*)?(?:\?[^\s#]*)?(?:#\S*)?/i],["pln",/^(?:\r\n|[\S\s])[^\n\r#*=A-[^`h{~]*/]]),["wiki"]); -PR.registerLangHandler(PR.createSimpleLexer([["kwd",/^#[a-z]+/i,null,"#"]],[]),["wiki.meta"]); diff --git a/examples/js/google-code-prettify/prettify.css b/examples/js/google-code-prettify/prettify.css deleted file mode 100644 index 0acf5b13..00000000 --- a/examples/js/google-code-prettify/prettify.css +++ /dev/null @@ -1,31 +0,0 @@ -.com { color: #93a1a1; } -.lit { color: #195f91; } -.pun, .opn, .clo { color: #93a1a1; } -.fun { color: #dc322f; } -.str, .atv { color: #D14; } -.kwd, .prettyprint .tag { color: #1e347b; } -.typ, .atn, .dec, .var { color: teal; } -.pln { color: #48484c; } - -.prettyprint { - padding: 8px; - background-color: #f7f7f9; - border: 1px solid #e1e1e8; -} -.prettyprint.linenums { - -webkit-box-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0; - -moz-box-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0; - box-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0; -} - -/* Specify class=linenums on a pre to get line numbering */ -ol.linenums { - margin: 0 0 0 33px; /* IE indents via margin-left */ - list-style: decimal; -} -ol.linenums li { - padding-left: 12px; - color: #bebec5; - line-height: 20px; - text-shadow: 0 1px 0 #fff; -} \ No newline at end of file diff --git a/examples/js/google-code-prettify/prettify.js b/examples/js/google-code-prettify/prettify.js deleted file mode 100644 index eef5ad7e..00000000 --- a/examples/js/google-code-prettify/prettify.js +++ /dev/null @@ -1,28 +0,0 @@ -var q=null;window.PR_SHOULD_USE_CONTINUATION=!0; -(function(){function L(a){function m(a){var f=a.charCodeAt(0);if(f!==92)return f;var b=a.charAt(1);return(f=r[b])?f:"0"<=b&&b<="7"?parseInt(a.substring(1),8):b==="u"||b==="x"?parseInt(a.substring(2),16):a.charCodeAt(1)}function e(a){if(a<32)return(a<16?"\\x0":"\\x")+a.toString(16);a=String.fromCharCode(a);if(a==="\\"||a==="-"||a==="["||a==="]")a="\\"+a;return a}function h(a){for(var f=a.substring(1,a.length-1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g),a= -[],b=[],o=f[0]==="^",c=o?1:0,i=f.length;c122||(d<65||j>90||b.push([Math.max(65,j)|32,Math.min(d,90)|32]),d<97||j>122||b.push([Math.max(97,j)&-33,Math.min(d,122)&-33]))}}b.sort(function(a,f){return a[0]-f[0]||f[1]-a[1]});f=[];j=[NaN,NaN];for(c=0;ci[0]&&(i[1]+1>i[0]&&b.push("-"),b.push(e(i[1])));b.push("]");return b.join("")}function y(a){for(var f=a.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g),b=f.length,d=[],c=0,i=0;c=2&&a==="["?f[c]=h(j):a!=="\\"&&(f[c]=j.replace(/[A-Za-z]/g,function(a){a=a.charCodeAt(0);return"["+String.fromCharCode(a&-33,a|32)+"]"}));return f.join("")}for(var t=0,s=!1,l=!1,p=0,d=a.length;p=5&&"lang-"===b.substring(0,5))&&!(o&&typeof o[1]==="string"))c=!1,b="src";c||(r[f]=b)}i=d;d+=f.length;if(c){c=o[1];var j=f.indexOf(c),k=j+c.length;o[2]&&(k=f.length-o[2].length,j=k-c.length);b=b.substring(5);B(l+i,f.substring(0,j),e,p);B(l+i+j,c,C(b,c),p);B(l+i+k,f.substring(k),e,p)}else p.push(l+i,b)}a.e=p}var h={},y;(function(){for(var e=a.concat(m), -l=[],p={},d=0,g=e.length;d=0;)h[n.charAt(k)]=r;r=r[1];n=""+r;p.hasOwnProperty(n)||(l.push(r),p[n]=q)}l.push(/[\S\s]/);y=L(l)})();var t=m.length;return e}function u(a){var m=[],e=[];a.tripleQuotedStrings?m.push(["str",/^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/,q,"'\""]):a.multiLineStrings?m.push(["str",/^(?:'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$)|`(?:[^\\`]|\\[\S\s])*(?:`|$))/, -q,"'\"`"]):m.push(["str",/^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,q,"\"'"]);a.verbatimStrings&&e.push(["str",/^@"(?:[^"]|"")*(?:"|$)/,q]);var h=a.hashComments;h&&(a.cStyleComments?(h>1?m.push(["com",/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,q,"#"]):m.push(["com",/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\n\r]*)/,q,"#"]),e.push(["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,q])):m.push(["com",/^#[^\n\r]*/, -q,"#"]));a.cStyleComments&&(e.push(["com",/^\/\/[^\n\r]*/,q]),e.push(["com",/^\/\*[\S\s]*?(?:\*\/|$)/,q]));a.regexLiterals&&e.push(["lang-regex",/^(?:^^\.?|[!+-]|!=|!==|#|%|%=|&|&&|&&=|&=|\(|\*|\*=|\+=|,|-=|->|\/|\/=|:|::|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|[?@[^]|\^=|\^\^|\^\^=|{|\||\|=|\|\||\|\|=|~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\s*(\/(?=[^*/])(?:[^/[\\]|\\[\S\s]|\[(?:[^\\\]]|\\[\S\s])*(?:]|$))+\/)/]);(h=a.types)&&e.push(["typ",h]);a=(""+a.keywords).replace(/^ | $/g, -"");a.length&&e.push(["kwd",RegExp("^(?:"+a.replace(/[\s,]+/g,"|")+")\\b"),q]);m.push(["pln",/^\s+/,q," \r\n\t\xa0"]);e.push(["lit",/^@[$_a-z][\w$@]*/i,q],["typ",/^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/,q],["pln",/^[$_a-z][\w$@]*/i,q],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,q,"0123456789"],["pln",/^\\[\S\s]?/,q],["pun",/^.[^\s\w"-$'./@\\`]*/,q]);return x(m,e)}function D(a,m){function e(a){switch(a.nodeType){case 1:if(k.test(a.className))break;if("BR"===a.nodeName)h(a), -a.parentNode&&a.parentNode.removeChild(a);else for(a=a.firstChild;a;a=a.nextSibling)e(a);break;case 3:case 4:if(p){var b=a.nodeValue,d=b.match(t);if(d){var c=b.substring(0,d.index);a.nodeValue=c;(b=b.substring(d.index+d[0].length))&&a.parentNode.insertBefore(s.createTextNode(b),a.nextSibling);h(a);c||a.parentNode.removeChild(a)}}}}function h(a){function b(a,d){var e=d?a.cloneNode(!1):a,f=a.parentNode;if(f){var f=b(f,1),g=a.nextSibling;f.appendChild(e);for(var h=g;h;h=g)g=h.nextSibling,f.appendChild(h)}return e} -for(;!a.nextSibling;)if(a=a.parentNode,!a)return;for(var a=b(a.nextSibling,0),e;(e=a.parentNode)&&e.nodeType===1;)a=e;d.push(a)}var k=/(?:^|\s)nocode(?:\s|$)/,t=/\r\n?|\n/,s=a.ownerDocument,l;a.currentStyle?l=a.currentStyle.whiteSpace:window.getComputedStyle&&(l=s.defaultView.getComputedStyle(a,q).getPropertyValue("white-space"));var p=l&&"pre"===l.substring(0,3);for(l=s.createElement("LI");a.firstChild;)l.appendChild(a.firstChild);for(var d=[l],g=0;g=0;){var h=m[e];A.hasOwnProperty(h)?window.console&&console.warn("cannot override language handler %s",h):A[h]=a}}function C(a,m){if(!a||!A.hasOwnProperty(a))a=/^\s*=o&&(h+=2);e>=c&&(a+=2)}}catch(w){"console"in window&&console.log(w&&w.stack?w.stack:w)}}var v=["break,continue,do,else,for,if,return,while"],w=[[v,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"], -"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],F=[w,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],G=[w,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"], -H=[G,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"],w=[w,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],I=[v,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"], -J=[v,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],v=[v,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],K=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/,N=/\S/,O=u({keywords:[F,H,w,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END"+ -I,J,v],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),A={};k(O,["default-code"]);k(x([],[["pln",/^[^]*(?:>|$)/],["com",/^<\!--[\S\s]*?(?:--\>|$)/],["lang-",/^<\?([\S\s]+?)(?:\?>|$)/],["lang-",/^<%([\S\s]+?)(?:%>|$)/],["pun",/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\S\s]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\S\s]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\S\s]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]), -["default-markup","htm","html","mxml","xhtml","xml","xsl"]);k(x([["pln",/^\s+/,q," \t\r\n"],["atv",/^(?:"[^"]*"?|'[^']*'?)/,q,"\"'"]],[["tag",/^^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],["atn",/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^\s"'>]*(?:[^\s"'/>]|\/(?=\s)))/],["pun",/^[/<->]+/],["lang-js",/^on\w+\s*=\s*"([^"]+)"/i],["lang-js",/^on\w+\s*=\s*'([^']+)'/i],["lang-js",/^on\w+\s*=\s*([^\s"'>]+)/i],["lang-css",/^style\s*=\s*"([^"]+)"/i],["lang-css",/^style\s*=\s*'([^']+)'/i],["lang-css", -/^style\s*=\s*([^\s"'>]+)/i]]),["in.tag"]);k(x([],[["atv",/^[\S\s]+/]]),["uq.val"]);k(u({keywords:F,hashComments:!0,cStyleComments:!0,types:K}),["c","cc","cpp","cxx","cyc","m"]);k(u({keywords:"null,true,false"}),["json"]);k(u({keywords:H,hashComments:!0,cStyleComments:!0,verbatimStrings:!0,types:K}),["cs"]);k(u({keywords:G,cStyleComments:!0}),["java"]);k(u({keywords:v,hashComments:!0,multiLineStrings:!0}),["bsh","csh","sh"]);k(u({keywords:I,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}), -["cv","py"]);k(u({keywords:"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["perl","pl","pm"]);k(u({keywords:J,hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb"]);k(u({keywords:w,cStyleComments:!0,regexLiterals:!0}),["js"]);k(u({keywords:"all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes", -hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]);k(x([],[["str",/^[\S\s]+/]]),["regex"]);window.prettyPrintOne=function(a,m,e){var h=document.createElement("PRE");h.innerHTML=a;e&&D(h,e);E({g:m,i:e,h:h});return h.innerHTML};window.prettyPrint=function(a){function m(){for(var e=window.PR_SHOULD_USE_CONTINUATION?l.now()+250:Infinity;p=0){var k=k.match(g),f,b;if(b= -!k){b=n;for(var o=void 0,c=b.firstChild;c;c=c.nextSibling)var i=c.nodeType,o=i===1?o?b:c:i===3?N.test(c.nodeValue)?b:o:o;b=(f=o===b?void 0:o)&&"CODE"===f.tagName}b&&(k=f.className.match(g));k&&(k=k[1]);b=!1;for(o=n.parentNode;o;o=o.parentNode)if((o.tagName==="pre"||o.tagName==="code"||o.tagName==="xmp")&&o.className&&o.className.indexOf("prettyprint")>=0){b=!0;break}b||((b=(b=n.className.match(/\blinenums\b(?::(\d+))?/))?b[1]&&b[1].length?+b[1]:!0:!1)&&D(n,b),d={g:k,h:n,i:b},E(d))}}p div').each(function() { - var $spanName = $(this).attr('class'); - $(this).text('split ' + $spanName); -}); - -// Show the grid -$('#show-grid-button').toggle(function(e) { - e.preventDefault(); - $('body').removeClass('show-grid'); - $(this).text('Show Grid'); -}, function(e) { - e.preventDefault(); - $('body').addClass('show-grid'); - $(this).text('Hide Grid'); -}); - -// Show the grid's info -$('#show-info-button').toggle(function(e) { - e.preventDefault(); - $('body').addClass('show-info'); - $(this).text('Hide Info'); -}, function(e) { - e.preventDefault(); - $('body').removeClass('show-info'); - $(this).text('Show Info'); -}); - -/** - * Skeleton V1.1 - * Copyright 2011, Dave Gamache - * www.getskeleton.com - * Free to use under the MIT license. - * http://www.opensource.org/licenses/mit-license.php - * 8/17/2011 - */ - -(function ($) { - // hash change handler - function hashchange () { - var hash = window.location.hash, - el = $('ul.tabs [href*="' + hash + '"]'), - content = $(hash); - - if (el.length && !el.hasClass('active') && content.length) { - el.closest('.tabs').find('.active').removeClass('active'); - el.addClass('active'); - content.show().addClass('active').siblings().hide().removeClass('active'); - } - } - - // listen on event and fire right away - $(window).on('hashchange.skeleton', hashchange); - hashchange(); - $(hashchange); -})(jQuery); \ No newline at end of file diff --git a/examples/js/tests-lightbox.js b/examples/js/tests-lightbox.js deleted file mode 100644 index feb36f32..00000000 --- a/examples/js/tests-lightbox.js +++ /dev/null @@ -1,32 +0,0 @@ -(function($) { - - $(function() { - /// - // Fancybox: fancybox.net - /// - - $("a.lightbox").fancybox({ - //closeBtn : false, - loop : true, - //closeClick: true, - openEffect : 'fade', - closeEffect : 'fade', - nextEffect : 'fade', - prevEffect : 'fade', - nextSpeed : 'fast', - prevSpeed : 'fast', - helpers: { - overlay: { - opacity: 0.15, - css: { - cursor: 'pointer', - 'background-color': '#000000' - } - } - } - }); - - - });//End Doc Ready - -})(jQuery); \ No newline at end of file diff --git a/examples/sprites.html b/examples/sprites.html deleted file mode 100644 index cfa49a27..00000000 --- a/examples/sprites.html +++ /dev/null @@ -1,319 +0,0 @@ - - - - - - - - - - - Sprites - - - - - - - - - - - - - - - -
- - - - - - - - - - - -
- -
- -
-
-
    -
  • icon-glass
  • -
  • icon-music
  • -
  • icon-search
  • -
  • icon-envelope
  • -
  • icon-heart
  • -
  • icon-star
  • -
  • icon-star-empty
  • -
  • icon-user
  • -
  • icon-film
  • -
  • icon-th-large
  • -
  • icon-th
  • -
  • icon-th-list
  • -
  • icon-ok
  • -
  • icon-remove
  • -
  • icon-zoom-in
  • -
  • icon-zoom-out
  • -
  • icon-off
  • -
  • icon-signal
  • -
  • icon-cog
  • -
  • icon-trash
  • -
  • icon-home
  • -
  • icon-file
  • -
  • icon-time
  • -
  • icon-road
  • -
  • icon-download-alt
  • -
  • icon-download
  • -
  • icon-upload
  • -
  • icon-inbox
  • -
  • icon-play-circle
  • -
  • icon-repeat
  • -
  • icon-refresh
  • -
  • icon-list-alt
  • -
  • icon-lock
  • -
  • icon-flag
  • -
  • icon-headphones
  • -
-
-
-
    -
  • icon-volume-off
  • -
  • icon-volume-down
  • -
  • icon-volume-up
  • -
  • icon-qrcode
  • -
  • icon-barcode
  • -
  • icon-tag
  • -
  • icon-tags
  • -
  • icon-book
  • -
  • icon-bookmark
  • -
  • icon-print
  • -
  • icon-camera
  • -
  • icon-font
  • -
  • icon-bold
  • -
  • icon-italic
  • -
  • icon-text-height
  • -
  • icon-text-width
  • -
  • icon-align-left
  • -
  • icon-align-center
  • -
  • icon-align-right
  • -
  • icon-align-justify
  • -
  • icon-list
  • -
  • icon-indent-left
  • -
  • icon-indent-right
  • -
  • icon-facetime-video
  • -
  • icon-picture
  • -
  • icon-pencil
  • -
  • icon-map-marker
  • -
  • icon-adjust
  • -
  • icon-tint
  • -
  • icon-edit
  • -
  • icon-share
  • -
  • icon-check
  • -
  • icon-move
  • -
  • icon-step-backward
  • -
  • icon-fast-backward
  • -
-
-
-
    -
  • icon-backward
  • -
  • icon-play
  • -
  • icon-pause
  • -
  • icon-stop
  • -
  • icon-forward
  • -
  • icon-fast-forward
  • -
  • icon-step-forward
  • -
  • icon-eject
  • -
  • icon-chevron-left
  • -
  • icon-chevron-right
  • -
  • icon-plus-sign
  • -
  • icon-minus-sign
  • -
  • icon-remove-sign
  • -
  • icon-ok-sign
  • -
  • icon-question-sign
  • -
  • icon-info-sign
  • -
  • icon-screenshot
  • -
  • icon-remove-circle
  • -
  • icon-ok-circle
  • -
  • icon-ban-circle
  • -
  • icon-arrow-left
  • -
  • icon-arrow-right
  • -
  • icon-arrow-up
  • -
  • icon-arrow-down
  • -
  • icon-share-alt
  • -
  • icon-resize-full
  • -
  • icon-resize-small
  • -
  • icon-plus
  • -
  • icon-minus
  • -
  • icon-asterisk
  • -
  • icon-exclamation-sign
  • -
  • icon-gift
  • -
  • icon-leaf
  • -
  • icon-fire
  • -
  • icon-eye-open
  • -
-
-
-
    -
  • icon-eye-close
  • -
  • icon-warning-sign
  • -
  • icon-plane
  • -
  • icon-calendar
  • -
  • icon-random
  • -
  • icon-comment
  • -
  • icon-magnet
  • -
  • icon-chevron-up
  • -
  • icon-chevron-down
  • -
  • icon-retweet
  • -
  • icon-shopping-cart
  • -
  • icon-folder-close
  • -
  • icon-folder-open
  • -
  • icon-resize-vertical
  • -
  • icon-resize-horizontal
  • -
  • icon-hdd
  • -
  • icon-bullhorn
  • -
  • icon-bell
  • -
  • icon-certificate
  • -
  • icon-thumbs-up
  • -
  • icon-thumbs-down
  • -
  • icon-hand-right
  • -
  • icon-hand-left
  • -
  • icon-hand-up
  • -
  • icon-hand-down
  • -
  • icon-circle-arrow-right
  • -
  • icon-circle-arrow-left
  • -
  • icon-circle-arrow-up
  • -
  • icon-circle-arrow-down
  • -
  • icon-globe
  • -
  • icon-wrench
  • -
  • icon-tasks
  • -
  • icon-filter
  • -
  • icon-briefcase
  • -
  • icon-fullscreen
  • -
-
-
- -
- -
-
-

Built as a sprite

-

Instead of making every icon an extra request, we've compiled them into a sprite—a bunch of images in one file that uses CSS to position the images with background-position. This is the same method we use on Twitter.com and it has worked well for us.

-

All icons classes are prefixed with .icon- for proper namespacing and scoping, much like our other components. This will help avoid conflicts with other tools.

-

Glyphicons has granted us use of the Halflings set in our open-source toolkit so long as we provide a link and credit here in the docs. Please consider doing the same in your projects.

-
-
-

How to use

-

Bootstrap uses an <i> tag for all icons, but they have no case class—only a shared prefix. To use, place the following code just about anywhere:

-
  1. <i class="icon-search"></i>
-

There are also styles available for inverted (white) icons, made ready with one extra class:

-
  1. <i class="icon-search icon-white"></i>
-

There are 120 classes to choose from for your icons. Just add an <i> tag with the right classes and you're set. You can find the full list in sprites.less or right here in this document.

-

- Heads up! - When using beside strings of text, as in buttons or nav links, be sure to leave a space after the <i> tag for proper spacing. -

-
-
-

Use cases

-

Icons are great, but where would one use them? Here are a few ideas:

-
    -
  • As visuals for your sidebar navigation
  • -
  • For a purely icon-driven navigation
  • -
  • For buttons to help convey the meaning of an action
  • -
  • With links to share context on a user's destination
  • -
-

Essentially, anywhere you can put an <i> tag, you can put an icon.

-
-
- -

Examples

-

Use them in buttons, button groups for a toolbar, navigation, or prepended form inputs.

-
-
-
-
- - - - -
-
- User -
-
-

- Refresh - Checkout - Delete -

-

- Comment - Settings - More Info -

-
- -
-
-
- -
-
- -
-
-
-
-
-
-
- - -
- - - - - -
- -
-
- - - - - - - - - - - - diff --git a/examples/typography.html b/examples/typography.html deleted file mode 100644 index b9699b00..00000000 --- a/examples/typography.html +++ /dev/null @@ -1,135 +0,0 @@ - - - - - - - - - - - Typography - - - - - - - - - - - - - -
-

Typography all the elements in one place

-

Heading 1 small

-

Heading 2

-

Donec sed odio dui. Curabitur blandit tempus porttitor. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Cras mattis consectetur purus sit amet fermentum. Integer posuere erat a ante venenatis dapibus posuere velit aliquet. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.

-

Heading 3

-

Donec sed odio dui. Curabitur blandit tempus porttitor. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Cras mattis consectetur purus sit amet fermentum. Integer posuere erat a ante venenatis dapibus posuere velit aliquet. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.

-

Heading 4

-

Donec sed odio dui. Curabitur blandit tempus porttitor. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Cras mattis consectetur purus sit amet fermentum. Integer posuere erat a ante venenatis dapibus posuere velit aliquet. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.

-
Heading 5
-

Donec sed odio dui. Curabitur blandit tempus porttitor. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Cras mattis consectetur purus sit amet fermentum. Integer posuere erat a ante venenatis dapibus posuere velit aliquet. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.

-
Heading 6
-

Donec sed odio dui. Curabitur blandit tempus porttitor. Cras justo odio, dapibus ac facilisis in, egestas eget quam.

- -

Text-level semantics

- -

- The a element example
- The abbr element example
- The b element example
- The cite element example
- The code element example
- The del element example
- The dfn element example
- The em element example
- The i element example
- The img element example
- The ins element example
- The kbd element example
- The mark element example
- The q element inside a q element example
- The s element example
- The samp element example
- The small element example
- The span element example
- The strike element example
- The strong element example
- The sub element example
- The sup element example
- The var element example
- The u element example -

- -

Blockquote

- -
-

Some sort of famous witty quote marked up with a <blockquote> and a child <p> element.

-
- -
Even better philosophical quote marked up with just a <blockquote> element.
- -

Ordered list

- -
    -
  1. list item 1
  2. -
  3. list item 1 -
      -
    1. list item 2
    2. -
    3. list item 2 -
        -
      1. list item 3
      2. -
      3. list item 3
      4. -
      -
    4. -
    5. list item 2
    6. -
    7. list item 2
    8. -
    -
  4. -
  5. list item 1
  6. -
  7. list item 1
  8. -
- -

Unordered list

- -
    -
  • list item 1
  • -
  • list item 1 -
      -
    • list item 2
    • -
    • list item 2 -
        -
      • list item 3
      • -
      • list item 3
      • -
      -
    • -
    • list item 2
    • -
    • list item 2
    • -
    -
  • -
  • list item 1
  • -
  • list item 1
  • -
- -

Description list

- -
-
Description name
-
Description value
-
Description name
-
Description value
-
Description value
-
Description name
-
Description name
-
Description value
-
- -
- - - diff --git a/index.html b/index.html index ae330a3d..68e70414 100644 --- a/index.html +++ b/index.html @@ -1,12 +1,10 @@ - - - + Kickoff @@ -48,9 +46,14 @@

Kickoff

- - - + + + + + diff --git a/js/helpers.js b/js/helpers.js index dad19765..fb3a501e 100644 --- a/js/helpers.js +++ b/js/helpers.js @@ -2,6 +2,7 @@ // === HELPERS.js === // ================== var TMW = window.TMW || {}; + // JS Shims, helpers // ================= // Consider using one of these libraries to provide support for @@ -22,6 +23,51 @@ Array.prototype.remove = Array.prototype.remove || function(from, to) { return this.push.apply(this, rest); }; +//String substitute, ported from MooTools +String.prototype.substitute = function (object) { + return this.replace(/\{(.+?)\}/g, function (match, name) { + return name in object ? object[name] : match; + }); +}; + +//Array forEach patch +if (!Array.prototype.forEach) { + Array.prototype.forEach = function (fn, scope) { + for (var i = 0, len = this.length; i < len; ++i) { + fn.call(scope, this[i], i, this); + } + }; +} + +//Array filter patch +if (!Array.prototype.filter) { + Array.prototype.filter = function (fn, scope) { + var results = []; + for (var value, i = 0, l = this.length >>> 0; i < l; i++) { + if (i in this) { + value = this[i]; + if (fn.call(scope, value, i, this)) { + results.push(value); + } + } + } + return results; + }; +} + +//Array map patch +if (!Array.prototype.map) { + Array.prototype.map = function (fn, scope) { + var length = this.length >>> 0, results = Array(length); + for (var i = 0; i < length; i++) { + if (i in this) { + results[i] = fn.call(scope, this[i], i, this); + } + } + return results; + }; +} + // Complete cookie reader/writer // ============================= // From https://developer.mozilla.org/en-US/docs/DOM/document.cookie diff --git a/js/libs/jquery.2.min.js b/js/libs/jquery.2.min.js new file mode 100644 index 00000000..97113e47 --- /dev/null +++ b/js/libs/jquery.2.min.js @@ -0,0 +1,6 @@ +/*! jQuery v2.0.2 | (c) 2005, 2013 jQuery Foundation, Inc. | jquery.org/license +//@ sourceMappingURL=jquery.min.map +*/ +(function(e,undefined){var t,n,r=typeof undefined,i=e.location,o=e.document,s=o.documentElement,a=e.jQuery,u=e.$,l={},c=[],p="2.0.2",f=c.concat,h=c.push,d=c.slice,g=c.indexOf,m=l.toString,y=l.hasOwnProperty,v=p.trim,x=function(e,n){return new x.fn.init(e,n,t)},b=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,w=/\S+/g,T=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,C=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,k=/^-ms-/,N=/-([\da-z])/gi,E=function(e,t){return t.toUpperCase()},S=function(){o.removeEventListener("DOMContentLoaded",S,!1),e.removeEventListener("load",S,!1),x.ready()};x.fn=x.prototype={jquery:p,constructor:x,init:function(e,t,n){var r,i;if(!e)return this;if("string"==typeof e){if(r="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:T.exec(e),!r||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof x?t[0]:t,x.merge(this,x.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:o,!0)),C.test(r[1])&&x.isPlainObject(t))for(r in t)x.isFunction(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return i=o.getElementById(r[2]),i&&i.parentNode&&(this.length=1,this[0]=i),this.context=o,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):x.isFunction(e)?n.ready(e):(e.selector!==undefined&&(this.selector=e.selector,this.context=e.context),x.makeArray(e,this))},selector:"",length:0,toArray:function(){return d.call(this)},get:function(e){return null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var t=x.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return x.each(this,e,t)},ready:function(e){return x.ready.promise().done(e),this},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return this.pushStack(x.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:h,sort:[].sort,splice:[].splice},x.fn.init.prototype=x.fn,x.extend=x.fn.extend=function(){var e,t,n,r,i,o,s=arguments[0]||{},a=1,u=arguments.length,l=!1;for("boolean"==typeof s&&(l=s,s=arguments[1]||{},a=2),"object"==typeof s||x.isFunction(s)||(s={}),u===a&&(s=this,--a);u>a;a++)if(null!=(e=arguments[a]))for(t in e)n=s[t],r=e[t],s!==r&&(l&&r&&(x.isPlainObject(r)||(i=x.isArray(r)))?(i?(i=!1,o=n&&x.isArray(n)?n:[]):o=n&&x.isPlainObject(n)?n:{},s[t]=x.extend(l,o,r)):r!==undefined&&(s[t]=r));return s},x.extend({expando:"jQuery"+(p+Math.random()).replace(/\D/g,""),noConflict:function(t){return e.$===x&&(e.$=u),t&&e.jQuery===x&&(e.jQuery=a),x},isReady:!1,readyWait:1,holdReady:function(e){e?x.readyWait++:x.ready(!0)},ready:function(e){(e===!0?--x.readyWait:x.isReady)||(x.isReady=!0,e!==!0&&--x.readyWait>0||(n.resolveWith(o,[x]),x.fn.trigger&&x(o).trigger("ready").off("ready")))},isFunction:function(e){return"function"===x.type(e)},isArray:Array.isArray,isWindow:function(e){return null!=e&&e===e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?l[m.call(e)]||"object":typeof e},isPlainObject:function(e){if("object"!==x.type(e)||e.nodeType||x.isWindow(e))return!1;try{if(e.constructor&&!y.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(t){return!1}return!0},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return null;"boolean"==typeof t&&(n=t,t=!1),t=t||o;var r=C.exec(e),i=!n&&[];return r?[t.createElement(r[1])]:(r=x.buildFragment([e],t,i),i&&x(i).remove(),x.merge([],r.childNodes))},parseJSON:JSON.parse,parseXML:function(e){var t,n;if(!e||"string"!=typeof e)return null;try{n=new DOMParser,t=n.parseFromString(e,"text/xml")}catch(r){t=undefined}return(!t||t.getElementsByTagName("parsererror").length)&&x.error("Invalid XML: "+e),t},noop:function(){},globalEval:function(e){var t,n=eval;e=x.trim(e),e&&(1===e.indexOf("use strict")?(t=o.createElement("script"),t.text=e,o.head.appendChild(t).parentNode.removeChild(t)):n(e))},camelCase:function(e){return e.replace(k,"ms-").replace(N,E)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var r,i=0,o=e.length,s=j(e);if(n){if(s){for(;o>i;i++)if(r=t.apply(e[i],n),r===!1)break}else for(i in e)if(r=t.apply(e[i],n),r===!1)break}else if(s){for(;o>i;i++)if(r=t.call(e[i],i,e[i]),r===!1)break}else for(i in e)if(r=t.call(e[i],i,e[i]),r===!1)break;return e},trim:function(e){return null==e?"":v.call(e)},makeArray:function(e,t){var n=t||[];return null!=e&&(j(Object(e))?x.merge(n,"string"==typeof e?[e]:e):h.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:g.call(t,e,n)},merge:function(e,t){var n=t.length,r=e.length,i=0;if("number"==typeof n)for(;n>i;i++)e[r++]=t[i];else while(t[i]!==undefined)e[r++]=t[i++];return e.length=r,e},grep:function(e,t,n){var r,i=[],o=0,s=e.length;for(n=!!n;s>o;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return i},map:function(e,t,n){var r,i=0,o=e.length,s=j(e),a=[];if(s)for(;o>i;i++)r=t(e[i],i,n),null!=r&&(a[a.length]=r);else for(i in e)r=t(e[i],i,n),null!=r&&(a[a.length]=r);return f.apply([],a)},guid:1,proxy:function(e,t){var n,r,i;return"string"==typeof t&&(n=e[t],t=e,e=n),x.isFunction(e)?(r=d.call(arguments,2),i=function(){return e.apply(t||this,r.concat(d.call(arguments)))},i.guid=e.guid=e.guid||x.guid++,i):undefined},access:function(e,t,n,r,i,o,s){var a=0,u=e.length,l=null==n;if("object"===x.type(n)){i=!0;for(a in n)x.access(e,t,a,n[a],!0,o,s)}else if(r!==undefined&&(i=!0,x.isFunction(r)||(s=!0),l&&(s?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(x(e),n)})),t))for(;u>a;a++)t(e[a],n,s?r:r.call(e[a],a,t(e[a],n)));return i?e:l?t.call(e):u?t(e[0],n):o},now:Date.now,swap:function(e,t,n,r){var i,o,s={};for(o in t)s[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in t)e.style[o]=s[o];return i}}),x.ready.promise=function(t){return n||(n=x.Deferred(),"complete"===o.readyState?setTimeout(x.ready):(o.addEventListener("DOMContentLoaded",S,!1),e.addEventListener("load",S,!1))),n.promise(t)},x.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){l["[object "+t+"]"]=t.toLowerCase()});function j(e){var t=e.length,n=x.type(e);return x.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof t&&t>0&&t-1 in e)}t=x(o),function(e,undefined){var t,n,r,i,o,s,a,u,l,c,p,f,h,d,g,m,y,v="sizzle"+-new Date,b=e.document,w=0,T=0,C=at(),k=at(),N=at(),E=!1,S=function(){return 0},j=typeof undefined,D=1<<31,A={}.hasOwnProperty,L=[],H=L.pop,q=L.push,O=L.push,F=L.slice,P=L.indexOf||function(e){var t=0,n=this.length;for(;n>t;t++)if(this[t]===e)return t;return-1},R="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",W="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",$=W.replace("w","w#"),B="\\["+M+"*("+W+")"+M+"*(?:([*^$|!~]?=)"+M+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+$+")|)|)"+M+"*\\]",I=":("+W+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+B.replace(3,8)+")*)|.*)\\)|)",z=RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),_=RegExp("^"+M+"*,"+M+"*"),X=RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=RegExp(M+"*[+~]"),Y=RegExp("="+M+"*([^\\]'\"]*)"+M+"*\\]","g"),V=RegExp(I),G=RegExp("^"+$+"$"),J={ID:RegExp("^#("+W+")"),CLASS:RegExp("^\\.("+W+")"),TAG:RegExp("^("+W.replace("w","w*")+")"),ATTR:RegExp("^"+B),PSEUDO:RegExp("^"+I),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:RegExp("^(?:"+R+")$","i"),needsContext:RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Q=/^[^{]+\{\s*\[native \w/,K=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,Z=/^(?:input|select|textarea|button)$/i,et=/^h\d$/i,tt=/'|\\/g,nt=RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),rt=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:0>r?String.fromCharCode(r+65536):String.fromCharCode(55296|r>>10,56320|1023&r)};try{O.apply(L=F.call(b.childNodes),b.childNodes),L[b.childNodes.length].nodeType}catch(it){O={apply:L.length?function(e,t){q.apply(e,F.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function ot(e,t,r,i){var o,s,a,u,l,f,g,m,x,w;if((t?t.ownerDocument||t:b)!==p&&c(t),t=t||p,r=r||[],!e||"string"!=typeof e)return r;if(1!==(u=t.nodeType)&&9!==u)return[];if(h&&!i){if(o=K.exec(e))if(a=o[1]){if(9===u){if(s=t.getElementById(a),!s||!s.parentNode)return r;if(s.id===a)return r.push(s),r}else if(t.ownerDocument&&(s=t.ownerDocument.getElementById(a))&&y(t,s)&&s.id===a)return r.push(s),r}else{if(o[2])return O.apply(r,t.getElementsByTagName(e)),r;if((a=o[3])&&n.getElementsByClassName&&t.getElementsByClassName)return O.apply(r,t.getElementsByClassName(a)),r}if(n.qsa&&(!d||!d.test(e))){if(m=g=v,x=t,w=9===u&&e,1===u&&"object"!==t.nodeName.toLowerCase()){f=vt(e),(g=t.getAttribute("id"))?m=g.replace(tt,"\\$&"):t.setAttribute("id",m),m="[id='"+m+"'] ",l=f.length;while(l--)f[l]=m+xt(f[l]);x=U.test(e)&&t.parentNode||t,w=f.join(",")}if(w)try{return O.apply(r,x.querySelectorAll(w)),r}catch(T){}finally{g||t.removeAttribute("id")}}}return St(e.replace(z,"$1"),t,r,i)}function st(e){return Q.test(e+"")}function at(){var e=[];function t(n,r){return e.push(n+=" ")>i.cacheLength&&delete t[e.shift()],t[n]=r}return t}function ut(e){return e[v]=!0,e}function lt(e){var t=p.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function ct(e,t,n){e=e.split("|");var r,o=e.length,s=n?null:t;while(o--)(r=i.attrHandle[e[o]])&&r!==t||(i.attrHandle[e[o]]=s)}function pt(e,t){var n=e.getAttributeNode(t);return n&&n.specified?n.value:e[t]===!0?t.toLowerCase():null}function ft(e,t){return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}function ht(e){return"input"===e.nodeName.toLowerCase()?e.defaultValue:undefined}function dt(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||D)-(~e.sourceIndex||D);if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function gt(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function mt(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function yt(e){return ut(function(t){return t=+t,ut(function(n,r){var i,o=e([],n.length,t),s=o.length;while(s--)n[i=o[s]]&&(n[i]=!(r[i]=n[i]))})})}s=ot.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},n=ot.support={},c=ot.setDocument=function(e){var t=e?e.ownerDocument||e:b,r=t.parentWindow;return t!==p&&9===t.nodeType&&t.documentElement?(p=t,f=t.documentElement,h=!s(t),r&&r.frameElement&&r.attachEvent("onbeforeunload",function(){c()}),n.attributes=lt(function(e){return e.innerHTML="",ct("type|href|height|width",ft,"#"===e.firstChild.getAttribute("href")),ct(R,pt,null==e.getAttribute("disabled")),e.className="i",!e.getAttribute("className")}),n.input=lt(function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")}),ct("value",ht,n.attributes&&n.input),n.getElementsByTagName=lt(function(e){return e.appendChild(t.createComment("")),!e.getElementsByTagName("*").length}),n.getElementsByClassName=lt(function(e){return e.innerHTML="
",e.firstChild.className="i",2===e.getElementsByClassName("i").length}),n.getById=lt(function(e){return f.appendChild(e).id=v,!t.getElementsByName||!t.getElementsByName(v).length}),n.getById?(i.find.ID=function(e,t){if(typeof t.getElementById!==j&&h){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},i.filter.ID=function(e){var t=e.replace(nt,rt);return function(e){return e.getAttribute("id")===t}}):(delete i.find.ID,i.filter.ID=function(e){var t=e.replace(nt,rt);return function(e){var n=typeof e.getAttributeNode!==j&&e.getAttributeNode("id");return n&&n.value===t}}),i.find.TAG=n.getElementsByTagName?function(e,t){return typeof t.getElementsByTagName!==j?t.getElementsByTagName(e):undefined}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},i.find.CLASS=n.getElementsByClassName&&function(e,t){return typeof t.getElementsByClassName!==j&&h?t.getElementsByClassName(e):undefined},g=[],d=[],(n.qsa=st(t.querySelectorAll))&&(lt(function(e){e.innerHTML="",e.querySelectorAll("[selected]").length||d.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll(":checked").length||d.push(":checked")}),lt(function(e){var n=t.createElement("input");n.setAttribute("type","hidden"),e.appendChild(n).setAttribute("t",""),e.querySelectorAll("[t^='']").length&&d.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll(":enabled").length||d.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),d.push(",.*:")})),(n.matchesSelector=st(m=f.webkitMatchesSelector||f.mozMatchesSelector||f.oMatchesSelector||f.msMatchesSelector))&<(function(e){n.disconnectedMatch=m.call(e,"div"),m.call(e,"[s!='']:x"),g.push("!=",I)}),d=d.length&&RegExp(d.join("|")),g=g.length&&RegExp(g.join("|")),y=st(f.contains)||f.compareDocumentPosition?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},n.sortDetached=lt(function(e){return 1&e.compareDocumentPosition(t.createElement("div"))}),S=f.compareDocumentPosition?function(e,r){if(e===r)return E=!0,0;var i=r.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(r);return i?1&i||!n.sortDetached&&r.compareDocumentPosition(e)===i?e===t||y(b,e)?-1:r===t||y(b,r)?1:l?P.call(l,e)-P.call(l,r):0:4&i?-1:1:e.compareDocumentPosition?-1:1}:function(e,n){var r,i=0,o=e.parentNode,s=n.parentNode,a=[e],u=[n];if(e===n)return E=!0,0;if(!o||!s)return e===t?-1:n===t?1:o?-1:s?1:l?P.call(l,e)-P.call(l,n):0;if(o===s)return dt(e,n);r=e;while(r=r.parentNode)a.unshift(r);r=n;while(r=r.parentNode)u.unshift(r);while(a[i]===u[i])i++;return i?dt(a[i],u[i]):a[i]===b?-1:u[i]===b?1:0},t):p},ot.matches=function(e,t){return ot(e,null,null,t)},ot.matchesSelector=function(e,t){if((e.ownerDocument||e)!==p&&c(e),t=t.replace(Y,"='$1']"),!(!n.matchesSelector||!h||g&&g.test(t)||d&&d.test(t)))try{var r=m.call(e,t);if(r||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(i){}return ot(t,p,null,[e]).length>0},ot.contains=function(e,t){return(e.ownerDocument||e)!==p&&c(e),y(e,t)},ot.attr=function(e,t){(e.ownerDocument||e)!==p&&c(e);var r=i.attrHandle[t.toLowerCase()],o=r&&A.call(i.attrHandle,t.toLowerCase())?r(e,t,!h):undefined;return o===undefined?n.attributes||!h?e.getAttribute(t):(o=e.getAttributeNode(t))&&o.specified?o.value:null:o},ot.error=function(e){throw Error("Syntax error, unrecognized expression: "+e)},ot.uniqueSort=function(e){var t,r=[],i=0,o=0;if(E=!n.detectDuplicates,l=!n.sortStable&&e.slice(0),e.sort(S),E){while(t=e[o++])t===e[o]&&(i=r.push(o));while(i--)e.splice(r[i],1)}return e},o=ot.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=o(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=o(t);return n},i=ot.selectors={cacheLength:50,createPseudo:ut,match:J,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(nt,rt),e[3]=(e[4]||e[5]||"").replace(nt,rt),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||ot.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&ot.error(e[0]),e},PSEUDO:function(e){var t,n=!e[5]&&e[2];return J.CHILD.test(e[0])?null:(e[3]&&e[4]!==undefined?e[2]=e[4]:n&&V.test(n)&&(t=vt(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(nt,rt).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=C[e+" "];return t||(t=RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&C(e,function(e){return t.test("string"==typeof e.className&&e.className||typeof e.getAttribute!==j&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=ot.attr(r,e);return null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i+" ").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),s="last"!==e.slice(-4),a="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,p,f,h,d,g=o!==s?"nextSibling":"previousSibling",m=t.parentNode,y=a&&t.nodeName.toLowerCase(),x=!u&&!a;if(m){if(o){while(g){p=t;while(p=p[g])if(a?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;d=g="only"===e&&!d&&"nextSibling"}return!0}if(d=[s?m.firstChild:m.lastChild],s&&x){c=m[v]||(m[v]={}),l=c[e]||[],h=l[0]===w&&l[1],f=l[0]===w&&l[2],p=h&&m.childNodes[h];while(p=++h&&p&&p[g]||(f=h=0)||d.pop())if(1===p.nodeType&&++f&&p===t){c[e]=[w,h,f];break}}else if(x&&(l=(t[v]||(t[v]={}))[e])&&l[0]===w)f=l[1];else while(p=++h&&p&&p[g]||(f=h=0)||d.pop())if((a?p.nodeName.toLowerCase()===y:1===p.nodeType)&&++f&&(x&&((p[v]||(p[v]={}))[e]=[w,f]),p===t))break;return f-=i,f===r||0===f%r&&f/r>=0}}},PSEUDO:function(e,t){var n,r=i.pseudos[e]||i.setFilters[e.toLowerCase()]||ot.error("unsupported pseudo: "+e);return r[v]?r(t):r.length>1?(n=[e,e,"",t],i.setFilters.hasOwnProperty(e.toLowerCase())?ut(function(e,n){var i,o=r(e,t),s=o.length;while(s--)i=P.call(e,o[s]),e[i]=!(n[i]=o[s])}):function(e){return r(e,0,n)}):r}},pseudos:{not:ut(function(e){var t=[],n=[],r=a(e.replace(z,"$1"));return r[v]?ut(function(e,t,n,i){var o,s=r(e,null,i,[]),a=e.length;while(a--)(o=s[a])&&(e[a]=!(t[a]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),!n.pop()}}),has:ut(function(e){return function(t){return ot(e,t).length>0}}),contains:ut(function(e){return function(t){return(t.textContent||t.innerText||o(t)).indexOf(e)>-1}}),lang:ut(function(e){return G.test(e||"")||ot.error("unsupported lang: "+e),e=e.replace(nt,rt).toLowerCase(),function(t){var n;do if(n=h?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===f},focus:function(e){return e===p.activeElement&&(!p.hasFocus||p.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!i.pseudos.empty(e)},header:function(e){return et.test(e.nodeName)},input:function(e){return Z.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:yt(function(){return[0]}),last:yt(function(e,t){return[t-1]}),eq:yt(function(e,t,n){return[0>n?n+t:n]}),even:yt(function(e,t){var n=0;for(;t>n;n+=2)e.push(n);return e}),odd:yt(function(e,t){var n=1;for(;t>n;n+=2)e.push(n);return e}),lt:yt(function(e,t,n){var r=0>n?n+t:n;for(;--r>=0;)e.push(r);return e}),gt:yt(function(e,t,n){var r=0>n?n+t:n;for(;t>++r;)e.push(r);return e})}};for(t in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})i.pseudos[t]=gt(t);for(t in{submit:!0,reset:!0})i.pseudos[t]=mt(t);function vt(e,t){var n,r,o,s,a,u,l,c=k[e+" "];if(c)return t?0:c.slice(0);a=e,u=[],l=i.preFilter;while(a){(!n||(r=_.exec(a)))&&(r&&(a=a.slice(r[0].length)||a),u.push(o=[])),n=!1,(r=X.exec(a))&&(n=r.shift(),o.push({value:n,type:r[0].replace(z," ")}),a=a.slice(n.length));for(s in i.filter)!(r=J[s].exec(a))||l[s]&&!(r=l[s](r))||(n=r.shift(),o.push({value:n,type:s,matches:r}),a=a.slice(n.length));if(!n)break}return t?a.length:a?ot.error(e):k(e,u).slice(0)}function xt(e){var t=0,n=e.length,r="";for(;n>t;t++)r+=e[t].value;return r}function bt(e,t,n){var i=t.dir,o=n&&"parentNode"===i,s=T++;return t.first?function(t,n,r){while(t=t[i])if(1===t.nodeType||o)return e(t,n,r)}:function(t,n,a){var u,l,c,p=w+" "+s;if(a){while(t=t[i])if((1===t.nodeType||o)&&e(t,n,a))return!0}else while(t=t[i])if(1===t.nodeType||o)if(c=t[v]||(t[v]={}),(l=c[i])&&l[0]===p){if((u=l[1])===!0||u===r)return u===!0}else if(l=c[i]=[p],l[1]=e(t,n,a)||r,l[1]===!0)return!0}}function wt(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function Tt(e,t,n,r,i){var o,s=[],a=0,u=e.length,l=null!=t;for(;u>a;a++)(o=e[a])&&(!n||n(o,r,i))&&(s.push(o),l&&t.push(a));return s}function Ct(e,t,n,r,i,o){return r&&!r[v]&&(r=Ct(r)),i&&!i[v]&&(i=Ct(i,o)),ut(function(o,s,a,u){var l,c,p,f=[],h=[],d=s.length,g=o||Et(t||"*",a.nodeType?[a]:a,[]),m=!e||!o&&t?g:Tt(g,f,e,a,u),y=n?i||(o?e:d||r)?[]:s:m;if(n&&n(m,y,a,u),r){l=Tt(y,h),r(l,[],a,u),c=l.length;while(c--)(p=l[c])&&(y[h[c]]=!(m[h[c]]=p))}if(o){if(i||e){if(i){l=[],c=y.length;while(c--)(p=y[c])&&l.push(m[c]=p);i(null,y=[],l,u)}c=y.length;while(c--)(p=y[c])&&(l=i?P.call(o,p):f[c])>-1&&(o[l]=!(s[l]=p))}}else y=Tt(y===s?y.splice(d,y.length):y),i?i(null,s,y,u):O.apply(s,y)})}function kt(e){var t,n,r,o=e.length,s=i.relative[e[0].type],a=s||i.relative[" "],l=s?1:0,c=bt(function(e){return e===t},a,!0),p=bt(function(e){return P.call(t,e)>-1},a,!0),f=[function(e,n,r){return!s&&(r||n!==u)||((t=n).nodeType?c(e,n,r):p(e,n,r))}];for(;o>l;l++)if(n=i.relative[e[l].type])f=[bt(wt(f),n)];else{if(n=i.filter[e[l].type].apply(null,e[l].matches),n[v]){for(r=++l;o>r;r++)if(i.relative[e[r].type])break;return Ct(l>1&&wt(f),l>1&&xt(e.slice(0,l-1).concat({value:" "===e[l-2].type?"*":""})).replace(z,"$1"),n,r>l&&kt(e.slice(l,r)),o>r&&kt(e=e.slice(r)),o>r&&xt(e))}f.push(n)}return wt(f)}function Nt(e,t){var n=0,o=t.length>0,s=e.length>0,a=function(a,l,c,f,h){var d,g,m,y=[],v=0,x="0",b=a&&[],T=null!=h,C=u,k=a||s&&i.find.TAG("*",h&&l.parentNode||l),N=w+=null==C?1:Math.random()||.1;for(T&&(u=l!==p&&l,r=n);null!=(d=k[x]);x++){if(s&&d){g=0;while(m=e[g++])if(m(d,l,c)){f.push(d);break}T&&(w=N,r=++n)}o&&((d=!m&&d)&&v--,a&&b.push(d))}if(v+=x,o&&x!==v){g=0;while(m=t[g++])m(b,y,l,c);if(a){if(v>0)while(x--)b[x]||y[x]||(y[x]=H.call(f));y=Tt(y)}O.apply(f,y),T&&!a&&y.length>0&&v+t.length>1&&ot.uniqueSort(f)}return T&&(w=N,u=C),b};return o?ut(a):a}a=ot.compile=function(e,t){var n,r=[],i=[],o=N[e+" "];if(!o){t||(t=vt(e)),n=t.length;while(n--)o=kt(t[n]),o[v]?r.push(o):i.push(o);o=N(e,Nt(i,r))}return o};function Et(e,t,n){var r=0,i=t.length;for(;i>r;r++)ot(e,t[r],n);return n}function St(e,t,r,o){var s,u,l,c,p,f=vt(e);if(!o&&1===f.length){if(u=f[0]=f[0].slice(0),u.length>2&&"ID"===(l=u[0]).type&&n.getById&&9===t.nodeType&&h&&i.relative[u[1].type]){if(t=(i.find.ID(l.matches[0].replace(nt,rt),t)||[])[0],!t)return r;e=e.slice(u.shift().value.length)}s=J.needsContext.test(e)?0:u.length;while(s--){if(l=u[s],i.relative[c=l.type])break;if((p=i.find[c])&&(o=p(l.matches[0].replace(nt,rt),U.test(u[0].type)&&t.parentNode||t))){if(u.splice(s,1),e=o.length&&xt(u),!e)return O.apply(r,o),r;break}}}return a(e,f)(o,t,!h,r,U.test(e)),r}i.pseudos.nth=i.pseudos.eq;function jt(){}jt.prototype=i.filters=i.pseudos,i.setFilters=new jt,n.sortStable=v.split("").sort(S).join("")===v,c(),[0,0].sort(S),n.detectDuplicates=E,x.find=ot,x.expr=ot.selectors,x.expr[":"]=x.expr.pseudos,x.unique=ot.uniqueSort,x.text=ot.getText,x.isXMLDoc=ot.isXML,x.contains=ot.contains}(e);var D={};function A(e){var t=D[e]={};return x.each(e.match(w)||[],function(e,n){t[n]=!0}),t}x.Callbacks=function(e){e="string"==typeof e?D[e]||A(e):x.extend({},e);var t,n,r,i,o,s,a=[],u=!e.once&&[],l=function(p){for(t=e.memory&&p,n=!0,s=i||0,i=0,o=a.length,r=!0;a&&o>s;s++)if(a[s].apply(p[0],p[1])===!1&&e.stopOnFalse){t=!1;break}r=!1,a&&(u?u.length&&l(u.shift()):t?a=[]:c.disable())},c={add:function(){if(a){var n=a.length;(function s(t){x.each(t,function(t,n){var r=x.type(n);"function"===r?e.unique&&c.has(n)||a.push(n):n&&n.length&&"string"!==r&&s(n)})})(arguments),r?o=a.length:t&&(i=n,l(t))}return this},remove:function(){return a&&x.each(arguments,function(e,t){var n;while((n=x.inArray(t,a,n))>-1)a.splice(n,1),r&&(o>=n&&o--,s>=n&&s--)}),this},has:function(e){return e?x.inArray(e,a)>-1:!(!a||!a.length)},empty:function(){return a=[],o=0,this},disable:function(){return a=u=t=undefined,this},disabled:function(){return!a},lock:function(){return u=undefined,t||c.disable(),this},locked:function(){return!u},fireWith:function(e,t){return t=t||[],t=[e,t.slice?t.slice():t],!a||n&&!u||(r?u.push(t):l(t)),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!n}};return c},x.extend({Deferred:function(e){var t=[["resolve","done",x.Callbacks("once memory"),"resolved"],["reject","fail",x.Callbacks("once memory"),"rejected"],["notify","progress",x.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return x.Deferred(function(n){x.each(t,function(t,o){var s=o[0],a=x.isFunction(e[t])&&e[t];i[o[1]](function(){var e=a&&a.apply(this,arguments);e&&x.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[s+"With"](this===r?n.promise():this,a?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?x.extend(e,r):r}},i={};return r.pipe=r.then,x.each(t,function(e,o){var s=o[2],a=o[3];r[o[1]]=s.add,a&&s.add(function(){n=a},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=s.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=d.call(arguments),r=n.length,i=1!==r||e&&x.isFunction(e.promise)?r:0,o=1===i?e:x.Deferred(),s=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?d.call(arguments):r,n===a?o.notifyWith(t,n):--i||o.resolveWith(t,n)}},a,u,l;if(r>1)for(a=Array(r),u=Array(r),l=Array(r);r>t;t++)n[t]&&x.isFunction(n[t].promise)?n[t].promise().done(s(t,l,n)).fail(o.reject).progress(s(t,u,a)):--i;return i||o.resolveWith(l,n),o.promise()}}),x.support=function(t){var n=o.createElement("input"),r=o.createDocumentFragment(),i=o.createElement("div"),s=o.createElement("select"),a=s.appendChild(o.createElement("option"));return n.type?(n.type="checkbox",t.checkOn=""!==n.value,t.optSelected=a.selected,t.reliableMarginRight=!0,t.boxSizingReliable=!0,t.pixelPosition=!1,n.checked=!0,t.noCloneChecked=n.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!a.disabled,n=o.createElement("input"),n.value="t",n.type="radio",t.radioValue="t"===n.value,n.setAttribute("checked","t"),n.setAttribute("name","t"),r.appendChild(n),t.checkClone=r.cloneNode(!0).cloneNode(!0).lastChild.checked,t.focusinBubbles="onfocusin"in e,i.style.backgroundClip="content-box",i.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===i.style.backgroundClip,x(function(){var n,r,s="padding:0;margin:0;border:0;display:block;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box",a=o.getElementsByTagName("body")[0];a&&(n=o.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",a.appendChild(n).appendChild(i),i.innerHTML="",i.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%",x.swap(a,null!=a.style.zoom?{zoom:1}:{},function(){t.boxSizing=4===i.offsetWidth}),e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(i,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(i,null)||{width:"4px"}).width,r=i.appendChild(o.createElement("div")),r.style.cssText=i.style.cssText=s,r.style.marginRight=r.style.width="0",i.style.width="1px",t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),a.removeChild(n))}),t):t}({});var L,H,q=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,O=/([A-Z])/g;function F(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=x.expando+Math.random()}F.uid=1,F.accepts=function(e){return e.nodeType?1===e.nodeType||9===e.nodeType:!0},F.prototype={key:function(e){if(!F.accepts(e))return 0;var t={},n=e[this.expando];if(!n){n=F.uid++;try{t[this.expando]={value:n},Object.defineProperties(e,t)}catch(r){t[this.expando]=n,x.extend(e,t)}}return this.cache[n]||(this.cache[n]={}),n},set:function(e,t,n){var r,i=this.key(e),o=this.cache[i];if("string"==typeof t)o[t]=n;else if(x.isEmptyObject(o))x.extend(this.cache[i],t);else for(r in t)o[r]=t[r];return o},get:function(e,t){var n=this.cache[this.key(e)];return t===undefined?n:n[t]},access:function(e,t,n){return t===undefined||t&&"string"==typeof t&&n===undefined?this.get(e,t):(this.set(e,t,n),n!==undefined?n:t)},remove:function(e,t){var n,r,i,o=this.key(e),s=this.cache[o];if(t===undefined)this.cache[o]={};else{x.isArray(t)?r=t.concat(t.map(x.camelCase)):(i=x.camelCase(t),t in s?r=[t,i]:(r=i,r=r in s?[r]:r.match(w)||[])),n=r.length;while(n--)delete s[r[n]]}},hasData:function(e){return!x.isEmptyObject(this.cache[e[this.expando]]||{})},discard:function(e){e[this.expando]&&delete this.cache[e[this.expando]]}},L=new F,H=new F,x.extend({acceptData:F.accepts,hasData:function(e){return L.hasData(e)||H.hasData(e)},data:function(e,t,n){return L.access(e,t,n)},removeData:function(e,t){L.remove(e,t)},_data:function(e,t,n){return H.access(e,t,n)},_removeData:function(e,t){H.remove(e,t)}}),x.fn.extend({data:function(e,t){var n,r,i=this[0],o=0,s=null;if(e===undefined){if(this.length&&(s=L.get(i),1===i.nodeType&&!H.get(i,"hasDataAttrs"))){for(n=i.attributes;n.length>o;o++)r=n[o].name,0===r.indexOf("data-")&&(r=x.camelCase(r.slice(5)),P(i,r,s[r]));H.set(i,"hasDataAttrs",!0)}return s}return"object"==typeof e?this.each(function(){L.set(this,e)}):x.access(this,function(t){var n,r=x.camelCase(e);if(i&&t===undefined){if(n=L.get(i,e),n!==undefined)return n;if(n=L.get(i,r),n!==undefined)return n;if(n=P(i,r,undefined),n!==undefined)return n}else this.each(function(){var n=L.get(this,r);L.set(this,r,t),-1!==e.indexOf("-")&&n!==undefined&&L.set(this,e,t)})},null,t,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){L.remove(this,e)})}});function P(e,t,n){var r;if(n===undefined&&1===e.nodeType)if(r="data-"+t.replace(O,"-$1").toLowerCase(),n=e.getAttribute(r),"string"==typeof n){try{n="true"===n?!0:"false"===n?!1:"null"===n?null:+n+""===n?+n:q.test(n)?JSON.parse(n):n}catch(i){}L.set(e,t,n)}else n=undefined;return n}x.extend({queue:function(e,t,n){var r;return e?(t=(t||"fx")+"queue",r=H.get(e,t),n&&(!r||x.isArray(n)?r=H.access(e,t,x.makeArray(n)):r.push(n)),r||[]):undefined},dequeue:function(e,t){t=t||"fx";var n=x.queue(e,t),r=n.length,i=n.shift(),o=x._queueHooks(e,t),s=function(){x.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,s,o)),!r&&o&&o.empty.fire() +},_queueHooks:function(e,t){var n=t+"queueHooks";return H.get(e,n)||H.access(e,n,{empty:x.Callbacks("once memory").add(function(){H.remove(e,[t+"queue",n])})})}}),x.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),n>arguments.length?x.queue(this[0],e):t===undefined?this:this.each(function(){var n=x.queue(this,e,t);x._queueHooks(this,e),"fx"===e&&"inprogress"!==n[0]&&x.dequeue(this,e)})},dequeue:function(e){return this.each(function(){x.dequeue(this,e)})},delay:function(e,t){return e=x.fx?x.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=x.Deferred(),o=this,s=this.length,a=function(){--r||i.resolveWith(o,[o])};"string"!=typeof e&&(t=e,e=undefined),e=e||"fx";while(s--)n=H.get(o[s],e+"queueHooks"),n&&n.empty&&(r++,n.empty.add(a));return a(),i.promise(t)}});var R,M,W=/[\t\r\n\f]/g,$=/\r/g,B=/^(?:input|select|textarea|button)$/i;x.fn.extend({attr:function(e,t){return x.access(this,x.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){x.removeAttr(this,e)})},prop:function(e,t){return x.access(this,x.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[x.propFix[e]||e]})},addClass:function(e){var t,n,r,i,o,s=0,a=this.length,u="string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).addClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(w)||[];a>s;s++)if(n=this[s],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(W," "):" ")){o=0;while(i=t[o++])0>r.indexOf(" "+i+" ")&&(r+=i+" ");n.className=x.trim(r)}return this},removeClass:function(e){var t,n,r,i,o,s=0,a=this.length,u=0===arguments.length||"string"==typeof e&&e;if(x.isFunction(e))return this.each(function(t){x(this).removeClass(e.call(this,t,this.className))});if(u)for(t=(e||"").match(w)||[];a>s;s++)if(n=this[s],r=1===n.nodeType&&(n.className?(" "+n.className+" ").replace(W," "):"")){o=0;while(i=t[o++])while(r.indexOf(" "+i+" ")>=0)r=r.replace(" "+i+" "," ");n.className=e?x.trim(r):""}return this},toggleClass:function(e,t){var n=typeof e,i="boolean"==typeof t;return x.isFunction(e)?this.each(function(n){x(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n){var o,s=0,a=x(this),u=t,l=e.match(w)||[];while(o=l[s++])u=i?u:!a.hasClass(o),a[u?"addClass":"removeClass"](o)}else(n===r||"boolean"===n)&&(this.className&&H.set(this,"__className__",this.className),this.className=this.className||e===!1?"":H.get(this,"__className__")||"")})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;r>n;n++)if(1===this[n].nodeType&&(" "+this[n].className+" ").replace(W," ").indexOf(t)>=0)return!0;return!1},val:function(e){var t,n,r,i=this[0];{if(arguments.length)return r=x.isFunction(e),this.each(function(n){var i;1===this.nodeType&&(i=r?e.call(this,n,x(this).val()):e,null==i?i="":"number"==typeof i?i+="":x.isArray(i)&&(i=x.map(i,function(e){return null==e?"":e+""})),t=x.valHooks[this.type]||x.valHooks[this.nodeName.toLowerCase()],t&&"set"in t&&t.set(this,i,"value")!==undefined||(this.value=i))});if(i)return t=x.valHooks[i.type]||x.valHooks[i.nodeName.toLowerCase()],t&&"get"in t&&(n=t.get(i,"value"))!==undefined?n:(n=i.value,"string"==typeof n?n.replace($,""):null==n?"":n)}}}),x.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,s=o?null:[],a=o?i+1:r.length,u=0>i?a:o?i:0;for(;a>u;u++)if(n=r[u],!(!n.selected&&u!==i||(x.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&x.nodeName(n.parentNode,"optgroup"))){if(t=x(n).val(),o)return t;s.push(t)}return s},set:function(e,t){var n,r,i=e.options,o=x.makeArray(t),s=i.length;while(s--)r=i[s],(r.selected=x.inArray(x(r).val(),o)>=0)&&(n=!0);return n||(e.selectedIndex=-1),o}}},attr:function(e,t,n){var i,o,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return typeof e.getAttribute===r?x.prop(e,t,n):(1===s&&x.isXMLDoc(e)||(t=t.toLowerCase(),i=x.attrHooks[t]||(x.expr.match.bool.test(t)?M:R)),n===undefined?i&&"get"in i&&null!==(o=i.get(e,t))?o:(o=x.find.attr(e,t),null==o?undefined:o):null!==n?i&&"set"in i&&(o=i.set(e,n,t))!==undefined?o:(e.setAttribute(t,n+""),n):(x.removeAttr(e,t),undefined))},removeAttr:function(e,t){var n,r,i=0,o=t&&t.match(w);if(o&&1===e.nodeType)while(n=o[i++])r=x.propFix[n]||n,x.expr.match.bool.test(n)&&(e[r]=!1),e.removeAttribute(n)},attrHooks:{type:{set:function(e,t){if(!x.support.radioValue&&"radio"===t&&x.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{"for":"htmlFor","class":"className"},prop:function(e,t,n){var r,i,o,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return o=1!==s||!x.isXMLDoc(e),o&&(t=x.propFix[t]||t,i=x.propHooks[t]),n!==undefined?i&&"set"in i&&(r=i.set(e,n,t))!==undefined?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){return e.hasAttribute("tabindex")||B.test(e.nodeName)||e.href?e.tabIndex:-1}}}}),M={set:function(e,t,n){return t===!1?x.removeAttr(e,n):e.setAttribute(n,n),n}},x.each(x.expr.match.bool.source.match(/\w+/g),function(e,t){var n=x.expr.attrHandle[t]||x.find.attr;x.expr.attrHandle[t]=function(e,t,r){var i=x.expr.attrHandle[t],o=r?undefined:(x.expr.attrHandle[t]=undefined)!=n(e,t,r)?t.toLowerCase():null;return x.expr.attrHandle[t]=i,o}}),x.support.optSelected||(x.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null}}),x.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){x.propFix[this.toLowerCase()]=this}),x.each(["radio","checkbox"],function(){x.valHooks[this]={set:function(e,t){return x.isArray(t)?e.checked=x.inArray(x(e).val(),t)>=0:undefined}},x.support.checkOn||(x.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var I=/^key/,z=/^(?:mouse|contextmenu)|click/,_=/^(?:focusinfocus|focusoutblur)$/,X=/^([^.]*)(?:\.(.+)|)$/;function U(){return!0}function Y(){return!1}function V(){try{return o.activeElement}catch(e){}}x.event={global:{},add:function(e,t,n,i,o){var s,a,u,l,c,p,f,h,d,g,m,y=H.get(e);if(y){n.handler&&(s=n,n=s.handler,o=s.selector),n.guid||(n.guid=x.guid++),(l=y.events)||(l=y.events={}),(a=y.handle)||(a=y.handle=function(e){return typeof x===r||e&&x.event.triggered===e.type?undefined:x.event.dispatch.apply(a.elem,arguments)},a.elem=e),t=(t||"").match(w)||[""],c=t.length;while(c--)u=X.exec(t[c])||[],d=m=u[1],g=(u[2]||"").split(".").sort(),d&&(f=x.event.special[d]||{},d=(o?f.delegateType:f.bindType)||d,f=x.event.special[d]||{},p=x.extend({type:d,origType:m,data:i,handler:n,guid:n.guid,selector:o,needsContext:o&&x.expr.match.needsContext.test(o),namespace:g.join(".")},s),(h=l[d])||(h=l[d]=[],h.delegateCount=0,f.setup&&f.setup.call(e,i,g,a)!==!1||e.addEventListener&&e.addEventListener(d,a,!1)),f.add&&(f.add.call(e,p),p.handler.guid||(p.handler.guid=n.guid)),o?h.splice(h.delegateCount++,0,p):h.push(p),x.event.global[d]=!0);e=null}},remove:function(e,t,n,r,i){var o,s,a,u,l,c,p,f,h,d,g,m=H.hasData(e)&&H.get(e);if(m&&(u=m.events)){t=(t||"").match(w)||[""],l=t.length;while(l--)if(a=X.exec(t[l])||[],h=g=a[1],d=(a[2]||"").split(".").sort(),h){p=x.event.special[h]||{},h=(r?p.delegateType:p.bindType)||h,f=u[h]||[],a=a[2]&&RegExp("(^|\\.)"+d.join("\\.(?:.*\\.|)")+"(\\.|$)"),s=o=f.length;while(o--)c=f[o],!i&&g!==c.origType||n&&n.guid!==c.guid||a&&!a.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(f.splice(o,1),c.selector&&f.delegateCount--,p.remove&&p.remove.call(e,c));s&&!f.length&&(p.teardown&&p.teardown.call(e,d,m.handle)!==!1||x.removeEvent(e,h,m.handle),delete u[h])}else for(h in u)x.event.remove(e,h+t[l],n,r,!0);x.isEmptyObject(u)&&(delete m.handle,H.remove(e,"events"))}},trigger:function(t,n,r,i){var s,a,u,l,c,p,f,h=[r||o],d=y.call(t,"type")?t.type:t,g=y.call(t,"namespace")?t.namespace.split("."):[];if(a=u=r=r||o,3!==r.nodeType&&8!==r.nodeType&&!_.test(d+x.event.triggered)&&(d.indexOf(".")>=0&&(g=d.split("."),d=g.shift(),g.sort()),c=0>d.indexOf(":")&&"on"+d,t=t[x.expando]?t:new x.Event(d,"object"==typeof t&&t),t.isTrigger=i?2:3,t.namespace=g.join("."),t.namespace_re=t.namespace?RegExp("(^|\\.)"+g.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=undefined,t.target||(t.target=r),n=null==n?[t]:x.makeArray(n,[t]),f=x.event.special[d]||{},i||!f.trigger||f.trigger.apply(r,n)!==!1)){if(!i&&!f.noBubble&&!x.isWindow(r)){for(l=f.delegateType||d,_.test(l+d)||(a=a.parentNode);a;a=a.parentNode)h.push(a),u=a;u===(r.ownerDocument||o)&&h.push(u.defaultView||u.parentWindow||e)}s=0;while((a=h[s++])&&!t.isPropagationStopped())t.type=s>1?l:f.bindType||d,p=(H.get(a,"events")||{})[t.type]&&H.get(a,"handle"),p&&p.apply(a,n),p=c&&a[c],p&&x.acceptData(a)&&p.apply&&p.apply(a,n)===!1&&t.preventDefault();return t.type=d,i||t.isDefaultPrevented()||f._default&&f._default.apply(h.pop(),n)!==!1||!x.acceptData(r)||c&&x.isFunction(r[d])&&!x.isWindow(r)&&(u=r[c],u&&(r[c]=null),x.event.triggered=d,r[d](),x.event.triggered=undefined,u&&(r[c]=u)),t.result}},dispatch:function(e){e=x.event.fix(e);var t,n,r,i,o,s=[],a=d.call(arguments),u=(H.get(this,"events")||{})[e.type]||[],l=x.event.special[e.type]||{};if(a[0]=e,e.delegateTarget=this,!l.preDispatch||l.preDispatch.call(this,e)!==!1){s=x.event.handlers.call(this,e,u),t=0;while((i=s[t++])&&!e.isPropagationStopped()){e.currentTarget=i.elem,n=0;while((o=i.handlers[n++])&&!e.isImmediatePropagationStopped())(!e.namespace_re||e.namespace_re.test(o.namespace))&&(e.handleObj=o,e.data=o.data,r=((x.event.special[o.origType]||{}).handle||o.handler).apply(i.elem,a),r!==undefined&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()))}return l.postDispatch&&l.postDispatch.call(this,e),e.result}},handlers:function(e,t){var n,r,i,o,s=[],a=t.delegateCount,u=e.target;if(a&&u.nodeType&&(!e.button||"click"!==e.type))for(;u!==this;u=u.parentNode||this)if(u.disabled!==!0||"click"!==e.type){for(r=[],n=0;a>n;n++)o=t[n],i=o.selector+" ",r[i]===undefined&&(r[i]=o.needsContext?x(i,this).index(u)>=0:x.find(i,this,null,[u]).length),r[i]&&r.push(o);r.length&&s.push({elem:u,handlers:r})}return t.length>a&&s.push({elem:this,handlers:t.slice(a)}),s},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,t){var n,r,i,s=t.button;return null==e.pageX&&null!=t.clientX&&(n=e.target.ownerDocument||o,r=n.documentElement,i=n.body,e.pageX=t.clientX+(r&&r.scrollLeft||i&&i.scrollLeft||0)-(r&&r.clientLeft||i&&i.clientLeft||0),e.pageY=t.clientY+(r&&r.scrollTop||i&&i.scrollTop||0)-(r&&r.clientTop||i&&i.clientTop||0)),e.which||s===undefined||(e.which=1&s?1:2&s?3:4&s?2:0),e}},fix:function(e){if(e[x.expando])return e;var t,n,r,i=e.type,s=e,a=this.fixHooks[i];a||(this.fixHooks[i]=a=z.test(i)?this.mouseHooks:I.test(i)?this.keyHooks:{}),r=a.props?this.props.concat(a.props):this.props,e=new x.Event(s),t=r.length;while(t--)n=r[t],e[n]=s[n];return e.target||(e.target=o),3===e.target.nodeType&&(e.target=e.target.parentNode),a.filter?a.filter(e,s):e},special:{load:{noBubble:!0},focus:{trigger:function(){return this!==V()&&this.focus?(this.focus(),!1):undefined},delegateType:"focusin"},blur:{trigger:function(){return this===V()&&this.blur?(this.blur(),!1):undefined},delegateType:"focusout"},click:{trigger:function(){return"checkbox"===this.type&&this.click&&x.nodeName(this,"input")?(this.click(),!1):undefined},_default:function(e){return x.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){e.result!==undefined&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var i=x.extend(new x.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?x.event.trigger(i,null,t):x.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},x.removeEvent=function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)},x.Event=function(e,t){return this instanceof x.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.getPreventDefault&&e.getPreventDefault()?U:Y):this.type=e,t&&x.extend(this,t),this.timeStamp=e&&e.timeStamp||x.now(),this[x.expando]=!0,undefined):new x.Event(e,t)},x.Event.prototype={isDefaultPrevented:Y,isPropagationStopped:Y,isImmediatePropagationStopped:Y,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=U,e&&e.preventDefault&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=U,e&&e.stopPropagation&&e.stopPropagation()},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=U,this.stopPropagation()}},x.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){x.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,o=e.handleObj;return(!i||i!==r&&!x.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),x.support.focusinBubbles||x.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){x.event.simulate(t,e.target,x.event.fix(e),!0)};x.event.special[t]={setup:function(){0===n++&&o.addEventListener(e,r,!0)},teardown:function(){0===--n&&o.removeEventListener(e,r,!0)}}}),x.fn.extend({on:function(e,t,n,r,i){var o,s;if("object"==typeof e){"string"!=typeof t&&(n=n||t,t=undefined);for(s in e)this.on(s,t,n,e[s],i);return this}if(null==n&&null==r?(r=t,n=t=undefined):null==r&&("string"==typeof t?(r=n,n=undefined):(r=n,n=t,t=undefined)),r===!1)r=Y;else if(!r)return this;return 1===i&&(o=r,r=function(e){return x().off(e),o.apply(this,arguments)},r.guid=o.guid||(o.guid=x.guid++)),this.each(function(){x.event.add(this,e,r,n,t)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,t,n){var r,i;if(e&&e.preventDefault&&e.handleObj)return r=e.handleObj,x(e.delegateTarget).off(r.namespace?r.origType+"."+r.namespace:r.origType,r.selector,r.handler),this;if("object"==typeof e){for(i in e)this.off(i,t,e[i]);return this}return(t===!1||"function"==typeof t)&&(n=t,t=undefined),n===!1&&(n=Y),this.each(function(){x.event.remove(this,e,n,t)})},trigger:function(e,t){return this.each(function(){x.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];return n?x.event.trigger(e,t,n,!0):undefined}});var G=/^.[^:#\[\.,]*$/,J=/^(?:parents|prev(?:Until|All))/,Q=x.expr.match.needsContext,K={children:!0,contents:!0,next:!0,prev:!0};x.fn.extend({find:function(e){var t,n=[],r=this,i=r.length;if("string"!=typeof e)return this.pushStack(x(e).filter(function(){for(t=0;i>t;t++)if(x.contains(r[t],this))return!0}));for(t=0;i>t;t++)x.find(e,r[t],n);return n=this.pushStack(i>1?x.unique(n):n),n.selector=this.selector?this.selector+" "+e:e,n},has:function(e){var t=x(e,this),n=t.length;return this.filter(function(){var e=0;for(;n>e;e++)if(x.contains(this,t[e]))return!0})},not:function(e){return this.pushStack(et(this,e||[],!0))},filter:function(e){return this.pushStack(et(this,e||[],!1))},is:function(e){return!!et(this,"string"==typeof e&&Q.test(e)?x(e):e||[],!1).length},closest:function(e,t){var n,r=0,i=this.length,o=[],s=Q.test(e)||"string"!=typeof e?x(e,t||this.context):0;for(;i>r;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(11>n.nodeType&&(s?s.index(n)>-1:1===n.nodeType&&x.find.matchesSelector(n,e))){n=o.push(n);break}return this.pushStack(o.length>1?x.unique(o):o)},index:function(e){return e?"string"==typeof e?g.call(x(e),this[0]):g.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var n="string"==typeof e?x(e,t):x.makeArray(e&&e.nodeType?[e]:e),r=x.merge(this.get(),n);return this.pushStack(x.unique(r))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function Z(e,t){while((e=e[t])&&1!==e.nodeType);return e}x.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return x.dir(e,"parentNode")},parentsUntil:function(e,t,n){return x.dir(e,"parentNode",n)},next:function(e){return Z(e,"nextSibling")},prev:function(e){return Z(e,"previousSibling")},nextAll:function(e){return x.dir(e,"nextSibling")},prevAll:function(e){return x.dir(e,"previousSibling")},nextUntil:function(e,t,n){return x.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return x.dir(e,"previousSibling",n)},siblings:function(e){return x.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return x.sibling(e.firstChild)},contents:function(e){return e.contentDocument||x.merge([],e.childNodes)}},function(e,t){x.fn[e]=function(n,r){var i=x.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=x.filter(r,i)),this.length>1&&(K[e]||x.unique(i),J.test(e)&&i.reverse()),this.pushStack(i)}}),x.extend({filter:function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?x.find.matchesSelector(r,e)?[r]:[]:x.find.matches(e,x.grep(t,function(e){return 1===e.nodeType}))},dir:function(e,t,n){var r=[],i=n!==undefined;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&x(e).is(n))break;r.push(e)}return r},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}});function et(e,t,n){if(x.isFunction(t))return x.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return x.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(G.test(t))return x.filter(t,e,n);t=x.filter(t,e)}return x.grep(e,function(e){return g.call(t,e)>=0!==n})}var tt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,nt=/<([\w:]+)/,rt=/<|&#?\w+;/,it=/<(?:script|style|link)/i,ot=/^(?:checkbox|radio)$/i,st=/checked\s*(?:[^=]|=\s*.checked.)/i,at=/^$|\/(?:java|ecma)script/i,ut=/^true\/(.*)/,lt=/^\s*\s*$/g,ct={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};ct.optgroup=ct.option,ct.tbody=ct.tfoot=ct.colgroup=ct.caption=ct.thead,ct.th=ct.td,x.fn.extend({text:function(e){return x.access(this,function(e){return e===undefined?x.text(this):this.empty().append((this[0]&&this[0].ownerDocument||o).createTextNode(e))},null,e,arguments.length)},append:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=pt(this,e);t.appendChild(e)}})},prepend:function(){return this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=pt(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){var n,r=e?x.filter(e,this):this,i=0;for(;null!=(n=r[i]);i++)t||1!==n.nodeType||x.cleanData(mt(n)),n.parentNode&&(t&&x.contains(n.ownerDocument,n)&&dt(mt(n,"script")),n.parentNode.removeChild(n));return this},empty:function(){var e,t=0;for(;null!=(e=this[t]);t++)1===e.nodeType&&(x.cleanData(mt(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return x.clone(this,e,t)})},html:function(e){return x.access(this,function(e){var t=this[0]||{},n=0,r=this.length;if(e===undefined&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!it.test(e)&&!ct[(nt.exec(e)||["",""])[1].toLowerCase()]){e=e.replace(tt,"<$1>");try{for(;r>n;n++)t=this[n]||{},1===t.nodeType&&(x.cleanData(mt(t,!1)),t.innerHTML=e);t=0}catch(i){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=x.map(this,function(e){return[e.nextSibling,e.parentNode]}),t=0;return this.domManip(arguments,function(n){var r=e[t++],i=e[t++];i&&(r&&r.parentNode!==i&&(r=this.nextSibling),x(this).remove(),i.insertBefore(n,r))},!0),t?this:this.remove()},detach:function(e){return this.remove(e,!0)},domManip:function(e,t,n){e=f.apply([],e);var r,i,o,s,a,u,l=0,c=this.length,p=this,h=c-1,d=e[0],g=x.isFunction(d);if(g||!(1>=c||"string"!=typeof d||x.support.checkClone)&&st.test(d))return this.each(function(r){var i=p.eq(r);g&&(e[0]=d.call(this,r,i.html())),i.domManip(e,t,n)});if(c&&(r=x.buildFragment(e,this[0].ownerDocument,!1,!n&&this),i=r.firstChild,1===r.childNodes.length&&(r=i),i)){for(o=x.map(mt(r,"script"),ft),s=o.length;c>l;l++)a=r,l!==h&&(a=x.clone(a,!0,!0),s&&x.merge(o,mt(a,"script"))),t.call(this[l],a,l);if(s)for(u=o[o.length-1].ownerDocument,x.map(o,ht),l=0;s>l;l++)a=o[l],at.test(a.type||"")&&!H.access(a,"globalEval")&&x.contains(u,a)&&(a.src?x._evalUrl(a.src):x.globalEval(a.textContent.replace(lt,"")))}return this}}),x.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){x.fn[e]=function(e){var n,r=[],i=x(e),o=i.length-1,s=0;for(;o>=s;s++)n=s===o?this:this.clone(!0),x(i[s])[t](n),h.apply(r,n.get());return this.pushStack(r)}}),x.extend({clone:function(e,t,n){var r,i,o,s,a=e.cloneNode(!0),u=x.contains(e.ownerDocument,e);if(!(x.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||x.isXMLDoc(e)))for(s=mt(a),o=mt(e),r=0,i=o.length;i>r;r++)yt(o[r],s[r]);if(t)if(n)for(o=o||mt(e),s=s||mt(a),r=0,i=o.length;i>r;r++)gt(o[r],s[r]);else gt(e,a);return s=mt(a,"script"),s.length>0&&dt(s,!u&&mt(e,"script")),a},buildFragment:function(e,t,n,r){var i,o,s,a,u,l,c=0,p=e.length,f=t.createDocumentFragment(),h=[];for(;p>c;c++)if(i=e[c],i||0===i)if("object"===x.type(i))x.merge(h,i.nodeType?[i]:i);else if(rt.test(i)){o=o||f.appendChild(t.createElement("div")),s=(nt.exec(i)||["",""])[1].toLowerCase(),a=ct[s]||ct._default,o.innerHTML=a[1]+i.replace(tt,"<$1>")+a[2],l=a[0];while(l--)o=o.firstChild;x.merge(h,o.childNodes),o=f.firstChild,o.textContent=""}else h.push(t.createTextNode(i));f.textContent="",c=0;while(i=h[c++])if((!r||-1===x.inArray(i,r))&&(u=x.contains(i.ownerDocument,i),o=mt(f.appendChild(i),"script"),u&&dt(o),n)){l=0;while(i=o[l++])at.test(i.type||"")&&n.push(i)}return f},cleanData:function(e){var t,n,r,i,o,s,a=x.event.special,u=0;for(;(n=e[u])!==undefined;u++){if(F.accepts(n)&&(o=n[H.expando],o&&(t=H.cache[o]))){if(r=Object.keys(t.events||{}),r.length)for(s=0;(i=r[s])!==undefined;s++)a[i]?x.event.remove(n,i):x.removeEvent(n,i,t.handle);H.cache[o]&&delete H.cache[o]}delete L.cache[n[L.expando]]}},_evalUrl:function(e){return x.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})}});function pt(e,t){return x.nodeName(e,"table")&&x.nodeName(1===t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function ft(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function ht(e){var t=ut.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function dt(e,t){var n=e.length,r=0;for(;n>r;r++)H.set(e[r],"globalEval",!t||H.get(t[r],"globalEval"))}function gt(e,t){var n,r,i,o,s,a,u,l;if(1===t.nodeType){if(H.hasData(e)&&(o=H.access(e),s=H.set(t,o),l=o.events)){delete s.handle,s.events={};for(i in l)for(n=0,r=l[i].length;r>n;n++)x.event.add(t,i,l[i][n])}L.hasData(e)&&(a=L.access(e),u=x.extend({},a),L.set(t,u))}}function mt(e,t){var n=e.getElementsByTagName?e.getElementsByTagName(t||"*"):e.querySelectorAll?e.querySelectorAll(t||"*"):[];return t===undefined||t&&x.nodeName(e,t)?x.merge([e],n):n}function yt(e,t){var n=t.nodeName.toLowerCase();"input"===n&&ot.test(e.type)?t.checked=e.checked:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}x.fn.extend({wrapAll:function(e){var t;return x.isFunction(e)?this.each(function(t){x(this).wrapAll(e.call(this,t))}):(this[0]&&(t=x(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this)},wrapInner:function(e){return x.isFunction(e)?this.each(function(t){x(this).wrapInner(e.call(this,t))}):this.each(function(){var t=x(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=x.isFunction(e);return this.each(function(n){x(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){x.nodeName(this,"body")||x(this).replaceWith(this.childNodes)}).end()}});var vt,xt,bt=/^(none|table(?!-c[ea]).+)/,wt=/^margin/,Tt=RegExp("^("+b+")(.*)$","i"),Ct=RegExp("^("+b+")(?!px)[a-z%]+$","i"),kt=RegExp("^([+-])=("+b+")","i"),Nt={BODY:"block"},Et={position:"absolute",visibility:"hidden",display:"block"},St={letterSpacing:0,fontWeight:400},jt=["Top","Right","Bottom","Left"],Dt=["Webkit","O","Moz","ms"];function At(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=Dt.length;while(i--)if(t=Dt[i]+n,t in e)return t;return r}function Lt(e,t){return e=t||e,"none"===x.css(e,"display")||!x.contains(e.ownerDocument,e)}function Ht(t){return e.getComputedStyle(t,null)}function qt(e,t){var n,r,i,o=[],s=0,a=e.length;for(;a>s;s++)r=e[s],r.style&&(o[s]=H.get(r,"olddisplay"),n=r.style.display,t?(o[s]||"none"!==n||(r.style.display=""),""===r.style.display&&Lt(r)&&(o[s]=H.access(r,"olddisplay",Rt(r.nodeName)))):o[s]||(i=Lt(r),(n&&"none"!==n||!i)&&H.set(r,"olddisplay",i?n:x.css(r,"display"))));for(s=0;a>s;s++)r=e[s],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[s]||"":"none"));return e}x.fn.extend({css:function(e,t){return x.access(this,function(e,t,n){var r,i,o={},s=0;if(x.isArray(t)){for(r=Ht(e),i=t.length;i>s;s++)o[t[s]]=x.css(e,t[s],!1,r);return o}return n!==undefined?x.style(e,t,n):x.css(e,t)},e,t,arguments.length>1)},show:function(){return qt(this,!0)},hide:function(){return qt(this)},toggle:function(e){var t="boolean"==typeof e;return this.each(function(){(t?e:Lt(this))?x(this).show():x(this).hide()})}}),x.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=vt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,s,a=x.camelCase(t),u=e.style;return t=x.cssProps[a]||(x.cssProps[a]=At(u,a)),s=x.cssHooks[t]||x.cssHooks[a],n===undefined?s&&"get"in s&&(i=s.get(e,!1,r))!==undefined?i:u[t]:(o=typeof n,"string"===o&&(i=kt.exec(n))&&(n=(i[1]+1)*i[2]+parseFloat(x.css(e,t)),o="number"),null==n||"number"===o&&isNaN(n)||("number"!==o||x.cssNumber[a]||(n+="px"),x.support.clearCloneStyle||""!==n||0!==t.indexOf("background")||(u[t]="inherit"),s&&"set"in s&&(n=s.set(e,n,r))===undefined||(u[t]=n)),undefined)}},css:function(e,t,n,r){var i,o,s,a=x.camelCase(t);return t=x.cssProps[a]||(x.cssProps[a]=At(e.style,a)),s=x.cssHooks[t]||x.cssHooks[a],s&&"get"in s&&(i=s.get(e,!0,n)),i===undefined&&(i=vt(e,t,r)),"normal"===i&&t in St&&(i=St[t]),""===n||n?(o=parseFloat(i),n===!0||x.isNumeric(o)?o||0:i):i}}),vt=function(e,t,n){var r,i,o,s=n||Ht(e),a=s?s.getPropertyValue(t)||s[t]:undefined,u=e.style;return s&&(""!==a||x.contains(e.ownerDocument,e)||(a=x.style(e,t)),Ct.test(a)&&wt.test(t)&&(r=u.width,i=u.minWidth,o=u.maxWidth,u.minWidth=u.maxWidth=u.width=a,a=s.width,u.width=r,u.minWidth=i,u.maxWidth=o)),a};function Ot(e,t,n){var r=Tt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function Ft(e,t,n,r,i){var o=n===(r?"border":"content")?4:"width"===t?1:0,s=0;for(;4>o;o+=2)"margin"===n&&(s+=x.css(e,n+jt[o],!0,i)),r?("content"===n&&(s-=x.css(e,"padding"+jt[o],!0,i)),"margin"!==n&&(s-=x.css(e,"border"+jt[o]+"Width",!0,i))):(s+=x.css(e,"padding"+jt[o],!0,i),"padding"!==n&&(s+=x.css(e,"border"+jt[o]+"Width",!0,i)));return s}function Pt(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=Ht(e),s=x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=vt(e,t,o),(0>i||null==i)&&(i=e.style[t]),Ct.test(i))return i;r=s&&(x.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return i+Ft(e,t,n||(s?"border":"content"),r,o)+"px"}function Rt(e){var t=o,n=Nt[e];return n||(n=Mt(e,t),"none"!==n&&n||(xt=(xt||x("', - swf: '', - error: '

The requested content cannot be loaded.
Please try again later.

', - closeBtn: '
', - next: '', - prev: '' - }, - - // Properties for each animation type - // Opening fancyBox - openEffect: 'fade', // 'elastic', 'fade' or 'none' - openSpeed: 250, - openEasing: 'swing', - openOpacity: true, - openMethod: 'zoomIn', - - // Closing fancyBox - closeEffect: 'fade', // 'elastic', 'fade' or 'none' - closeSpeed: 250, - closeEasing: 'swing', - closeOpacity: true, - closeMethod: 'zoomOut', - - // Changing next gallery item - nextEffect: 'elastic', // 'elastic', 'fade' or 'none' - nextSpeed: 300, - nextEasing: 'swing', - nextMethod: 'changeIn', - - // Changing previous gallery item - prevEffect: 'elastic', // 'elastic', 'fade' or 'none' - prevSpeed: 300, - prevEasing: 'swing', - prevMethod: 'changeOut', - - // Enabled helpers - helpers: { - overlay: { - speedIn: 0, - speedOut: 300, - opacity: 0.8, - css: { - cursor: 'pointer' - }, - closeClick: true - }, - title: { - type: 'float' // 'float', 'inside', 'outside' or 'over' - } - }, - - // Callbacks - onCancel: $.noop, // If canceling - beforeLoad: $.noop, // Before loading - afterLoad: $.noop, // After loading - beforeShow: $.noop, // Before changing in current item - afterShow: $.noop, // After opening - beforeClose: $.noop, // Before closing - afterClose: $.noop // After closing - }, - - //Current state - group: {}, // Selected group - opts: {}, // Group options - coming: null, // Element being loaded - current: null, // Currently loaded element - isOpen: false, // Is currently open - isOpened: false, // Have been fully opened at least once - wrap: null, - outer: null, - inner: null, - - player: { - timer: null, - isActive: false - }, - - // Loaders - ajaxLoad: null, - imgPreload: null, - - // Some collections - transitions: {}, - helpers: {}, - - /* - * Static methods - */ - - open: function (group, opts) { - // Normalize group - if (!$.isArray(group)) { - group = [group]; - } - - if (!group.length) { - return; - } - - //Kill existing instances - F.close(true); - - //Extend the defaults - F.opts = $.extend(true, {}, F.defaults, opts); - F.group = group; - - F._start(F.opts.index || 0); - }, - - cancel: function () { - if (F.coming && false === F.trigger('onCancel')) { - return; - } - - F.coming = null; - - F.hideLoading(); - - if (F.ajaxLoad) { - F.ajaxLoad.abort(); - } - - F.ajaxLoad = null; - - if (F.imgPreload) { - F.imgPreload.onload = F.imgPreload.onabort = F.imgPreload.onerror = null; - } - }, - - close: function (a) { - F.cancel(); - - if (!F.current || false === F.trigger('beforeClose')) { - return; - } - - F.unbindEvents(); - - //If forced or is still opening then remove immediately - if (!F.isOpen || (a && a[0] === true)) { - $(".fancybox-wrap").stop().trigger('onReset').remove(); - - F._afterZoomOut(); - - } else { - F.isOpen = F.isOpened = false; - - $(".fancybox-item").remove(); - - F.wrap.stop(true).removeClass('fancybox-opened'); - F.inner.css('overflow', 'hidden'); - - F.transitions[F.current.closeMethod](); - } - }, - - // Start/stop slideshow - play: function (a) { - var clear = function () { - clearTimeout(F.player.timer); - }, - set = function () { - clear(); - - if (F.current && F.player.isActive) { - F.player.timer = setTimeout(F.next, F.current.playSpeed); - } - }, - stop = function () { - clear(); - - $('body').unbind('.player'); - - F.player.isActive = false; - - F.trigger('onPlayEnd'); - }, - start = function () { - if (F.current && (F.current.loop || F.current.index < F.group.length - 1)) { - F.player.isActive = true; - - $('body').bind({ - 'afterShow.player onUpdate.player': set, - 'onCancel.player beforeClose.player': stop, - 'beforeLoad.player': clear - }); - - set(); - - F.trigger('onPlayStart'); - } - }; - - if (F.player.isActive || (a && a[0] === false)) { - stop(); - } else { - start(); - } - }, - - next: function () { - if (F.current) { - F.jumpto(F.current.index + 1); - } - }, - - prev: function () { - if (F.current) { - F.jumpto(F.current.index - 1); - } - }, - - jumpto: function (index) { - if (!F.current) { - return; - } - - index = parseInt(index, 10); - - if (F.group.length > 1 && F.current.loop) { - if (index >= F.group.length) { - index = 0; - - } else if (index < 0) { - index = F.group.length - 1; - } - } - - if (typeof F.group[index] !== 'undefined') { - F.cancel(); - - F._start(index); - } - }, - - reposition: function (a) { - if (F.isOpen) { - F.wrap.css(F._getPosition(a)); - } - }, - - update: function () { - if (F.isOpen) { - // It's a very bad idea to attach handlers to the window scroll event, run this code after a delay - if (!didResize) { - resizeTimer = setInterval(function () { - if (didResize) { - didResize = false; - - clearTimeout(resizeTimer); - - if (F.current) { - if (F.current.autoSize) { - F.inner.height('auto'); - F.current.height = F.inner.height(); - } - - F._setDimension(); - - if (F.current.canGrow) { - F.inner.height('auto'); - } - - F.reposition(); - - F.trigger('onUpdate'); - } - } - }, 100); - } - - didResize = true; - } - }, - - toggle: function () { - if (F.isOpen) { - F.current.fitToView = !F.current.fitToView; - - F.update(); - } - }, - - hideLoading: function () { - $("#fancybox-loading").remove(); - }, - - showLoading: function () { - F.hideLoading(); - - $('
').click(F.cancel).appendTo('body'); - }, - - getViewport: function () { - return { - x: W.scrollLeft(), - y: W.scrollTop(), - w: W.width(), - h: W.height() - }; - }, - - // Unbind the keyboard / clicking actions - unbindEvents: function () { - if (F.wrap) { - F.wrap.unbind('.fb'); - } - - D.unbind('.fb'); - W.unbind('.fb'); - }, - - bindEvents: function () { - var current = F.current, - keys = current.keys; - - if (!current) { - return; - } - - W.bind('resize.fb, orientationchange.fb', F.update); - - if (keys) { - D.bind('keydown.fb', function (e) { - var code; - - // Ignore key combinations and key events within form elements - if (!e.ctrlKey && !e.altKey && !e.shiftKey && !e.metaKey && $.inArray(e.target.tagName.toLowerCase(), ['input', 'textarea', 'select', 'button']) < 0) { - code = e.keyCode; - - if ($.inArray(code, keys.close) > -1) { - F.close(); - e.preventDefault(); - - } else if ($.inArray(code, keys.next) > -1) { - F.next(); - e.preventDefault(); - - } else if ($.inArray(code, keys.prev) > -1) { - F.prev(); - e.preventDefault(); - } - } - }); - } - - if ($.fn.mousewheel && current.mouseWheel && F.group.length > 1) { - F.wrap.bind('mousewheel.fb', function (e, delta) { - var target = $(e.target).get(0); - - if (target.clientHeight === 0 || target.scrollHeight === target.clientHeight) { - e.preventDefault(); - - F[delta > 0 ? 'prev' : 'next'](); - } - }); - } - }, - - trigger: function (event) { - var ret, obj = F[ $.inArray(event, ['onCancel', 'beforeLoad', 'afterLoad']) > -1 ? 'coming' : 'current' ]; - - if (!obj) { - return; - } - - if ($.isFunction( obj[event] )) { - ret = obj[event].apply(obj, Array.prototype.slice.call(arguments, 1)); - } - - if (ret === false) { - return false; - } - - if (obj.helpers) { - $.each(obj.helpers, function (helper, opts) { - if (opts && typeof F.helpers[helper] !== 'undefined' && $.isFunction(F.helpers[helper][event])) { - F.helpers[helper][event](opts, obj); - } - }); - } - - $.event.trigger(event + '.fb'); - }, - - isImage: function (str) { - return str && str.match(/\.(jpg|gif|png|bmp|jpeg)(.*)?$/i); - }, - - isSWF: function (str) { - return str && str.match(/\.(swf)(.*)?$/i); - }, - - _start: function (index) { - var coming = {}, - element = F.group[index] || null, - isDom, - href, - type, - rez; - - if (typeof element === 'object' && (element.nodeType || element instanceof $)) { - isDom = true; - - if ($.metadata) { - coming = $(element).metadata(); - } - } - - coming = $.extend(true, {}, F.opts, {index : index, element : element}, ($.isPlainObject(element) ? element : coming)); - - // Re-check overridable options - $.each(['href', 'title', 'content', 'type'], function(i,v) { - coming[v] = F.opts[ v ] || (isDom && $(element).attr( v )) || coming[ v ] || null; - }); - - // Convert margin property to array - top, right, bottom, left - if (typeof coming.margin === 'number') { - coming.margin = [coming.margin, coming.margin, coming.margin, coming.margin]; - } - - // 'modal' propery is just a shortcut - if (coming.modal) { - $.extend(true, coming, { - closeBtn : false, - closeClick: false, - nextClick : false, - arrows : false, - mouseWheel : false, - keys : null, - helpers: { - overlay : { - css: { - cursor : 'auto' - }, - closeClick : false - } - } - }); - } - - //Give a chance for callback or helpers to update coming item (type, title, etc) - F.coming = coming; - - if (false === F.trigger('beforeLoad')) { - F.coming = null; - return; - } - - type = coming.type; - href = coming.href; - - ///Check if content type is set, if not, try to get - if (!type) { - if (isDom) { - rez = $(element).data('fancybox-type'); - - if (!rez && element.className) { - rez = element.className.match(/fancybox\.(\w+)/); - type = rez ? rez[1] : null; - } - } - - if (!type && href) { - if (F.isImage(href)) { - type = 'image'; - - } else if (F.isSWF(href)) { - type = 'swf'; - - } else if (href.match(/^#/)) { - type = 'inline'; - } - } - - // ...if not - display element itself - if (!type) { - type = isDom ? 'inline' : 'html'; - } - - coming.type = type; - } - - // Check before try to load; 'inline' and 'html' types need content, others - href - if (type === 'inline' || type === 'html') { - coming.content = coming.content || (type === 'inline' && href ? $(href) : element); - - if (!coming.content.length) { - type = null; - } - - } else { - coming.href = href || element; - - if (!coming.href) { - type = null; - } - } - - /* - Add reference to the group, so it`s possible to access from callbacks, example: - - afterLoad : function() { - this.title = 'Image ' + (this.index + 1) + ' of ' + this.group.length + (this.title ? ' - ' + this.title : ''); - } - - */ - - coming.group = F.group; - - if (type === 'image') { - F._loadImage(); - - } else if (type === 'ajax') { - F._loadAjax(); - - } else if (type) { - F._afterLoad(); - - } else { - F._error( 'type' ); - } - }, - - _error: function ( type ) { - $.extend(F.coming, { - type : 'html', - autoSize : true, - minHeight : '0', - hasError : type, - content : F.coming.tpl.error - }); - - F._afterLoad(); - }, - - _loadImage: function () { - // Reset preload image so it is later possible to check "complete" property - F.imgPreload = new Image(); - - F.imgPreload.onload = function () { - this.onload = this.onerror = null; - - F.coming.width = this.width; - F.coming.height = this.height; - - F._afterLoad(); - }; - - F.imgPreload.onerror = function () { - this.onload = this.onerror = null; - - F._error( 'image' ); - }; - - F.imgPreload.src = F.coming.href; - - if (!F.imgPreload.complete) { - F.showLoading(); - } - }, - - _loadAjax: function () { - F.showLoading(); - - F.ajaxLoad = $.ajax($.extend({}, F.coming.ajax, { - url: F.coming.href, - error: function (jqXHR, textStatus) { - if (textStatus !== 'abort') { - F._error( 'ajax', jqXHR ); - - } else { - F.hideLoading(); - } - }, - success: function (data, textStatus) { - if (textStatus === 'success') { - F.coming.content = data; - - F._afterLoad(); - } - } - })); - }, - - _preload : function() { - var group = F.group, - index = F.current.index, - load = function(href) { - if (href && F.isImage(href)) { - new Image().src = href; - } - }; - - if (group.length > 1) { - load( $( group[ index + 1 ] || group[ 0 ] ).attr('href') ); - load( $( group[ index - 1 ] || group[ group.length - 1 ] ).attr('href') ); - } - }, - - _afterLoad: function () { - F.hideLoading(); - - if (!F.coming || false === F.trigger('afterLoad', F.current)) { - F.coming = false; - - return; - } - - if (F.isOpened) { - $(".fancybox-item").remove(); - - F.wrap.stop(true).removeClass('fancybox-opened'); - F.inner.css('overflow', 'hidden'); - - F.transitions[F.current.prevMethod](); - - } else { - $(".fancybox-wrap").stop().trigger('onReset').remove(); - - F.trigger('afterClose'); - } - - F.unbindEvents(); - - F.isOpen = false; - F.current = F.coming; - F.coming = false; - - //Build the neccessary markup - F.wrap = $(F.current.tpl.wrap).addClass('fancybox-tmp ' + F.current.wrapCSS).appendTo('body'); - F.outer = $('.fancybox-outer', F.wrap).css('padding', F.current.padding + 'px'); - F.inner = $('.fancybox-inner', F.wrap); - - F._setContent(); - - //Give a chance for helpers or callbacks to update elements - F.trigger('beforeShow'); - - //Set initial dimensions and hide - F._setDimension(); - - F.wrap.hide().removeClass('fancybox-tmp'); - - F.bindEvents(); - F._preload(); - - F.transitions[ F.isOpened ? F.current.nextMethod : F.current.openMethod ](); - }, - - _setContent: function () { - var content, loadingBay, current = F.current, - type = current.type; - - switch (type) { - case 'inline': - case 'ajax': - case 'html': - content = current.content; - - if (type === 'inline' && content instanceof $) { - content = content.show().detach(); - - if (content.parent().hasClass('fancybox-inner')) { - content.parents('.fancybox-wrap').trigger('onReset').remove(); - } - - $(F.wrap).bind('onReset', function () { - content.appendTo('body').hide(); - }); - } - - if (current.autoSize) { - loadingBay = $('
').appendTo($("body")).append(content); - - current.width = loadingBay.outerWidth(); - current.height = loadingBay.outerHeight(true); - - content = loadingBay.contents().detach(); - - loadingBay.remove(); - } - - break; - - case 'image': - content = current.tpl.image.replace('{href}', current.href); - - current.aspectRatio = true; - break; - - case 'swf': - content = current.tpl.swf.replace(/\{width\}/g, current.width).replace(/\{height\}/g, current.height).replace(/\{href\}/g, current.href); - break; - - case 'iframe': - content = current.tpl.iframe.replace('{href}', current.href).replace('{scrolling}', current.scrolling).replace('{rnd}', new Date().getTime()); - break; - } - - if ($.inArray(type, ['image', 'swf', 'iframe']) > -1) { - current.autoSize = false; - current.scrolling = false; - } - - F.inner.append(content); - }, - - _setDimension: function () { - var wrap = F.wrap, - outer = F.outer, - inner = F.inner, - current = F.current, - viewport = F.getViewport(), - margin = current.margin, - padding2 = current.padding * 2, - width = current.width + padding2, - height = current.height + padding2, - ratio = current.width / current.height, - - maxWidth = current.maxWidth, - maxHeight = current.maxHeight, - minWidth = current.minWidth, - minHeight = current.minHeight, - height_, - space; - - viewport.w -= (margin[1] + margin[3]); - viewport.h -= (margin[0] + margin[2]); - - if (width.toString().indexOf('%') > -1) { - width = ((viewport.w * parseFloat(width)) / 100); - } - - if (height.toString().indexOf('%') > -1) { - height = ((viewport.h * parseFloat(height)) / 100); - } - - if (current.fitToView) { - maxWidth = Math.min(viewport.w, maxWidth); - maxHeight = Math.min(viewport.h, maxHeight); - } - - minWidth = Math.min(width, minWidth); - minHeight = Math.min(width, minHeight); - - maxWidth = Math.max(minWidth, maxWidth); - maxHeight = Math.max(minHeight, maxHeight); - - if (current.aspectRatio) { - if (width > maxWidth) { - width = maxWidth; - height = ((width - padding2) / ratio) + padding2; - } - - if (height > maxHeight) { - height = maxHeight; - width = ((height - padding2) * ratio) + padding2; - } - - if (width < minWidth) { - width = minWidth; - height = ((width - padding2) / ratio) + padding2; - } - - if (height < minHeight) { - height = minHeight; - width = ((height - padding2) * ratio) + padding2; - } - - } else { - width = Math.max(minWidth, Math.min(width, maxWidth)); - height = Math.max(minHeight, Math.min(height, maxHeight)); - } - - width = Math.round(width); - height = Math.round(height); - - //Reset dimensions - $(wrap.add(outer).add(inner)).width('auto').height('auto'); - - inner.width(width - padding2).height(height - padding2); - wrap.width(width); - - height_ = wrap.height(); // Real wrap height - - //Fit wrapper inside - if (width > maxWidth || height_ > maxHeight) { - while ((width > maxWidth || height_ > maxHeight) && width > minWidth && height_ > minHeight) { - height = height - 10; - - if (current.aspectRatio) { - width = Math.round(((height - padding2) * ratio) + padding2); - - if (width < minWidth) { - width = minWidth; - height = ((width - padding2) / ratio) + padding2; - } - - } else { - width = width - 10; - } - - inner.width(width - padding2).height(height - padding2); - wrap.width(width); - - height_ = wrap.height(); - } - } - - current.dim = { - width: width, - height: height_ - }; - - current.canGrow = current.autoSize && height > minHeight && height < maxHeight; - current.canShrink = false; - current.canExpand = false; - - if ((width - padding2) < current.width || (height - padding2) < current.height) { - current.canExpand = true; - - } else if ((width > viewport.w || height_ > viewport.h) && width > minWidth && height > minHeight) { - current.canShrink = true; - } - - space = height_ - padding2; - - F.innerSpace = space - inner.height(); - F.outerSpace = space - outer.height(); - }, - - _getPosition: function (a) { - var current = F.current, - viewport = F.getViewport(), - margin = current.margin, - width = F.wrap.width() + margin[1] + margin[3], - height = F.wrap.height() + margin[0] + margin[2], - rez = { - position: 'absolute', - top: margin[0] + viewport.y, - left: margin[3] + viewport.x - }; - - if (current.fixed && (!a || a[0] === false) && height <= viewport.h && width <= viewport.w) { - rez = { - position: 'fixed', - top: margin[0], - left: margin[3] - }; - } - - rez.top = Math.ceil(Math.max(rez.top, rez.top + ((viewport.h - height) * current.topRatio))) + 'px'; - rez.left = Math.ceil(Math.max(rez.left, rez.left + ((viewport.w - width) * 0.5))) + 'px'; - - return rez; - }, - - _afterZoomIn: function () { - var current = F.current; - - F.isOpen = F.isOpened = true; - - F.wrap.addClass('fancybox-opened').css('overflow', 'visible'); - - F.update(); - - F.inner.css('overflow', current.scrolling === 'auto' ? 'auto' : (current.scrolling === 'yes' ? 'scroll' : 'hidden')); - - //Assign a click event - if (current.closeClick || current.nextClick) { - F.inner.css('cursor', 'pointer').bind('click.fb', current.nextClick ? F.next : F.close); - } - - //Create a close button - if (current.closeBtn) { - $(current.tpl.closeBtn).appendTo(F.wrap).bind('click.fb', F.close); - } - - //Create navigation arrows - if (current.arrows && F.group.length > 1) { - if (current.loop || current.index > 0) { - $(current.tpl.prev).appendTo(F.wrap).bind('click.fb', F.prev); - } - - if (current.loop || current.index < F.group.length - 1) { - $(current.tpl.next).appendTo(F.wrap).bind('click.fb', F.next); - } - } - - F.trigger('afterShow'); - - if (F.opts.autoPlay && !F.player.isActive) { - F.opts.autoPlay = false; - - F.play(); - } - }, - - _afterZoomOut: function () { - F.trigger('afterClose'); - - F.wrap.trigger('onReset').remove(); - - $.extend(F, { - group: {}, - opts: {}, - current: null, - isOpened: false, - isOpen: false, - wrap: null, - outer: null, - inner: null - }); - } - }); - - /* - * Default transitions - */ - - F.transitions = { - getOrigPosition: function () { - var element = F.current.element, - pos = {}, - width = 50, - height = 50, - image, viewport; - - if (element && element.nodeName && $(element).is(':visible')) { - image = $(element).find('img:first'); - - if (image.length) { - pos = image.offset(); - width = image.outerWidth(); - height = image.outerHeight(); - - } else { - pos = $(element).offset(); - } - - } else { - viewport = F.getViewport(); - pos.top = viewport.y + (viewport.h - height) * 0.5; - pos.left = viewport.x + (viewport.w - width) * 0.5; - } - - pos = { - top: Math.ceil(pos.top) + 'px', - left: Math.ceil(pos.left) + 'px', - width: Math.ceil(width) + 'px', - height: Math.ceil(height) + 'px' - }; - - return pos; - }, - - step: function (now, fx) { - var ratio, innerValue, outerValue; - - if (fx.prop === 'width' || fx.prop === 'height') { - innerValue = outerValue = Math.ceil(now - (F.current.padding * 2)); - - if (fx.prop === 'height') { - ratio = (now - fx.start) / (fx.end - fx.start); - - if (fx.start > fx.end) { - ratio = 1 - ratio; - } - - innerValue -= F.innerSpace * ratio; - outerValue -= F.outerSpace * ratio; - } - - F.inner[fx.prop](innerValue); - F.outer[fx.prop](outerValue); - } - }, - - zoomIn: function () { - var wrap = F.wrap, - current = F.current, - startPos, - endPos, - dim = current.dim; - - if (current.openEffect === 'elastic') { - endPos = $.extend({}, dim, F._getPosition(true)); - - //Remove "position" property - delete endPos.position; - - startPos = this.getOrigPosition(); - - if (current.openOpacity) { - startPos.opacity = 0; - endPos.opacity = 1; - } - - wrap.css(startPos).show().animate(endPos, { - duration: current.openSpeed, - easing: current.openEasing, - step: this.step, - complete: F._afterZoomIn - }); - - } else { - wrap.css($.extend({}, dim, F._getPosition())); - - if (current.openEffect === 'fade') { - wrap.fadeIn(current.openSpeed, F._afterZoomIn); - - } else { - wrap.show(); - F._afterZoomIn(); - } - } - }, - - zoomOut: function () { - var wrap = F.wrap, - current = F.current, - endPos; - - if (current.closeEffect === 'elastic') { - if (wrap.css('position') === 'fixed') { - wrap.css(F._getPosition(true)); - } - - endPos = this.getOrigPosition(); - - if (current.closeOpacity) { - endPos.opacity = 0; - } - - wrap.animate(endPos, { - duration: current.closeSpeed, - easing: current.closeEasing, - step: this.step, - complete: F._afterZoomOut - }); - - } else { - wrap.fadeOut(current.closeEffect === 'fade' ? current.closeSpeed : 0, F._afterZoomOut); - } - }, - - changeIn: function () { - var wrap = F.wrap, - current = F.current, - startPos; - - if (current.nextEffect === 'elastic') { - startPos = F._getPosition(true); - startPos.opacity = 0; - startPos.top = (parseInt(startPos.top, 10) - 200) + 'px'; - - wrap.css(startPos).show().animate({ - opacity: 1, - top: '+=200px' - }, { - duration: current.nextSpeed, - complete: F._afterZoomIn - }); - - } else { - wrap.css(F._getPosition()); - - if (current.nextEffect === 'fade') { - wrap.hide().fadeIn(current.nextSpeed, F._afterZoomIn); - - } else { - wrap.show(); - F._afterZoomIn(); - } - } - }, - - changeOut: function () { - var wrap = F.wrap, - current = F.current, - cleanUp = function () { - $(this).trigger('onReset').remove(); - }; - - wrap.removeClass('fancybox-opened'); - - if (current.prevEffect === 'elastic') { - wrap.animate({ - 'opacity': 0, - top: '+=200px' - }, { - duration: current.prevSpeed, - complete: cleanUp - }); - - } else { - wrap.fadeOut(current.prevEffect === 'fade' ? current.prevSpeed : 0, cleanUp); - } - } - }; - - /* - * Overlay helper - */ - - F.helpers.overlay = { - overlay: null, - - update: function () { - var width, scrollWidth, offsetWidth; - - //Reset width/height so it will not mess - this.overlay.width(0).height(0); - - if ($.browser.msie) { - scrollWidth = Math.max(document.documentElement.scrollWidth, document.body.scrollWidth); - offsetWidth = Math.max(document.documentElement.offsetWidth, document.body.offsetWidth); - - width = scrollWidth < offsetWidth ? W.width() : scrollWidth; - - } else { - width = D.width(); - } - - this.overlay.width(width).height(D.height()); - }, - - beforeShow: function (opts) { - if (this.overlay) { - return; - } - - this.overlay = $('
').css(opts.css || { - background: 'black' - }).appendTo('body'); - - this.update(); - - if (opts.closeClick) { - this.overlay.bind('click.fb', F.close); - } - - W.bind("resize.fb", $.proxy(this.update, this)); - - this.overlay.fadeTo(opts.speedIn || "fast", opts.opacity || 1); - }, - - onUpdate: function () { - //Update as content may change document dimensions - this.update(); - }, - - afterClose: function (opts) { - if (this.overlay) { - this.overlay.fadeOut(opts.speedOut || "fast", function () { - $(this).remove(); - }); - } - - this.overlay = null; - } - }; - - /* - * Title helper - */ - - F.helpers.title = { - beforeShow: function (opts) { - var title, text = F.current.title; - - if (text) { - title = $('
' + text + '
').appendTo('body'); - - if (opts.type === 'float') { - //This helps for some browsers - title.width(title.width()); - - title.wrapInner(''); - - //Increase bottom margin so this title will also fit into viewport - F.current.margin[2] += Math.abs(parseInt(title.css('margin-bottom'), 10)); - } - - title.appendTo(opts.type === 'over' ? F.inner : (opts.type === 'outside' ? F.wrap : F.outer)); - } - } - }; - - // jQuery plugin initialization - $.fn.fancybox = function (options) { - var opts = options || {}, - selector = this.selector || ''; - - function run(e) { - var group = [], relType, relVal, rel = this.rel; - - if (!(e.ctrlKey || e.altKey || e.shiftKey || e.metaKey)) { - e.preventDefault(); - - relVal = $(this).data('fancybox-group'); - - // Check if element has 'data-fancybox-group' attribute, if not - use 'rel' - if (typeof relVal !== 'undefined') { - relType = relVal ? 'data-fancybox-group' : false; - - } else if (rel && rel !== '' && rel !== 'nofollow') { - relVal = rel; - relType = 'rel'; - } - - if (relType) { - group = selector.length ? $(selector).filter('[' + relType + '="' + relVal + '"]') : $('[' + relType + '="' + relVal + '"]'); - } - - if (group.length) { - opts.index = group.index(this); - - F.open(group.get(), opts); - - } else { - F.open(this, opts); - } - } - } - - if (selector) { - D.undelegate(selector, 'click.fb-start').delegate(selector, 'click.fb-start', run); - - } else { - $(this).unbind('click.fb-start').bind('click.fb-start', run); - } - - return this; - }; - -}(window, document, jQuery)); \ No newline at end of file diff --git a/js/libs/plugins/fancybox/jquery.fancybox.pack.js b/js/libs/plugins/fancybox/jquery.fancybox.pack.js deleted file mode 100755 index ff342499..00000000 --- a/js/libs/plugins/fancybox/jquery.fancybox.pack.js +++ /dev/null @@ -1,32 +0,0 @@ -/*! fancyBox v2.0.4 fancyapps.com | fancyapps.com/fancybox/#license */ -(function(u,q,e){var l=e(u),r=e(q),a=e.fancybox=function(){a.open.apply(this,arguments)},s=!1,t=null;e.extend(a,{version:"2.0.4",defaults:{padding:15,margin:20,width:800,height:600,minWidth:200,minHeight:200,maxWidth:9999,maxHeight:9999,autoSize:!0,fitToView:!0,aspectRatio:!1,topRatio:0.5,fixed:!e.browser.msie||6
',image:'',iframe:'',swf:'', -error:'

The requested content cannot be loaded.
Please try again later.

',closeBtn:'
',next:'',prev:''},openEffect:"fade",openSpeed:250,openEasing:"swing",openOpacity:!0,openMethod:"zoomIn",closeEffect:"fade",closeSpeed:250,closeEasing:"swing",closeOpacity:!0,closeMethod:"zoomOut", -nextEffect:"elastic",nextSpeed:300,nextEasing:"swing",nextMethod:"changeIn",prevEffect:"elastic",prevSpeed:300,prevEasing:"swing",prevMethod:"changeOut",helpers:{overlay:{speedIn:0,speedOut:300,opacity:0.8,css:{cursor:"pointer"},closeClick:!0},title:{type:"float"}}},group:{},opts:{},coming:null,current:null,isOpen:!1,isOpened:!1,wrap:null,outer:null,inner:null,player:{timer:null,isActive:!1},ajaxLoad:null,imgPreload:null,transitions:{},helpers:{},open:function(b,c){e.isArray(b)||(b=[b]);if(b.length)a.close(!0), -a.opts=e.extend(!0,{},a.defaults,c),a.group=b,a._start(a.opts.index||0)},cancel:function(){if(!(a.coming&&!1===a.trigger("onCancel"))&&(a.coming=null,a.hideLoading(),a.ajaxLoad&&a.ajaxLoad.abort(),a.ajaxLoad=null,a.imgPreload))a.imgPreload.onload=a.imgPreload.onabort=a.imgPreload.onerror=null},close:function(b){a.cancel();if(a.current&&!1!==a.trigger("beforeClose"))a.unbindEvents(),!a.isOpen||b&&!0===b[0]?(e(".fancybox-wrap").stop().trigger("onReset").remove(),a._afterZoomOut()):(a.isOpen=a.isOpened= -!1,e(".fancybox-item").remove(),a.wrap.stop(!0).removeClass("fancybox-opened"),a.inner.css("overflow","hidden"),a.transitions[a.current.closeMethod]())},play:function(b){var c=function(){clearTimeout(a.player.timer)},d=function(){c();if(a.current&&a.player.isActive)a.player.timer=setTimeout(a.next,a.current.playSpeed)},g=function(){c();e("body").unbind(".player");a.player.isActive=!1;a.trigger("onPlayEnd")};if(a.player.isActive||b&&!1===b[0])g();else if(a.current&&(a.current.loop||a.current.index< -a.group.length-1))a.player.isActive=!0,e("body").bind({"afterShow.player onUpdate.player":d,"onCancel.player beforeClose.player":g,"beforeLoad.player":c}),d(),a.trigger("onPlayStart")},next:function(){a.current&&a.jumpto(a.current.index+1)},prev:function(){a.current&&a.jumpto(a.current.index-1)},jumpto:function(b){a.current&&(b=parseInt(b,10),1=a.group.length?b=0:0>b&&(b=a.group.length-1)),"undefined"!==typeof a.group[b]&&(a.cancel(),a._start(b)))},reposition:function(b){a.isOpen&& -a.wrap.css(a._getPosition(b))},update:function(){a.isOpen&&(s||(t=setInterval(function(){if(s&&(s=!1,clearTimeout(t),a.current)){if(a.current.autoSize)a.inner.height("auto"),a.current.height=a.inner.height();a._setDimension();a.current.canGrow&&a.inner.height("auto");a.reposition();a.trigger("onUpdate")}},100)),s=!0)},toggle:function(){if(a.isOpen)a.current.fitToView=!a.current.fitToView,a.update()},hideLoading:function(){e("#fancybox-loading").remove()},showLoading:function(){a.hideLoading();e('
').click(a.cancel).appendTo("body")}, -getViewport:function(){return{x:l.scrollLeft(),y:l.scrollTop(),w:l.width(),h:l.height()}},unbindEvents:function(){a.wrap&&a.wrap.unbind(".fb");r.unbind(".fb");l.unbind(".fb")},bindEvents:function(){var b=a.current,c=b.keys;b&&(l.bind("resize.fb, orientationchange.fb",a.update),c&&r.bind("keydown.fb",function(b){var g;if(!b.ctrlKey&&!b.altKey&&!b.shiftKey&&!b.metaKey&&0>e.inArray(b.target.tagName.toLowerCase(),["input","textarea","select","button"]))g=b.keyCode,-1').appendTo(e("body")).append(b),d.width=c.outerWidth(),d.height=c.outerHeight(!0),b=c.contents().detach(),c.remove();break;case "image":b=d.tpl.image.replace("{href}", -d.href);d.aspectRatio=!0;break;case "swf":b=d.tpl.swf.replace(/\{width\}/g,d.width).replace(/\{height\}/g,d.height).replace(/\{href\}/g,d.href);break;case "iframe":b=d.tpl.iframe.replace("{href}",d.href).replace("{scrolling}",d.scrolling).replace("{rnd}",(new Date).getTime())}if(-1o&&(h=o,j=(h-i)/l+i),j>m&&(j=m,h=(j-i)*l+i),ho||k>m)for(;(h>o||k>m)&&h>n&&k>p;)j-=10,g.aspectRatio?(h=Math.round((j-i)*l+i),hp&&jf.w||k>f.h)&&h>n&&j>p)g.canShrink=!0;b=k-i;a.innerSpace=b-d.height();a.outerSpace=b- -c.height()},_getPosition:function(b){var c=a.current,d=a.getViewport(),e=c.margin,f=a.wrap.width()+e[1]+e[3],k=a.wrap.height()+e[0]+e[2],i={position:"absolute",top:e[0]+d.y,left:e[3]+d.x};if(c.fixed&&(!b||!1===b[0])&&k<=d.h&&f<=d.w)i={position:"fixed",top:e[0],left:e[3]};i.top=Math.ceil(Math.max(i.top,i.top+(d.h-k)*c.topRatio))+"px";i.left=Math.ceil(Math.max(i.left,i.left+0.5*(d.w-f)))+"px";return i},_afterZoomIn:function(){var b=a.current;a.isOpen=a.isOpened=!0;a.wrap.addClass("fancybox-opened").css("overflow", -"visible");a.update();a.inner.css("overflow","auto"===b.scrolling?"auto":"yes"===b.scrolling?"scroll":"hidden");if(b.closeClick||b.nextClick)a.inner.css("cursor","pointer").bind("click.fb",b.nextClick?a.next:a.close);b.closeBtn&&e(b.tpl.closeBtn).appendTo(a.wrap).bind("click.fb",a.close);b.arrows&&1c.end&&(d=1-d),e-=a.innerSpace*d,f-=a.outerSpace*d),a.inner[c.prop](e),a.outer[c.prop](f)},zoomIn:function(){var b=a.wrap,c=a.current,d,g;d=c.dim;if("elastic"===c.openEffect){g=e.extend({}, -d,a._getPosition(!0));delete g.position;d=this.getOrigPosition();if(c.openOpacity)d.opacity=0,g.opacity=1;b.css(d).show().animate(g,{duration:c.openSpeed,easing:c.openEasing,step:this.step,complete:a._afterZoomIn})}else b.css(e.extend({},d,a._getPosition())),"fade"===c.openEffect?b.fadeIn(c.openSpeed,a._afterZoomIn):(b.show(),a._afterZoomIn())},zoomOut:function(){var b=a.wrap,c=a.current,d;if("elastic"===c.closeEffect){"fixed"===b.css("position")&&b.css(a._getPosition(!0));d=this.getOrigPosition(); -if(c.closeOpacity)d.opacity=0;b.animate(d,{duration:c.closeSpeed,easing:c.closeEasing,step:this.step,complete:a._afterZoomOut})}else b.fadeOut("fade"===c.closeEffect?c.closeSpeed:0,a._afterZoomOut)},changeIn:function(){var b=a.wrap,c=a.current,d;"elastic"===c.nextEffect?(d=a._getPosition(!0),d.opacity=0,d.top=parseInt(d.top,10)-200+"px",b.css(d).show().animate({opacity:1,top:"+=200px"},{duration:c.nextSpeed,complete:a._afterZoomIn})):(b.css(a._getPosition()),"fade"===c.nextEffect?b.hide().fadeIn(c.nextSpeed, -a._afterZoomIn):(b.show(),a._afterZoomIn()))},changeOut:function(){var b=a.wrap,c=a.current,d=function(){e(this).trigger("onReset").remove()};b.removeClass("fancybox-opened");"elastic"===c.prevEffect?b.animate({opacity:0,top:"+=200px"},{duration:c.prevSpeed,complete:d}):b.fadeOut("fade"===c.prevEffect?c.prevSpeed:0,d)}};a.helpers.overlay={overlay:null,update:function(){var a,c;this.overlay.width(0).height(0);e.browser.msie?(a=Math.max(q.documentElement.scrollWidth,q.body.scrollWidth),c=Math.max(q.documentElement.offsetWidth, -q.body.offsetWidth),a=a').css(b.css||{background:"black"}).appendTo("body"),this.update(),b.closeClick&&this.overlay.bind("click.fb",a.close),l.bind("resize.fb",e.proxy(this.update,this)),this.overlay.fadeTo(b.speedIn||"fast",b.opacity||1)},onUpdate:function(){this.update()},afterClose:function(a){this.overlay&&this.overlay.fadeOut(a.speedOut|| -"fast",function(){e(this).remove()});this.overlay=null}};a.helpers.title={beforeShow:function(b){var c;if(c=a.current.title)c=e('
'+c+"
").appendTo("body"),"float"===b.type&&(c.width(c.width()),c.wrapInner(''),a.current.margin[2]+=Math.abs(parseInt(c.css("margin-bottom"),10))),c.appendTo("over"===b.type?a.inner:"outside"===b.type?a.wrap:a.outer)}};e.fn.fancybox=function(b){function c(b){var c=[],i,h=this.rel; -if(!b.ctrlKey&&!b.altKey&&!b.shiftKey&&!b.metaKey)b.preventDefault(),b=e(this).data("fancybox-group"),"undefined"!==typeof b?i=b?"data-fancybox-group":!1:h&&""!==h&&"nofollow"!==h&&(b=h,i="rel"),i&&(c=g.length?e(g).filter("["+i+'="'+b+'"]'):e("["+i+'="'+b+'"]')),c.length?(d.index=c.index(this),a.open(c.get(),d)):a.open(this,d)}var d=b||{},g=this.selector||"";g?r.undelegate(g,"click.fb-start").delegate(g,"click.fb-start",c):e(this).unbind("click.fb-start").bind("click.fb-start",c);return this}})(window, -document,jQuery); \ No newline at end of file diff --git a/js/libs/plugins/jquery.easie.min.js b/js/libs/plugins/jquery.easie.min.js index 23257bb6..4b00bef2 100644 --- a/js/libs/plugins/jquery.easie.min.js +++ b/js/libs/plugins/jquery.easie.min.js @@ -8,24 +8,141 @@ * http://www.github.com/jaukia/easie * * Version history: - * 1.0 Initial public version -*/ + * 1.0.1 Semver versioning for jQuery plugins repository + * 1.0.0 Initial public version + * + * LICENCE INFORMATION: + * + * Copyright (c) 2011 Janne Aukia (janne.aukia.com), + * Louis-Rémi Babé (public@lrbabe.com). + * + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL Version 2 (GPL-LICENSE.txt) licenses. + * + * LICENCE INFORMATION FOR DERIVED FUNCTIONS: + * + * Function cubicBezierAtTime is written by Christian Effenberger, + * and corresponds 1:1 to the WebKit project function. + * "WebCore and JavaScriptCore are available under the + * Lesser GNU Public License. WebKit is available under + * a BSD-style license." + * + */ /*jslint sub: true */ -(function($){"use strict";var prefix="easie",ease="Ease",easeIn=prefix+ease+"In",easeOut=prefix+ease+"Out",easeInOut=prefix+ease+"InOut",names=["Quad","Cubic","Quart","Quint","Sine","Expo","Circ"];$.easie=function(p1x,p1y,p2x,p2y,name,forceUpdate){name=name||[prefix,p1x,p1y,p2x,p2y].join("-");if(!$.easing[name]||forceUpdate){var cubicBezierAtTimeLookup=makeLookup(function(p){return cubicBezierAtTime(p,p1x,p1y,p2x,p2y,5.0);});$.easing[name]=function(p,n,firstNum,diff){return cubicBezierAtTimeLookup.call(null,p);} -$.easing[name].params=[p1x,p1y,p2x,p2y];} -return name;} -var $easie=$.easie;$easie(0.000,0.000,1.000,1.000,prefix+"Linear");$easie(0.250,0.100,0.250,1.000,prefix+ease);$easie(0.420,0.000,1.000,1.000,easeIn);$easie(0.000,0.000,0.580,1.000,easeOut);$easie(0.420,0.000,0.580,1.000,easeInOut);$easie(0.550,0.085,0.680,0.530,easeIn+names[0]);$easie(0.550,0.055,0.675,0.190,easeIn+names[1]);$easie(0.895,0.030,0.685,0.220,easeIn+names[2]);$easie(0.755,0.050,0.855,0.060,easeIn+names[3]);$easie(0.470,0.000,0.745,0.715,easeIn+names[4]);$easie(0.950,0.050,0.795,0.035,easeIn+names[5]);$easie(0.600,0.040,0.980,0.335,easeIn+names[6]);$easie(0.250,0.460,0.450,0.940,easeOut+names[0]);$easie(0.215,0.610,0.355,1.000,easeOut+names[1]);$easie(0.165,0.840,0.440,1.000,easeOut+names[2]);$easie(0.230,1.000,0.320,1.000,easeOut+names[3]);$easie(0.390,0.575,0.565,1.000,easeOut+names[4]);$easie(0.190,1.000,0.220,1.000,easeOut+names[5]);$easie(0.075,0.820,0.165,1.000,easeOut+names[6]);$easie(0.455,0.030,0.515,0.955,easeInOut+names[0]);$easie(0.645,0.045,0.355,1.000,easeInOut+names[1]);$easie(0.770,0.000,0.175,1.000,easeInOut+names[2]);$easie(0.860,0.000,0.070,1.000,easeInOut+names[3]);$easie(0.445,0.050,0.550,0.950,easeInOut+names[4]);$easie(1.000,0.000,0.000,1.000,easeInOut+names[5]);$easie(0.785,0.135,0.150,0.860,easeInOut+names[6]);function makeLookup(func,steps){var i;steps=steps||101;var lookupTable=[];for(i=0;i<(steps+1);i++){lookupTable[i]=func.call(null,i/steps);} -return function(p){if(p===1)return lookupTable[steps];var sp=steps*p;var p0=Math.floor(sp);var y1=lookupTable[p0];var y2=lookupTable[p0+1];return y1+(y2-y1)*(sp-p0);}} -function cubicBezierAtTime(t,p1x,p1y,p2x,p2y,duration){var ax=0,bx=0,cx=0,ay=0,by=0,cy=0;function sampleCurveX(t){return((ax*t+bx)*t+cx)*t;} -function sampleCurveY(t){return((ay*t+by)*t+cy)*t;} -function sampleCurveDerivativeX(t){return(3.0*ax*t+2.0*bx)*t+cx;} -function solveEpsilon(duration){return 1.0/(200.0*duration);} -function solve(x,epsilon){return sampleCurveY(solveCurveX(x,epsilon));} -function solveCurveX(x,epsilon){var t0,t1,t2,x2,d2,i;function fabs(n){if(n>=0){return n;}else{return 0-n;}} -for(t2=x,i=0;i<8;i++){x2=sampleCurveX(t2)-x;if(fabs(x2)t1){return t1;} -while(t0x2){t0=t2;}else{t1=t2;}t2=(t1-t0)*0.5+t0;} -return t2;} -cx=3.0*p1x;bx=3.0*(p2x-p1x)-cx;ax=1.0-cx-bx;cy=3.0*p1y;by=3.0*(p2y-p1y)-cy;ay=1.0-cy-by;return solve(t,solveEpsilon(duration));}})(jQuery); \ No newline at end of file +(function($) { + "use strict"; + + var prefix = "easie", + ease = "Ease", + easeIn = prefix+ease+"In", + easeOut = prefix+ease+"Out", + easeInOut = prefix+ease+"InOut", + names = ["Quad","Cubic","Quart","Quint","Sine","Expo","Circ"]; + + $.easie = function(p1x,p1y,p2x,p2y,name,forceUpdate) { + name = name || [prefix,p1x,p1y,p2x,p2y].join("-"); + if ( !$.easing[name] || forceUpdate ) { + // around 40x faster with lookup than without it in FF4 + var cubicBezierAtTimeLookup = makeLookup(function(p) { + // the duration is set to 5.0. this defines the precision of the bezier calculation. + // the animation is ok for durations up to 5 secs with this. + // with the lookup table, the precision can be high without any big penalty. + return cubicBezierAtTime(p,p1x,p1y,p2x,p2y,5.0); + }); + + $.easing[name] = function(p, n, firstNum, diff) { + return cubicBezierAtTimeLookup.call(null, p); + } + $.easing[name].params = [p1x,p1y,p2x,p2y]; + } + return name; + } + + var $easie = $.easie; + + // default css3 easings + + $easie(0.000, 0.000, 1.000, 1.000, prefix+"Linear"); + $easie(0.250, 0.100, 0.250, 1.000, prefix+ease); + $easie(0.420, 0.000, 1.000, 1.000, easeIn); + $easie(0.000, 0.000, 0.580, 1.000, easeOut); + $easie(0.420, 0.000, 0.580, 1.000, easeInOut); + + // approximated Penner equations, from: + // http://matthewlein.com/ceaser/ + + $easie(0.550, 0.085, 0.680, 0.530, easeIn+names[0]); + $easie(0.550, 0.055, 0.675, 0.190, easeIn+names[1]); + $easie(0.895, 0.030, 0.685, 0.220, easeIn+names[2]); + $easie(0.755, 0.050, 0.855, 0.060, easeIn+names[3]); + $easie(0.470, 0.000, 0.745, 0.715, easeIn+names[4]); + $easie(0.950, 0.050, 0.795, 0.035, easeIn+names[5]); + $easie(0.600, 0.040, 0.980, 0.335, easeIn+names[6]); + + $easie(0.250, 0.460, 0.450, 0.940, easeOut+names[0]); + $easie(0.215, 0.610, 0.355, 1.000, easeOut+names[1]); + $easie(0.165, 0.840, 0.440, 1.000, easeOut+names[2]); + $easie(0.230, 1.000, 0.320, 1.000, easeOut+names[3]); + $easie(0.390, 0.575, 0.565, 1.000, easeOut+names[4]); + $easie(0.190, 1.000, 0.220, 1.000, easeOut+names[5]); + $easie(0.075, 0.820, 0.165, 1.000, easeOut+names[6]); + + $easie(0.455, 0.030, 0.515, 0.955, easeInOut+names[0]); + $easie(0.645, 0.045, 0.355, 1.000, easeInOut+names[1]); + $easie(0.770, 0.000, 0.175, 1.000, easeInOut+names[2]); + $easie(0.860, 0.000, 0.070, 1.000, easeInOut+names[3]); + $easie(0.445, 0.050, 0.550, 0.950, easeInOut+names[4]); + $easie(1.000, 0.000, 0.000, 1.000, easeInOut+names[5]); + $easie(0.785, 0.135, 0.150, 0.860, easeInOut+names[6]); + + function makeLookup(func,steps) { + var i; + steps = steps || 101; + var lookupTable = []; + for(i=0;i<(steps+1);i++) { + lookupTable[i] = func.call(null,i/steps); + } + return function(p) { + if(p===1) return lookupTable[steps]; + var sp = steps*p; + // fast flooring, see + // http://stackoverflow.com/questions/2526682/why-is-javascripts-math-floor-the-slowest-way-to-calculate-floor-in-javascript + var p0 = Math.floor(sp); + var y1 = lookupTable[p0]; + var y2 = lookupTable[p0+1]; + return y1+(y2-y1)*(sp-p0); + } + } + + // From: http://www.netzgesta.de/dev/cubic-bezier-timing-function.html + // 1:1 conversion to js from webkit source files + // UnitBezier.h, WebCore_animation_AnimationBase.cpp + function cubicBezierAtTime(t,p1x,p1y,p2x,p2y,duration) { + var ax=0,bx=0,cx=0,ay=0,by=0,cy=0; + // `ax t^3 + bx t^2 + cx t' expanded using Horner's rule. + function sampleCurveX(t) {return ((ax*t+bx)*t+cx)*t;} + function sampleCurveY(t) {return ((ay*t+by)*t+cy)*t;} + function sampleCurveDerivativeX(t) {return (3.0*ax*t+2.0*bx)*t+cx;} + // The epsilon value to pass given that the animation is going to run over |dur| seconds. The longer the + // animation, the more precision is needed in the timing function result to avoid ugly discontinuities. + function solveEpsilon(duration) {return 1.0/(200.0*duration);} + function solve(x,epsilon) {return sampleCurveY(solveCurveX(x,epsilon));} + // Given an x value, find a parametric value it came from. + function solveCurveX(x,epsilon) {var t0,t1,t2,x2,d2,i; + function fabs(n) {if(n>=0) {return n;}else {return 0-n;}} + // First try a few iterations of Newton's method -- normally very fast. + for(t2=x, i=0; i<8; i++) {x2=sampleCurveX(t2)-x; if(fabs(x2)t1) {return t1;} + while(t0x2) {t0=t2;}else {t1=t2;} t2=(t1-t0)*0.5+t0;} + return t2; // Failure. + } + // Calculate the polynomial coefficients, implicit first and last control points are (0,0) and (1,1). + cx=3.0*p1x; bx=3.0*(p2x-p1x)-cx; ax=1.0-cx-bx; cy=3.0*p1y; by=3.0*(p2y-p1y)-cy; ay=1.0-cy-by; + // Convert from input time to parametric value in curve, then from that to output time. + return solve(t, solveEpsilon(duration)); + } + +})(jQuery); diff --git a/js/libs/plugins/jquery.imagesLoaded.js b/js/libs/plugins/jquery.imagesLoaded.js new file mode 100644 index 00000000..9a36afe7 --- /dev/null +++ b/js/libs/plugins/jquery.imagesLoaded.js @@ -0,0 +1,277 @@ +/*! + * imagesLoaded v3.0.1 + * JavaScript is all like "You images are done yet or what?" + */ + +( function( window ) { + +'use strict'; + +var $ = window.jQuery; +var console = window.console; +var hasConsole = typeof console !== 'undefined'; + +// -------------------------- helpers -------------------------- // + +// extend objects +function extend( a, b ) { + for ( var prop in b ) { + a[ prop ] = b[ prop ]; + } + return a; +} + +var objToString = Object.prototype.toString; +function isArray( obj ) { + return objToString.call( obj ) === '[object Array]'; +} + +// turn element or nodeList into an array +function makeArray( obj ) { + var ary = []; + if ( isArray( obj ) ) { + // use object if already an array + ary = obj; + } else if ( typeof obj.length === 'number' ) { + // convert nodeList to array + for ( var i=0, len = obj.length; i < len; i++ ) { + ary.push( obj[i] ); + } + } else { + // array of single index + ary.push( obj ); + } + return ary; +} + +// -------------------------- -------------------------- // + +function defineImagesLoaded( EventEmitter, eventie ) { + + /** + * @param {Array, Element, NodeList, String} elem + * @param {Object or Function} options - if function, use as callback + * @param {Function} onAlways - callback function + */ + function ImagesLoaded( elem, options, onAlways ) { + // coerce ImagesLoaded() without new, to be new ImagesLoaded() + if ( !( this instanceof ImagesLoaded ) ) { + return new ImagesLoaded( elem, options ); + } + // use elem as selector string + if ( typeof elem === 'string' ) { + elem = document.querySelectorAll( elem ); + } + + this.elements = makeArray( elem ); + this.options = extend( {}, this.options ); + + if ( typeof options === 'function' ) { + onAlways = options; + } else { + extend( this.options, options ); + } + + if ( onAlways ) { + this.on( 'always', onAlways ); + } + + this.getImages(); + + if ( $ ) { + // add jQuery Deferred object + this.jqDeferred = new $.Deferred(); + } + + // HACK check async to allow time to bind listeners + var _this = this; + setTimeout( function() { + _this.check(); + }); + } + + ImagesLoaded.prototype = new EventEmitter(); + + ImagesLoaded.prototype.options = {}; + + ImagesLoaded.prototype.getImages = function() { + this.images = []; + + // filter & find items if we have an item selector + for ( var i=0, len = this.elements.length; i < len; i++ ) { + var elem = this.elements[i]; + // filter siblings + if ( elem.nodeName === 'IMG' ) { + this.addImage( elem ); + } + // find children + var childElems = elem.querySelectorAll('img'); + // concat childElems to filterFound array + for ( var j=0, jLen = childElems.length; j < jLen; j++ ) { + var img = childElems[j]; + this.addImage( img ); + } + } + }; + + /** + * @param {Image} img + */ + ImagesLoaded.prototype.addImage = function( img ) { + var loadingImage = new LoadingImage( img ); + this.images.push( loadingImage ); + }; + + ImagesLoaded.prototype.check = function() { + var _this = this; + var checkedCount = 0; + var length = this.images.length; + this.hasAnyBroken = false; + function onConfirm( image, message ) { + if ( _this.options.debug && hasConsole ) { + console.log( 'confirm', image, message ); + } + + _this.progress( image ); + checkedCount++; + if ( checkedCount === length ) { + _this.complete(); + } + return true; // bind once + } + + for ( var i=0; i < length; i++ ) { + var loadingImage = this.images[i]; + loadingImage.on( 'confirm', onConfirm ); + loadingImage.check(); + } + }; + + ImagesLoaded.prototype.progress = function( image ) { + this.hasAnyBroken = this.hasAnyBroken || !image.isLoaded; + this.emit( 'progress', this, image ); + if ( this.jqDeferred ) { + this.jqDeferred.notify( this, image ); + } + }; + + ImagesLoaded.prototype.complete = function() { + var eventName = this.hasAnyBroken ? 'fail' : 'done'; + this.isComplete = true; + this.emit( eventName, this ); + this.emit( 'always', this ); + if ( this.jqDeferred ) { + var jqMethod = this.hasAnyBroken ? 'reject' : 'resolve'; + this.jqDeferred[ jqMethod ]( this ); + } + }; + + // -------------------------- jquery -------------------------- // + + if ( $ ) { + $.fn.imagesLoaded = function( options, callback ) { + var instance = new ImagesLoaded( this, options, callback ); + return instance.jqDeferred.promise( $(this) ); + }; + } + + + // -------------------------- -------------------------- // + + var cache = {}; + + function LoadingImage( img ) { + this.img = img; + } + + LoadingImage.prototype = new EventEmitter(); + + LoadingImage.prototype.check = function() { + // first check cached any previous images that have same src + var cached = cache[ this.img.src ]; + if ( cached ) { + this.useCached( cached ); + return; + } + // add this to cache + cache[ this.img.src ] = this; + + // If complete is true and browser supports natural sizes, + // try to check for image status manually. + if ( this.img.complete && this.img.naturalWidth !== undefined ) { + // report based on naturalWidth + this.confirm( this.img.naturalWidth !== 0, 'naturalWidth' ); + return; + } + + // If none of the checks above matched, simulate loading on detached element. + var proxyImage = this.proxyImage = new Image(); + eventie.bind( proxyImage, 'load', this ); + eventie.bind( proxyImage, 'error', this ); + proxyImage.src = this.img.src; + }; + + LoadingImage.prototype.useCached = function( cached ) { + if ( cached.isConfirmed ) { + this.confirm( cached.isLoaded, 'cached was confirmed' ); + } else { + var _this = this; + cached.on( 'confirm', function( image ) { + _this.confirm( image.isLoaded, 'cache emitted confirmed' ); + return true; // bind once + }); + } + }; + + LoadingImage.prototype.confirm = function( isLoaded, message ) { + this.isConfirmed = true; + this.isLoaded = isLoaded; + this.emit( 'confirm', this, message ); + }; + + // trigger specified handler for event type + LoadingImage.prototype.handleEvent = function( event ) { + var method = 'on' + event.type; + if ( this[ method ] ) { + this[ method ]( event ); + } + }; + + LoadingImage.prototype.onload = function() { + this.confirm( true, 'onload' ); + this.unbindProxyEvents(); + }; + + LoadingImage.prototype.onerror = function() { + this.confirm( false, 'onerror' ); + this.unbindProxyEvents(); + }; + + LoadingImage.prototype.unbindProxyEvents = function() { + eventie.unbind( this.proxyImage, 'load', this ); + eventie.unbind( this.proxyImage, 'error', this ); + }; + + // ----- ----- // + + return ImagesLoaded; +} + +// -------------------------- transport -------------------------- // + +if ( typeof define === 'function' && define.amd ) { + // AMD + define( [ + 'eventEmitter', + 'eventie' + ], + defineImagesLoaded ); +} else { + // browser global + window.imagesLoaded = defineImagesLoaded( + window.EventEmitter, + window.eventie + ); +} + +})( window ); diff --git a/js/libs/plugins/jquery.imagesLoaded.min.js b/js/libs/plugins/jquery.imagesLoaded.min.js deleted file mode 100644 index a5fd97b8..00000000 --- a/js/libs/plugins/jquery.imagesLoaded.min.js +++ /dev/null @@ -1,2 +0,0 @@ -(function(c,n){var k="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==";c.fn.imagesLoaded=function(l){function m(){var b=c(h),a=c(g);d&&(g.length?d.reject(e,b,a):d.resolve(e));c.isFunction(l)&&l.call(f,e,b,a)}function i(b,a){b.src===k||-1!==c.inArray(b,j)||(j.push(b),a?g.push(b):h.push(b),c.data(b,"imagesLoaded",{isBroken:a,src:b.src}),o&&d.notifyWith(c(b),[a,e,c(h),c(g)]),e.length===j.length&&(setTimeout(m),e.unbind(".imagesLoaded")))}var f=this,d=c.isFunction(c.Deferred)?c.Deferred(): -0,o=c.isFunction(d.notify),e=f.find("img").add(f.filter("img")),j=[],h=[],g=[];e.length?e.bind("load.imagesLoaded error.imagesLoaded",function(b){i(b.target,"error"===b.type)}).each(function(b,a){var e=a.src,d=c.data(a,"imagesLoaded");if(d&&d.src===e)i(a,d.isBroken);else if(a.complete&&a.naturalWidth!==n)i(a,0===a.naturalWidth||0===a.naturalHeight);else if(a.readyState||a.complete)a.src=k,a.src=e}):m();return d?d.promise(f):f}})(jQuery); diff --git a/js/libs/plugins/jquery.validation.min.js b/js/libs/plugins/jquery.validation.min.js deleted file mode 100644 index c704c222..00000000 --- a/js/libs/plugins/jquery.validation.min.js +++ /dev/null @@ -1,51 +0,0 @@ -/** - * jQuery Validation Plugin 1.9.0 - * - * http://bassistance.de/jquery-plugins/jquery-plugin-validation/ - * http://docs.jquery.com/Plugins/Validation - * - * Copyright (c) 2006 - 2011 Jörn Zaefferer - * - * Dual licensed under the MIT and GPL licenses: - * http://www.opensource.org/licenses/mit-license.php - * http://www.gnu.org/licenses/gpl.html - */ -(function(c){c.extend(c.fn,{validate:function(a){if(this.length){var b=c.data(this[0],"validator");if(b)return b;this.attr("novalidate","novalidate");b=new c.validator(a,this[0]);c.data(this[0],"validator",b);if(b.settings.onsubmit){a=this.find("input, button");a.filter(".cancel").click(function(){b.cancelSubmit=true});b.settings.submitHandler&&a.filter(":submit").click(function(){b.submitButton=this});this.submit(function(d){function e(){if(b.settings.submitHandler){if(b.submitButton)var f=c("").attr("name", -b.submitButton.name).val(b.submitButton.value).appendTo(b.currentForm);b.settings.submitHandler.call(b,b.currentForm);b.submitButton&&f.remove();return false}return true}b.settings.debug&&d.preventDefault();if(b.cancelSubmit){b.cancelSubmit=false;return e()}if(b.form()){if(b.pendingRequest){b.formSubmitted=true;return false}return e()}else{b.focusInvalid();return false}})}return b}else a&&a.debug&&window.console&&console.warn("nothing selected, can't validate, returning nothing")},valid:function(){if(c(this[0]).is("form"))return this.validate().form(); -else{var a=true,b=c(this[0].form).validate();this.each(function(){a&=b.element(this)});return a}},removeAttrs:function(a){var b={},d=this;c.each(a.split(/\s/),function(e,f){b[f]=d.attr(f);d.removeAttr(f)});return b},rules:function(a,b){var d=this[0];if(a){var e=c.data(d.form,"validator").settings,f=e.rules,g=c.validator.staticRules(d);switch(a){case "add":c.extend(g,c.validator.normalizeRule(b));f[d.name]=g;if(b.messages)e.messages[d.name]=c.extend(e.messages[d.name],b.messages);break;case "remove":if(!b){delete f[d.name]; -return g}var h={};c.each(b.split(/\s/),function(j,i){h[i]=g[i];delete g[i]});return h}}d=c.validator.normalizeRules(c.extend({},c.validator.metadataRules(d),c.validator.classRules(d),c.validator.attributeRules(d),c.validator.staticRules(d)),d);if(d.required){e=d.required;delete d.required;d=c.extend({required:e},d)}return d}});c.extend(c.expr[":"],{blank:function(a){return!c.trim(""+a.value)},filled:function(a){return!!c.trim(""+a.value)},unchecked:function(a){return!a.checked}});c.validator=function(a, -b){this.settings=c.extend(true,{},c.validator.defaults,a);this.currentForm=b;this.init()};c.validator.format=function(a,b){if(arguments.length==1)return function(){var d=c.makeArray(arguments);d.unshift(a);return c.validator.format.apply(this,d)};if(arguments.length>2&&b.constructor!=Array)b=c.makeArray(arguments).slice(1);if(b.constructor!=Array)b=[b];c.each(b,function(d,e){a=a.replace(RegExp("\\{"+d+"\\}","g"),e)});return a};c.extend(c.validator,{defaults:{messages:{},groups:{},rules:{},errorClass:"error", -validClass:"valid",errorElement:"label",focusInvalid:true,errorContainer:c([]),errorLabelContainer:c([]),onsubmit:true,ignore:":hidden",ignoreTitle:false,onfocusin:function(a){this.lastActive=a;if(this.settings.focusCleanup&&!this.blockFocusCleanup){this.settings.unhighlight&&this.settings.unhighlight.call(this,a,this.settings.errorClass,this.settings.validClass);this.addWrapper(this.errorsFor(a)).hide()}},onfocusout:function(a){if(!this.checkable(a)&&(a.name in this.submitted||!this.optional(a)))this.element(a)}, -onkeyup:function(a){if(a.name in this.submitted||a==this.lastElement)this.element(a)},onclick:function(a){if(a.name in this.submitted)this.element(a);else a.parentNode.name in this.submitted&&this.element(a.parentNode)},highlight:function(a,b,d){a.type==="radio"?this.findByName(a.name).addClass(b).removeClass(d):c(a).addClass(b).removeClass(d)},unhighlight:function(a,b,d){a.type==="radio"?this.findByName(a.name).removeClass(b).addClass(d):c(a).removeClass(b).addClass(d)}},setDefaults:function(a){c.extend(c.validator.defaults, -a)},messages:{required:"This field is required.",remote:"Please fix this field.",email:"Please enter a valid email address.",url:"Please enter a valid URL.",date:"Please enter a valid date.",dateISO:"Please enter a valid date (ISO).",number:"Please enter a valid number.",digits:"Please enter only digits.",creditcard:"Please enter a valid credit card number.",equalTo:"Please enter the same value again.",accept:"Please enter a value with a valid extension.",maxlength:c.validator.format("Please enter no more than {0} characters."), -minlength:c.validator.format("Please enter at least {0} characters."),rangelength:c.validator.format("Please enter a value between {0} and {1} characters long."),range:c.validator.format("Please enter a value between {0} and {1}."),max:c.validator.format("Please enter a value less than or equal to {0}."),min:c.validator.format("Please enter a value greater than or equal to {0}.")},autoCreateRanges:false,prototype:{init:function(){function a(e){var f=c.data(this[0].form,"validator"),g="on"+e.type.replace(/^validate/, -"");f.settings[g]&&f.settings[g].call(f,this[0],e)}this.labelContainer=c(this.settings.errorLabelContainer);this.errorContext=this.labelContainer.length&&this.labelContainer||c(this.currentForm);this.containers=c(this.settings.errorContainer).add(this.settings.errorLabelContainer);this.submitted={};this.valueCache={};this.pendingRequest=0;this.pending={};this.invalid={};this.reset();var b=this.groups={};c.each(this.settings.groups,function(e,f){c.each(f.split(/\s/),function(g,h){b[h]=e})});var d= -this.settings.rules;c.each(d,function(e,f){d[e]=c.validator.normalizeRule(f)});c(this.currentForm).validateDelegate("[type='text'], [type='password'], [type='file'], select, textarea, [type='number'], [type='search'] ,[type='tel'], [type='url'], [type='email'], [type='datetime'], [type='date'], [type='month'], [type='week'], [type='time'], [type='datetime-local'], [type='range'], [type='color'] ","focusin focusout keyup",a).validateDelegate("[type='radio'], [type='checkbox'], select, option","click", -a);this.settings.invalidHandler&&c(this.currentForm).bind("invalid-form.validate",this.settings.invalidHandler)},form:function(){this.checkForm();c.extend(this.submitted,this.errorMap);this.invalid=c.extend({},this.errorMap);this.valid()||c(this.currentForm).triggerHandler("invalid-form",[this]);this.showErrors();return this.valid()},checkForm:function(){this.prepareForm();for(var a=0,b=this.currentElements=this.elements();b[a];a++)this.check(b[a]);return this.valid()},element:function(a){this.lastElement= -a=this.validationTargetFor(this.clean(a));this.prepareElement(a);this.currentElements=c(a);var b=this.check(a);if(b)delete this.invalid[a.name];else this.invalid[a.name]=true;if(!this.numberOfInvalids())this.toHide=this.toHide.add(this.containers);this.showErrors();return b},showErrors:function(a){if(a){c.extend(this.errorMap,a);this.errorList=[];for(var b in a)this.errorList.push({message:a[b],element:this.findByName(b)[0]});this.successList=c.grep(this.successList,function(d){return!(d.name in a)})}this.settings.showErrors? -this.settings.showErrors.call(this,this.errorMap,this.errorList):this.defaultShowErrors()},resetForm:function(){c.fn.resetForm&&c(this.currentForm).resetForm();this.submitted={};this.lastElement=null;this.prepareForm();this.hideErrors();this.elements().removeClass(this.settings.errorClass)},numberOfInvalids:function(){return this.objectLength(this.invalid)},objectLength:function(a){var b=0,d;for(d in a)b++;return b},hideErrors:function(){this.addWrapper(this.toHide).hide()},valid:function(){return this.size()== -0},size:function(){return this.errorList.length},focusInvalid:function(){if(this.settings.focusInvalid)try{c(this.findLastActive()||this.errorList.length&&this.errorList[0].element||[]).filter(":visible").focus().trigger("focusin")}catch(a){}},findLastActive:function(){var a=this.lastActive;return a&&c.grep(this.errorList,function(b){return b.element.name==a.name}).length==1&&a},elements:function(){var a=this,b={};return c(this.currentForm).find("input, select, textarea").not(":submit, :reset, :image, [disabled]").not(this.settings.ignore).filter(function(){!this.name&& -a.settings.debug&&window.console&&console.error("%o has no name assigned",this);if(this.name in b||!a.objectLength(c(this).rules()))return false;return b[this.name]=true})},clean:function(a){return c(a)[0]},errors:function(){return c(this.settings.errorElement+"."+this.settings.errorClass,this.errorContext)},reset:function(){this.successList=[];this.errorList=[];this.errorMap={};this.toShow=c([]);this.toHide=c([]);this.currentElements=c([])},prepareForm:function(){this.reset();this.toHide=this.errors().add(this.containers)}, -prepareElement:function(a){this.reset();this.toHide=this.errorsFor(a)},check:function(a){a=this.validationTargetFor(this.clean(a));var b=c(a).rules(),d=false,e;for(e in b){var f={method:e,parameters:b[e]};try{var g=c.validator.methods[e].call(this,a.value.replace(/\r/g,""),a,f.parameters);if(g=="dependency-mismatch")d=true;else{d=false;if(g=="pending"){this.toHide=this.toHide.not(this.errorsFor(a));return}if(!g){this.formatAndAdd(a,f);return false}}}catch(h){this.settings.debug&&window.console&&console.log("exception occured when checking element "+ -a.id+", check the '"+f.method+"' method",h);throw h;}}if(!d){this.objectLength(b)&&this.successList.push(a);return true}},customMetaMessage:function(a,b){if(c.metadata){var d=this.settings.meta?c(a).metadata()[this.settings.meta]:c(a).metadata();return d&&d.messages&&d.messages[b]}},customMessage:function(a,b){var d=this.settings.messages[a];return d&&(d.constructor==String?d:d[b])},findDefined:function(){for(var a=0;aWarning: No message defined for "+a.name+"")},formatAndAdd:function(a,b){var d=this.defaultMessage(a,b.method),e=/\$?\{(\d+)\}/g;if(typeof d=="function")d=d.call(this,b.parameters,a);else if(e.test(d))d=jQuery.format(d.replace(e,"{$1}"),b.parameters);this.errorList.push({message:d,element:a});this.errorMap[a.name]=d;this.submitted[a.name]= -d},addWrapper:function(a){if(this.settings.wrapper)a=a.add(a.parent(this.settings.wrapper));return a},defaultShowErrors:function(){for(var a=0;this.errorList[a];a++){var b=this.errorList[a];this.settings.highlight&&this.settings.highlight.call(this,b.element,this.settings.errorClass,this.settings.validClass);this.showLabel(b.element,b.message)}if(this.errorList.length)this.toShow=this.toShow.add(this.containers);if(this.settings.success)for(a=0;this.successList[a];a++)this.showLabel(this.successList[a]); -if(this.settings.unhighlight){a=0;for(b=this.validElements();b[a];a++)this.settings.unhighlight.call(this,b[a],this.settings.errorClass,this.settings.validClass)}this.toHide=this.toHide.not(this.toShow);this.hideErrors();this.addWrapper(this.toShow).show()},validElements:function(){return this.currentElements.not(this.invalidElements())},invalidElements:function(){return c(this.errorList).map(function(){return this.element})},showLabel:function(a,b){var d=this.errorsFor(a);if(d.length){d.removeClass(this.settings.validClass).addClass(this.settings.errorClass); -d.attr("generated")&&d.html(b)}else{d=c("<"+this.settings.errorElement+"/>").attr({"for":this.idOrName(a),generated:true}).addClass(this.settings.errorClass).html(b||"");if(this.settings.wrapper)d=d.hide().show().wrap("<"+this.settings.wrapper+"/>").parent();this.labelContainer.append(d).length||(this.settings.errorPlacement?this.settings.errorPlacement(d,c(a)):d.insertAfter(a))}if(!b&&this.settings.success){d.text("");typeof this.settings.success=="string"?d.addClass(this.settings.success):this.settings.success(d)}this.toShow= -this.toShow.add(d)},errorsFor:function(a){var b=this.idOrName(a);return this.errors().filter(function(){return c(this).attr("for")==b})},idOrName:function(a){return this.groups[a.name]||(this.checkable(a)?a.name:a.id||a.name)},validationTargetFor:function(a){if(this.checkable(a))a=this.findByName(a.name).not(this.settings.ignore)[0];return a},checkable:function(a){return/radio|checkbox/i.test(a.type)},findByName:function(a){var b=this.currentForm;return c(document.getElementsByName(a)).map(function(d, -e){return e.form==b&&e.name==a&&e||null})},getLength:function(a,b){switch(b.nodeName.toLowerCase()){case "select":return c("option:selected",b).length;case "input":if(this.checkable(b))return this.findByName(b.name).filter(":checked").length}return a.length},depend:function(a,b){return this.dependTypes[typeof a]?this.dependTypes[typeof a](a,b):true},dependTypes:{"boolean":function(a){return a},string:function(a,b){return!!c(a,b.form).length},"function":function(a,b){return a(b)}},optional:function(a){return!c.validator.methods.required.call(this, -c.trim(a.value),a)&&"dependency-mismatch"},startRequest:function(a){if(!this.pending[a.name]){this.pendingRequest++;this.pending[a.name]=true}},stopRequest:function(a,b){this.pendingRequest--;if(this.pendingRequest<0)this.pendingRequest=0;delete this.pending[a.name];if(b&&this.pendingRequest==0&&this.formSubmitted&&this.form()){c(this.currentForm).submit();this.formSubmitted=false}else if(!b&&this.pendingRequest==0&&this.formSubmitted){c(this.currentForm).triggerHandler("invalid-form",[this]);this.formSubmitted= -false}},previousValue:function(a){return c.data(a,"previousValue")||c.data(a,"previousValue",{old:null,valid:true,message:this.defaultMessage(a,"remote")})}},classRuleSettings:{required:{required:true},email:{email:true},url:{url:true},date:{date:true},dateISO:{dateISO:true},dateDE:{dateDE:true},number:{number:true},numberDE:{numberDE:true},digits:{digits:true},creditcard:{creditcard:true}},addClassRules:function(a,b){a.constructor==String?this.classRuleSettings[a]=b:c.extend(this.classRuleSettings, -a)},classRules:function(a){var b={};(a=c(a).attr("class"))&&c.each(a.split(" "),function(){this in c.validator.classRuleSettings&&c.extend(b,c.validator.classRuleSettings[this])});return b},attributeRules:function(a){var b={};a=c(a);for(var d in c.validator.methods){var e;if(e=d==="required"&&typeof c.fn.prop==="function"?a.prop(d):a.attr(d))b[d]=e;else if(a[0].getAttribute("type")===d)b[d]=true}b.maxlength&&/-1|2147483647|524288/.test(b.maxlength)&&delete b.maxlength;return b},metadataRules:function(a){if(!c.metadata)return{}; -var b=c.data(a.form,"validator").settings.meta;return b?c(a).metadata()[b]:c(a).metadata()},staticRules:function(a){var b={},d=c.data(a.form,"validator");if(d.settings.rules)b=c.validator.normalizeRule(d.settings.rules[a.name])||{};return b},normalizeRules:function(a,b){c.each(a,function(d,e){if(e===false)delete a[d];else if(e.param||e.depends){var f=true;switch(typeof e.depends){case "string":f=!!c(e.depends,b.form).length;break;case "function":f=e.depends.call(b,b)}if(f)a[d]=e.param!==undefined? -e.param:true;else delete a[d]}});c.each(a,function(d,e){a[d]=c.isFunction(e)?e(b):e});c.each(["minlength","maxlength","min","max"],function(){if(a[this])a[this]=Number(a[this])});c.each(["rangelength","range"],function(){if(a[this])a[this]=[Number(a[this][0]),Number(a[this][1])]});if(c.validator.autoCreateRanges){if(a.min&&a.max){a.range=[a.min,a.max];delete a.min;delete a.max}if(a.minlength&&a.maxlength){a.rangelength=[a.minlength,a.maxlength];delete a.minlength;delete a.maxlength}}a.messages&&delete a.messages; -return a},normalizeRule:function(a){if(typeof a=="string"){var b={};c.each(a.split(/\s/),function(){b[this]=true});a=b}return a},addMethod:function(a,b,d){c.validator.methods[a]=b;c.validator.messages[a]=d!=undefined?d:c.validator.messages[a];b.length<3&&c.validator.addClassRules(a,c.validator.normalizeRule(a))},methods:{required:function(a,b,d){if(!this.depend(d,b))return"dependency-mismatch";switch(b.nodeName.toLowerCase()){case "select":return(a=c(b).val())&&a.length>0;case "input":if(this.checkable(b))return this.getLength(a, -b)>0;default:return c.trim(a).length>0}},remote:function(a,b,d){if(this.optional(b))return"dependency-mismatch";var e=this.previousValue(b);this.settings.messages[b.name]||(this.settings.messages[b.name]={});e.originalMessage=this.settings.messages[b.name].remote;this.settings.messages[b.name].remote=e.message;d=typeof d=="string"&&{url:d}||d;if(this.pending[b.name])return"pending";if(e.old===a)return e.valid;e.old=a;var f=this;this.startRequest(b);var g={};g[b.name]=a;c.ajax(c.extend(true,{url:d, -mode:"abort",port:"validate"+b.name,dataType:"json",data:g,success:function(h){f.settings.messages[b.name].remote=e.originalMessage;var j=h===true;if(j){var i=f.formSubmitted;f.prepareElement(b);f.formSubmitted=i;f.successList.push(b);f.showErrors()}else{i={};h=h||f.defaultMessage(b,"remote");i[b.name]=e.message=c.isFunction(h)?h(a):h;f.showErrors(i)}e.valid=j;f.stopRequest(b,j)}},d));return"pending"},minlength:function(a,b,d){return this.optional(b)||this.getLength(c.trim(a),b)>=d},maxlength:function(a, -b,d){return this.optional(b)||this.getLength(c.trim(a),b)<=d},rangelength:function(a,b,d){a=this.getLength(c.trim(a),b);return this.optional(b)||a>=d[0]&&a<=d[1]},min:function(a,b,d){return this.optional(b)||a>=d},max:function(a,b,d){return this.optional(b)||a<=d},range:function(a,b,d){return this.optional(b)||a>=d[0]&&a<=d[1]},email:function(a,b){return this.optional(b)||/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i.test(a)}, -url:function(a,b){return this.optional(b)||/^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(a)}, -date:function(a,b){return this.optional(b)||!/Invalid|NaN/.test(new Date(a))},dateISO:function(a,b){return this.optional(b)||/^\d{4}[\/-]\d{1,2}[\/-]\d{1,2}$/.test(a)},number:function(a,b){return this.optional(b)||/^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/.test(a)},digits:function(a,b){return this.optional(b)||/^\d+$/.test(a)},creditcard:function(a,b){if(this.optional(b))return"dependency-mismatch";if(/[^0-9 -]+/.test(a))return false;var d=0,e=0,f=false;a=a.replace(/\D/g,"");for(var g=a.length-1;g>= -0;g--){e=a.charAt(g);e=parseInt(e,10);if(f)if((e*=2)>9)e-=9;d+=e;f=!f}return d%10==0},accept:function(a,b,d){d=typeof d=="string"?d.replace(/,/g,"|"):"png|jpe?g|gif";return this.optional(b)||a.match(RegExp(".("+d+")$","i"))},equalTo:function(a,b,d){d=c(d).unbind(".validate-equalTo").bind("blur.validate-equalTo",function(){c(b).valid()});return a==d.val()}}});c.format=c.validator.format})(jQuery); -(function(c){var a={};if(c.ajaxPrefilter)c.ajaxPrefilter(function(d,e,f){e=d.port;if(d.mode=="abort"){a[e]&&a[e].abort();a[e]=f}});else{var b=c.ajax;c.ajax=function(d){var e=("port"in d?d:c.ajaxSettings).port;if(("mode"in d?d:c.ajaxSettings).mode=="abort"){a[e]&&a[e].abort();return a[e]=b.apply(this,arguments)}return b.apply(this,arguments)}}})(jQuery); -(function(c){!jQuery.event.special.focusin&&!jQuery.event.special.focusout&&document.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(e){e=c.event.fix(e);e.type=b;return c.event.handle.call(this,e)}c.event.special[b]={setup:function(){this.addEventListener(a,d,true)},teardown:function(){this.removeEventListener(a,d,true)},handler:function(e){arguments[0]=c.event.fix(e);arguments[0].type=b;return c.event.handle.apply(this,arguments)}}});c.extend(c.fn,{validateDelegate:function(a, -b,d){return this.bind(b,function(e){var f=c(e.target);if(f.is(a))return d.apply(f,arguments)})}})})(jQuery); \ No newline at end of file diff --git a/js/libs/yepnope.js b/js/libs/yepnope.js index edc03f80..f2e6ad18 100644 --- a/js/libs/yepnope.js +++ b/js/libs/yepnope.js @@ -31,8 +31,10 @@ var docElement = doc.documentElement, // Thanks to @jdalton for showing us this opera detection (by way of @kangax) (and probably @miketaylr too, or whatever...) isOpera = window.opera && toString.call( window.opera ) == "[object Opera]", isIE = !! doc.attachEvent && !isOpera, - strJsElem = isGecko ? "object" : isIE ? "script" : "img", - strCssElem = isIE ? "script" : strJsElem, + // isOlderWebkit fix for #95 - https://github.com/SlexAxton/yepnope.js/issues/95 + isOlderWebkit = ( 'webkitAppearance' in docElement.style ) && !( 'async' in doc.createElement('script') ), + strJsElem = isGecko ? "object" : (isIE || isOlderWebkit) ? "script" : "img", + strCssElem = isIE ? "script" : (isOlderWebkit) ? "img" : strJsElem, isArray = Array.isArray || function ( obj ) { return toString.call( obj ) == "[object Array]"; }, diff --git a/js/libs/zepto.js b/js/libs/zepto.js new file mode 100644 index 00000000..ae1f2299 --- /dev/null +++ b/js/libs/zepto.js @@ -0,0 +1,1565 @@ +/* Zepto v1.0-1-ga3cab6c - polyfill zepto detect event ajax form fx - zeptojs.com/license */ + + +;(function(undefined){ + if (String.prototype.trim === undefined) // fix for iOS 3.2 + String.prototype.trim = function(){ return this.replace(/^\s+|\s+$/g, '') } + + // For iOS 3.x + // from https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/reduce + if (Array.prototype.reduce === undefined) + Array.prototype.reduce = function(fun){ + if(this === void 0 || this === null) throw new TypeError() + var t = Object(this), len = t.length >>> 0, k = 0, accumulator + if(typeof fun != 'function') throw new TypeError() + if(len == 0 && arguments.length == 1) throw new TypeError() + + if(arguments.length >= 2) + accumulator = arguments[1] + else + do{ + if(k in t){ + accumulator = t[k++] + break + } + if(++k >= len) throw new TypeError() + } while (true) + + while (k < len){ + if(k in t) accumulator = fun.call(undefined, accumulator, t[k], k, t) + k++ + } + return accumulator + } + +})() + +var Zepto = (function() { + var undefined, key, $, classList, emptyArray = [], slice = emptyArray.slice, filter = emptyArray.filter, + document = window.document, + elementDisplay = {}, classCache = {}, + getComputedStyle = document.defaultView.getComputedStyle, + cssNumber = { 'column-count': 1, 'columns': 1, 'font-weight': 1, 'line-height': 1,'opacity': 1, 'z-index': 1, 'zoom': 1 }, + fragmentRE = /^\s*<(\w+|!)[^>]*>/, + tagExpanderRE = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig, + rootNodeRE = /^(?:body|html)$/i, + + // special attributes that should be get/set via method calls + methodAttributes = ['val', 'css', 'html', 'text', 'data', 'width', 'height', 'offset'], + + adjacencyOperators = [ 'after', 'prepend', 'before', 'append' ], + table = document.createElement('table'), + tableRow = document.createElement('tr'), + containers = { + 'tr': document.createElement('tbody'), + 'tbody': table, 'thead': table, 'tfoot': table, + 'td': tableRow, 'th': tableRow, + '*': document.createElement('div') + }, + readyRE = /complete|loaded|interactive/, + classSelectorRE = /^\.([\w-]+)$/, + idSelectorRE = /^#([\w-]*)$/, + tagSelectorRE = /^[\w-]+$/, + class2type = {}, + toString = class2type.toString, + zepto = {}, + camelize, uniq, + tempParent = document.createElement('div') + + zepto.matches = function(element, selector) { + if (!element || element.nodeType !== 1) return false + var matchesSelector = element.webkitMatchesSelector || element.mozMatchesSelector || + element.oMatchesSelector || element.matchesSelector + if (matchesSelector) return matchesSelector.call(element, selector) + // fall back to performing a selector: + var match, parent = element.parentNode, temp = !parent + if (temp) (parent = tempParent).appendChild(element) + match = ~zepto.qsa(parent, selector).indexOf(element) + temp && tempParent.removeChild(element) + return match + } + + function type(obj) { + return obj == null ? String(obj) : + class2type[toString.call(obj)] || "object" + } + + function isFunction(value) { return type(value) == "function" } + function isWindow(obj) { return obj != null && obj == obj.window } + function isDocument(obj) { return obj != null && obj.nodeType == obj.DOCUMENT_NODE } + function isObject(obj) { return type(obj) == "object" } + function isPlainObject(obj) { + return isObject(obj) && !isWindow(obj) && obj.__proto__ == Object.prototype + } + function isArray(value) { return value instanceof Array } + function likeArray(obj) { return typeof obj.length == 'number' } + + function compact(array) { return filter.call(array, function(item){ return item != null }) } + function flatten(array) { return array.length > 0 ? $.fn.concat.apply([], array) : array } + camelize = function(str){ return str.replace(/-+(.)?/g, function(match, chr){ return chr ? chr.toUpperCase() : '' }) } + function dasherize(str) { + return str.replace(/::/g, '/') + .replace(/([A-Z]+)([A-Z][a-z])/g, '$1_$2') + .replace(/([a-z\d])([A-Z])/g, '$1_$2') + .replace(/_/g, '-') + .toLowerCase() + } + uniq = function(array){ return filter.call(array, function(item, idx){ return array.indexOf(item) == idx }) } + + function classRE(name) { + return name in classCache ? + classCache[name] : (classCache[name] = new RegExp('(^|\\s)' + name + '(\\s|$)')) + } + + function maybeAddPx(name, value) { + return (typeof value == "number" && !cssNumber[dasherize(name)]) ? value + "px" : value + } + + function defaultDisplay(nodeName) { + var element, display + if (!elementDisplay[nodeName]) { + element = document.createElement(nodeName) + document.body.appendChild(element) + display = getComputedStyle(element, '').getPropertyValue("display") + element.parentNode.removeChild(element) + display == "none" && (display = "block") + elementDisplay[nodeName] = display + } + return elementDisplay[nodeName] + } + + function children(element) { + return 'children' in element ? + slice.call(element.children) : + $.map(element.childNodes, function(node){ if (node.nodeType == 1) return node }) + } + + // `$.zepto.fragment` takes a html string and an optional tag name + // to generate DOM nodes nodes from the given html string. + // The generated DOM nodes are returned as an array. + // This function can be overriden in plugins for example to make + // it compatible with browsers that don't support the DOM fully. + zepto.fragment = function(html, name, properties) { + if (html.replace) html = html.replace(tagExpanderRE, "<$1>") + if (name === undefined) name = fragmentRE.test(html) && RegExp.$1 + if (!(name in containers)) name = '*' + + var nodes, dom, container = containers[name] + container.innerHTML = '' + html + dom = $.each(slice.call(container.childNodes), function(){ + container.removeChild(this) + }) + if (isPlainObject(properties)) { + nodes = $(dom) + $.each(properties, function(key, value) { + if (methodAttributes.indexOf(key) > -1) nodes[key](value) + else nodes.attr(key, value) + }) + } + return dom + } + + // `$.zepto.Z` swaps out the prototype of the given `dom` array + // of nodes with `$.fn` and thus supplying all the Zepto functions + // to the array. Note that `__proto__` is not supported on Internet + // Explorer. This method can be overriden in plugins. + zepto.Z = function(dom, selector) { + dom = dom || [] + dom.__proto__ = $.fn + dom.selector = selector || '' + return dom + } + + // `$.zepto.isZ` should return `true` if the given object is a Zepto + // collection. This method can be overriden in plugins. + zepto.isZ = function(object) { + return object instanceof zepto.Z + } + + // `$.zepto.init` is Zepto's counterpart to jQuery's `$.fn.init` and + // takes a CSS selector and an optional context (and handles various + // special cases). + // This method can be overriden in plugins. + zepto.init = function(selector, context) { + // If nothing given, return an empty Zepto collection + if (!selector) return zepto.Z() + // If a function is given, call it when the DOM is ready + else if (isFunction(selector)) return $(document).ready(selector) + // If a Zepto collection is given, juts return it + else if (zepto.isZ(selector)) return selector + else { + var dom + // normalize array if an array of nodes is given + if (isArray(selector)) dom = compact(selector) + // Wrap DOM nodes. If a plain object is given, duplicate it. + else if (isObject(selector)) + dom = [isPlainObject(selector) ? $.extend({}, selector) : selector], selector = null + // If it's a html fragment, create nodes from it + else if (fragmentRE.test(selector)) + dom = zepto.fragment(selector.trim(), RegExp.$1, context), selector = null + // If there's a context, create a collection on that context first, and select + // nodes from there + else if (context !== undefined) return $(context).find(selector) + // And last but no least, if it's a CSS selector, use it to select nodes. + else dom = zepto.qsa(document, selector) + // create a new Zepto collection from the nodes found + return zepto.Z(dom, selector) + } + } + + // `$` will be the base `Zepto` object. When calling this + // function just call `$.zepto.init, which makes the implementation + // details of selecting nodes and creating Zepto collections + // patchable in plugins. + $ = function(selector, context){ + return zepto.init(selector, context) + } + + function extend(target, source, deep) { + for (key in source) + if (deep && (isPlainObject(source[key]) || isArray(source[key]))) { + if (isPlainObject(source[key]) && !isPlainObject(target[key])) + target[key] = {} + if (isArray(source[key]) && !isArray(target[key])) + target[key] = [] + extend(target[key], source[key], deep) + } + else if (source[key] !== undefined) target[key] = source[key] + } + + // Copy all but undefined properties from one or more + // objects to the `target` object. + $.extend = function(target){ + var deep, args = slice.call(arguments, 1) + if (typeof target == 'boolean') { + deep = target + target = args.shift() + } + args.forEach(function(arg){ extend(target, arg, deep) }) + return target + } + + // `$.zepto.qsa` is Zepto's CSS selector implementation which + // uses `document.querySelectorAll` and optimizes for some special cases, like `#id`. + // This method can be overriden in plugins. + zepto.qsa = function(element, selector){ + var found + return (isDocument(element) && idSelectorRE.test(selector)) ? + ( (found = element.getElementById(RegExp.$1)) ? [found] : [] ) : + (element.nodeType !== 1 && element.nodeType !== 9) ? [] : + slice.call( + classSelectorRE.test(selector) ? element.getElementsByClassName(RegExp.$1) : + tagSelectorRE.test(selector) ? element.getElementsByTagName(selector) : + element.querySelectorAll(selector) + ) + } + + function filtered(nodes, selector) { + return selector === undefined ? $(nodes) : $(nodes).filter(selector) + } + + $.contains = function(parent, node) { + return parent !== node && parent.contains(node) + } + + function funcArg(context, arg, idx, payload) { + return isFunction(arg) ? arg.call(context, idx, payload) : arg + } + + function setAttribute(node, name, value) { + value == null ? node.removeAttribute(name) : node.setAttribute(name, value) + } + + // access className property while respecting SVGAnimatedString + function className(node, value){ + var klass = node.className, + svg = klass && klass.baseVal !== undefined + + if (value === undefined) return svg ? klass.baseVal : klass + svg ? (klass.baseVal = value) : (node.className = value) + } + + // "true" => true + // "false" => false + // "null" => null + // "42" => 42 + // "42.5" => 42.5 + // JSON => parse if valid + // String => self + function deserializeValue(value) { + var num + try { + return value ? + value == "true" || + ( value == "false" ? false : + value == "null" ? null : + !isNaN(num = Number(value)) ? num : + /^[\[\{]/.test(value) ? $.parseJSON(value) : + value ) + : value + } catch(e) { + return value + } + } + + $.type = type + $.isFunction = isFunction + $.isWindow = isWindow + $.isArray = isArray + $.isPlainObject = isPlainObject + + $.isEmptyObject = function(obj) { + var name + for (name in obj) return false + return true + } + + $.inArray = function(elem, array, i){ + return emptyArray.indexOf.call(array, elem, i) + } + + $.camelCase = camelize + $.trim = function(str) { return str.trim() } + + // plugin compatibility + $.uuid = 0 + $.support = { } + $.expr = { } + + $.map = function(elements, callback){ + var value, values = [], i, key + if (likeArray(elements)) + for (i = 0; i < elements.length; i++) { + value = callback(elements[i], i) + if (value != null) values.push(value) + } + else + for (key in elements) { + value = callback(elements[key], key) + if (value != null) values.push(value) + } + return flatten(values) + } + + $.each = function(elements, callback){ + var i, key + if (likeArray(elements)) { + for (i = 0; i < elements.length; i++) + if (callback.call(elements[i], i, elements[i]) === false) return elements + } else { + for (key in elements) + if (callback.call(elements[key], key, elements[key]) === false) return elements + } + + return elements + } + + $.grep = function(elements, callback){ + return filter.call(elements, callback) + } + + if (window.JSON) $.parseJSON = JSON.parse + + // Populate the class2type map + $.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(i, name) { + class2type[ "[object " + name + "]" ] = name.toLowerCase() + }) + + // Define methods that will be available on all + // Zepto collections + $.fn = { + // Because a collection acts like an array + // copy over these useful array functions. + forEach: emptyArray.forEach, + reduce: emptyArray.reduce, + push: emptyArray.push, + sort: emptyArray.sort, + indexOf: emptyArray.indexOf, + concat: emptyArray.concat, + + // `map` and `slice` in the jQuery API work differently + // from their array counterparts + map: function(fn){ + return $($.map(this, function(el, i){ return fn.call(el, i, el) })) + }, + slice: function(){ + return $(slice.apply(this, arguments)) + }, + + ready: function(callback){ + if (readyRE.test(document.readyState)) callback($) + else document.addEventListener('DOMContentLoaded', function(){ callback($) }, false) + return this + }, + get: function(idx){ + return idx === undefined ? slice.call(this) : this[idx >= 0 ? idx : idx + this.length] + }, + toArray: function(){ return this.get() }, + size: function(){ + return this.length + }, + remove: function(){ + return this.each(function(){ + if (this.parentNode != null) + this.parentNode.removeChild(this) + }) + }, + each: function(callback){ + emptyArray.every.call(this, function(el, idx){ + return callback.call(el, idx, el) !== false + }) + return this + }, + filter: function(selector){ + if (isFunction(selector)) return this.not(this.not(selector)) + return $(filter.call(this, function(element){ + return zepto.matches(element, selector) + })) + }, + add: function(selector,context){ + return $(uniq(this.concat($(selector,context)))) + }, + is: function(selector){ + return this.length > 0 && zepto.matches(this[0], selector) + }, + not: function(selector){ + var nodes=[] + if (isFunction(selector) && selector.call !== undefined) + this.each(function(idx){ + if (!selector.call(this,idx)) nodes.push(this) + }) + else { + var excludes = typeof selector == 'string' ? this.filter(selector) : + (likeArray(selector) && isFunction(selector.item)) ? slice.call(selector) : $(selector) + this.forEach(function(el){ + if (excludes.indexOf(el) < 0) nodes.push(el) + }) + } + return $(nodes) + }, + has: function(selector){ + return this.filter(function(){ + return isObject(selector) ? + $.contains(this, selector) : + $(this).find(selector).size() + }) + }, + eq: function(idx){ + return idx === -1 ? this.slice(idx) : this.slice(idx, + idx + 1) + }, + first: function(){ + var el = this[0] + return el && !isObject(el) ? el : $(el) + }, + last: function(){ + var el = this[this.length - 1] + return el && !isObject(el) ? el : $(el) + }, + find: function(selector){ + var result, $this = this + if (typeof selector == 'object') + result = $(selector).filter(function(){ + var node = this + return emptyArray.some.call($this, function(parent){ + return $.contains(parent, node) + }) + }) + else if (this.length == 1) result = $(zepto.qsa(this[0], selector)) + else result = this.map(function(){ return zepto.qsa(this, selector) }) + return result + }, + closest: function(selector, context){ + var node = this[0], collection = false + if (typeof selector == 'object') collection = $(selector) + while (node && !(collection ? collection.indexOf(node) >= 0 : zepto.matches(node, selector))) + node = node !== context && !isDocument(node) && node.parentNode + return $(node) + }, + parents: function(selector){ + var ancestors = [], nodes = this + while (nodes.length > 0) + nodes = $.map(nodes, function(node){ + if ((node = node.parentNode) && !isDocument(node) && ancestors.indexOf(node) < 0) { + ancestors.push(node) + return node + } + }) + return filtered(ancestors, selector) + }, + parent: function(selector){ + return filtered(uniq(this.pluck('parentNode')), selector) + }, + children: function(selector){ + return filtered(this.map(function(){ return children(this) }), selector) + }, + contents: function() { + return this.map(function() { return slice.call(this.childNodes) }) + }, + siblings: function(selector){ + return filtered(this.map(function(i, el){ + return filter.call(children(el.parentNode), function(child){ return child!==el }) + }), selector) + }, + empty: function(){ + return this.each(function(){ this.innerHTML = '' }) + }, + // `pluck` is borrowed from Prototype.js + pluck: function(property){ + return $.map(this, function(el){ return el[property] }) + }, + show: function(){ + return this.each(function(){ + this.style.display == "none" && (this.style.display = null) + if (getComputedStyle(this, '').getPropertyValue("display") == "none") + this.style.display = defaultDisplay(this.nodeName) + }) + }, + replaceWith: function(newContent){ + return this.before(newContent).remove() + }, + wrap: function(structure){ + var func = isFunction(structure) + if (this[0] && !func) + var dom = $(structure).get(0), + clone = dom.parentNode || this.length > 1 + + return this.each(function(index){ + $(this).wrapAll( + func ? structure.call(this, index) : + clone ? dom.cloneNode(true) : dom + ) + }) + }, + wrapAll: function(structure){ + if (this[0]) { + $(this[0]).before(structure = $(structure)) + var children + // drill down to the inmost element + while ((children = structure.children()).length) structure = children.first() + $(structure).append(this) + } + return this + }, + wrapInner: function(structure){ + var func = isFunction(structure) + return this.each(function(index){ + var self = $(this), contents = self.contents(), + dom = func ? structure.call(this, index) : structure + contents.length ? contents.wrapAll(dom) : self.append(dom) + }) + }, + unwrap: function(){ + this.parent().each(function(){ + $(this).replaceWith($(this).children()) + }) + return this + }, + clone: function(){ + return this.map(function(){ return this.cloneNode(true) }) + }, + hide: function(){ + return this.css("display", "none") + }, + toggle: function(setting){ + return this.each(function(){ + var el = $(this) + ;(setting === undefined ? el.css("display") == "none" : setting) ? el.show() : el.hide() + }) + }, + prev: function(selector){ return $(this.pluck('previousElementSibling')).filter(selector || '*') }, + next: function(selector){ return $(this.pluck('nextElementSibling')).filter(selector || '*') }, + html: function(html){ + return html === undefined ? + (this.length > 0 ? this[0].innerHTML : null) : + this.each(function(idx){ + var originHtml = this.innerHTML + $(this).empty().append( funcArg(this, html, idx, originHtml) ) + }) + }, + text: function(text){ + return text === undefined ? + (this.length > 0 ? this[0].textContent : null) : + this.each(function(){ this.textContent = text }) + }, + attr: function(name, value){ + var result + return (typeof name == 'string' && value === undefined) ? + (this.length == 0 || this[0].nodeType !== 1 ? undefined : + (name == 'value' && this[0].nodeName == 'INPUT') ? this.val() : + (!(result = this[0].getAttribute(name)) && name in this[0]) ? this[0][name] : result + ) : + this.each(function(idx){ + if (this.nodeType !== 1) return + if (isObject(name)) for (key in name) setAttribute(this, key, name[key]) + else setAttribute(this, name, funcArg(this, value, idx, this.getAttribute(name))) + }) + }, + removeAttr: function(name){ + return this.each(function(){ this.nodeType === 1 && setAttribute(this, name) }) + }, + prop: function(name, value){ + return (value === undefined) ? + (this[0] && this[0][name]) : + this.each(function(idx){ + this[name] = funcArg(this, value, idx, this[name]) + }) + }, + data: function(name, value){ + var data = this.attr('data-' + dasherize(name), value) + return data !== null ? deserializeValue(data) : undefined + }, + val: function(value){ + return (value === undefined) ? + (this[0] && (this[0].multiple ? + $(this[0]).find('option').filter(function(o){ return this.selected }).pluck('value') : + this[0].value) + ) : + this.each(function(idx){ + this.value = funcArg(this, value, idx, this.value) + }) + }, + offset: function(coordinates){ + if (coordinates) return this.each(function(index){ + var $this = $(this), + coords = funcArg(this, coordinates, index, $this.offset()), + parentOffset = $this.offsetParent().offset(), + props = { + top: coords.top - parentOffset.top, + left: coords.left - parentOffset.left + } + + if ($this.css('position') == 'static') props['position'] = 'relative' + $this.css(props) + }) + if (this.length==0) return null + var obj = this[0].getBoundingClientRect() + return { + left: obj.left + window.pageXOffset, + top: obj.top + window.pageYOffset, + width: Math.round(obj.width), + height: Math.round(obj.height) + } + }, + css: function(property, value){ + if (arguments.length < 2 && typeof property == 'string') + return this[0] && (this[0].style[camelize(property)] || getComputedStyle(this[0], '').getPropertyValue(property)) + + var css = '' + if (type(property) == 'string') { + if (!value && value !== 0) + this.each(function(){ this.style.removeProperty(dasherize(property)) }) + else + css = dasherize(property) + ":" + maybeAddPx(property, value) + } else { + for (key in property) + if (!property[key] && property[key] !== 0) + this.each(function(){ this.style.removeProperty(dasherize(key)) }) + else + css += dasherize(key) + ':' + maybeAddPx(key, property[key]) + ';' + } + + return this.each(function(){ this.style.cssText += ';' + css }) + }, + index: function(element){ + return element ? this.indexOf($(element)[0]) : this.parent().children().indexOf(this[0]) + }, + hasClass: function(name){ + return emptyArray.some.call(this, function(el){ + return this.test(className(el)) + }, classRE(name)) + }, + addClass: function(name){ + return this.each(function(idx){ + classList = [] + var cls = className(this), newName = funcArg(this, name, idx, cls) + newName.split(/\s+/g).forEach(function(klass){ + if (!$(this).hasClass(klass)) classList.push(klass) + }, this) + classList.length && className(this, cls + (cls ? " " : "") + classList.join(" ")) + }) + }, + removeClass: function(name){ + return this.each(function(idx){ + if (name === undefined) return className(this, '') + classList = className(this) + funcArg(this, name, idx, classList).split(/\s+/g).forEach(function(klass){ + classList = classList.replace(classRE(klass), " ") + }) + className(this, classList.trim()) + }) + }, + toggleClass: function(name, when){ + return this.each(function(idx){ + var $this = $(this), names = funcArg(this, name, idx, className(this)) + names.split(/\s+/g).forEach(function(klass){ + (when === undefined ? !$this.hasClass(klass) : when) ? + $this.addClass(klass) : $this.removeClass(klass) + }) + }) + }, + scrollTop: function(){ + if (!this.length) return + return ('scrollTop' in this[0]) ? this[0].scrollTop : this[0].scrollY + }, + position: function() { + if (!this.length) return + + var elem = this[0], + // Get *real* offsetParent + offsetParent = this.offsetParent(), + // Get correct offsets + offset = this.offset(), + parentOffset = rootNodeRE.test(offsetParent[0].nodeName) ? { top: 0, left: 0 } : offsetParent.offset() + + // Subtract element margins + // note: when an element has margin: auto the offsetLeft and marginLeft + // are the same in Safari causing offset.left to incorrectly be 0 + offset.top -= parseFloat( $(elem).css('margin-top') ) || 0 + offset.left -= parseFloat( $(elem).css('margin-left') ) || 0 + + // Add offsetParent borders + parentOffset.top += parseFloat( $(offsetParent[0]).css('border-top-width') ) || 0 + parentOffset.left += parseFloat( $(offsetParent[0]).css('border-left-width') ) || 0 + + // Subtract the two offsets + return { + top: offset.top - parentOffset.top, + left: offset.left - parentOffset.left + } + }, + offsetParent: function() { + return this.map(function(){ + var parent = this.offsetParent || document.body + while (parent && !rootNodeRE.test(parent.nodeName) && $(parent).css("position") == "static") + parent = parent.offsetParent + return parent + }) + } + } + + // for now + $.fn.detach = $.fn.remove + + // Generate the `width` and `height` functions + ;['width', 'height'].forEach(function(dimension){ + $.fn[dimension] = function(value){ + var offset, el = this[0], + Dimension = dimension.replace(/./, function(m){ return m[0].toUpperCase() }) + if (value === undefined) return isWindow(el) ? el['inner' + Dimension] : + isDocument(el) ? el.documentElement['offset' + Dimension] : + (offset = this.offset()) && offset[dimension] + else return this.each(function(idx){ + el = $(this) + el.css(dimension, funcArg(this, value, idx, el[dimension]())) + }) + } + }) + + function traverseNode(node, fun) { + fun(node) + for (var key in node.childNodes) traverseNode(node.childNodes[key], fun) + } + + // Generate the `after`, `prepend`, `before`, `append`, + // `insertAfter`, `insertBefore`, `appendTo`, and `prependTo` methods. + adjacencyOperators.forEach(function(operator, operatorIndex) { + var inside = operatorIndex % 2 //=> prepend, append + + $.fn[operator] = function(){ + // arguments can be nodes, arrays of nodes, Zepto objects and HTML strings + var argType, nodes = $.map(arguments, function(arg) { + argType = type(arg) + return argType == "object" || argType == "array" || arg == null ? + arg : zepto.fragment(arg) + }), + parent, copyByClone = this.length > 1 + if (nodes.length < 1) return this + + return this.each(function(_, target){ + parent = inside ? target : target.parentNode + + // convert all methods to a "before" operation + target = operatorIndex == 0 ? target.nextSibling : + operatorIndex == 1 ? target.firstChild : + operatorIndex == 2 ? target : + null + + nodes.forEach(function(node){ + if (copyByClone) node = node.cloneNode(true) + else if (!parent) return $(node).remove() + + traverseNode(parent.insertBefore(node, target), function(el){ + if (el.nodeName != null && el.nodeName.toUpperCase() === 'SCRIPT' && + (!el.type || el.type === 'text/javascript') && !el.src) + window['eval'].call(window, el.innerHTML) + }) + }) + }) + } + + // after => insertAfter + // prepend => prependTo + // before => insertBefore + // append => appendTo + $.fn[inside ? operator+'To' : 'insert'+(operatorIndex ? 'Before' : 'After')] = function(html){ + $(html)[operator](this) + return this + } + }) + + zepto.Z.prototype = $.fn + + // Export internal API functions in the `$.zepto` namespace + zepto.uniq = uniq + zepto.deserializeValue = deserializeValue + $.zepto = zepto + + return $ +})() + +window.Zepto = Zepto +'$' in window || (window.$ = Zepto) + +;(function($){ + function detect(ua){ + var os = this.os = {}, browser = this.browser = {}, + webkit = ua.match(/WebKit\/([\d.]+)/), + android = ua.match(/(Android)\s+([\d.]+)/), + ipad = ua.match(/(iPad).*OS\s([\d_]+)/), + iphone = !ipad && ua.match(/(iPhone\sOS)\s([\d_]+)/), + webos = ua.match(/(webOS|hpwOS)[\s\/]([\d.]+)/), + touchpad = webos && ua.match(/TouchPad/), + kindle = ua.match(/Kindle\/([\d.]+)/), + silk = ua.match(/Silk\/([\d._]+)/), + blackberry = ua.match(/(BlackBerry).*Version\/([\d.]+)/), + bb10 = ua.match(/(BB10).*Version\/([\d.]+)/), + rimtabletos = ua.match(/(RIM\sTablet\sOS)\s([\d.]+)/), + playbook = ua.match(/PlayBook/), + chrome = ua.match(/Chrome\/([\d.]+)/) || ua.match(/CriOS\/([\d.]+)/), + firefox = ua.match(/Firefox\/([\d.]+)/) + + // Todo: clean this up with a better OS/browser seperation: + // - discern (more) between multiple browsers on android + // - decide if kindle fire in silk mode is android or not + // - Firefox on Android doesn't specify the Android version + // - possibly devide in os, device and browser hashes + + if (browser.webkit = !!webkit) browser.version = webkit[1] + + if (android) os.android = true, os.version = android[2] + if (iphone) os.ios = os.iphone = true, os.version = iphone[2].replace(/_/g, '.') + if (ipad) os.ios = os.ipad = true, os.version = ipad[2].replace(/_/g, '.') + if (webos) os.webos = true, os.version = webos[2] + if (touchpad) os.touchpad = true + if (blackberry) os.blackberry = true, os.version = blackberry[2] + if (bb10) os.bb10 = true, os.version = bb10[2] + if (rimtabletos) os.rimtabletos = true, os.version = rimtabletos[2] + if (playbook) browser.playbook = true + if (kindle) os.kindle = true, os.version = kindle[1] + if (silk) browser.silk = true, browser.version = silk[1] + if (!silk && os.android && ua.match(/Kindle Fire/)) browser.silk = true + if (chrome) browser.chrome = true, browser.version = chrome[1] + if (firefox) browser.firefox = true, browser.version = firefox[1] + + os.tablet = !!(ipad || playbook || (android && !ua.match(/Mobile/)) || (firefox && ua.match(/Tablet/))) + os.phone = !!(!os.tablet && (android || iphone || webos || blackberry || bb10 || + (chrome && ua.match(/Android/)) || (chrome && ua.match(/CriOS\/([\d.]+)/)) || (firefox && ua.match(/Mobile/)))) + } + + detect.call($, navigator.userAgent) + // make available to unit tests + $.__detect = detect + +})(Zepto) + +;(function($){ + var $$ = $.zepto.qsa, handlers = {}, _zid = 1, specialEvents={}, + hover = { mouseenter: 'mouseover', mouseleave: 'mouseout' } + + specialEvents.click = specialEvents.mousedown = specialEvents.mouseup = specialEvents.mousemove = 'MouseEvents' + + function zid(element) { + return element._zid || (element._zid = _zid++) + } + function findHandlers(element, event, fn, selector) { + event = parse(event) + if (event.ns) var matcher = matcherFor(event.ns) + return (handlers[zid(element)] || []).filter(function(handler) { + return handler + && (!event.e || handler.e == event.e) + && (!event.ns || matcher.test(handler.ns)) + && (!fn || zid(handler.fn) === zid(fn)) + && (!selector || handler.sel == selector) + }) + } + function parse(event) { + var parts = ('' + event).split('.') + return {e: parts[0], ns: parts.slice(1).sort().join(' ')} + } + function matcherFor(ns) { + return new RegExp('(?:^| )' + ns.replace(' ', ' .* ?') + '(?: |$)') + } + + function eachEvent(events, fn, iterator){ + if ($.type(events) != "string") $.each(events, iterator) + else events.split(/\s/).forEach(function(type){ iterator(type, fn) }) + } + + function eventCapture(handler, captureSetting) { + return handler.del && + (handler.e == 'focus' || handler.e == 'blur') || + !!captureSetting + } + + function realEvent(type) { + return hover[type] || type + } + + function add(element, events, fn, selector, getDelegate, capture){ + var id = zid(element), set = (handlers[id] || (handlers[id] = [])) + eachEvent(events, fn, function(event, fn){ + var handler = parse(event) + handler.fn = fn + handler.sel = selector + // emulate mouseenter, mouseleave + if (handler.e in hover) fn = function(e){ + var related = e.relatedTarget + if (!related || (related !== this && !$.contains(this, related))) + return handler.fn.apply(this, arguments) + } + handler.del = getDelegate && getDelegate(fn, event) + var callback = handler.del || fn + handler.proxy = function (e) { + var result = callback.apply(element, [e].concat(e.data)) + if (result === false) e.preventDefault(), e.stopPropagation() + return result + } + handler.i = set.length + set.push(handler) + element.addEventListener(realEvent(handler.e), handler.proxy, eventCapture(handler, capture)) + }) + } + function remove(element, events, fn, selector, capture){ + var id = zid(element) + eachEvent(events || '', fn, function(event, fn){ + findHandlers(element, event, fn, selector).forEach(function(handler){ + delete handlers[id][handler.i] + element.removeEventListener(realEvent(handler.e), handler.proxy, eventCapture(handler, capture)) + }) + }) + } + + $.event = { add: add, remove: remove } + + $.proxy = function(fn, context) { + if ($.isFunction(fn)) { + var proxyFn = function(){ return fn.apply(context, arguments) } + proxyFn._zid = zid(fn) + return proxyFn + } else if (typeof context == 'string') { + return $.proxy(fn[context], fn) + } else { + throw new TypeError("expected function") + } + } + + $.fn.bind = function(event, callback){ + return this.each(function(){ + add(this, event, callback) + }) + } + $.fn.unbind = function(event, callback){ + return this.each(function(){ + remove(this, event, callback) + }) + } + $.fn.one = function(event, callback){ + return this.each(function(i, element){ + add(this, event, callback, null, function(fn, type){ + return function(){ + var result = fn.apply(element, arguments) + remove(element, type, fn) + return result + } + }) + }) + } + + var returnTrue = function(){return true}, + returnFalse = function(){return false}, + ignoreProperties = /^([A-Z]|layer[XY]$)/, + eventMethods = { + preventDefault: 'isDefaultPrevented', + stopImmediatePropagation: 'isImmediatePropagationStopped', + stopPropagation: 'isPropagationStopped' + } + function createProxy(event) { + var key, proxy = { originalEvent: event } + for (key in event) + if (!ignoreProperties.test(key) && event[key] !== undefined) proxy[key] = event[key] + + $.each(eventMethods, function(name, predicate) { + proxy[name] = function(){ + this[predicate] = returnTrue + return event[name].apply(event, arguments) + } + proxy[predicate] = returnFalse + }) + return proxy + } + + // emulates the 'defaultPrevented' property for browsers that have none + function fix(event) { + if (!('defaultPrevented' in event)) { + event.defaultPrevented = false + var prevent = event.preventDefault + event.preventDefault = function() { + this.defaultPrevented = true + prevent.call(this) + } + } + } + + $.fn.delegate = function(selector, event, callback){ + return this.each(function(i, element){ + add(element, event, callback, selector, function(fn){ + return function(e){ + var evt, match = $(e.target).closest(selector, element).get(0) + if (match) { + evt = $.extend(createProxy(e), {currentTarget: match, liveFired: element}) + return fn.apply(match, [evt].concat([].slice.call(arguments, 1))) + } + } + }) + }) + } + $.fn.undelegate = function(selector, event, callback){ + return this.each(function(){ + remove(this, event, callback, selector) + }) + } + + $.fn.live = function(event, callback){ + $(document.body).delegate(this.selector, event, callback) + return this + } + $.fn.die = function(event, callback){ + $(document.body).undelegate(this.selector, event, callback) + return this + } + + $.fn.on = function(event, selector, callback){ + return !selector || $.isFunction(selector) ? + this.bind(event, selector || callback) : this.delegate(selector, event, callback) + } + $.fn.off = function(event, selector, callback){ + return !selector || $.isFunction(selector) ? + this.unbind(event, selector || callback) : this.undelegate(selector, event, callback) + } + + $.fn.trigger = function(event, data){ + if (typeof event == 'string' || $.isPlainObject(event)) event = $.Event(event) + fix(event) + event.data = data + return this.each(function(){ + // items in the collection might not be DOM elements + // (todo: possibly support events on plain old objects) + if('dispatchEvent' in this) this.dispatchEvent(event) + }) + } + + // triggers event handlers on current element just as if an event occurred, + // doesn't trigger an actual event, doesn't bubble + $.fn.triggerHandler = function(event, data){ + var e, result + this.each(function(i, element){ + e = createProxy(typeof event == 'string' ? $.Event(event) : event) + e.data = data + e.target = element + $.each(findHandlers(element, event.type || event), function(i, handler){ + result = handler.proxy(e) + if (e.isImmediatePropagationStopped()) return false + }) + }) + return result + } + + // shortcut methods for `.bind(event, fn)` for each event type + ;('focusin focusout load resize scroll unload click dblclick '+ + 'mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave '+ + 'change select keydown keypress keyup error').split(' ').forEach(function(event) { + $.fn[event] = function(callback) { + return callback ? + this.bind(event, callback) : + this.trigger(event) + } + }) + + ;['focus', 'blur'].forEach(function(name) { + $.fn[name] = function(callback) { + if (callback) this.bind(name, callback) + else this.each(function(){ + try { this[name]() } + catch(e) {} + }) + return this + } + }) + + $.Event = function(type, props) { + if (typeof type != 'string') props = type, type = props.type + var event = document.createEvent(specialEvents[type] || 'Events'), bubbles = true + if (props) for (var name in props) (name == 'bubbles') ? (bubbles = !!props[name]) : (event[name] = props[name]) + event.initEvent(type, bubbles, true, null, null, null, null, null, null, null, null, null, null, null, null) + event.isDefaultPrevented = function(){ return this.defaultPrevented } + return event + } + +})(Zepto) + +;(function($){ + var jsonpID = 0, + document = window.document, + key, + name, + rscript = /)<[^<]*)*<\/script>/gi, + scriptTypeRE = /^(?:text|application)\/javascript/i, + xmlTypeRE = /^(?:text|application)\/xml/i, + jsonType = 'application/json', + htmlType = 'text/html', + blankRE = /^\s*$/ + + // trigger a custom event and return false if it was cancelled + function triggerAndReturn(context, eventName, data) { + var event = $.Event(eventName) + $(context).trigger(event, data) + return !event.defaultPrevented + } + + // trigger an Ajax "global" event + function triggerGlobal(settings, context, eventName, data) { + if (settings.global) return triggerAndReturn(context || document, eventName, data) + } + + // Number of active Ajax requests + $.active = 0 + + function ajaxStart(settings) { + if (settings.global && $.active++ === 0) triggerGlobal(settings, null, 'ajaxStart') + } + function ajaxStop(settings) { + if (settings.global && !(--$.active)) triggerGlobal(settings, null, 'ajaxStop') + } + + // triggers an extra global event "ajaxBeforeSend" that's like "ajaxSend" but cancelable + function ajaxBeforeSend(xhr, settings) { + var context = settings.context + if (settings.beforeSend.call(context, xhr, settings) === false || + triggerGlobal(settings, context, 'ajaxBeforeSend', [xhr, settings]) === false) + return false + + triggerGlobal(settings, context, 'ajaxSend', [xhr, settings]) + } + function ajaxSuccess(data, xhr, settings) { + var context = settings.context, status = 'success' + settings.success.call(context, data, status, xhr) + triggerGlobal(settings, context, 'ajaxSuccess', [xhr, settings, data]) + ajaxComplete(status, xhr, settings) + } + // type: "timeout", "error", "abort", "parsererror" + function ajaxError(error, type, xhr, settings) { + var context = settings.context + settings.error.call(context, xhr, type, error) + triggerGlobal(settings, context, 'ajaxError', [xhr, settings, error]) + ajaxComplete(type, xhr, settings) + } + // status: "success", "notmodified", "error", "timeout", "abort", "parsererror" + function ajaxComplete(status, xhr, settings) { + var context = settings.context + settings.complete.call(context, xhr, status) + triggerGlobal(settings, context, 'ajaxComplete', [xhr, settings]) + ajaxStop(settings) + } + + // Empty function, used as default callback + function empty() {} + + $.ajaxJSONP = function(options){ + if (!('type' in options)) return $.ajax(options) + + var callbackName = 'jsonp' + (++jsonpID), + script = document.createElement('script'), + cleanup = function() { + clearTimeout(abortTimeout) + $(script).remove() + delete window[callbackName] + }, + abort = function(type){ + cleanup() + // In case of manual abort or timeout, keep an empty function as callback + // so that the SCRIPT tag that eventually loads won't result in an error. + if (!type || type == 'timeout') window[callbackName] = empty + ajaxError(null, type || 'abort', xhr, options) + }, + xhr = { abort: abort }, abortTimeout + + if (ajaxBeforeSend(xhr, options) === false) { + abort('abort') + return false + } + + window[callbackName] = function(data){ + cleanup() + ajaxSuccess(data, xhr, options) + } + + script.onerror = function() { abort('error') } + + script.src = options.url.replace(/=\?/, '=' + callbackName) + $('head').append(script) + + if (options.timeout > 0) abortTimeout = setTimeout(function(){ + abort('timeout') + }, options.timeout) + + return xhr + } + + $.ajaxSettings = { + // Default type of request + type: 'GET', + // Callback that is executed before request + beforeSend: empty, + // Callback that is executed if the request succeeds + success: empty, + // Callback that is executed the the server drops error + error: empty, + // Callback that is executed on request complete (both: error and success) + complete: empty, + // The context for the callbacks + context: null, + // Whether to trigger "global" Ajax events + global: true, + // Transport + xhr: function () { + return new window.XMLHttpRequest() + }, + // MIME types mapping + accepts: { + script: 'text/javascript, application/javascript', + json: jsonType, + xml: 'application/xml, text/xml', + html: htmlType, + text: 'text/plain' + }, + // Whether the request is to another domain + crossDomain: false, + // Default timeout + timeout: 0, + // Whether data should be serialized to string + processData: true, + // Whether the browser should be allowed to cache GET responses + cache: true, + } + + function mimeToDataType(mime) { + if (mime) mime = mime.split(';', 2)[0] + return mime && ( mime == htmlType ? 'html' : + mime == jsonType ? 'json' : + scriptTypeRE.test(mime) ? 'script' : + xmlTypeRE.test(mime) && 'xml' ) || 'text' + } + + function appendQuery(url, query) { + return (url + '&' + query).replace(/[&?]{1,2}/, '?') + } + + // serialize payload and append it to the URL for GET requests + function serializeData(options) { + if (options.processData && options.data && $.type(options.data) != "string") + options.data = $.param(options.data, options.traditional) + if (options.data && (!options.type || options.type.toUpperCase() == 'GET')) + options.url = appendQuery(options.url, options.data) + } + + $.ajax = function(options){ + var settings = $.extend({}, options || {}) + for (key in $.ajaxSettings) if (settings[key] === undefined) settings[key] = $.ajaxSettings[key] + + ajaxStart(settings) + + if (!settings.crossDomain) settings.crossDomain = /^([\w-]+:)?\/\/([^\/]+)/.test(settings.url) && + RegExp.$2 != window.location.host + + if (!settings.url) settings.url = window.location.toString() + serializeData(settings) + if (settings.cache === false) settings.url = appendQuery(settings.url, '_=' + Date.now()) + + var dataType = settings.dataType, hasPlaceholder = /=\?/.test(settings.url) + if (dataType == 'jsonp' || hasPlaceholder) { + if (!hasPlaceholder) settings.url = appendQuery(settings.url, 'callback=?') + return $.ajaxJSONP(settings) + } + + var mime = settings.accepts[dataType], + baseHeaders = { }, + protocol = /^([\w-]+:)\/\//.test(settings.url) ? RegExp.$1 : window.location.protocol, + xhr = settings.xhr(), abortTimeout + + if (!settings.crossDomain) baseHeaders['X-Requested-With'] = 'XMLHttpRequest' + if (mime) { + baseHeaders['Accept'] = mime + if (mime.indexOf(',') > -1) mime = mime.split(',', 2)[0] + xhr.overrideMimeType && xhr.overrideMimeType(mime) + } + if (settings.contentType || (settings.contentType !== false && settings.data && settings.type.toUpperCase() != 'GET')) + baseHeaders['Content-Type'] = (settings.contentType || 'application/x-www-form-urlencoded') + settings.headers = $.extend(baseHeaders, settings.headers || {}) + + xhr.onreadystatechange = function(){ + if (xhr.readyState == 4) { + xhr.onreadystatechange = empty; + clearTimeout(abortTimeout) + var result, error = false + if ((xhr.status >= 200 && xhr.status < 300) || xhr.status == 304 || (xhr.status == 0 && protocol == 'file:')) { + dataType = dataType || mimeToDataType(xhr.getResponseHeader('content-type')) + result = xhr.responseText + + try { + // http://perfectionkills.com/global-eval-what-are-the-options/ + if (dataType == 'script') (1,eval)(result) + else if (dataType == 'xml') result = xhr.responseXML + else if (dataType == 'json') result = blankRE.test(result) ? null : $.parseJSON(result) + } catch (e) { error = e } + + if (error) ajaxError(error, 'parsererror', xhr, settings) + else ajaxSuccess(result, xhr, settings) + } else { + ajaxError(null, xhr.status ? 'error' : 'abort', xhr, settings) + } + } + } + + var async = 'async' in settings ? settings.async : true + xhr.open(settings.type, settings.url, async) + + for (name in settings.headers) xhr.setRequestHeader(name, settings.headers[name]) + + if (ajaxBeforeSend(xhr, settings) === false) { + xhr.abort() + return false + } + + if (settings.timeout > 0) abortTimeout = setTimeout(function(){ + xhr.onreadystatechange = empty + xhr.abort() + ajaxError(null, 'timeout', xhr, settings) + }, settings.timeout) + + // avoid sending empty string (#319) + xhr.send(settings.data ? settings.data : null) + return xhr + } + + // handle optional data/success arguments + function parseArguments(url, data, success, dataType) { + var hasData = !$.isFunction(data) + return { + url: url, + data: hasData ? data : undefined, + success: !hasData ? data : $.isFunction(success) ? success : undefined, + dataType: hasData ? dataType || success : success + } + } + + $.get = function(url, data, success, dataType){ + return $.ajax(parseArguments.apply(null, arguments)) + } + + $.post = function(url, data, success, dataType){ + var options = parseArguments.apply(null, arguments) + options.type = 'POST' + return $.ajax(options) + } + + $.getJSON = function(url, data, success){ + var options = parseArguments.apply(null, arguments) + options.dataType = 'json' + return $.ajax(options) + } + + $.fn.load = function(url, data, success){ + if (!this.length) return this + var self = this, parts = url.split(/\s/), selector, + options = parseArguments(url, data, success), + callback = options.success + if (parts.length > 1) options.url = parts[0], selector = parts[1] + options.success = function(response){ + self.html(selector ? + $('
').html(response.replace(rscript, "")).find(selector) + : response) + callback && callback.apply(self, arguments) + } + $.ajax(options) + return this + } + + var escape = encodeURIComponent + + function serialize(params, obj, traditional, scope){ + var type, array = $.isArray(obj) + $.each(obj, function(key, value) { + type = $.type(value) + if (scope) key = traditional ? scope : scope + '[' + (array ? '' : key) + ']' + // handle data in serializeArray() format + if (!scope && array) params.add(value.name, value.value) + // recurse into nested objects + else if (type == "array" || (!traditional && type == "object")) + serialize(params, value, traditional, key) + else params.add(key, value) + }) + } + + $.param = function(obj, traditional){ + var params = [] + params.add = function(k, v){ this.push(escape(k) + '=' + escape(v)) } + serialize(params, obj, traditional) + return params.join('&').replace(/%20/g, '+') + } +})(Zepto) + +;(function ($) { + $.fn.serializeArray = function () { + var result = [], el + $( Array.prototype.slice.call(this.get(0).elements) ).each(function () { + el = $(this) + var type = el.attr('type') + if (this.nodeName.toLowerCase() != 'fieldset' && + !this.disabled && type != 'submit' && type != 'reset' && type != 'button' && + ((type != 'radio' && type != 'checkbox') || this.checked)) + result.push({ + name: el.attr('name'), + value: el.val() + }) + }) + return result + } + + $.fn.serialize = function () { + var result = [] + this.serializeArray().forEach(function (elm) { + result.push( encodeURIComponent(elm.name) + '=' + encodeURIComponent(elm.value) ) + }) + return result.join('&') + } + + $.fn.submit = function (callback) { + if (callback) this.bind('submit', callback) + else if (this.length) { + var event = $.Event('submit') + this.eq(0).trigger(event) + if (!event.defaultPrevented) this.get(0).submit() + } + return this + } + +})(Zepto) + +;(function($, undefined){ + var prefix = '', eventPrefix, endEventName, endAnimationName, + vendors = { Webkit: 'webkit', Moz: '', O: 'o', ms: 'MS' }, + document = window.document, testEl = document.createElement('div'), + supportedTransforms = /^((translate|rotate|scale)(X|Y|Z|3d)?|matrix(3d)?|perspective|skew(X|Y)?)$/i, + transform, + transitionProperty, transitionDuration, transitionTiming, + animationName, animationDuration, animationTiming, + cssReset = {} + + function dasherize(str) { return downcase(str.replace(/([a-z])([A-Z])/, '$1-$2')) } + function downcase(str) { return str.toLowerCase() } + function normalizeEvent(name) { return eventPrefix ? eventPrefix + name : downcase(name) } + + $.each(vendors, function(vendor, event){ + if (testEl.style[vendor + 'TransitionProperty'] !== undefined) { + prefix = '-' + downcase(vendor) + '-' + eventPrefix = event + return false + } + }) + + transform = prefix + 'transform' + cssReset[transitionProperty = prefix + 'transition-property'] = + cssReset[transitionDuration = prefix + 'transition-duration'] = + cssReset[transitionTiming = prefix + 'transition-timing-function'] = + cssReset[animationName = prefix + 'animation-name'] = + cssReset[animationDuration = prefix + 'animation-duration'] = + cssReset[animationTiming = prefix + 'animation-timing-function'] = '' + + $.fx = { + off: (eventPrefix === undefined && testEl.style.transitionProperty === undefined), + speeds: { _default: 400, fast: 200, slow: 600 }, + cssPrefix: prefix, + transitionEnd: normalizeEvent('TransitionEnd'), + animationEnd: normalizeEvent('AnimationEnd') + } + + $.fn.animate = function(properties, duration, ease, callback){ + if ($.isPlainObject(duration)) + ease = duration.easing, callback = duration.complete, duration = duration.duration + if (duration) duration = (typeof duration == 'number' ? duration : + ($.fx.speeds[duration] || $.fx.speeds._default)) / 1000 + return this.anim(properties, duration, ease, callback) + } + + $.fn.anim = function(properties, duration, ease, callback){ + var key, cssValues = {}, cssProperties, transforms = '', + that = this, wrappedCallback, endEvent = $.fx.transitionEnd + + if (duration === undefined) duration = 0.4 + if ($.fx.off) duration = 0 + + if (typeof properties == 'string') { + // keyframe animation + cssValues[animationName] = properties + cssValues[animationDuration] = duration + 's' + cssValues[animationTiming] = (ease || 'linear') + endEvent = $.fx.animationEnd + } else { + cssProperties = [] + // CSS transitions + for (key in properties) + if (supportedTransforms.test(key)) transforms += key + '(' + properties[key] + ') ' + else cssValues[key] = properties[key], cssProperties.push(dasherize(key)) + + if (transforms) cssValues[transform] = transforms, cssProperties.push(transform) + if (duration > 0 && typeof properties === 'object') { + cssValues[transitionProperty] = cssProperties.join(', ') + cssValues[transitionDuration] = duration + 's' + cssValues[transitionTiming] = (ease || 'linear') + } + } + + wrappedCallback = function(event){ + if (typeof event !== 'undefined') { + if (event.target !== event.currentTarget) return // makes sure the event didn't bubble from "below" + $(event.target).unbind(endEvent, wrappedCallback) + } + $(this).css(cssReset) + callback && callback.call(this) + } + if (duration > 0) this.bind(endEvent, wrappedCallback) + + // trigger page reflow so new elements can animate + this.size() && this.get(0).clientLeft + + this.css(cssValues) + + if (duration <= 0) setTimeout(function() { + that.each(function(){ wrappedCallback.call(this) }) + }, 0) + + return this + } + + testEl = null +})(Zepto) diff --git a/js/libs/zepto.min.js b/js/libs/zepto.min.js deleted file mode 100644 index 57e641e6..00000000 --- a/js/libs/zepto.min.js +++ /dev/null @@ -1,5 +0,0 @@ -/* Zepto v1.0rc1 - polyfill zepto event detect fx ajax form touch - zeptojs.com/license */ -// The default build includes the following modules: -// Core, Ajax, Event, Form, Effects, Polyfill, and Detect. - -(function(a){String.prototype.trim===a&&(String.prototype.trim=function(){return this.replace(/^\s+/,"").replace(/\s+$/,"")}),Array.prototype.reduce===a&&(Array.prototype.reduce=function(b){if(this===void 0||this===null)throw new TypeError;var c=Object(this),d=c.length>>>0,e=0,f;if(typeof b!="function")throw new TypeError;if(d==0&&arguments.length==1)throw new TypeError;if(arguments.length>=2)f=arguments[1];else do{if(e in c){f=c[e++];break}if(++e>=d)throw new TypeError}while(!0);while(e0?[].concat.apply([],a):a}function H(a){return a.replace(/::/g,"/").replace(/([A-Z]+)([A-Z][a-z])/g,"$1_$2").replace(/([a-z\d])([A-Z])/g,"$1_$2").replace(/_/g,"-").toLowerCase()}function I(a){return a in i?i[a]:i[a]=new RegExp("(^|\\s)"+a+"(\\s|$)")}function J(a,b){return typeof b=="number"&&!k[H(a)]?b+"px":b}function K(a){var b,c;return h[a]||(b=g.createElement(a),g.body.appendChild(b),c=j(b,"").getPropertyValue("display"),b.parentNode.removeChild(b),c=="none"&&(c="block"),h[a]=c),h[a]}function L(b,d){return d===a?c(b):c(b).filter(d)}function M(a,b,c,d){return A(b)?b.call(a,c,d):b}function N(a,b,d){var e=a%2?b:b.parentNode;e?e.insertBefore(d,a?a==1?e.firstChild:a==2?b:null:b.nextSibling):c(d).remove()}function O(a,b){b(a);for(var c in a.childNodes)O(a.childNodes[c],b)}var a,b,c,d,e=[],f=e.slice,g=window.document,h={},i={},j=g.defaultView.getComputedStyle,k={"column-count":1,columns:1,"font-weight":1,"line-height":1,opacity:1,"z-index":1,zoom:1},l=/^\s*<(\w+|!)[^>]*>/,m=[1,3,8,9,11],n=["after","prepend","before","append"],o=g.createElement("table"),p=g.createElement("tr"),q={tr:g.createElement("tbody"),tbody:o,thead:o,tfoot:o,td:p,th:p,"*":g.createElement("div")},r=/complete|loaded|interactive/,s=/^\.([\w-]+)$/,t=/^#([\w-]+)$/,u=/^[\w-]+$/,v={}.toString,w={},x,y,z=g.createElement("div");return w.matches=function(a,b){if(!a||a.nodeType!==1)return!1;var c=a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.matchesSelector;if(c)return c.call(a,b);var d,e=a.parentNode,f=!e;return f&&(e=z).appendChild(a),d=~w.qsa(e,b).indexOf(a),f&&z.removeChild(a),d},x=function(a){return a.replace(/-+(.)?/g,function(a,b){return b?b.toUpperCase():""})},y=function(a){return a.filter(function(b,c){return a.indexOf(b)==c})},w.fragment=function(b,d){d===a&&(d=l.test(b)&&RegExp.$1),d in q||(d="*");var e=q[d];return e.innerHTML=""+b,c.each(f.call(e.childNodes),function(){e.removeChild(this)})},w.Z=function(a,b){return a=a||[],a.__proto__=arguments.callee.prototype,a.selector=b||"",a},w.isZ=function(a){return a instanceof w.Z},w.init=function(b,d){if(!b)return w.Z();if(A(b))return c(g).ready(b);if(w.isZ(b))return b;var e;if(D(b))e=F(b);else if(C(b))e=[c.extend({},b)],b=null;else if(m.indexOf(b.nodeType)>=0||b===window)e=[b],b=null;else if(l.test(b))e=w.fragment(b.trim(),RegExp.$1),b=null;else{if(d!==a)return c(d).find(b);e=w.qsa(g,b)}return w.Z(e,b)},c=function(a,b){return w.init(a,b)},c.extend=function(c){return f.call(arguments,1).forEach(function(d){for(b in d)d[b]!==a&&(c[b]=d[b])}),c},w.qsa=function(a,b){var c;return a===g&&t.test(b)?(c=a.getElementById(RegExp.$1))?[c]:e:a.nodeType!==1&&a.nodeType!==9?e:f.call(s.test(b)?a.getElementsByClassName(RegExp.$1):u.test(b)?a.getElementsByTagName(b):a.querySelectorAll(b))},c.isFunction=A,c.isObject=B,c.isArray=D,c.isPlainObject=C,c.inArray=function(a,b,c){return e.indexOf.call(b,a,c)},c.trim=function(a){return a.trim()},c.uuid=0,c.map=function(a,b){var c,d=[],e,f;if(E(a))for(e=0;e0&&w.matches(this[0],a)},not:function(b){var d=[];if(A(b)&&b.call!==a)this.each(function(a){b.call(this,a)||d.push(this)});else{var e=typeof b=="string"?this.filter(b):E(b)&&A(b.item)?f.call(b):c(b);this.forEach(function(a){e.indexOf(a)<0&&d.push(a)})}return c(d)},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){var a=this[0];return a&&!B(a)?a:c(a)},last:function(){var a=this[this.length-1];return a&&!B(a)?a:c(a)},find:function(a){var b;return this.length==1?b=w.qsa(this[0],a):b=this.map(function(){return w.qsa(this,a)}),c(b)},closest:function(a,b){var d=this[0];while(d&&!w.matches(d,a))d=d!==b&&d!==g&&d.parentNode;return c(d)},parents:function(a){var b=[],d=this;while(d.length>0)d=c.map(d,function(a){if((a=a.parentNode)&&a!==g&&b.indexOf(a)<0)return b.push(a),a});return L(b,a)},parent:function(a){return L(y(this.pluck("parentNode")),a)},children:function(a){return L(this.map(function(){return f.call(this.children)}),a)},siblings:function(a){return L(this.map(function(a,b){return f.call(b.parentNode.children).filter(function(a){return a!==b})}),a)},empty:function(){return this.each(function(){this.innerHTML=""})},pluck:function(a){return this.map(function(){return this[a]})},show:function(){return this.each(function(){this.style.display=="none"&&(this.style.display=null),j(this,"").getPropertyValue("display")=="none"&&(this.style.display=K(this.nodeName))})},replaceWith:function(a){return this.before(a).remove()},wrap:function(a){return this.each(function(){c(this).wrapAll(c(a)[0].cloneNode(!1))})},wrapAll:function(a){return this[0]&&(c(this[0]).before(a=c(a)),a.append(this)),this},unwrap:function(){return this.parent().each(function(){c(this).replaceWith(c(this).children())}),this},clone:function(){return c(this.map(function(){return this.cloneNode(!0)}))},hide:function(){return this.css("display","none")},toggle:function(b){return(b===a?this.css("display")=="none":b)?this.show():this.hide()},prev:function(){return c(this.pluck("previousElementSibling"))},next:function(){return c(this.pluck("nextElementSibling"))},html:function(b){return b===a?this.length>0?this[0].innerHTML:null:this.each(function(a){var d=this.innerHTML;c(this).empty().append(M(this,b,a,d))})},text:function(b){return b===a?this.length>0?this[0].textContent:null:this.each(function(){this.textContent=b})},attr:function(c,d){var e;return typeof c=="string"&&d===a?this.length==0||this[0].nodeType!==1?a:c=="value"&&this[0].nodeName=="INPUT"?this.val():!(e=this[0].getAttribute(c))&&c in this[0]?this[0][c]:e:this.each(function(a){if(this.nodeType!==1)return;if(B(c))for(b in c)this.setAttribute(b,c[b]);else this.setAttribute(c,M(this,d,a,this.getAttribute(c)))})},removeAttr:function(a){return this.each(function(){this.nodeType===1&&this.removeAttribute(a)})},prop:function(b,c){return c===a?this[0]?this[0][b]:a:this.each(function(a){this[b]=M(this,c,a,this[b])})},data:function(b,c){var d=this.attr("data-"+H(b),c);return d!==null?d:a},val:function(b){return b===a?this.length>0?this[0].value:a:this.each(function(a){this.value=M(this,b,a,this.value)})},offset:function(){if(this.length==0)return null;var a=this[0].getBoundingClientRect();return{left:a.left+window.pageXOffset,top:a.top+window.pageYOffset,width:a.width,height:a.height}},css:function(c,d){if(d===a&&typeof c=="string")return this.length==0?a:this[0].style[x(c)]||j(this[0],"").getPropertyValue(c);var e="";for(b in c)typeof c[b]=="string"&&c[b]==""?this.each(function(){this.style.removeProperty(H(b))}):e+=H(b)+":"+J(b,c[b])+";";return typeof c=="string"&&(d==""?this.each(function(){this.style.removeProperty(H(c))}):e=H(c)+":"+J(c,d)),this.each(function(){this.style.cssText+=";"+e})},index:function(a){return a?this.indexOf(c(a)[0]):this.parent().children().indexOf(this[0])},hasClass:function(a){return this.length<1?!1:I(a).test(this[0].className)},addClass:function(a){return this.each(function(b){d=[];var e=this.className,f=M(this,a,b,e);f.split(/\s+/g).forEach(function(a){c(this).hasClass(a)||d.push(a)},this),d.length&&(this.className+=(e?" ":"")+d.join(" "))})},removeClass:function(b){return this.each(function(c){if(b===a)return this.className="";d=this.className,M(this,b,c,d).split(/\s+/g).forEach(function(a){d=d.replace(I(a)," ")}),this.className=d.trim()})},toggleClass:function(b,d){return this.each(function(e){var f=M(this,b,e,this.className);(d===a?!c(this).hasClass(f):d)?c(this).addClass(f):c(this).removeClass(f)})}},["width","height"].forEach(function(b){c.fn[b]=function(d){var e,f=b.replace(/./,function(a){return a[0].toUpperCase()});return d===a?this[0]==window?window["inner"+f]:this[0]==g?g.documentElement["offset"+f]:(e=this.offset())&&e[b]:this.each(function(a){var e=c(this);e.css(b,M(this,d,a,e[b]()))})}}),n.forEach(function(a,b){c.fn[a]=function(){var a=c.map(arguments,function(a){return B(a)?a:w.fragment(a)});if(a.length<1)return this;var d=this.length,e=d>1,f=b<2;return this.each(function(c,g){for(var h=0;h0&&this.bind(o,n),setTimeout(function(){m.css(i),e<=0&&setTimeout(function(){m.each(function(){n.call(this)})},0)},0),this},i=null}(Zepto),function($){function triggerAndReturn(a,b,c){var d=$.Event(b);return $(a).trigger(d,c),!d.defaultPrevented}function triggerGlobal(a,b,c,d){if(a.global)return triggerAndReturn(b||document,c,d)}function ajaxStart(a){a.global&&$.active++===0&&triggerGlobal(a,null,"ajaxStart")}function ajaxStop(a){a.global&&!--$.active&&triggerGlobal(a,null,"ajaxStop")}function ajaxBeforeSend(a,b){var c=b.context;if(b.beforeSend.call(c,a,b)===!1||triggerGlobal(b,c,"ajaxBeforeSend",[a,b])===!1)return!1;triggerGlobal(b,c,"ajaxSend",[a,b])}function ajaxSuccess(a,b,c){var d=c.context,e="success";c.success.call(d,a,e,b),triggerGlobal(c,d,"ajaxSuccess",[b,c,a]),ajaxComplete(e,b,c)}function ajaxError(a,b,c,d){var e=d.context;d.error.call(e,c,b,a),triggerGlobal(d,e,"ajaxError",[c,d,a]),ajaxComplete(b,c,d)}function ajaxComplete(a,b,c){var d=c.context;c.complete.call(d,b,a),triggerGlobal(c,d,"ajaxComplete",[b,c]),ajaxStop(c)}function empty(){}function mimeToDataType(a){return a&&(a==htmlType?"html":a==jsonType?"json":scriptTypeRE.test(a)?"script":xmlTypeRE.test(a)&&"xml")||"text"}function appendQuery(a,b){return(a+"&"+b).replace(/[&?]{1,2}/,"?")}function serializeData(a){isObject(a.data)&&(a.data=$.param(a.data)),a.data&&(!a.type||a.type.toUpperCase()=="GET")&&(a.url=appendQuery(a.url,a.data))}function serialize(a,b,c,d){var e=$.isArray(b);$.each(b,function(b,f){d&&(b=c?d:d+"["+(e?"":b)+"]"),!d&&e?a.add(f.name,f.value):(c?$.isArray(f):isObject(f))?serialize(a,f,c,b):a.add(b,f)})}var jsonpID=0,isObject=$.isObject,document=window.document,key,name,rscript=/)<[^<]*)*<\/script>/gi,scriptTypeRE=/^(?:text|application)\/javascript/i,xmlTypeRE=/^(?:text|application)\/xml/i,jsonType="application/json",htmlType="text/html",blankRE=/^\s*$/;$.active=0,$.ajaxJSONP=function(a){var b="jsonp"+ ++jsonpID,c=document.createElement("script"),d=function(){$(c).remove(),b in window&&(window[b]=empty),ajaxComplete("abort",e,a)},e={abort:d},f;return a.error&&(c.onerror=function(){e.abort(),a.error()}),window[b]=function(d){clearTimeout(f),$(c).remove(),delete window[b],ajaxSuccess(d,e,a)},serializeData(a),c.src=a.url.replace(/=\?/,"="+b),$("head").append(c),a.timeout>0&&(f=setTimeout(function(){e.abort(),ajaxComplete("timeout",e,a)},a.timeout)),e},$.ajaxSettings={type:"GET",beforeSend:empty,success:empty,error:empty,complete:empty,context:null,global:!0,xhr:function(){return new window.XMLHttpRequest},accepts:{script:"text/javascript, application/javascript",json:jsonType,xml:"application/xml, text/xml",html:htmlType,text:"text/plain"},crossDomain:!1,timeout:0},$.ajax=function(options){var settings=$.extend({},options||{});for(key in $.ajaxSettings)settings[key]===undefined&&(settings[key]=$.ajaxSettings[key]);ajaxStart(settings),settings.crossDomain||(settings.crossDomain=/^([\w-]+:)?\/\/([^\/]+)/.test(settings.url)&&RegExp.$2!=window.location.host);var dataType=settings.dataType,hasPlaceholder=/=\?/.test(settings.url);if(dataType=="jsonp"||hasPlaceholder)return hasPlaceholder||(settings.url=appendQuery(settings.url,"callback=?")),$.ajaxJSONP(settings);settings.url||(settings.url=window.location.toString()),serializeData(settings);var mime=settings.accepts[dataType],baseHeaders={},protocol=/^([\w-]+:)\/\//.test(settings.url)?RegExp.$1:window.location.protocol,xhr=$.ajaxSettings.xhr(),abortTimeout;settings.crossDomain||(baseHeaders["X-Requested-With"]="XMLHttpRequest"),mime&&(baseHeaders.Accept=mime,mime.indexOf(",")>-1&&(mime=mime.split(",",2)[0]),xhr.overrideMimeType&&xhr.overrideMimeType(mime));if(settings.contentType||settings.data&&settings.type.toUpperCase()!="GET")baseHeaders["Content-Type"]=settings.contentType||"application/x-www-form-urlencoded";settings.headers=$.extend(baseHeaders,settings.headers||{}),xhr.onreadystatechange=function(){if(xhr.readyState==4){clearTimeout(abortTimeout);var result,error=!1;if(xhr.status>=200&&xhr.status<300||xhr.status==304||xhr.status==0&&protocol=="file:"){dataType=dataType||mimeToDataType(xhr.getResponseHeader("content-type")),result=xhr.responseText;try{dataType=="script"?(1,eval)(result):dataType=="xml"?result=xhr.responseXML:dataType=="json"&&(result=blankRE.test(result)?null:JSON.parse(result))}catch(e){error=e}error?ajaxError(error,"parsererror",xhr,settings):ajaxSuccess(result,xhr,settings)}else ajaxError(null,"error",xhr,settings)}};var async="async"in settings?settings.async:!0;xhr.open(settings.type,settings.url,async);for(name in settings.headers)xhr.setRequestHeader(name,settings.headers[name]);return ajaxBeforeSend(xhr,settings)===!1?(xhr.abort(),!1):(settings.timeout>0&&(abortTimeout=setTimeout(function(){xhr.onreadystatechange=empty,xhr.abort(),ajaxError(null,"timeout",xhr,settings)},settings.timeout)),xhr.send(settings.data?settings.data:null),xhr)},$.get=function(a,b){return $.ajax({url:a,success:b})},$.post=function(a,b,c,d){return $.isFunction(b)&&(d=d||c,c=b,b=null),$.ajax({type:"POST",url:a,data:b,success:c,dataType:d})},$.getJSON=function(a,b){return $.ajax({url:a,success:b,dataType:"json"})},$.fn.load=function(a,b){if(!this.length)return this;var c=this,d=a.split(/\s/),e;return d.length>1&&(a=d[0],e=d[1]),$.get(a,function(a){c.html(e?$(document.createElement("div")).html(a.replace(rscript,"")).find(e).html():a),b&&b.call(c)}),this};var escape=encodeURIComponent;$.param=function(a,b){var c=[];return c.add=function(a,b){this.push(escape(a)+"="+escape(b))},serialize(c,a,b),c.join("&").replace("%20","+")}}(Zepto),function(a){a.fn.serializeArray=function(){var b=[],c;return a(Array.prototype.slice.call(this.get(0).elements)).each(function(){c=a(this);var d=c.attr("type");this.nodeName.toLowerCase()!="fieldset"&&!this.disabled&&d!="submit"&&d!="reset"&&d!="button"&&(d!="radio"&&d!="checkbox"||this.checked)&&b.push({name:c.attr("name"),value:c.val()})}),b},a.fn.serialize=function(){var a=[];return this.serializeArray().forEach(function(b){a.push(encodeURIComponent(b.name)+"="+encodeURIComponent(b.value))}),a.join("&")},a.fn.submit=function(b){if(b)this.bind("submit",b);else if(this.length){var c=a.Event("submit");this.eq(0).trigger(c),c.defaultPrevented||this.get(0).submit()}return this}}(Zepto),function(a){function d(a){return"tagName"in a?a:a.parentNode}function e(a,b,c,d){var e=Math.abs(a-b),f=Math.abs(c-d);return e>=f?a-b>0?"Left":"Right":c-d>0?"Up":"Down"}function h(){g=null,b.last&&(b.el.trigger("longTap"),b={})}function i(){g&&clearTimeout(g),g=null}var b={},c,f=750,g;a(document).ready(function(){var j,k;a(document.body).bind("touchstart",function(e){j=Date.now(),k=j-(b.last||j),b.el=a(d(e.touches[0].target)),c&&clearTimeout(c),b.x1=e.touches[0].pageX,b.y1=e.touches[0].pageY,k>0&&k<=250&&(b.isDoubleTap=!0),b.last=j,g=setTimeout(h,f)}).bind("touchmove",function(a){i(),b.x2=a.touches[0].pageX,b.y2=a.touches[0].pageY}).bind("touchend",function(a){i(),b.isDoubleTap?(b.el.trigger("doubleTap"),b={}):b.x2&&Math.abs(b.x1-b.x2)>30||b.y2&&Math.abs(b.y1-b.y2)>30?(b.el.trigger("swipe")&&b.el.trigger("swipe"+e(b.x1,b.x2,b.y1,b.y2)),b={}):"last"in b&&(b.el.trigger("tap"),c=setTimeout(function(){c=null,b.el.trigger("singleTap"),b={}},250))}).bind("touchcancel",function(){c&&clearTimeout(c),g&&clearTimeout(g),g=c=null,b={}})}),["swipe","swipeLeft","swipeRight","swipeUp","swipeDown","doubleTap","tap","singleTap","longTap"].forEach(function(b){a.fn[b]=function(a){return this.bind(b,a)}})}(Zepto); \ No newline at end of file diff --git a/package.json b/package.json index 40b4e130..7dee7d37 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "Kickoff", "title": "Kickoff", "description": "TMW's front-end framework", - "version": "0.5.0", + "version": "0.5.1", "homepage": "https://github.com/tmwagency/kickoff", "author": { "name": "Zander Martineau", diff --git a/readme.md b/readme.md index e1dd19aa..1208555c 100644 --- a/readme.md +++ b/readme.md @@ -2,8 +2,6 @@ Developed by [Ashley Nolan](https://github.com/dragongraphics) & [Zander Martineau](https://github.com/mrmartineau) -**This is a work in progress set of base templates, and as such will be changed quite regularly. If using be sure to read the documentation to understand it fully before using** - ### Browser support There are quite a few CSS & Javascript fallbacks/polyfills to cater for older browser's lack of features - we're looking at you IE! diff --git a/scss/_buttons.scss b/scss/_buttons.scss index eb28aa01..29ba3feb 100644 --- a/scss/_buttons.scss +++ b/scss/_buttons.scss @@ -1,59 +1,59 @@ // ==================== // === BUTTONS.scss === // ==================== -// * Base Styles +// Based on csswizardry.com/beautons // -// Base styles +////////////////////// +// Base button styles. +// +// 1. Allow us to better style box model properties. +// 2. Line different sized buttons up a little nicer. +// 3. Stop buttons wrapping and looking broken. +// 4. Make buttons inherit font styles. +// 5. Force all elements using beautons to appear clickable. +// 6. Normalise box model styles. +// 7. If the button’s text is 1em, and the button is (3 * font-size) tall, then +// there is 1em of space above and below that text. We therefore apply 1em +// of space to the left and right, as padding, to keep consistent spacing. +// 8. Fixes odd inner spacing in IE7. +// 9. Don’t allow buttons to have underlines; it kinda ruins the illusion. +// 10. Prevents from inheriting default anchor styles. -// Core .btn { - @extend %inline-block; - padding: 4px 12px; - margin-bottom: 0; // For input.btn - @include font-size($base-font-size); - @include line-height($base-line-height); + display:inline-block; /* [1] */ + vertical-align:middle; /* [2] */ + white-space:nowrap; /* [3] */ + font-family:inherit; /* [4] */ + font-size:100%; /* [4] */ + cursor:pointer; /* [5] */ + border:none; /* [6] */ + margin:0; /* [6] */ + padding-top: 0; /* [6] */ + padding-bottom:0; /* [6] */ + line-height:3; /* [7] */ + height: 3em; /* [7] */ + padding-right:1em; /* [7] */ + padding-left: 1em; /* [7] */ + overflow:visible; /* [8] */ text-align: center; - // vertical-align: middle; - cursor: pointer; - @include button-background($btn-background, $btn-background-highlight, #333, 0 1px 1px rgba(255,255,255,.75)); + // You may want to change this + background-color: $btn-background; - border: 1px solid $btn-border; - *border: 0; // Remove the border to prevent IE7's black border on input:focus - border-bottom-color: darken($btn-border, 10%); @include border-radius(4px); - - // Give IE7 some love - @extend %ie7-restore-left-whitespace; - + @include user-select(none); $shadow: inset 0 1px 0 rgba(255,255,255,.3), 0 1px 2px rgba(0,0,0,.05); @include box-shadow($shadow); - // Hover/focus state - &:hover, - &:focus { - color: #333; + &, &:hover, &:active, &:focus, &:visited { text-decoration: none; - background-position-y: -15px; - - // transition is only when going to hover/focus, otherwise the background - // behind the gradient (there for IE<=9 fallback) gets mismatched - @include transition(background-position .1s linear); - } - - // Focus state for keyboard and accessibility - &:focus { - @extend %tab-focus; } - // Active state - &.active, - &:active { - background-image: none; - outline: 0; - $shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05); - @include box-shadow($shadow); + &:active, + &:focus{ + outline:none; + box-shadow:0 0 5px rgba(0, 0, 0, 0.5) inset; } // Disabled state @@ -64,55 +64,59 @@ @include opacity(65); @include box-shadow(none); } - } - - // Button Sizes // -------------------------------------------------- - +// These all follow the same sizing rules as above; text is 1em, space around it // Large .btn-large { - padding: 11px 19px; @include font-size($base-font-size + 2); + line-height:3.5; + height: 3.5em; + padding-right:1.5em; + padding-left: 1.5em; @include border-radius(6px); } -.btn-large [class^="icon-"], -.btn-large [class*=" icon-"] { - margin-top: 4px; -} // Small .btn-small { - padding: 2px 10px; - @include font-size($base-font-size - 2); - @include border-radius(3px); -} -.btn-small [class^="icon-"], -.btn-small [class*=" icon-"] { - margin-top: 0; -} -.btn-mini [class^="icon-"], -.btn-mini [class*=" icon-"] { - margin-top: -1px; -} - -// Mini -.btn-mini { - padding: 0 6px; - @include font-size($base-font-size - 2); + @include font-size(13); + line-height:1.5; + height: 1.5em; + padding-right:0.5em; + padding-left: 0.5em; @include border-radius(3px); } .btn-pill { + padding-left: 1.5em; + padding-right: 1.5em; @include border-radius(100em); - padding-left: 15px; - padding-right: 15px; } -.btn-flat { +// Close button: for lightboxes etc +.btn-close { + position: absolute; + right: 20px; + top: 20px; + display: block; + height: 20px; + width: 20px; + line-height: 17px; + + background: #000; + color: $color-primary; + text-align: center; + @include border-radius(5px); + cursor: pointer; + @include user-select(none); + + &:hover { + color: #fff; + @include border-radius(50px); + } } // Block button @@ -122,12 +126,11 @@ width: 100%; padding-left: 0; padding-right: 0; - // @include box-sizing(border-box); } // Vertically space out multiple block buttons .btn-block + .btn-block { - margin-top: 5px; + margin-top: 10px; } // Specificity overrides @@ -139,7 +142,15 @@ input[type="button"] { } } - +// Make the button inherit sizing from its parent. +.btn-natural{ + vertical-align:baseline; + font-size:inherit; + line-height:inherit; + height:auto; + padding-right:0.5em; + padding-left: 0.5em; +} // Alternate buttons // -------------------------------------------------- @@ -157,61 +168,65 @@ input[type="button"] { // Set the backgrounds // ------------------------- .btn-primary { - @include button-background($btn-primary-background, $btn-primary-background-highlight); + background-color: $btn-primary-background; + color: #fff !important; + text-shadow: 0 -1px 1px rgba(0,0,0,.25); + + &:hover{ + background-color: $btn-primary-background-highlight; + } } // Warning appears are orange .btn-warning { - @include button-background($btn-warning-background, $btn-warning-background-highlight); + background-color: $btn-warning-background; + color: #fff !important; + text-shadow: 0 -1px 1px rgba(0,0,0,.25); + + &:hover{ + background-color: $btn-warning-background-highlight; + } } // Danger and error appear as red .btn-danger { - @include button-background($btn-danger-background, $btn-danger-background-highlight); + background-color: $btn-danger-background; + color: #fff !important; + text-shadow: 0 -1px 1px rgba(0,0,0,.25); + + &:hover{ + background-color: $btn-danger-background-highlight; + } } // Success appears as green .btn-success { - @include button-background($btn-success-background, $btn-success-background-highlight); + background-color: $btn-success-background; + color: #fff !important; + text-shadow: 0 -1px 1px rgba(0,0,0,.25); + + &:hover{ + background-color: $btn-success-background-highlight; + } } // Info appears as a neutral blue .btn-info { - @include button-background($btn-info-background, $btn-info-background-highlight); + background-color: $btn-info-background; + color: #fff !important; + text-shadow: 0 -1px 1px rgba(0,0,0,.25); + + &:hover{ + background-color: $btn-info-background-highlight; + } } // Inverse appears as dark gray .btn-inverse { - @include button-background($btn-inverse-background, $btn-inverse-background-highlight); -} - - -// Cross-browser Jank -// -------------------------------------------------- - -button.btn, -input[type="submit"].btn { + background-color: $btn-inverse-background; + color: #fff !important; + text-shadow: 0 -1px 1px rgba(0,0,0,.25); - // Firefox 3.6 only I believe - &::-moz-focus-inner { - padding: 0; - border: 0; - } - - // IE7 has some default padding on button controls - *padding-top: 3px; - *padding-bottom: 3px; - - &.btn-large { - *padding-top: 7px; - *padding-bottom: 7px; - } - &.btn-small { - *padding-top: 3px; - *padding-bottom: 3px; - } - &.btn-mini { - *padding-top: 1px; - *padding-bottom: 1px; + &:hover{ + background-color: $btn-inverse-background-highlight; } } - // Link buttons // -------------------------------------------------- diff --git a/scss/_carousel.scss b/scss/_carousel.scss deleted file mode 100644 index 68308900..00000000 --- a/scss/_carousel.scss +++ /dev/null @@ -1,38 +0,0 @@ -// ===================== -// === CAROUSEL.less === -// ===================== -// Use these basic styles with the carouFredSel plugin. -// Find more code & examples at http://coolcarousels.frebsite.nl/ - -.carousel-wrapper { - position: relative; - text-align: center; - margin: 0 auto; - width: 600px; -} -.carousel { - overflow: hidden; - // Specify dimensions in app.less - @include size(600px, 300px); - & .carousel-item { - float: left; - & img { - display: block; - } - } -} - -.carousel-pagination { - & a { - color: $blue; - @include opacity(60); - @include border-radius(40px); - background-color: #fff; - display: inline-block; - width: 30px; - &.selected, &:hover { - @include opacity(100); - font-weight: bold; - } - } -} \ No newline at end of file diff --git a/scss/_code.scss b/scss/_code.scss index bf5d3f2f..485667b5 100644 --- a/scss/_code.scss +++ b/scss/_code.scss @@ -10,7 +10,7 @@ pre { padding: 0 3px 2px; font-family: $mono-font-family; @include font-size(13); - color: $gray; + color: $color-code; @include border-radius(3px); tab-size: 3; } @@ -20,7 +20,6 @@ code { padding: 2px 4px; color: $color-code; background-color: $color-code-background; - border: 1px solid #e1e1e8; } // Blocks of code @@ -47,8 +46,8 @@ pre { // Account for some code outputs that place code tags in pre tags & code { padding: 0; - color: $color-code; - background-color: $color-code-background; + color: $color-pre; + background-color: $color-pre-background; border: 0; } } diff --git a/scss/_colour-palette.scss b/scss/_colour-palette.scss index 305d2337..f34cc935 100644 --- a/scss/_colour-palette.scss +++ b/scss/_colour-palette.scss @@ -1,18 +1,18 @@ // === Colour palette === // ====================== // Generic colors -$blue : #049CDB; +$blue : #3498db; $blueDark : darken($blue, 20%); -$green : #46a546; -$red : #bd362f; -$yellow : #ffc40d; -$orange : #f89406; +$green : #1abc9c; +$red : #c0392b; +$yellow : #f1c40f; +$orange : #e67e22; $pink : #c3325f; -$purple : #7a43b6; -$gray : lighten(#000, 50%); +$purple : #8e44ad; +$gray : #7f8c8d; // Colour Scheme -$color-primary : $green; +$color-primary : #34495e; $color-secondary : $green; $color-highlight : #ff9600; $color-muted : #eef; @@ -39,28 +39,32 @@ $btn-background-highlight : darken(#fff, 10%); $btn-border : #ccc; $btn-primary-background : $color-link-default; -$btn-primary-background-highlight: adjust-hue($btn-primary-background, 20%); +$btn-primary-background-highlight: #2c3e50; -$btn-info-background : #5bc0de; -$btn-info-background-highlight: #2f96b4; +$btn-info-background : #1abc9c; +$btn-info-background-highlight: #16a085; -$btn-success-background : #62c462; -$btn-success-background-highlight: #51a351; +$btn-success-background : #2ecc71; +$btn-success-background-highlight: #27ae60; -$btn-warning-background : lighten($orange, 15%); -$btn-warning-background-highlight: $orange; +$btn-warning-background : #e67e22; +$btn-warning-background-highlight: #d35400; -$btn-danger-background : #ee5f5b; -$btn-danger-background-highlight: #bd362f; +$btn-danger-background : #e74c3c; +$btn-danger-background-highlight: #c0392b; $btn-inverse-background : #444; $btn-inverse-background-highlight: #222; +// Tabs +$inactive-tab : #95a5a6; +$active-tab : $green; + // Code $color-code : #d14; -$color-code-background : #f7f7f9; -$color-pre : $color-code; -$color-pre-background : $color-code-background; +$color-code-background : #fbefc0; +$color-pre : #222; +$color-pre-background : #f7f7f9; // Text Selection $color-selection : $color-primary; @@ -77,30 +81,30 @@ $color-notice : #66b; // === Component variables === // =========================== // Forms -$inputBackground : #fff; -$inputBorder : #ccc; +$input-background : #fff; +$input-border : #ccc; $input-disabled-background : lighten(#000, 70%); -$formActionsBackground : #f5f5f5; -$labelColour : lighten(#000, 30%); -$inputColour : lighten(#000, 30%); +$form-actions-background : #f5f5f5; +$label-colour : lighten(#000, 30%); +$input-colour : lighten(#000, 30%); // Input placeholder text color -$placeholderText : lighten(#000, 70%); +$placeholder-text : lighten(#000, 70%); // Tables -$tableBackground : transparent; // overall background-color -$tableBackgroundAccent : #f9f9f9; // for striping -$tableBackgroundHover : #f5f5f5; // for hover -$tableBorder : #ddd; // table and cell border +$table-background : transparent; // overall background-color +$table-background-accent : #f9f9f9; // for striping +$table-background-hover : #f5f5f5; // for hover +$table-border : #ddd; // table and cell border // Form states and alerts -$warning-text : #c09853; -$warning-background : #fcf8e3; -$warning-border : darken(adjust-hue($warning-background, -10), 3%); +$warning-text : #c09853; +$warning-background : #fcf8e3; +$warning-border : darken(adjust-hue($warning-background, -10), 3%); -$error-text : #b94a48; -$error-background : #f2dede; -$error-border : darken(adjust-hue($error-background, -10), 3%); +$error-text : #b94a48; +$error-background : #f2dede; +$error-border : darken(adjust-hue($error-background, -10), 3%); $success-text : #468847; $success-background : #dff0d8; @@ -111,4 +115,4 @@ $info-background : #d9edf7; $info-border : darken(adjust-hue($info-background, -10), 7%); //
border colour -$hrBorder : lighten(#000, 70%)er; +$hrBorder : lighten(#000, 70%)er; diff --git a/scss/_components.scss b/scss/_components.scss index c12c69c7..eb4c5735 100644 --- a/scss/_components.scss +++ b/scss/_components.scss @@ -171,6 +171,7 @@ ul.centred, ul.centered { @include clearfix; @extend .unstyled; margin-bottom: $base-line-height + px; + border-bottom: 2px solid $active-tab; &.is-right { & li { @@ -192,6 +193,17 @@ ul.centred, ul.centered { float: left; margin: 0 5px; } + + a { + background-color: $inactive-tab; + @extend .btn; + @include border-radius(4px 4px 0 0); + color: #fff; + + &.is-active { + background-color: $active-tab; + } + } } .tabs-content { diff --git a/scss/_forms.scss b/scss/_forms.scss index bd88923e..79667eb9 100644 --- a/scss/_forms.scss +++ b/scss/_forms.scss @@ -46,9 +46,10 @@ legend { margin-bottom: $base-line-height + px; @include font-size($base-font-size * 1.5); @include line-height($base-line-height * 2); - color: $labelColour; + color: $label-colour; border: 0; border-bottom: 1px solid #eee; + white-space: normal; // Small & small { @@ -66,6 +67,8 @@ textarea { @include font-size($base-font-size); @include line-height($base-line-height); font-weight: normal; + vertical-align: baseline; + *vertical-align: middle; } // And only set font-family here for those that need it (note the missing label element) @@ -80,12 +83,12 @@ textarea { label { display: block; margin-bottom: 5px; - color: $labelColour; + color: $label-colour; font-weight: bold; & small { font-weight: normal; - color: lighten($labelColour, 30%); + color: lighten($label-colour, 30%); } &.checkbox, @@ -108,25 +111,24 @@ textarea, select, .uneditable-input, .file-wrapper { - width: 210px; height: $base-line-height * 1.5 + px; padding: 4px; margin-bottom: 9px; @include font-size($base-font-size); @include line-height($base-line-height); - color: $inputColour; + color: $input-colour; background-color: #FFF; - border: 1px solid $inputBorder; + border: 1px solid $input-border; @include border-radius(3px); } + .uneditable-textarea { width: auto; height: auto; } - // Mini reset for unique input types input { &[type="image"], @@ -136,12 +138,13 @@ input { height: auto; padding: 0; margin: 3px 0; - *margin-top: 0; /* IE7 */ line-height: normal; cursor: pointer; @include border-radius(0); - border: 0 \9; /* IE9 and down */ + @include box-sizing(border-box); + border: 0 \9; // IE9 and down } + &[type="image"] { border: 0; } @@ -152,19 +155,11 @@ input { padding: initial; line-height: initial; border: initial; - background-color: $inputBackground; + background-color: $input-background; background-color: initial; @include box-shadow(none); } - // Help out input buttons - &[type="button"], - &[type="reset"], - &[type="submit"] { - width: auto; - height: auto; - } - // Remove shadow from image inputs &[type="image"] { @include box-shadow(none); @@ -181,6 +176,21 @@ input { padding: 2px; } + &[type="password"] { + font-family: sans-serif; + } + +} + +// Help out input buttons +button, +input[type="button"], +input[type="reset"], +input[type="submit"] { + width: auto; + height: auto; + cursor: pointer; + -webkit-appearance: button; } @@ -192,7 +202,7 @@ select { @include line-height(28); // Chrome on Linux and Mobile Safari need background-color - background-color: $inputBackground; + background-color: $input-background; // Make multiple select elements height not fixed &[multiple], @@ -302,12 +312,7 @@ select { input, select, textarea, -.uneditable-input, -// Redeclare since the fluid row class is more specific -.row-fluid input, -.row-fluid select, -.row-fluid textarea, -.row-fluid .uneditable-input { +.uneditable-input { &[class*="span"] { float: none; margin-left: 0; @@ -318,9 +323,6 @@ textarea, width: 90%; } -// GRID SIZING FOR INPUTS -//#grid > .input ($gridColumnWidth, $gridGutterWidth); - // DISABLED STATE // -------------- // Disabled and read-only inputs @@ -497,8 +499,6 @@ textarea { .search-query { padding-left: 14px; padding-right: 14px; - padding-left: 4px \9; // IE7-8 doesn't have border-radius, so don't indent the padding - padding-right: 4px \9; margin-bottom: 0; // remove the default margin on all inputs @include border-radius(100px); } @@ -512,7 +512,7 @@ textarea { padding: ($base-line-height - 1 + px) 20px ($base-line-height + px); margin-top: $base-line-height + px; margin-bottom: $base-line-height + px; - background-color: $formActionsBackground; + background-color: $form-actions-background; border-top: 1px solid #ddd; @include clearfix(); // Adding clearfix to allow for .pull-right button containers @@ -527,14 +527,14 @@ textarea { // For text that needs to appear as an input but should not be an input .uneditable-input { - background-color: $inputBackground; + background-color: $input-background; border-color: #eee; @include box-shadow(inset 0 1px 2px rgba(0,0,0,.025)); cursor: not-allowed; } // Placeholder text gets special styles; can't be bundled together though for some reason -@include placeholder($placeholderText); +@include placeholder($placeholder-text); // HELP TEXT // --------- diff --git a/scss/_normalize.scss b/scss/_normalize.scss index f3f6f32d..8ad89aaa 100644 --- a/scss/_normalize.scss +++ b/scss/_normalize.scss @@ -5,23 +5,29 @@ // Kickoff uses an amended version of this file. * { - @include box-sizing(); - *behavior: url(polyfills/boxsizing.htc); + @include box-sizing(border-box); } // HTML5 display definitions // Corrects block display not defined in IE6/7/8/9 & FF3 -article,aside,details,figcaption,figure,footer,header,hgroup,nav,section,summary { +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +main, +nav, +section, +summary { display: block; } // Corrects inline-block display not defined in IE6/7/8/9 & FF3 audio,canvas,video { display: inline-block; - @if $support-ie7 == true { - *display: inline; - *zoom: 1; - } } // Prevents modern browsers from displaying 'audio' without controls @@ -31,35 +37,25 @@ audio:not([controls]) { height: 0; } // Addresses styling for 'hidden' attribute not present in IE7/8/9, FF3, S4 -// Known issue: no IE6 support +// Hide the `template` element in IE, Safari, and Firefox < 22. -[hidden] { display: none; } +[hidden], +template { + display: none; +} /* ============ */ /* === BASE === */ /* ============ */ -// 1. Corrects text resizing oddly in IE6/7 when body font-size is set using em units -// http://clagnut.com/blog/348/#c790 -// 2. Prevents iOS text size adjust after orientation change, without disabling user zoom -// www.456bereastreet.com/archive/201012/controlling_text_size_in_safari_for_ios_without_disabling_user_zoom/ -html { - font-size: 100%; /* 1 */ - -webkit-text-size-adjust: 100%; /* 2 */ - -ms-text-size-adjust: 100%; /* 2 */ -} - -// Addresses font-family inconsistency between 'textarea' and other form elements. -html,button,input,select,textarea { - font-family: sans-serif; -} - // Addresses margins handled incorrectly in IE6/7 body { margin: 0; } // ============= // === LINKS === // ============= +// Remove the gray background color from active links in IE 10. +a { background: transparent; } // Addresses outline displayed oddly in Chrome a:focus { outline: thin dotted; } @@ -69,47 +65,6 @@ a:focus { outline: thin dotted; } a:hover, a:active { outline: 0; } -// ============= -// === LISTS === -// ============= - -// Addresses margins set differently in IE6/7 -dl,menu,ol.normal,ul.normal { - margin: 1em 0; -} - - - -// Addresses paddings set differently in IE6/7 -menu,ol.normal,ul.normal { - padding: 0 0 0 40px; -} - -// Corrects list images handled incorrectly in IE7 -nav ul, -nav ol { - list-style: none; - list-style-image: none; -} - -// ======================== -// === EMBEDDED CONTENT === -// ======================== -// 1. Removes border when inside 'a' element in IE6/7/8/9, FF3 -// 2. Improves image quality when scaled in IE7 -// code.flickr.com/blog/2008/11/12/on-ui-quality-the-little-things-client-side-image-resizing/ - -img { - border: 0; /* 1 */ - -ms-interpolation-mode: bicubic; /* 2 */ -} - -// Corrects overflow displayed oddly in IE9 -svg:not(:root) { - overflow: hidden; -} - - // =============== // === FIGURES === // =============== @@ -121,37 +76,6 @@ figure { // ============= // === FORMS === // ============= -// Corrects margin displayed oddly in IE6/7 -form { margin: 0; } - -// Define consistent border, margin, and padding -fieldset { - border: 1px solid #c0c0c0; - margin: 0 2px; - padding: 0.35em 0.625em 0.75em; -} - - -// 1. Corrects color not being inherited in IE6/7/8/9 -// 2. Corrects text not wrapping in FF3 -// 3. Corrects alignment displayed oddly in IE6/7 -legend { - border: 0; // 1 - padding: 0; - white-space: normal; // 2 - *margin-left: -7px; // 3 -} - - -// 1. Corrects font size not being inherited in all browsers -// 2. Addresses margins set differently in IE6/7, FF3+, S5, Chrome -// 3. Improves appearance and consistency in all browsers -button,input,select,textarea { - font-size: 100%; // 1 - margin: 0; // 2 - vertical-align: baseline; // 3 - *vertical-align: middle; // 3 -} // Addresses FF3/4 setting line-height on 'input' using !important in the UA stylesheet button, @@ -159,42 +83,11 @@ input { line-height: normal; // 1 } - -// 1. Improves usability and consistency of cursor style between image-type 'input' and others -// 2. Corrects inability to style clickable 'input' types in iOS -// 3. Removes inner spacing in IE7 without affecting normal text inputs -// Known issue: inner spacing remains in IE6 -button, -input[type="button"], -input[type="reset"], -input[type="submit"] { - cursor: pointer; // 1 - -webkit-appearance: button; // 2 - *overflow: visible; // 3 -} - -// Re-set default cursor for disabled elements -button[disabled], -input[disabled] { - cursor: default; -} - -// 1. Addresses box sizing set to content-box in IE8/9 -// 2. Removes excess padding in IE8/9 -// 3. Removes excess padding in IE7 -// Known issue: excess padding remains in IE6 -input[type="checkbox"], -input[type="radio"] { - @include box-sizing(border-box); // 1 - padding: 0; // 2 - *height: 13px; // 3 - *width: 13px; // 3 -} - -// 1. Addresses appearance set to searchfield in S5, Chrome +// 1. Addresses appearance set to searchfield in Safari 5, Chrome // 2. Addresses box-sizing set to border-box in S5, Chrome (include -moz to future-proof) input[type="search"] { -webkit-appearance: textfield; // 1 + @include box-sizing(content-box); } // Removes inner padding and search cancel button in S5, Chrome on OS X @@ -218,13 +111,3 @@ textarea { overflow: auto; // 1 vertical-align: top; // 2 } - - -// ============== -// === TABLES === -// ============== -// Remove most spacing between table cells -table { - border-collapse: collapse; - border-spacing: 0; -} diff --git a/scss/_sprites.scss b/scss/_sprites.scss deleted file mode 100644 index 23c8c83e..00000000 --- a/scss/_sprites.scss +++ /dev/null @@ -1,160 +0,0 @@ -// ==================== -// === SPRITES.scss === -// ==================== -// Glyphs and icons for buttons, nav, and more -// ------------------------------------------- - - -// ICONS -// ----- - -// All icons receive the styles of the tag with a base class -// of .i and are then given a unique class to add width, height, -// and background-position. Your resulting HTML will look like -// . - -// For the white version of the icons, just add the .icon-white class: -// - -[class^="icon-"], -[class*=" icon-"] { - display: inline-block; - width: 14px; - height: 14px; - @include line-height(14); - vertical-align: text-top; - background-image: url("#{$iconSpritePath}"); - background-position: 14px 14px; - background-repeat: no-repeat; - - @include ie7-restore-right-whitespace(); -} -.icon-white { - background-image: url("#{$iconWhiteSpritePath}"); -} - -.icon-glass { background-position: 0 0; } -.icon-music { background-position: -24px 0; } -.icon-search { background-position: -48px 0; } -.icon-envelope { background-position: -72px 0; } -.icon-heart { background-position: -96px 0; } -.icon-star { background-position: -120px 0; } -.icon-star-empty { background-position: -144px 0; } -.icon-user { background-position: -168px 0; } -.icon-film { background-position: -192px 0; } -.icon-th-large { background-position: -216px 0; } -.icon-th { background-position: -240px 0; } -.icon-th-list { background-position: -264px 0; } -.icon-ok { background-position: -288px 0; } -.icon-remove { background-position: -312px 0; } -.icon-zoom-in { background-position: -336px 0; } -.icon-zoom-out { background-position: -360px 0; } -.icon-off { background-position: -384px 0; } -.icon-signal { background-position: -408px 0; } -.icon-cog { background-position: -432px 0; } -.icon-trash { background-position: -456px 0; } - -.icon-home { background-position: 0 -24px; } -.icon-file { background-position: -24px -24px; } -.icon-time { background-position: -48px -24px; } -.icon-road { background-position: -72px -24px; } -.icon-download-alt { background-position: -96px -24px; } -.icon-download { background-position: -120px -24px; } -.icon-upload { background-position: -144px -24px; } -.icon-inbox { background-position: -168px -24px; } -.icon-play-circle { background-position: -192px -24px; } -.icon-repeat { background-position: -216px -24px; } -.icon-refresh { background-position: -240px -24px; } -.icon-list-alt { background-position: -264px -24px; } -.icon-lock { background-position: -287px -24px; } // 1px off -.icon-flag { background-position: -312px -24px; } -.icon-headphones { background-position: -336px -24px; } -.icon-volume-off { background-position: -360px -24px; } -.icon-volume-down { background-position: -384px -24px; } -.icon-volume-up { background-position: -408px -24px; } -.icon-qrcode { background-position: -432px -24px; } -.icon-barcode { background-position: -456px -24px; } - -.icon-tag { background-position: 0 -48px; } -.icon-tags { background-position: -25px -48px; } // 1px off -.icon-book { background-position: -48px -48px; } -.icon-bookmark { background-position: -72px -48px; } -.icon-print { background-position: -96px -48px; } -.icon-camera { background-position: -120px -48px; } -.icon-font { background-position: -144px -48px; } -.icon-bold { background-position: -167px -48px; } // 1px off -.icon-italic { background-position: -192px -48px; } -.icon-text-height { background-position: -216px -48px; } -.icon-text-width { background-position: -240px -48px; } -.icon-align-left { background-position: -264px -48px; } -.icon-align-center { background-position: -288px -48px; } -.icon-align-right { background-position: -312px -48px; } -.icon-align-justify { background-position: -336px -48px; } -.icon-list { background-position: -360px -48px; } -.icon-indent-left { background-position: -384px -48px; } -.icon-indent-right { background-position: -408px -48px; } -.icon-facetime-video { background-position: -432px -48px; } -.icon-picture { background-position: -456px -48px; } - -.icon-pencil { background-position: 0 -72px; } -.icon-map-marker { background-position: -24px -72px; } -.icon-adjust { background-position: -48px -72px; } -.icon-tint { background-position: -72px -72px; } -.icon-edit { background-position: -96px -72px; } -.icon-share { background-position: -120px -72px; } -.icon-check { background-position: -144px -72px; } -.icon-move { background-position: -168px -72px; } -.icon-step-backward { background-position: -192px -72px; } -.icon-fast-backward { background-position: -216px -72px; } -.icon-backward { background-position: -240px -72px; } -.icon-play { background-position: -264px -72px; } -.icon-pause { background-position: -288px -72px; } -.icon-stop { background-position: -312px -72px; } -.icon-forward { background-position: -336px -72px; } -.icon-fast-forward { background-position: -360px -72px; } -.icon-step-forward { background-position: -384px -72px; } -.icon-eject { background-position: -408px -72px; } -.icon-chevron-left { background-position: -432px -72px; } -.icon-chevron-right { background-position: -456px -72px; } - -.icon-plus-sign { background-position: 0 -96px; } -.icon-minus-sign { background-position: -24px -96px; } -.icon-remove-sign { background-position: -48px -96px; } -.icon-ok-sign { background-position: -72px -96px; } -.icon-question-sign { background-position: -96px -96px; } -.icon-info-sign { background-position: -120px -96px; } -.icon-screenshot { background-position: -144px -96px; } -.icon-remove-circle { background-position: -168px -96px; } -.icon-ok-circle { background-position: -192px -96px; } -.icon-ban-circle { background-position: -216px -96px; } -.icon-arrow-left { background-position: -240px -96px; } -.icon-arrow-right { background-position: -264px -96px; } -.icon-arrow-up { background-position: -289px -96px; } // 1px off -.icon-arrow-down { background-position: -312px -96px; } -.icon-share-alt { background-position: -336px -96px; } -.icon-resize-full { background-position: -360px -96px; } -.icon-resize-small { background-position: -384px -96px; } -.icon-plus { background-position: -408px -96px; } -.icon-minus { background-position: -433px -96px; } -.icon-asterisk { background-position: -456px -96px; } - -.icon-exclamation-sign { background-position: 0 -120px; } -.icon-gift { background-position: -24px -120px; } -.icon-leaf { background-position: -48px -120px; } -.icon-fire { background-position: -72px -120px; } -.icon-eye-open { background-position: -96px -120px; } -.icon-eye-close { background-position: -120px -120px; } -.icon-warning-sign { background-position: -144px -120px; } -.icon-plane { background-position: -168px -120px; } -.icon-calendar { background-position: -192px -120px; } -.icon-random { background-position: -216px -120px; } -.icon-comment { background-position: -240px -120px; } -.icon-magnet { background-position: -264px -120px; } -.icon-chevron-up { background-position: -288px -120px; } -.icon-chevron-down { background-position: -313px -119px; } // 1px off -.icon-retweet { background-position: -336px -120px; } -.icon-shopping-cart { background-position: -360px -120px; } -.icon-folder-close { background-position: -384px -120px; } -.icon-folder-open { background-position: -408px -120px; } -.icon-resize-vertical { background-position: -432px -119px; } -.icon-resize-horizontal { background-position: -456px -118px; } diff --git a/scss/_tables.scss b/scss/_tables.scss index 00191c25..a7cc87e7 100644 --- a/scss/_tables.scss +++ b/scss/_tables.scss @@ -10,7 +10,7 @@ table { max-width: 100%; border-collapse: collapse; border-spacing: 0; - background-color: $tableBackground; + background-color: $table-background; } // BASELINE STYLES @@ -27,7 +27,7 @@ table { @include line-height($base-line-height); text-align: left; vertical-align: top; - border-top: 1px solid $tableBorder; + border-top: 1px solid $table-border; } & th, & tfoot td { @@ -48,7 +48,7 @@ table { } // Account for multiple tbody instances & tbody + tbody { - border-top: 2px solid $tableBorder; + border-top: 2px solid $table-border; } } @@ -69,14 +69,14 @@ table { // ---------------- .table-bordered { - border: 1px solid $tableBorder; + border: 1px solid $table-border; border-left: 0; border-collapse: separate; // Done so we can round those corners! *border-collapse: collapsed; // IE7 can't round corners anyway @include border-radius(4px); & th, & td { - border-left: 1px solid $tableBorder; + border-left: 1px solid $table-border; } // Prevent a double border & caption + thead tr:first-child th, @@ -120,7 +120,7 @@ table { & tr:nth-child(odd) { & td, & th { - background-color: $tableBackgroundAccent; + background-color: $table-background-accent; } } } @@ -134,7 +134,7 @@ table { & tbody tr:hover { & td, & th { - background-color: $tableBackgroundHover; + background-color: $table-background-hover; } } } diff --git a/scss/_typography.scss b/scss/_typography.scss index 1c3389a2..5cad29b4 100644 --- a/scss/_typography.scss +++ b/scss/_typography.scss @@ -27,6 +27,13 @@ // http://modularscale.com/scale/?px1=16&px2=&ra1=1.333&ra2=0 // ------------------------------------------------------------------------------ +// 2. Prevents iOS text size adjust after orientation change, without disabling user zoom +// www.456bereastreet.com/archive/201012/controlling_text_size_in_safari_for_ios_without_disabling_user_zoom/ +html { + font-size: $base-font-size + px; + -webkit-text-size-adjust: 100%; /* 2 */ + -ms-text-size-adjust: 100%; /* 2 */ +} // Body text body { @@ -124,17 +131,6 @@ h6, .h6, .zeta { text-transform: uppercase; } -// Page header -.page-header { - padding-bottom: $base-line-height - 1 + px; - margin: ($base-line-height + px) 0; - border-bottom: 1px solid lighten(#000, 70%)er; -} - -.page-header h1 { - line-height: 1; -} - // Links a { &, &:link { @@ -155,6 +151,89 @@ a { } } + +// === Lists === +// default list styles +ul { list-style-type: disc } +ol { list-style-type: decimal } + +// Unordered and Ordered lists +// Add a .unstyled class to unordered/ordered lists if you want them to have bullets/numbers +ul, ol { + padding: 0; + margin: 0 0 ($base-line-height + px) ($base-line-height + px); + + & ul, + & ol { + margin-left: ($base-line-height * 2) + px; + } + + & ul { + list-style-type: circle; + & ul { + list-style-type: square; + } + } + + & ol { + list-style-type: upper-roman; + & ol { + list-style-type: lower-roman; + } + } + + & li { + @include line-height($base-line-height); + } + + & ul, + & ol { + margin-bottom: 0; + } +} + +.unstyled, +nav ul, nav ol { + margin: 0; + padding: 0; + list-style: none; + list-style-image: none; +} + + +// === Definition lists === +dl { + margin-bottom: $base-line-height + px; +} + +dt, +dd { + @include line-height($base-line-height); +} + +dt { + font-weight:$bold-font-weight; + @include line-height($base-line-height - 1); // fix jank Helvetica Neue font bug + + // Horizontal layout (like forms) + .dl-horizontal & { + @extend %text-overflow; + float: left; + clear: left; + width: 220px; + text-align: right; + } +} + +dd { + margin-left: $base-line-height + px; + + .dl-horizontal & { + margin-left: 240px; + } +} + + // === Misc === // Horizontal rules @@ -188,19 +267,22 @@ abbr.initialism { // Blockquotes blockquote { - padding: 0 0 0 15px; - margin: 0 0 ($base-line-height + px); - border-left: 5px solid lighten(#000, 70%)er; + padding-left: 10px; + margin: ($base-line-height + px); + border-left: 4px solid lighten(#000, 80%); + & p { margin-bottom: 0; @include font-size($base-font-size); font-weight: 300; @include line-height($base-line-height * 1.25); } + & small { display: block; @include line-height($base-line-height); color: lighten(#000, 70%); + &:before { content: '\2014 \00A0'; } @@ -210,11 +292,11 @@ blockquote { &.pull-right { float: right; padding-left: 0; - padding-right: 15px; + padding-right: 10px; border-left: 0; - border-right: 5px solid lighten(#000, 70%)er; - & p, - & small { + border-right: 4px solid lighten(#000, 80%); + + &, & p, & small { text-align: right; } } @@ -252,8 +334,9 @@ dfn { // Addresses styling not present in IE6/7/8/9 mark { - background: #ff0; - color: #000; + background: $yellow; + padding: 2px 4px; + @include border-radius(3px); } // Prevents sub and sup affecting line-height in all browsers @@ -268,94 +351,16 @@ sub, sup { sup { top: -0.5em; } sub { bottom: -0.25em; } - -// === Lists === -// default list styles -ul { list-style-type: disc } -ol { list-style-type: decimal } - -// Unordered and Ordered lists -// Add a .unstyled class to unordered/ordered lists if you want them to have bullets/numbers -ul, ol { - padding: 0; - margin: 0 0 ($base-line-height + px) ($base-line-height + px); - - & ul, - & ol { - margin-left: ($base-line-height * 2) + px; - } - - & ul { - list-style-type: circle; - & ul { - list-style-type: square; - } - } - - & ol { - list-style-type: upper-roman; - & ol { - list-style-type: lower-roman; - } - } - - & li { - @include line-height($base-line-height); - } - - & ul, - & ol { - margin-bottom: 0; - } -} - -.unstyled { - margin: 0; - padding: 0; - list-style: none; - list-style-image: none; +samp { + font-family: $mono-font-family; } -// === Definition lists === -dl { - margin-bottom: $base-line-height + px; -} - -dt, -dd { - @include line-height($base-line-height); -} - -dt { - font-weight:$bold-font-weight; - @include line-height($base-line-height - 1); // fix jank Helvetica Neue font bug - - // Horizontal layout (like forms) - .dl-horizontal & { - @extend %text-overflow; - float: left; - clear: left; - width: 220px; - text-align: right; - } -} - -dd { - margin-left: $base-line-height + px; - - .dl-horizontal & { - margin-left: 240px; - } -} - // === Utilities === .text-centre, .text-center { text-align: center;} .text-left { text-align: left;} .text-right { text-align: right;} - - ::-moz-selection { color: lighten($color-selection, 55%); background: $color-selection; @@ -365,3 +370,16 @@ dd { color: lighten($color-selection, 55%); background: $color-selection; } + + + +// Page header +.page-header { + padding-bottom: $base-line-height - 1 + px; + margin: ($base-line-height + px) 0; + border-bottom: 1px solid lighten(#000, 70%); +} + +.page-header h1 { + line-height: 1; +} diff --git a/scss/_variables.scss b/scss/_variables.scss index b8de5813..c4d6691c 100644 --- a/scss/_variables.scss +++ b/scss/_variables.scss @@ -76,12 +76,6 @@ $img-icon-white-sprite : "#{$img-ui-path}/glyphicons-halflings-white.png" // ================== // Settings here override & affect the output in choreographic-grid.scss -// Choose your grid options -$debugQueries : false ; // Show the media query debugger at the top of the viewport -$usingPushPullColumns : true ; // Allow columns to be pushed & pulled -$usingOffsetcolumns : true ; // Allow columns to be offset -$usingSplitsAndShunts : true ; // Use Splits & Shunts for responsive web design - // Setup grid defaults $gridColumnCount : 12 ; // Total column count $gridGutterWidth : 20 ; // [in pixels] @@ -93,6 +87,12 @@ $gridColumnPadding : 10 ; // [in pixels] $gridColumnPaddingUnit : 'px' ; // [in pixels or percent] Specify your unit of measurement for column padding $nestedColumnPadding : false ; // Remove padding on nested columns so they are aligned correctly. Set this to [false] to enable it. +// Choose your grid options +$debugQueries : false ; // Show the media query debugger at the top of the viewport +$usingPushPullColumns : false ; // Allow columns to be pushed & pulled +$usingOffsetcolumns : false ; // Allow columns to be offset +$usingSplitsAndShunts : false ; // Use Splits & Shunts for responsive web design + // === App-specific variables === diff --git a/scss/kickoff-old-ie.scss b/scss/kickoff-old-ie.scss index ac8ccb7a..98573ee3 100644 --- a/scss/kickoff-old-ie.scss +++ b/scss/kickoff-old-ie.scss @@ -14,38 +14,33 @@ $old-ie: true; $fix-mqs: 1024px; //could use ems too -// CORE VARIABLES AND MIXINS +// Core variables and mixins @import "colour-palette"; @import "variables"; +@import "functions"; @import "mixins"; -// CSS RESET +// CSS reset @import "normalize"; -// GRID SYSTEM AND PAGE STRUCTURE +// Grid system and page structure @import "choreographic-grid"; // For responsive builds -// BASE CSS +// Base css @import "typography"; @import "forms"; @import "tables"; @import "code"; -// COMPONENTS: COMMON -@import "components"; // Generic components tools -// @import "sprites"; - -// COMPONENTS: BUTTONS & ALERTS +// Components: common @import "buttons"; +@import "components"; -// COMPONENTS: MISC -// @import "carousel"; - -// YOUR APP/SITE STYLES +// Your app/site styles @import "app"; -// UTILITY CLASSES +// Utility classes // Has to be last to override when necessary @import "utilities"; diff --git a/scss/kickoff.scss b/scss/kickoff.scss index cb7a513e..f9cb6ff4 100644 --- a/scss/kickoff.scss +++ b/scss/kickoff.scss @@ -9,8 +9,8 @@ // Core variables and mixins @import "colour-palette"; @import "variables"; -@import "mixins"; @import "functions"; +@import "mixins"; // CSS reset @import "normalize"; @@ -25,19 +25,12 @@ @import "code"; // Components: common -@import "components"; -// @import "sprites"; - -// Components: buttons & alerts @import "buttons"; - -// Components: misc -// @import "carousel"; +@import "components"; // Your app/site styles @import "app"; - // Utility classes // Has to be last to override when necessary @import "utilities";