Merge pull request #15 from dallonf/master

Validation is less annoying (plus I added the dashboard back)
This commit is contained in:
Ritchie Martori
2012-03-30 14:53:26 -07:00
22 changed files with 3485 additions and 11 deletions

1
.gitignore vendored
View File

@@ -10,7 +10,6 @@ lib-cov
pids
logs
results
dashboard
.DS_Store
node_modules
npm-debug.log

BIN
dashboard/img/bg-old.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 434 KiB

BIN
dashboard/img/bg.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 139 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

395
dashboard/index.html Normal file
View File

@@ -0,0 +1,395 @@
<!DOCTYPE html>
<html>
<head>
<title>Deployd Dashboard</title>
<link rel='stylesheet' type="text/css" href='stylesheets/style.css' />
</head>
<body>
<div id="header" class="subnav clearfix"></div>
<div id="body"></div>
<div class="modal" id="authModal" style="display: none">
<div class="modal-header">
<h3>Deployd Dashboard</h3>
</div>
<div class="modal-body">
<p>Authenticate with your deployd app:</p>
<form>
<label>Authentication key: <textarea name="key"></textarea></label>
</form>
</div>
<div class="modal-footer">
<a href="#" class="btn btn-primary save">Authenticate</a>
</div>
</div>
<script type="x-ejs-template" id="header-template" >
<div class="full-width-container">
<ul class="nav nav-pills pull-left">
<li><a href="#">Resources</a></li>
<% if (typeof resourceName !== 'undefined' && resourceName) { %>
<li class="active">
<a href="#<%= resourceId %>" class="resourceName"><%= resourceName %></a>
</li>
<% } %>
</ul>
<div class="pull-right">
<button id="undo-btn" class="btn btn-warning"><i class="icon-exclamation-sign icon-white"></i> Undo <span class="action-label"></span></button>
<span id="save-status"></span>
</div>
</div>
</script>
<script type="x-ejs-template" id="resources-template" >
<div id="resource-editor">
<div class="ide-container">
<div id="resource-sidebar" class="component-type-sidebar sidebar well">
</div>
<div class="main-area mid header-offset well">
<h3>Resources</h3>
<ul id="resource-list" class="component-list" style="display: none;">
</ul>
<div id="resource-list-empty" class="well" style="display: none;">
<h4>Welcome to your Deployd app</h4>
<p>
<i class="icon-white icon-arrow-left"></i>&nbsp;
These are the resources you can use to build your app.<br />
<div class="placeholder">Drag one here to get started!</div>
</p>
</div>
</div>
<div class="right-sidebar">
<div class="well">
<h3>App Settings</h3>
<form>
<label>App name</label>
<input type="text" readonly="readonly" value="<%- appName %>" />
<label>App URL</label>
<input type="text" readonly="readonly" value="<%- appUrl %>" />
</form>
</div>
<div class="well">
<h3>What's next?</h3>
<p>Deployd is in early alpha. More features are planned for upcoming releases, such as:</p>
<ul>
<li>Data relationships</li>
<li>Custom plugin support</li>
<li>Advanced querying</li>
<li>Automatic properties</li>
<li>Hosting static content</li>
<li>Rendering HTML</li>
</ul>
</div>
</div>
</div>
</div>
</script>
<script type="x-ejs-template" id="collection-template" >
<div id="model-editor">
<div class="ide-container has-nav">
<div id="property-panel">
<div id="property-sidebar" class="component-type-sidebar sidebar well">
</div>
<div class="main-area vertical-split">
<div class="top-panel">
<div class="split-panel">
<div id="property-list-cont" class="well">
<h3>
<div>
Properties
</div>
</h3>
<ul id="property-list" class="component-list">
<li class="component-item locked">
<div class="header">
<span class="label label-info">_id</span>
</div>
</li>
<% if (typeof resourceTypeId !== 'undefined' && resourceTypeId === 'UserCollection') { %>
<li class="component-item locked">
<div class="header">
<span class="label label-info">email</span>
</div>
</li>
<li class="component-item locked">
<div class="header">
<span class="label label-info">password</span>
</div>
</li>
<% } %>
</ul>
</div>
</div>
<div class="split-panel">
<div id="events-panel" class="well">
</div>
</div>
</div>
<div class="divider"></div>
<div class="bottom-panel">
<div id="current-data">
<div class="table-container">
<table class="table table-bordered table-striped">
</table>
</div>
<input id="current-data-querystring" type="text" placeholder="Query string" />
</div>
</div>
</div>
</div>
</div>
</div>
</script>
<script type="x-ejs-template" id="static-template" >
<div id="resource-editor">
<div class="ide-container">
<div id="resource-sidebar" class="component-type-sidebar sidebar">
<div class="well">
<div id="file-upload">
<span class="btn btn-success fileinput-button">
<i class="icon-plus icon-white"></i>
<span>Add files</span>
<input type="file" multiple="multiple" />
</span>
</div>
</div>
</div>
<div class="main-area mid header-offset">
<table id="files" class="table table-bordered table-striped">
<thead>
<th>Filename</th>
</thead>
<tbody></tbody>
</table>
</div>
</div>
</div>
</div>
</script>
<script type="x-ejs-template" id="file-template" >
<tr class="component-item">
<td>
<a href="<%= url %>"><%= filename %></a>
</td>
<td>
<% if(isEditable) { %>
<a class="edit" href="#" filename="<%= filename %>">edit</a>
<% } %>
<a class="delete" href="#" filename="<%= filename %>">delete</a>
</td>
</tr>
</script>
<script type="x-ejs-template" id="resource-sidebar-template" >
<h3 class="component-type-header">Resource Types</h3>
<ul class="component-type-list">
<% types.each(function(typeModel) { var type = typeModel.toJSON() %>
<li class="component-type-item" data-cid="<%- typeModel.cid %>"><%- type.label %></li>
<% }); %>
</ul>
</script>
<script type="x-ejs-template" id="resource-template" >
<div class="header">
<% if (resource.c_active) { %>
<input type="text" class="code" name="path" value="<%- resource.path %>" />
<a href="#" class="save-btn">save</a>
<a href="#" class="cancel-btn">cancel</a>
<% } else { %>
<span class="code path"><%- resource.path %></span>
<% } %>
<div class="pull-right">
<a class="edit-btn" href="#">edit</a>
&nbsp;
<a href="#" class="rename-btn">rename</a>
&nbsp;
<a href="#" class="delete-btn">delete</a>
</div>
<div class="tags pull-right">
<span class="label label-info type"><%- resource.typeLabel %></span>
</div>
</div>
</script>
<script type="x-ejs-template" id="property-sidebar-template" >
<h3 class="component-type-header">Types</h3>
<ul class="component-type-list">
<% types.each(function(typeModel) { var type = typeModel.toJSON() %>
<li class="component-type-item" data-cid="<%- typeModel.cid %>"><%- type.label %></li>
<% }); %>
</ul>
</script>
<script type="x-ejs-template" id="property-template" >
<div class="header <%= property.c_active ? 'active' : '' %>">
<% if (property.c_active) { %>
<input type="text" class="code" name="name" value="<%- property.name %>" />
<% } else { %>
<span class="code name"><%- property.name %></span>
<% } %>
<a href="#" class="pull-right delete-btn">delete</a>
<div class="tags pull-right">
<% if (property.optional) { %>
<span class="label optional">Optional</span>
<% } %>
<span class="label label-info type"><%- property.typeLabel %></span>
</div>
</div>
<% if (property.c_active) { %>
<div class="detail form-inline">
<% if (property.type !== 'boolean') { %>
<label>Optional <input type="checkbox" name='optional' <%= property.optional ? 'checked="checked"' : '' %> /></label>
<% } %>
</div>
<% } %>
</script>
<script type="x-ejs-template" id="events-template" >
<h3>
Events
</h3>
<ul class="nav nav-tabs">
<li class="active"><a href="#get-panel" data-toggle='tab'>GET</a></li>
<li><a href="#post-panel" data-toggle='tab'>POST</a></li>
<li><a href="#put-panel" data-toggle='tab'>PUT</a></li>
<li><a href="#delete-panel" data-toggle='tab'>DELETE</a></li>
</ul>
<div class="tab-content">
<div class="tab-pane active" id="get-panel">
<div class="editor-container">
<div id="onGet"><%= onGet %></div>
</div>
</div>
<div class="tab-pane" id="post-panel">
<div class="editor-container">
<div id="onPost"><%= onPost %></div>
</div>
</div>
<div class="tab-pane" id="put-panel">
<div class="editor-container">
<div id="onPut"><%= onPut %></div>
</div>
</div>
<div class="tab-pane" id="delete-panel">
<div class="editor-container">
<div id="onDelete"><%= onDelete %></div>
</div>
</div>
</div>
</script>
<script type="x-ejs-template" id="model-table-template" >
<thead>
<tr>
<th class="code">_id</th>
<% if (resourceType == "UserCollection") { %>
<th class="code">email</th>
<th class="code">password</th>
<% } %>
<% _.each(properties, function(property) { %>
<th class="code"><%- property.name %></th>
<% }); %>
<th></th>
</tr>
</thead>
<tbody>
<% if (!collectionModel.length) { %>
<tr>
<td colspan="<%= properties.length + (resourceType == "UserCollection" ? 4 : 2) %>">This collection is empty</td>
</tr>
<% } %>
<% collectionModel.each(function(rowModel) { if (!rowModel.get('c_delete')) { %>
<% var row = rowModel.toJSON(); %>
<tr data-cid="<%= rowModel.cid %>">
<td>
<%- row._id || '...' %>
</td>
<% if (resourceType == "UserCollection") { %>
<td data-prop="email">
<% if (row.c_errors && row.c_errors.email) { %>
<a class="error-tooltip" rel="tooltip" title="<%- row.c_errors.email %>">
<i class="icon-warning-sign icon-white"></i>
</a>
<% } %>
<% if (row.c_active) { %>
<input type="text" name="email" value="<%- row.email || '' %>" />
<% } else { %>
<%- row.email || '...' %>
<% } %>
</td>
<td data-prop="password">
<% if (row.c_errors && row.c_errors.password) { %>
<a class="error-tooltip" rel="tooltip" title="<%- row.c_errors.password %>">
<i class="icon-warning-sign icon-white"></i>
</a>
<% } %>
<% if (row.c_active) { %>
<input type="password" name="password" placeholder="*******" />
<% } else { %>
...
<% } %>
</td>
<% } %>
<% _.each(properties, function(property) { %>
<% var val = row[property.name]; %>
<% if (typeof val === 'undefined') { val = row[property.$renameFrom]; } %>
<td data-prop="<%- property.name %>">
<% if (row.c_errors && row.c_errors[property.name]) { %>
<a class="error-tooltip" rel="tooltip" title="<%- row.c_errors[property.name] %>">
<i class="icon-warning-sign icon-white"></i>
</a>
<% }
if (row.c_active) { %>
<% if (typeof val === 'undefined') { val = '' } %>
<% if (property.type == 'number') { %>
<input type="number" name="<%- property.name %>" value="<%- val %>" />
<% } else if (property.type == 'boolean') { %>
<input type="checkbox" name="<%- property.name %>" <% val ? 'checked="checked"' : ''%> />
<% } else if (property.type == 'date') { %>
<input type="datetime" name="<%- property.name %>" value="<%- val %>" />
<% } else { %>
<input type="text" name="<%- property.name %>" value="<%- val %>" />
<% } %>
<% } else { %>
<% if (typeof val === 'undefined') { val = '...' } %>
<%- val %>
<% } %>
</td>
<% }); %>
<td>
<% if (row.c_active) { %>
<a href="#" class="done-btn">done</a>
<% } else { %>
<a href="#" class="edit-btn">edit</a>
<% } %>
<a href="#" class="delete-btn">delete</a>
</td>
</tr>
<% }}); %>
</tbody>
<tfoot>
<tr>
<td colspan="<%= properties.length + (resourceType == "UserCollection" ? 4 : 2) %>"><button class="btn add-btn pull-right">Add</a></td>
</tr>
</tfoot>
</script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript" src="js/lib/jquery-ui.min.js"></script>
<script type="text/javascript" src="js/lib/jquery.plugins.js"></script>
<script type="text/javascript" src="js/lib/bootstrap.js"></script>
<script type="text/javascript" src="js/lib/underscore.js"></script>
<script type="text/javascript" src="js/lib/underscore.string.min.js"></script>
<script type="text/javascript" src="js/lib/backbone.js"></script>
<script type="text/javascript" src="js/lib/ace-noconflict.js"></script>
<script type="text/javascript" src="js/lib/ace-mode-javascript-noconflict.js"></script>
<script type="text/javascript" src="js/lib/ace-theme-vibrant_ink-noconflict.js"></script>
<script src="js/app.js"></script>
</body>
</html>

