diff options
author | Vasudev Kamath <kamathvasudev@gmail.com> | 2012-12-13 22:38:45 +0530 |
---|---|---|
committer | Vasudev Kamath <kamathvasudev@gmail.com> | 2012-12-13 22:38:45 +0530 |
commit | 658e20cded80a08d097b7833afbe3b20ee9aa39b (patch) | |
tree | ee1e275637edfbb359ad856d04ecbe807bd39db3 /doc |
Imported Upstream version 2.8.3
Diffstat (limited to 'doc')
-rw-r--r-- | doc/bootstrap.css | 4221 | ||||
-rw-r--r-- | doc/colors.css | 16 | ||||
-rw-r--r-- | doc/template_language.rst | 729 |
3 files changed, 4966 insertions, 0 deletions
diff --git a/doc/bootstrap.css b/doc/bootstrap.css new file mode 100644 index 0000000..d280a31 --- /dev/null +++ b/doc/bootstrap.css @@ -0,0 +1,4221 @@ +/*! + * Bootstrap v2.0.4 + * + * Copyright 2012 Twitter, Inc + * Licensed under the Apache License v2.0 + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Designed and built with all the love in the world @twitter by @mdo and @fat. + */ + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +nav, +section { + display:block; + padding-top:40px; + } +section:first-of-type { + padding-top:0; + } +audio, +canvas, +video { + display:inline-block; + *display:inline; + *zoom:1; + } +audio:not([controls]) { + display:none; + } +html { + font-size:100%; + -webkit-text-size-adjust:100%; + -ms-text-size-adjust:100%; + } +a:focus { + outline:thin dotted #333; + outline:5px auto -webkit-focus-ring-color; + outline-offset:-2px; + } +a:hover, +a:active { + outline:0; + } +sub, +sup { + position:relative; + font-size:75%; + line-height:0; + vertical-align:baseline; + } +sup { + top:-0.5em; + } +sub { + bottom:-0.25em; + } +img { + max-width:100%; + vertical-align:middle; + border:0; + -ms-interpolation-mode:bicubic; + } +#map_canvas img { + max-width:none; + } +button, +input, +select, +textarea { + margin:0; + font-size:100%; + vertical-align:middle; + } +button, +input { + *overflow:visible; + line-height:normal; + } +button::-moz-focus-inner, +input::-moz-focus-inner { + padding:0; + border:0; + } +button, +input[type="button"], +input[type="reset"], +input[type="submit"] { + cursor:pointer; + -webkit-appearance:button; + } +input[type="search"] { + -webkit-box-sizing:content-box; + -moz-box-sizing:content-box; + box-sizing:content-box; + -webkit-appearance:textfield; + } +input[type="search"]::-webkit-search-decoration, +input[type="search"]::-webkit-search-cancel-button { + -webkit-appearance:none; + } +textarea { + overflow:auto; + vertical-align:top; + } +.clearfix { + *zoom:1; + } +.clearfix:before, +.clearfix:after { + display:table; + content:""; + } +.clearfix:after { + clear:both; + } +.hide-text { + font:0/0 a; + color:transparent; + text-shadow:none; + background-color:transparent; + border:0; + } +.input-block-level { + display:block; + width:100%; + min-height:28px; + -webkit-box-sizing:border-box; + -moz-box-sizing:border-box; + -ms-box-sizing:border-box; + box-sizing:border-box; + } +body { + margin:0; + padding:20px; + font-family:"Helvetica Neue", Helvetica, Arial, sans-serif; + font-size:13px; + line-height:18px; + color:#333333; + background-color:#ffffff; + } +a { + color:#0088cc; + text-decoration:none; + } +a:hover { + color:#005580; + text-decoration:underline; + } +.row { + margin-left:-20px; + *zoom:1; + } +.row:before, +.row:after { + display:table; + content:""; + } +.row:after { + clear:both; + } +[class*="span"] { + float:left; + margin-left:20px; + } +.container, +.navbar-fixed-top .container, +.navbar-fixed-bottom .container { + width:940px; + } +.span12 { + width:940px; + } +.span11 { + width:860px; + } +.span10 { + width:780px; + } +.span9 { + width:700px; + } +.span8 { + width:620px; + } +.span7 { + width:540px; + } +.span6 { + width:460px; + } +.span5 { + width:380px; + } +.span4 { + width:300px; + } +.span3 { + width:220px; + } +.span2 { + width:140px; + } +.span1 { + width:60px; + } +.offset12 { + margin-left:980px; + } +.offset11 { + margin-left:900px; + } +.offset10 { + margin-left:820px; + } +.offset9 { + margin-left:740px; + } +.offset8 { + margin-left:660px; + } +.offset7 { + margin-left:580px; + } +.offset6 { + margin-left:500px; + } +.offset5 { + margin-left:420px; + } +.offset4 { + margin-left:340px; + } +.offset3 { + margin-left:260px; + } +.offset2 { + margin-left:180px; + } +.offset1 { + margin-left:100px; + } +.row-fluid { + width:100%; + *zoom:1; + } +.row-fluid:before, +.row-fluid:after { + display:table; + content:""; + } +.row-fluid:after { + clear:both; + } +.row-fluid [class*="span"] { + display:block; + float:left; + width:100%; + min-height:28px; + margin-left:2.127659574%; + *margin-left:2.0744680846382977%; + -webkit-box-sizing:border-box; + -moz-box-sizing:border-box; + -ms-box-sizing:border-box; + box-sizing:border-box; + } +.row-fluid [class*="span"]:first-child { + margin-left:0; + } +.row-fluid .span12 { + width:99.99999998999999%; + *width:99.94680850063828%; + } +.row-fluid .span11 { + width:91.489361693%; + *width:91.4361702036383%; + } +.row-fluid .span10 { + width:82.97872339599999%; + *width:82.92553190663828%; + } +.row-fluid .span9 { + width:74.468085099%; + *width:74.4148936096383%; + } +.row-fluid .span8 { + width:65.95744680199999%; + *width:65.90425531263828%; + } +.row-fluid .span7 { + width:57.446808505%; + *width:57.3936170156383%; + } +.row-fluid .span6 { + width:48.93617020799999%; + *width:48.88297871863829%; + } +.row-fluid .span5 { + width:40.425531911%; + *width:40.3723404216383%; + } +.row-fluid .span4 { + width:31.914893614%; + *width:31.8617021246383%; + } +.row-fluid .span3 { + width:23.404255317%; + *width:23.3510638276383%; + } +.row-fluid .span2 { + width:14.89361702%; + *width:14.8404255306383%; + } +.row-fluid .span1 { + width:6.382978723%; + *width:6.329787233638298%; + } +.container { + margin-right:auto; + margin-left:auto; + *zoom:1; + } +.container:before, +.container:after { + display:table; + content:""; + } +.container:after { + clear:both; + } +.container-fluid { + padding-right:20px; + padding-left:20px; + *zoom:1; + } +.container-fluid:before, +.container-fluid:after { + display:table; + content:""; + } +.container-fluid:after { + clear:both; + } +p { + margin:0 0 9px; + } +p small { + font-size:11px; + color:#999999; + } +.lead { + margin-bottom:18px; + font-size:20px; + font-weight:200; + line-height:27px; + } +h1, +h2, +h3, +h4, +h5, +h6 { + margin:0; + font-family:inherit; + font-weight:bold; + color:inherit; + text-rendering:optimizelegibility; + } +h1 small, +h2 small, +h3 small, +h4 small, +h5 small, +h6 small { + font-weight:normal; + color:#999999; + } +h1 { + font-size:30px; + line-height:36px; + } +h1 small { + font-size:18px; + } +h2 { + font-size:24px; + line-height:36px; + } +h2 small { + font-size:18px; + } +h3 { + font-size:18px; + line-height:27px; + } +h3 small { + font-size:14px; + } +h4, +h5, +h6 { + line-height:18px; + } +h4 { + font-size:14px; + } +h4 small { + font-size:12px; + } +h5 { + font-size:12px; + } +h6 { + font-size:11px; + color:#999999; + text-transform:uppercase; + } +.page-header { + padding-bottom:17px; + margin:18px 0; + border-bottom:1px solid #eeeeee; + } +.page-header h1 { + line-height:1; + } +ul, +ol { + padding:0; + margin:0 0 9px 25px; + } +ul ul, +ul ol, +ol ol, +ol ul { + margin-bottom:0; + } +ul { + list-style:disc; + } +ol { + list-style:decimal; + } +li { + line-height:18px; + } +ul.unstyled, +ol.unstyled { + margin-left:0; + list-style:none; + } +dl { + margin-bottom:18px; + } +dt, +dd { + line-height:18px; + } +dt { + font-weight:bold; + line-height:17px; + } +dd { + margin-left:9px; + } +.dl-horizontal dt { + float:left; + width:120px; + overflow:hidden; + clear:left; + text-align:right; + text-overflow:ellipsis; + white-space:nowrap; + } +.dl-horizontal dd { + margin-left:130px; + } +hr { + margin:18px 0; + border:0; + border-top:1px solid #eeeeee; + border-bottom:1px solid #ffffff; + } +strong { + font-weight:bold; + } +em { + font-style:italic; + } +.muted { + color:#999999; + } +abbr[title] { + cursor:help; + border-bottom:1px dotted #999999; + } +abbr.initialism { + font-size:90%; + text-transform:uppercase; + } +blockquote { + padding:0 0 0 15px; + margin:0 0 18px; + border-left:5px solid #eeeeee; + } +blockquote p { + margin-bottom:0; + font-size:16px; + font-weight:300; + line-height:22.5px; + } +blockquote small { + display:block; + line-height:18px; + color:#999999; + } +blockquote small:before { + content:'\2014 \00A0'; + } +blockquote.pull-right { + float:right; + padding-right:15px; + padding-left:0; + border-right:5px solid #eeeeee; + border-left:0; + } +blockquote.pull-right p, +blockquote.pull-right small { + text-align:right; + } +q:before, +q:after, +blockquote:before, +blockquote:after { + content:""; + } +address { + display:block; + margin-bottom:18px; + font-style:normal; + line-height:18px; + } +small { + font-size:100%; + } +cite { + font-style:normal; + } +code, +pre { + padding:0 3px 2px; + font-family:Menlo, Monaco, Consolas, "Courier New", monospace; + font-size:12px; + color:#333333; + -webkit-border-radius:3px; + -moz-border-radius:3px; + border-radius:3px; + } +code { + padding:2px 4px; + color:#333; + background-color:#f7f7f9; + border:1px solid #e1e1e8; + } +pre { + display:block; + padding:8.5px; + margin:0 0 9px; + font-size:12.025px; + line-height:18px; + word-break:break-all; + word-wrap:break-word; + white-space:pre; + white-space:pre-wrap; + background-color:#f5f5f5; + border:1px solid #ccc; + border:1px solid rgba(0, 0, 0, 0.15); + -webkit-border-radius:4px; + -moz-border-radius:4px; + border-radius:4px; + } +pre.prettyprint { + margin-bottom:18px; + } +pre code { + padding:0; + color:inherit; + background-color:transparent; + border:0; + } +.pre-scrollable { + max-height:340px; + overflow-y:scroll; + } +form { + margin:0 0 18px; + } +fieldset { + padding:0; + margin:0; + border:0; + } +legend { + display:block; + width:100%; + padding:0; + margin-bottom:27px; + font-size:19.5px; + line-height:36px; + color:#333333; + border:0; + border-bottom:1px solid #e5e5e5; + } +legend small { + font-size:13.5px; + color:#999999; + } +label, +input, +button, +select, +textarea { + font-size:13px; + font-weight:normal; + line-height:18px; + } +input, +button, +select, +textarea { + font-family:"Helvetica Neue", Helvetica, Arial, sans-serif; + } +label { + display:block; + margin-bottom:5px; + } +select, +textarea, +input[type="text"], +input[type="password"], +input[type="datetime"], +input[type="datetime-local"], +input[type="date"], +input[type="month"], +input[type="time"], +input[type="week"], +input[type="number"], +input[type="email"], +input[type="url"], +input[type="search"], +input[type="tel"], +input[type="color"], +.uneditable-input { + display:inline-block; + height:18px; + padding:4px; + margin-bottom:9px; + font-size:13px; + line-height:18px; + color:#555555; + } +input, +textarea { + width:210px; + } +textarea { + height:auto; + } +textarea, +input[type="text"], +input[type="password"], +input[type="datetime"], +input[type="datetime-local"], +input[type="date"], +input[type="month"], +input[type="time"], +input[type="week"], +input[type="number"], +input[type="email"], +input[type="url"], +input[type="search"], +input[type="tel"], +input[type="color"], +.uneditable-input { + background-color:#ffffff; + border:1px solid #cccccc; + -webkit-border-radius:3px; + -moz-border-radius:3px; + border-radius:3px; + -webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075); + -webkit-transition:border linear 0.2s, box-shadow linear 0.2s; + -moz-transition:border linear 0.2s, box-shadow linear 0.2s; + -ms-transition:border linear 0.2s, box-shadow linear 0.2s; + -o-transition:border linear 0.2s, box-shadow linear 0.2s; + transition:border linear 0.2s, box-shadow linear 0.2s; + } +textarea:focus, +input[type="text"]:focus, +input[type="password"]:focus, +input[type="datetime"]:focus, +input[type="datetime-local"]:focus, +input[type="date"]:focus, +input[type="month"]:focus, +input[type="time"]:focus, +input[type="week"]:focus, +input[type="number"]:focus, +input[type="email"]:focus, +input[type="url"]:focus, +input[type="search"]:focus, +input[type="tel"]:focus, +input[type="color"]:focus, +.uneditable-input:focus { + border-color:rgba(82, 168, 236, 0.8); + outline:0; + outline:thin dotted \9; + /* IE6-9 */ + + -webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); + -moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); + box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6); + } +input[type="radio"], +input[type="checkbox"] { + margin:3px 0; + *margin-top:0; + /* IE7 */ + + line-height:normal; + cursor:pointer; + } +input[type="submit"], +input[type="reset"], +input[type="button"], +input[type="radio"], +input[type="checkbox"] { + width:auto; + } +.uneditable-textarea { + width:auto; + height:auto; + } +select, +input[type="file"] { + height:28px; + /* In IE7, the height of the select element cannot be changed by height, only font-size */ + + *margin-top:4px; + /* For IE7, add top margin to align select with labels */ + + line-height:28px; + } +select { + width:220px; + border:1px solid #bbb; + } +select[multiple], +select[size] { + height:auto; + } +select:focus, +input[type="file"]:focus, +input[type="radio"]:focus, +input[type="checkbox"]:focus { + outline:thin dotted #333; + outline:5px auto -webkit-focus-ring-color; + outline-offset:-2px; + } +.radio, +.checkbox { + min-height:18px; + padding-left:18px; + } +.radio input[type="radio"], +.checkbox input[type="checkbox"] { + float:left; + margin-left:-18px; + } +.controls > .radio:first-child, +.controls > .checkbox:first-child { + padding-top:5px; + } +.radio.inline, +.checkbox.inline { + display:inline-block; + padding-top:5px; + margin-bottom:0; + vertical-align:middle; + } +.radio.inline + .radio.inline, +.checkbox.inline + .checkbox.inline { + margin-left:10px; + } +.input-mini { + width:60px; + } +.input-small { + width:90px; + } +.input-medium { + width:150px; + } +.input-large { + width:210px; + } +.input-xlarge { + width:270px; + } +.input-xxlarge { + width:530px; + } +input[class*="span"], +select[class*="span"], +textarea[class*="span"], +.uneditable-input[class*="span"], +.row-fluid input[class*="span"], +.row-fluid select[class*="span"], +.row-fluid textarea[class*="span"], +.row-fluid .uneditable-input[class*="span"] { + float:none; + margin-left:0; + } +.input-append input[class*="span"], +.input-append .uneditable-input[class*="span"], +.input-prepend input[class*="span"], +.input-prepend .uneditable-input[class*="span"], +.row-fluid .input-prepend [class*="span"], +.row-fluid .input-append [class*="span"] { + display:inline-block; + } +input, +textarea, +.uneditable-input { + margin-left:0; + } +input.span12, +textarea.span12, +.uneditable-input.span12 { + width:930px; + } +input.span11, +textarea.span11, +.uneditable-input.span11 { + width:850px; + } +input.span10, +textarea.span10, +.uneditable-input.span10 { + width:770px; + } +input.span9, +textarea.span9, +.uneditable-input.span9 { + width:690px; + } +input.span8, +textarea.span8, +.uneditable-input.span8 { + width:610px; + } +input.span7, +textarea.span7, +.uneditable-input.span7 { + width:530px; + } +input.span6, +textarea.span6, +.uneditable-input.span6 { + width:450px; + } +input.span5, +textarea.span5, +.uneditable-input.span5 { + width:370px; + } +input.span4, +textarea.span4, +.uneditable-input.span4 { + width:290px; + } +input.span3, +textarea.span3, +.uneditable-input.span3 { + width:210px; + } +input.span2, +textarea.span2, +.uneditable-input.span2 { + width:130px; + } +input.span1, +textarea.span1, +.uneditable-input.span1 { + width:50px; + } +input[disabled], +select[disabled], +textarea[disabled], +input[readonly], +select[readonly], +textarea[readonly] { + cursor:not-allowed; + background-color:#eeeeee; + border-color:#ddd; + } +input[type="radio"][disabled], +input[type="checkbox"][disabled], +input[type="radio"][readonly], +input[type="checkbox"][readonly] { + background-color:transparent; + } +.control-group.warning > label, +.control-group.warning .help-block, +.control-group.warning .help-inline { + color:#c09853; + } +.control-group.warning .checkbox, +.control-group.warning .radio, +.control-group.warning input, +.control-group.warning select, +.control-group.warning textarea { + color:#c09853; + border-color:#c09853; + } +.control-group.warning .checkbox:focus, +.control-group.warning .radio:focus, +.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; + 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; + } +.control-group.error > label, +.control-group.error .help-block, +.control-group.error .help-inline { + color:#b94a48; + } +.control-group.error .checkbox, +.control-group.error .radio, +.control-group.error input, +.control-group.error select, +.control-group.error textarea { + color:#b94a48; + border-color:#b94a48; + } +.control-group.error .checkbox:focus, +.control-group.error .radio:focus, +.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; + 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; + } +.control-group.success > label, +.control-group.success .help-block, +.control-group.success .help-inline { + color:#468847; + } +.control-group.success .checkbox, +.control-group.success .radio, +.control-group.success input, +.control-group.success select, +.control-group.success textarea { + color:#468847; + border-color:#468847; + } +.control-group.success .checkbox:focus, +.control-group.success .radio:focus, +.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; + 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; + } +input:focus:required:invalid, +textarea:focus:required:invalid, +select:focus:required:invalid { + color:#b94a48; + border-color:#ee5f5b; + } +input:focus:required:invalid:focus, +textarea:focus:required:invalid:focus, +select:focus:required:invalid:focus { + border-color:#e9322d; + -webkit-box-shadow:0 0 6px #f8b9b7; + -moz-box-shadow:0 0 6px #f8b9b7; + box-shadow:0 0 6px #f8b9b7; + } +.form-actions { + padding:17px 20px 18px; + margin-top:18px; + margin-bottom:18px; + background-color:#f5f5f5; + border-top:1px solid #e5e5e5; + *zoom:1; + } +.form-actions:before, +.form-actions:after { + display:table; + content:""; + } +.form-actions:after { + clear:both; + } +.uneditable-input { + overflow:hidden; + white-space:nowrap; + cursor:not-allowed; + background-color:#ffffff; + border-color:#eee; + -webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.025); + -moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.025); + box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.025); + } +:-moz-placeholder { + color:#999999; + } +:-ms-input-placeholder { + color:#999999; + } +::-webkit-input-placeholder { + color:#999999; + } +.help-block, +.help-inline { + color:#555555; + } +.help-block { + display:block; + margin-bottom:9px; + } +.help-inline { + display:inline-block; + *display:inline; + padding-left:5px; + vertical-align:middle; + *zoom:1; + } +.input-prepend, +.input-append { + margin-bottom:5px; + } +.input-prepend input, +.input-append input, +.input-prepend select, +.input-append select, +.input-prepend .uneditable-input, +.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; + border-radius:0 3px 3px 0; + } +.input-prepend input:focus, +.input-append input:focus, +.input-prepend select:focus, +.input-append select:focus, +.input-prepend .uneditable-input: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 { + display:inline-block; + width:auto; + height:18px; + min-width:16px; + padding:4px 5px; + font-weight:normal; + line-height:18px; + text-align:center; + text-shadow:0 1px 0 #ffffff; + vertical-align:middle; + background-color:#eeeeee; + border:1px solid #ccc; + } +.input-prepend .add-on, +.input-append .add-on, +.input-prepend .btn, +.input-append .btn { + margin-left:-1px; + -webkit-border-radius:0; + -moz-border-radius:0; + border-radius:0; + } +.input-prepend .active, +.input-append .active { + background-color:#a9dba9; + border-color:#46a546; + } +.input-prepend .add-on, +.input-prepend .btn { + margin-right:-1px; + } +.input-prepend .add-on:first-child, +.input-prepend .btn:first-child { + -webkit-border-radius:3px 0 0 3px; + -moz-border-radius:3px 0 0 3px; + border-radius:3px 0 0 3px; + } +.input-append input, +.input-append select, +.input-append .uneditable-input { + -webkit-border-radius:3px 0 0 3px; + -moz-border-radius:3px 0 0 3px; + border-radius:3px 0 0 3px; + } +.input-append .uneditable-input { + border-right-color:#ccc; + border-left-color:#eee; + } +.input-append .add-on:last-child, +.input-append .btn:last-child { + -webkit-border-radius:0 3px 3px 0; + -moz-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; + border-radius:0; + } +.input-prepend.input-append .add-on:first-child, +.input-prepend.input-append .btn:first-child { + margin-right:-1px; + -webkit-border-radius:3px 0 0 3px; + -moz-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 { + margin-left:-1px; + -webkit-border-radius:0 3px 3px 0; + -moz-border-radius:0 3px 3px 0; + border-radius:0 3px 3px 0; + } +.search-query { + padding-right:14px; + padding-right:4px \9; + padding-left:14px; + padding-left:4px \9; + /* IE7-8 doesn't have border-radius, so don't indent the padding */ + + margin-bottom:0; + -webkit-border-radius:14px; + -moz-border-radius:14px; + border-radius:14px; + } +.form-search input, +.form-inline input, +.form-horizontal input, +.form-search textarea, +.form-inline textarea, +.form-horizontal textarea, +.form-search select, +.form-inline select, +.form-horizontal select, +.form-search .help-inline, +.form-inline .help-inline, +.form-horizontal .help-inline, +.form-search .uneditable-input, +.form-inline .uneditable-input, +.form-horizontal .uneditable-input, +.form-search .input-prepend, +.form-inline .input-prepend, +.form-horizontal .input-prepend, +.form-search .input-append, +.form-inline .input-append, +.form-horizontal .input-append { + display:inline-block; + *display:inline; + margin-bottom:0; + *zoom:1; + } +.form-search .hide, +.form-inline .hide, +.form-horizontal .hide { + display:none; + } +.form-search label, +.form-inline label { + display:inline-block; + } +.form-search .input-append, +.form-inline .input-append, +.form-search .input-prepend, +.form-inline .input-prepend { + margin-bottom:0; + } +.form-search .radio, +.form-search .checkbox, +.form-inline .radio, +.form-inline .checkbox { + padding-left:0; + margin-bottom:0; + vertical-align:middle; + } +.form-search .radio input[type="radio"], +.form-search .checkbox input[type="checkbox"], +.form-inline .radio input[type="radio"], +.form-inline .checkbox input[type="checkbox"] { + float:left; + margin-right:3px; + margin-left:0; + } +.control-group { + margin-bottom:9px; + } +legend + .control-group { + margin-top:18px; + -webkit-margin-top-collapse:separate; + } +.form-horizontal .control-group { + margin-bottom:18px; + *zoom:1; + } +.form-horizontal .control-group:before, +.form-horizontal .control-group:after { + display:table; + content:""; + } +.form-horizontal .control-group:after { + clear:both; + } +.form-horizontal .control-label { + float:left; + width:140px; + padding-top:5px; + text-align:right; + } +.form-horizontal .controls { + *display:inline-block; + *padding-left:20px; + margin-left:160px; + *margin-left:0; + } +.form-horizontal .controls:first-child { + *padding-left:160px; + } +.form-horizontal .help-block { + margin-top:9px; + margin-bottom:0; + } +.form-horizontal .form-actions { + padding-left:160px; + } +table { + max-width:100%; + background-color:transparent; + border-collapse:collapse; + border-spacing:0; + } +.table { + width:100%; + margin-bottom:18px; + } +.table th, +.table td { + padding:8px; + line-height:18px; + text-align:left; + vertical-align:top; + border-top:1px solid #dddddd; + } +.table th { + font-weight:bold; + } +.table thead th { + vertical-align:bottom; + } +.table caption + thead tr:first-child th, +.table caption + thead tr:first-child td, +.table colgroup + thead tr:first-child th, +.table colgroup + thead tr:first-child td, +.table thead:first-child tr:first-child th, +.table thead:first-child tr:first-child td { + border-top:0; + } +.table tbody + tbody { + border-top:2px solid #dddddd; + } +.table-condensed th, +.table-condensed td { + padding:4px 5px; + } +.table-bordered { + border:1px solid #dddddd; + border-collapse:separate; + *border-collapse:collapsed; + border-left:0; + -webkit-border-radius:4px; + -moz-border-radius:4px; + border-radius:4px; + } +.table-bordered th, +.table-bordered td { + border-left:1px solid #dddddd; + } +.table-bordered caption + thead tr:first-child th, +.table-bordered caption + tbody tr:first-child th, +.table-bordered caption + tbody tr:first-child td, +.table-bordered colgroup + thead tr:first-child th, +.table-bordered colgroup + tbody tr:first-child th, +.table-bordered colgroup + tbody tr:first-child td, +.table-bordered thead:first-child tr:first-child th, +.table-bordered tbody:first-child tr:first-child th, +.table-bordered tbody:first-child tr:first-child td { + border-top:0; + } +.table-bordered thead:first-child tr:first-child th:first-child, +.table-bordered tbody:first-child tr:first-child td:first-child { + -webkit-border-top-left-radius:4px; + border-top-left-radius:4px; + -moz-border-radius-topleft:4px; + } +.table-bordered thead:first-child tr:first-child th:last-child, +.table-bordered tbody:first-child tr:first-child td:last-child { + -webkit-border-top-right-radius:4px; + border-top-right-radius:4px; + -moz-border-radius-topright:4px; + } +.table-bordered thead:last-child tr:last-child th:first-child, +.table-bordered tbody:last-child tr:last-child td:first-child { + -webkit-border-radius:0 0 0 4px; + -moz-border-radius:0 0 0 4px; + border-radius:0 0 0 4px; + -webkit-border-bottom-left-radius:4px; + border-bottom-left-radius:4px; + -moz-border-radius-bottomleft:4px; + } +.table-bordered thead:last-child tr:last-child th:last-child, +.table-bordered tbody:last-child tr:last-child td:last-child { + -webkit-border-bottom-right-radius:4px; + border-bottom-right-radius:4px; + -moz-border-radius-bottomright:4px; + } +.table-striped tbody tr:nth-child(odd) td, +.table-striped tbody tr:nth-child(odd) th { + background-color:#f9f9f9; + } +.table tbody tr:hover td, +.table tbody tr:hover th { + background-color:#f5f5f5; + } +table .span1 { + float:none; + width:44px; + margin-left:0; + } +table .span2 { + float:none; + width:124px; + margin-left:0; + } +table .span3 { + float:none; + width:204px; + margin-left:0; + } +table .span4 { + float:none; + width:284px; + margin-left:0; + } +table .span5 { + float:none; + width:364px; + margin-left:0; + } +table .span6 { + float:none; + width:444px; + margin-left:0; + } +table .span7 { + float:none; + width:524px; + margin-left:0; + } +table .span8 { + float:none; + width:604px; + margin-left:0; + } +table .span9 { + float:none; + width:684px; + margin-left:0; + } +table .span10 { + float:none; + width:764px; + margin-left:0; + } +table .span11 { + float:none; + width:844px; + margin-left:0; + } +table .span12 { + float:none; + width:924px; + margin-left:0; + } +table .span13 { + float:none; + width:1004px; + margin-left:0; + } +table .span14 { + float:none; + width:1084px; + margin-left:0; + } +table .span15 { + float:none; + width:1164px; + margin-left:0; + } +table .span16 { + float:none; + width:1244px; + margin-left:0; + } +table .span17 { + float:none; + width:1324px; + margin-left:0; + } +table .span18 { + float:none; + width:1404px; + margin-left:0; + } +table .span19 { + float:none; + width:1484px; + margin-left:0; + } +table .span20 { + float:none; + width:1564px; + margin-left:0; + } +table .span21 { + float:none; + width:1644px; + margin-left:0; + } +table .span22 { + float:none; + width:1724px; + margin-left:0; + } +table .span23 { + float:none; + width:1804px; + margin-left:0; + } +table .span24 { + float:none; + width:1884px; + margin-left:0; + } +[class^="icon-"], +[class*=" icon-"] { + display:inline-block; + width:14px; + height:14px; + *margin-right:.3em; + line-height:14px; + vertical-align:text-top; + background-image:url("../img/glyphicons-halflings.png"); + background-position:14px 14px; + background-repeat:no-repeat; + } +[class^="icon-"]:last-child, +[class*=" icon-"]:last-child { + *margin-left:0; + } +.icon-white { + background-image:url("../img/glyphicons-halflings-white.png"); + } +.icon-glass { + background-position:0 0; + } +.icon-music { + background-position:-24px 0; + } +.icon-search { + background-position:-48px 0; + } +.icon-envelope { + background-position:-72px 0; + } +.icon-heart { + background-position:-96px 0; + } +.icon-star { + background-position:-120px 0; + } +.icon-star-empty { + background-position:-144px 0; + } +.icon-user { + background-position:-168px 0; + } +.icon-film { + background-position:-192px 0; + } +.icon-th-large { + background-position:-216px 0; + } +.icon-th { + background-position:-240px 0; + } +.icon-th-list { + background-position:-264px 0; + } +.icon-ok { + background-position:-288px 0; + } +.icon-remove { + background-position:-312px 0; + } +.icon-zoom-in { + background-position:-336px 0; + } +.icon-zoom-out { + background-position:-360px 0; + } +.icon-off { + background-position:-384px 0; + } +.icon-signal { + background-position:-408px 0; + } +.icon-cog { + background-position:-432px 0; + } +.icon-trash { + background-position:-456px 0; + } +.icon-home { + background-position:0 -24px; + } +.icon-file { + background-position:-24px -24px; + } +.icon-time { + background-position:-48px -24px; + } +.icon-road { + background-position:-72px -24px; + } +.icon-download-alt { + background-position:-96px -24px; + } +.icon-download { + background-position:-120px -24px; + } +.icon-upload { + background-position:-144px -24px; + } +.icon-inbox { + background-position:-168px -24px; + } +.icon-play-circle { + background-position:-192px -24px; + } +.icon-repeat { + background-position:-216px -24px; + } +.icon-refresh { + background-position:-240px -24px; + } +.icon-list-alt { + background-position:-264px -24px; + } +.icon-lock { + background-position:-287px -24px; + } +.icon-flag { + background-position:-312px -24px; + } +.icon-headphones { + background-position:-336px -24px; + } +.icon-volume-off { + background-position:-360px -24px; + } +.icon-volume-down { + background-position:-384px -24px; + } +.icon-volume-up { + background-position:-408px -24px; + } +.icon-qrcode { + background-position:-432px -24px; + } +.icon-barcode { + background-position:-456px -24px; + } +.icon-tag { + background-position:0 -48px; + } +.icon-tags { + background-position:-25px -48px; + } +.icon-book { + background-position:-48px -48px; + } +.icon-bookmark { + background-position:-72px -48px; + } +.icon-print { + background-position:-96px -48px; + } +.icon-camera { + background-position:-120px -48px; + } +.icon-font { + background-position:-144px -48px; + } +.icon-bold { + background-position:-167px -48px; + } +.icon-italic { + background-position:-192px -48px; + } +.icon-text-height { + background-position:-216px -48px; + } +.icon-text-width { + background-position:-240px -48px; + } +.icon-align-left { + background-position:-264px -48px; + } +.icon-align-center { + background-position:-288px -48px; + } +.icon-align-right { + background-position:-312px -48px; + } +.icon-align-justify { + background-position:-336px -48px; + } +.icon-list { + background-position:-360px -48px; + } +.icon-indent-left { + background-position:-384px -48px; + } +.icon-indent-right { + background-position:-408px -48px; + } +.icon-facetime-video { + background-position:-432px -48px; + } +.icon-picture { + background-position:-456px -48px; + } +.icon-pencil { + background-position:0 -72px; + } +.icon-map-marker { + background-position:-24px -72px; + } +.icon-adjust { + background-position:-48px -72px; + } +.icon-tint { + background-position:-72px -72px; + } +.icon-edit { + background-position:-96px -72px; + } +.icon-share { + background-position:-120px -72px; + } +.icon-check { + background-position:-144px -72px; + } +.icon-move { + background-position:-168px -72px; + } +.icon-step-backward { + background-position:-192px -72px; + } +.icon-fast-backward { + background-position:-216px -72px; + } +.icon-backward { + background-position:-240px -72px; + } +.icon-play { + background-position:-264px -72px; + } +.icon-pause { + background-position:-288px -72px; + } +.icon-stop { + background-position:-312px -72px; + } +.icon-forward { + background-position:-336px -72px; + } +.icon-fast-forward { + background-position:-360px -72px; + } +.icon-step-forward { + background-position:-384px -72px; + } +.icon-eject { + background-position:-408px -72px; + } +.icon-chevron-left { + background-position:-432px -72px; + } +.icon-chevron-right { + background-position:-456px -72px; + } +.icon-plus-sign { + background-position:0 -96px; + } +.icon-minus-sign { + background-position:-24px -96px; + } +.icon-remove-sign { + background-position:-48px -96px; + } +.icon-ok-sign { + background-position:-72px -96px; + } +.icon-question-sign { + background-position:-96px -96px; + } +.icon-info-sign { + background-position:-120px -96px; + } +.icon-screenshot { + background-position:-144px -96px; + } +.icon-remove-circle { + background-position:-168px -96px; + } +.icon-ok-circle { + background-position:-192px -96px; + } +.icon-ban-circle { + background-position:-216px -96px; + } +.icon-arrow-left { + background-position:-240px -96px; + } +.icon-arrow-right { + background-position:-264px -96px; + } +.icon-arrow-up { + background-position:-289px -96px; + } +.icon-arrow-down { + background-position:-312px -96px; + } +.icon-share-alt { + background-position:-336px -96px; + } +.icon-resize-full { + background-position:-360px -96px; + } +.icon-resize-small { + background-position:-384px -96px; + } +.icon-plus { + background-position:-408px -96px; + } +.icon-minus { + background-position:-433px -96px; + } +.icon-asterisk { + background-position:-456px -96px; + } +.icon-exclamation-sign { + background-position:0 -120px; + } +.icon-gift { + background-position:-24px -120px; + } +.icon-leaf { + background-position:-48px -120px; + } +.icon-fire { + background-position:-72px -120px; + } +.icon-eye-open { + background-position:-96px -120px; + } +.icon-eye-close { + background-position:-120px -120px; + } +.icon-warning-sign { + background-position:-144px -120px; + } +.icon-plane { + background-position:-168px -120px; + } +.icon-calendar { + background-position:-192px -120px; + } +.icon-random { + background-position:-216px -120px; + } +.icon-comment { + background-position:-240px -120px; + } +.icon-magnet { + background-position:-264px -120px; + } +.icon-chevron-up { + background-position:-288px -120px; + } +.icon-chevron-down { + background-position:-313px -119px; + } +.icon-retweet { + background-position:-336px -120px; + } +.icon-shopping-cart { + background-position:-360px -120px; + } +.icon-folder-close { + 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; + } +.icon-hdd { + background-position:0 -144px; + } +.icon-bullhorn { + background-position:-24px -144px; + } +.icon-bell { + background-position:-48px -144px; + } +.icon-certificate { + background-position:-72px -144px; + } +.icon-thumbs-up { + background-position:-96px -144px; + } +.icon-thumbs-down { + background-position:-120px -144px; + } +.icon-hand-right { + background-position:-144px -144px; + } +.icon-hand-left { + background-position:-168px -144px; + } +.icon-hand-up { + background-position:-192px -144px; + } +.icon-hand-down { + background-position:-216px -144px; + } +.icon-circle-arrow-right { + background-position:-240px -144px; + } +.icon-circle-arrow-left { + background-position:-264px -144px; + } +.icon-circle-arrow-up { + background-position:-288px -144px; + } +.icon-circle-arrow-down { + background-position:-312px -144px; + } +.icon-globe { + background-position:-336px -144px; + } +.icon-wrench { + background-position:-360px -144px; + } +.icon-tasks { + background-position:-384px -144px; + } +.icon-filter { + background-position:-408px -144px; + } +.icon-briefcase { + background-position:-432px -144px; + } +.icon-fullscreen { + background-position:-456px -144px; + } +.dropup, +.dropdown { + position:relative; + } +.dropdown-toggle { + *margin-bottom:-3px; + } +.dropdown-toggle:active, +.open .dropdown-toggle { + outline:0; + } +.caret { + display:inline-block; + width:0; + height:0; + vertical-align:top; + border-top:4px solid #000000; + border-right:4px solid transparent; + border-left:4px solid transparent; + content:""; + opacity:0.3; + filter:alpha(opacity=30); + } +.dropdown .caret { + margin-top:8px; + margin-left:2px; + } +.dropdown:hover .caret, +.open .caret { + opacity:1; + filter:alpha(opacity=100); + } +.dropdown-menu { + position:absolute; + top:100%; + left:0; + z-index:1000; + display:none; + float:left; + min-width:160px; + padding:4px 0; + margin:1px 0 0; + list-style:none; + background-color:#ffffff; + border:1px solid #ccc; + border:1px solid rgba(0, 0, 0, 0.2); + *border-right-width:2px; + *border-bottom-width:2px; + -webkit-border-radius:5px; + -moz-border-radius:5px; + border-radius:5px; + -webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2); + -moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2); + box-shadow:0 5px 10px rgba(0, 0, 0, 0.2); + -webkit-background-clip:padding-box; + -moz-background-clip:padding; + background-clip:padding-box; + } +.dropdown-menu.pull-right { + right:0; + left:auto; + } +.dropdown-menu .divider { + *width:100%; + height:1px; + margin:8px 1px; + *margin:-5px 0 5px; + overflow:hidden; + background-color:#e5e5e5; + border-bottom:1px solid #ffffff; + } +.dropdown-menu a { + display:block; + padding:3px 15px; + clear:both; + font-weight:normal; + line-height:18px; + color:#333333; + white-space:nowrap; + } +.dropdown-menu li > a:hover, +.dropdown-menu .active > a, +.dropdown-menu .active > a:hover { + color:#ffffff; + text-decoration:none; + background-color:#0088cc; + } +.open { + *z-index:1000; + } +.open > .dropdown-menu { + display:block; + } +.pull-right > .dropdown-menu { + right:0; + left:auto; + } +.dropup .caret, +.navbar-fixed-bottom .dropdown .caret { + border-top:0; + border-bottom:4px solid #000000; + content:"\2191"; + } +.dropup .dropdown-menu, +.navbar-fixed-bottom .dropdown .dropdown-menu { + top:auto; + bottom:100%; + margin-bottom:1px; + } +.typeahead { + margin-top:2px; + -webkit-border-radius:4px; + -moz-border-radius:4px; + border-radius:4px; + } +.well { + min-height:20px; + padding:19px; + margin-bottom:20px; + background-color:#f5f5f5; + border:1px solid #eee; + border:1px solid rgba(0, 0, 0, 0.05); + -webkit-border-radius:4px; + -moz-border-radius:4px; + border-radius:4px; + -webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05); + -moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05); + box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05); + } +.well blockquote { + border-color:#ddd; + border-color:rgba(0, 0, 0, 0.15); + } +.well-large { + padding:24px; + -webkit-border-radius:6px; + -moz-border-radius:6px; + border-radius:6px; + } +.well-small { + padding:9px; + -webkit-border-radius:3px; + -moz-border-radius:3px; + border-radius:3px; + } +.fade { + opacity:0; + -webkit-transition:opacity 0.15s linear; + -moz-transition:opacity 0.15s linear; + -ms-transition:opacity 0.15s linear; + -o-transition:opacity 0.15s linear; + transition:opacity 0.15s linear; + } +.fade.in { + opacity:1; + } +.collapse { + position:relative; + height:0; + overflow:hidden; + -webkit-transition:height 0.35s ease; + -moz-transition:height 0.35s ease; + -ms-transition:height 0.35s ease; + -o-transition:height 0.35s ease; + transition:height 0.35s ease; + } +.collapse.in { + height:auto; + } +.close { + float:right; + font-size:20px; + font-weight:bold; + line-height:18px; + color:#000000; + text-shadow:0 1px 0 #ffffff; + opacity:0.2; + filter:alpha(opacity=20); + } +.close:hover { + color:#000000; + text-decoration:none; + cursor:pointer; + opacity:0.4; + filter:alpha(opacity=40); + } +button.close { + padding:0; + cursor:pointer; + background:transparent; + border:0; + -webkit-appearance:none; + } +.btn { + display:inline-block; + *display:inline; + padding:4px 10px 4px; + margin-bottom:0; + *margin-left:.3em; + font-size:13px; + line-height:18px; + *line-height:20px; + color:#333333; + text-align:center; + text-shadow:0 1px 1px rgba(255, 255, 255, 0.75); + vertical-align:middle; + cursor:pointer; + background-color:#f5f5f5; + *background-color:#e6e6e6; + background-image:-ms-linear-gradient(top, #ffffff, #e6e6e6); + background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6)); + background-image:-webkit-linear-gradient(top, #ffffff, #e6e6e6); + background-image:-o-linear-gradient(top, #ffffff, #e6e6e6); + background-image:linear-gradient(top, #ffffff, #e6e6e6); + background-image:-moz-linear-gradient(top, #ffffff, #e6e6e6); + background-repeat:repeat-x; + border:1px solid #cccccc; + *border:0; + border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + border-color:#e6e6e6 #e6e6e6 #bfbfbf; + border-bottom-color:#b3b3b3; + -webkit-border-radius:4px; + -moz-border-radius:4px; + border-radius:4px; + filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0); + filter:progid:dximagetransform.microsoft.gradient(enabled=false); + *zoom:1; + -webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + } +.btn:hover, +.btn:active, +.btn.active, +.btn.disabled, +.btn[disabled] { + background-color:#e6e6e6; + *background-color:#d9d9d9; + } +.btn:active, +.btn.active { + background-color:#cccccc \9; + } +.btn:first-child { + *margin-left:0; + } +.btn:hover { + color:#333333; + text-decoration:none; + background-color:#e6e6e6; + *background-color:#d9d9d9; + /* Buttons in IE7 don't get borders, so darken on hover */ + + background-position:0 -15px; + -webkit-transition:background-position 0.1s linear; + -moz-transition:background-position 0.1s linear; + -ms-transition:background-position 0.1s linear; + -o-transition:background-position 0.1s linear; + transition:background-position 0.1s linear; + } +.btn:focus { + outline:thin dotted #333; + outline:5px auto -webkit-focus-ring-color; + outline-offset:-2px; + } +.btn.active, +.btn:active { + background-color:#e6e6e6; + background-color:#d9d9d9 \9; + background-image:none; + outline:0; + -webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + } +.btn.disabled, +.btn[disabled] { + cursor:default; + background-color:#e6e6e6; + background-image:none; + opacity:0.65; + filter:alpha(opacity=65); + -webkit-box-shadow:none; + -moz-box-shadow:none; + box-shadow:none; + } +.btn-large { + padding:9px 14px; + font-size:15px; + line-height:normal; + -webkit-border-radius:5px; + -moz-border-radius:5px; + border-radius:5px; + } +.btn-large [class^="icon-"] { + margin-top:1px; + } +.btn-small { + padding:5px 9px; + font-size:11px; + line-height:16px; + } +.btn-small [class^="icon-"] { + margin-top:-1px; + } +.btn-mini { + padding:2px 6px; + font-size:11px; + line-height:14px; + } +.btn-primary, +.btn-primary:hover, +.btn-warning, +.btn-warning:hover, +.btn-danger, +.btn-danger:hover, +.btn-success, +.btn-success:hover, +.btn-info, +.btn-info:hover, +.btn-inverse, +.btn-inverse:hover { + color:#ffffff; + text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25); + } +.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 { + border-color:#ccc; + border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + } +.btn-primary { + background-color:#0074cc; + *background-color:#0055cc; + background-image:-ms-linear-gradient(top, #0088cc, #0055cc); + background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0055cc)); + background-image:-webkit-linear-gradient(top, #0088cc, #0055cc); + background-image:-o-linear-gradient(top, #0088cc, #0055cc); + background-image:-moz-linear-gradient(top, #0088cc, #0055cc); + background-image:linear-gradient(top, #0088cc, #0055cc); + background-repeat:repeat-x; + border-color:#0055cc #0055cc #003580; + border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter:progid:dximagetransform.microsoft.gradient(startColorstr='#0088cc', endColorstr='#0055cc', GradientType=0); + filter:progid:dximagetransform.microsoft.gradient(enabled=false); + } +.btn-primary:hover, +.btn-primary:active, +.btn-primary.active, +.btn-primary.disabled, +.btn-primary[disabled] { + background-color:#0055cc; + *background-color:#004ab3; + } +.btn-primary:active, +.btn-primary.active { + background-color:#004099 \9; + } +.btn-warning { + background-color:#faa732; + *background-color:#f89406; + background-image:-ms-linear-gradient(top, #fbb450, #f89406); + background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406)); + background-image:-webkit-linear-gradient(top, #fbb450, #f89406); + background-image:-o-linear-gradient(top, #fbb450, #f89406); + background-image:-moz-linear-gradient(top, #fbb450, #f89406); + background-image:linear-gradient(top, #fbb450, #f89406); + background-repeat:repeat-x; + border-color:#f89406 #f89406 #ad6704; + border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter:progid:dximagetransform.microsoft.gradient(startColorstr='#fbb450', endColorstr='#f89406', GradientType=0); + filter:progid:dximagetransform.microsoft.gradient(enabled=false); + } +.btn-warning:hover, +.btn-warning:active, +.btn-warning.active, +.btn-warning.disabled, +.btn-warning[disabled] { + background-color:#f89406; + *background-color:#df8505; + } +.btn-warning:active, +.btn-warning.active { + background-color:#c67605 \9; + } +.btn-danger { + background-color:#da4f49; + *background-color:#bd362f; + background-image:-ms-linear-gradient(top, #ee5f5b, #bd362f); + background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f)); + background-image:-webkit-linear-gradient(top, #ee5f5b, #bd362f); + background-image:-o-linear-gradient(top, #ee5f5b, #bd362f); + background-image:-moz-linear-gradient(top, #ee5f5b, #bd362f); + background-image:linear-gradient(top, #ee5f5b, #bd362f); + background-repeat:repeat-x; + border-color:#bd362f #bd362f #802420; + border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#bd362f', GradientType=0); + filter:progid:dximagetransform.microsoft.gradient(enabled=false); + } +.btn-danger:hover, +.btn-danger:active, +.btn-danger.active, +.btn-danger.disabled, +.btn-danger[disabled] { + background-color:#bd362f; + *background-color:#a9302a; + } +.btn-danger:active, +.btn-danger.active { + background-color:#942a25 \9; + } +.btn-success { + background-color:#5bb75b; + *background-color:#51a351; + background-image:-ms-linear-gradient(top, #62c462, #51a351); + background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351)); + background-image:-webkit-linear-gradient(top, #62c462, #51a351); + background-image:-o-linear-gradient(top, #62c462, #51a351); + background-image:-moz-linear-gradient(top, #62c462, #51a351); + background-image:linear-gradient(top, #62c462, #51a351); + background-repeat:repeat-x; + border-color:#51a351 #51a351 #387038; + border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter:progid:dximagetransform.microsoft.gradient(startColorstr='#62c462', endColorstr='#51a351', GradientType=0); + filter:progid:dximagetransform.microsoft.gradient(enabled=false); + } +.btn-success:hover, +.btn-success:active, +.btn-success.active, +.btn-success.disabled, +.btn-success[disabled] { + background-color:#51a351; + *background-color:#499249; + } +.btn-success:active, +.btn-success.active { + background-color:#408140 \9; + } +.btn-info { + background-color:#49afcd; + *background-color:#2f96b4; + background-image:-ms-linear-gradient(top, #5bc0de, #2f96b4); + background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4)); + background-image:-webkit-linear-gradient(top, #5bc0de, #2f96b4); + background-image:-o-linear-gradient(top, #5bc0de, #2f96b4); + background-image:-moz-linear-gradient(top, #5bc0de, #2f96b4); + background-image:linear-gradient(top, #5bc0de, #2f96b4); + background-repeat:repeat-x; + border-color:#2f96b4 #2f96b4 #1f6377; + border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter:progid:dximagetransform.microsoft.gradient(startColorstr='#5bc0de', endColorstr='#2f96b4', GradientType=0); + filter:progid:dximagetransform.microsoft.gradient(enabled=false); + } +.btn-info:hover, +.btn-info:active, +.btn-info.active, +.btn-info.disabled, +.btn-info[disabled] { + background-color:#2f96b4; + *background-color:#2a85a0; + } +.btn-info:active, +.btn-info.active { + background-color:#24748c \9; + } +.btn-inverse { + background-color:#414141; + *background-color:#222222; + background-image:-ms-linear-gradient(top, #555555, #222222); + background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#555555), to(#222222)); + background-image:-webkit-linear-gradient(top, #555555, #222222); + background-image:-o-linear-gradient(top, #555555, #222222); + background-image:-moz-linear-gradient(top, #555555, #222222); + background-image:linear-gradient(top, #555555, #222222); + background-repeat:repeat-x; + border-color:#222222 #222222 #000000; + border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter:progid:dximagetransform.microsoft.gradient(startColorstr='#555555', endColorstr='#222222', GradientType=0); + filter:progid:dximagetransform.microsoft.gradient(enabled=false); + } +.btn-inverse:hover, +.btn-inverse:active, +.btn-inverse.active, +.btn-inverse.disabled, +.btn-inverse[disabled] { + background-color:#222222; + *background-color:#151515; + } +.btn-inverse:active, +.btn-inverse.active { + background-color:#080808 \9; + } +button.btn, +input[type="submit"].btn { + *padding-top:2px; + *padding-bottom:2px; + } +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-group { + position:relative; + *margin-left:.3em; + *zoom:1; + } +.btn-group:before, +.btn-group:after { + display:table; + content:""; + } +.btn-group:after { + clear:both; + } +.btn-group:first-child { + *margin-left:0; + } +.btn-group + .btn-group { + margin-left:5px; + } +.btn-toolbar { + margin-top:9px; + margin-bottom:9px; + } +.btn-toolbar .btn-group { + display:inline-block; + *display:inline; + /* IE7 inline-block hack */ + + *zoom:1; + } +.btn-group > .btn { + position:relative; + float:left; + margin-left:-1px; + -webkit-border-radius:0; + -moz-border-radius:0; + border-radius:0; + } +.btn-group > .btn:first-child { + margin-left:0; + -webkit-border-bottom-left-radius:4px; + border-bottom-left-radius:4px; + -webkit-border-top-left-radius:4px; + border-top-left-radius:4px; + -moz-border-radius-bottomleft:4px; + -moz-border-radius-topleft:4px; + } +.btn-group > .btn:last-child, +.btn-group > .dropdown-toggle { + -webkit-border-top-right-radius:4px; + border-top-right-radius:4px; + -webkit-border-bottom-right-radius:4px; + border-bottom-right-radius:4px; + -moz-border-radius-topright:4px; + -moz-border-radius-bottomright:4px; + } +.btn-group > .btn.large:first-child { + margin-left:0; + -webkit-border-bottom-left-radius:6px; + border-bottom-left-radius:6px; + -webkit-border-top-left-radius:6px; + border-top-left-radius:6px; + -moz-border-radius-bottomleft:6px; + -moz-border-radius-topleft:6px; + } +.btn-group > .btn.large:last-child, +.btn-group > .large.dropdown-toggle { + -webkit-border-top-right-radius:6px; + border-top-right-radius:6px; + -webkit-border-bottom-right-radius:6px; + border-bottom-right-radius:6px; + -moz-border-radius-topright:6px; + -moz-border-radius-bottomright:6px; + } +.btn-group > .btn:hover, +.btn-group > .btn:focus, +.btn-group > .btn:active, +.btn-group > .btn.active { + z-index:2; + } +.btn-group .dropdown-toggle:active, +.btn-group.open .dropdown-toggle { + outline:0; + } +.btn-group > .dropdown-toggle { + *padding-top:4px; + padding-right:8px; + *padding-bottom:4px; + padding-left:8px; + -webkit-box-shadow:inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow:inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow:inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05); + } +.btn-group > .btn-mini.dropdown-toggle { + padding-right:5px; + padding-left:5px; + } +.btn-group > .btn-small.dropdown-toggle { + *padding-top:4px; + *padding-bottom:4px; + } +.btn-group > .btn-large.dropdown-toggle { + padding-right:12px; + padding-left:12px; + } +.btn-group.open .dropdown-toggle { + background-image:none; + -webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05); + } +.btn-group.open .btn.dropdown-toggle { + background-color:#e6e6e6; + } +.btn-group.open .btn-primary.dropdown-toggle { + background-color:#0055cc; + } +.btn-group.open .btn-warning.dropdown-toggle { + background-color:#f89406; + } +.btn-group.open .btn-danger.dropdown-toggle { + background-color:#bd362f; + } +.btn-group.open .btn-success.dropdown-toggle { + background-color:#51a351; + } +.btn-group.open .btn-info.dropdown-toggle { + background-color:#2f96b4; + } +.btn-group.open .btn-inverse.dropdown-toggle { + background-color:#222222; + } +.btn .caret { + margin-top:7px; + margin-left:0; + } +.btn:hover .caret, +.open.btn-group .caret { + opacity:1; + filter:alpha(opacity=100); + } +.btn-mini .caret { + margin-top:5px; + } +.btn-small .caret { + margin-top:6px; + } +.btn-large .caret { + margin-top:6px; + border-top-width:5px; + border-right-width:5px; + border-left-width:5px; + } +.dropup .btn-large .caret { + border-top:0; + border-bottom:5px solid #000000; + } +.btn-primary .caret, +.btn-warning .caret, +.btn-danger .caret, +.btn-info .caret, +.btn-success .caret, +.btn-inverse .caret { + border-top-color:#ffffff; + border-bottom-color:#ffffff; + opacity:0.75; + filter:alpha(opacity=75); + } +.alert { + padding:8px 35px 8px 14px; + margin-bottom:18px; + color:#c09853; + text-shadow:0 1px 0 rgba(255, 255, 255, 0.5); + background-color:#fcf8e3; + border:1px solid #fbeed5; + -webkit-border-radius:4px; + -moz-border-radius:4px; + border-radius:4px; + } +.alert-heading { + color:inherit; + } +.alert .close { + position:relative; + top:-2px; + right:-21px; + line-height:18px; + } +.alert-success { + color:#468847; + background-color:#dff0d8; + border-color:#d6e9c6; + } +.alert-danger, +.alert-error { + color:#b94a48; + background-color:#f2dede; + border-color:#eed3d7; + } +.alert-info { + color:#3a87ad; + background-color:#d9edf7; + border-color:#bce8f1; + } +.alert-block { + padding-top:14px; + padding-bottom:14px; + } +.alert-block > p, +.alert-block > ul { + margin-bottom:0; + } +.alert-block p + p { + margin-top:5px; + } +.nav { + margin-bottom:18px; + margin-left:0; + list-style:none; + } +.nav > li > a { + display:block; + } +.nav > li > a:hover { + text-decoration:none; + background-color:#eeeeee; + } +.nav > .pull-right { + float:right; + } +.nav .nav-header { + display:block; + padding:3px 15px; + font-size:11px; + font-weight:bold; + line-height:18px; + color:#999999; + text-shadow:0 1px 0 rgba(255, 255, 255, 0.5); + text-transform:uppercase; + } +.nav li + .nav-header { + margin-top:9px; + } +.nav-list { + padding-right:15px; + padding-left:15px; + margin-bottom:0; + } +.nav-list > li > a, +.nav-list .nav-header { + margin-right:-15px; + margin-left:-15px; + text-shadow:0 1px 0 rgba(255, 255, 255, 0.5); + } +.nav-list > li > a { + padding:3px 15px; + } +.nav-list > .active > a, +.nav-list > .active > a:hover { + color:#ffffff; + text-shadow:0 -1px 0 rgba(0, 0, 0, 0.2); + background-color:#0088cc; + } +.nav-list [class^="icon-"] { + margin-right:2px; + } +.nav-list .divider { + *width:100%; + height:1px; + margin:8px 1px; + *margin:-5px 0 5px; + overflow:hidden; + background-color:#e5e5e5; + border-bottom:1px solid #ffffff; + } +.nav-tabs, +.nav-pills { + *zoom:1; + } +.nav-tabs:before, +.nav-pills:before, +.nav-tabs:after, +.nav-pills:after { + display:table; + content:""; + } +.nav-tabs:after, +.nav-pills:after { + clear:both; + } +.nav-tabs > li, +.nav-pills > li { + float:left; + } +.nav-tabs > li > a, +.nav-pills > li > a { + padding-right:12px; + padding-left:12px; + margin-right:2px; + line-height:14px; + } +.nav-tabs { + border-bottom:1px solid #ddd; + } +.nav-tabs > li { + margin-bottom:-1px; + } +.nav-tabs > li > a { + padding-top:8px; + padding-bottom:8px; + line-height:18px; + border:1px solid transparent; + -webkit-border-radius:4px 4px 0 0; + -moz-border-radius:4px 4px 0 0; + border-radius:4px 4px 0 0; + } +.nav-tabs > li > a:hover { + border-color:#eeeeee #eeeeee #dddddd; + } +.nav-tabs > .active > a, +.nav-tabs > .active > a:hover { + color:#555555; + cursor:default; + background-color:#ffffff; + border:1px solid #ddd; + border-bottom-color:transparent; + } +.nav-pills > li > a { + padding-top:8px; + padding-bottom:8px; + margin-top:2px; + margin-bottom:2px; + -webkit-border-radius:5px; + -moz-border-radius:5px; + border-radius:5px; + } +.nav-pills > .active > a, +.nav-pills > .active > a:hover { + color:#ffffff; + background-color:#0088cc; + } +.nav-stacked > li { + float:none; + } +.nav-stacked > li > a { + margin-right:0; + } +.nav-tabs.nav-stacked { + border-bottom:0; + } +.nav-tabs.nav-stacked > li > a { + border:1px solid #ddd; + -webkit-border-radius:0; + -moz-border-radius:0; + border-radius:0; + } +.nav-tabs.nav-stacked > li:first-child > a { + -webkit-border-radius:4px 4px 0 0; + -moz-border-radius:4px 4px 0 0; + border-radius:4px 4px 0 0; + } +.nav-tabs.nav-stacked > li:last-child > a { + -webkit-border-radius:0 0 4px 4px; + -moz-border-radius:0 0 4px 4px; + border-radius:0 0 4px 4px; + } +.nav-tabs.nav-stacked > li > a:hover { + z-index:2; + border-color:#ddd; + } +.nav-pills.nav-stacked > li > a { + margin-bottom:3px; + } +.nav-pills.nav-stacked > li:last-child > a { + margin-bottom:1px; + } +.nav-tabs .dropdown-menu { + -webkit-border-radius:0 0 5px 5px; + -moz-border-radius:0 0 5px 5px; + border-radius:0 0 5px 5px; + } +.nav-pills .dropdown-menu { + -webkit-border-radius:4px; + -moz-border-radius:4px; + border-radius:4px; + } +.nav-tabs .dropdown-toggle .caret, +.nav-pills .dropdown-toggle .caret { + margin-top:6px; + border-top-color:#0088cc; + border-bottom-color:#0088cc; + } +.nav-tabs .dropdown-toggle:hover .caret, +.nav-pills .dropdown-toggle:hover .caret { + border-top-color:#005580; + border-bottom-color:#005580; + } +.nav-tabs .active .dropdown-toggle .caret, +.nav-pills .active .dropdown-toggle .caret { + border-top-color:#333333; + border-bottom-color:#333333; + } +.nav > .dropdown.active > a:hover { + color:#000000; + cursor:pointer; + } +.nav-tabs .open .dropdown-toggle, +.nav-pills .open .dropdown-toggle, +.nav > li.dropdown.open.active > a:hover { + color:#ffffff; + background-color:#999999; + border-color:#999999; + } +.nav li.dropdown.open .caret, +.nav li.dropdown.open.active .caret, +.nav li.dropdown.open a:hover .caret { + border-top-color:#ffffff; + border-bottom-color:#ffffff; + opacity:1; + filter:alpha(opacity=100); + } +.tabs-stacked .open > a:hover { + border-color:#999999; + } +.tabbable { + *zoom:1; + } +.tabbable:before, +.tabbable:after { + display:table; + content:""; + } +.tabbable:after { + clear:both; + } +.tab-content { + overflow:auto; + } +.tabs-below > .nav-tabs, +.tabs-right > .nav-tabs, +.tabs-left > .nav-tabs { + border-bottom:0; + } +.tab-content > .tab-pane, +.pill-content > .pill-pane { + display:none; + } +.tab-content > .active, +.pill-content > .active { + display:block; + } +.tabs-below > .nav-tabs { + border-top:1px solid #ddd; + } +.tabs-below > .nav-tabs > li { + margin-top:-1px; + margin-bottom:0; + } +.tabs-below > .nav-tabs > li > a { + -webkit-border-radius:0 0 4px 4px; + -moz-border-radius:0 0 4px 4px; + border-radius:0 0 4px 4px; + } +.tabs-below > .nav-tabs > li > a:hover { + border-top-color:#ddd; + border-bottom-color:transparent; + } +.tabs-below > .nav-tabs > .active > a, +.tabs-below > .nav-tabs > .active > a:hover { + border-color:transparent #ddd #ddd #ddd; + } +.tabs-left > .nav-tabs > li, +.tabs-right > .nav-tabs > li { + float:none; + } +.tabs-left > .nav-tabs > li > a, +.tabs-right > .nav-tabs > li > a { + min-width:74px; + margin-right:0; + margin-bottom:3px; + } +.tabs-left > .nav-tabs { + float:left; + margin-right:19px; + border-right:1px solid #ddd; + } +.tabs-left > .nav-tabs > li > a { + margin-right:-1px; + -webkit-border-radius:4px 0 0 4px; + -moz-border-radius:4px 0 0 4px; + border-radius:4px 0 0 4px; + } +.tabs-left > .nav-tabs > li > a:hover { + border-color:#eeeeee #dddddd #eeeeee #eeeeee; + } +.tabs-left > .nav-tabs .active > a, +.tabs-left > .nav-tabs .active > a:hover { + border-color:#ddd transparent #ddd #ddd; + *border-right-color:#ffffff; + } +.tabs-right > .nav-tabs { + float:right; + margin-left:19px; + border-left:1px solid #ddd; + } +.tabs-right > .nav-tabs > li > a { + margin-left:-1px; + -webkit-border-radius:0 4px 4px 0; + -moz-border-radius:0 4px 4px 0; + border-radius:0 4px 4px 0; + } +.tabs-right > .nav-tabs > li > a:hover { + border-color:#eeeeee #eeeeee #eeeeee #dddddd; + } +.tabs-right > .nav-tabs .active > a, +.tabs-right > .nav-tabs .active > a:hover { + border-color:#ddd #ddd #ddd transparent; + *border-left-color:#ffffff; + } +.navbar { + *position:relative; + *z-index:2; + margin-bottom:18px; + overflow:visible; + } +.navbar-inner { + min-height:40px; + padding-right:20px; + padding-left:20px; + background-color:#2c2c2c; + background-image:-moz-linear-gradient(top, #333333, #222222); + background-image:-ms-linear-gradient(top, #333333, #222222); + background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#222222)); + background-image:-webkit-linear-gradient(top, #333333, #222222); + background-image:-o-linear-gradient(top, #333333, #222222); + background-image:linear-gradient(top, #333333, #222222); + background-repeat:repeat-x; + -webkit-border-radius:4px; + -moz-border-radius:4px; + border-radius:4px; + filter:progid:dximagetransform.microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0); + -webkit-box-shadow:0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1); + -moz-box-shadow:0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1); + box-shadow:0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1); + } +.navbar .container { + width:auto; + } +.nav-collapse.collapse { + height:auto; + } +.navbar { + color:#999999; + } +.navbar .brand:hover { + text-decoration:none; + } +.navbar .brand { + display:block; + float:left; + padding:8px 20px 12px; + margin-left:-20px; + font-size:20px; + font-weight:200; + line-height:1; + color:#999999; + } +.navbar .navbar-text { + margin-bottom:0; + line-height:40px; + } +.navbar .navbar-link { + color:#999999; + } +.navbar .navbar-link:hover { + color:#ffffff; + } +.navbar .btn, +.navbar .btn-group { + margin-top:5px; + } +.navbar .btn-group .btn { + margin:0; + } +.navbar-form { + margin-bottom:0; + *zoom:1; + } +.navbar-form:before, +.navbar-form:after { + display:table; + content:""; + } +.navbar-form:after { + clear:both; + } +.navbar-form input, +.navbar-form select, +.navbar-form .radio, +.navbar-form .checkbox { + margin-top:5px; + } +.navbar-form input, +.navbar-form select { + display:inline-block; + margin-bottom:0; + } +.navbar-form input[type="image"], +.navbar-form input[type="checkbox"], +.navbar-form input[type="radio"] { + margin-top:3px; + } +.navbar-form .input-append, +.navbar-form .input-prepend { + margin-top:6px; + white-space:nowrap; + } +.navbar-form .input-append input, +.navbar-form .input-prepend input { + margin-top:0; + } +.navbar-search { + position:relative; + float:left; + margin-top:6px; + margin-bottom:0; + } +.navbar-search .search-query { + padding:4px 9px; + font-family:"Helvetica Neue", Helvetica, Arial, sans-serif; + font-size:13px; + font-weight:normal; + line-height:1; + color:#ffffff; + background-color:#626262; + border:1px solid #151515; + -webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15); + -moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15); + box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0 rgba(255, 255, 255, 0.15); + -webkit-transition:none; + -moz-transition:none; + -ms-transition:none; + -o-transition:none; + transition:none; + } +.navbar-search .search-query:-moz-placeholder { + color:#cccccc; + } +.navbar-search .search-query:-ms-input-placeholder { + color:#cccccc; + } +.navbar-search .search-query::-webkit-input-placeholder { + color:#cccccc; + } +.navbar-search .search-query:focus, +.navbar-search .search-query.focused { + padding:5px 10px; + color:#333333; + text-shadow:0 1px 0 #ffffff; + background-color:#ffffff; + border:0; + outline:0; + -webkit-box-shadow:0 0 3px rgba(0, 0, 0, 0.15); + -moz-box-shadow:0 0 3px rgba(0, 0, 0, 0.15); + box-shadow:0 0 3px rgba(0, 0, 0, 0.15); + } +.navbar-fixed-top, +.navbar-fixed-bottom { + position:fixed; + right:0; + left:0; + z-index:1030; + margin-bottom:0; + } +.navbar-fixed-top .navbar-inner, +.navbar-fixed-bottom .navbar-inner { + padding-right:0; + padding-left:0; + -webkit-border-radius:0; + -moz-border-radius:0; + border-radius:0; + } +.navbar-fixed-top .container, +.navbar-fixed-bottom .container { + width:940px; + } +.navbar-fixed-top { + top:0; + } +.navbar-fixed-bottom { + bottom:0; + } +.navbar .nav { + position:relative; + left:0; + display:block; + float:left; + margin:0 10px 0 0; + } +.navbar .nav.pull-right { + float:right; + } +.navbar .nav > li { + display:block; + float:left; + } +.navbar .nav > li > a { + float:none; + padding:9px 10px 11px; + line-height:19px; + color:#999999; + text-decoration:none; + text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25); + } +.navbar .btn { + display:inline-block; + padding:4px 10px 4px; + margin:5px 5px 6px; + line-height:18px; + } +.navbar .btn-group { + padding:5px 5px 6px; + margin:0; + } +.navbar .nav > li > a:hover { + color:#ffffff; + text-decoration:none; + background-color:transparent; + } +.navbar .nav .active > a, +.navbar .nav .active > a:hover { + color:#ffffff; + text-decoration:none; + background-color:#222222; + } +.navbar .divider-vertical { + width:1px; + height:40px; + margin:0 9px; + overflow:hidden; + background-color:#222222; + border-right:1px solid #333333; + } +.navbar .nav.pull-right { + margin-right:0; + margin-left:10px; + } +.navbar .btn-navbar { + display:none; + float:right; + padding:7px 10px; + margin-right:5px; + margin-left:5px; + background-color:#2c2c2c; + *background-color:#222222; + background-image:-ms-linear-gradient(top, #333333, #222222); + background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#222222)); + background-image:-webkit-linear-gradient(top, #333333, #222222); + background-image:-o-linear-gradient(top, #333333, #222222); + background-image:linear-gradient(top, #333333, #222222); + background-image:-moz-linear-gradient(top, #333333, #222222); + background-repeat:repeat-x; + border-color:#222222 #222222 #000000; + border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); + filter:progid:dximagetransform.microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0); + filter:progid:dximagetransform.microsoft.gradient(enabled=false); + -webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); + -moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); + box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075); + } +.navbar .btn-navbar:hover, +.navbar .btn-navbar:active, +.navbar .btn-navbar.active, +.navbar .btn-navbar.disabled, +.navbar .btn-navbar[disabled] { + background-color:#222222; + *background-color:#151515; + } +.navbar .btn-navbar:active, +.navbar .btn-navbar.active { + background-color:#080808 \9; + } +.navbar .btn-navbar .icon-bar { + display:block; + width:18px; + height:2px; + background-color:#f5f5f5; + -webkit-border-radius:1px; + -moz-border-radius:1px; + border-radius:1px; + -webkit-box-shadow:0 1px 0 rgba(0, 0, 0, 0.25); + -moz-box-shadow:0 1px 0 rgba(0, 0, 0, 0.25); + box-shadow:0 1px 0 rgba(0, 0, 0, 0.25); + } +.btn-navbar .icon-bar + .icon-bar { + margin-top:3px; + } +.navbar .dropdown-menu:before { + position:absolute; + top:-7px; + left:9px; + display:inline-block; + border-right:7px solid transparent; + border-bottom:7px solid #ccc; + border-left:7px solid transparent; + border-bottom-color:rgba(0, 0, 0, 0.2); + content:''; + } +.navbar .dropdown-menu:after { + position:absolute; + top:-6px; + left:10px; + display:inline-block; + border-right:6px solid transparent; + border-bottom:6px solid #ffffff; + border-left:6px solid transparent; + content:''; + } +.navbar-fixed-bottom .dropdown-menu:before { + top:auto; + bottom:-7px; + border-top:7px solid #ccc; + border-bottom:0; + border-top-color:rgba(0, 0, 0, 0.2); + } +.navbar-fixed-bottom .dropdown-menu:after { + top:auto; + bottom:-6px; + border-top:6px solid #ffffff; + border-bottom:0; + } +.navbar .nav li.dropdown .dropdown-toggle .caret, +.navbar .nav li.dropdown.open .caret { + border-top-color:#ffffff; + border-bottom-color:#ffffff; + } +.navbar .nav li.dropdown.active .caret { + opacity:1; + filter:alpha(opacity=100); + } +.navbar .nav li.dropdown.open > .dropdown-toggle, +.navbar .nav li.dropdown.active > .dropdown-toggle, +.navbar .nav li.dropdown.open.active > .dropdown-toggle { + background-color:transparent; + } +.navbar .nav li.dropdown.active > .dropdown-toggle:hover { + color:#ffffff; + } +.navbar .pull-right .dropdown-menu, +.navbar .dropdown-menu.pull-right { + right:0; + left:auto; + } +.navbar .pull-right .dropdown-menu:before, +.navbar .dropdown-menu.pull-right:before { + right:12px; + left:auto; + } +.navbar .pull-right .dropdown-menu:after, +.navbar .dropdown-menu.pull-right:after { + right:13px; + left:auto; + } +.breadcrumb { + padding:7px 14px; + margin:0 0 18px; + list-style:none; + background-color:#fbfbfb; + background-image:-moz-linear-gradient(top, #ffffff, #f5f5f5); + background-image:-ms-linear-gradient(top, #ffffff, #f5f5f5); + background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f5f5f5)); + background-image:-webkit-linear-gradient(top, #ffffff, #f5f5f5); + background-image:-o-linear-gradient(top, #ffffff, #f5f5f5); + background-image:linear-gradient(top, #ffffff, #f5f5f5); + background-repeat:repeat-x; + border:1px solid #ddd; + -webkit-border-radius:3px; + -moz-border-radius:3px; + border-radius:3px; + filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ffffff', endColorstr='#f5f5f5', GradientType=0); + -webkit-box-shadow:inset 0 1px 0 #ffffff; + -moz-box-shadow:inset 0 1px 0 #ffffff; + box-shadow:inset 0 1px 0 #ffffff; + } +.breadcrumb li { + display:inline-block; + *display:inline; + text-shadow:0 1px 0 #ffffff; + *zoom:1; + } +.breadcrumb .divider { + padding:0 5px; + color:#999999; + } +.breadcrumb .active a { + color:#333333; + } +.pagination { + height:36px; + margin:18px 0; + } +.pagination ul { + display:inline-block; + *display:inline; + margin-bottom:0; + margin-left:0; + -webkit-border-radius:3px; + -moz-border-radius:3px; + border-radius:3px; + *zoom:1; + -webkit-box-shadow:0 1px 2px rgba(0, 0, 0, 0.05); + -moz-box-shadow:0 1px 2px rgba(0, 0, 0, 0.05); + box-shadow:0 1px 2px rgba(0, 0, 0, 0.05); + } +.pagination li { + display:inline; + } +.pagination a { + float:left; + padding:0 14px; + line-height:34px; + text-decoration:none; + border:1px solid #ddd; + border-left-width:0; + } +.pagination a:hover, +.pagination .active a { + background-color:#f5f5f5; + } +.pagination .active a { + color:#999999; + cursor:default; + } +.pagination .disabled span, +.pagination .disabled a, +.pagination .disabled a:hover { + color:#999999; + cursor:default; + background-color:transparent; + } +.pagination li:first-child a { + border-left-width:1px; + -webkit-border-radius:3px 0 0 3px; + -moz-border-radius:3px 0 0 3px; + border-radius:3px 0 0 3px; + } +.pagination li:last-child a { + -webkit-border-radius:0 3px 3px 0; + -moz-border-radius:0 3px 3px 0; + border-radius:0 3px 3px 0; + } +.pagination-centered { + text-align:center; + } +.pagination-right { + text-align:right; + } +.pager { + margin-bottom:18px; + margin-left:0; + text-align:center; + list-style:none; + *zoom:1; + } +.pager:before, +.pager:after { + display:table; + content:""; + } +.pager:after { + clear:both; + } +.pager li { + display:inline; + } +.pager a { + display:inline-block; + padding:5px 14px; + background-color:#fff; + border:1px solid #ddd; + -webkit-border-radius:15px; + -moz-border-radius:15px; + border-radius:15px; + } +.pager a:hover { + text-decoration:none; + background-color:#f5f5f5; + } +.pager .next a { + float:right; + } +.pager .previous a { + float:left; + } +.pager .disabled a, +.pager .disabled a:hover { + color:#999999; + cursor:default; + background-color:#fff; + } +.modal-open .dropdown-menu { + z-index:2050; + } +.modal-open .dropdown.open { + *z-index:2050; + } +.modal-open .popover { + z-index:2060; + } +.modal-open .tooltip { + z-index:2070; + } +.modal-backdrop { + position:fixed; + top:0; + right:0; + bottom:0; + left:0; + z-index:1040; + background-color:#000000; + } +.modal-backdrop.fade { + opacity:0; + } +.modal-backdrop, +.modal-backdrop.fade.in { + opacity:0.8; + filter:alpha(opacity=80); + } +.modal { + position:fixed; + top:50%; + left:50%; + z-index:1050; + width:560px; + margin:-250px 0 0 -280px; + overflow:auto; + background-color:#ffffff; + border:1px solid #999; + border:1px solid rgba(0, 0, 0, 0.3); + *border:1px solid #999; + -webkit-border-radius:6px; + -moz-border-radius:6px; + border-radius:6px; + -webkit-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3); + -moz-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3); + box-shadow:0 3px 7px rgba(0, 0, 0, 0.3); + -webkit-background-clip:padding-box; + -moz-background-clip:padding-box; + background-clip:padding-box; + } +.modal.fade { + top:-25%; + -webkit-transition:opacity 0.3s linear, top 0.3s ease-out; + -moz-transition:opacity 0.3s linear, top 0.3s ease-out; + -ms-transition:opacity 0.3s linear, top 0.3s ease-out; + -o-transition:opacity 0.3s linear, top 0.3s ease-out; + transition:opacity 0.3s linear, top 0.3s ease-out; + } +.modal.fade.in { + top:50%; + } +.modal-header { + padding:9px 15px; + border-bottom:1px solid #eee; + } +.modal-header .close { + margin-top:2px; + } +.modal-body { + max-height:400px; + padding:15px; + overflow-y:auto; + } +.modal-form { + margin-bottom:0; + } +.modal-footer { + padding:14px 15px 15px; + margin-bottom:0; + text-align:right; + background-color:#f5f5f5; + border-top:1px solid #ddd; + -webkit-border-radius:0 0 6px 6px; + -moz-border-radius:0 0 6px 6px; + border-radius:0 0 6px 6px; + *zoom:1; + -webkit-box-shadow:inset 0 1px 0 #ffffff; + -moz-box-shadow:inset 0 1px 0 #ffffff; + box-shadow:inset 0 1px 0 #ffffff; + } +.modal-footer:before, +.modal-footer:after { + display:table; + content:""; + } +.modal-footer:after { + clear:both; + } +.modal-footer .btn + .btn { + margin-bottom:0; + margin-left:5px; + } +.modal-footer .btn-group .btn + .btn { + margin-left:-1px; + } +.tooltip { + position:absolute; + z-index:1020; + display:block; + padding:5px; + font-size:11px; + opacity:0; + filter:alpha(opacity=0); + visibility:visible; + } +.tooltip.in { + opacity:0.8; + filter:alpha(opacity=80); + } +.tooltip.top { + margin-top:-2px; + } +.tooltip.right { + margin-left:2px; + } +.tooltip.bottom { + margin-top:2px; + } +.tooltip.left { + margin-left:-2px; + } +.tooltip.top .tooltip-arrow { + bottom:0; + left:50%; + margin-left:-5px; + border-top:5px solid #000000; + border-right:5px solid transparent; + border-left:5px solid transparent; + } +.tooltip.left .tooltip-arrow { + top:50%; + right:0; + margin-top:-5px; + border-top:5px solid transparent; + border-bottom:5px solid transparent; + border-left:5px solid #000000; + } +.tooltip.bottom .tooltip-arrow { + top:0; + left:50%; + margin-left:-5px; + border-right:5px solid transparent; + border-bottom:5px solid #000000; + border-left:5px solid transparent; + } +.tooltip.right .tooltip-arrow { + top:50%; + left:0; + margin-top:-5px; + border-top:5px solid transparent; + border-right:5px solid #000000; + border-bottom:5px solid transparent; + } +.tooltip-inner { + max-width:200px; + padding:3px 8px; + color:#ffffff; + text-align:center; + text-decoration:none; + background-color:#000000; + -webkit-border-radius:4px; + -moz-border-radius:4px; + border-radius:4px; + } +.tooltip-arrow { + position:absolute; + width:0; + height:0; + } +.popover { + position:absolute; + top:0; + left:0; + z-index:1010; + display:none; + padding:5px; + } +.popover.top { + margin-top:-5px; + } +.popover.right { + margin-left:5px; + } +.popover.bottom { + margin-top:5px; + } +.popover.left { + margin-left:-5px; + } +.popover.top .arrow { + bottom:0; + left:50%; + margin-left:-5px; + border-top:5px solid #000000; + border-right:5px solid transparent; + border-left:5px solid transparent; + } +.popover.right .arrow { + top:50%; + left:0; + margin-top:-5px; + border-top:5px solid transparent; + border-right:5px solid #000000; + border-bottom:5px solid transparent; + } +.popover.bottom .arrow { + top:0; + left:50%; + margin-left:-5px; + border-right:5px solid transparent; + border-bottom:5px solid #000000; + border-left:5px solid transparent; + } +.popover.left .arrow { + top:50%; + right:0; + margin-top:-5px; + border-top:5px solid transparent; + border-bottom:5px solid transparent; + border-left:5px solid #000000; + } +.popover .arrow { + position:absolute; + width:0; + height:0; + } +.popover-inner { + width:280px; + padding:3px; + overflow:hidden; + background:#000000; + background:rgba(0, 0, 0, 0.8); + -webkit-border-radius:6px; + -moz-border-radius:6px; + border-radius:6px; + -webkit-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3); + -moz-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3); + box-shadow:0 3px 7px rgba(0, 0, 0, 0.3); + } +.popover-title { + padding:9px 15px; + line-height:1; + background-color:#f5f5f5; + border-bottom:1px solid #eee; + -webkit-border-radius:3px 3px 0 0; + -moz-border-radius:3px 3px 0 0; + border-radius:3px 3px 0 0; + } +.popover-content { + padding:14px; + background-color:#ffffff; + -webkit-border-radius:0 0 3px 3px; + -moz-border-radius:0 0 3px 3px; + border-radius:0 0 3px 3px; + -webkit-background-clip:padding-box; + -moz-background-clip:padding-box; + background-clip:padding-box; + } +.popover-content p, +.popover-content ul, +.popover-content ol { + margin-bottom:0; + } +.thumbnails { + margin-left:-20px; + list-style:none; + *zoom:1; + } +.thumbnails:before, +.thumbnails:after { + display:table; + content:""; + } +.thumbnails:after { + clear:both; + } +.row-fluid .thumbnails { + margin-left:0; + } +.thumbnails > li { + float:left; + margin-bottom:18px; + margin-left:20px; + } +.thumbnail { + display:block; + padding:4px; + line-height:1; + border:1px solid #ddd; + -webkit-border-radius:4px; + -moz-border-radius:4px; + border-radius:4px; + -webkit-box-shadow:0 1px 1px rgba(0, 0, 0, 0.075); + -moz-box-shadow:0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow:0 1px 1px rgba(0, 0, 0, 0.075); + } +a.thumbnail:hover { + border-color:#0088cc; + -webkit-box-shadow:0 1px 4px rgba(0, 105, 214, 0.25); + -moz-box-shadow:0 1px 4px rgba(0, 105, 214, 0.25); + box-shadow:0 1px 4px rgba(0, 105, 214, 0.25); + } +.thumbnail > img { + display:block; + max-width:100%; + margin-right:auto; + margin-left:auto; + } +.thumbnail .caption { + padding:9px; + } +.label, +.badge { + font-size:10.998px; + font-weight:bold; + line-height:14px; + color:#ffffff; + text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25); + white-space:nowrap; + vertical-align:baseline; + background-color:#999999; + } +.label { + padding:1px 4px 2px; + -webkit-border-radius:3px; + -moz-border-radius:3px; + border-radius:3px; + } +.badge { + padding:1px 9px 2px; + -webkit-border-radius:9px; + -moz-border-radius:9px; + border-radius:9px; + } +a.label:hover, +a.badge:hover { + color:#ffffff; + text-decoration:none; + cursor:pointer; + } +.label-important, +.badge-important { + background-color:#b94a48; + } +.label-important[href], +.badge-important[href] { + background-color:#953b39; + } +.label-warning, +.badge-warning { + background-color:#f89406; + } +.label-warning[href], +.badge-warning[href] { + background-color:#c67605; + } +.label-success, +.badge-success { + background-color:#468847; + } +.label-success[href], +.badge-success[href] { + background-color:#356635; + } +.label-info, +.badge-info { + background-color:#3a87ad; + } +.label-info[href], +.badge-info[href] { + background-color:#2d6987; + } +.label-inverse, +.badge-inverse { + background-color:#333333; + } +.label-inverse[href], +.badge-inverse[href] { + background-color:#1a1a1a; + } +@-webkit-keyframes progress-bar-stripes { + from { + background-position:40px 0; + } + to { + background-position:0 0; + } + } +@-moz-keyframes progress-bar-stripes { + from { + background-position:40px 0; + } + to { + background-position:0 0; + } + } +@-ms-keyframes progress-bar-stripes { + from { + background-position:40px 0; + } + to { + background-position:0 0; + } + } +@-o-keyframes progress-bar-stripes { + from { + background-position:0 0; + } + to { + background-position:40px 0; + } + } +@keyframes progress-bar-stripes { + from { + background-position:40px 0; + } + to { + background-position:0 0; + } + } +.progress { + height:18px; + margin-bottom:18px; + overflow:hidden; + background-color:#f7f7f7; + background-image:-moz-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image:-ms-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9)); + background-image:-webkit-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image:-o-linear-gradient(top, #f5f5f5, #f9f9f9); + background-image:linear-gradient(top, #f5f5f5, #f9f9f9); + background-repeat:repeat-x; + -webkit-border-radius:4px; + -moz-border-radius:4px; + border-radius:4px; + filter:progid:dximagetransform.microsoft.gradient(startColorstr='#f5f5f5', endColorstr='#f9f9f9', GradientType=0); + -webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1); + -moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1); + box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1); + } +.progress .bar { + width:0; + height:18px; + font-size:12px; + color:#ffffff; + text-align:center; + text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25); + background-color:#0e90d2; + background-image:-moz-linear-gradient(top, #149bdf, #0480be); + background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be)); + background-image:-webkit-linear-gradient(top, #149bdf, #0480be); + background-image:-o-linear-gradient(top, #149bdf, #0480be); + background-image:linear-gradient(top, #149bdf, #0480be); + background-image:-ms-linear-gradient(top, #149bdf, #0480be); + background-repeat:repeat-x; + filter:progid:dximagetransform.microsoft.gradient(startColorstr='#149bdf', endColorstr='#0480be', GradientType=0); + -webkit-box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -moz-box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15); + box-shadow:inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -webkit-box-sizing:border-box; + -moz-box-sizing:border-box; + -ms-box-sizing:border-box; + box-sizing:border-box; + -webkit-transition:width 0.6s ease; + -moz-transition:width 0.6s ease; + -ms-transition:width 0.6s ease; + -o-transition:width 0.6s ease; + transition:width 0.6s ease; + } +.progress-striped .bar { + background-color:#149bdf; + background-image:-o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image:-webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image:-moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image:-ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image:linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + -webkit-background-size:40px 40px; + -moz-background-size:40px 40px; + -o-background-size:40px 40px; + background-size:40px 40px; + } +.progress.active .bar { + -webkit-animation:progress-bar-stripes 2s linear infinite; + -moz-animation:progress-bar-stripes 2s linear infinite; + -ms-animation:progress-bar-stripes 2s linear infinite; + -o-animation:progress-bar-stripes 2s linear infinite; + animation:progress-bar-stripes 2s linear infinite; + } +.progress-danger .bar { + background-color:#dd514c; + background-image:-moz-linear-gradient(top, #ee5f5b, #c43c35); + background-image:-ms-linear-gradient(top, #ee5f5b, #c43c35); + background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35)); + background-image:-webkit-linear-gradient(top, #ee5f5b, #c43c35); + background-image:-o-linear-gradient(top, #ee5f5b, #c43c35); + background-image:linear-gradient(top, #ee5f5b, #c43c35); + background-repeat:repeat-x; + filter:progid:dximagetransform.microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0); + } +.progress-danger.progress-striped .bar { + background-color:#ee5f5b; + background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image:-webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image:-moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image:-ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image:-o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image:linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + } +.progress-success .bar { + background-color:#5eb95e; + background-image:-moz-linear-gradient(top, #62c462, #57a957); + background-image:-ms-linear-gradient(top, #62c462, #57a957); + background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957)); + background-image:-webkit-linear-gradient(top, #62c462, #57a957); + background-image:-o-linear-gradient(top, #62c462, #57a957); + background-image:linear-gradient(top, #62c462, #57a957); + background-repeat:repeat-x; + filter:progid:dximagetransform.microsoft.gradient(startColorstr='#62c462', endColorstr='#57a957', GradientType=0); + } +.progress-success.progress-striped .bar { + background-color:#62c462; + background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image:-webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image:-moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image:-ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image:-o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image:linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + } +.progress-info .bar { + background-color:#4bb1cf; + background-image:-moz-linear-gradient(top, #5bc0de, #339bb9); + background-image:-ms-linear-gradient(top, #5bc0de, #339bb9); + background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9)); + background-image:-webkit-linear-gradient(top, #5bc0de, #339bb9); + background-image:-o-linear-gradient(top, #5bc0de, #339bb9); + background-image:linear-gradient(top, #5bc0de, #339bb9); + background-repeat:repeat-x; + filter:progid:dximagetransform.microsoft.gradient(startColorstr='#5bc0de', endColorstr='#339bb9', GradientType=0); + } +.progress-info.progress-striped .bar { + background-color:#5bc0de; + background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image:-webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image:-moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image:-ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image:-o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image:linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + } +.progress-warning .bar { + background-color:#faa732; + background-image:-moz-linear-gradient(top, #fbb450, #f89406); + background-image:-ms-linear-gradient(top, #fbb450, #f89406); + background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406)); + background-image:-webkit-linear-gradient(top, #fbb450, #f89406); + background-image:-o-linear-gradient(top, #fbb450, #f89406); + background-image:linear-gradient(top, #fbb450, #f89406); + background-repeat:repeat-x; + filter:progid:dximagetransform.microsoft.gradient(startColorstr='#fbb450', endColorstr='#f89406', GradientType=0); + } +.progress-warning.progress-striped .bar { + background-color:#fbb450; + background-image:-webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); + background-image:-webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image:-moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image:-ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image:-o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image:linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + } +.accordion { + margin-bottom:18px; + } +.accordion-group { + margin-bottom:2px; + border:1px solid #e5e5e5; + -webkit-border-radius:4px; + -moz-border-radius:4px; + border-radius:4px; + } +.accordion-heading { + border-bottom:0; + } +.accordion-heading .accordion-toggle { + display:block; + padding:8px 15px; + } +.accordion-toggle { + cursor:pointer; + } +.accordion-inner { + padding:9px 15px; + border-top:1px solid #e5e5e5; + } +.carousel { + position:relative; + margin-bottom:18px; + line-height:1; + } +.carousel-inner { + position:relative; + width:100%; + overflow:hidden; + } +.carousel .item { + position:relative; + display:none; + -webkit-transition:0.6s ease-in-out left; + -moz-transition:0.6s ease-in-out left; + -ms-transition:0.6s ease-in-out left; + -o-transition:0.6s ease-in-out left; + transition:0.6s ease-in-out left; + } +.carousel .item > img { + display:block; + line-height:1; + } +.carousel .active, +.carousel .next, +.carousel .prev { + display:block; + } +.carousel .active { + left:0; + } +.carousel .next, +.carousel .prev { + position:absolute; + top:0; + width:100%; + } +.carousel .next { + left:100%; + } +.carousel .prev { + left:-100%; + } +.carousel .next.left, +.carousel .prev.right { + left:0; + } +.carousel .active.left { + left:-100%; + } +.carousel .active.right { + left:100%; + } +.carousel-control { + position:absolute; + top:40%; + left:15px; + width:40px; + height:40px; + margin-top:-20px; + font-size:60px; + font-weight:100; + line-height:30px; + color:#ffffff; + text-align:center; + background:#222222; + border:3px solid #ffffff; + -webkit-border-radius:23px; + -moz-border-radius:23px; + border-radius:23px; + opacity:0.5; + filter:alpha(opacity=50); + } +.carousel-control.right { + right:15px; + left:auto; + } +.carousel-control:hover { + color:#ffffff; + text-decoration:none; + opacity:0.9; + filter:alpha(opacity=90); + } +.carousel-caption { + position:absolute; + right:0; + bottom:0; + left:0; + padding:10px 15px 5px; + background:#333333; + background:rgba(0, 0, 0, 0.75); + } +.carousel-caption h4, +.carousel-caption p { + color:#ffffff; + } +.hero-unit { + padding:60px; + margin-bottom:30px; + background-color:#eeeeee; + -webkit-border-radius:6px; + -moz-border-radius:6px; + border-radius:6px; + } +.hero-unit h1 { + margin-bottom:0; + font-size:60px; + line-height:1; + letter-spacing:-1px; + color:inherit; + } +.hero-unit p { + font-size:18px; + font-weight:200; + line-height:27px; + color:inherit; + } +.pull-right { + float:right; + } +.pull-left { + float:left; + } +.hide { + display:none; + } +.show { + display:block; + } +.invisible { + visibility:hidden; + } + + +/* mine */ + +.row-padded { + position:relative; + padding-top:40px; + padding-left:280px; + } + .aside { + position:absolute; + z-index:1; + top:40px; + left:0; + padding-top:7px; + } + .toc-backref { + color:#333; + } diff --git a/doc/colors.css b/doc/colors.css new file mode 100644 index 0000000..d0dfea9 --- /dev/null +++ b/doc/colors.css @@ -0,0 +1,16 @@ +.tmpl { + color: #008000; +} + +.func { + color: #008000; +} + +.arg { + color: blue; + font-style: italic; +} + +.const { + color: #8E2323; +} diff --git a/doc/template_language.rst b/doc/template_language.rst new file mode 100644 index 0000000..83a13a7 --- /dev/null +++ b/doc/template_language.rst @@ -0,0 +1,729 @@ +======================================== +The CT++ template language (2.8 version) +======================================== + +.. contents:: + :depth: 2 + +.. role:: tmpl +.. role:: const +.. role:: arg +.. role:: func + +Templates +========= + + A template is a text file, that is marked-up using the CT++ template + language. It used to separate content from presentation in web design. + + A template can contain CT++ tags. All CT++ tags have HTML-like syntax and + they start with :tmpl:`TMPL_`. Names of CT++ tags are case insensetive (for + example, :tmpl:`TMPL_var`, :tmpl:`tmpl_var`, or :tmpl:`TmPl_VaR`). + + CT++ supports the next tags: :tmpl:`TMPL_var`, :tmpl:`TMPL_if`, + :tmpl:`TMPL_elsif`, :tmpl:`TMPL_else`, :tmpl:`TMPL_unless`, + :tmpl:`TMPL_foreach`, :tmpl:`TMPL_include`, :tmpl:`TMPL_comment`, + :tmpl:`TMPL_block`, :tmpl:`TMPL_call`, and :tmpl:`TMPL_verbose`. + + Example of a template: + + .. parsed-literal:: + + <!DOCTYPE html> + :tmpl:`<TMPL_include 'includes/html_lang.tmpl'>` + :tmpl:`<TMPL_include 'includes/html_head.tmpl'>` + <link rel="stylesheet" href="/static/css/m.posts.css"> + </head> + <body class="posts"> + <div id="body-wrapper" class="body-wrapper"> + <div id="content-wrapper" class="content-wrapper"> + :tmpl:`<TMPL_include 'includes/header.tmpl'>` + <section role="main" class="content-column"> + <h1>\ :tmpl:`<TMPL_var _("Welcome to")>` :tmpl:`<TMPL_var project_name>`, :tmpl:`<TMPL_verbose>` + :tmpl:`<TMPL_if logged>` + :tmpl:`<TMPL_var HTMLESCAPE(DEFAULT(user_info.name, user_info.username))>` + :tmpl:`<TMPL_else>` + :tmpl:`<TMPL_var _("Anonymous")>` + :tmpl:`</TMPL_if>`\ </h1> + :tmpl:`</TMPL_verbose>` + + :tmpl:`<TMPL_verbose>` + :tmpl:`<TMPL_foreach users as user>` + <h3><a class="user-page-link" href="/user/:tmpl:`<TMPL_var URLESCAPE(user.username)>`" title=" + :tmpl:`<TMPL_var HTMLESCAPE(DEFAULT(user.name, user.username))>">` + :tmpl:`<TMPL_var HTMLESCAPE(DEFAULT(user.name, user.username))>` + </a></h3> + :tmpl:`</TMPL_foreach> + </TMPL_verbose>` + + </section> + :tmpl:`<TMPL_include 'includes/noscript_alert.tmpl'>` + </div> + </div> + :tmpl:`<TMPL_include 'includes/footer.tmpl'>` + </body> + </html> + +Comments +-------- + + Use the :tmpl:`TMPL_comment` tag to comment-out part of a template. + + For example: + + .. parsed-literal:: + + :tmpl:`<TMPL_comment>`\ <h3>Hello, :tmpl:`<TMPL_var username>`\ !</h3>\ :tmpl:`</TMPL_comment>` + +Formatting +---------- + + The :tmpl:`TMPL_verbose` tag removes white-space characters (space, + form-feed, newline, carriage return, horizontal tab, and vertical tab) + between CT++ tags. + + For example: + + .. parsed-literal:: + + :tmpl:`<TMPL_verbose>` + foo: :tmpl:`<TMPL_var foo>` some text + bar: :tmpl:`<TMPL_var bar>` baz: :tmpl:`<TMPL_var baz>` :tmpl:`<TMPL_var spam>` + :tmpl:`</TMPL_verbose>` + + For instance, variables foo, bar, baz, and spam are respectively + :const:`"{FOO}"`, :const:`"{BAR}"`, :const:`"{BAZ}"`, and + :const:`"{SPAM}"`. The template would be rendered as:: + + foo:{FOO}some text + bar:{BAR}baz:{BAZ}{SPAM} + + Also, a dash could be used instead the :tmpl:`TMPL_verbose` tag: + + .. parsed-literal:: + + foo: :tmpl:`<TMPL_var foo->` some text + bar: :tmpl:`<-TMPL_var bar->` baz: :tmpl:`<-TMPL_var baz->` :tmpl:`<-TMPL_var spam>` + + There will same output. + +Including +--------- + + The :tmpl:`TMPL_include` tag loads another template within the template. + The tag has the one attribute only. The attribute can't be a variable. + It's a filename in quotes:: + + <TMPL_include "filename.tmpl"> + + It is impossible to break conditions and loops between templates. + +Variables +========= + + The CT++ template engine evaluates variable and replaces it with the + result. The :tmpl:`TMPL_var` tag is used for evaluating variables. + + The types of variables are undefined variable, string, integer, + floating-point number, mapping, and array. For undefined variables result + is an empty string. + + The :tmpl:`TMPL_var` evaluates expressions: variables, operators, and + functions. For example:: + + <TMPL_var foo> + <TMPL_var (foo + bar + 1)> + <TMPL_var HTMLESCAPE(baz)> + +Arrays +------ + + An array is a data type consisting of a collection of elements, each + identified by one array index. The first element of the array is indexed + by subscript of 0. + + Examples:: + + <TMPL_var foo[0]> <- foo must be an array! + <TMPL_var foo[bar]> <- bar must be an integer! + +Mappings +-------- + + A mapping is a data type composed of a collection of (key,value) + pairs, such that each possible key appears at most once in the collection. + + Examples:: + + <TMPL_var foo.key> = <TMPL_var foo["key"]> <- foo must be a mapping + <TMPL_var foo.bar.baz> <- the mapping foo has the key "bar" with mapping value, that has the key "baz" + + Use a dot to access attributes of a variable. + +Control flow +============ + +Choice +------ + + The :tmpl:`TMPL_if` tag and the :tmpl:`TMPL_unless` tag evaluate a + condition. A condition can be variable, function calls, arithmetic and + logic expressions. Arithmetic and logic expressions must be inside of + parentheses. + + Examples: + + .. parsed-literal:: + + :tmpl:`<TMPL_if foo>` + Some text with :tmpl:`<TMPL_var foo>` + :tmpl:`</TMPL_if>` + + :tmpl:`<TMPL_unless DEFINED(bar)>` + Some text + :tmpl:`<TMPL_else>` + Some text with :tmpl:`<TMPL_var bar>` + :tmpl:`</TMPL_unless>` + + :tmpl:`<TMPL_if (x < 1)>` + eeny + :tmpl:`<TMPL_elsif (x < 2)>` + meeny + :tmpl:`<TMPL_elsif (x < 3)>` + miny + :tmpl:`<TMPL_else>` + moe + :tmpl:`</TMPL_if>` + + The following table summarizes the operator precedences, from highest + precedence to lowest precedence: + + =============== ===== ==================================== + Operators Assoc Description + =============== ===== ==================================== + (expression) parentheses used for grouping + --------------- ----- ------------------------------------ + () LR parentheses used for a function call + --------------- ----- ------------------------------------ + . LR member selection + --------------- ----- ------------------------------------ + [] LR array/mapping element access + --------------- ----- ------------------------------------ + !, +, - RL logical not, unary plus, unary minus + --------------- ----- ------------------------------------ + \*, /, mod, div LR multiplication and division + --------------- ----- ------------------------------------ + +, - LR addition and subtraction + --------------- ----- ------------------------------------ + <, <=, >, >= LR inequality relational + --------------- ----- ------------------------------------ + ==, != LR equality relational + --------------- ----- ------------------------------------ + && LR logical and + --------------- ----- ------------------------------------ + || LR logical or + =============== ===== ==================================== + + CT++ defines keywords to act as aliases for a number of operators: lt (<), + le (<=), gt (>), ge (>=), eq (==), ne (!=), and (&&), or (||). + +Loops +----- + + CT++ supports the :tmpl:`TMPL_foreach` only. It use an explicit iterator, + in which the loop variable takes on each of the values in an array or a + mapping. + + An iterator has special attributes: + + ========= ============================================ + Attribute Description + ========= ============================================ + __index__ index of array's element + --------- -------------------------------------------- + __key__ key in mapping + --------- -------------------------------------------- + __first__ "true" for first iteration + --------- -------------------------------------------- + __last__ "true" for last iteration + --------- -------------------------------------------- + __inner__ "true" if not first and not last iteration + --------- -------------------------------------------- + __even__ "true" for even iteration + --------- -------------------------------------------- + __odd__ "true" for odd iteration + --------- -------------------------------------------- + __value__ value of element + ========= ============================================ + + Example of usage: + + .. parsed-literal:: + + :tmpl:`<TMPL_foreach array as a>` + value: :tmpl:`<TMPL_var a>` or :tmpl:`<TMPL_var a.__value__>` + index: :tmpl:`<TMPL_var a.__index__>` + :tmpl:`<TMPL_if a.__first__>`\ #first#\ :tmpl:`</TMPL_if>` + :tmpl:`<TMPL_if a.__even__>`\ #even#\ :tmpl:`<TMPL_else>`\ #odd#\ :tmpl:`</TMPL_if>` + :tmpl:`</TMPL_foreach>` + + :tmpl:`<TMPL_foreach map as m>` + value: :tmpl:`<TMPL_var m>` or :tmpl:`<TMPL_var m.__value__>` + key: :tmpl:`<TMPL_var m.__key__>` + :tmpl:`<TMPL_if m.__last__>`\ #last#\ :tmpl:`</TMPL_if>` + :tmpl:`</TMPL_foreach>` + + The :tmpl:`TMPL_break` tag breaks the iteration of loop:: + + <TMPL_verbose> + <TMPL_foreach LIST("a", "b", "c") as char> + <TMPL_var char> + <TMPL_if (char == "b")><TMPL_break></TMPL_if> + </TMPL_foreach> + </TMPL_verbose> + + Output of the template is "ab". + +Functions +========= + + CT++ has built-in functions, that is described in `Library reference`_. + CT++ tags, that support it: :tmpl:`TMPL_var`, :tmpl:`TMPL_if`, + :tmpl:`TMPL_unless`, :tmpl:`TMPL_elsif`, and :tmpl:`TMPL_foreach`. For + example: + + .. parsed-literal:: + + <TMPL_var :func:`SPRINTF`\ (\ :func:`GETTEXT`\ ("%d minutes ago", min), min)> + + <TMPL_var :func:`DEFAULT`\ (\ :func:`HTMLESCAPE`\ (url), "http://ctpp.havoc.ru")> + + <TMPL_if (\ :func:`GET_TYPE`\ (var) == "STRING")> + <TMPL_var :func:`GETTEXT`\ ("var is string")> + </TMPL_if> + + <TMPL_foreach :func:`LIST`\ ("eeny", "meeny", "miny", "moe") as item> + <TMPL_var item> + </TMPL_foreach> + +Blocks +====== + + A block is reusable piece of a template called by name. + + Example of usage: + + .. parsed-literal:: + + :tmpl:`<TMPL_block "simple-block">` + Some text + :tmpl:`</TMPL_block>` + + The :tmpl:`TMPL_call` tag is used for calling a block: + + .. parsed-literal:: + + :tmpl:`<TMPL_call "simple-block">` + :tmpl:`<TMPL_call some_var>` + + A block can have arguments: + + .. parsed-literal:: + + :tmpl:`<TMPL_block 'some-block' args(a, b, c)>` + :tmpl:`<TMPL_var a>`\ , :tmpl:`<TMPL_var b>`\ , and :tmpl:`<TMPL_var c>` + :tmpl:`</TMPL_block>` + + :tmpl:`<TMPL_call 'some-block' args(foo, bar, baz)>` + + Definition blocks inside another blocks is forbidden. + +.. _`Library reference`: + +Library reference +================= + +_ *(msgid[, msgid_plural, n][, domain])* +---------------------------------------- + +See `GETTEXT`_. + +AVG *(flag, a[, b, ...])* +------------------------- + + Return average of :arg:`a[, b, ...]`, according to chosen algorithm by + :arg:`flag`. The values of :arg:`flag` are :const:`'a'` for arithmetic mean, + :const:`'g'` for geometric mean, :const:`'h'` for harmonic mean, and :const:`'q'` + for quadratic mean. + + Examples:: + + AVG('a', 1, 2, 3) -> 2 + AVG('g', 1, 2, 3) -> 1.81712059283 + AVG('h', 1, 2, 3) -> 1.63636363636 + AVG('q', 1, 2, 3) -> 2.16024689947 + + +BASE64_DECODE *(x)* +------------------- + + Decode the Base64 encoded string :arg:`x`. + + +BASE64_ENCODE *(x)* +------------------- + + Encode the string :arg:`x` use Base64. + +CAST *(flag, x)* +---------------- + + Convert the type of :arg:`x` to a type specified by :arg:`flag`. The + values of :arg:`flag` are :const:`"i[nteger]"`, :const:`"o[ctal]"`, + :const:`"h[exadecimal]"`, :const:`"f[loat]"`, and :const:`"s[tring]"`. + + For :arg:`x` starts with :const:`0x` or :const:`0X`, :const:`"integer"` + :arg:`flag` behaves as :const:`"hexadecimal"` :arg:`flag`. For :arg:`x` + starts with :const:`0`, :const:`"integer"` :arg:`flag` behaves as + :const:`"octal"` :arg:`flag`. + + Examples:: + + CAST("int", 1.345) -> 1 + CAST("dec", "010") -> 10 + CAST("hex", "010") -> 16 + +CONCAT *(a[, b, ...])* +---------------------- + + Return a string which is the concatenation of the values :arg:`a[, b, + ...]`. + + Example:: + + CONCAT('a', 1, 2, 3) -> a123 + +CONTEXT *()* +------------ + + Return a mapping of the rendered context. + +DATE_FORMAT *(x, format)* +------------------------- + + Formats :arg:`x` according to the format specification :arg:`format` (see + 'man 3 strftime'). The argument :arg:`x` is the number of seconds elapsed + since the Epoch, 1970-01-01 00:00:00 +0000 (UTC). + + Example:: + + DATE_FORMAT(1200490323, "%Y-%m-%d %H:%M:%S") -> 2008-01-16 16:32:03 + + +DEFAULT *(x, y)* +---------------------- + + If :arg:`x` is nonzero return :arg:`x` else return :arg:`y`. + + Examples:: + + DEFAULT("", "default_string") -> default_string + DEFAULT(nonexistent, "default") -> default + DEFAULT(0, 1) -> 1 + +DEFINED *(a[, b, ...])* +----------------------- + + If all of :arg:`a[, b, ...]` exist return :const:`1` else return + :const:`0`. + +ERROR *()* +---------- + + Create runtime error. + +FORM_PARAM *(x, y)* +------------------- + + With name :arg:`x` and value :arg:`y`, output a hidden field of HTML form. + + It is equivalent to the next:: + + <TMPL_verbose> + <TMPL_if y> + <input type="hidden" name="x" value="<TMPL_var URLESCAPE(y)>"> + </TMPL_if> + </TMPL_verbose> + +.. _GETTEXT: + +GETTEXT *(msgid[, msgid_plural, n][, domain])* +---------------------------------------------- + + Translate a text string :arg:`msgid` into the user's native language, by + looking up the translation in a message catalog. + + If a translation was found, the message is converted to the locale's + codeset and returned. Otherwise :arg:`msgid` or :arg:`msgid_plural` is + returned. + + The appropriate plural form depends on the number :arg:`n` and the language + of the message catalog where the translation was found. + + The argument :arg:`domain` is a set of translatable messages. + + The function :func:`_()` is alias of :func:`GETTEXT()`. + + Examples:: + + GETTEXT("Hello, World!") -> Привет, Мир! + _("Hello, World!") -> Привет, Мир! + _("Hello, World!", "mydomain") -> Привет, Другой Мир! + SPRINTF(_("%d hour", "%d hours", 1), 1) -> 1 час + SPRINTF(_("%d minute", "%d minutes", 2, "mydomain"), 2) -> 2 минуты + +GET_TYPE *(x)* +-------------- + + Return a printable type of :arg:`x`. The types are :const:`"\*UNDEF\*"` for + undefined variables, :const:`"STRING"` for strings, :const:`"INTEGER"` for + integers, :const:`"REAL"` for floating-point numbers, :const:`"HASH"` for + mappings, and :const:`"ARRAY"` for arrays. + +HASH_KEYS *(x)* +------------------ + + Return an array of :arg:`x`'s keys. The argument :arg:`x` should be + mapping. + +HMAC_MD5 *(x, key)* +------------------------- + + Compute a hash value for the specified :arg:`x` using the supplied :arg:`key`. + +HOSTNAME *()* +------------- + + Return the hostname of the current processor. + +HREF_PARAM *(x, y)* +-------------------------- + + With name :arg:`x` and value :arg:`y`, output parameters of HTML links. + + It is equivalent to the next:: + + <TMPL_if a>x=<TMPL_var URLESCAPE(y)></TMPL_if> + +HTMLESCAPE *(a[, b, ...])* +-------------------------- + + Escape :const:`&`, :const:`<`, :const:`'`, :const:`"`, and :const:`>` in + the strings of data :arg:`a[, b, ...]`. + + :func:`HTMLESCAPE()` returns result of concatenation of the strings + :arg:`a[, b, ...]`. + +ICONV *(x, src, dst[, flags])* +------------------------------ + + Convert the string :arg:`x` from the coded character set :arg:`src` to + :arg:`dst`. + + The argument :arg:`flags` are :const:`'i'` or :const:`'I'` for discarding + illegal sequence, and :const:`'t'` or :const:`'T'` for enabling transliteration + in the conversion. The argument :arg:`flags` works in FreeBSD only. + + See 'iconv -l` for list which contains all the coded character sets known. + +IN_ARRAY *(x, array)* +--------------------- + + Return :const:`1` if :arg:`x` was found in :arg:`array`, else return + :const:`0`. + +IN_SET *(x, a[, b, ...])* +------------------------- + + Return :const:`1` if :arg:`x` was found in :arg:`a[, b, ...]`, else return + :const:`0`. + +JSONESCAPE *(a[, b, ...])* +-------------------------- + + Escape :const:`"`, :const:`\\`, :const:`/`, :const:`\\b`, :const:`\\f`, + :const:`\\n`, :const:`\\r`, :const:`\\t`, :const:`'`, :const:`\\v`, and + :const:`\\0` in the strings of data :arg:`a[, b, ...]`. If character's + value is smaller than :const:`\\u0032`, it is encoded with :const:`\\uXXXX` + format for hex digits :const:`XXXX`. + + :func:`JSONESCAPE()` returns result of concatenation of the strings + :arg:`a[, b, ...]`. + +JSON *(x)* +---------- + + Serialize :arg:`x` to the JavaScript Object Notation (JSON). + +LIST_ELEMENT *(a[, b, ...], x)* +------------------------------- + + Return an element from :arg:`a[, b, ...]` by the index :arg:`x`. + +LIST *([a, b, ...])* +-------------------- + + Return an array of :arg:`[a, b, ...]`. It can be empty. + +LOG *(x[, base])* +--------------------- + + With one argument, return the natural logarithm of :arg:`x` (to base + :const:`e`). + + With two arguments, return the logarithm of :arg:`x` to the given + :arg:`base`, calculated as :func:`LOG(x) / LOG(base)`. + +MAX *(a[, b, ...])* +------------------- + + Return the largest item of :arg:`a[, b, ...]`. + +MB_SIZE *(x)* +------------- + + MB\_ prefix marks function, which works with multibyte strings. + + See SIZE_. + +MB_SUBSTR *(x, offset[, bytes[, y]]])* +-------------------------------------------- + + MB\_ prefix marks function, which works with multibyte strings. + + See SUBSTR_. + +MB_TRUNCATE *(x, offest[, addon])* +---------------------------------- + + MB\_ prefix marks function, which works with multibyte strings. + + See TRUNCATE_. + +MD5 *(a[, b, ...])* +------------------- + + Return the MD5 hash of :arg:`a[, b, ...]`. + +MIN *(a[, b, ...])* +------------------- + + Return the smallest item of :arg:`a[, b, ...]`. + +NUM_FORMAT *(x, y)* +------------------------ + + Return the formatted integer :arg:`x` with period :arg:`y`. + + Example:: + + NUM_FORMAT(1234567, ",") -> 1,234,567 + +OBJ_DUMP *([a, b, ...])* +------------------------ + + Return dump of the arguments :arg:`[a, b, ...]`. Return dump of all variables + if no arguments. + +RANDOM *([[min,] max])* +----------------------- + + Return a random number in the range (:arg:`min`, :arg:`max`]. The range + (:arg:`min`, :arg:`max`] equals to :const:`0 .. RAND_MAX`, if no arguments. + +.. _SIZE: + +SIZE *(x)* +---------- + + Return the number of items of a sequence :arg:`x`. + +SPRINTF *(format, a[, b, ...])* +------------------------------- + + Produce output according to a format. After the argument :arg:`format`, it + expects at least as many additional arguments as specified in + :arg:`format`. + + The argument :arg:`format` can optionaly contain embedded format tags that + are substituted by the values specified in :arg:`a[, b, ...]`. + + See 'man 3 printf' for more information. + +.. _SUBSTR: + +SUBSTR *(x, offset[, bytes[, y]]])* +----------------------------------- + + Return the characters in the string :arg:`x` starting at a specified + position :arg:`offset` and continuing for a specified number of characters + :arg:`bytes`. If the argument :arg:`y` exists, then return the string + :arg:`x` with replaced the characters with :arg:`y`. + +.. _TRUNCATE: + +TRUNCATE *(x, offest[, addon])* +------------------------------- + + Return the string :arg:`x`, if it is less than or equal to :arg:`offset` + characters long. If it is longer, it truncates the string. + + Return the string with :arg:`addon`, if the argument :arg:`addon` exists. + +URIESCAPE *(a[, b, ...])* +------------------------- + + Convert characters of the strings :arg:`a[, b, ...]` into their + corresponding escape sequences. + + :func:`URIESCAPE()` returns result of concatenation of the strings + :arg:`a[, b, ...]`. + +URLESCAPE *(a[, b, ...])* +------------------------- + + Convert characters of the strings :arg:`a[, b, ...]` into their + corresponding escape sequences. It replaces spaces with :const:`"+"` instead + of :const:`"%20"`. + + :func:`URLESCAPE()` returns result of concatenation of the strings + :arg:`a[, b, ...]`. + +VERSION *([x])* +--------------- + + Return the current version of CT++. + + Return extended information if :arg:`x` equals to :const:`"full"`. + +WMLESCAPE *(a[, b, ...])* +------------------------- + + Replace :const:`<` with :const:`>`, :const:`>` with :const:`<`, + :const:`"` with :const:`"`, :const:`'` with :const:`'`, + :const:`$` with :const:`$$`, and :const:`&` with :const:`&` in the + strings of data :arg:`a[, b, ...]`. + + :func:`WMLESCAPE()` returns result of concatenation of the strings + :arg:`a[, b, ...]`. + +XMLESCAPE *(a[, b, ...])* +------------------------- + + Replace :const:`<` with :const:`>`, :const:`>` with :const:`<`, + :const:`"` with :const:`"`, :const:`'` with :const:`'`, and + :const:`&` with :const:`&` in the strings of data :arg:`a[, b, ...]`. + + :func:`XMLESCAPE()` returns result of concatenation of the strings + :arg:`a[, b, ...]`. + |