From 974db6b78caff6cf98f127a21dbccd02ed2154b9 Mon Sep 17 00:00:00 2001 From: Luigi Pinca Date: Thu, 16 Feb 2012 18:34:36 +0100 Subject: [PATCH] first commit --- .gitignore | 3 + config.js | 8 + index.html | 107 ++++++ package.json | 16 + public/static/css/bootstrap.min.css | 356 +++++++++++++++++++ public/static/css/style.css | 271 ++++++++++++++ public/static/images/bg.jpg | Bin 0 -> 2714 bytes public/static/images/cassette.png | Bin 0 -> 9623 bytes public/static/images/itunes.png | Bin 0 -> 2632 bytes public/static/images/sprites.png | Bin 0 -> 5310 bytes public/static/images/wheel.png | Bin 0 -> 1017 bytes public/static/js/bootstrap-modal.js | 260 ++++++++++++++ public/static/js/client.js | 470 +++++++++++++++++++++++++ public/static/js/jquery.jplayer.min.js | 97 +++++ public/static/js/jquery.min.js | 4 + public/static/swf/Jplayer.swf | Bin 0 -> 8452 bytes server.js | 384 ++++++++++++++++++++ 17 files changed, 1976 insertions(+) create mode 100644 .gitignore create mode 100644 config.js create mode 100644 index.html create mode 100644 package.json create mode 100644 public/static/css/bootstrap.min.css create mode 100644 public/static/css/style.css create mode 100644 public/static/images/bg.jpg create mode 100644 public/static/images/cassette.png create mode 100644 public/static/images/itunes.png create mode 100644 public/static/images/sprites.png create mode 100644 public/static/images/wheel.png create mode 100644 public/static/js/bootstrap-modal.js create mode 100644 public/static/js/client.js create mode 100644 public/static/js/jquery.jplayer.min.js create mode 100644 public/static/js/jquery.min.js create mode 100644 public/static/swf/Jplayer.swf create mode 100644 server.js diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..bf79e26 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +.npmignore +node_modules/ +db/ diff --git a/config.js b/config.js new file mode 100644 index 0000000..e288666 --- /dev/null +++ b/config.js @@ -0,0 +1,8 @@ +/* The Base Configuration file */ + +exports.configure = function() { + this.port = 80; + this.redisurl = ''; + this.songsinarun = 15; + return this; +}; diff --git a/index.html b/index.html new file mode 100644 index 0000000..a4bb050 --- /dev/null +++ b/index.html @@ -0,0 +1,107 @@ + + + + Binb + + + + + + + + + + + +
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ +
+
+
Rank
+
+
+
+
Points
+
+
+
+
Track
+
+
+
+

Waiting for connection...