2269
dashboard/js/app.js Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
ace.define("ace/theme/vibrant_ink",["require","exports","module","ace/lib/dom"],function(a,b,c){b.isDark=!0,b.cssClass="ace-vibrant-ink",b.cssText=".ace-vibrant-ink .ace_editor { border: 2px solid rgb(159, 159, 159);}.ace-vibrant-ink .ace_editor.ace_focus { border: 2px solid #327fbd;}.ace-vibrant-ink .ace_gutter { background: #e8e8e8; color: #333;}.ace-vibrant-ink .ace_print_margin { width: 1px; background: #e8e8e8;}.ace-vibrant-ink .ace_scroller { background-color: #0F0F0F;}.ace-vibrant-ink .ace_text-layer { cursor: text; color: #FFFFFF;}.ace-vibrant-ink .ace_cursor { border-left: 2px solid #FFFFFF;}.ace-vibrant-ink .ace_cursor.ace_overwrite { border-left: 0px; border-bottom: 1px solid #FFFFFF;} .ace-vibrant-ink .ace_marker-layer .ace_selection { background: #6699CC;}.ace-vibrant-ink .ace_marker-layer .ace_step { background: rgb(198, 219, 174);}.ace-vibrant-ink .ace_marker-layer .ace_bracket { margin: -1px 0 0 -1px; border: 1px solid #404040;}.ace-vibrant-ink .ace_marker-layer .ace_active_line { background: #333333;}.ace-vibrant-ink .ace_marker-layer .ace_selected_word { border: 1px solid #6699CC;} .ace-vibrant-ink .ace_invisible { color: #404040;}.ace-vibrant-ink .ace_keyword { color:#FF6600;}.ace-vibrant-ink .ace_constant { color:#339999;}.ace-vibrant-ink .ace_constant.ace_numeric { color:#99CC99;}.ace-vibrant-ink .ace_invalid { color:#CCFF33;background-color:#000000;}.ace-vibrant-ink .ace_invalid.ace_deprecated { color:#CCFF33;background-color:#000000;}.ace-vibrant-ink .ace_fold { background-color: #FFCC00; border-color: #FFFFFF;}.ace-vibrant-ink .ace_support.ace_function { color:#FFCC00;}.ace-vibrant-ink .ace_string { color:#66FF00;}.ace-vibrant-ink .ace_string.ace_regexp { color:#44B4CC;}.ace-vibrant-ink .ace_comment { color:#9933CC;}.ace-vibrant-ink .ace_entity.ace_other.ace_attribute-name { font-style:italic;color:#99CC99;}.ace-vibrant-ink .ace_entity.ace_name.ace_function { color:#FFCC00;}.ace-vibrant-ink .ace_markup.ace_underline { text-decoration:underline;}";var d=a("../lib/dom");d.importCssString(b.cssText,b.cssClass)});

File diff suppressed because one or more lines are too long

18
dashboard/js/lib/bootstrap.js vendored Normal file

File diff suppressed because one or more lines are too long

11
dashboard/js/lib/jquery-ui.min.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,9 @@
/*!
* jQuery Cookie Plugin
* https://github.com/carhartl/jquery-cookie
*
* Copyright 2011, Klaus Hartl
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://www.opensource.org/licenses/mit-license.php
* http://www.opensource.org/licenses/GPL-2.0
*/(function(a){a.cookie=function(b,c,d){if(arguments.length>1&&(!/Object/.test(Object.prototype.toString.call(c))||c===null||c===undefined)){d=a.extend({},d);if(c===null||c===undefined)d.expires=-1;if(typeof d.expires=="number"){var e=d.expires,f=d.expires=new Date;f.setDate(f.getDate()+e)}return c=String(c),document.cookie=[encodeURIComponent(b),"=",d.raw?c:encodeURIComponent(c),d.expires?"; expires="+d.expires.toUTCString():"",d.path?"; path="+d.path:"",d.domain?"; domain="+d.domain:"",d.secure?"; secure":""].join("")}d=c||{};var g=d.raw?function(a){return a}:decodeURIComponent,h=document.cookie.split("; ");for(var i=0,j;j=h[i]&&h[i].split("=");i++)if(g(j[0])===b)return g(j[1]||"");return null}})(jQuery),function(a){var b=function(a){return parseInt(a,10)||0};a.each(["min","max"],function(c,d){a.fn[d+"Size"]=function(a){var c,e;return a?(a.width!==undefined&&this.css(d+"-width",a.width),a.height!==undefined&&this.css(d+"-height",a.height),this):(c=this.css(d+"-width"),e=this.css(d+"-height"),{width:d==="max"&&(c===undefined||c==="none"||b(c)===-1)&&Number.MAX_VALUE||b(c),height:d==="max"&&(e===undefined||e==="none"||b(e)===-1)&&Number.MAX_VALUE||b(e)})}}),a.fn.isVisible=function(){return this.is(":visible")},a.each(["border","margin","padding"],function(c,d){a.fn[d]=function(a){return a?(a.top!==undefined&&this.css(d+"-top"+(d==="border"?"-width":""),a.top),a.bottom!==undefined&&this.css(d+"-bottom"+(d==="border"?"-width":""),a.bottom),a.left!==undefined&&this.css(d+"-left"+(d==="border"?"-width":""),a.left),a.right!==undefined&&this.css(d+"-right"+(d==="border"?"-width":""),a.right),this):{top:b(this.css(d+"-top"+(d==="border"?"-width":""))),bottom:b(this.css(d+"-bottom"+(d==="border"?"-width":""))),left:b(this.css(d+"-left"+(d==="border"?"-width":""))),right:b(this.css(d+"-right"+(d==="border"?"-width":"")))}}})}(jQuery),function(a){if(a){var b=a.fn.outerWidth,c=a.fn.outerHeight,d=function(a,b){var c=this.border(),d=this.padding(),e;return a?(e=b-c.top-d.top-d.bottom-c.bottom,this.height(e)):(e=b-c.left-d.left-d.right-c.right,this.width(e))};a.fn.extend({outerWidth:function(a){return typeof a!="undefined"&&a===a*1?d.apply(this,[!1,a]):b.apply(this,arguments)},outerHeight:function(a){return typeof a!="undefined"&&a===a*1?d.apply(this,[!0,a]):c.apply(this,arguments)}})}}(jQuery);

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,17 @@
DEBUG: Error
at new JS_Parse_Error (/usr/local/lib/node_modules/uglify-js/lib/parse-js.js:260:22)
at js_error (/usr/local/lib/node_modules/uglify-js/lib/parse-js.js:268:15)
at croak (/usr/local/lib/node_modules/uglify-js/lib/parse-js.js:717:17)
at token_error (/usr/local/lib/node_modules/uglify-js/lib/parse-js.js:724:17)
at unexpected (/usr/local/lib/node_modules/uglify-js/lib/parse-js.js:730:17)
at as_name (/usr/local/lib/node_modules/uglify-js/lib/parse-js.js:1162:25)
at as_property_name (/usr/local/lib/node_modules/uglify-js/lib/parse-js.js:1151:24)
at object_ (/usr/local/lib/node_modules/uglify-js/lib/parse-js.js:1133:36)
at /usr/local/lib/node_modules/uglify-js/lib/parse-js.js:1089:51
at maybe_unary (/usr/local/lib/node_modules/uglify-js/lib/parse-js.js:1188:27)
DEBUG: { message: 'Unexpected token: punc (()',
line: 1,
col: 96685,
pos: 96685,
stack: 'Error\n at new JS_Parse_Error (/usr/local/lib/node_modules/uglify-js/lib/parse-js.js:260:22)\n at js_error (/usr/local/lib/node_modules/uglify-js/lib/parse-js.js:268:15)\n at croak (/usr/local/lib/node_modules/uglify-js/lib/parse-js.js:717:17)\n at token_error (/usr/local/lib/node_modules/uglify-js/lib/parse-js.js:724:17)\n at unexpected (/usr/local/lib/node_modules/uglify-js/lib/parse-js.js:730:17)\n at as_name (/usr/local/lib/node_modules/uglify-js/lib/parse-js.js:1162:25)\n at as_property_name (/usr/local/lib/node_modules/uglify-js/lib/parse-js.js:1151:24)\n at object_ (/usr/local/lib/node_modules/uglify-js/lib/parse-js.js:1133:36)\n at /usr/local/lib/node_modules/uglify-js/lib/parse-js.js:1089:51\n at maybe_unary (/usr/local/lib/node_modules/uglify-js/lib/parse-js.js:1188:27)' }
DEBUG: {"message":"Unexpected token: punc (()","line":1,"col":96685,"pos":96685,"stack":"Error\n at new JS_Parse_Error (/usr/local/lib/node_modules/uglify-js/lib/parse-js.js:260:22)\n at js_error (/usr/local/lib/node_modules/uglify-js/lib/parse-js.js:268:15)\n at croak (/usr/local/lib/node_modules/uglify-js/lib/parse-js.js:717:17)\n at token_error (/usr/local/lib/node_modules/uglify-js/lib/parse-js.js:724:17)\n at unexpected (/usr/local/lib/node_modules/uglify-js/lib/parse-js.js:730:17)\n at as_name (/usr/local/lib/node_modules/uglify-js/lib/parse-js.js:1162:25)\n at as_property_name (/usr/local/lib/node_modules/uglify-js/lib/parse-js.js:1151:24)\n at object_ (/usr/local/lib/node_modules/uglify-js/lib/parse-js.js:1133:36)\n at /usr/local/lib/node_modules/uglify-js/lib/parse-js.js:1089:51\n at maybe_unary (/usr/local/lib/node_modules/uglify-js/lib/parse-js.js:1188:27)"}