+ +
+
+
+
+
+
+
    +
    +
    +
    +
    +
    +
      +
      +
      + +
      +
        +
        +
        +
        +
        I do not own any right on the songs that are played here.
        +
        Tracks are played using iTunes api preview.
        +
        Original idea from beatquest.fm.
        +
        +
        + +
        + + diff --git a/package.json b/package.json new file mode 100644 index 0000000..8f4c847 --- /dev/null +++ b/package.json @@ -0,0 +1,16 @@ +{ + "name": "binb", + "dependencies": { + "express": "latest", + "socket.io": "latest", + "redis-url": "latest" + }, + "subdomain": "binb", + "scripts": { + "start": "server.js" + }, + "engine": { + "node": "0.6.x" + }, + "version": "0.1.1" +} diff --git a/public/static/css/bootstrap.min.css b/public/static/css/bootstrap.min.css new file mode 100644 index 0000000..617c87f --- /dev/null +++ b/public/static/css/bootstrap.min.css @@ -0,0 +1,356 @@ +html,body{margin:0;padding:0;} +h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,cite,code,del,dfn,em,img,q,s,samp,small,strike,strong,sub,sup,tt,var,dd,dl,dt,li,ol,ul,fieldset,form,label,legend,button,table,caption,tbody,tfoot,thead,tr,th,td{margin:0;padding:0;border:0;font-weight:normal;font-style:normal;font-size:100%;line-height:1;font-family:inherit;} +table{border-collapse:collapse;border-spacing:0;} +ol,ul{list-style:none;} +q:before,q:after,blockquote:before,blockquote:after{content:"";} +html{overflow-y:scroll;font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;} +a:focus{outline:thin dotted;} +a:hover,a:active{outline:0;} +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;} +sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline;} +sup{top:-0.5em;} +sub{bottom:-0.25em;} +img{border:0;-ms-interpolation-mode:bicubic;} +button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle;} +button,input{line-height:normal;*overflow:visible;} +button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding: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{-webkit-appearance:none;} +textarea{overflow:auto;vertical-align:top;} +body{background-color:#ffffff;margin:0;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:18px;color:#404040;} +.container{width:940px;margin-left:auto;margin-right:auto;zoom:1;}.container:before,.container:after{display:table;content:"";zoom:1;} +.container:after{clear:both;} +.container-fluid{position:relative;min-width:940px;padding-left:20px;padding-right:20px;zoom:1;}.container-fluid:before,.container-fluid:after{display:table;content:"";zoom:1;} +.container-fluid:after{clear:both;} +.container-fluid>.sidebar{position:absolute;top:0;left:20px;width:220px;} +.container-fluid>.content{margin-left:240px;} +a{color:#0069d6;text-decoration:none;line-height:inherit;font-weight:inherit;}a:hover{color:#00438a;text-decoration:underline;} +.pull-right{float:right;} +.pull-left{float:left;} +.hide{display:none;} +.show{display:block;} +.row{zoom:1;margin-left:-20px;}.row:before,.row:after{display:table;content:"";zoom:1;} +.row:after{clear:both;} +.row>[class*="span"]{display:inline;float:left;margin-left:20px;} +.span1{width:40px;} +.span2{width:100px;} +.span3{width:160px;} +.span4{width:220px;} +.span5{width:280px;} +.span6{width:340px;} +.span7{width:400px;} +.span8{width:460px;} +.span9{width:520px;} +.span10{width:580px;} +.span11{width:640px;} +.span12{width:700px;} +.span13{width:760px;} +.span14{width:820px;} +.span15{width:880px;} +.span16{width:940px;} +.span17{width:1000px;} +.span18{width:1060px;} +.span19{width:1120px;} +.span20{width:1180px;} +.span21{width:1240px;} +.span22{width:1300px;} +.span23{width:1360px;} +.span24{width:1420px;} +.row>.offset1{margin-left:80px;} +.row>.offset2{margin-left:140px;} +.row>.offset3{margin-left:200px;} +.row>.offset4{margin-left:260px;} +.row>.offset5{margin-left:320px;} +.row>.offset6{margin-left:380px;} +.row>.offset7{margin-left:440px;} +.row>.offset8{margin-left:500px;} +.row>.offset9{margin-left:560px;} +.row>.offset10{margin-left:620px;} +.row>.offset11{margin-left:680px;} +.row>.offset12{margin-left:740px;} +.span-one-third{width:300px;} +.span-two-thirds{width:620px;} +.row>.offset-one-third{margin-left:340px;} +.row>.offset-two-thirds{margin-left:660px;} +p{font-size:13px;font-weight:normal;line-height:18px;margin-bottom:9px;}p small{font-size:11px;color:#bfbfbf;} +h1,h2,h3,h4,h5,h6{font-weight:bold;color:#404040;}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{color:#bfbfbf;} +h1{margin-bottom:18px;font-size:30px;line-height:36px;}h1 small{font-size:18px;} +h2{font-size:24px;line-height:36px;}h2 small{font-size:14px;} +h3,h4,h5,h6{line-height:36px;} +h3{font-size:18px;}h3 small{font-size:14px;} +h4{font-size:16px;}h4 small{font-size:12px;} +h5{font-size:14px;} +h6{font-size:13px;color:#bfbfbf;text-transform:uppercase;} +ul,ol{margin:0 0 18px 25px;} +ul ul,ul ol,ol ol,ol ul{margin-bottom:0;} +ul{list-style:disc;} +ol{list-style:decimal;} +li{line-height:18px;color:#808080;} +ul.unstyled{list-style:none;margin-left:0;} +dl{margin-bottom:18px;}dl dt,dl dd{line-height:18px;} +dl dt{font-weight:bold;} +dl dd{margin-left:9px;} +hr{margin:20px 0 19px;border:0;border-bottom:1px solid #eee;} +strong{font-style:inherit;font-weight:bold;} +em{font-style:italic;font-weight:inherit;line-height:inherit;} +.muted{color:#bfbfbf;} +blockquote{margin-bottom:18px;border-left:5px solid #eee;padding-left:15px;}blockquote p{font-size:14px;font-weight:300;line-height:18px;margin-bottom:0;} +blockquote small{display:block;font-size:12px;font-weight:300;line-height:18px;color:#bfbfbf;}blockquote small:before{content:'\2014 \00A0';} +address{display:block;line-height:18px;margin-bottom:18px;} +code,pre{padding:0 3px 2px;font-family:Monaco, Andale Mono, Courier New, monospace;font-size:12px;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;} +code{background-color:#fee9cc;color:rgba(0, 0, 0, 0.75);padding:1px 3px;} +pre{background-color:#f5f5f5;display:block;padding:8.5px;margin:0 0 18px;line-height:18px;font-size:12px;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.15);-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;white-space:pre;white-space:pre-wrap;word-wrap:break-word;} +form{margin-bottom:18px;} +fieldset{margin-bottom:18px;padding-top:18px;}fieldset legend{display:block;padding-left:150px;font-size:19.5px;line-height:1;color:#404040;*padding:0 0 5px 145px;*line-height:1.5;} +form .clearfix{margin-bottom:18px;zoom:1;}form .clearfix:before,form .clearfix:after{display:table;content:"";zoom:1;} +form .clearfix:after{clear:both;} +label,input,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;font-weight:normal;line-height:normal;} +label{padding-top:6px;font-size:13px;line-height:18px;float:left;width:130px;text-align:right;color:#404040;} +form .input{margin-left:150px;} +input[type=checkbox],input[type=radio]{cursor:pointer;} +input,textarea,select,.uneditable-input{display:inline-block;width:210px;height:18px;padding:4px;font-size:13px;line-height:18px;color:#808080;border:1px solid #ccc;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;} +select{padding:initial;} +input[type=checkbox],input[type=radio]{width:auto;height:auto;padding:0;margin:3px 0;*margin-top:0;line-height:normal;border:none;} +input[type=file]{background-color:#ffffff;padding:initial;border:initial;line-height: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:27px;*height:auto;line-height:27px;*margin-top:4px;} +select[multiple]{height:inherit;background-color:#ffffff;} +textarea{height:auto;} +.uneditable-input{background-color:#ffffff;display:block;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:#bfbfbf;} +::-webkit-input-placeholder{color:#bfbfbf;} +input,textarea{-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;-webkit-box-shadow:inset 0 1px 3px rgba(0, 0, 0, 0.1);-moz-box-shadow:inset 0 1px 3px rgba(0, 0, 0, 0.1);box-shadow:inset 0 1px 3px rgba(0, 0, 0, 0.1);} +input:focus,textarea:focus{outline:0;border-color:rgba(82, 168, 236, 0.8);-webkit-box-shadow:inset 0 1px 3px rgba(0, 0, 0, 0.1),0 0 8px rgba(82, 168, 236, 0.6);-moz-box-shadow:inset 0 1px 3px rgba(0, 0, 0, 0.1),0 0 8px rgba(82, 168, 236, 0.6);box-shadow:inset 0 1px 3px rgba(0, 0, 0, 0.1),0 0 8px rgba(82, 168, 236, 0.6);} +input[type=file]:focus,input[type=checkbox]:focus,select:focus{-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;outline:1px dotted #666;} +form .clearfix.error>label,form .clearfix.error .help-block,form .clearfix.error .help-inline{color:#b94a48;} +form .clearfix.error input,form .clearfix.error textarea{color:#b94a48;border-color:#ee5f5b;}form .clearfix.error input:focus,form .clearfix.error textarea:focus{border-color:#e9322d;-webkit-box-shadow:0 0 6px #f8b9b7;-moz-box-shadow:0 0 6px #f8b9b7;box-shadow:0 0 6px #f8b9b7;} +form .clearfix.error .input-prepend .add-on,form .clearfix.error .input-append .add-on{color:#b94a48;background-color:#fce6e6;border-color:#b94a48;} +form .clearfix.warning>label,form .clearfix.warning .help-block,form .clearfix.warning .help-inline{color:#c09853;} +form .clearfix.warning input,form .clearfix.warning textarea{color:#c09853;border-color:#ccae64;}form .clearfix.warning input:focus,form .clearfix.warning textarea:focus{border-color:#be9a3f;-webkit-box-shadow:0 0 6px #e5d6b1;-moz-box-shadow:0 0 6px #e5d6b1;box-shadow:0 0 6px #e5d6b1;} +form .clearfix.warning .input-prepend .add-on,form .clearfix.warning .input-append .add-on{color:#c09853;background-color:#d2b877;border-color:#c09853;} +form .clearfix.success>label,form .clearfix.success .help-block,form .clearfix.success .help-inline{color:#468847;} +form .clearfix.success input,form .clearfix.success textarea{color:#468847;border-color:#57a957;}form .clearfix.success input:focus,form .clearfix.success textarea:focus{border-color:#458845;-webkit-box-shadow:0 0 6px #9acc9a;-moz-box-shadow:0 0 6px #9acc9a;box-shadow:0 0 6px #9acc9a;} +form .clearfix.success .input-prepend .add-on,form .clearfix.success .input-append .add-on{color:#468847;background-color:#bcddbc;border-color:#468847;} +.input-mini,input.mini,textarea.mini,select.mini{width:60px;} +.input-small,input.small,textarea.small,select.small{width:90px;} +.input-medium,input.medium,textarea.medium,select.medium{width:150px;} +.input-large,input.large,textarea.large,select.large{width:210px;} +.input-xlarge,input.xlarge,textarea.xlarge,select.xlarge{width:270px;} +.input-xxlarge,input.xxlarge,textarea.xxlarge,select.xxlarge{width:530px;} +textarea.xxlarge{overflow-y:auto;} +input.span1,textarea.span1{display:inline-block;float:none;width:30px;margin-left:0;} +input.span2,textarea.span2{display:inline-block;float:none;width:90px;margin-left:0;} +input.span3,textarea.span3{display:inline-block;float:none;width:150px;margin-left:0;} +input.span4,textarea.span4{display:inline-block;float:none;width:210px;margin-left:0;} +input.span5,textarea.span5{display:inline-block;float:none;width:270px;margin-left:0;} +input.span6,textarea.span6{display:inline-block;float:none;width:330px;margin-left:0;} +input.span7,textarea.span7{display:inline-block;float:none;width:390px;margin-left:0;} +input.span8,textarea.span8{display:inline-block;float:none;width:450px;margin-left:0;} +input.span9,textarea.span9{display:inline-block;float:none;width:510px;margin-left:0;} +input.span10,textarea.span10{display:inline-block;float:none;width:570px;margin-left:0;} +input.span11,textarea.span11{display:inline-block;float:none;width:630px;margin-left:0;} +input.span12,textarea.span12{display:inline-block;float:none;width:690px;margin-left:0;} +input.span13,textarea.span13{display:inline-block;float:none;width:750px;margin-left:0;} +input.span14,textarea.span14{display:inline-block;float:none;width:810px;margin-left:0;} +input.span15,textarea.span15{display:inline-block;float:none;width:870px;margin-left:0;} +input.span16,textarea.span16{display:inline-block;float:none;width:930px;margin-left:0;} +input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{background-color:#f5f5f5;border-color:#ddd;cursor:not-allowed;} +.actions{background:#f5f5f5;margin-top:18px;margin-bottom:18px;padding:17px 20px 18px 150px;border-top:1px solid #ddd;-webkit-border-radius:0 0 3px 3px;-moz-border-radius:0 0 3px 3px;border-radius:0 0 3px 3px;}.actions .secondary-action{float:right;}.actions .secondary-action a{line-height:30px;}.actions .secondary-action a:hover{text-decoration:underline;} +.help-inline,.help-block{font-size:13px;line-height:18px;color:#bfbfbf;} +.help-inline{padding-left:5px;*position:relative;*top:-5px;} +.help-block{display:block;max-width:600px;} +.inline-inputs{color:#808080;}.inline-inputs span{padding:0 2px 0 1px;} +.input-prepend input,.input-append input{-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0;} +.input-prepend .add-on,.input-append .add-on{position:relative;background:#f5f5f5;border:1px solid #ccc;z-index:2;float:left;display:block;width:auto;min-width:16px;height:18px;padding:4px 4px 4px 5px;margin-right:-1px;font-weight:normal;line-height:18px;color:#bfbfbf;text-align:center;text-shadow:0 1px 0 #ffffff;-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:#a9dba9;border-color:#46a546;} +.input-prepend .add-on{*margin-top:1px;} +.input-append 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 .add-on{-webkit-border-radius:0 3px 3px 0;-moz-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0;margin-right:0;margin-left:-1px;} +.inputs-list{margin:0 0 5px;width:100%;}.inputs-list li{display:block;padding:0;width:100%;} +.inputs-list label{display:block;float:none;width:auto;padding:0;margin-left:20px;line-height:18px;text-align:left;white-space:normal;}.inputs-list label strong{color:#808080;} +.inputs-list label small{font-size:11px;font-weight:normal;} +.inputs-list .inputs-list{margin-left:25px;margin-bottom:10px;padding-top:0;} +.inputs-list:first-child{padding-top:6px;} +.inputs-list li+li{padding-top:2px;} +.inputs-list input[type=radio],.inputs-list input[type=checkbox]{margin-bottom:0;margin-left:-20px;float:left;} +.form-stacked{padding-left:20px;}.form-stacked fieldset{padding-top:9px;} +.form-stacked legend{padding-left:0;} +.form-stacked label{display:block;float:none;width:auto;font-weight:bold;text-align:left;line-height:20px;padding-top:0;} +.form-stacked .clearfix{margin-bottom:9px;}.form-stacked .clearfix div.input{margin-left:0;} +.form-stacked .inputs-list{margin-bottom:0;}.form-stacked .inputs-list li{padding-top:0;}.form-stacked .inputs-list li label{font-weight:normal;padding-top:0;} +.form-stacked div.clearfix.error{padding-top:10px;padding-bottom:10px;padding-left:10px;margin-top:0;margin-left:-10px;} +.form-stacked .actions{margin-left:-20px;padding-left:20px;} +table{width:100%;margin-bottom:18px;padding:0;font-size:13px;border-collapse:collapse;}table th,table td{padding:10px 10px 9px;line-height:18px;text-align:left;} +table th{padding-top:9px;font-weight:bold;vertical-align:middle;} +table td{vertical-align:top;border-top:1px solid #ddd;} +table tbody th{border-top:1px solid #ddd;vertical-align:top;} +.condensed-table th,.condensed-table td{padding:5px 5px 4px;} +.bordered-table{border:1px solid #ddd;border-collapse:separate;*border-collapse:collapse;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;}.bordered-table th+th,.bordered-table td+td,.bordered-table th+td{border-left:1px solid #ddd;} +.bordered-table thead tr:first-child th:first-child,.bordered-table tbody 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;} +.bordered-table thead tr:first-child th:last-child,.bordered-table tbody 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;} +.bordered-table tbody 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;} +.bordered-table tbody 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 .span1{width:20px;} +table .span2{width:60px;} +table .span3{width:100px;} +table .span4{width:140px;} +table .span5{width:180px;} +table .span6{width:220px;} +table .span7{width:260px;} +table .span8{width:300px;} +table .span9{width:340px;} +table .span10{width:380px;} +table .span11{width:420px;} +table .span12{width:460px;} +table .span13{width:500px;} +table .span14{width:540px;} +table .span15{width:580px;} +table .span16{width:620px;} +.zebra-striped tbody tr:nth-child(odd) td,.zebra-striped tbody tr:nth-child(odd) th{background-color:#f9f9f9;} +.zebra-striped tbody tr:hover td,.zebra-striped tbody tr:hover th{background-color:#f5f5f5;} +table .header{cursor:pointer;}table .header:after{content:"";float:right;margin-top:7px;border-width:0 4px 4px;border-style:solid;border-color:#000 transparent;visibility:hidden;} +table .headerSortUp,table .headerSortDown{background-color:rgba(141, 192, 219, 0.25);text-shadow:0 1px 1px rgba(255, 255, 255, 0.75);} +table .header:hover:after{visibility:visible;} +table .headerSortDown:after,table .headerSortDown:hover:after{visibility:visible;filter:alpha(opacity=60);-khtml-opacity:0.6;-moz-opacity:0.6;opacity:0.6;} +table .headerSortUp:after{border-bottom:none;border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid #000;visibility:visible;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;filter:alpha(opacity=60);-khtml-opacity:0.6;-moz-opacity:0.6;opacity:0.6;} +table .blue{color:#049cdb;border-bottom-color:#049cdb;} +table .headerSortUp.blue,table .headerSortDown.blue{background-color:#ade6fe;} +table .green{color:#46a546;border-bottom-color:#46a546;} +table .headerSortUp.green,table .headerSortDown.green{background-color:#cdeacd;} +table .red{color:#9d261d;border-bottom-color:#9d261d;} +table .headerSortUp.red,table .headerSortDown.red{background-color:#f4c8c5;} +table .yellow{color:#ffc40d;border-bottom-color:#ffc40d;} +table .headerSortUp.yellow,table .headerSortDown.yellow{background-color:#fff6d9;} +table .orange{color:#f89406;border-bottom-color:#f89406;} +table .headerSortUp.orange,table .headerSortDown.orange{background-color:#fee9cc;} +table .purple{color:#7a43b6;border-bottom-color:#7a43b6;} +table .headerSortUp.purple,table .headerSortDown.purple{background-color:#e2d5f0;} +.topbar{height:40px;position:fixed;top:0;left:0;right:0;z-index:10000;overflow:visible;}.topbar a{color:#bfbfbf;text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);} +.topbar h3 a:hover,.topbar .brand:hover,.topbar ul .active>a{background-color:#333;background-color:rgba(255, 255, 255, 0.05);color:#ffffff;text-decoration:none;} +.topbar h3{position:relative;} +.topbar h3 a,.topbar .brand{float:left;display:block;padding:8px 20px 12px;margin-left:-20px;color:#ffffff;font-size:20px;font-weight:200;line-height:1;} +.topbar p{margin:0;line-height:40px;}.topbar p a:hover{background-color:transparent;color:#ffffff;} +.topbar form{float:left;margin:5px 0 0 0;position:relative;filter:alpha(opacity=100);-khtml-opacity:1;-moz-opacity:1;opacity:1;} +.topbar form.pull-right{float:right;} +.topbar input{background-color:#444;background-color:rgba(255, 255, 255, 0.3);font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:normal;font-weight:13px;line-height:1;padding:4px 9px;color:#ffffff;color:rgba(255, 255, 255, 0.75);border:1px solid #111;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1),0 1px 0px rgba(255, 255, 255, 0.25);-moz-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1),0 1px 0px rgba(255, 255, 255, 0.25);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1),0 1px 0px rgba(255, 255, 255, 0.25);-webkit-transition:none;-moz-transition:none;-ms-transition:none;-o-transition:none;transition:none;}.topbar input:-moz-placeholder{color:#e6e6e6;} +.topbar input::-webkit-input-placeholder{color:#e6e6e6;} +.topbar input:hover{background-color:#bfbfbf;background-color:rgba(255, 255, 255, 0.5);color:#ffffff;} +.topbar input:focus,.topbar input.focused{outline:0;background-color:#ffffff;color:#404040;text-shadow:0 1px 0 #ffffff;border:0;padding:5px 10px;-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);} +.topbar-inner,.topbar .fill{background-color:#222;background-color:#222222;background-repeat:repeat-x;background-image:-khtml-gradient(linear, left top, left bottom, from(#333333), to(#222222));background-image:-moz-linear-gradient(top, #333333, #222222);background-image:-ms-linear-gradient(top, #333333, #222222);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #333333), color-stop(100%, #222222));background-image:-webkit-linear-gradient(top, #333333, #222222);background-image:-o-linear-gradient(top, #333333, #222222);background-image:linear-gradient(top, #333333, #222222);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0);-webkit-box-shadow:0 1px 3px rgba(0, 0, 0, 0.25),inset 0 -1px 0 rgba(0, 0, 0, 0.1);-moz-box-shadow:0 1px 3px rgba(0, 0, 0, 0.25),inset 0 -1px 0 rgba(0, 0, 0, 0.1);box-shadow:0 1px 3px rgba(0, 0, 0, 0.25),inset 0 -1px 0 rgba(0, 0, 0, 0.1);} +.topbar div>ul,.nav{display:block;float:left;margin:0 10px 0 0;position:relative;left:0;}.topbar div>ul>li,.nav>li{display:block;float:left;} +.topbar div>ul a,.nav a{display:block;float:none;padding:10px 10px 11px;line-height:19px;text-decoration:none;}.topbar div>ul a:hover,.nav a:hover{color:#ffffff;text-decoration:none;} +.topbar div>ul .active>a,.nav .active>a{background-color:#222;background-color:rgba(0, 0, 0, 0.5);} +.topbar div>ul.secondary-nav,.nav.secondary-nav{float:right;margin-left:10px;margin-right:0;}.topbar div>ul.secondary-nav .menu-dropdown,.nav.secondary-nav .menu-dropdown,.topbar div>ul.secondary-nav .dropdown-menu,.nav.secondary-nav .dropdown-menu{right:0;border:0;} +.topbar div>ul a.menu:hover,.nav a.menu:hover,.topbar div>ul li.open .menu,.nav li.open .menu,.topbar div>ul .dropdown-toggle:hover,.nav .dropdown-toggle:hover,.topbar div>ul .dropdown.open .dropdown-toggle,.nav .dropdown.open .dropdown-toggle{background:#444;background:rgba(255, 255, 255, 0.05);} +.topbar div>ul .menu-dropdown,.nav .menu-dropdown,.topbar div>ul .dropdown-menu,.nav .dropdown-menu{background-color:#333;}.topbar div>ul .menu-dropdown a.menu,.nav .menu-dropdown a.menu,.topbar div>ul .dropdown-menu a.menu,.nav .dropdown-menu a.menu,.topbar div>ul .menu-dropdown .dropdown-toggle,.nav .menu-dropdown .dropdown-toggle,.topbar div>ul .dropdown-menu .dropdown-toggle,.nav .dropdown-menu .dropdown-toggle{color:#ffffff;}.topbar div>ul .menu-dropdown a.menu.open,.nav .menu-dropdown a.menu.open,.topbar div>ul .dropdown-menu a.menu.open,.nav .dropdown-menu a.menu.open,.topbar div>ul .menu-dropdown .dropdown-toggle.open,.nav .menu-dropdown .dropdown-toggle.open,.topbar div>ul .dropdown-menu .dropdown-toggle.open,.nav .dropdown-menu .dropdown-toggle.open{background:#444;background:rgba(255, 255, 255, 0.05);} +.topbar div>ul .menu-dropdown li a,.nav .menu-dropdown li a,.topbar div>ul .dropdown-menu li a,.nav .dropdown-menu li a{color:#999;text-shadow:0 1px 0 rgba(0, 0, 0, 0.5);}.topbar div>ul .menu-dropdown li a:hover,.nav .menu-dropdown li a:hover,.topbar div>ul .dropdown-menu li a:hover,.nav .dropdown-menu li a:hover{background-color:#191919;background-repeat:repeat-x;background-image:-khtml-gradient(linear, left top, left bottom, from(#292929), to(#191919));background-image:-moz-linear-gradient(top, #292929, #191919);background-image:-ms-linear-gradient(top, #292929, #191919);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #292929), color-stop(100%, #191919));background-image:-webkit-linear-gradient(top, #292929, #191919);background-image:-o-linear-gradient(top, #292929, #191919);background-image:linear-gradient(top, #292929, #191919);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#292929', endColorstr='#191919', GradientType=0);color:#ffffff;} +.topbar div>ul .menu-dropdown .active a,.nav .menu-dropdown .active a,.topbar div>ul .dropdown-menu .active a,.nav .dropdown-menu .active a{color:#ffffff;} +.topbar div>ul .menu-dropdown .divider,.nav .menu-dropdown .divider,.topbar div>ul .dropdown-menu .divider,.nav .dropdown-menu .divider{background-color:#222;border-color:#444;} +.topbar ul .menu-dropdown li a,.topbar ul .dropdown-menu li a{padding:4px 15px;} +li.menu,.dropdown{position:relative;} +a.menu:after,.dropdown-toggle:after{width:0;height:0;display:inline-block;content:"↓";text-indent:-99999px;vertical-align:top;margin-top:8px;margin-left:4px;border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid #ffffff;filter:alpha(opacity=50);-khtml-opacity:0.5;-moz-opacity:0.5;opacity:0.5;} +.menu-dropdown,.dropdown-menu{background-color:#ffffff;float:left;display:none;position:absolute;top:40px;z-index:900;min-width:160px;max-width:220px;_width:160px;margin-left:0;margin-right:0;padding:6px 0;zoom:1;border-color:#999;border-color:rgba(0, 0, 0, 0.2);border-style:solid;border-width:0 1px 1px;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;-webkit-box-shadow:0 2px 4px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 2px 4px rgba(0, 0, 0, 0.2);box-shadow:0 2px 4px rgba(0, 0, 0, 0.2);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box;}.menu-dropdown li,.dropdown-menu li{float:none;display:block;background-color:none;} +.menu-dropdown .divider,.dropdown-menu .divider{height:1px;margin:5px 0;overflow:hidden;background-color:#eee;border-bottom:1px solid #ffffff;} +.topbar .dropdown-menu a,.dropdown-menu a{display:block;padding:4px 15px;clear:both;font-weight:normal;line-height:18px;color:#808080;text-shadow:0 1px 0 #ffffff;}.topbar .dropdown-menu a:hover,.dropdown-menu a:hover,.topbar .dropdown-menu a.hover,.dropdown-menu a.hover{background-color:#dddddd;background-repeat:repeat-x;background-image:-khtml-gradient(linear, left top, left bottom, from(#eeeeee), to(#dddddd));background-image:-moz-linear-gradient(top, #eeeeee, #dddddd);background-image:-ms-linear-gradient(top, #eeeeee, #dddddd);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #eeeeee), color-stop(100%, #dddddd));background-image:-webkit-linear-gradient(top, #eeeeee, #dddddd);background-image:-o-linear-gradient(top, #eeeeee, #dddddd);background-image:linear-gradient(top, #eeeeee, #dddddd);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#eeeeee', endColorstr='#dddddd', GradientType=0);color:#404040;text-decoration:none;-webkit-box-shadow:inset 0 1px 0 rgba(0, 0, 0, 0.025),inset 0 -1px rgba(0, 0, 0, 0.025);-moz-box-shadow:inset 0 1px 0 rgba(0, 0, 0, 0.025),inset 0 -1px rgba(0, 0, 0, 0.025);box-shadow:inset 0 1px 0 rgba(0, 0, 0, 0.025),inset 0 -1px rgba(0, 0, 0, 0.025);} +.open .menu,.dropdown.open .menu,.open .dropdown-toggle,.dropdown.open .dropdown-toggle{color:#ffffff;background:#ccc;background:rgba(0, 0, 0, 0.3);} +.open .menu-dropdown,.dropdown.open .menu-dropdown,.open .dropdown-menu,.dropdown.open .dropdown-menu{display:block;} +.tabs,.pills{margin:0 0 18px;padding:0;list-style:none;zoom:1;}.tabs:before,.pills:before,.tabs:after,.pills:after{display:table;content:"";zoom:1;} +.tabs:after,.pills:after{clear:both;} +.tabs>li,.pills>li{float:left;}.tabs>li>a,.pills>li>a{display:block;} +.tabs{border-color:#ddd;border-style:solid;border-width:0 0 1px;}.tabs>li{position:relative;margin-bottom:-1px;}.tabs>li>a{padding:0 15px;margin-right:2px;line-height:34px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0;}.tabs>li>a:hover{text-decoration:none;background-color:#eee;border-color:#eee #eee #ddd;} +.tabs .active>a,.tabs .active>a:hover{color:#808080;background-color:#ffffff;border:1px solid #ddd;border-bottom-color:transparent;cursor:default;} +.tabs .menu-dropdown,.tabs .dropdown-menu{top:35px;border-width:1px;-webkit-border-radius:0 6px 6px 6px;-moz-border-radius:0 6px 6px 6px;border-radius:0 6px 6px 6px;} +.tabs a.menu:after,.tabs .dropdown-toggle:after{border-top-color:#999;margin-top:15px;margin-left:5px;} +.tabs li.open.menu .menu,.tabs .open.dropdown .dropdown-toggle{border-color:#999;} +.tabs li.open a.menu:after,.tabs .dropdown.open .dropdown-toggle:after{border-top-color:#555;} +.pills a{margin:5px 3px 5px 0;padding:0 15px;line-height:30px;text-shadow:0 1px 1px #ffffff;-webkit-border-radius:15px;-moz-border-radius:15px;border-radius:15px;}.pills a:hover{color:#ffffff;text-decoration:none;text-shadow:0 1px 1px rgba(0, 0, 0, 0.25);background-color:#00438a;} +.pills .active a{color:#ffffff;text-shadow:0 1px 1px rgba(0, 0, 0, 0.25);background-color:#0069d6;} +.pills-vertical>li{float:none;} +.tab-content>.tab-pane,.pill-content>.pill-pane,.tab-content>div,.pill-content>div{display:none;} +.tab-content>.active,.pill-content>.active{display:block;} +.breadcrumb{padding:7px 14px;margin:0 0 18px;background-color:#f5f5f5;background-repeat:repeat-x;background-image:-khtml-gradient(linear, left top, left bottom, from(#ffffff), to(#f5f5f5));background-image:-moz-linear-gradient(top, #ffffff, #f5f5f5);background-image:-ms-linear-gradient(top, #ffffff, #f5f5f5);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #ffffff), color-stop(100%, #f5f5f5));background-image:-webkit-linear-gradient(top, #ffffff, #f5f5f5);background-image:-o-linear-gradient(top, #ffffff, #f5f5f5);background-image:linear-gradient(top, #ffffff, #f5f5f5);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', 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 #ffffff;-moz-box-shadow:inset 0 1px 0 #ffffff;box-shadow:inset 0 1px 0 #ffffff;}.breadcrumb li{display:inline;text-shadow:0 1px 0 #ffffff;} +.breadcrumb .divider{padding:0 5px;color:#bfbfbf;} +.breadcrumb .active a{color:#404040;} +.hero-unit{background-color:#f5f5f5;margin-bottom:30px;padding:60px;-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;} +footer{margin-top:17px;padding-top:17px;border-top:1px solid #eee;} +.page-header{margin-bottom:17px;border-bottom:1px solid #ddd;-webkit-box-shadow:0 1px 0 rgba(255, 255, 255, 0.5);-moz-box-shadow:0 1px 0 rgba(255, 255, 255, 0.5);box-shadow:0 1px 0 rgba(255, 255, 255, 0.5);}.page-header h1{margin-bottom:8px;} +.btn.danger,.alert-message.danger,.btn.danger:hover,.alert-message.danger:hover,.btn.error,.alert-message.error,.btn.error:hover,.alert-message.error:hover,.btn.success,.alert-message.success,.btn.success:hover,.alert-message.success:hover,.btn.info,.alert-message.info,.btn.info:hover,.alert-message.info:hover{color:#ffffff;} +.btn .close,.alert-message .close{font-family:Arial,sans-serif;line-height:18px;} +.btn.danger,.alert-message.danger,.btn.error,.alert-message.error{background-color:#c43c35;background-repeat:repeat-x;background-image:-khtml-gradient(linear, left top, left bottom, from(#ee5f5b), to(#c43c35));background-image:-moz-linear-gradient(top, #ee5f5b, #c43c35);background-image:-ms-linear-gradient(top, #ee5f5b, #c43c35);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #ee5f5b), color-stop(100%, #c43c35));background-image:-webkit-linear-gradient(top, #ee5f5b, #c43c35);background-image:-o-linear-gradient(top, #ee5f5b, #c43c35);background-image:linear-gradient(top, #ee5f5b, #c43c35);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0);text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);border-color:#c43c35 #c43c35 #882a25;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);} +.btn.success,.alert-message.success{background-color:#57a957;background-repeat:repeat-x;background-image:-khtml-gradient(linear, left top, left bottom, from(#62c462), to(#57a957));background-image:-moz-linear-gradient(top, #62c462, #57a957);background-image:-ms-linear-gradient(top, #62c462, #57a957);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #62c462), color-stop(100%, #57a957));background-image:-webkit-linear-gradient(top, #62c462, #57a957);background-image:-o-linear-gradient(top, #62c462, #57a957);background-image:linear-gradient(top, #62c462, #57a957);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#57a957', GradientType=0);text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);border-color:#57a957 #57a957 #3d773d;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);} +.btn.info,.alert-message.info{background-color:#339bb9;background-repeat:repeat-x;background-image:-khtml-gradient(linear, left top, left bottom, from(#5bc0de), to(#339bb9));background-image:-moz-linear-gradient(top, #5bc0de, #339bb9);background-image:-ms-linear-gradient(top, #5bc0de, #339bb9);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #5bc0de), color-stop(100%, #339bb9));background-image:-webkit-linear-gradient(top, #5bc0de, #339bb9);background-image:-o-linear-gradient(top, #5bc0de, #339bb9);background-image:linear-gradient(top, #5bc0de, #339bb9);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#339bb9', GradientType=0);text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);border-color:#339bb9 #339bb9 #22697d;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);} +.btn{cursor:pointer;display:inline-block;background-color:#e6e6e6;background-repeat:no-repeat;background-image:-webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), color-stop(25%, #ffffff), to(#e6e6e6));background-image:-webkit-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);background-image:-moz-linear-gradient(top, #ffffff, #ffffff 25%, #e6e6e6);background-image:-ms-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);background-image:-o-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);background-image:linear-gradient(#ffffff, #ffffff 25%, #e6e6e6);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0);padding:5px 14px 6px;text-shadow:0 1px 1px rgba(255, 255, 255, 0.75);color:#333;font-size:13px;line-height:normal;border:1px solid #ccc;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);-webkit-transition:0.1s linear all;-moz-transition:0.1s linear all;-ms-transition:0.1s linear all;-o-transition:0.1s linear all;transition:0.1s linear all;}.btn:hover{background-position:0 -15px;color:#333;text-decoration:none;} +.btn:focus{outline:1px dotted #666;} +.btn.primary{color:#ffffff;background-color:#0064cd;background-repeat:repeat-x;background-image:-khtml-gradient(linear, left top, left bottom, from(#049cdb), to(#0064cd));background-image:-moz-linear-gradient(top, #049cdb, #0064cd);background-image:-ms-linear-gradient(top, #049cdb, #0064cd);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #049cdb), color-stop(100%, #0064cd));background-image:-webkit-linear-gradient(top, #049cdb, #0064cd);background-image:-o-linear-gradient(top, #049cdb, #0064cd);background-image:linear-gradient(top, #049cdb, #0064cd);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#049cdb', endColorstr='#0064cd', GradientType=0);text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);border-color:#0064cd #0064cd #003f81;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);} +.btn.active,.btn:active{-webkit-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.25),0 1px 2px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.25),0 1px 2px rgba(0, 0, 0, 0.05);box-shadow:inset 0 2px 4px rgba(0, 0, 0, 0.25),0 1px 2px rgba(0, 0, 0, 0.05);} +.btn.disabled{cursor:default;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=65);-khtml-opacity:0.65;-moz-opacity:0.65;opacity:0.65;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;} +.btn[disabled]{cursor:default;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=65);-khtml-opacity:0.65;-moz-opacity:0.65;opacity:0.65;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;} +.btn.large{font-size:15px;line-height:normal;padding:9px 14px 9px;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;} +.btn.small{padding:7px 9px 7px;font-size:11px;} +:root .alert-message,:root .btn{border-radius:0 \0;} +button.btn::-moz-focus-inner,input[type=submit].btn::-moz-focus-inner{padding:0;border:0;} +.close{float:right;color:#000000;font-size:20px;font-weight:bold;line-height:13.5px;text-shadow:0 1px 0 #ffffff;filter:alpha(opacity=25);-khtml-opacity:0.25;-moz-opacity:0.25;opacity:0.25;}.close:hover{color:#000000;text-decoration:none;filter:alpha(opacity=40);-khtml-opacity:0.4;-moz-opacity:0.4;opacity:0.4;} +.alert-message{position:relative;padding:7px 15px;margin-bottom:18px;color:#404040;background-color:#eedc94;background-repeat:repeat-x;background-image:-khtml-gradient(linear, left top, left bottom, from(#fceec1), to(#eedc94));background-image:-moz-linear-gradient(top, #fceec1, #eedc94);background-image:-ms-linear-gradient(top, #fceec1, #eedc94);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0%, #fceec1), color-stop(100%, #eedc94));background-image:-webkit-linear-gradient(top, #fceec1, #eedc94);background-image:-o-linear-gradient(top, #fceec1, #eedc94);background-image:linear-gradient(top, #fceec1, #eedc94);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fceec1', endColorstr='#eedc94', GradientType=0);text-shadow:0 -1px 0 rgba(0, 0, 0, 0.25);border-color:#eedc94 #eedc94 #e4c652;border-color:rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);border-width:1px;border-style:solid;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.25);-moz-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.25);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.25);}.alert-message .close{margin-top:1px;*margin-top:0;} +.alert-message a{font-weight:bold;color:#404040;} +.alert-message.danger p a,.alert-message.error p a,.alert-message.success p a,.alert-message.info p a{color:#ffffff;} +.alert-message h5{line-height:18px;} +.alert-message p{margin-bottom:0;} +.alert-message div{margin-top:5px;margin-bottom:2px;line-height:28px;} +.alert-message .btn{-webkit-box-shadow:0 1px 0 rgba(255, 255, 255, 0.25);-moz-box-shadow:0 1px 0 rgba(255, 255, 255, 0.25);box-shadow:0 1px 0 rgba(255, 255, 255, 0.25);} +.alert-message.block-message{background-image:none;background-color:#fdf5d9;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);padding:14px;border-color:#fceec1;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;}.alert-message.block-message ul,.alert-message.block-message p{margin-right:30px;} +.alert-message.block-message ul{margin-bottom:0;} +.alert-message.block-message li{color:#404040;} +.alert-message.block-message .alert-actions{margin-top:5px;} +.alert-message.block-message.error,.alert-message.block-message.success,.alert-message.block-message.info{color:#404040;text-shadow:0 1px 0 rgba(255, 255, 255, 0.5);} +.alert-message.block-message.error{background-color:#fddfde;border-color:#fbc7c6;} +.alert-message.block-message.success{background-color:#d1eed1;border-color:#bfe7bf;} +.alert-message.block-message.info{background-color:#ddf4fb;border-color:#c6edf9;} +.alert-message.block-message.danger p a,.alert-message.block-message.error p a,.alert-message.block-message.success p a,.alert-message.block-message.info p a{color:#404040;} +.pagination{height:36px;margin:18px 0;}.pagination ul{float:left;margin:0;border:1px solid #ddd;border:1px solid rgba(0, 0, 0, 0.15);-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;border-right:1px solid;border-right-color:#ddd;border-right-color:rgba(0, 0, 0, 0.15);*border-right-color:#ddd;text-decoration:none;} +.pagination a:hover,.pagination .active a{background-color:#c7eefe;} +.pagination .disabled a,.pagination .disabled a:hover{background-color:transparent;color:#bfbfbf;} +.pagination .next a{border:0;} +.well{background-color:#f5f5f5;margin-bottom:20px;padding:19px;min-height:20px;border:1px solid #eee;border:1px solid rgba(0, 0, 0, 0.05);-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);-moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);}.well blockquote{border-color:#ddd;border-color:rgba(0, 0, 0, 0.15);} +.modal-backdrop{background-color:#000000;position:fixed;top:0;left:0;right:0;bottom:0;z-index:10000;}.modal-backdrop.fade{opacity:0;} +.modal-backdrop,.modal-backdrop.fade.in{filter:alpha(opacity=80);-khtml-opacity:0.8;-moz-opacity:0.8;opacity:0.8;} +.modal{position:fixed;top:50%;left:50%;z-index:11000;max-height:500px;overflow:auto;width:560px;margin:-250px 0 0 -280px;background-color:#ffffff;border:1px solid #999;border:1px solid rgba(0, 0, 0, 0.3);*border:1px solid #999;-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-moz-box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);box-shadow:0 3px 7px rgba(0, 0, 0, 0.3);-webkit-background-clip:padding-box;-moz-background-clip:padding-box;background-clip:padding-box;}.modal .close{margin-top:7px;} +.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-header{border-bottom:1px solid #eee;padding:5px 15px;} +.modal-body{padding:15px;} +.modal-body form{margin-bottom:0;} +.modal-footer{background-color:#f5f5f5;padding:14px 15px 15px;border-top:1px solid #ddd;-webkit-border-radius:0 0 6px 6px;-moz-border-radius:0 0 6px 6px;border-radius:0 0 6px 6px;-webkit-box-shadow:inset 0 1px 0 #ffffff;-moz-box-shadow:inset 0 1px 0 #ffffff;box-shadow:inset 0 1px 0 #ffffff;zoom:1;margin-bottom:0;}.modal-footer:before,.modal-footer:after{display:table;content:"";zoom:1;} +.modal-footer:after{clear:both;} +.modal-footer .btn{float:right;margin-left:5px;} +.modal .popover,.modal .twipsy{z-index:12000;} +.twipsy{display:block;position:absolute;visibility:visible;padding:5px;font-size:11px;z-index:1000;filter:alpha(opacity=80);-khtml-opacity:0.8;-moz-opacity:0.8;opacity:0.8;}.twipsy.fade.in{filter:alpha(opacity=80);-khtml-opacity:0.8;-moz-opacity:0.8;opacity:0.8;} +.twipsy.above .twipsy-arrow{bottom:0;left:50%;margin-left:-5px;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid #000000;} +.twipsy.left .twipsy-arrow{top:50%;right:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:5px solid #000000;} +.twipsy.below .twipsy-arrow{top:0;left:50%;margin-left:-5px;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:5px solid #000000;} +.twipsy.right .twipsy-arrow{top:50%;left:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-right:5px solid #000000;} +.twipsy-inner{padding:3px 8px;background-color:#000000;color:white;text-align:center;max-width:200px;text-decoration:none;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} +.twipsy-arrow{position:absolute;width:0;height:0;} +.popover{position:absolute;top:0;left:0;z-index:1000;padding:5px;display:none;}.popover.above .arrow{bottom:0;left:50%;margin-left:-5px;border-left:5px solid transparent;border-right:5px solid transparent;border-top:5px solid #000000;} +.popover.right .arrow{top:50%;left:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-right:5px solid #000000;} +.popover.below .arrow{top:0;left:50%;margin-left:-5px;border-left:5px solid transparent;border-right:5px solid transparent;border-bottom:5px solid #000000;} +.popover.left .arrow{top:50%;right:0;margin-top:-5px;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:5px solid #000000;} +.popover .arrow{position:absolute;width:0;height:0;} +.popover .inner{background:#000000;background:rgba(0, 0, 0, 0.8);padding:3px;overflow:hidden;width:280px;-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{background-color:#f5f5f5;padding:9px 15px;line-height:1;-webkit-border-radius:3px 3px 0 0;-moz-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0;border-bottom:1px solid #eee;} +.popover .content{background-color:#ffffff;padding:14px;-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;} +.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;} +.label{padding:1px 3px 2px;font-size:9.75px;font-weight:bold;color:#ffffff;text-transform:uppercase;white-space:nowrap;background-color:#bfbfbf;-webkit-border-radius:3px;-moz-border-radius:3px;border-radius:3px;text-shadow:none;}.label.important{background-color:#c43c35;} +.label.warning{background-color:#f89406;} +.label.success{background-color:#46a546;} +.label.notice{background-color:#62cffc;} +.media-grid{margin-left:-20px;margin-bottom:0;zoom:1;}.media-grid:before,.media-grid:after{display:table;content:"";zoom:1;} +.media-grid:after{clear:both;} +.media-grid li{display:inline;} +.media-grid a{float:left;padding:4px;margin:0 0 18px 20px;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);}.media-grid a img{display:block;} +.media-grid a:hover{border-color:#0069d6;-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);} diff --git a/public/static/css/style.css b/public/static/css/style.css new file mode 100644 index 0000000..03f1bc2 --- /dev/null +++ b/public/static/css/style.css @@ -0,0 +1,271 @@ +body { + background: url('/static/images/bg.jpg') repeat-x scroll 0 0 #F5F6F7; +} +section { + margin-top:30px; +} +.matched { + color: #f3a22f; +} +.gameover { + padding-left:32px; + height:32px; + line-height:32px; +} +.gameover .name { + font-weight:bold; +} +.relative { + position: relative; +} +#app-name { + display: inline-block; +} +#total-tracks { + float:right; + color: #BFBFBF; + margin-top:22px; +} +#cassette { + margin-top:17px; + height: 137px; + background: url('/static/images/cassette.png') no-repeat 0 0; +} +#countdown { + position: absolute; + width: 26px; + text-align:center; + top:80px; + left:175px; +} +#wheel-left, #wheel-right { + position:absolute; + width: 24px; + height:24px; + top: 49px; + background: url('/static/images/wheel.png') no-repeat 0 0; +} +#wheel-left { + left:51px; +} +#wheel-right { + left:145px; +} +#tape-left, #tape-right { + height:70px; + width:70px; + position:absolute; + top:25px; + background-color: black; + -webkit-border-radius: 70px; + -moz-border-radius: 70px; + border-radius: 70px; + z-index:-1; +} +#tape-left { + left: 20px; +} +#tape-right { + left: 106px; +} +#progress-bar, #progress { + height:7px; + -webkit-border-radius:4px; + -moz-border-radius:4px; + border-radius:4px; + -webkit-box-shadow: inset 0px 1px 2px 0px #333; + -moz-box-shadow: inset 0px 1px 2px 0px #333; + box-shadow: inset 0px 1px 2px 0px #333; +} +#progress-bar { + position:absolute; + width: 148px; + top:85px; + left:20px; + border:1px solid #404040; + border:1px solid rgba(0, 0, 0, 0.5); +} +#progress { + background-color: #6184b7; + width:0px; +} +#summary { + text-align: center; + margin-bottom:18px; +} +#users { + margin-bottom: 90px; + max-height: 380px; + overflow: auto; +} +#users .name, #tracks .artist { + font-weight: bold; +} +#message-wrapper { + text-align: right; +} +#users li, #tracks li, #chat li { + color: #404040; +} +#users .private { + display: none; +} +#users .private, #users .name, .gameover .name { + margin-right: 4px; +} +#users .name { + cursor: pointer; +} +#users .you { + cursor: auto; +} +#users .points { + margin-right: 10px; +} +.round-rank { + height:16px; + width:16px; + margin-right:2px; +} +.stand1 { + background: url('/static/images/sprites.png') no-repeat 0 0; +} +.stand2 { + background: url('/static/images/sprites.png') no-repeat -16px 0; +} +.stand3 { + background: url('/static/images/sprites.png') no-repeat -32px 0; +} +#users .round-rank { + display:inline-block; + vertical-align: middle; +} +#chat-wrapper { + margin-bottom: 4px; + height: 160px; + background-color: white; +} +#chat-top, #chat-bottom { + background-color: white; + position: absolute; + left: 6px; + height: 4px; + width: 430px; + z-index: 1; +} +#chat-bottom { + bottom: 0; +} +#chat { + position:absolute; + height: 152px; + width: 446px; + padding: 4px 6px; + overflow: auto; + margin: 0; +} +.bordered { + border: 1px solid #ccc; + -webkit-border-radius: 6px; + -moz-border-radius: 6px; + border-radius: 6px; + -webkit-box-shadow: 0 1px 2px rgba(0,0,0,.075); + -moz-box-shadow: 0 1px 2px rgba(0,0,0,.075); + box-shadow: 0 1px 2px rgba(0,0,0,.075); +} +#chat .join, #chat .left { + font-style: italic; +} +#chat .private { + color: #a65fc3; +} +#feedback { + text-align: center; +} +.correct { + color: #46A546; +} +#feedback .wrong, #chat .error { + color: #C43C35; +} +#tracks { + margin-top: 18px; + max-height: 240px; + overflow: auto; +} +#tracks li { + margin: 0 2px 2px 0; + padding: 8px; + min-height: 40px; + background: -moz-linear-gradient(center top , #FBFBFB, #F5F5F5); + background: -webkit-linear-gradient(center top , #FBFBFB, #F5F5F5); + background: -o-linear-gradient(center top , #FBFBFB, #F5F5F5); + background: -ms-linear-gradient(center top , #FBFBFB, #F5F5F5); + background: linear-gradient(center top , #FBFBFB, #F5F5F5); +} +#tracks img.artwork, #tracks .info, #tracks .round-rank, #tracks .round-points, #copy, #facebook-button, #twitter-button { + float:left; +} +#tracks img.artwork { + width: 40px; + height: 40px; + margin-right:10px; +} +#tracks .info { + margin-right:15px; +} +#tracks .artist { + margin-top: 1px; + font-size: 14px; +} +#tracks .round-rank { + margin-top:12px; +} +#tracks .round-points { + margin-top: 11px; +} +#tracks a { + float:right; + display:block; + width:24px; + height:24px; + margin-top:8px; +} +#disclaimer { + position: absolute; + left: 60px; + bottom: 18px; + color: #BFBFBF; + width:340px; +} +footer { + padding: 0; + border-top:1px solid #DDDDDD; + color: #BFBFBF; + text-shadow: 0 1px 0 #FFFFFF; +} +#footer-inner, #twitter-button { + height:20px; +} +#footer-inner { + border-top:1px solid white; + padding-top:5px; + margin-bottom:30px; +} +#copy { + margin: 0 20px 0 20px; +} +#facebook-button { + width:90px; + height:21px +} +#twitter-button { + width:110px; +} +#copy, #footer-right { + line-height:20px; +} +#footer-right { + float:right; + margin-right:20px; +} diff --git a/public/static/images/bg.jpg b/public/static/images/bg.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1a6af3fd3a00806c5e8ac776ce9d8f15f2e91a58 GIT binary patch literal 2714 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 ZSzIT3x81m!#lXP8;OXk;vd$@?2>@sAJ4gTk literal 0 HcmV?d00001 diff --git a/public/static/images/wheel.png b/public/static/images/wheel.png new file mode 100644 index 0000000000000000000000000000000000000000..50d4cb7993d32eb5e1ae0319ba3c9ffafdbf8654 GIT binary patch literal 1017 zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4mJh`h6m-gKNuJo7>k44ofy`glX=O&z`&N| z?e4FMGa;&FWKG=HDuP>G}Gt8*7G>M1qSgvCprwW z-sb<*J?HtZy!f2@L(PJ7t6K%)JST-POlOE;aA3H^ki;OS>KXOr_urG7O>&m=hKBCF za^uDi$%g3A(9m^_jg2wY)xZ5TM5<&Dd=?fKzJLAdRm(>oE0$-@nr~)m8k>`w``1#a z^T`MQf^+v1duA?PytwYL0h7xVb){SP@9#e@p?pjta@tqrzl~G!>?n_d8?O`^j$9u zTTYR54LrxVLx;KI=F5_K`r8{XzpN2+*vjL;G(mqmqhROa{9W0z(l*{<+ZnTtLqX4b z(h_&2i6J|A7hQaj%&`9y1Jl8T3%m^M?CjYLoBltJloRPbTFSt|!eq+8wC&fgUw8NJ z-McbGt28|=ZQ0qkW%aMicF*=QjEIQXVQgntchsO~z4O8gx2L7@-d=PuW82Q1KSN`$ z-)BuY{j_N2xpU`c34Qq-930$NV;3*m>lWRSQI?r`Qk}U$;88MzrE6fGzn@=~SIxro zXV0F+EU%G0QqVMIrtXXBDfm0mH%fC13oc3f0 zXGo~7{#~aw*)wC-w>!6P-I~qd#MgfK@#mjH_1p*k7i`*W XI8XXg^|7-I3=9mOu6{1-oD!M<4TH^K literal 0 HcmV?d00001 diff --git a/public/static/js/bootstrap-modal.js b/public/static/js/bootstrap-modal.js new file mode 100644 index 0000000..b328217 --- /dev/null +++ b/public/static/js/bootstrap-modal.js @@ -0,0 +1,260 @@ +/* ========================================================= + * bootstrap-modal.js v1.4.0 + * http://twitter.github.com/bootstrap/javascript.html#modal + * ========================================================= + * Copyright 2011 Twitter, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ========================================================= */ + + +!function( $ ){ + + "use strict" + + /* CSS TRANSITION SUPPORT (https://gist.github.com/373874) + * ======================================================= */ + + var transitionEnd + + $(document).ready(function () { + + $.support.transition = (function () { + var thisBody = document.body || document.documentElement + , thisStyle = thisBody.style + , support = thisStyle.transition !== undefined || thisStyle.WebkitTransition !== undefined || thisStyle.MozTransition !== undefined || thisStyle.MsTransition !== undefined || thisStyle.OTransition !== undefined + return support + })() + + // set CSS transition event type + if ( $.support.transition ) { + transitionEnd = "TransitionEnd" + if ( $.browser.webkit ) { + transitionEnd = "webkitTransitionEnd" + } else if ( $.browser.mozilla ) { + transitionEnd = "transitionend" + } else if ( $.browser.opera ) { + transitionEnd = "oTransitionEnd" + } + } + + }) + + + /* MODAL PUBLIC CLASS DEFINITION + * ============================= */ + + var Modal = function ( content, options ) { + this.settings = $.extend({}, $.fn.modal.defaults, options) + this.$element = $(content) + .delegate('.close', 'click.modal', $.proxy(this.hide, this)) + + if ( this.settings.show ) { + this.show() + } + + return this + } + + Modal.prototype = { + + toggle: function () { + return this[!this.isShown ? 'show' : 'hide']() + } + + , show: function () { + var that = this + this.isShown = true + this.$element.trigger('show') + + escape.call(this) + backdrop.call(this, function () { + var transition = $.support.transition && that.$element.hasClass('fade') + + that.$element + .appendTo(document.body) + .show() + + if (transition) { + that.$element[0].offsetWidth // force reflow + } + + that.$element.addClass('in') + + transition ? + that.$element.one(transitionEnd, function () { that.$element.trigger('shown') }) : + that.$element.trigger('shown') + + }) + + return this + } + + , hide: function (e) { + e && e.preventDefault() + + if ( !this.isShown ) { + return this + } + + var that = this + this.isShown = false + + escape.call(this) + + this.$element + .trigger('hide') + .removeClass('in') + + $.support.transition && this.$element.hasClass('fade') ? + hideWithTransition.call(this) : + hideModal.call(this) + + return this + } + + } + + + /* MODAL PRIVATE METHODS + * ===================== */ + + function hideWithTransition() { + // firefox drops transitionEnd events :{o + var that = this + , timeout = setTimeout(function () { + that.$element.unbind(transitionEnd) + hideModal.call(that) + }, 500) + + this.$element.one(transitionEnd, function () { + clearTimeout(timeout) + hideModal.call(that) + }) + } + + function hideModal (that) { + this.$element + .hide() + .trigger('hidden') + + backdrop.call(this) + } + + function backdrop ( callback ) { + var that = this + , animate = this.$element.hasClass('fade') ? 'fade' : '' + if ( this.isShown && this.settings.backdrop ) { + var doAnimate = $.support.transition && animate + + this.$backdrop = $('