View File

@@ -0,0 +1,679 @@
article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block;}
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;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%;height:auto;border:0;-ms-interpolation-mode:bicubic;}
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-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;}
input[type="search"]::-webkit-search-decoration,input[type="search"]::-webkit-search-cancel-button{-webkit-appearance:none;}
textarea{overflow:auto;vertical-align:top;}
body{margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;line-height:18px;color:#ffeee2;background-color:#ffeee2;}
a{color:#eeeeee;text-decoration:none;}
a:hover{color:#c8c8c8;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;}
.span1{width:60px;}
.span2{width:140px;}
.span3{width:220px;}
.span4{width:300px;}
.span5{width:380px;}
.span6{width:460px;}
.span7{width:540px;}
.span8{width:620px;}
.span9{width:700px;}
.span10{width:780px;}
.span11{width:860px;}
.span12,.container{width:940px;}
.offset1{margin-left:100px;}
.offset2{margin-left:180px;}
.offset3{margin-left:260px;}
.offset4{margin-left:340px;}
.offset5{margin-left:420px;}
.offset6{margin-left:500px;}
.offset7{margin-left:580px;}
.offset8{margin-left:660px;}
.offset9{margin-left:740px;}
.offset10{margin-left:820px;}
.offset11{margin-left:900px;}
.row-fluid{width:100%;*zoom:1;}.row-fluid:before,.row-fluid:after{display:table;content:"";}
.row-fluid:after{clear:both;}
.row-fluid>[class*="span"]{float:left;margin-left:2.127659574%;}
.row-fluid>[class*="span"]:first-child{margin-left:0;}
.row-fluid .span1{width:6.382978723%;}
.row-fluid .span2{width:14.89361702%;}
.row-fluid .span3{width:23.404255317%;}
.row-fluid .span4{width:31.914893614%;}
.row-fluid .span5{width:40.425531911%;}
.row-fluid .span6{width:48.93617020799999%;}
.row-fluid .span7{width:57.446808505%;}
.row-fluid .span8{width:65.95744680199999%;}
.row-fluid .span9{width:74.468085099%;}
.row-fluid .span10{width:82.97872339599999%;}
.row-fluid .span11{width:91.489361693%;}
.row-fluid .span12{width:99.99999998999999%;}
body{background:#000000 fixed url('../img/bg-old.png');}
.container{width:940px;margin-left:auto;margin-right:auto;*zoom:1;}.container:before,.container:after{display:table;content:"";}
.container:after{clear:both;}
.container-fluid{padding-left:20px;padding-right:20px;*zoom:1;}.container-fluid:before,.container-fluid:after{display:table;content:"";}
.container-fluid:after{clear:both;}
p{margin:0 0 9px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;line-height:18px;}p small{font-size:11px;color:#ffeee2;}
.lead{margin-bottom:18px;font-size:20px;font-weight:200;line-height:27px;}
h1,h2,h3,h4,h5,h6{margin:0;font-weight:bold;color:#ffeee2;text-rendering:optimizelegibility;}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:normal;color:#ffeee2;}
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{line-height:27px;font-size:18px;}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:#9d7977;text-transform:uppercase;}
.page-header{padding-bottom:17px;margin:18px 0;border-bottom:1px solid #ccb3b2;}
.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{margin-left:0;list-style:none;}
dl{margin-bottom:18px;}
dt,dd{line-height:18px;}
dt{font-weight:bold;}
dd{margin-left:9px;}
hr{margin:18px 0;border:0;border-top:1px solid #e5e5e5;border-bottom:1px solid #ffeee2;}
strong{font-weight:bold;}
em{font-style:italic;}
.muted{color:#c74d43;text-shadow:0 1px 0 rgba(0, 0, 0, 0.8);}
abbr{font-size:90%;text-transform:uppercase;border-bottom:1px dotted #ddd;cursor:help;}
blockquote{padding:0 0 0 15px;margin:0 0 18px;border-left:5px solid #ccb3b2;}blockquote p{margin-bottom:0;font-size:16px;font-weight:300;line-height:22.5px;}
blockquote small{display:block;line-height:18px;color:#9d7977;}blockquote small:before{content:'\2014 \00A0';}
blockquote.pull-right{float:right;padding-left:0;padding-right:15px;border-left:0;border-right:5px solid #ccb3b2;}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;line-height:18px;font-style:normal;}
small{font-size:100%;}
cite{font-style:normal;}
code,pre{padding:0 3px 2px;font-family:Menlo,Monaco,"Courier New",monospace;font-size:12px;color:#542926;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
code{padding:3px 4px;color:#faf1da;background-color:#370f0c;border:1px solid #621a15;}
pre{display:block;padding:8.5px;margin:0 0 9px;font-size:12px;line-height:18px;background-color:#370f0c;border:1px solid #621a15;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;white-space:pre;white-space:pre-wrap;word-break:break-all;}pre.prettyprint{margin-bottom:18px;}
pre code{padding:0;background-color:transparent;}
.com{color:#c5e7e4;}
.lit{color:#7dc9c2;}
.pun,.opn,.clo{color:#90b6b3;}
.fun{color:#8b0e0c;}
.str,.atv{color:#fe8d35;}
.kwd,.linenums .tag{color:#dca4b4;}
.typ,.atn,.dec,.var{color:#9bc35b;}
.pln{color:#ffeee2;}
.prettyprint{padding:9px;background-color:#370f0c;border:1px solid #000000;}
.prettyprint.linenums{-webkit-box-shadow:inset 40px 0 0 #2f0d0a,inset 41px 0 0 #270a08;-moz-box-shadow:inset 40px 0 0 #2f0d0a,inset 41px 0 0 #270a08;box-shadow:inset 40px 0 0 #2f0d0a,inset 41px 0 0 #270a08;}
ol.linenums{margin:0 0 0 33px;}
ol.linenums li{padding-left:12px;color:#faf1da;line-height:18px;text-shadow:0 1px 0 #370f0c;background:#370f0c;}
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:#391715;border:0;border-bottom:solid 1px #000000;}
label,input,button,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:18px;}
label{display:block;margin-bottom:5px;color:#ffeee2;}
input,textarea,select,.uneditable-input{display:inline-block;width:210px;height:18px;padding:4px;margin-bottom:9px;font-size:13px;line-height:18px;color:#390905;border:solid 1px #000000;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
.uneditable-textarea{width:auto;height:auto;}
label input,label textarea,label select{display:block;}
input[type="image"],input[type="checkbox"],input[type="radio"]{width:auto;height:auto;padding:0;margin:3px 0;*margin-top:0;line-height:normal;border:0;cursor:pointer;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
input[type="file"]{padding:initial;line-height:initial;border:initial;background-color:#ffeee2;background-color:initial;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;}
input[type="button"],input[type="reset"],input[type="submit"]{width:auto;height:auto;}
select,input[type="file"]{height:28px;*margin-top:4px;line-height:28px;}
select{width:220px;background-color:#97170d;}
select[multiple],select[size]{height:auto;}
input[type="image"]{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;}
textarea{height:auto;}
input[type="hidden"]{display:none;}
.radio,.checkbox{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;margin-bottom:0;vertical-align:middle;}
.radio.inline+.radio.inline,.checkbox.inline+.checkbox.inline{margin-left:10px;}
.controls>.radio.inline:first-child,.controls>.checkbox.inline:first-child{padding-top:0;}
input,textarea{-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);background:#97170d;color:#ffeee2;border:solid 1px #681009;-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;}
input:focus,textarea:focus{border:solid 1px #ae1b0f;outline:0;outline:thin dotted \9;}
input[type="file"]:focus,input[type="checkbox"]:focus,select:focus{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;}
.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{float:none;margin-left:0;}
input.span1,textarea.span1,.uneditable-input.span1{width:50px;}
input.span2,textarea.span2,.uneditable-input.span2{width:130px;}
input.span3,textarea.span3,.uneditable-input.span3{width:210px;}
input.span4,textarea.span4,.uneditable-input.span4{width:290px;}
input.span5,textarea.span5,.uneditable-input.span5{width:370px;}
input.span6,textarea.span6,.uneditable-input.span6{width:450px;}
input.span7,textarea.span7,.uneditable-input.span7{width:530px;}
input.span8,textarea.span8,.uneditable-input.span8{width:610px;}
input.span9,textarea.span9,.uneditable-input.span9{width:690px;}
input.span10,textarea.span10,.uneditable-input.span10{width:770px;}
input.span11,textarea.span11,.uneditable-input.span11{width:850px;}
input.span12,textarea.span12,.uneditable-input.span12{width:930px;}
input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{background-color:#370f0c;border-color:#ddd;cursor:not-allowed;}
.control-group.warning>label,.control-group.warning .help-block,.control-group.warning .help-inline{color:#614a0e;}
.control-group.warning input,.control-group.warning select,.control-group.warning textarea{color:#614a0e;border-color:#614a0e;}.control-group.warning input:focus,.control-group.warning select:focus,.control-group.warning textarea:focus{border-color:#342808;-webkit-box-shadow:0 0 6px #ba8f1b;-moz-box-shadow:0 0 6px #ba8f1b;box-shadow:0 0 6px #ba8f1b;}
.control-group.warning .input-prepend .add-on,.control-group.warning .input-append .add-on{color:#614a0e;background-color:#edd081;border-color:#614a0e;}
.control-group.error>label,.control-group.error .help-block,.control-group.error .help-inline{color:#000000;}
.control-group.error input,.control-group.error select,.control-group.error textarea{color:#000000;border-color:#000000;}.control-group.error input:focus,.control-group.error select:focus,.control-group.error textarea:focus{border-color:#000000;-webkit-box-shadow:0 0 6px #333333;-moz-box-shadow:0 0 6px #333333;box-shadow:0 0 6px #333333;}
.control-group.error .input-prepend .add-on,.control-group.error .input-append .add-on{color:#000000;background-color:#ba1310;border-color:#000000;}
.control-group.success>label,.control-group.success .help-block,.control-group.success .help-inline{color:#111708;}
.control-group.success input,.control-group.success select,.control-group.success textarea{color:#111708;border-color:#111708;}.control-group.success input:focus,.control-group.success select:focus,.control-group.success textarea:focus{border-color:#000000;-webkit-box-shadow:0 0 6px #4a6223;-moz-box-shadow:0 0 6px #4a6223;box-shadow:0 0 6px #4a6223;}
.control-group.success .input-prepend .add-on,.control-group.success .input-append .add-on{color:#111708;background-color:#9bc35b;border-color:#111708;}
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:#5c0908;-webkit-box-shadow:0 0 6px #e91714;-moz-box-shadow:0 0 6px #e91714;box-shadow:0 0 6px #e91714;}
.form-actions{padding:17px 20px 18px;margin-top:18px;margin-bottom:18px;border-top:solid 1px #000000;}
.uneditable-input{display:block;background-color:#ffeee2;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);cursor:not-allowed;}
:-moz-placeholder{color:#681009;}
::-webkit-input-placeholder{color:#681009;}
.help-block{margin-top:5px;margin-bottom:0;color:#ccb3b2;}
.help-inline{display:inline-block;*display:inline;*zoom:1;margin-bottom:9px;vertical-align:middle;padding-left:5px;}
.input-prepend,.input-append{margin-bottom:5px;*zoom:1;}.input-prepend:before,.input-append:before,.input-prepend:after,.input-append:after{display:table;content:"";}
.input-prepend:after,.input-append:after{clear:both;}
.input-prepend input,.input-append input,.input-prepend .uneditable-input,.input-append .uneditable-input{-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 .uneditable-input:focus,.input-append .uneditable-input:focus{position:relative;z-index:2;}
.input-prepend .uneditable-input,.input-append .uneditable-input{border-left-color:#ccc;}
.input-prepend .add-on,.input-append .add-on{float:left;display:block;width:auto;min-width:16px;height:18px;margin-right:-1px;padding:4px 5px;font-weight:normal;line-height:18px;color:#9d7977;text-align:center;text-shadow:0 1px 0 #ffeee2;background-color:#f5f5f5;border:1px solid #ccc;-webkit-border-radius:3px 0 0 3px;-moz-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;}
.input-prepend .active,.input-append .active{background-color:#f6faf0;border-color:#668731;}
.input-prepend .add-on{*margin-top:1px;}
.input-append input,.input-append .uneditable-input{float:left;-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;}
.input-append .add-on{margin-right:0;margin-left:-1px;-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0;}
.input-append input:first-child{*margin-left:-160px;}.input-append input:first-child+.add-on{*margin-left:-21px;}
.search-query{padding-left:14px;padding-right:14px;margin-bottom:0;-webkit-border-radius:7px;-moz-border-radius:7px;border-radius:7px;}
.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{display:inline-block;margin-bottom:0;}
.form-search label,.form-inline label,.form-search .input-append,.form-inline .input-append,.form-search .input-prepend,.form-inline .input-prepend{display:inline-block;}
.form-search .input-append .add-on,.form-inline .input-prepend .add-on,.form-search .input-append .add-on,.form-inline .input-prepend .add-on{vertical-align:middle;}
.control-group{margin-bottom:9px;}
.form-horizontal 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-group>label{float:left;width:140px;padding-top:5px;text-align:right;}
.form-horizontal .controls{margin-left:160px;}
.form-horizontal .form-actions{padding-left:160px;}
table{max-width:100%;border-collapse:collapse;border-spacing:0;background:#370f0c;border-color:#000000;}
.table{width:100%;margin-bottom:18px;}.table th,.table td{padding:8px;line-height:18px;text-align:left;border-top:solid 1px #000000;}
.table th{font-weight:bold;vertical-align:bottom;}
.table td{vertical-align:top;}
.table thead:first-child tr th,.table thead:first-child tr td{border-top:0;}
.table tbody+tbody{border-top:2px solid;}
.table-condensed th,.table-condensed td{padding:4px 5px;}
.table-bordered{border:solid 1px #000000;border-collapse:separate;*border-collapse:collapsed;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}.table-bordered th+th,.table-bordered td+td,.table-bordered th+td,.table-bordered td+th{border-left:solid 1px #000000;}
.table-bordered thead:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child th,.table-bordered tbody:first-child tr:first-child td{border-top:0;}
.table-bordered thead:first-child tr:first-child th:first-child,.table-bordered tbody:first-child tr:first-child td:first-child{-webkit-border-radius:4px 0 0 0;-moz-border-radius:4px 0 0 0;border-radius:4px 0 0 0;}
.table-bordered thead:first-child tr:first-child th:last-child,.table-bordered tbody:first-child tr:first-child td:last-child{-webkit-border-radius:0 4px 0 0;-moz-border-radius:0 4px 0 0;border-radius:0 4px 0 0;}
.table-bordered thead:last-child tr:last-child th:first-child,.table-bordered tbody:last-child tr:last-child td:first-child{-webkit-border-radius:0 0 0 4px;-moz-border-radius:0 0 0 4px;border-radius:0 0 0 4px;}
.table-bordered thead:last-child tr:last-child th:last-child,.table-bordered tbody:last-child tr:last-child td:last-child{-webkit-border-radius:0 0 4px 0;-moz-border-radius:0 0 4px 0;border-radius:0 0 4px 0;}
.table-striped tbody tr:nth-child(odd) td,.table-striped tbody tr:nth-child(odd) th{background-color:#3c1916;}
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;}
[class^="icon-"]{display:inline-block;width:14px;height:14px;vertical-align:text-top;background-image:url(../img/glyphicons-halflings.png);background-position:14px 14px;background-repeat:no-repeat;*margin-right:.3em;}[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;}
.dropdown{position:relative;}
.dropdown-toggle{*margin-bottom:-3px;}
.dropdown-toggle:active,.open .dropdown-toggle{outline:0;}
.caret{display:inline-block;width:0;height:0;text-indent:-99999px;*text-indent:0;vertical-align:top;border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid #97170d;opacity:0.3;filter:alpha(opacity=30);content:"\2193";}
.dropdown .caret{margin-top:8px;margin-left:2px;}
.dropdown:hover .caret,.open.dropdown .caret{opacity:1;filter:alpha(opacity=100);}
.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;float:left;display:none;min-width:160px;max-width:220px;_width:160px;padding:4px 0;margin:0;list-style:none;background-color:rgba(48, 5, 5, 0.95);border-color:#390905;border-color:rgba(0, 0, 0, 0.2);border-style:solid;border-width:1px;-webkit-border-radius:0 0 5px 5px;-moz-border-radius:0 0 5px 5px;border-radius:0 0 5px 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;*border-right-width:2px;*border-bottom-width:2px;}.dropdown-menu.bottom-up{top:auto;bottom:100%;margin-bottom:2px;}
.dropdown-menu .divider{height:1px;margin:5px 1px;overflow:hidden;background-color:#390905;border-bottom:1px solid #97170d;*width:100%;*margin:-5px 0 5px;}
.dropdown-menu a{display:block;padding:3px 15px;clear:both;font-weight:normal;line-height:18px;color:#ffeee2;white-space:nowrap;}
.dropdown-menu li>a:hover,.dropdown-menu .active>a,.dropdown-menu .active>a:hover{color:#ffeee2;text-decoration:none;background-color:#97170d;}
.dropdown.open{*z-index:1000;}.dropdown.open .dropdown-toggle{color:#ffeee2;background:#ccc;background:rgba(0, 0, 0, 0.3);}
.dropdown.open .dropdown-menu{display:block;}
.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:#390905;border:1px solid #eee;border:1px solid rgba(0, 0, 0, 0.05);-webkit-box-shadow:inset 0 -1px 40px rgba(0, 0, 0, 0.9);-moz-box-shadow:inset 0 -1px 40px rgba(0, 0, 0, 0.9);box-shadow:inset 0 -1px 40px rgba(0, 0, 0, 0.9);border-left:solid 5px #5f0e08;border-right:solid 5px #71110a;border-bottom:solid 3px #71110a;}.well blockquote{border-color:#ddd;border-color:rgba(0, 0, 0, 0.15);}
.well h1,.well h2,.well h3,.well h4,.well h5,.well h6{background:0 -800px url('../img/bg-old.png');-webkit-box-shadow:inset 0 -1px 40px rgba(0, 0, 0, 0.9);-moz-box-shadow:inset 0 -1px 40px rgba(0, 0, 0, 0.9);box-shadow:inset 0 -1px 40px rgba(0, 0, 0, 0.9);margin:0 -19px;margin-top:-20px;padding:9.5px 19px;margin-bottom:19px;}
.well>.well{background:0 -800px url('../img/bg-old.png');border-left:solid 5px #300704;border-right:solid 5px #300704;border-bottom:solid 3px #300704;}
.fade{-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;opacity:0;}.fade.in{opacity:1;}
.collapse{-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;position:relative;overflow:hidden;height:0;}.collapse.in{height:auto;}
.close{float:right;font-size:20px;font-weight:bold;line-height:18px;color:#97170d;text-shadow:0 1px 0 #ffffff;opacity:0.2;filter:alpha(opacity=20);}.close:hover{color:#97170d;text-decoration:none;opacity:0.4;filter:alpha(opacity=40);cursor:pointer;}
.btn{display:inline-block;padding:4px 10px 4px;font-size:13px;line-height:18px;color:#542926;text-align:center;text-shadow:0 1px 1px rgba(255, 255, 255, 0.75);background-color:#ffe9d7;background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ffeee2), color-stop(25%, #ffeee2), to(#ffd2af));background-image:-webkit-linear-gradient(#ffeee2, #ffeee2 25%, #ffd2af);background-image:-moz-linear-gradient(top, #ffeee2, #ffeee2 25%, #ffd2af);background-image:-ms-linear-gradient(#ffeee2, #ffeee2 25%, #ffd2af);background-image:-o-linear-gradient(#ffeee2, #ffeee2 25%, #ffd2af);background-image:linear-gradient(#ffeee2, #ffeee2 25%, #ffd2af);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffeee2', endColorstr='#ffd2af', GradientType=0);border-bottom-color:#bbb;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-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);cursor:pointer;*margin-left:.3em;}.btn:first-child{*margin-left:0;}
.btn:hover{text-decoration:none;}
.btn:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;}
.btn.active,.btn:active{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);background-color:#ffd2af;background-color:#fec395 \9;color:rgba(0, 0, 0, 0.5);outline:0;}
.btn.disabled,.btn[disabled]{cursor:default;background-image:none;background-color:#ffd2af;opacity:0.5;filter:alpha(opacity=50);-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 .icon{margin-top:1px;}
.btn-small{padding:5px 9px;font-size:11px;line-height:16px;}
.btn-small .icon{margin-top:-1px;}
.btn,.btn:hover,.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{text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);color:#ffeee2;}
.btn{background-color:#db9c26;background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#e0ae28), color-stop(50%, #e0ae28), to(#c8521d));background-image:-webkit-linear-gradient(#e0ae28, #e0ae28 50%, #c8521d);background-image:-moz-linear-gradient(top, #e0ae28, #e0ae28 50%, #c8521d);background-image:-ms-linear-gradient(#e0ae28, #e0ae28 50%, #c8521d);background-image:-o-linear-gradient(#e0ae28, #e0ae28 50%, #c8521d);background-image:linear-gradient(#e0ae28, #e0ae28 50%, #c8521d);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#e0ae28', endColorstr='#c8521d', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);border-top:solid 1px #edd081;border-left:solid 1px #e6bf55;border-bottom:solid 1px #614a0e;border-right:solid 1px #8e6d14;color:#ffeee2;color:#390905;}.btn:hover,.btn:active,.btn.active,.btn.disabled,.btn[disabled]{background-color:#e0ae28;}
.btn:active,.btn.active{background-color:#ba8f1b \9;}
.btn-primary{background-color:#40998b;background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#429e96), color-stop(50%, #429e96), to(#37855e));background-image:-webkit-linear-gradient(#429e96, #429e96 50%, #37855e);background-image:-moz-linear-gradient(top, #429e96, #429e96 50%, #37855e);background-image:-ms-linear-gradient(#429e96, #429e96 50%, #37855e);background-image:-o-linear-gradient(#429e96, #429e96 50%, #37855e);background-image:linear-gradient(#429e96, #429e96 50%, #37855e);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#429e96', endColorstr='#37855e', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);border-top:solid 1px #7dc9c2;border-left:solid 1px #59bab1;border-bottom:solid 1px #153230;border-right:solid 1px #245652;color:#ffeee2;}.btn-primary:hover,.btn-primary:active,.btn-primary.active,.btn-primary.disabled,.btn-primary[disabled]{background-color:#429e96;}
.btn-primary:active,.btn-primary.active{background-color:#337a74 \9;}
.btn-warning{background-color:#c54901;background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#cc5a01), color-stop(50%, #cc5a01), to(#a80401));background-image:-webkit-linear-gradient(#cc5a01, #cc5a01 50%, #a80401);background-image:-moz-linear-gradient(top, #cc5a01, #cc5a01 50%, #a80401);background-image:-ms-linear-gradient(#cc5a01, #cc5a01 50%, #a80401);background-image:-o-linear-gradient(#cc5a01, #cc5a01 50%, #a80401);background-image:linear-gradient(#cc5a01, #cc5a01 50%, #a80401);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#cc5a01', endColorstr='#a80401', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);border-top:solid 1px #fe8d35;border-left:solid 1px #fe7102;border-bottom:solid 1px #341700;border-right:solid 1px #662d01;color:#ffeee2;}.btn-warning:hover,.btn-warning:active,.btn-warning.active,.btn-warning.disabled,.btn-warning[disabled]{background-color:#cc5a01;}
.btn-warning:active,.btn-warning.active{background-color:#994401 \9;}
.btn-danger{background-color:#840d13;background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#8b0e0c), color-stop(50%, #8b0e0c), to(#6a0930));background-image:-webkit-linear-gradient(#8b0e0c, #8b0e0c 50%, #6a0930);background-image:-moz-linear-gradient(top, #8b0e0c, #8b0e0c 50%, #6a0930);background-image:-ms-linear-gradient(#8b0e0c, #8b0e0c 50%, #6a0930);background-image:-o-linear-gradient(#8b0e0c, #8b0e0c 50%, #6a0930);background-image:linear-gradient(#8b0e0c, #8b0e0c 50%, #6a0930);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#8b0e0c', endColorstr='#6a0930', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);border-top:solid 1px #e91714;border-left:solid 1px #ba1310;border-bottom:solid 1px #000000;border-right:solid 1px #2d0504;color:#ffeee2;border-top:solid 1px #a2100e;}.btn-danger:hover,.btn-danger:active,.btn-danger.active,.btn-danger.disabled,.btn-danger[disabled]{background-color:#8b0e0c;}
.btn-danger:active,.btn-danger.active{background-color:#5c0908 \9;}
.btn-success{background-color:#67812f;background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#668731), color-stop(50%, #668731), to(#6d6b27));background-image:-webkit-linear-gradient(#668731, #668731 50%, #6d6b27);background-image:-moz-linear-gradient(top, #668731, #668731 50%, #6d6b27);background-image:-ms-linear-gradient(#668731, #668731 50%, #6d6b27);background-image:-o-linear-gradient(#668731, #668731 50%, #6d6b27);background-image:linear-gradient(#668731, #668731 50%, #6d6b27);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#668731', endColorstr='#6d6b27', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);border-top:solid 1px #9bc35b;border-left:solid 1px #82ac3f;border-bottom:solid 1px #111708;border-right:solid 1px #2d3c16;color:#ffeee2;}.btn-success:hover,.btn-success:active,.btn-success.active,.btn-success.disabled,.btn-success[disabled]{background-color:#668731;}
.btn-success:active,.btn-success.active{background-color:#4a6223 \9;}
.btn-info{background-color:#40998b;background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#429e96), color-stop(50%, #429e96), to(#37855e));background-image:-webkit-linear-gradient(#429e96, #429e96 50%, #37855e);background-image:-moz-linear-gradient(top, #429e96, #429e96 50%, #37855e);background-image:-ms-linear-gradient(#429e96, #429e96 50%, #37855e);background-image:-o-linear-gradient(#429e96, #429e96 50%, #37855e);background-image:linear-gradient(#429e96, #429e96 50%, #37855e);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#429e96', endColorstr='#37855e', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);border-top:solid 1px #7dc9c2;border-left:solid 1px #59bab1;border-bottom:solid 1px #153230;border-right:solid 1px #245652;color:#ffeee2;}.btn-info:hover,.btn-info:active,.btn-info.active,.btn-info.disabled,.btn-info[disabled]{background-color:#429e96;}
.btn-info:active,.btn-info.active{background-color:#337a74 \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.large,input[type="submit"].btn.large{*padding-top:7px;*padding-bottom:7px;}
button.btn.small,input[type="submit"].btn.small{*padding-top:3px;*padding-bottom:3px;}
.btn-group{position:relative;*zoom:1;*margin-left:.3em;}.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;*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-top-left-radius:4px;-moz-border-radius-topleft:4px;border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;-moz-border-radius-bottomleft:4px;border-bottom-left-radius:4px;}
.btn-group .btn:last-child,.btn-group .dropdown-toggle{-webkit-border-top-right-radius:4px;-moz-border-radius-topright:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;-moz-border-radius-bottomright:4px;border-bottom-right-radius:4px;}
.btn-group .btn.large:first-child{margin-left:0;-webkit-border-top-left-radius:6px;-moz-border-radius-topleft:6px;border-top-left-radius:6px;-webkit-border-bottom-left-radius:6px;-moz-border-radius-bottomleft:6px;border-bottom-left-radius:6px;}
.btn-group .btn.large:last-child,.btn-group .large.dropdown-toggle{-webkit-border-top-right-radius:6px;-moz-border-radius-topright:6px;border-top-right-radius:6px;-webkit-border-bottom-right-radius:6px;-moz-border-radius-bottomright:6px;border-bottom-right-radius: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-left:8px;padding-right: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);*padding-top:5px;*padding-bottom:5px;}
.btn-group.open{*z-index:1000;}.btn-group.open .dropdown-menu{display:block;margin-top:1px;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;}
.btn-group.open .dropdown-toggle{background-image:none;-webkit-box-shadow:inset 0 1px 6px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 6px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 6px rgba(0, 0, 0, 0.15),0 1px 2px rgba(0, 0, 0, 0.05);}
.btn .caret{margin-top:7px;margin-left:0;}
.btn:hover .caret,.open.btn-group .caret{opacity:1;filter:alpha(opacity=100);}
.btn .caret,.btn-primary .caret,.btn-danger .caret,.btn-info .caret,.btn-success .caret{border-top-color:#ffeee2;opacity:0.75;filter:alpha(opacity=75);}
.btn-small .caret{margin-top:4px;}
.alert{padding:8px 35px 8px 14px;margin-bottom:18px;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);background-color:#edd081;border:1px solid #ba741b;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
.alert,.alert-heading{color:#614a0e;}
.alert .close{position:relative;top:-2px;right:-21px;line-height:18px;}
.alert-success{background-color:#9bc35b;border-color:#546223;}
.alert-success,.alert-success .alert-heading{color:#111708;}
.alert-danger,.alert-error{background-color:#ba1310;border-color:#8b0c1f;}
.alert-danger,.alert-error,.alert-danger .alert-heading,.alert-error .alert-heading{color:#000000;}
.alert-info{background-color:#7dc9c2;border-color:#337a68;}
.alert-info,.alert-info .alert-heading{color:#153230;}
.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-left:0;margin-bottom:18px;list-style:none;}
.nav>li>a{display:block;}
.nav>li>a:hover{text-decoration:none;}
.nav-list{padding-left:14px;padding-right:14px;margin-bottom:0;}
.nav-list>li>a,.nav-list .nav-header{display:block;padding:3px 15px;margin-left:-15px;margin-right:-15px;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);}
.nav-list .nav-header{font-size:11px;font-weight:bold;line-height:18px;color:#ffeee2;text-transform:uppercase;}
.nav-list>li+.nav-header{margin-top:9px;}
.nav-list .active>a,.nav-list .active>a:hover{color:#ffeee2;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.2);background-color:#eeeeee;}
.nav-list [class^="icon-"]{margin-right:2px;}
.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:solid 1px #000000;}
.nav-tabs>li{margin-bottom:-1px;}
.nav-tabs>li>a{padding-top:9px;padding-bottom:9px;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:#ffeee2 #ffeee2 #feb57c;}
.nav-tabs>.active>a,.nav-tabs>.active>a:hover{color:#feb57c;background-color:#97170d;border:1px solid #feb57c;border-bottom-color:transparent;cursor:default;}
.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:#429e96;}
.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 #feb57c;-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{border-color:#feb57c;z-index:2;}
.nav-pills.nav-stacked>li>a{margin-bottom:3px;}
.nav-pills.nav-stacked>li:last-child>a{margin-bottom:1px;}
.nav-tabs .dropdown-menu,.nav-pills .dropdown-menu{margin-top:1px;border-width:1px;}
.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{border-top-color:#eeeeee;margin-top:6px;}
.nav-tabs .dropdown-toggle:hover .caret,.nav-pills .dropdown-toggle:hover .caret{border-top-color:#c8c8c8;}
.nav-tabs .active .dropdown-toggle .caret,.nav-pills .active .dropdown-toggle .caret{border-top-color:#542926;}
.nav>.dropdown.active>a:hover{color:#97170d;cursor:pointer;}
.nav .open .caret,.nav .open.active .caret,.nav .open a:hover .caret{border-top-color:#ffeee2;opacity:1;filter:alpha(opacity=100);}
.tabs-stacked .open>a:hover{border-color:#9d7977;}
.tabbable{*zoom:1;}.tabbable:before,.tabbable:after{display:table;content:"";}
.tabbable:after{clear:both;}
.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-bottom-color:transparent;border-top-color:#ddd;}
.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:#ccb3b2 #dddddd #ccb3b2 #ccb3b2;}
.tabs-left .nav-tabs .active>a,.tabs-left .nav-tabs .active>a:hover{border-color:#ddd transparent #ddd #ddd;*border-right-color:#ffeee2;}
.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:#ccb3b2 #ccb3b2 #ccb3b2 #dddddd;}
.tabs-right .nav-tabs .active>a,.tabs-right .nav-tabs .active>a:hover{border-color:#ddd #ddd #ddd transparent;*border-left-color:#ffeee2;}
.navbar{overflow:visible;margin-bottom:18px;border-bottom:solid 1px #fe9b4e;}
.navbar-inner{padding-left:20px;padding-right:20px;background-color:#330804;background-image:-moz-linear-gradient(top, #300704, #390905);background-image:-ms-linear-gradient(top, #300704, #390905);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#300704), to(#390905));background-image:-webkit-linear-gradient(top, #300704, #390905);background-image:-o-linear-gradient(top, #300704, #390905);background-image:linear-gradient(top, #300704, #390905);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#300704', endColorstr='#390905', GradientType=0);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 -1px 40px rgba(0, 0, 0, 0.9);-moz-box-shadow:inset 0 -1px 40px rgba(0, 0, 0, 0.9);box-shadow:inset 0 -1px 40px rgba(0, 0, 0, 0.9);border-bottom:solid 3px #662d01;}
.btn-navbar{display:none;float:right;padding:7px 10px;margin-left:5px;margin-right:5px;background-color:#290604;background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#300704), color-stop(50%, #300704), to(#0f0106));background-image:-webkit-linear-gradient(#300704, #300704 50%, #0f0106);background-image:-moz-linear-gradient(top, #300704, #300704 50%, #0f0106);background-image:-ms-linear-gradient(#300704, #300704 50%, #0f0106);background-image:-o-linear-gradient(#300704, #300704 50%, #0f0106);background-image:linear-gradient(#300704, #300704 50%, #0f0106);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#300704', endColorstr='#0f0106', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);border-top:solid 1px #8e160c;border-left:solid 1px #5f0e08;border-bottom:solid 1px #000000;border-right:solid 1px #000000;color:#ffeee2;-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);}.btn-navbar:hover,.btn-navbar:active,.btn-navbar.active,.btn-navbar.disabled,.btn-navbar[disabled]{background-color:#390905;}
.btn-navbar:active,.btn-navbar.active{background-color:#0a0201 \9;}
.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;}
.nav-collapse.collapse{height:auto;}
.navbar .brand:hover{text-decoration:none;}
.navbar .brand{float:left;display:block;padding:8px 20px 12px;margin-left:-20px;font-size:20px;font-weight:200;line-height:1;color:#389286;}
.navbar .navbar-text{margin-bottom:0;line-height:40px;color:#ffeee2;}.navbar .navbar-text a:hover{color:#ffeee2;background-color:transparent;}
.navbar .btn,.navbar .btn-group{margin-top:5px;}
.navbar .btn-group .btn{margin-top: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{display:inline-block;margin-top:5px;margin-bottom:0;}
.navbar-form .radio,.navbar-form .checkbox{margin-top:5px;}
.navbar-form input[type="image"],.navbar-form input[type="checkbox"],.navbar-form input[type="radio"]{margin-top:3px;}
.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:#97170d;color:rgba(255, 255, 255, 0.75);background:#666;background:rgba(255, 255, 255, 0.3);border:solid 1px #300704;-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.15),0 1px 0px rgba(255, 255, 255, 0.15);-moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.15),0 1px 0px rgba(255, 255, 255, 0.15);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.15),0 1px 0px 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:#ccb3b2;}
.navbar-search .search-query::-webkit-input-placeholder{color:#ccb3b2;}
.navbar-search .search-query:hover{color:#ffeee2;background-color:#9d7977;background-color:rgba(255, 255, 255, 0.5);}
.navbar-search .search-query:focus,.navbar-search .search-query.focused{padding:5px 10px;color:#542926;text-shadow:0 1px 0 #ffeee2;background-color:#ffeee2;border: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);outline:0;}
.navbar-fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030;}
.navbar-fixed-top .navbar-inner{padding-left:0;padding-right:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius: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{font-size:12pt;float:none;padding:10px;line-height:45px;color:#78201f;text-decoration:none;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);}
.navbar .nav>li>a:hover{background-color:transparent;color:#eeeeee;text-decoration:none;}
.navbar .nav .active>a,.navbar .nav .active>a:hover{color:#eeeeee;text-decoration:none;background-color:#36817b;background-image:-moz-linear-gradient(top, #429e96, #245652);background-image:-ms-linear-gradient(top, #429e96, #245652);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#429e96), to(#245652));background-image:-webkit-linear-gradient(top, #429e96, #245652);background-image:-o-linear-gradient(top, #429e96, #245652);background-image:linear-gradient(top, #429e96, #245652);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#429e96', endColorstr='#245652', GradientType=0);-webkit-box-shadow:inset 0 0 20px 0 rgba(0, 0, 0, 0.9);-moz-box-shadow:inset 0 0 20px 0 rgba(0, 0, 0, 0.9);box-shadow:inset 0 0 20px 0 rgba(0, 0, 0, 0.9);border-left:solid 1px #000000;border-right:solid 1px #3b3636;position:relative;}
.navbar .nav .active{border-bottom:solid 3px #994401;margin-bottom:-3px;}
.navbar .divider-vertical{height:45px;width:1px;margin:0 9px;overflow:hidden;background-color:#390905;border-right:1px solid #300704;}
.navbar .nav.pull-right{margin-left:10px;margin-right:0;}
.navbar .dropdown-menu{margin-top:1px;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}.navbar .dropdown-menu:before{content:'';display:inline-block;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-bottom-color:rgba(0, 0, 0, 0.2);position:absolute;top:-7px;left:9px;}
.navbar .dropdown-menu:after{content:'';display:inline-block;border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #ffeee2;position:absolute;top:-6px;left:10px;}
.navbar .nav .dropdown-toggle .caret,.navbar .nav .open.dropdown .caret{border-top-color:#ffeee2;}
.navbar .nav .active .caret{opacity:1;filter:alpha(opacity=100);}
.navbar .nav .open>.dropdown-toggle,.navbar .nav .active>.dropdown-toggle,.navbar .nav .open.active>.dropdown-toggle{background-color:transparent;}
.navbar .nav .active>.dropdown-toggle:hover{color:#ffeee2;}
.navbar .nav.pull-right .dropdown-menu{left:auto;right:0;}.navbar .nav.pull-right .dropdown-menu:before{left:auto;right:12px;}
.navbar .nav.pull-right .dropdown-menu:after{left:auto;right:13px;}
.subnav{width:100%;height:36px;background:0 -800px url('../img/bg-old.png');-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
.subnav .nav{margin-bottom:0;}
.subnav .nav>li>a{margin:0;-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}
.subnav .nav>.active>a,.subnav .nav>.active>a:hover{padding-left:13px;border-left:0;-webkit-box-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.05);box-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.05);}
.subnav .nav>li:first-child>a,.subnav .nav>li:first-child>a:hover{border-left:0;padding-left:12px;-webkit-border-radius:4px 0 0 4px;-moz-border-radius:4px 0 0 4px;border-radius:4px 0 0 4px;}
.subnav .nav>li:last-child>a{border-right:0;}
.subnav .dropdown-menu{-webkit-border-radius:0 0 4px 4px;-moz-border-radius:0 0 4px 4px;border-radius:0 0 4px 4px;}
@media (min-width:980px){.subnav-fixed{position:fixed;top:69px;left:0;right:0;z-index:1030;margin-top:-1px;padding-bottom:3px;border-top:solid 1px #ba1310;-webkit-border-radius:0px;-moz-border-radius:0px;border-radius:0px;} .subnav-fixed .nav{width:938px;margin:0 auto;padding:0 1px;} .subnav .nav>li:first-child>a,.subnav .nav>li:first-child>a:hover{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;}}.breadcrumb{padding:7px 14px;margin:0 0 18px;background-color:#fbf1e9;background-image:-moz-linear-gradient(top, #ffeee2, #f5f5f5);background-image:-ms-linear-gradient(top, #ffeee2, #f5f5f5);background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ffeee2), to(#f5f5f5));background-image:-webkit-linear-gradient(top, #ffeee2, #f5f5f5);background-image:-o-linear-gradient(top, #ffeee2, #f5f5f5);background-image:linear-gradient(top, #ffeee2, #f5f5f5);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffeee2', endColorstr='#f5f5f5', GradientType=0);border:1px solid #ddd;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 1px 0 #ffeee2;-moz-box-shadow:inset 0 1px 0 #ffeee2;box-shadow:inset 0 1px 0 #ffeee2;}.breadcrumb li{display:inline;text-shadow:0 1px 0 #ffeee2;}
.breadcrumb .divider{padding:0 5px;color:#9d7977;}
.breadcrumb .active a{color:#542926;}
.pagination{height:36px;margin:18px 0;}
.pagination ul{display:inline-block;*display:inline;*zoom:1;margin-left:0;margin-bottom:0;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;-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:#9d7977;cursor:default;}
.pagination .disabled a,.pagination .disabled a:hover{color:#9d7977;background-color:transparent;cursor:default;}
.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-left:0;margin-bottom:18px;list-style:none;text-align:center;*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;}
.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:#390905;}.modal-backdrop.fade{opacity:0;}
.modal-backdrop,.modal-backdrop.fade.in{opacity:0.8;filter:alpha(opacity=80);}
.modal{color:#ffeee2;position:fixed;top:50%;left:50%;z-index:1050;max-height:500px;overflow:auto;width:560px;margin:-250px 0 0 -280px;background-color:none;border:1px solid #390905;border:1px solid rgba(57, 9, 5, 0.30000000000000004);*border:1px solid #390905;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(57, 9, 5, 0.30000000000000004);-moz-box-shadow:0 3px 7px rgba(57, 9, 5, 0.30000000000000004);box-shadow:0 3px 7px rgba(57, 9, 5, 0.30000000000000004);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box;}.modal.fade{-webkit-transition:opacity .3s linear, top .3s ease-out;-moz-transition:opacity .3s linear, top .3s ease-out;-ms-transition:opacity .3s linear, top .3s ease-out;-o-transition:opacity .3s linear, top .3s ease-out;transition:opacity .3s linear, top .3s ease-out;top:-25%;}
.modal.fade.in{top:50%;}
.modal label,.modal h3,.modal form a{color:#ffeee2;}
.modal-header{padding:9px 15px;background-color:rgba(48, 5, 5, 0.75);border-bottom:1px solid modalBorderColor;}.modal-header .close{margin-top:2px;}
.modal-body{padding:15px;background:#390905;border-top:solid 1px #510c07;-webkit-box-shadow:inset 0 0 40px rgba(255, 255, 255, 0.1);-moz-box-shadow:inset 0 0 40px rgba(255, 255, 255, 0.1);box-shadow:inset 0 0 40px rgba(255, 255, 255, 0.1);}
.modal-footer{padding:14px 15px 15px;margin-bottom:0;background-color:rgba(48, 5, 5, 0.75);border-top:solid 1px #510c07;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;*zoom:1;}.modal-footer:before,.modal-footer:after{display:table;content:"";}
.modal-footer:after{clear:both;}
.modal-footer .btn{float:right;margin-left:5px;margin-bottom:0;}
.tooltip{position:absolute;z-index:1020;display:block;visibility:visible;padding:5px;font-size:11px;opacity:0;filter:alpha(opacity=0);}.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-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid #97170d;}
.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 #97170d;}
.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:5px solid #97170d;}
.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-right:5px solid #97170d;}
.tooltip-inner{max-width:200px;padding:3px 8px;color:#ffeee2;text-align:center;text-decoration:none;background-color:#97170d;-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-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid #97170d;}
.popover.right .arrow{top:50%;left:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-right:5px solid #97170d;}
.popover.bottom .arrow{top:0;left:50%;margin-left:-5px;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:5px solid #97170d;}
.popover.left .arrow{top:50%;right:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:5px solid #97170d;}
.popover .arrow{position:absolute;width:0;height:0;}
.popover-inner{padding:3px;width:280px;overflow:hidden;background:#97170d;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:rgba(48, 5, 5, 0.75);color:#ffeee2;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:#ffeee2;-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;color:#ffeee2;}
.thumbnails{margin-left:-20px;list-style:none;*zoom:1;}.thumbnails:before,.thumbnails:after{display:table;content:"";}
.thumbnails:after{clear:both;}
.thumbnails>li{float:left;margin:0 0 18px 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:#eeeeee;-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-left:auto;margin-right:auto;}
.thumbnail .caption{padding:9px;}
.label{padding:1px 3px 2px;font-size:9.75px;font-weight:bold;color:#ffeee2;text-transform:uppercase;background-color:#654a49;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;}
.label-important{background-color:#8b0e0c;}
.label-warning{background-color:#cc5a01;}
.label-success{background-color:#668731;}
.label-info{background-color:#05756b;}
@-webkit-keyframes progress-bar-stripes{from{background-position:0 0;} to{background-position:40px 0;}}@-moz-keyframes progress-bar-stripes{from{background-position:0 0;} to{background-position:40px 0;}}@keyframes progress-bar-stripes{from{background-position:0 0;} to{background-position:40px 0;}}.progress{overflow:hidden;height:18px;margin-bottom:18px;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;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);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}
.progress .bar{width:0%;height:18px;color:#ffeee2;font-size:12px;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:-ms-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-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;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:#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);-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;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);}
.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-inner{padding:9px 15px;border-top:1px solid #e5e5e5;}
.carousel{position:relative;margin-bottom:18px;line-height:1;}
.carousel-inner{overflow:hidden;width:100%;position:relative;}
.carousel .item{display:none;position:relative;-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:#ffeee2;text-align:center;background:#391715;border:3px solid #ffeee2;-webkit-border-radius:23px;-moz-border-radius:23px;border-radius:23px;opacity:0.5;filter:alpha(opacity=50);}.carousel-control.right{left:auto;right:15px;}
.carousel-control:hover{color:#ffeee2;text-decoration:none;opacity:0.9;filter:alpha(opacity=90);}
.carousel-caption{position:absolute;left:0;right:0;bottom:0;padding:10px 15px 5px;background:#542926;background:rgba(0, 0, 0, 0.75);}
.carousel-caption h4,.carousel-caption p{color:#ffeee2;}
.hero-unit{padding:60px;margin-bottom:30px;background-color:rgba(48, 5, 5, 0.25);-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;}
.hero-unit p{font-size:18px;font-weight:200;line-height:27px;}
.pull-right{float:right;}
.pull-left{float:left;}
.hide{display:none;}
.show{display:block;}
.invisible{visibility:hidden;}
h1{padding:10px;}
.well{margin-bottom:0;}
.right-sidebar .well{position:absolute;top:0;width:195px;}
.right-sidebar .well input{width:185px;}
.right-sidebar .well+.well{margin-top:10px;top:224px;bottom:0;min-height:100px;}
::-webkit-scrollbar{width:8px;height:8px;margin:10px;}
::-webkit-scrollbar-thumb{background:#0d0403;-webkit-border-radius:5px;-moz-border-radius:5px;border-radius:5px;}
::-webkit-scrollbar-corner{display:none;}
.code{font-family:'Courier New',monospace;}
#header h1,#header h2{display:inline-block;margin-right:20px;}#header h1 .type,#header h2 .type{font-style:italic;}
#undo-btn{margin:4px;}
#save-status{margin:8px;display:inline-block;}#save-status.inactive{opacity:0.5;}
.full-width-container{width:940px;margin-left:auto;margin-right:auto;*zoom:1;width:auto;}.full-width-container:before,.full-width-container:after{display:table;content:"";}
.full-width-container:after{clear:both;}
.ide-container{position:absolute;top:40px;left:10px;right:10px;bottom:10px;min-width:600px;overflow:auto;}
.ide-container .sidebar{position:absolute;top:0;bottom:0;width:202px;overflow-y:auto;}
.ide-container .right-sidebar{position:absolute;top:0;bottom:0;width:202px;overflow-y:auto;width:250px;right:0;overflow-y:hidden;overflow-x:hidden;border:none;}
.ide-container .component-type-sidebar .component-type-header:hover{background-image:none;}
.ide-container .component-type-sidebar .component-type-list{margin:0;list-style:none;}.ide-container .component-type-sidebar .component-type-list li.component-type-item{width:auto;background:#200200;}.ide-container .component-type-sidebar .component-type-list li.component-type-item:hover{background:#060000;}
li.component-type-item{list-style:none;padding:10px;height:19px;width:180px;background:#060000;margin-bottom:4px;border-radius:3px;cursor:move;}
.header-offset{padding-bottom:38px;}
#resource-list-empty{margin:60px;}
.ide-container .main-area{position:absolute;right:0;top:0;left:260px;bottom:0;}.ide-container .main-area.mid{right:260px;}
.ide-container .main-area.vertical-split .top-panel,.ide-container .main-area.vertical-split .bottom-panel{position:absolute;overflow-y:auto;left:0;right:0;}
.ide-container .main-area.vertical-split .top-panel{top:0;overflow-y:hidden;}
.ide-container .main-area.vertical-split .well{overflow-y:auto;}
.ide-container .main-area.vertical-split .bottom-panel{bottom:0;}
.ide-container .main-area.vertical-split .divider{position:absolute;top:50%;left:0;right:0;height:20px;cursor:ns-resize;}.ide-container .main-area.vertical-split .divider:after{content:'';display:block;margin-top:9px;border-top:#000 2px dotted;}
#current-data .table-container{position:absolute;overflow-y:scroll;top:0;bottom:45px;left:0;right:0;}
#current-data #current-data-querystring{display:block;position:absolute;bottom:0;left:0;right:0;width:auto;background:#390905;}
.split-panel{position:relative;width:50%;float:left;}
#events-panel{margin-left:10px;}
.component-list{position:absolute;top:55px;bottom:21px;left:21px;right:21px;margin:0;list-style:none;overflow-y:auto;padding-bottom:40px;}
.placeholder{padding:10px;border:1px dashed #b90c00;margin-bottom:4px;height:19px;}.placeholder.highlight{border-color:#fff;color:#fff;}
li.component-item{list-style:none;margin-bottom:4px;background:#200200;border-radius:3px;}li.component-item.unsaved{border:1px #530500 dashed;}
li.component-item.active .header{background:#060000;-webkit-border-radius:3px 3px 0px 0px;-moz-border-radius:3px 3px 0px 0px;border-radius:3px 3px 0px 0px;}
li.component-item .header{border-radius:inherit;padding:10px;min-height:19px;cursor:move;}li.component-item .header:hover{background:#060000;}
li.component-item .header input{margin-bottom:0;}
li.component-item .header .tags{margin-right:10px;}
li.component-item .detail{-webkit-border-radius:0px 0px 3px 3px;-moz-border-radius:0px 0px 3px 3px;border-radius:0px 0px 3px 3px;padding:10px;border:1px solid #200200;}
.editor-container{position:relative;height:100px;width:100%;background:#ffffff;}.editor-container .ace_editor{left:0;right:0;top:0;bottom:0;}
table .error-tooltip:hover{text-decoration:none;cursor:pointer;}
table input{margin:0;width:150px;}table input[type=number]{width:75px;}
#file-upload{text-align:center;}
#file-upload input{position:absolute;top:0;right:0;margin:0;border:solid transparent;opacity:0;filter:alpha(opacity=0);-moz-transform:translate(-300px, 0) scale(4);direction:ltr;cursor:pointer;border-width:0 0 100px 200px;}

View File

@@ -9,11 +9,12 @@ module.exports = {
},
boolean: {
defaultName: 'boolean',
type: 'boolean'
type: 'boolean',
default: 'false'
},
date: {
defaultName: 'date',
type: 'string',
format: 'date'
pattern: /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:.\d{1,3})?Z$/
}
};

View File

@@ -4,6 +4,7 @@
var revalidator = require('revalidator')
, isIdentifier = require('./storage').isIdentifier
, propertyTypes = require('./property-types')
;
/**
@@ -49,7 +50,12 @@ module.exports = function (req, res, next) {
if((method === 'POST' || method === 'PUT') && req.body && resource && resource.properties) {
// sanitize data
Object.keys(resource.properties).forEach(function (key) {
sanitized[key] = req.body[key];
if (resource.properties[key].type === 'date' && req.body[key]) {
sanitized[key] = new Date(req.body[key]).toISOString();
} else {
sanitized[key] = req.body[key];
}
})
// validate login separately
@@ -65,9 +71,25 @@ module.exports = function (req, res, next) {
// replace input with sanitized data
req.body = req.data = sanitized;
var revalidatorHash = {};
Object.keys(resource.properties).forEach(function (key) {
if (!(resource.properties[key].optional && req.body[key] == null)) {
var prop = {};
var type = resource.properties[key].type;
Object.keys(propertyTypes[type]).forEach(function(ruleKey) {
prop[ruleKey] = propertyTypes[type][ruleKey];
});
if (!resource.properties[key].optional) {
prop.required = true;
}
revalidatorHash[key] = prop;
}
});
// validate JSON
validation = revalidator.validate(req.body, resource);
validation = revalidator.validate(req.body, {properties: revalidatorHash});
err = validation.valid ? err : transform(validation);
next(err);

View File

@@ -33,20 +33,26 @@ data = {
path: '/todos',
properties: {
title: {
description: "the title of the todo",
type: "string",
required: true
optional: false
},
completed: {
description: "the state of the todo",
type: "boolean",
default: false
optional: true
},
order: {
type: "number",
optional: true
},
dateCompleted: {
type: "date",
optional: true
}
},
onGet: 'this.isGet = true;',
onDelete: '' +
'if(this.title === "dont delete") {' +
' return false;' +
' cancel("dont delete");' +
'}',
onPut: 'this.isPut = true;',
onPost: 'this.isPost = true;',

View File

@@ -21,6 +21,30 @@ describe('Resource Actions', function(){
done();
})
})
it('should post a date in a standard format', function(done) {
todos.post({title: 'foo', dateCompleted: '12/12/12'}, function(err, todo, req, res) {
expect(err).to.not.exist;
expect(new Date(todo.dateCompleted) - new Date('12/12/12')).to.equal(0);
done(err);
});
});
it('should return an error for an invalid date', function(done) {
todos.post({title: 'foo', dateCompleted: 'bad date'}, function(err, todo, req, res) {
expect(err).to.exist;
expect(err.errors.dateCompleted).to.exist;
done();
});
});
it('should accept null as a value for an optional property', function(done) {
todos.post({title: 'foo', order: null}, function(err, todo, req, res) {
expect(err).to.not.exist;
expect(todo.order).to.not.be.ok
done(err);
});
});
it('should ignore properties outside the schema', function(done) {
todos.post({title: 'foo', bat: 'baz'}, function (err, todo, req, res) {