diff --git a/addons.php b/addons.php
index 671a9be..c1597d6 100644
--- a/addons.php
+++ b/addons.php
@@ -1,14 +1,74 @@
-
-
-
[0-9.|a-zA-Z.]*)#';
+ if (!preg_match_all($pattern, $u_agent, $matches)) {
+ // we have no matching number just continue
+ }
+
+ // see how many we have
+ $i = count($matches['browser']);
+ if ($i != 1) {
+ //we will have two since we are not using 'other' argument yet
+ //see if version is before or after the name
+ if (strripos($u_agent,"Version") < strripos($u_agent,$ub)){
+ $version= $matches['version'][0];
+ }
+ else {
+ $version= $matches['version'][1];
+ }
+ }
+ else {
+ $version= $matches['version'][0];
+ }
+
+ // check if we have a number
+ if ($version==null || $version=="") {$version="?";}
+
+ return array(
+ 'userAgent' => $u_agent,
+ 'name' => $bname,
+ 'version' => $version,
+ 'platform' => $platform,
+ 'pattern' => $pattern
+ );
+}
+
+function is_unsupported_browser()
+{
+ $ua = getBrowser();
+ if ( 'Internet Explorer' == $ua['name'] &&
+ ( '8.0' == $ua['version'] || '7.0' == $ua['version'] || '6.0' == $ua['version'] ) ) {
+
+ return true;
+ }
+
+ return false;
+}
\ No newline at end of file
diff --git a/builds.php b/builds.php
index 5df02b9..f4e731e 100644
--- a/builds.php
+++ b/builds.php
@@ -135,7 +135,7 @@ function print_travis_status( $p_branch ) {
function print_builds_list( $p_builds ) {
# printf formats
$t_fmt_sha_link = '
- %1$s ';
+ %1$s ';
$t_fmt_branch = '
%s
@@ -230,7 +230,13 @@ function print_builds_list( $p_builds ) {
if( get_builds_list( $t_path, $t_builds, $t_logfile ) ) {
?>
- Nightly Builds Downloads
+
+
+
Nightly Builds Downloads
+
+
+
+
.caret,.dropup>.btn>.caret{border-top-color:#000 !important;} .label{border:1px solid #000;} .table{border-collapse:collapse !important;} .table-bordered th,.table-bordered td{border:1px solid #ddd !important;}}p{margin:0 0 140px;}
+.lead{margin-bottom:280px;font-size:16.099999999999998px;font-weight:200;line-height:1.4;}@media (min-width:768px){.lead{font-size:21px;}}
+small{font-size:85%;}
+cite{font-style:normal;}
+.text-muted{color:#999999;}
+.text-primary{color:#428bca;}
+.text-warning{color:#c09853;}
+.text-danger{color:#b94a48;}
+.text-success{color:#468847;}
+.text-info{color:#3a87ad;}
+.text-left{text-align:left;}
+.text-right{text-align:right;}
+.text-center{text-align:center;}
+h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:'Open Sans',Arial,sans-serif;font-weight:500;line-height:1.1;}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small{font-weight:normal;line-height:1;color:#999999;}
+h1,h2,h3{margin-top:280px;margin-bottom:140px;}
+h4,h5,h6{margin-top:140px;margin-bottom:140px;}
+h1,.h1{font-size:36px;}
+h2,.h2{font-size:30px;}
+h3,.h3{font-size:24px;}
+h4,.h4{font-size:18px;}
+h5,.h5{font-size:14px;}
+h6,.h6{font-size:12px;}
+h1 small,.h1 small{font-size:24px;}
+h2 small,.h2 small{font-size:18px;}
+h3 small,.h3 small,h4 small,.h4 small{font-size:14px;}
+.page-header{padding-bottom:139px;margin:560px 0 280px;border-bottom:1px solid #eeeeee;}
+ul,ol{margin-top:0;margin-bottom:140px;}ul ul,ol ul,ul ol,ol ol{margin-bottom:0;}
+.list-unstyled{padding-left:0;list-style:none;}
+.list-inline{padding-left:0;list-style:none;}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px;}
+dl{margin-bottom:280px;}
+dt,dd{line-height:20px;}
+dt{font-weight:bold;}
+dd{margin-left:0;}
+@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;} .dl-horizontal dd{margin-left:180px;}.dl-horizontal dd:before,.dl-horizontal dd:after{content:" ";display:table;} .dl-horizontal dd:after{clear:both;} .dl-horizontal dd:before,.dl-horizontal dd:after{content:" ";display:table;} .dl-horizontal dd:after{clear:both;}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999999;}
+abbr.initialism{font-size:90%;text-transform:uppercase;}
+blockquote{padding:140px 280px;margin:0 0 280px;border-left:5px solid #eeeeee;}blockquote p{font-size:17.5px;font-weight:300;line-height:1.25;}
+blockquote p:last-child{margin-bottom:0;}
+blockquote small{display:block;line-height:20px;color:#999999;}blockquote small:before{content:'\2014 \00A0';}
+blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eeeeee;border-left:0;}blockquote.pull-right p,blockquote.pull-right small{text-align:right;}
+blockquote.pull-right small:before{content:'';}
+blockquote.pull-right small:after{content:'\00A0 \2014';}
+q:before,q:after,blockquote:before,blockquote:after{content:"";}
+address{display:block;margin-bottom:280px;font-style:normal;line-height:20px;}
+code,pre{font-family:Monaco,Menlo,Consolas,"Courier New",monospace;}
+code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;white-space:nowrap;border-radius:4px;}
+pre{display:block;padding:139.5px;margin:0 0 140px;font-size:13px;line-height:20px;word-break:break-all;word-wrap:break-word;color:#333333;background-color:#f5f5f5;border:1px solid #cccccc;border-radius:4px;}pre.prettyprint{margin-bottom:280px;}
+pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border:0;}
+.pre-scrollable{max-height:340px;overflow-y:scroll;}
+.container{margin-right:auto;margin-left:auto;padding-left:10px;padding-right:10px;}.container:before,.container:after{content:" ";display:table;}
+.container:after{clear:both;}
+.container:before,.container:after{content:" ";display:table;}
+.container:after{clear:both;}
+.row{margin-left:-10px;margin-right:-10px;}.row:before,.row:after{content:" ";display:table;}
+.row:after{clear:both;}
+.row:before,.row:after{content:" ";display:table;}
+.row:after{clear:both;}
+.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12,.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12,.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12,.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{position:relative;min-height:1px;padding-left:10px;padding-right:10px;}
+.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11{float:left;}
+.col-xs-1{width:8.333333333333332%;}
+.col-xs-2{width:16.666666666666664%;}
+.col-xs-3{width:25%;}
+.col-xs-4{width:33.33333333333333%;}
+.col-xs-5{width:41.66666666666667%;}
+.col-xs-6{width:50%;}
+.col-xs-7{width:58.333333333333336%;}
+.col-xs-8{width:66.66666666666666%;}
+.col-xs-9{width:75%;}
+.col-xs-10{width:83.33333333333334%;}
+.col-xs-11{width:91.66666666666666%;}
+.col-xs-12{width:100%;}
+@media (min-width:768px){.container{max-width:740px;} .col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11{float:left;} .col-sm-1{width:8.333333333333332%;} .col-sm-2{width:16.666666666666664%;} .col-sm-3{width:25%;} .col-sm-4{width:33.33333333333333%;} .col-sm-5{width:41.66666666666667%;} .col-sm-6{width:50%;} .col-sm-7{width:58.333333333333336%;} .col-sm-8{width:66.66666666666666%;} .col-sm-9{width:75%;} .col-sm-10{width:83.33333333333334%;} .col-sm-11{width:91.66666666666666%;} .col-sm-12{width:100%;} .col-sm-push-1{left:8.333333333333332%;} .col-sm-push-2{left:16.666666666666664%;} .col-sm-push-3{left:25%;} .col-sm-push-4{left:33.33333333333333%;} .col-sm-push-5{left:41.66666666666667%;} .col-sm-push-6{left:50%;} .col-sm-push-7{left:58.333333333333336%;} .col-sm-push-8{left:66.66666666666666%;} .col-sm-push-9{left:75%;} .col-sm-push-10{left:83.33333333333334%;} .col-sm-push-11{left:91.66666666666666%;} .col-sm-pull-1{right:8.333333333333332%;} .col-sm-pull-2{right:16.666666666666664%;} .col-sm-pull-3{right:25%;} .col-sm-pull-4{right:33.33333333333333%;} .col-sm-pull-5{right:41.66666666666667%;} .col-sm-pull-6{right:50%;} .col-sm-pull-7{right:58.333333333333336%;} .col-sm-pull-8{right:66.66666666666666%;} .col-sm-pull-9{right:75%;} .col-sm-pull-10{right:83.33333333333334%;} .col-sm-pull-11{right:91.66666666666666%;} .col-sm-offset-1{margin-left:8.333333333333332%;} .col-sm-offset-2{margin-left:16.666666666666664%;} .col-sm-offset-3{margin-left:25%;} .col-sm-offset-4{margin-left:33.33333333333333%;} .col-sm-offset-5{margin-left:41.66666666666667%;} .col-sm-offset-6{margin-left:50%;} .col-sm-offset-7{margin-left:58.333333333333336%;} .col-sm-offset-8{margin-left:66.66666666666666%;} .col-sm-offset-9{margin-left:75%;} .col-sm-offset-10{margin-left:83.33333333333334%;} .col-sm-offset-11{margin-left:91.66666666666666%;}}@media (min-width:992px){.container{max-width:960px;} .col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11{float:left;} .col-md-1{width:8.333333333333332%;} .col-md-2{width:16.666666666666664%;} .col-md-3{width:25%;} .col-md-4{width:33.33333333333333%;} .col-md-5{width:41.66666666666667%;} .col-md-6{width:50%;} .col-md-7{width:58.333333333333336%;} .col-md-8{width:66.66666666666666%;} .col-md-9{width:75%;} .col-md-10{width:83.33333333333334%;} .col-md-11{width:91.66666666666666%;} .col-md-12{width:100%;} .col-md-push-0{left:auto;} .col-md-push-1{left:8.333333333333332%;} .col-md-push-2{left:16.666666666666664%;} .col-md-push-3{left:25%;} .col-md-push-4{left:33.33333333333333%;} .col-md-push-5{left:41.66666666666667%;} .col-md-push-6{left:50%;} .col-md-push-7{left:58.333333333333336%;} .col-md-push-8{left:66.66666666666666%;} .col-md-push-9{left:75%;} .col-md-push-10{left:83.33333333333334%;} .col-md-push-11{left:91.66666666666666%;} .col-md-pull-0{right:auto;} .col-md-pull-1{right:8.333333333333332%;} .col-md-pull-2{right:16.666666666666664%;} .col-md-pull-3{right:25%;} .col-md-pull-4{right:33.33333333333333%;} .col-md-pull-5{right:41.66666666666667%;} .col-md-pull-6{right:50%;} .col-md-pull-7{right:58.333333333333336%;} .col-md-pull-8{right:66.66666666666666%;} .col-md-pull-9{right:75%;} .col-md-pull-10{right:83.33333333333334%;} .col-md-pull-11{right:91.66666666666666%;} .col-md-offset-0{margin-left:0;} .col-md-offset-1{margin-left:8.333333333333332%;} .col-md-offset-2{margin-left:16.666666666666664%;} .col-md-offset-3{margin-left:25%;} .col-md-offset-4{margin-left:33.33333333333333%;} .col-md-offset-5{margin-left:41.66666666666667%;} .col-md-offset-6{margin-left:50%;} .col-md-offset-7{margin-left:58.333333333333336%;} .col-md-offset-8{margin-left:66.66666666666666%;} .col-md-offset-9{margin-left:75%;} .col-md-offset-10{margin-left:83.33333333333334%;} .col-md-offset-11{margin-left:91.66666666666666%;}}@media (min-width:1200px){.container{max-width:960px;} .col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11{float:left;} .col-lg-1{width:8.333333333333332%;} .col-lg-2{width:16.666666666666664%;} .col-lg-3{width:25%;} .col-lg-4{width:33.33333333333333%;} .col-lg-5{width:41.66666666666667%;} .col-lg-6{width:50%;} .col-lg-7{width:58.333333333333336%;} .col-lg-8{width:66.66666666666666%;} .col-lg-9{width:75%;} .col-lg-10{width:83.33333333333334%;} .col-lg-11{width:91.66666666666666%;} .col-lg-12{width:100%;} .col-lg-push-0{left:auto;} .col-lg-push-1{left:8.333333333333332%;} .col-lg-push-2{left:16.666666666666664%;} .col-lg-push-3{left:25%;} .col-lg-push-4{left:33.33333333333333%;} .col-lg-push-5{left:41.66666666666667%;} .col-lg-push-6{left:50%;} .col-lg-push-7{left:58.333333333333336%;} .col-lg-push-8{left:66.66666666666666%;} .col-lg-push-9{left:75%;} .col-lg-push-10{left:83.33333333333334%;} .col-lg-push-11{left:91.66666666666666%;} .col-lg-pull-0{right:auto;} .col-lg-pull-1{right:8.333333333333332%;} .col-lg-pull-2{right:16.666666666666664%;} .col-lg-pull-3{right:25%;} .col-lg-pull-4{right:33.33333333333333%;} .col-lg-pull-5{right:41.66666666666667%;} .col-lg-pull-6{right:50%;} .col-lg-pull-7{right:58.333333333333336%;} .col-lg-pull-8{right:66.66666666666666%;} .col-lg-pull-9{right:75%;} .col-lg-pull-10{right:83.33333333333334%;} .col-lg-pull-11{right:91.66666666666666%;} .col-lg-offset-0{margin-left:0;} .col-lg-offset-1{margin-left:8.333333333333332%;} .col-lg-offset-2{margin-left:16.666666666666664%;} .col-lg-offset-3{margin-left:25%;} .col-lg-offset-4{margin-left:33.33333333333333%;} .col-lg-offset-5{margin-left:41.66666666666667%;} .col-lg-offset-6{margin-left:50%;} .col-lg-offset-7{margin-left:58.333333333333336%;} .col-lg-offset-8{margin-left:66.66666666666666%;} .col-lg-offset-9{margin-left:75%;} .col-lg-offset-10{margin-left:83.33333333333334%;} .col-lg-offset-11{margin-left:91.66666666666666%;}}table{max-width:100%;background-color:transparent;}
+th{text-align:left;}
+.table{width:100%;margin-bottom:280px;}.table thead>tr>th,.table tbody>tr>th,.table tfoot>tr>th,.table thead>tr>td,.table tbody>tr>td,.table tfoot>tr>td{padding:8px;line-height:20px;vertical-align:top;border-top:1px solid #dddddd;}
+.table thead>tr>th{vertical-align:bottom;border-bottom:2px solid #dddddd;}
+.table caption+thead tr:first-child th,.table colgroup+thead tr:first-child th,.table thead:first-child tr:first-child th,.table caption+thead tr:first-child td,.table colgroup+thead tr:first-child td,.table thead:first-child tr:first-child td{border-top:0;}
+.table tbody+tbody{border-top:2px solid #dddddd;}
+.table .table{background-color:#ffffff;}
+.table-condensed thead>tr>th,.table-condensed tbody>tr>th,.table-condensed tfoot>tr>th,.table-condensed thead>tr>td,.table-condensed tbody>tr>td,.table-condensed tfoot>tr>td{padding:5px;}
+.table-bordered{border:1px solid #dddddd;}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #dddddd;}
+.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px;}
+.table-striped>tbody>tr:nth-child(odd)>td,.table-striped>tbody>tr:nth-child(odd)>th{background-color:#f9f9f9;}
+.table-hover>tbody>tr:hover>td,.table-hover>tbody>tr:hover>th{background-color:#f5f5f5;}
+table col[class*="col-"]{float:none;display:table-column;}
+table td[class*="col-"],table th[class*="col-"]{float:none;display:table-cell;}
+.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5;}
+.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8;border-color:#d6e9c6;}
+.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td{background-color:#d0e9c6;border-color:#c9e2b3;}
+.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede;border-color:#eed3d7;}
+.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td{background-color:#ebcccc;border-color:#e6c1c7;}
+.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3;border-color:#fbeed5;}
+.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td{background-color:#faf2cc;border-color:#f8e5be;}
+@media (max-width:768px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;overflow-x:scroll;border:1px solid #dddddd;}.table-responsive>.table{margin-bottom:0;background-color:#fff;}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap;} .table-responsive>.table-bordered{border:0;}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0;} .table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0;} .table-responsive>.table-bordered>thead>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>thead>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0;}}fieldset{padding:0;margin:0;border:0;}
+legend{display:block;width:100%;padding:0;margin-bottom:280px;font-size:21px;line-height:inherit;color:#333333;border:0;border-bottom:1px solid #e5e5e5;}
+label{display:inline-block;margin-bottom:5px;font-weight:bold;}
+input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}
+input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal;}
+input[type="file"]{display:block;}
+select[multiple],select[size]{height:auto;}
+select optgroup{font-size:inherit;font-style:inherit;font-family:inherit;}
+input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;}
+input[type="number"]::-webkit-outer-spin-button,input[type="number"]::-webkit-inner-spin-button{height:auto;}
+.form-control:-moz-placeholder{color:#999999;}
+.form-control::-moz-placeholder{color:#999999;}
+.form-control:-ms-input-placeholder{color:#999999;}
+.form-control::-webkit-input-placeholder{color:#999999;}
+.form-control{display:block;width:100%;height:294px;padding:6px 12px;font-size:14px;line-height:20px;color:#555555;vertical-align:middle;background-color:#ffffff;border:1px solid #cccccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);-webkit-transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s, box-shadow ease-in-out .15s;}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(102, 175, 233, 0.6);}
+.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eeeeee;}
+textarea.form-control{height:auto;}
+.form-group{margin-bottom:15px;}
+.radio,.checkbox{display:block;min-height:280px;margin-top:10px;margin-bottom:10px;padding-left:20px;vertical-align:middle;}.radio label,.checkbox label{display:inline;margin-bottom:0;font-weight:normal;cursor:pointer;}
+.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{float:left;margin-left:-20px;}
+.radio+.radio,.checkbox+.checkbox{margin-top:-5px;}
+.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer;}
+.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px;}
+input[type="radio"][disabled],input[type="checkbox"][disabled],.radio[disabled],.radio-inline[disabled],.checkbox[disabled],.checkbox-inline[disabled],fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"],fieldset[disabled] .radio,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox,fieldset[disabled] .checkbox-inline{cursor:not-allowed;}
+.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px;}select.input-sm{height:30px;line-height:30px;}
+textarea.input-sm{height:auto;}
+.input-lg{height:45px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px;}select.input-lg{height:45px;line-height:45px;}
+textarea.input-lg{height:auto;}
+.has-warning .help-block,.has-warning .control-label{color:#c09853;}
+.has-warning .form-control{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);}.has-warning .form-control:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #dbc59e;}
+.has-warning .input-group-addon{color:#c09853;border-color:#c09853;background-color:#fcf8e3;}
+.has-error .help-block,.has-error .control-label{color:#b94a48;}
+.has-error .form-control{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);}.has-error .form-control:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #d59392;}
+.has-error .input-group-addon{color:#b94a48;border-color:#b94a48;background-color:#f2dede;}
+.has-success .help-block,.has-success .control-label{color:#468847;}
+.has-success .form-control{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075);}.has-success .form-control:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.075),0 0 6px #7aba7b;}
+.has-success .input-group-addon{color:#468847;border-color:#468847;background-color:#dff0d8;}
+.form-control-static{margin-bottom:0;padding-top:7px;}
+.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373;}
+@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle;} .form-inline .form-control{display:inline-block;} .form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0;} .form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{float:none;margin-left:0;}}
+.form-horizontal .control-label,.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:7px;}
+.form-horizontal .form-group{margin-left:-10px;margin-right:-10px;}.form-horizontal .form-group:before,.form-horizontal .form-group:after{content:" ";display:table;}
+.form-horizontal .form-group:after{clear:both;}
+.form-horizontal .form-group:before,.form-horizontal .form-group:after{content:" ";display:table;}
+.form-horizontal .form-group:after{clear:both;}
+@media (min-width:768px){.form-horizontal .control-label{text-align:right;}}
+.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:normal;line-height:20px;text-align:center;vertical-align:middle;cursor:pointer;border:1px solid transparent;border-radius:4px;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;}.btn:focus{outline:thin dotted #333;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px;}
+.btn:hover,.btn:focus{color:#333333;text-decoration:none;}
+.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);box-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);}
+.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;pointer-events:none;opacity:0.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;}
+.btn-default{color:#333333;background-color:#ffffff;border-color:#cccccc;}.btn-default:hover,.btn-default:focus,.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{color:#333333;background-color:#ebebeb;border-color:#adadad;}
+.btn-default:active,.btn-default.active,.open .dropdown-toggle.btn-default{background-image:none;}
+.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#ffffff;border-color:#cccccc;}
+.btn-primary{color:#ffffff;background-color:#428bca;border-color:#357ebd;}.btn-primary:hover,.btn-primary:focus,.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{color:#ffffff;background-color:#3276b1;border-color:#285e8e;}
+.btn-primary:active,.btn-primary.active,.open .dropdown-toggle.btn-primary{background-image:none;}
+.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#428bca;border-color:#357ebd;}
+.btn-warning{color:#ffffff;background-color:#f0ad4e;border-color:#eea236;}.btn-warning:hover,.btn-warning:focus,.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{color:#ffffff;background-color:#ed9c28;border-color:#d58512;}
+.btn-warning:active,.btn-warning.active,.open .dropdown-toggle.btn-warning{background-image:none;}
+.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236;}
+.btn-danger{color:#ffffff;background-color:#d9534f;border-color:#d43f3a;}.btn-danger:hover,.btn-danger:focus,.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{color:#ffffff;background-color:#d2322d;border-color:#ac2925;}
+.btn-danger:active,.btn-danger.active,.open .dropdown-toggle.btn-danger{background-image:none;}
+.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a;}
+.btn-success{color:#ffffff;background-color:#5cb85c;border-color:#4cae4c;}.btn-success:hover,.btn-success:focus,.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{color:#ffffff;background-color:#47a447;border-color:#398439;}
+.btn-success:active,.btn-success.active,.open .dropdown-toggle.btn-success{background-image:none;}
+.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:#4cae4c;}
+.btn-info{color:#ffffff;background-color:#5bc0de;border-color:#46b8da;}.btn-info:hover,.btn-info:focus,.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{color:#ffffff;background-color:#39b3d7;border-color:#269abc;}
+.btn-info:active,.btn-info.active,.open .dropdown-toggle.btn-info{background-image:none;}
+.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da;}
+.btn-link{color:#428bca;font-weight:normal;cursor:pointer;border-radius:0;}.btn-link,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none;}
+.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent;}
+.btn-link:hover,.btn-link:focus{color:#2a6496;text-decoration:underline;background-color:transparent;}
+.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#999999;text-decoration:none;}
+.btn-lg{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px;}
+.btn-sm,.btn-xs{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px;}
+.btn-xs{padding:1px 5px;}
+.btn-block{display:block;width:100%;padding-left:0;padding-right:0;}
+.btn-block+.btn-block{margin-top:5px;}
+input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%;}
+@font-face{font-family:'Glyphicons Halflings';src:url('../fonts/glyphicons-halflings-regular.eot');src:url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),url('../fonts/glyphicons-halflings-regular.woff') format('woff'),url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'),url('../fonts/glyphicons-halflings-regular.svg#glyphicons-halflingsregular') format('svg');}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;}
+.glyphicon-asterisk:before{content:"\2a";}
+.glyphicon-plus:before{content:"\2b";}
+.glyphicon-euro:before{content:"\20ac";}
+.glyphicon-minus:before{content:"\2212";}
+.glyphicon-cloud:before{content:"\2601";}
+.glyphicon-envelope:before{content:"\2709";}
+.glyphicon-pencil:before{content:"\270f";}
+.glyphicon-glass:before{content:"\e001";}
+.glyphicon-music:before{content:"\e002";}
+.glyphicon-search:before{content:"\e003";}
+.glyphicon-heart:before{content:"\e005";}
+.glyphicon-star:before{content:"\e006";}
+.glyphicon-star-empty:before{content:"\e007";}
+.glyphicon-user:before{content:"\e008";}
+.glyphicon-film:before{content:"\e009";}
+.glyphicon-th-large:before{content:"\e010";}
+.glyphicon-th:before{content:"\e011";}
+.glyphicon-th-list:before{content:"\e012";}
+.glyphicon-ok:before{content:"\e013";}
+.glyphicon-remove:before{content:"\e014";}
+.glyphicon-zoom-in:before{content:"\e015";}
+.glyphicon-zoom-out:before{content:"\e016";}
+.glyphicon-off:before{content:"\e017";}
+.glyphicon-signal:before{content:"\e018";}
+.glyphicon-cog:before{content:"\e019";}
+.glyphicon-trash:before{content:"\e020";}
+.glyphicon-home:before{content:"\e021";}
+.glyphicon-file:before{content:"\e022";}
+.glyphicon-time:before{content:"\e023";}
+.glyphicon-road:before{content:"\e024";}
+.glyphicon-download-alt:before{content:"\e025";}
+.glyphicon-download:before{content:"\e026";}
+.glyphicon-upload:before{content:"\e027";}
+.glyphicon-inbox:before{content:"\e028";}
+.glyphicon-play-circle:before{content:"\e029";}
+.glyphicon-repeat:before{content:"\e030";}
+.glyphicon-refresh:before{content:"\e031";}
+.glyphicon-list-alt:before{content:"\e032";}
+.glyphicon-flag:before{content:"\e034";}
+.glyphicon-headphones:before{content:"\e035";}
+.glyphicon-volume-off:before{content:"\e036";}
+.glyphicon-volume-down:before{content:"\e037";}
+.glyphicon-volume-up:before{content:"\e038";}
+.glyphicon-qrcode:before{content:"\e039";}
+.glyphicon-barcode:before{content:"\e040";}
+.glyphicon-tag:before{content:"\e041";}
+.glyphicon-tags:before{content:"\e042";}
+.glyphicon-book:before{content:"\e043";}
+.glyphicon-print:before{content:"\e045";}
+.glyphicon-font:before{content:"\e047";}
+.glyphicon-bold:before{content:"\e048";}
+.glyphicon-italic:before{content:"\e049";}
+.glyphicon-text-height:before{content:"\e050";}
+.glyphicon-text-width:before{content:"\e051";}
+.glyphicon-align-left:before{content:"\e052";}
+.glyphicon-align-center:before{content:"\e053";}
+.glyphicon-align-right:before{content:"\e054";}
+.glyphicon-align-justify:before{content:"\e055";}
+.glyphicon-list:before{content:"\e056";}
+.glyphicon-indent-left:before{content:"\e057";}
+.glyphicon-indent-right:before{content:"\e058";}
+.glyphicon-facetime-video:before{content:"\e059";}
+.glyphicon-picture:before{content:"\e060";}
+.glyphicon-map-marker:before{content:"\e062";}
+.glyphicon-adjust:before{content:"\e063";}
+.glyphicon-tint:before{content:"\e064";}
+.glyphicon-edit:before{content:"\e065";}
+.glyphicon-share:before{content:"\e066";}
+.glyphicon-check:before{content:"\e067";}
+.glyphicon-move:before{content:"\e068";}
+.glyphicon-step-backward:before{content:"\e069";}
+.glyphicon-fast-backward:before{content:"\e070";}
+.glyphicon-backward:before{content:"\e071";}
+.glyphicon-play:before{content:"\e072";}
+.glyphicon-pause:before{content:"\e073";}
+.glyphicon-stop:before{content:"\e074";}
+.glyphicon-forward:before{content:"\e075";}
+.glyphicon-fast-forward:before{content:"\e076";}
+.glyphicon-step-forward:before{content:"\e077";}
+.glyphicon-eject:before{content:"\e078";}
+.glyphicon-chevron-left:before{content:"\e079";}
+.glyphicon-chevron-right:before{content:"\e080";}
+.glyphicon-plus-sign:before{content:"\e081";}
+.glyphicon-minus-sign:before{content:"\e082";}
+.glyphicon-remove-sign:before{content:"\e083";}
+.glyphicon-ok-sign:before{content:"\e084";}
+.glyphicon-question-sign:before{content:"\e085";}
+.glyphicon-info-sign:before{content:"\e086";}
+.glyphicon-screenshot:before{content:"\e087";}
+.glyphicon-remove-circle:before{content:"\e088";}
+.glyphicon-ok-circle:before{content:"\e089";}
+.glyphicon-ban-circle:before{content:"\e090";}
+.glyphicon-arrow-left:before{content:"\e091";}
+.glyphicon-arrow-right:before{content:"\e092";}
+.glyphicon-arrow-up:before{content:"\e093";}
+.glyphicon-arrow-down:before{content:"\e094";}
+.glyphicon-share-alt:before{content:"\e095";}
+.glyphicon-resize-full:before{content:"\e096";}
+.glyphicon-resize-small:before{content:"\e097";}
+.glyphicon-exclamation-sign:before{content:"\e101";}
+.glyphicon-gift:before{content:"\e102";}
+.glyphicon-leaf:before{content:"\e103";}
+.glyphicon-eye-open:before{content:"\e105";}
+.glyphicon-eye-close:before{content:"\e106";}
+.glyphicon-warning-sign:before{content:"\e107";}
+.glyphicon-plane:before{content:"\e108";}
+.glyphicon-random:before{content:"\e110";}
+.glyphicon-comment:before{content:"\e111";}
+.glyphicon-magnet:before{content:"\e112";}
+.glyphicon-chevron-up:before{content:"\e113";}
+.glyphicon-chevron-down:before{content:"\e114";}
+.glyphicon-retweet:before{content:"\e115";}
+.glyphicon-shopping-cart:before{content:"\e116";}
+.glyphicon-folder-close:before{content:"\e117";}
+.glyphicon-folder-open:before{content:"\e118";}
+.glyphicon-resize-vertical:before{content:"\e119";}
+.glyphicon-resize-horizontal:before{content:"\e120";}
+.glyphicon-hdd:before{content:"\e121";}
+.glyphicon-bullhorn:before{content:"\e122";}
+.glyphicon-certificate:before{content:"\e124";}
+.glyphicon-thumbs-up:before{content:"\e125";}
+.glyphicon-thumbs-down:before{content:"\e126";}
+.glyphicon-hand-right:before{content:"\e127";}
+.glyphicon-hand-left:before{content:"\e128";}
+.glyphicon-hand-up:before{content:"\e129";}
+.glyphicon-hand-down:before{content:"\e130";}
+.glyphicon-circle-arrow-right:before{content:"\e131";}
+.glyphicon-circle-arrow-left:before{content:"\e132";}
+.glyphicon-circle-arrow-up:before{content:"\e133";}
+.glyphicon-circle-arrow-down:before{content:"\e134";}
+.glyphicon-globe:before{content:"\e135";}
+.glyphicon-tasks:before{content:"\e137";}
+.glyphicon-filter:before{content:"\e138";}
+.glyphicon-fullscreen:before{content:"\e140";}
+.glyphicon-dashboard:before{content:"\e141";}
+.glyphicon-heart-empty:before{content:"\e143";}
+.glyphicon-link:before{content:"\e144";}
+.glyphicon-phone:before{content:"\e145";}
+.glyphicon-usd:before{content:"\e148";}
+.glyphicon-gbp:before{content:"\e149";}
+.glyphicon-sort:before{content:"\e150";}
+.glyphicon-sort-by-alphabet:before{content:"\e151";}
+.glyphicon-sort-by-alphabet-alt:before{content:"\e152";}
+.glyphicon-sort-by-order:before{content:"\e153";}
+.glyphicon-sort-by-order-alt:before{content:"\e154";}
+.glyphicon-sort-by-attributes:before{content:"\e155";}
+.glyphicon-sort-by-attributes-alt:before{content:"\e156";}
+.glyphicon-unchecked:before{content:"\e157";}
+.glyphicon-expand:before{content:"\e158";}
+.glyphicon-collapse-down:before{content:"\e159";}
+.glyphicon-collapse-up:before{content:"\e160";}
+.glyphicon-log-in:before{content:"\e161";}
+.glyphicon-flash:before{content:"\e162";}
+.glyphicon-log-out:before{content:"\e163";}
+.glyphicon-new-window:before{content:"\e164";}
+.glyphicon-record:before{content:"\e165";}
+.glyphicon-save:before{content:"\e166";}
+.glyphicon-open:before{content:"\e167";}
+.glyphicon-saved:before{content:"\e168";}
+.glyphicon-import:before{content:"\e169";}
+.glyphicon-export:before{content:"\e170";}
+.glyphicon-send:before{content:"\e171";}
+.glyphicon-floppy-disk:before{content:"\e172";}
+.glyphicon-floppy-saved:before{content:"\e173";}
+.glyphicon-floppy-remove:before{content:"\e174";}
+.glyphicon-floppy-save:before{content:"\e175";}
+.glyphicon-floppy-open:before{content:"\e176";}
+.glyphicon-credit-card:before{content:"\e177";}
+.glyphicon-transfer:before{content:"\e178";}
+.glyphicon-cutlery:before{content:"\e179";}
+.glyphicon-header:before{content:"\e180";}
+.glyphicon-compressed:before{content:"\e181";}
+.glyphicon-earphone:before{content:"\e182";}
+.glyphicon-phone-alt:before{content:"\e183";}
+.glyphicon-tower:before{content:"\e184";}
+.glyphicon-stats:before{content:"\e185";}
+.glyphicon-sd-video:before{content:"\e186";}
+.glyphicon-hd-video:before{content:"\e187";}
+.glyphicon-subtitles:before{content:"\e188";}
+.glyphicon-sound-stereo:before{content:"\e189";}
+.glyphicon-sound-dolby:before{content:"\e190";}
+.glyphicon-sound-5-1:before{content:"\e191";}
+.glyphicon-sound-6-1:before{content:"\e192";}
+.glyphicon-sound-7-1:before{content:"\e193";}
+.glyphicon-copyright-mark:before{content:"\e194";}
+.glyphicon-registration-mark:before{content:"\e195";}
+.glyphicon-cloud-download:before{content:"\e197";}
+.glyphicon-cloud-upload:before{content:"\e198";}
+.glyphicon-tree-conifer:before{content:"\e199";}
+.glyphicon-tree-deciduous:before{content:"\e200";}
+.glyphicon-briefcase:before{content:"\1f4bc";}
+.glyphicon-calendar:before{content:"\1f4c5";}
+.glyphicon-pushpin:before{content:"\1f4cc";}
+.glyphicon-paperclip:before{content:"\1f4ce";}
+.glyphicon-camera:before{content:"\1f4f7";}
+.glyphicon-lock:before{content:"\1f512";}
+.glyphicon-bell:before{content:"\1f514";}
+.glyphicon-bookmark:before{content:"\1f516";}
+.glyphicon-fire:before{content:"\1f525";}
+.glyphicon-wrench:before{content:"\1f527";}
+.btn-default .caret{border-top-color:#333333;}
+.btn-primary .caret,.btn-success .caret,.btn-warning .caret,.btn-danger .caret,.btn-info .caret{border-top-color:#fff;}
+.dropup .btn-default .caret{border-bottom-color:#333333;}
+.dropup .btn-primary .caret,.dropup .btn-success .caret,.dropup .btn-warning .caret,.dropup .btn-danger .caret,.dropup .btn-info .caret{border-bottom-color:#fff;}
+.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle;}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left;}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2;}
+.btn-group>.btn:focus,.btn-group-vertical>.btn:focus{outline:none;}
+.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px;}
+.btn-toolbar:before,.btn-toolbar:after{content:" ";display:table;}
+.btn-toolbar:after{clear:both;}
+.btn-toolbar:before,.btn-toolbar:after{content:" ";display:table;}
+.btn-toolbar:after{clear:both;}
+.btn-toolbar .btn-group{float:left;}
+.btn-toolbar>.btn+.btn,.btn-toolbar>.btn-group+.btn,.btn-toolbar>.btn+.btn-group,.btn-toolbar>.btn-group+.btn-group{margin-left:5px;}
+.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0;}
+.btn-group>.btn:first-child{margin-left:0;}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0;}
+.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0;}
+.btn-group>.btn-group{float:left;}
+.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0;}
+.btn-group>.btn-group:first-child>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0;}
+.btn-group>.btn-group:last-child>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0;}
+.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0;}
+.btn-group-xs>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px;padding:1px 5px;}
+.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px;}
+.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px;}
+.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px;}
+.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px;}
+.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);box-shadow:inset 0 3px 5px rgba(0, 0, 0, 0.125);}
+.btn .caret{margin-left:0;}
+.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0;}
+.dropup .btn-lg .caret{border-width:0 5px 5px;}
+.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{display:block;float:none;width:100%;max-width:100%;}
+.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after{content:" ";display:table;}
+.btn-group-vertical>.btn-group:after{clear:both;}
+.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after{content:" ";display:table;}
+.btn-group-vertical>.btn-group:after{clear:both;}
+.btn-group-vertical>.btn-group>.btn{float:none;}
+.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0;}
+.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0;}
+.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0;}
+.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:4px;border-top-right-radius:0;border-top-left-radius:0;}
+.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0;}
+.btn-group-vertical>.btn-group:first-child>.btn:last-child,.btn-group-vertical>.btn-group:first-child>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0;}
+.btn-group-vertical>.btn-group:last-child>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0;}
+.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate;}.btn-group-justified .btn{float:none;display:table-cell;width:1%;}
+[data-toggle="buttons"]>.btn>input[type="radio"],[data-toggle="buttons"]>.btn>input[type="checkbox"]{display:none;}
+.input-group{position:relative;display:table;border-collapse:separate;}.input-group.col{float:none;padding-left:0;padding-right:0;}
+.input-group .form-control{width:100%;margin-bottom:0;}
+.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:45px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px;}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:45px;line-height:45px;}
+textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto;}
+.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px;}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px;}
+textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto;}
+.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell;}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0;}
+.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle;}
+.input-group-addon{padding:6px 12px;font-size:14px;font-weight:normal;line-height:1;text-align:center;background-color:#eeeeee;border:1px solid #cccccc;border-radius:4px;}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px;}
+.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px;}
+.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0;}
+.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0;}
+.input-group-addon:first-child{border-right:0;}
+.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0;}
+.input-group-addon:last-child{border-left:0;}
+.input-group-btn{position:relative;white-space:nowrap;}
+.input-group-btn>.btn{position:relative;}.input-group-btn>.btn+.btn{margin-left:-4px;}
+.input-group-btn>.btn:hover,.input-group-btn>.btn:active{z-index:2;}
+.nav{margin-bottom:0;padding-left:0;list-style:none;}.nav:before,.nav:after{content:" ";display:table;}
+.nav:after{clear:both;}
+.nav:before,.nav:after{content:" ";display:table;}
+.nav:after{clear:both;}
+.nav>li{position:relative;display:block;}.nav>li>a{position:relative;display:block;padding:10px 15px;}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eeeeee;}
+.nav>li.disabled>a{color:#999999;}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#999999;text-decoration:none;background-color:transparent;cursor:not-allowed;}
+.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eeeeee;border-color:#428bca;}
+.nav .nav-divider{height:1px;margin:139px 0;overflow:hidden;background-color:#e5e5e5;}
+.nav>li>a>img{max-width:none;}
+.nav-tabs{border-bottom:1px solid #dddddd;}.nav-tabs>li{float:left;margin-bottom:-1px;}.nav-tabs>li>a{margin-right:2px;line-height:20px;border:1px solid transparent;border-radius:4px 4px 0 0;}.nav-tabs>li>a:hover{border-color:#eeeeee #eeeeee #dddddd;}
+.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555555;background-color:#ffffff;border:1px solid #dddddd;border-bottom-color:transparent;cursor:default;}
+.nav-tabs.nav-justified{width:100%;border-bottom:0;}.nav-tabs.nav-justified>li{float:none;}.nav-tabs.nav-justified>li>a{text-align:center;}
+@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%;}}.nav-tabs.nav-justified>li>a{border-bottom:1px solid #dddddd;margin-right:0;}
+.nav-tabs.nav-justified>.active>a{border-bottom-color:#ffffff;}
+.nav-pills>li{float:left;}.nav-pills>li>a{border-radius:5px;}
+.nav-pills>li+li{margin-left:2px;}
+.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#ffffff;background-color:#428bca;}
+.nav-stacked>li{float:none;}.nav-stacked>li+li{margin-top:2px;margin-left:0;}
+.nav-justified{width:100%;}.nav-justified>li{float:none;}.nav-justified>li>a{text-align:center;}
+@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%;}}
+.nav-tabs-justified{border-bottom:0;}.nav-tabs-justified>li>a{border-bottom:1px solid #dddddd;margin-right:0;}
+.nav-tabs-justified>.active>a{border-bottom-color:#ffffff;}
+.tabbable:before,.tabbable:after{content:" ";display:table;}
+.tabbable:after{clear:both;}
+.tabbable:before,.tabbable:after{content:" ";display:table;}
+.tabbable:after{clear:both;}
+.tab-content>.tab-pane,.pill-content>.pill-pane{display:none;}
+.tab-content>.active,.pill-content>.active{display:block;}
+.nav .caret{border-top-color:#428bca;border-bottom-color:#428bca;}
+.nav a:hover .caret{border-top-color:#2a6496;border-bottom-color:#2a6496;}
+.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0;}
+.navbar{position:relative;z-index:1000;min-height:50px;margin-bottom:280px;border:1px solid transparent;}.navbar:before,.navbar:after{content:" ";display:table;}
+.navbar:after{clear:both;}
+.navbar:before,.navbar:after{content:" ";display:table;}
+.navbar:after{clear:both;}
+@media (min-width:768px){.navbar{border-radius:4px;}}
+.navbar-header:before,.navbar-header:after{content:" ";display:table;}
+.navbar-header:after{clear:both;}
+.navbar-header:before,.navbar-header:after{content:" ";display:table;}
+.navbar-header:after{clear:both;}
+@media (min-width:768px){.navbar-header{float:left;}}
+.navbar-collapse{max-height:340px;overflow-x:visible;padding-right:10px;padding-left:10px;border-top:1px solid transparent;box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1);-webkit-overflow-scrolling:touch;}.navbar-collapse:before,.navbar-collapse:after{content:" ";display:table;}
+.navbar-collapse:after{clear:both;}
+.navbar-collapse:before,.navbar-collapse:after{content:" ";display:table;}
+.navbar-collapse:after{clear:both;}
+.navbar-collapse.in{overflow-y:auto;}
+@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;box-shadow:none;}.navbar-collapse.collapse{display:block !important;height:auto !important;padding-bottom:0;overflow:visible !important;} .navbar-collapse.in{overflow-y:visible;} .navbar-collapse .navbar-nav.navbar-left:first-child{margin-left:-10px;} .navbar-collapse .navbar-nav.navbar-right:last-child{margin-right:-10px;} .navbar-collapse .navbar-text:last-child{margin-right:0;}}
+.container>.navbar-header,.container>.navbar-collapse{margin-right:-10px;margin-left:-10px;}@media (min-width:768px){.container>.navbar-header,.container>.navbar-collapse{margin-right:0;margin-left:0;}}
+.navbar-static-top{border-width:0 0 1px;}@media (min-width:768px){.navbar-static-top{border-radius:0;}}
+.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;border-width:0 0 1px;}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0;}}
+.navbar-fixed-top{z-index:1030;top:0;}
+.navbar-fixed-bottom{bottom:0;margin-bottom:0;}
+.navbar-brand{float:left;padding:-115px 10px;font-size:18px;line-height:280px;}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none;}
+@media (min-width:768px){.navbar>.container .navbar-brand{margin-left:-10px;}}
+.navbar-toggle{position:relative;float:right;margin-right:10px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;border:1px solid transparent;border-radius:4px;}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px;}
+.navbar-toggle .icon-bar+.icon-bar{margin-top:4px;}
+@media (min-width:768px){.navbar-toggle{display:none;}}
+.navbar-nav{margin:-57.5px -10px;}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:280px;}
+@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;box-shadow:none;}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px;} .navbar-nav .open .dropdown-menu>li>a{line-height:280px;}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none;}}@media (min-width:768px){.navbar-nav{float:left;margin:0;}.navbar-nav>li{float:left;}.navbar-nav>li>a{padding-top:-115px;padding-bottom:-115px;}}
+@media (min-width:768px){.navbar-left{float:left !important;} .navbar-right{float:right !important;}}.navbar-form{margin-left:-10px;margin-right:-10px;padding:10px 10px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1),0 1px 0 rgba(255, 255, 255, 0.1);box-shadow:inset 0 1px 0 rgba(255, 255, 255, 0.1),0 1px 0 rgba(255, 255, 255, 0.1);margin-top:-122px;margin-bottom:-122px;}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle;} .navbar-form .form-control{display:inline-block;} .navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;padding-left:0;} .navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{float:none;margin-left:0;}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px;}}
+@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none;}}
+.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0;}
+.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-bottom-right-radius:0;border-bottom-left-radius:0;}
+.navbar-nav.pull-right>li>.dropdown-menu,.navbar-nav>li>.dropdown-menu.pull-right{left:auto;right:0;}
+.navbar-btn{margin-top:-122px;margin-bottom:-122px;}
+.navbar-text{float:left;margin-top:-115px;margin-bottom:-115px;}@media (min-width:768px){.navbar-text{margin-left:10px;margin-right:10px;}}
+.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7;}.navbar-default .navbar-brand{color:#777777;}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent;}
+.navbar-default .navbar-text{color:#777777;}
+.navbar-default .navbar-nav>li>a{color:#777777;}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333333;background-color:transparent;}
+.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#555555;background-color:#e7e7e7;}
+.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#cccccc;background-color:transparent;}
+.navbar-default .navbar-toggle{border-color:#dddddd;}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#dddddd;}
+.navbar-default .navbar-toggle .icon-bar{background-color:#cccccc;}
+.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e6e6e6;}
+.navbar-default .navbar-nav>.dropdown>a:hover .caret,.navbar-default .navbar-nav>.dropdown>a:focus .caret{border-top-color:#333333;border-bottom-color:#333333;}
+.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:#e7e7e7;color:#555555;}.navbar-default .navbar-nav>.open>a .caret,.navbar-default .navbar-nav>.open>a:hover .caret,.navbar-default .navbar-nav>.open>a:focus .caret{border-top-color:#555555;border-bottom-color:#555555;}
+.navbar-default .navbar-nav>.dropdown>a .caret{border-top-color:#777777;border-bottom-color:#777777;}
+@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777777;}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333333;background-color:transparent;} .navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#555555;background-color:#e7e7e7;} .navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#cccccc;background-color:transparent;}}
+.navbar-default .navbar-link{color:#777777;}.navbar-default .navbar-link:hover{color:#333333;}
+.navbar-inverse{background-color:#222222;border-color:#080808;}.navbar-inverse .navbar-brand{color:#999999;}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#ffffff;background-color:transparent;}
+.navbar-inverse .navbar-text{color:#999999;}
+.navbar-inverse .navbar-nav>li>a{color:#999999;}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#ffffff;background-color:transparent;}
+.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#ffffff;background-color:#080808;}
+.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444444;background-color:transparent;}
+.navbar-inverse .navbar-toggle{border-color:#333333;}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333333;}
+.navbar-inverse .navbar-toggle .icon-bar{background-color:#ffffff;}
+.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010;}
+.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:#080808;color:#ffffff;}
+.navbar-inverse .navbar-nav>.dropdown>a:hover .caret{border-top-color:#ffffff;border-bottom-color:#ffffff;}
+.navbar-inverse .navbar-nav>.dropdown>a .caret{border-top-color:#999999;border-bottom-color:#999999;}
+.navbar-inverse .navbar-nav>.open>a .caret,.navbar-inverse .navbar-nav>.open>a:hover .caret,.navbar-inverse .navbar-nav>.open>a:focus .caret{border-top-color:#ffffff;border-bottom-color:#ffffff;}
+@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808;} .navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#999999;}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#ffffff;background-color:transparent;} .navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#ffffff;background-color:#080808;} .navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444444;background-color:transparent;}}
+.navbar-inverse .navbar-link{color:#999999;}.navbar-inverse .navbar-link:hover{color:#ffffff;}
+.breadcrumb{padding:8px 15px;margin-bottom:280px;list-style:none;background-color:#f5f5f5;border-radius:4px;}.breadcrumb>li{display:inline-block;}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#cccccc;}
+.breadcrumb>.active{color:#999999;}
+.pagination{display:inline-block;padding-left:0;margin:280px 0;border-radius:4px;}.pagination>li{display:inline;}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;line-height:20px;text-decoration:none;background-color:#ffffff;border:1px solid #dddddd;margin-left:-1px;}
+.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px;}
+.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px;}
+.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{background-color:#eeeeee;}
+.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#ffffff;background-color:#428bca;border-color:#428bca;cursor:default;}
+.pagination>.disabled>span,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#999999;background-color:#ffffff;border-color:#dddddd;cursor:not-allowed;}
+.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px;}
+.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px;}
+.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px;}
+.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;}
+.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px;}
+.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px;}
+.pager{padding-left:0;margin:280px 0;list-style:none;text-align:center;}.pager:before,.pager:after{content:" ";display:table;}
+.pager:after{clear:both;}
+.pager:before,.pager:after{content:" ";display:table;}
+.pager:after{clear:both;}
+.pager li{display:inline;}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#ffffff;border:1px solid #dddddd;border-radius:15px;}
+.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eeeeee;}
+.pager .next>a,.pager .next>span{float:right;}
+.pager .previous>a,.pager .previous>span{float:left;}
+.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999999;background-color:#ffffff;cursor:not-allowed;}
+.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#ffffff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em;}.label[href]:hover,.label[href]:focus{color:#ffffff;text-decoration:none;cursor:pointer;}
+.label:empty{display:none;}
+.label-default{background-color:#999999;}.label-default[href]:hover,.label-default[href]:focus{background-color:#808080;}
+.label-primary{background-color:#428bca;}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#3071a9;}
+.label-success{background-color:#5cb85c;}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44;}
+.label-info{background-color:#5bc0de;}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5;}
+.label-warning{background-color:#f0ad4e;}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f;}
+.label-danger{background-color:#d9534f;}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c;}
+.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:bold;color:#ffffff;line-height:1;vertical-align:baseline;white-space:nowrap;text-align:center;background-color:#999999;border-radius:10px;}.badge:empty{display:none;}
+a.badge:hover,a.badge:focus{color:#ffffff;text-decoration:none;cursor:pointer;}
+.btn .badge{position:relative;top:-1px;}
+a.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#428bca;background-color:#ffffff;}
+.nav-pills>li>a>.badge{margin-left:3px;}
+.jumbotron{padding:30px;margin-bottom:30px;font-size:21px;font-weight:200;line-height:30px;color:inherit;background-color:#eeeeee;}.jumbotron h1{line-height:1;color:inherit;}
+.jumbotron p{line-height:1.4;}
+.container .jumbotron{border-radius:6px;}
+@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px;}.container .jumbotron{padding-left:60px;padding-right:60px;} .jumbotron h1{font-size:63px;}}
+.thumbnail{padding:4px;line-height:20px;background-color:#ffffff;border:1px solid #dddddd;border-radius:4px;-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out;display:inline-block;max-width:100%;height:auto;display:block;}.thumbnail>img{display:block;max-width:100%;height:auto;}
+a.thumbnail:hover,a.thumbnail:focus{border-color:#428bca;}
+.thumbnail>img{margin-left:auto;margin-right:auto;}
+.thumbnail .caption{padding:9px;color:#333333;}
+.alert{padding:15px;margin-bottom:280px;border:1px solid transparent;border-radius:4px;}.alert h4{margin-top:0;color:inherit;}
+.alert .alert-link{font-weight:bold;}
+.alert>p,.alert>ul{margin-bottom:0;}
+.alert>p+p{margin-top:5px;}
+.alert-dismissable{padding-right:35px;}.alert-dismissable .close{position:relative;top:-2px;right:-21px;color:inherit;}
+.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#468847;}.alert-success hr{border-top-color:#c9e2b3;}
+.alert-success .alert-link{color:#356635;}
+.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#3a87ad;}.alert-info hr{border-top-color:#a6e1ec;}
+.alert-info .alert-link{color:#2d6987;}
+.alert-warning{background-color:#fcf8e3;border-color:#fbeed5;color:#c09853;}.alert-warning hr{border-top-color:#f8e5be;}
+.alert-warning .alert-link{color:#a47e3c;}
+.alert-danger{background-color:#f2dede;border-color:#eed3d7;color:#b94a48;}.alert-danger hr{border-top-color:#e6c1c7;}
+.alert-danger .alert-link{color:#953b39;}
+@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0;} to{background-position:0 0;}}@-moz-keyframes progress-bar-stripes{from{background-position:40px 0;} to{background-position:0 0;}}@-o-keyframes progress-bar-stripes{from{background-position:0 0;} to{background-position:40px 0;}}@keyframes progress-bar-stripes{from{background-position:40px 0;} to{background-position:0 0;}}.progress{overflow:hidden;height:280px;margin-bottom:280px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);box-shadow:inset 0 1px 2px rgba(0, 0, 0, 0.1);}
+.progress-bar{float:left;width:0%;height:100%;font-size:12px;color:#ffffff;text-align:center;background-color:#428bca;-webkit-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-transition:width 0.6s ease;transition:width 0.6s ease;}
+.progress-striped .progress-bar{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: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-size:40px 40px;}
+.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-moz-animation:progress-bar-stripes 2s linear infinite;-ms-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite;}
+.progress-bar-success{background-color:#5cb85c;}.progress-striped .progress-bar-success{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: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-bar-info{background-color:#5bc0de;}.progress-striped .progress-bar-info{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: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-bar-warning{background-color:#f0ad4e;}.progress-striped .progress-bar-warning{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: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-bar-danger{background-color:#d9534f;}.progress-striped .progress-bar-danger{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: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);}
+.media,.media-body{overflow:hidden;zoom:1;}
+.media,.media .media{margin-top:15px;}
+.media:first-child{margin-top:0;}
+.media-object{display:block;}
+.media-heading{margin:0 0 5px;}
+.media>.pull-left{margin-right:10px;}
+.media>.pull-right{margin-left:10px;}
+.media-list{padding-left:0;list-style:none;}
+.list-group{margin-bottom:20px;padding-left:0;}
+.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#ffffff;border:1px solid #dddddd;}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px;}
+.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px;}
+.list-group-item>.badge{float:right;}
+.list-group-item>.badge+.badge{margin-right:5px;}
+a.list-group-item{color:#555555;}a.list-group-item .list-group-item-heading{color:#333333;}
+a.list-group-item:hover,a.list-group-item:focus{text-decoration:none;background-color:#f5f5f5;}
+.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#ffffff;background-color:#428bca;border-color:#428bca;}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading{color:inherit;}
+.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#e1edf7;}
+.list-group-item-heading{margin-top:0;margin-bottom:5px;}
+.list-group-item-text{margin-bottom:0;line-height:1.3;}
+.panel{margin-bottom:280px;background-color:#ffffff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0, 0, 0, 0.05);box-shadow:0 1px 1px rgba(0, 0, 0, 0.05);}
+.panel-body{padding:15px;}.panel-body:before,.panel-body:after{content:" ";display:table;}
+.panel-body:after{clear:both;}
+.panel-body:before,.panel-body:after{content:" ";display:table;}
+.panel-body:after{clear:both;}
+.panel>.list-group{margin-bottom:0;}.panel>.list-group .list-group-item{border-width:1px 0;}.panel>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0;}
+.panel>.list-group .list-group-item:last-child{border-bottom:0;}
+.panel-heading+.list-group .list-group-item:first-child{border-top-width:0;}
+.panel>.table{margin-bottom:0;}
+.panel>.panel-body+.table{border-top:1px solid #dddddd;}
+.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px;}
+.panel-title{margin-top:0;margin-bottom:0;font-size:16px;}.panel-title>a{color:inherit;}
+.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #dddddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px;}
+.panel-group .panel{margin-bottom:0;border-radius:4px;overflow:hidden;}.panel-group .panel+.panel{margin-top:5px;}
+.panel-group .panel-heading{border-bottom:0;}.panel-group .panel-heading+.panel-collapse .panel-body{border-top:1px solid #dddddd;}
+.panel-group .panel-footer{border-top:0;}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #dddddd;}
+.panel-default{border-color:#dddddd;}.panel-default>.panel-heading{color:#333333;background-color:#f5f5f5;border-color:#dddddd;}.panel-default>.panel-heading+.panel-collapse .panel-body{border-top-color:#dddddd;}
+.panel-default>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#dddddd;}
+.panel-primary{border-color:#428bca;}.panel-primary>.panel-heading{color:#ffffff;background-color:#428bca;border-color:#428bca;}.panel-primary>.panel-heading+.panel-collapse .panel-body{border-top-color:#428bca;}
+.panel-primary>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#428bca;}
+.panel-success{border-color:#d6e9c6;}.panel-success>.panel-heading{color:#468847;background-color:#dff0d8;border-color:#d6e9c6;}.panel-success>.panel-heading+.panel-collapse .panel-body{border-top-color:#d6e9c6;}
+.panel-success>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#d6e9c6;}
+.panel-warning{border-color:#fbeed5;}.panel-warning>.panel-heading{color:#c09853;background-color:#fcf8e3;border-color:#fbeed5;}.panel-warning>.panel-heading+.panel-collapse .panel-body{border-top-color:#fbeed5;}
+.panel-warning>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#fbeed5;}
+.panel-danger{border-color:#eed3d7;}.panel-danger>.panel-heading{color:#b94a48;background-color:#f2dede;border-color:#eed3d7;}.panel-danger>.panel-heading+.panel-collapse .panel-body{border-top-color:#eed3d7;}
+.panel-danger>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#eed3d7;}
+.panel-info{border-color:#bce8f1;}.panel-info>.panel-heading{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1;}.panel-info>.panel-heading+.panel-collapse .panel-body{border-top-color:#bce8f1;}
+.panel-info>.panel-footer+.panel-collapse .panel-body{border-bottom-color:#bce8f1;}
+.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);box-shadow:inset 0 1px 1px rgba(0, 0, 0, 0.05);}.well blockquote{border-color:#ddd;border-color:rgba(0, 0, 0, 0.15);}
+.well-lg{padding:24px;border-radius:6px;}
+.well-sm{padding:9px;border-radius:3px;}
+.close{float:right;font-size:21px;font-weight:bold;line-height:1;color:#000000;text-shadow:0 1px 0 #ffffff;opacity:0.2;filter:alpha(opacity=20);}.close:hover,.close:focus{color:#000000;text-decoration:none;cursor:pointer;opacity:0.5;filter:alpha(opacity=50);}
+button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none;}
+.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid #000000;border-right:4px solid transparent;border-left:4px solid transparent;border-bottom:0 dotted;content:"";}
+.dropdown{position:relative;}
+.dropdown-toggle:focus{outline:0;}
+.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;background-color:#ffffff;border:1px solid #cccccc;border:1px solid rgba(0, 0, 0, 0.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0, 0, 0, 0.175);box-shadow:0 6px 12px rgba(0, 0, 0, 0.175);background-clip:padding-box;}.dropdown-menu.pull-right{right:0;left:auto;}
+.dropdown-menu .divider{height:1px;margin:139px 0;overflow:hidden;background-color:#e5e5e5;}
+.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:20px;color:#333333;white-space:nowrap;}
+.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#ffffff;background-color:#428bca;}
+.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#ffffff;text-decoration:none;outline:0;background-color:#428bca;}
+.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999999;}
+.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);cursor:not-allowed;}
+.open>.dropdown-menu{display:block;}
+.open>a{outline:0;}
+.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:20px;color:#999999;}
+.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990;}
+.pull-right>.dropdown-menu{right:0;left:auto;}
+.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0 dotted;border-bottom:4px solid #000000;content:"";}
+.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px;}
+@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto;}}.tooltip{position:absolute;z-index:1030;display:block;visibility:visible;font-size:12px;line-height:1.4;opacity:0;filter:alpha(opacity=0);}.tooltip.in{opacity:0.9;filter:alpha(opacity=90);}
+.tooltip.top{margin-top:-3px;padding:5px 0;}
+.tooltip.right{margin-left:3px;padding:0 5px;}
+.tooltip.bottom{margin-top:3px;padding:5px 0;}
+.tooltip.left{margin-left:-3px;padding:0 5px;}
+.tooltip-inner{max-width:200px;padding:3px 8px;color:#ffffff;text-align:center;text-decoration:none;background-color:#000000;border-radius:4px;}
+.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid;}
+.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000000;}
+.tooltip.top-left .tooltip-arrow{bottom:0;left:5px;border-width:5px 5px 0;border-top-color:#000000;}
+.tooltip.top-right .tooltip-arrow{bottom:0;right:5px;border-width:5px 5px 0;border-top-color:#000000;}
+.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000000;}
+.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000000;}
+.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000000;}
+.tooltip.bottom-left .tooltip-arrow{top:0;left:5px;border-width:0 5px 5px;border-bottom-color:#000000;}
+.tooltip.bottom-right .tooltip-arrow{top:0;right:5px;border-width:0 5px 5px;border-bottom-color:#000000;}
+.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:276px;padding:1px;text-align:left;background-color:#ffffff;background-clip:padding-box;border:1px solid #cccccc;border:1px solid rgba(0, 0, 0, 0.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);white-space:normal;}.popover.top{margin-top:-10px;}
+.popover.right{margin-left:10px;}
+.popover.bottom{margin-top:10px;}
+.popover.left{margin-left:-10px;}
+.popover-title{margin:0;padding:8px 14px;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0;}
+.popover-content{padding:9px 14px;}
+.popover .arrow,.popover .arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid;}
+.popover .arrow{border-width:11px;}
+.popover .arrow:after{border-width:10px;content:"";}
+.popover.top .arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999999;border-top-color:rgba(0, 0, 0, 0.25);bottom:-11px;}.popover.top .arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#ffffff;}
+.popover.right .arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999999;border-right-color:rgba(0, 0, 0, 0.25);}.popover.right .arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#ffffff;}
+.popover.bottom .arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999999;border-bottom-color:rgba(0, 0, 0, 0.25);top:-11px;}.popover.bottom .arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#ffffff;}
+.popover.left .arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999999;border-left-color:rgba(0, 0, 0, 0.25);}.popover.left .arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#ffffff;bottom:-10px;}
+.modal-open{overflow:hidden;}body.modal-open,.modal-open .navbar-fixed-top,.modal-open .navbar-fixed-bottom{margin-right:15px;}
+.modal{display:none;overflow:auto;overflow-y:scroll;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;}.modal.fade .modal-dialog{-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);transform:translate(0, -25%);-webkit-transition:-webkit-transform 0.3s ease-out;-moz-transition:-moz-transform 0.3s ease-out;-o-transition:-o-transform 0.3s ease-out;transition:transform 0.3s ease-out;}
+.modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);transform:translate(0, 0);}
+.modal-dialog{margin-left:auto;margin-right:auto;width:auto;padding:10px;z-index:1050;}
+.modal-content{position:relative;background-color:#ffffff;border:1px solid #999999;border:1px solid rgba(0, 0, 0, 0.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0, 0, 0, 0.5);box-shadow:0 3px 9px rgba(0, 0, 0, 0.5);background-clip:padding-box;outline:none;}
+.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1030;background-color:#000000;}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0);}
+.modal-backdrop.in{opacity:0.5;filter:alpha(opacity=50);}
+.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:35px;}
+.modal-header .close{margin-top:-2px;}
+.modal-title{margin:0;line-height:20px;}
+.modal-body{position:relative;padding:20px;}
+.modal-footer{margin-top:15px;padding:19px 20px 20px;text-align:right;border-top:1px solid #e5e5e5;}.modal-footer:before,.modal-footer:after{content:" ";display:table;}
+.modal-footer:after{clear:both;}
+.modal-footer:before,.modal-footer:after{content:" ";display:table;}
+.modal-footer:after{clear:both;}
+.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0;}
+.modal-footer .btn-group .btn+.btn{margin-left:-1px;}
+.modal-footer .btn-block+.btn-block{margin-left:0;}
+@media screen and (min-width:768px){.modal-dialog{left:50%;right:auto;width:600px;padding-top:30px;padding-bottom:30px;} .modal-content{-webkit-box-shadow:0 5px 15px rgba(0, 0, 0, 0.5);box-shadow:0 5px 15px rgba(0, 0, 0, 0.5);}}.carousel{position:relative;}
+.carousel-inner{position:relative;overflow:hidden;width:100%;}.carousel-inner>.item{display:none;position:relative;-webkit-transition:0.6s ease-in-out left;transition:0.6s ease-in-out left;}.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto;line-height:1;}
+.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block;}
+.carousel-inner>.active{left:0;}
+.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%;}
+.carousel-inner>.next{left:100%;}
+.carousel-inner>.prev{left:-100%;}
+.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0;}
+.carousel-inner>.active.left{left:-100%;}
+.carousel-inner>.active.right{left:100%;}
+.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:0.5;filter:alpha(opacity=50);font-size:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0, 0, 0, 0.6);}.carousel-control.left{background-image:-webkit-gradient(linear, 0% top, 100% top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0.0001)));background-image:-webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0.5) 0%), color-stop(rgba(0, 0, 0, 0.0001) 100%));background-image:-moz-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);background-image:linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);}
+.carousel-control.right{left:auto;right:0;background-image:-webkit-gradient(linear, 0% top, 100% top, from(rgba(0, 0, 0, 0.0001)), to(rgba(0, 0, 0, 0.5)));background-image:-webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, 0.0001) 0%), color-stop(rgba(0, 0, 0, 0.5) 100%));background-image:-moz-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);background-image:linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);}
+.carousel-control:hover,.carousel-control:focus{color:#ffffff;text-decoration:none;opacity:0.9;filter:alpha(opacity=90);}
+.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;left:50%;z-index:5;display:inline-block;}
+.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;margin-top:-10px;margin-left:-10px;font-family:serif;}
+.carousel-control .icon-prev:before{content:'\2039';}
+.carousel-control .icon-next:before{content:'\203a';}
+.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center;}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #ffffff;border-radius:10px;cursor:pointer;}
+.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#ffffff;}
+.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0, 0, 0, 0.6);}.carousel-caption .btn{text-shadow:none;}
+@media screen and (min-width:768px){.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;margin-left:-15px;font-size:30px;} .carousel-caption{left:20%;right:20%;padding-bottom:30px;} .carousel-indicators{bottom:20px;}}.clearfix:before,.clearfix:after{content:" ";display:table;}
+.clearfix:after{clear:both;}
+.pull-right{float:right !important;}
+.pull-left{float:left !important;}
+.hide{display:none !important;}
+.show{display:block !important;}
+.invisible{visibility:hidden;}
+.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0;}
+.affix{position:fixed;}
+@-ms-viewport{width:device-width;}@media screen and (max-width:400px){@-ms-viewport{width:320px;}}.hidden{display:none !important;visibility:hidden !important;}
+.visible-xs{display:none !important;}tr.visible-xs{display:none !important;}
+th.visible-xs,td.visible-xs{display:none !important;}
+@media (max-width:767px){.visible-xs{display:block !important;}tr.visible-xs{display:table-row !important;} th.visible-xs,td.visible-xs{display:table-cell !important;}}@media (min-width:768px) and (max-width:991px){.visible-xs.visible-sm{display:block !important;}tr.visible-xs.visible-sm{display:table-row !important;} th.visible-xs.visible-sm,td.visible-xs.visible-sm{display:table-cell !important;}}
+@media (min-width:992px) and (max-width:1199px){.visible-xs.visible-md{display:block !important;}tr.visible-xs.visible-md{display:table-row !important;} th.visible-xs.visible-md,td.visible-xs.visible-md{display:table-cell !important;}}
+@media (min-width:1200px){.visible-xs.visible-lg{display:block !important;}tr.visible-xs.visible-lg{display:table-row !important;} th.visible-xs.visible-lg,td.visible-xs.visible-lg{display:table-cell !important;}}
+.visible-sm{display:none !important;}tr.visible-sm{display:none !important;}
+th.visible-sm,td.visible-sm{display:none !important;}
+@media (max-width:767px){.visible-sm.visible-xs{display:block !important;}tr.visible-sm.visible-xs{display:table-row !important;} th.visible-sm.visible-xs,td.visible-sm.visible-xs{display:table-cell !important;}}
+@media (min-width:768px) and (max-width:991px){.visible-sm{display:block !important;}tr.visible-sm{display:table-row !important;} th.visible-sm,td.visible-sm{display:table-cell !important;}}@media (min-width:992px) and (max-width:1199px){.visible-sm.visible-md{display:block !important;}tr.visible-sm.visible-md{display:table-row !important;} th.visible-sm.visible-md,td.visible-sm.visible-md{display:table-cell !important;}}
+@media (min-width:1200px){.visible-sm.visible-lg{display:block !important;}tr.visible-sm.visible-lg{display:table-row !important;} th.visible-sm.visible-lg,td.visible-sm.visible-lg{display:table-cell !important;}}
+.visible-md{display:none !important;}tr.visible-md{display:none !important;}
+th.visible-md,td.visible-md{display:none !important;}
+@media (max-width:767px){.visible-md.visible-xs{display:block !important;}tr.visible-md.visible-xs{display:table-row !important;} th.visible-md.visible-xs,td.visible-md.visible-xs{display:table-cell !important;}}
+@media (min-width:768px) and (max-width:991px){.visible-md.visible-sm{display:block !important;}tr.visible-md.visible-sm{display:table-row !important;} th.visible-md.visible-sm,td.visible-md.visible-sm{display:table-cell !important;}}
+@media (min-width:992px) and (max-width:1199px){.visible-md{display:block !important;}tr.visible-md{display:table-row !important;} th.visible-md,td.visible-md{display:table-cell !important;}}@media (min-width:1200px){.visible-md.visible-lg{display:block !important;}tr.visible-md.visible-lg{display:table-row !important;} th.visible-md.visible-lg,td.visible-md.visible-lg{display:table-cell !important;}}
+.visible-lg{display:none !important;}tr.visible-lg{display:none !important;}
+th.visible-lg,td.visible-lg{display:none !important;}
+@media (max-width:767px){.visible-lg.visible-xs{display:block !important;}tr.visible-lg.visible-xs{display:table-row !important;} th.visible-lg.visible-xs,td.visible-lg.visible-xs{display:table-cell !important;}}
+@media (min-width:768px) and (max-width:991px){.visible-lg.visible-sm{display:block !important;}tr.visible-lg.visible-sm{display:table-row !important;} th.visible-lg.visible-sm,td.visible-lg.visible-sm{display:table-cell !important;}}
+@media (min-width:992px) and (max-width:1199px){.visible-lg.visible-md{display:block !important;}tr.visible-lg.visible-md{display:table-row !important;} th.visible-lg.visible-md,td.visible-lg.visible-md{display:table-cell !important;}}
+@media (min-width:1200px){.visible-lg{display:block !important;}tr.visible-lg{display:table-row !important;} th.visible-lg,td.visible-lg{display:table-cell !important;}}
+.hidden-xs{display:block !important;}tr.hidden-xs{display:table-row !important;}
+th.hidden-xs,td.hidden-xs{display:table-cell !important;}
+@media (max-width:767px){.hidden-xs{display:none !important;}tr.hidden-xs{display:none !important;} th.hidden-xs,td.hidden-xs{display:none !important;}}@media (min-width:768px) and (max-width:991px){.hidden-xs.hidden-sm{display:none !important;}tr.hidden-xs.hidden-sm{display:none !important;} th.hidden-xs.hidden-sm,td.hidden-xs.hidden-sm{display:none !important;}}
+@media (min-width:992px) and (max-width:1199px){.hidden-xs.hidden-md{display:none !important;}tr.hidden-xs.hidden-md{display:none !important;} th.hidden-xs.hidden-md,td.hidden-xs.hidden-md{display:none !important;}}
+@media (min-width:1200px){.hidden-xs.hidden-lg{display:none !important;}tr.hidden-xs.hidden-lg{display:none !important;} th.hidden-xs.hidden-lg,td.hidden-xs.hidden-lg{display:none !important;}}
+.hidden-sm{display:block !important;}tr.hidden-sm{display:table-row !important;}
+th.hidden-sm,td.hidden-sm{display:table-cell !important;}
+@media (max-width:767px){.hidden-sm.hidden-xs{display:none !important;}tr.hidden-sm.hidden-xs{display:none !important;} th.hidden-sm.hidden-xs,td.hidden-sm.hidden-xs{display:none !important;}}
+@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none !important;}tr.hidden-sm{display:none !important;} th.hidden-sm,td.hidden-sm{display:none !important;}}@media (min-width:992px) and (max-width:1199px){.hidden-sm.hidden-md{display:none !important;}tr.hidden-sm.hidden-md{display:none !important;} th.hidden-sm.hidden-md,td.hidden-sm.hidden-md{display:none !important;}}
+@media (min-width:1200px){.hidden-sm.hidden-lg{display:none !important;}tr.hidden-sm.hidden-lg{display:none !important;} th.hidden-sm.hidden-lg,td.hidden-sm.hidden-lg{display:none !important;}}
+.hidden-md{display:block !important;}tr.hidden-md{display:table-row !important;}
+th.hidden-md,td.hidden-md{display:table-cell !important;}
+@media (max-width:767px){.hidden-md.hidden-xs{display:none !important;}tr.hidden-md.hidden-xs{display:none !important;} th.hidden-md.hidden-xs,td.hidden-md.hidden-xs{display:none !important;}}
+@media (min-width:768px) and (max-width:991px){.hidden-md.hidden-sm{display:none !important;}tr.hidden-md.hidden-sm{display:none !important;} th.hidden-md.hidden-sm,td.hidden-md.hidden-sm{display:none !important;}}
+@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none !important;}tr.hidden-md{display:none !important;} th.hidden-md,td.hidden-md{display:none !important;}}@media (min-width:1200px){.hidden-md.hidden-lg{display:none !important;}tr.hidden-md.hidden-lg{display:none !important;} th.hidden-md.hidden-lg,td.hidden-md.hidden-lg{display:none !important;}}
+.hidden-lg{display:block !important;}tr.hidden-lg{display:table-row !important;}
+th.hidden-lg,td.hidden-lg{display:table-cell !important;}
+@media (max-width:767px){.hidden-lg.hidden-xs{display:none !important;}tr.hidden-lg.hidden-xs{display:none !important;} th.hidden-lg.hidden-xs,td.hidden-lg.hidden-xs{display:none !important;}}
+@media (min-width:768px) and (max-width:991px){.hidden-lg.hidden-sm{display:none !important;}tr.hidden-lg.hidden-sm{display:none !important;} th.hidden-lg.hidden-sm,td.hidden-lg.hidden-sm{display:none !important;}}
+@media (min-width:992px) and (max-width:1199px){.hidden-lg.hidden-md{display:none !important;}tr.hidden-lg.hidden-md{display:none !important;} th.hidden-lg.hidden-md,td.hidden-lg.hidden-md{display:none !important;}}
+@media (min-width:1200px){.hidden-lg{display:none !important;}tr.hidden-lg{display:none !important;} th.hidden-lg,td.hidden-lg{display:none !important;}}
+.visible-print{display:none !important;}tr.visible-print{display:none !important;}
+th.visible-print,td.visible-print{display:none !important;}
+@media print{.visible-print{display:block !important;}tr.visible-print{display:table-row !important;} th.visible-print,td.visible-print{display:table-cell !important;} .hidden-print{display:none !important;}tr.hidden-print{display:none !important;} th.hidden-print,td.hidden-print{display:none !important;}}.fade{opacity:0;-webkit-transition:opacity 0.15s linear;transition:opacity 0.15s linear;}.fade.in{opacity:1;}
+.collapse{display:none;}.collapse.in{display:block;}
+.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition:height 0.35s ease;transition:height 0.35s ease;}
diff --git a/css/color_scheme.css b/css/color_scheme.css
new file mode 100755
index 0000000..289ea3a
--- /dev/null
+++ b/css/color_scheme.css
@@ -0,0 +1,347 @@
+/* Color of the very top line in reDesign Template
+---------------------------------------------------------------------- */
+
+.top_line {
+ background-color: #2773ae;
+}
+
+/* Color that link text will appear as
+---------------------------------------------------------------------- */
+
+a {
+ color: #2773ae;
+}
+
+/* Color that appears when user hovers over a link
+---------------------------------------------------------------------- */
+
+a:hover {
+ color: #2773ae;
+}
+
+/* Text color of the active link in a drop down menu
+---------------------------------------------------------------------- */
+
+.navbar .nav .open .dropdown-menu .active a {
+ color: #2773ae;
+}
+
+/* Text color of the active link in a drop down menu when you hover over it
+---------------------------------------------------------------------- */
+
+.navbar .nav .open .dropdown-menu .active a:hover {
+ color: #2773ae;
+}
+
+/* Text color of the active navbar item
+---------------------------------------------------------------------- */
+
+.navbar .nav .active > a, .navbar .nav .active > a:hover, .navbar .nav .active a > i, .navbar .nav .active a > i:hover {
+ color: #2773ae;
+}
+
+/* Primary menu text color when you hover over it (does not include the sub-menu text)
+---------------------------------------------------------------------- */
+
+.navbar .nav li.dropdown.open > .dropdown-toggle, .navbar .nav li.dropdown.active > .dropdown-toggle, .navbar .nav li.dropdown.open.active > .dropdown-toggle {
+ color: #2773ae;
+}
+
+/* Color of the stripe in a dropdown menu when you hover over vertical menu item
+---------------------------------------------------------------------- */
+
+.navbar .nav > li .dropdown-menu li a:hover {
+ background-color: #292929;
+ background-image: none !important;
+ filter: none;
+}
+
+/* Color of the text in a dropdown menu when you hover over it
+---------------------------------------------------------------------- */
+
+.navbar .nav > li .dropdown-menu li a:hover {
+ color: #2773ae;
+}
+
+/* Color of the menu bar's sub-menu text when you hover over it and the color of both the primary and sub-menu text that has no sub-nav when you hover over it
+---------------------------------------------------------------------- */
+
+.navbar .nav > li:hover a, .navbar .nav > li:hover a i {
+ color: #2773ae;
+}
+
+/* Color of bar above active menu item or menu item when you hover over it
+---------------------------------------------------------------------- */
+
+.navbar .nav .active > a, .navbar .nav li:hover > a {
+ border-top: 3px solid #2773ae;
+}
+
+/* Color of Twitter bar
+---------------------------------------------------------------------- */
+
+.recent-tweets {
+ background-color: #2773ae;
+}
+
+/* Color of First and Last Name on blog comments
+---------------------------------------------------------------------- */
+
+.comments .name {
+ color: #2773ae;
+}
+
+/* Headline that shows the number of comments on a blog post
+---------------------------------------------------------------------- */
+
+.comments h2 {
+ color: #2773ae;
+}
+
+/* Theme colored dropcap (the standard dropcap is black)
+---------------------------------------------------------------------- */
+
+.dropcap-theme {
+ color: #2773ae;
+}
+
+/* Color of table headers in non-highlighted price tables
+---------------------------------------------------------------------- */
+
+.dif-table .title {
+ background-color: #2773ae;
+}
+
+/* Color of pricing/cost text in price tables
+---------------------------------------------------------------------- */
+
+.dif-table .cost {
+ color: #2773ae;
+}
+
+/* Color tab on text divider 5
+---------------------------------------------------------------------- */
+
+.text-divider5 span {
+ background-color: #2773ae;
+}
+
+/* Color tab on text divider 6
+---------------------------------------------------------------------- */
+
+.text-divider6 span {
+ background-color: #2773ae;
+}
+
+/* Highlight color of image slides when you hover them in portfolio items
+---------------------------------------------------------------------- */
+
+.portfolio-slider #carousel .slides li:hover {
+ border: 2px solid #2773ae;
+}
+
+/* Highlight color of the active image slide in portfolio items
+---------------------------------------------------------------------- */
+
+.portfolio-slider #carousel .slides li.flex-active-slide {
+ border: 2px solid #2773ae;
+}
+
+/* Background color of mobile dropdown nav
+---------------------------------------------------------------------- */
+
+.buttons-container {
+ background-color: #2773ae;
+}
+
+/* Color of active nav filter on portfolio and portfolio grid pages
+---------------------------------------------------------------------- */
+
+.nav-pills > .active > a, .nav-pills > .active > a:hover {
+ background-color: #2773ae;
+}
+
+/* Check icon color
+---------------------------------------------------------------------- */
+.icon-ok {
+ color: #333333;
+}
+
+/* Portfolio mode switches color theme
+---------------------------------------------------------------------- */
+
+.portfolio-switch li a {
+ display: block;
+ width: 42px;
+ height: 27px;
+ background: transparent url("../img/portfolio_toggles.png") top left no-repeat;
+ border-radius: 5px;
+}
+.portfolio-switch li.collapsed a {
+ background-position: 0 -31px;
+ background-color: #cccccc;
+}
+.portfolio-switch li.collapsed a:hover {
+ background-color: #2773ae;
+}
+.portfolio-switch li.collapsed a:hover, .portfolio-switch li.collapsed a.active {
+ background-position: 0 -31px;
+}
+.portfolio-switch li.simple a {
+ background-position: 0 0;
+ background-color: #cccccc;
+}
+.portfolio-switch li.simple a:hover {
+ background-color: #2773ae;
+ background-position: 0 0;
+}
+.portfolio-switch li a.active {
+ background-color: #2773ae;
+}
+.fancy-wrapper .fancy {
+ /* background: url("../img/home_portfolio_hover_orange.png") no-repeat scroll center center transparent; */
+ background-color:#2773ae;
+
+}
+.fancy-wrapper .fancy:after {
+ content: "\f067";
+ position:absolute;
+ top:0;
+ left:0;
+ width:300px;
+ height:200px;
+ line-height:212px;
+ text-align:center;
+ color:#fff;
+ font-size:60px;
+ font-family: FontAwesome;
+}
+.portfolio-grid-1 .hp-wrapper:hover .bottom-block-optional:after {
+ content:'';
+ width:11px;
+ height:3px;
+ position:absolute;
+ bottom:0;
+ left:50%;
+ margin-left:-5px;
+ background:#2773ae;
+}
+/*.portfolio-grid-1:hover .small .bottom-block, .portfolio-grid-1:hover .middle .bottom-block, .portfolio-grid-1:hover .tall .bottom-block {
+ border-bottom: 1px solid #2773AE;
+}*/
+.portfolio-grid-1 .hp-wrapper .bottom-block {
+ border-bottom: 1px solid transparent;
+}
+.portfolio-grid-1 .hp-wrapper:hover .bottom-block {
+ border-bottom: 1px solid #2773ae;
+}
+.portfolio-grid-1 .hp-wrapper:hover {
+ border-bottom: 1px solid #2773ae;
+}
+a.cs-logo {
+ background: url("../img/logo.png") no-repeat top left transparent;
+}
+/*Dark grey hero-unit background
+----------------------------------------------------------------------*/
+.dark-hero {
+ background: url("../img/dark_tissue.png") repeat scroll 0 0 transparent;
+}
+/*Dark grey hero-unit button styles
+----------------------------------------------------------------------*/
+.dark-hero .btn {
+ font-size: 24px;
+ padding: 10px 67px;
+ background-image: linear-gradient(bottom, #6DA8CF 10%, #0768AD 55%, #0064AC 78%);
+ background-image: -o-linear-gradient(bottom, #6DA8CF 10%, #0768AD 55%, #0064AC 78%);
+ background-image: -moz-linear-gradient(bottom, #6DA8CF 10%, #0768AD 55%, #0064AC 78%);
+ background-image: -webkit-linear-gradient(bottom, #6DA8CF 10%, #0768AD 55%, #0064AC 78%);
+ background-image: -ms-linear-gradient(bottom, #6DA8CF 10%, #0768AD 55%, #0064AC 78%);
+
+ background-image: -webkit-gradient(
+ linear,
+ left bottom,
+ left top,
+ color-stop(0.1, #6DA8CF),
+ color-stop(0.55, #0768AD),
+ color-stop(0.78, #0064AC)
+ );
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+ line-height: 20px;
+}
+.dark-hero .btn:hover {
+ background-image: linear-gradient(bottom, #6DA8CF 10%, #1E77B6 55%, #1E77B6 78%);
+ background-image: -o-linear-gradient(bottom, #6DA8CF 10%, #1E77B6 55%, #1E77B6 78%);
+ background-image: -moz-linear-gradient(bottom, #6DA8CF 10%, #1E77B6 55%, #1E77B6 78%);
+ background-image: -webkit-linear-gradient(bottom, #6DA8CF 10%, #1E77B6 55%, #1E77B6 78%);
+ background-image: -ms-linear-gradient(bottom, #6DA8CF 10%, #1E77B6 55%, #1E77B6 78%);
+
+ background-image: -webkit-gradient(
+ linear,
+ left bottom,
+ left top,
+ color-stop(0.1, #6DA8CF),
+ color-stop(0.55, #1E77B6),
+ color-stop(0.78, #1E77B6)
+ );
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled=false);
+ background-position: 0 0;
+}
+
+/* Price Tables check-icon color
+---------------------------------------------------------------------- */
+
+.dif-table ul li i {
+ color: #37bf01;
+ padding-right: 1px;
+}
+
+/* Price Tables primary buttons color
+---------------------------------------------------------------------- */
+
+.price-table-object .btn-primary {
+ color: white;
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+ background-color: #006DCC;
+ background-image: -moz-linear-gradient(top, #08C, #04C);
+ background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#08C), to(#04C));
+ background-image: -webkit-linear-gradient(top, #08C, #04C);
+ background-image: -o-linear-gradient(top, #08C, #04C);
+ background-image: linear-gradient(to bottom, #08C, #04C);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff0088cc', endColorstr='#ff0044cc', GradientType=0);
+ border-color: #04C #04C #002A80;
+ border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
+}
+
+.price-table-object .btn:hover {
+ color: #333;
+ text-decoration: none;
+ background-color: #E6E6E6;
+ background-position: 0 -15px;
+ -webkit-transition: background-position 0.1s linear;
+ -moz-transition: background-position 0.1s linear;
+ -o-transition: background-position 0.1s linear;
+ transition: background-position 0.1s linear;
+}
+.price-table-object .btn-primary:hover, .price-table-object .btn-primary:active, .price-table-object .btn-primary.active, .price-table-object .btn-primary.disabled, .price-table-object .btn-primary[disabled] {
+ color: white;
+ background-color: #04C;
+}
+
+
+/* Switch primary color to green
+---------------------------------------------------------------------- */
+
+.portfolio-grid-1 .hp-wrapper:hover, blockquote.greyb, blockquote.blueb, header .navbar .nav .active > a, header .navbar .nav li:hover > a, #top > .navbar, .portfolio-slider #carousel .slides li:hover, .fc-event-skin {
+ border-color: #5CAF91;
+}
+header .navbar .nav > li:hover > a, header .navbar .nav > li:hover > a i, header .navbar .nav > li .dropdown-menu li a:hover, header .navbar .nav li.dropdown.open > .dropdown-toggle, header .navbar .nav li.dropdown.active > .dropdown-toggle, header .navbar .nav li.dropdown.open.active > .dropdown-toggle, a, header .navbar .nav .active > a, header .navbar .nav .active > a:hover, header .navbar .nav .active a > i, header .navbar .nav .active a > i:hover, .dif-table .cost, header .navbar .nav .open .dropdown-menu .active a, .text-info, .tbox-heading a:hover, .comments h2, .comments .name, a:hover, .portfolio-grid-1 .hp-wrapper .top-link:after, .dark-hero h1 span, .line_title h2 a, .lined-title-wrapper .all, blockquote.blueb:before, blockquote.greyb smallm, blockquote.greyb:before, blockquote.greyb small, #menu .active a .label, #menu *:hover a .label {
+ color: #5CAF91;
+}
+.mtp-primary-color, .bannercontainer .slide .big, .buttons-container, .top_line, .recent-tweets, #mtp-toggle, .dif-table .title, .nav-pills > .active > a, .nav-pills > .active > a:hover, .hero-list .image-wrapper .img, .portfolio-switch li a.active, .portfolio-switch li.simple a:hover, .portfolio-switch li.collapsed a:hover, .coming-soon-content, .soft-updates .date-img, .fancy-wrapper .fancy, .portfolio-grid-1 .hp-wrapper:hover .bottom-block-optional:after, .dropdown-menu li > a:hover, .dropdown-menu li > a:focus, .dropdown-submenu:hover > a, ul#menu > li > a:hover, ul#menu > li:hover > a, ul#menu > li.active > a, #mtp-wrapper .options-link a, .head, #menu a .label, #left .user-media a.user-link .user-label, #changeSidebarPos, #top_btn_group .btn .label, .fc-event-skin {
+ background-color: #5CAF91;
+}
+ul#menu > li > a:hover, ul#menu > li:hover > a, ul#menu > li.active > a {
+ box-shadow: 0 1px 0 0 #5CAF91 inset;
+}
diff --git a/css/custom.css b/css/custom.css
new file mode 100755
index 0000000..ec90d01
--- /dev/null
+++ b/css/custom.css
@@ -0,0 +1,3381 @@
+/*Custom CSS*/
+/*Custom Landscapes Start*/
+#over {
+ position:relative;
+ overflow:hidden;
+}
+#out_container {
+ margin:0 auto;
+ background:#fff;
+ box-shadow:0 0 10px rgba(0,0,0,.5)
+
+}
+#out_container.boxed {
+ margin:20px auto;
+}
+#load span {
+ opacity:0;
+ position:absolute;
+ top:50%;
+ left:50%;
+ width:128px;
+ height:26px;
+ margin:-13px 0 0 -64px;
+ background:url('../img/299.GIF') 0 0 no-repeat;
+}
+
+.tweets-slide .slides li p{ color: #fff; padding: 0; margin: 0;}
+
+/* Default */
+@media (min-width: 980px) {
+ #out_container.boxed, #out_container.boxed-attached {
+ width:980px;
+ }
+ .three-columns-central {
+ border-left: 1px solid #D4D4D4;
+ border-right: 1px solid #D4D4D4;
+ padding: 21px 19px 0;
+ box-sizing: content-box;
+ margin-left: 20px;
+ width: 460px;
+ }
+ .two-columns-left {
+ border-left: 1px solid #D4D4D4;
+ padding: 21px 0 0 19px;
+ margin-left: 20px;
+ }
+ .two-columns-right {
+ border-right: 1px solid #D4D4D4;
+ padding: 21px 19px 0 0;
+ margin-left: 10px;
+ }
+ .sidebar {
+ width: 200px;
+ }
+ .portfolio-grid-1 .middle {
+ margin-bottom: 20px;
+ }
+ .portfolio-grid-1 .small {
+ margin-bottom: 20px;
+ }
+ .portfolio-grid-1 .large {
+ margin-bottom: 20px;
+ }
+ .portfolio-grid-1 .tall {
+ margin-bottom: 20px;
+ }
+ .comments .comment-date {
+ text-align: right;
+ }
+ .post-item-panel ul li.comments {
+ float: right;
+ }
+ .member-divider {
+ margin-left: 20px;
+ }
+ .two-col-team .span4 {
+ width: 340px;
+ }
+ .head_phone {
+ text-align: right;
+ }
+ ul.socials {
+ float: right;
+ margin-top: 20px;
+ text-align: center;
+ padding-right: 10px;
+ }
+ .carousel-caption {
+ position: absolute;
+ right: 30px;
+ left: auto;
+ bottom: 20px;
+ width: 50%;
+ }
+ .slider4 .carousel-caption {
+ bottom: auto;
+ left: 20px;
+ position: absolute;
+ right: auto;
+ top: 20px;
+ width: 50%;
+ }
+ .flexslider .left-top {
+ left: 20px;
+ top: 20px;
+ bottom: auto;
+ }
+ .flexslider .right-top {
+ right: 20px;
+ top: 20px;
+ bottom: auto;
+ }
+ .flexslider .left-bottom {
+ left: 20px;
+ bottom: 20px;
+ }
+ .flexslider .right-bottom {
+ right: 20px;
+ bottom: 20px;
+ }
+ .footer-wrapper .span4 {
+ width: 290px;
+ padding-left: 10px;
+ }
+ .navbar {
+ border-top: 1px solid #CCC;
+ border-bottom: 1px solid #CCC;
+ border: none;
+ }
+ .dif-table {
+ margin-left: 20px;
+ }
+ .dif-table .table-column {
+ border-width: 1px 0 1px 1px;
+ }
+ .price-table1 .col-md-2 {
+ width: 159px;
+ }
+ .price-table1 .col-md-3 {
+ width: 218px;
+ }
+ .price-table2 .col-md-2 {
+ width: 199px;
+ }
+ .price-table2 .col-md-3 {
+ width: 298px;
+ }
+ .price-table3 .col-md-2 {
+ width: 343px;
+ }
+ .price-table3 .col-md-3 {
+ width: 354px;
+ }
+ .quote-left, .quote-right {
+ margin: 0 20px 0 0;
+ }
+ .portfolio-slider #carousel {
+ margin-bottom: 20px;
+ margin-left: 102px;
+ width: 722px;
+ }
+ .portfolio-slider #carousel .flex-prev {
+ left: -48px;
+ top: 26%;
+ }
+ .portfolio-slider #carousel .flex-next {
+ right: -48px;
+ top: 26%;
+ }
+ .gallery .thumbnail {
+ display: block;
+ }
+ .gallery li:hover .top-link {
+ border-color: #0088CC;
+ box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);
+ }
+ #gallery-main .col-md-3 {
+ width: 220px;
+ height: 170px;
+ box-shadow: 0 1px 5px #CCCCCC;
+ padding: 0;
+ margin: 0 10px 20px;
+ }
+ #gallery .col-md-3 {
+ width: 220px;
+ padding: 0;
+ margin: 0 10px 20px;
+ height: 160px;
+ }
+ .portfolio-grid-1 .gallery li:hover .hover-shade {
+ left: 5px;
+ top: 5px;
+ }
+ #home_responsive .col-md-3 {
+ width: 220px;
+ padding: 0;
+ margin: 0 10px 20px;
+ height: 160px;
+ }
+ #home_responsive .col-md-6 {
+ width: 460px;
+ padding: 0;
+ margin: 0 10px 20px;
+ height: 160px;
+ }
+ #home_responsive .tall {
+ height: 340px;
+ }
+ #portfolio .col-md-3 {
+ width: 460px;
+ }
+ #portfolio .large {
+ height: 340px;
+ padding: 0;
+ margin: 0 10px 20px;
+ }
+ #portfolio .col-md-3 {
+ width: 220px;
+ padding: 0;
+ margin: 0 10px 20px;
+ height: 160px;
+ }
+ #portfolio .col-md-6 {
+ width: 460px;
+ padding: 0;
+ margin: 0 10px 20px;
+ }
+ #portfolio .middle {
+ width: 460px;
+ }
+ #portfolio .middle {
+ height: 160px;
+ }
+ #clients .col-md-2 {
+ width: 160px;
+ height: 125px;
+ }
+ #responsive-menu-button {
+ display: none;
+ }
+ .buttons-container {
+ display: none;
+ }
+ .tweets-slide .slides li {
+ width: 79%;
+ overflow: hidden;
+ }
+ .follow_img {
+ display: block;
+ }
+ .attention-sidestick {
+ background: url("../img/sticker_sidebar_yellow.png") no-repeat scroll 0 0 transparent;
+ }
+ .white-sidestick {
+ background: url("../img/sticker_sidebar_white.png") no-repeat scroll 0 0 transparent;
+ }
+ .alert-sidestick {
+ background: url("../img/sticker_sidebar_red.png") no-repeat scroll 0 0 transparent;
+ }
+ .success-sidestick {
+ background: url("../img/sticker_sidebar_green.png") no-repeat scroll 0 0 transparent;
+ }
+ .note-sidestick {
+ background: url("../img/sticker_sidebar_blue.png") no-repeat scroll 0 0 transparent;
+ }
+ .sidebar-stick {
+ height: 187px;
+ margin-left: -15px;
+ padding: 25px 41px 25px 25px;
+ text-align: center;
+ width: 179px;
+ }
+ .sidebar-stick h3 {
+ font-size: 22px;
+ }
+ #gallery-main .hover-shade {
+ height: 160px;
+ width: 210px;
+ }
+ .tour-btn {
+ padding: 51px 35px 35px;
+ }
+ .logo {
+ margin: 15px 0;
+ }
+ .logo .logo {
+ margin: 0;
+ }
+ .mini-blocks .block1 {
+ background-image: linear-gradient(bottom, #FFFFFF 89%, #F9F9F9 98%, #F0F0F0 100%);
+ background-image: -o-linear-gradient(bottom, #FFFFFF 89%, #F9F9F9 98%, #F0F0F0 100%);
+ background-image: -moz-linear-gradient(bottom, #FFFFFF 89%, #F9F9F9 98%, #F0F0F0 100%);
+ background-image: -webkit-linear-gradient(bottom, #FFFFFF 89%, #F9F9F9 98%, #F0F0F0 100%);
+ background-image: -ms-linear-gradient(bottom, #FFFFFF 89%, #F9F9F9 98%, #F0F0F0 100%);
+ background-image: -webkit-gradient( linear, left bottom, left top, color-stop(0.89, #FFFFFF), color-stop(0.98, #F9F9F9), color-stop(1, #F0F0F0) );
+ }
+ .mini-blocks .block1 {
+ width: 313px;
+ }
+ .mini-blocks .block3 {
+ width: 305px;
+ margin-left: 0;
+ background-image: linear-gradient(bottom, #FFFFFF 89%, #F9F9F9 98%, #F0F0F0 100%);
+ background-image: -o-linear-gradient(bottom, #FFFFFF 89%, #F9F9F9 98%, #F0F0F0 100%);
+ background-image: -moz-linear-gradient(bottom, #FFFFFF 89%, #F9F9F9 98%, #F0F0F0 100%);
+ background-image: -webkit-linear-gradient(bottom, #FFFFFF 89%, #F9F9F9 98%, #F0F0F0 100%);
+ background-image: -ms-linear-gradient(bottom, #FFFFFF 89%, #F9F9F9 98%, #F0F0F0 100%);
+ background-image: -webkit-gradient( linear, left bottom, left top, color-stop(0.89, #FFFFFF), color-stop(0.98, #F9F9F9), color-stop(1, #F0F0F0) );
+ }
+ .features-block {
+ margin-bottom: 40px;
+ }
+ .features-block .col-md-6 {
+ padding-left: 20px;
+ }
+ .features-block .more {
+ padding-left: 38px;
+ display: block;
+ clear: both;
+ }
+ #home_responsive {
+ margin-bottom: 20px;
+ }
+ .portfolio-grid-1 .hp-wrapper .bottom-block-optional {
+ text-align: center;
+ }
+ .coming-soon-subscribe input {
+ width: 288px;
+ height: 22px;
+ border-radius: 0;
+ margin-right: 10px;
+ }
+ .coming-soon-btn {
+ margin-left: 0;
+ border: none;
+ padding: 6px 15px;
+ height: auto;
+ }
+ ul.socials {
+ margin-bottom: 0;
+ }
+ #right-sidebar {
+ margin-left: 20px;
+ padding-left: 0;
+ }
+}
+
+/* Portrait tablet to landscape and desktop */
+@media (min-width: 768px) and (max-width: 979px) {
+ .navbar-collapse {
+ display: none;
+ border-bottom: 1px solid;
+ }
+ #out_container.boxed, #out_container.boxed-attached {
+ width:764px;
+ }
+ .three-columns-central {
+ border-left: 1px solid #D4D4D4;
+ border-right: 1px solid #D4D4D4;
+ padding: 21px 19px 0;
+ box-sizing: content-box;
+ -moz-box-sizing: content-box;
+ -webkit-box-sizing: content-box;
+ margin-left: 20px;
+ width: 352px;
+ }
+ .two-columns-left {
+ border-left: 1px solid #D4D4D4;
+ padding: 21px 0 0 19px;
+ margin-left: 20px;
+ }
+ .two-columns-right {
+ border-right: 1px solid #D4D4D4;
+ padding: 21px 19px 0 0;
+ margin-left: 10px;
+ }
+ .sidebar {
+ width: 146px;
+ }
+ .portfolio-grid-1 .middle {
+ margin-bottom: 20px;
+ }
+ .portfolio-grid-1 .small {
+ margin-bottom: 20px;
+ }
+ .portfolio-grid-1 .large {
+ margin-bottom: 20px;
+ }
+ .portfolio-grid-1 .tall {
+ margin-bottom: 20px;
+ }
+ .comments .comment-date {
+ text-align: right;
+ }
+ .post-item-panel ul li.comments {
+ float: right;
+ }
+ .member-divider {
+ margin-left: 20px;
+ }
+ .two-col-team .span4 {
+ width: 259px;
+ }
+ .head_phone {
+ text-align: right;
+ }
+ ul.socials {
+ float: right;
+ margin-top: 20px;
+ text-align: center;
+ padding-right: 10px;
+ margin-bottom: 0;
+ }
+ .contact-info ul.socials {
+ width: auto;
+ margin: 0 0 35px 0;
+ }
+ .carousel-caption {
+ position: absolute;
+ right: 30px;
+ bottom: 20px;
+ width: 50%;
+ left: auto;
+ }
+ .slider4 .carousel-caption {
+ bottom: auto;
+ left: 20px;
+ position: absolute;
+ right: auto;
+ top: 20px;
+ width: 50%;
+ }
+ .flexslider .left-top {
+ left: 20px;
+ top: 20px;
+ bottom: auto;
+ }
+ .flexslider .right-top {
+ right: 20px;
+ top: 20px;
+ bottom: auto;
+ }
+ .flexslider .left-bottom {
+ left: 20px;
+ bottom: 20px;
+ }
+ .flexslider .right-bottom {
+ right: 20px;
+ bottom: 20px;
+ }
+ .navbar {
+ border: none;
+ }
+ .dif-table {
+ margin-left: 20px;
+ }
+ .dif-table .table-column {
+ border-width: 1px 0 1px 1px;
+ }
+ .price-table1 .col-md-2 {
+ width: 119px;
+ }
+ .price-table1 .col-md-3 {
+ width: 175px;
+ }
+ .price-table2 .col-md-2 {
+ width: 159px;
+ }
+ .price-table2 .col-md-3 {
+ width: 216px;
+ }
+ .price-table3 .col-md-2 {
+ width: 260px;
+ }
+ .price-table3 .col-md-3 {
+ width: 275px;
+ }
+ .quote-left, .quote-right {
+ margin: 0 20px 0 0;
+ }
+ .portfolio-slider #carousel {
+ width: auto;
+ margin-left: 0;
+ }
+ .portfolio-slider #carousel .flex-prev {
+ left: 20px;
+ top: 26%;
+ }
+ .portfolio-slider #carousel .flex-next {
+ right: 20px;
+ top: 26%;
+ }
+ .gallery .thumbnail {
+ display: block;
+ }
+ #gallery-main .col-md-3 {
+ width: 220px;
+ height: 170px;
+ margin: 0 10px 20px;
+ padding: 0;
+ }
+ #gallery .col-md-3 {
+ width: 220px;
+ height: 160px;
+ }
+ .portfolio-grid-1 .gallery li:hover .hover-shade {
+ left: 5px;
+ top: 5px;
+ }
+ #home_responsive .col-md-3 {
+ width: 220px;
+ padding: 0;
+ margin: 0 10px 20px;
+ height: 160px;
+ }
+ #home_responsive .col-md-6 {
+ width: 460px;
+ padding: 0;
+ margin: 0 10px 20px;
+ height: 160px;
+ }
+ #home_responsive .tall {
+ height: 340px;
+ }
+ #portfolio .col-md-6 {
+ width: 460px;
+ }
+ #portfolio .large {
+ height: 340px;
+ }
+ #portfolio .col-md-3 {
+ width: 220px;
+ padding: 0;
+ margin: 0 10px 20px;
+ height: 160px;
+ }
+ #portfolio .col-md-6 {
+ width: 460px;
+ padding: 0;
+ margin: 0 10px 20px;
+ }
+ #portfolio .middle {
+ width: 460px;
+ }
+ #portfolio .middle {
+ height: 160px;
+ }
+ #clients .col-md-2 {
+ width: 160px;
+ height: 125px;
+ }
+ .navbar .btn-navbar {
+ cursor: pointer;
+ opacity: 0;
+ position: absolute;
+ top: 0;
+ z-index: 1000;
+ width: 400px;
+ height: 27px;
+ }
+ #responsive-menu-button {
+ display: block;
+ background: url("../img/selectnav.png") no-repeat scroll 0 0 transparent;
+ color: #000000;
+ cursor: pointer;
+ font-family: Arial;
+ font-size: 12px;
+ height: 27px;
+ margin-top: 10px;
+ padding: 13px;
+ position: relative;
+ width: 400px;
+ z-index: 5;
+ }
+ .buttons-container {
+ position: relative;
+ text-align: center;
+ margin: 0 auto;
+ height: 27px;
+ }
+ .sidebar-news-widget .date .icon-calendar {
+ display: none;
+ }
+ .portfolio-slider #carousel {
+ margin-bottom: 20px;
+ }
+ .buttons-container {
+ margin: 0 -24px 0 -20px;
+ }
+ .tweets-slide .slides li {
+ width: 72%;
+ overflow: hidden;
+ }
+ .follow_img {
+ display: block;
+ }
+ .attention-sidestick {
+ background: url("../img/sticker_small_yellow.png") no-repeat scroll 0 0 transparent;
+ }
+ .white-sidestick {
+ background: url("../img/sticker_small_white.png") no-repeat scroll 0 0 transparent;
+ }
+ .alert-sidestick {
+ background: url("../img/sticker_small_red.png") no-repeat scroll 0 0 transparent;
+ }
+ .success-sidestick {
+ background: url("../img/sticker_small_green.png") no-repeat scroll 0 0 transparent;
+ }
+ .note-sidestick {
+ background: url("../img/sticker_small_blue.png") no-repeat scroll 0 0 transparent;
+ }
+ .sidebar-stick {
+ height: 154px;
+ margin-left: -10px;
+ padding: 15px 18px 10px 10px;
+ text-align: center;
+ width: 146px;
+ }
+ .sidebar-stick h3 {
+ font-size: 14px;
+ line-height: 17px;
+ margin-bottom: 4px;
+ font-weight: bold;
+ }
+ .sidebar-stick p {
+ font-size: 11px;
+ }
+ .hero-list h2 {
+ font-size: 14px;
+ }
+ #gallery-main .hover-shade {
+ height: 160px;
+ width: 210px;
+ }
+ .tour-btn {
+ padding: 51px 35px 35px;
+ }
+ .logo {
+ margin: 27px 0;
+ }
+ .logo .logo {
+ margin-left: 0;
+ }
+ .portfolio-grid-1 .hp-wrapper .bottom-block-optional {
+ text-align: center;
+ }
+ .coming-soon-subscribe input {
+ width: 288px;
+ height: 22px;
+ border-radius: 0;
+ margin-right: 10px;
+ }
+ .coming-soon-subscribe .coming-soon-btn {
+ margin-left: 0;
+ border: none;
+ background-color: #000000;
+ color: #ffffff;
+ padding: 6px 15px;
+ height: auto;
+ }
+ .mini-blocks .block1, .mini-blocks .block2, .mini-blocks .block3 {
+ width: 32.333333333%;
+ }
+ #right-sidebar {
+ margin-left: 20px;
+ padding-left: 0;
+ }
+}
+
+
+/* Landscape phone to portrait tablet */
+@media (max-width: 767px) {
+ .navbar-collapse {
+ display: none;
+ border-bottom: 1px solid;
+ }
+ body {
+ padding:0;
+ }
+ #out_container {
+ padding:0 20px;}
+ #out_container.boxed, #out_container.boxed-attached {
+ width:auto;
+ margin-left:20px;
+ margin-right:20px;
+ }
+ .sidebar {
+ width: auto;
+ }
+ .three-columns-central, .two-columns-left, .two-columns-right {
+ border: none;
+ padding: 21px 0 0 0;
+ }
+ .hero-list div.col-md-3 {
+ min-height: 114px;
+ }
+ .portfolio-grid-1 .middle {
+ margin-bottom: 20px;
+ }
+ .portfolio-grid-1 .small {
+ margin-bottom: 20px;
+ }
+ .portfolio-grid-1 .large {
+ margin-bottom: 20px;
+ }
+ .portfolio-grid-1 .tall {
+ margin-bottom: 20px;
+ }
+ .top_line, .footer-top, .recent-tweets, .footer-wrapper, .footer-bottom {
+ margin: 0 -20px 0;
+ }
+ .block-posts .col-md-3 {
+ margin-bottom: 20px;
+ }
+ .block-posts .last {
+ margin-bottom: 0;
+ }
+ .comments .comment-date {
+ text-align: left;
+ }
+ .form-button-offset {
+ margin-left: 0;
+ }
+ .reply-form h2 {
+ margin-left: 0;
+ }
+ .post-item-panel ul li.comments {
+ float: left;
+ }
+ .bordered-img {
+ display: inline-block;
+ }
+ .member-divider {
+ margin-left: 0;
+ }
+ .two-col-team .span4 {
+ width: auto;
+ }
+ .logo {
+ text-align: center;
+ margin: 14px 0;
+ }
+ .logo img {
+ display: inline;
+ }
+ .head_phone {
+ text-align: center;
+ }
+ ul.socials {
+ margin: 0 auto 35px;
+ overflow: hidden;
+ margin-top: 20px;
+ text-align: center;
+ padding-left: 0;
+ }
+ .contact-info ul.socials {
+ width: auto;
+ margin: 0 0 35px 0;
+ }
+ .carousel-caption {
+ right: 0;
+ left: 0;
+ bottom: 0;
+ }
+ .footer-wrapper .span4 {
+ padding-left: 10px;
+ }
+ .navbar {
+ border: none;
+ }
+ .dif-table div.last-column {
+ border-left: 1px solid #E0E0E0;
+ }
+ .dif-table {
+ margin-left: 0;
+ }
+ .dif-table div.col-md-3 {
+ margin-top: 22px;
+ }
+ .dif-table .table-column {
+ border-width: 1px;
+ }
+ .quote-left, .quote-right {
+ margin: 0 20px 10px 0;
+ }
+ .portfolio-slider #carousel {
+ width: auto;
+ margin-left: 0;
+ }
+ .portfolio-slider #carousel .flex-prev {
+ left: 20px;
+ top: 26%;
+ }
+ .portfolio-slider #carousel .flex-next {
+ right: 20px;
+ top: 26%;
+ }
+ .gallery .thumbnail {
+ display: table;
+ }
+ #gallery-main .col-md-3 {
+ width: auto;
+ height: auto;
+ margin: 0 0 20px 20px;
+ padding: 0;
+ }
+ #gallery-main {
+ margin-left: -20px;
+ }
+ #gallery .col-md-3 {
+ width: 220px;
+ height: 160px;
+ margin-left: 20px;
+ }
+ .portfolio-grid-1 .gallery li:hover .hover-shade {
+ left: 5px;
+ top: 5px;
+ }
+ #home_responsive .col-md-3 {
+ width: 220px;
+ padding: 0;
+ margin: 0 10px 20px;
+ height: 160px;
+ }
+ #home_responsive .col-md-6 {
+ width: 460px;
+ padding: 0;
+ margin: 0 10px 20px;
+ height: 160px;
+ }
+ #home_responsive .tall {
+ height: 340px;
+ margin-right: 10px;
+ }
+ #portfolio .col-md-6 {
+ width: 460px;
+ margin-left: 20px;
+ }
+ #portfolio .large {
+ height: 340px;
+ }
+ #portfolio .col-md-3 {
+ width: 220px;
+ height: 160px;
+ margin-left: 20px;
+ }
+ #portfolio .middle {
+ width: 460px;
+ height: 160px;
+ margin-left: 20px;
+ }
+ #portfolio {
+ margin-left: -20px;
+ }
+ #gallery {
+ margin-left: -20px;
+ }
+ #clients .col-md-2 {
+ width: 160px;
+ height: 125px;
+ }
+ .navbar .btn-navbar {
+ cursor: pointer;
+ opacity: 0;
+ position: absolute;
+ top: 0;
+ z-index: 1000;
+ width: 400px;
+ height: 27px;
+ }
+ #responsive-menu-button {
+ display: block;
+ background: url("../img/selectnav.png") no-repeat scroll 0 0 transparent;
+ color: #000000;
+ cursor: pointer;
+ font-family: Arial;
+ font-size: 12px;
+ height: 27px;
+ margin-top: 10px;
+ padding: 13px;
+ position: relative;
+ width: 400px;
+ z-index: 5;
+ }
+ .buttons-container {
+ position: relative;
+ text-align: center;
+ margin: 0 auto;
+ height: 27px;
+ }
+ .portfolio-slider #carousel {
+ margin-bottom: 20px;
+ }
+ .buttons-container {
+ }
+ .tweets-slide .slides li {
+ width: 58%;
+ overflow: hidden;
+ }
+ .follow_img {
+ display: block;
+ }
+ .attention-sidestick {
+ background: url("../img/sticker_sidebar_yellow.png") no-repeat scroll 0 0 transparent;
+ }
+ .white-sidestick {
+ background: url("../img/sticker_sidebar_white.png") no-repeat scroll 0 0 transparent;
+ }
+ .alert-sidestick {
+ background: url("../img/sticker_sidebar_red.png") no-repeat scroll 0 0 transparent;
+ }
+ .success-sidestick {
+ background: url("../img/sticker_sidebar_green.png") no-repeat scroll 0 0 transparent;
+ }
+ .note-sidestick {
+ background: url("../img/sticker_sidebar_blue.png") no-repeat scroll 0 0 transparent;
+ }
+ .sidebar-stick {
+ height: 187px;
+ margin-left: -15px;
+ padding: 25px 41px 25px 25px;
+ text-align: center;
+ width: 179px;
+ }
+ .sidebar-stick h3 {
+ font-size: 22px;
+ }
+ #gallery-main .hover-shade {
+ height: 160px;
+ width: auto;
+ }
+ .tour-btn {
+ padding: 0 21px 25px;
+ }
+ .portfolio-grid-1 .hp-wrapper .bottom-block-optional {
+ width: 300px;
+ text-align: center;
+ }
+ .coming-soon-subscribe input {
+ width: 288px;
+ height: 22px;
+ border-radius: 0;
+ margin-right: 10px;
+ }
+ .coming-soon-subscribe .coming-soon-btn {
+ margin-left: 0;
+ border: none;
+ background-color: #000000;
+ color: #ffffff;
+ padding: 6px 15px;
+ height: auto;
+ }
+ .coming-soon-subscribe .coming-soon-btn {
+ margin-left: 0;
+ border: none;
+ background-color: #000000;
+ color: #ffffff;
+ padding: 6px 15px;
+ height: auto;
+ }
+ #right-sidebar {
+ padding-left: 0;
+ }
+}
+
+/* Landscape phones and down */
+@media (max-width: 480px) {
+ .navbar-collapse {
+ display: none;
+ }
+ .logo {
+ text-align: center;
+ }
+ .logo img {
+ display: inline;
+ }
+ .head_phone {
+ text-align: center;
+ }
+ .sidebar {
+ width: auto;
+ }
+ .three-columns-central, .two-columns-left, .two-columns-right {
+ border: none;
+ padding: 0;
+ }
+ .hero-list div.col-md-3 {
+ min-height: 114px;
+ }
+ .portfolio-grid-1 .middle {
+ margin-bottom: 20px;
+ }
+ .portfolio-grid-1 .small {
+ margin-bottom: 20px;
+ }
+ .portfolio-grid-1 .large {
+ margin-bottom: 20px;
+ }
+ .portfolio-grid-1 .tall {
+ margin-bottom: 20px;
+ }
+ .top_line, .footer-top, .recent-tweets, .footer-wrapper, .footer-bottom {
+ margin: 0 -20px 0;
+ }
+ .block-posts .col-md-3 {
+ margin-bottom: 20px;
+ }
+ .block-posts .last {
+ margin-bottom: 0;
+ }
+ .comments .comment-date {
+ text-align: left;
+ }
+ .form-button-offset {
+ margin-left: 0;
+ }
+ .reply-form h2 {
+ margin-left: 0;
+ }
+ .post-item-panel ul li.comments {
+ float: left;
+ }
+ .bordered-img {
+ display: inline-block;
+ }
+ .member-divider {
+ margin-left: 0;
+ }
+ .two-col-team .span4 {
+ width: auto;
+ }
+ ul.socials {
+ margin: 0 auto 35px;
+ overflow: hidden;
+ margin-top: 20px;
+ }
+ .carousel-caption {
+ right: 0;
+ left: 0;
+ bottom: 0;
+ }
+ .footer-wrapper .span4 {
+ padding-left: 10px;
+ }
+ .navbar {
+ border: none;
+ }
+ .dif-table .last-column {
+ border-left: 1px solid #E0E0E0;
+ }
+ .dif-table {
+ margin-left: 0;
+ }
+ .dif-table div.col-md-3 {
+ margin-top: 22px;
+ }
+ .dif-table .table-column {
+ border-width: 1px;
+ }
+ .quote-left, .quote-right {
+ margin: 0 20px 10px 0;
+ }
+ .portfolio-slider #carousel {
+ width: auto;
+ margin-left: 0;
+ }
+ .portfolio-slider #carousel .flex-prev {
+ left: 20px;
+ top: 26%;
+ }
+ .portfolio-slider #carousel .flex-next {
+ right: 20px;
+ top: 26%;
+ }
+ .gallery .thumbnail {
+ display: table;
+ }
+ #gallery-main .col-md-3 {
+ width: auto;
+ height: 163px;
+ margin-left: 0;
+ }
+ #gallery .col-md-3 {
+ width: auto;
+ height: 160px;
+ margin-left: 0;
+ }
+ #gallery .thumbnail {
+ border: none;
+ padding: 0;
+ box-shadow: none;
+ }
+ .portfolio-grid-1 .gallery li:hover .hover-shade {
+ left: 0;
+ top: 0;
+ }
+ #home_responsive .col-md-3 {
+ width: auto;
+ height: auto;
+ }
+ #home_responsive .col-md-6 {
+ width: auto;
+ height: auto;
+ }
+ #home_responsive .tall {
+ height: auto;
+ margin-right: 10px;
+ }
+ #portfolio .col-md-6 {
+ width: auto;
+ }
+ #portfolio .large {
+ height: auto;
+ }
+ #portfolio .col-md-3 {
+ width: auto;
+ height: auto;
+ }
+ #portfolio .middle {
+ width: auto;
+ height: auto;
+ }
+ #gallery {
+ margin-left: -20px;
+ }
+ #clients .col-md-2 {
+ width: auto;
+ height: auto;
+ }
+ .navbar .btn-navbar {
+ cursor: pointer;
+ opacity: 0;
+ position: absolute;
+ top: 0;
+ z-index: 1000;
+ width: 400px;
+ height: 27px;
+ }
+ #responsive-menu-button {
+ display: block;
+ background: url("../img/selectnav.png") no-repeat scroll 0 0 transparent;
+ color: #000000;
+ cursor: pointer;
+ font-family: Arial;
+ font-size: 12px;
+ height: 27px;
+ margin-top: 10px;
+ padding: 13px;
+ position: relative;
+ width: 400px;
+ z-index: 5;
+ }
+ .buttons-container {
+ position: relative;
+ text-align: center;
+ height: 27px;
+ }
+ .portfolio-slider #carousel {
+ margin-bottom: 20px;
+ }
+ .buttons-container .nav-select {
+ border-radius: 4px;
+ }
+ .tweets-slide .slides li {
+ width: auto;
+ overflow: hidden;
+ }
+ .follow_img {
+ display: none;
+ }
+ .attention-sidestick {
+ background: url("../img/sticker_small_yellow.png") no-repeat scroll 0 0 transparent;
+ }
+ .white-sidestick {
+ background: url("../img/sticker_small_white.png") no-repeat scroll 0 0 transparent;
+ }
+ .alert-sidestick {
+ background: url("../img/sticker_small_red.png") no-repeat scroll 0 0 transparent;
+ }
+ .success-sidestick {
+ background: url("../img/sticker_small_green.png") no-repeat scroll 0 0 transparent;
+ }
+ .note-sidestick {
+ background: url("../img/sticker_small_blue.png") no-repeat scroll 0 0 transparent;
+ }
+ .sidebar-stick {
+ height: 154px;
+ margin-left: -10px;
+ padding: 15px 18px 10px 10px;
+ text-align: center;
+ width: 146px;
+ }
+ .sidebar-stick h3 {
+ font-size: 14px;
+ line-height: 17px;
+ margin-bottom: 4px;
+ font-weight: bold;
+ }
+ .sidebar-stick p {
+ font-size: 11px;
+ }
+ #gallery-main .hover-shade {
+ height: 160px;
+ width: auto;
+ }
+ .tour-btn {
+ padding: 0 21px 25px;
+ }
+ .portfolio-grid-1 .hp-wrapper .bottom-block-optional {
+ text-align: left;
+ }
+ .coming-soon-subscribe input {
+ width: 100%;
+ height: 22px;
+ border-radius: 0;
+ margin-right: 10px;
+ margin-bottom: 20px;
+ }
+ #right-sidebar {
+ padding-left: 0;
+ }
+}
+.navbar-collapse {
+ padding: 0;
+ border-bottom: 1px solid;
+}
+
+/*Custom Landscapes End*/
+
+body {
+ margin: 0;
+ font-family: 'Open Sans', Arial, sans-serif;
+ font-size: 14px;
+ line-height: 20px;
+ color: #333333;
+ background-color: #ffffff;
+}
+h1, h2, h3 {
+ font-weight: normal;
+ margin: 0 0 10px;
+}
+h4, h5, h6 {
+ margin: 0;
+}
+.thumbnails .caption {
+ padding: 9px;
+ color: #555;
+}
+.nav-tabs {
+ margin-bottom: 20px;
+}
+ul.thumbnails {
+ margin-left: 0;
+ list-style: none;
+ padding: 0;
+ margin: 0 0 10px 0;
+}
+.thumbnails > li {
+ margin-bottom: 20px;
+}
+.accordion {
+ margin-bottom: 20px;
+}
+dl {
+ margin-bottom: 20px;
+}
+.pagination, .pager {
+ margin: 20px 0;
+}
+h1 {
+ clear: both;
+ color: #333333;
+ font-size: 32px;
+ line-height: 32px;
+ margin: 0 0 20px;
+}
+h2 {
+ font-size: 26px;
+ color: #666666;
+ line-height: 22px;
+}
+h3 {
+ font-size: 16px;
+ line-height: 22px;
+ color: #666666;
+}
+h4 {
+ font-size: 14px;
+ line-height: 22px;
+ font-weight: bold;
+ color: #666666;
+ font-family: Arial, sans-serif;
+}
+h5 {
+ font-size: 12px;
+ line-height: 22px;
+ font-weight: bold;
+ color: #666666;
+ font-family: Arial, sans-serif;
+}
+h6 {
+ font-size: 11px;
+ line-height: 22px;
+ color: #666666;
+ font-family: Arial, sans-serif;
+}
+.clear-both {
+ clear: both;
+}
+.top_line {
+ height: 5px;
+}
+p {
+ font-family: Arial, sans-serif;
+ color: #666666;
+ margin: 0;
+ line-height: 18px;
+ padding: 0 0 20px;
+}
+.team-member p {
+ color: #333333;
+}
+.two-col-team p {
+ color: #333333;
+}
+sup {
+ padding-left: 1px;
+ top: -0.3em;
+}
+form label {
+ color: #898989;
+ font-family: Arial, sans-serif;
+ font-size: 12px;
+}
+h2 {
+ font-size: 26px;
+ line-height: 22px;
+ color: #666666;
+ margin: 0 0 10px;
+}
+.table {
+ margin-bottom: 20px;
+}
+ul, ol {
+ margin-bottom: 20px;
+}
+.side-nav ul, .sidebar ul {
+ margin-bottom: 0;
+ padding-left: 0;
+ list-style: none;
+}
+blockquote {
+ background: url("../img/quotes.png") no-repeat scroll 5px -2px #FBFBFB;
+ border-color: #F5F5F5 #ECECEC #DFDFDF;
+ border-radius: 5px 5px 5px 5px;
+ border-style: solid;
+ border-width: 1px;
+ box-shadow: 0 1px 3px #CCCCCC;
+ overflow: hidden;
+ margin: 0 0 20px;
+ padding: 15px 20px 12px;
+}
+.clear_both {
+ clear: both;
+}
+.quote-left {
+ float: left;
+ max-width: 280px;
+}
+.quote-right {
+ float: right;
+ max-width: 280px;
+ margin: 0 0 0 20px;
+}
+blockquote p {
+ color: #898989;
+ font-family: 'Open Sans',Arial,sans-serif;
+ font-size: 14px;
+ font-style: italic;
+ line-height: 21px;
+ margin: 0 0 5px;
+ padding: 0;
+ position: relative;
+ z-index: 2;
+}
+blockquote .autor {
+ font-family: Arial;
+ font-size: 12px;
+ font-style: normal;
+ font-weight: bold;
+ text-align: right;
+ color: #666666;
+}
+.large-quote {
+ background: url("../img/testimonials_block_bg.gif") repeat scroll left top transparent;
+ border-radius: 0 0 0 0;
+ box-shadow: none;
+ min-height: 137px;
+ padding: 15px 55px 12px;
+ position: relative;
+ text-align: center;
+}
+.large-quote .figure-left {
+ background: transparent url("../img/figures.png") top left no-repeat;
+ position: absolute;
+ width: 40px;
+ height: 147px;
+ top: 6px;
+ left: 10px;
+}
+.large-quote .figure-right {
+ background: transparent url("../img/figures.png") scroll -41px 0 no-repeat;
+ position: absolute;
+ width: 40px;
+ height: 147px;
+ top: 6px;
+ right: 10px;
+}
+.large-quote .autor {
+ text-align: center;
+ margin-top: 26px;
+}
+ul.socials li {
+ margin-left: 5px;
+ display: inline-block;
+}
+.bold {
+ font-weight: bold;
+}
+.bordered-img {
+ -moz-transition: all 0.2s ease-in-out 0s;
+ border: 1px solid #DDD;
+ border-radius: 3px 3px 3px 3px;
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055);
+ line-height: 20px;
+ padding: 3px;
+}
+.img-polaroid {
+ padding: 4px;
+ background-color: #FFF;
+ border: 1px solid #CCC;
+ border: 1px solid rgba(0, 0, 0, 0.2);
+ -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
+ -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
+}
+.socials a {
+ display: block;
+ width: 24px;
+ height: 24px;
+}
+.socials .flickr {
+ background: transparent url('../img/socials_icons.png') top left no-repeat;
+}
+.socials .twitter {
+ background: transparent url('../img/socials_icons.png') scroll -30px 0 no-repeat;
+}
+.socials .facebook {
+ background: transparent url('../img/socials_icons.png') scroll -60px 0 no-repeat;
+}
+.socials .youtube {
+ background: transparent url('../img/socials_icons.png') scroll -90px 0 no-repeat;
+}
+.socials .dribbble {
+ background: transparent url('../img/socials_icons.png') scroll -120px 0 no-repeat;
+}
+.socials .pinterest {
+ background: transparent url('../img/socials_icons.png') scroll -150px 0 no-repeat;
+}
+.socials .flickr:hover {
+ background: transparent url('../img/socials_icons.png') scroll 0 -24px no-repeat;
+}
+.socials .twitter:hover {
+ background: transparent url('../img/socials_icons.png') scroll -30px -24px no-repeat;
+}
+.socials .facebook:hover {
+ background: transparent url('../img/socials_icons.png') scroll -60px -24px no-repeat;
+}
+.socials .youtube:hover {
+ background: transparent url('../img/socials_icons.png') scroll -90px -24px no-repeat;
+}
+.socials .dribbble:hover {
+ background: transparent url('../img/socials_icons.png') scroll -120px -24px no-repeat;
+}
+.socials .pinterest:hover {
+ background: transparent url('../img/socials_icons.png') scroll -150px -24px no-repeat;
+}
+.socials .linkedin {
+ background: transparent url('../img/socials_icons.png') scroll -180px 0 no-repeat;
+}
+.socials .linkedin:hover {
+ background: transparent url('../img/socials_icons.png') scroll -180px -24px no-repeat;
+}
+.socials .google_plus {
+ background: transparent url('../img/socials_icons.png') scroll -210px 0 no-repeat;
+}
+.socials .google_plus:hover {
+ background: transparent url('../img/socials_icons.png') scroll -210px -24px no-repeat;
+}
+ul.icons {
+ list-style: none;
+ margin-left: 0;
+ padding: 0;
+}
+.head_phone {
+ color: #666666;
+ font-family: 'Open Sans',Arial,sans-serif;
+ font-size: 18px;
+ margin-top: 25px;
+ padding-bottom: 0;
+}
+.navbar .nav .open .dropdown-menu .active a {
+ background-color: #333333;
+ border: none;
+ background-image: none;
+}
+.navbar .nav .open .dropdown-menu .active a:hover {
+ background-color: #292929;
+ background-image: none !important;
+ filter: none;
+}
+.nav-select {
+ width: 100%;
+}
+.navbar {
+ background-color: #FFFFFF;
+ background-image: none;
+ background-repeat: repeat-x;
+ border-radius: 0 0 0 0;
+ box-shadow: none;
+ min-height: 40px;
+ margin: 0;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#ffffff', GradientType=0)
+}
+.navbar .nav .active > a, .navbar .nav .active > a:hover, .navbar .nav .active a > i, .navbar .nav .active a > i:hover {
+ background-color: #FFFFFF;
+ text-decoration: none;
+}
+.nav-pills > li > a {
+ border-radius: 0;
+ margin-bottom: 2px;
+ margin-top: 2px;
+ padding-bottom: 8px;
+ padding-top: 8px;
+}
+.nav-pills-portfolio > li > a {
+ border-radius: 5px 5px 5px 5px;
+ color: #666666;
+ font-size: 18px;
+}
+.nav-pills-portfolio {
+ float: left;
+ margin-bottom: 10px;
+}
+.portfolio-switch {
+ float: right;
+ list-style: none;
+ margin-top: 4px;
+}
+.portfolio-switch li {
+ float: right;
+ margin-left: 20px;
+}
+.portfolio-nav {
+ overflow: hidden;
+}
+.dropdown .dropdown-menu {
+ background-clip: padding-box;
+ background-color: #333333;
+ box-shadow: 4px 4px 0 rgba(0, 0, 0, 0.2);
+ list-style: none outside none;
+ z-index: 1000;
+ top: 98%;
+}
+.in .dropdown .dropdown-menu {
+ box-shadow: none;
+}
+.navbar .nav > li > .dropdown-menu:after {
+ border: none;
+}
+.navbar .nav > li > .dropdown-menu:before {
+ border: none;
+}
+.dropdown-menu {
+ border: none;
+ margin: 0;
+}
+.nav-pills .dropdown-menu {
+ border-radius: 0 0 0 0;
+}
+/*.navbar {
+ margin: 0 10px;
+}*/
+.navbar-inner {
+ padding: 0;
+}
+.navbar .nav > .active > a, .navbar .nav > .active > a:hover, .navbar .nav > .active > a:focus {
+ box-shadow: none;
+}
+.navbar .nav li.dropdown.open > .dropdown-toggle, .navbar .nav li.dropdown.active > .dropdown-toggle, .navbar .nav li.dropdown.open.active > .dropdown-toggle {
+ background-color: #ffffff;
+}
+.navbar .in .nav li.dropdown.open > .dropdown-toggle, .navbar .in .nav li.dropdown.active > .dropdown-toggle, .navbar .in .nav li.dropdown.open.active > .dropdown-toggle {
+ background-color: #333333;
+ color: #ffffff;
+}
+.in .nav > li > a:hover, .nav-collapse .dropdown-menu a:hover {
+ background-color: #292929;
+ border-radius: 0 0 0 0;
+}
+.nav-collapse {
+ position: relative;
+ z-index: 999;
+}
+.navbar .nav > li {
+ text-align: center;
+ border-right: 1px dotted #CCCCCC;
+}
+.navbar .nav > li .dropdown-menu li {
+ text-align: left;
+}
+.navbar .nav > li .dropdown-menu li a {
+ color: #ffffff;
+ padding: 8px 10px 11px;
+}
+.navbar .nav > li .dropdown-menu li a:hover {
+ background-color: #292929;
+ background-image: none !important;
+ filter: none;
+}
+.navbar .nav > li a i {
+ display: block;
+ color: #666666;
+ font-size: 12px;
+ font-weight: normal;
+ height: 27px;
+ background: #ffffff url('../img/menu_icons.png') scroll center 23px no-repeat;
+}
+.navbar .nav > li.single a i {
+ background: none;
+}
+.navbar .nav > li a {
+ color: #333333;
+ font-size: 14px;
+ font-weight: 600;
+ line-height: 16px;
+ margin-bottom: 0;
+ padding: 15px 15px 8px;
+ text-shadow: none;
+}
+.nav-tabs .open .dropdown-toggle, .nav-pills .open .dropdown-toggle, .nav > li.dropdown.open.active > a:hover {
+ background-color: #999999;
+ border-color: #999999;
+ color: #333333;
+}
+.navbar-inner .in {
+ margin-top: 20px;
+}
+.navbar .navbar-inner .in .nav-pills {
+ z-index: 9999;
+ background-color: #333333;
+}
+.navbar .navbar-inner .in li {
+ border-right: none;
+ text-align: left;
+}
+.navbar .navbar-inner .in li a {
+ color: #ffffff;
+}
+.navbar .navbar-inner .in li a i {
+ display: none;
+}
+.navbar .navbar-inner .in li.active a {
+ background-color: #333333;
+}
+.navbar .nav .active > a, .navbar .nav li:hover > a {
+ padding-top: 12px;
+}
+.navbar .nav .dropdown-menu li:hover a {
+ border: none;
+ padding-top: 8px;
+}
+.navbar .in .nav li a {
+ border: none;
+ padding: 8px 10px 11px;
+}
+.navbar .in .nav .active a, .navbar .in .nav li:hover a {
+ border: none;
+ padding: 8px 10px 11px;
+}
+input.btn {
+ float: left;
+}
+.grey-box {
+ background-color: #fbfbfb;
+ border-bottom: 1px solid #dfdfdf;
+ border-left: 1px solid #ececec;
+ border-right: 1px solid #ececec;
+ border-top: 1px solid #f5f5f5;
+ -webkit-border-radius: 5px;
+ -moz-border-radius: 5px;
+ border-radius: 5px;
+ box-shadow: 0 1px 3px #CCCCCC;
+}
+.hero-block-2 {
+ padding: 15px 20px;
+ text-align: center;
+}
+.hero-block-2 p img {
+ float: right;
+ margin: 0 0 0 25px;
+}
+.hero-block-2 .btn {
+ margin: 17px auto 5px;
+ font-weight: bold;
+ font-size: 16px;
+}
+.hero-block3 .btn {
+ font-size: 16px;
+}
+.hero-block-2 .btn .icon-shopping-cart {
+ font-size: 19px;
+}
+.hero-block-2 h2, .hero-block-2 p {
+ text-align: left;
+}
+.hero-block-2 .btn .icon-shopping-cart {
+ line-height: 26px;
+ padding-right: 7px;
+}
+.home-block h1 {
+ padding-top: 6px;
+ margin-bottom: 8px;
+ margin-top: 0;
+}
+.hero-block-1 {
+ margin-bottom: 15px;
+}
+.home-block h2 {
+ margin-bottom: 10px;
+}
+.home-block p {
+ line-height: 22px;
+ padding: 0;
+ color: #898989;
+}
+.home-block {
+ margin-top: 20px;
+}
+.hero-list {
+ margin-top: 10px;
+ padding-bottom: 10px;
+}
+.hero-list .image-wrapper {
+ float: left;
+ margin:0 6px;
+}
+.hero-list .image-wrapper .img {
+ height:65px;
+ width:65px;
+ display:table-cell;
+ vertical-align:middle;
+ border-radius:33px;
+ text-align:center;
+ background:#2773ae;
+}
+.index1 .hero-list .image-text {
+ margin-left: 80px;
+ text-align:left;
+}
+.hero-list-description {
+ float: left;
+}
+.hero-list a {
+ clear: both;
+ display: block;
+ margin-top: 5px;
+}
+.hero-list p {
+ font-family: 'Open Sans',sans-serif,Arial;
+ line-height: 16px;
+ padding: 0;
+ color: #898989;
+ overflow: hidden;
+}
+.hero-list h2 {
+ color: #898989;
+}
+.hero-list h2 {
+ margin-bottom: 5px;
+}
+.slides .slide-info p {
+ padding: 0;
+}
+.slides .slide-info h2 {
+ padding: 0;
+}
+.carousel-caption {
+ background: transparent url("../img/slide_info_bg.png") top left repeat;
+ padding: 15px;
+}
+.carousel-caption h2 {
+ font-size: 24px;
+ font-weight: normal;
+ text-decoration: none;
+}
+.carousel-caption p {
+ color: #ffffff;
+ padding-bottom: 10px;
+}
+.horizontal-divider {
+ background-color: #e5e5e5;
+ height: 5px;
+ margin-bottom: 20px;
+ margin-top: 10px;
+}
+.title-wrapper h2 {
+ float: left;
+}
+.clients .title-wrapper h2 {
+ float: none;
+}
+.title-wrapper .all {
+ font-size: 14px;
+ float: right;
+ line-height: 30px;
+ padding-right: 10px;
+}
+.portfolio-grid-1 .hp-wrapper {
+ position: relative;
+ overflow: hidden;
+}
+.portfolio-grid-1 .hp-wrapper .bottom-block {
+ background: url("../img/bottom_block_bg.png") repeat scroll left top transparent;
+ bottom: 0;
+ height: 38px;
+ left: 0;
+ padding: 6px 0 6px 10px;
+ position: absolute;
+ -webkit-box-sizing: content-box;
+ -moz-box-sizing: content-box;
+ box-sizing: content-box;
+}
+.portfolio-grid-1 .hp-wrapper .bottom-block a {
+ font-size: 16px;
+}
+.portfolio-grid-1 .hp-wrapper .bottom-block p {
+ color: #666666;
+ font-family: 'Open Sans', sans-serif, Arial;
+}
+.portfolio-grid-1 .hp-wrapper .top-link:before {
+ position: absolute;
+ left: 0;
+ top: 0;
+ width:100%;
+ height:100%;
+ background:rgba(255, 255, 255, .8);
+ display:none;
+ content:'';
+}
+.portfolio-grid-1 .hp-wrapper .top-link:after {
+ width: 60px;
+ height: 60px;
+ display: block;
+ position:absolute;
+ top:50%;
+ left:50%;
+ margin:-30px 0 0 -30px;
+ content: "\f08e";
+ font-family: FontAwesome;
+ font-size:60px;
+ line-height:60px;
+ text-align:center;
+ color:#2773ae;
+ display:none;
+}
+.portfolio-grid-1 .hp-wrapper:hover .top-link:before, .portfolio-grid-1 .hp-wrapper:hover .top-link:after {
+ display:block;
+}
+.portfolio-grid-1.main-block .hp-wrapper .top-link:after {
+ content: "\f00e";
+}
+.portfolio-grid-1 p {
+ padding: 0;
+}
+.testimonials {
+ margin-bottom: 35px;
+}
+.testimonials-block {
+ background: transparent url("../img/testimonials_block_bg.gif") top left repeat;
+ position: relative;
+ padding: 30px 20px 10px;
+ margin-bottom: 25px;
+}
+.testimonials-block .quote {
+ background: transparent url("../img/quote.png") top left no-repeat;
+ position: absolute;
+ width: 91px;
+ height: 61px;
+ left: 13px;
+ top:0;
+ z-index: 1;
+}
+.testimonials-block p {
+ color: #666666;
+ font-family: Georgia;
+ font-size: 16px;
+ font-style: italic;
+ position: relative;
+ z-index: 2;
+ margin: 0 0 5px;
+ padding: 0;
+}
+.testimonials-block .autor {
+ text-align: right;
+ font-weight: bold;
+ font-family: Arial;
+ font-size: 12px;
+ font-style: normal;
+}
+.hero-block3 {
+ position: relative;
+}
+.hero-block3 .hero-content-3 {
+ padding: 20px;
+}
+.hero-block3 .hero-content-3 h2 {
+ font-size: 32px;
+ line-height: 32px;
+ margin-bottom: 10px;
+ color: #333333;
+}
+.hero-block3 h2 {
+ float: none;
+ margin-bottom: 5px;
+}
+.hero-block3 p {
+ float: none;
+ line-height: 22px;
+ padding: 0;
+ color: #898989;
+}
+.tour-btn .btn {
+ font-weight: bold;
+}
+.block-posts .block-post-img {
+ display: block;
+ margin-bottom: 10px;
+}
+.bordered-img {
+ -moz-transition: all 0.2s ease-in-out 0s;
+ border: 1px solid #DDDDDD;
+ border-radius: 3px 3px 3px 3px;
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.055);
+ line-height: 20px;
+ padding: 3px;
+}
+.container .bordered-img img {
+ margin-bottom: 0;
+}
+.block-posts .block-post-title {
+ font-size: 14px;
+}
+.block-posts .block-post-content {
+ margin: 0 0 2px;
+ color: #666666;
+ padding: 0;
+ line-height: 18px;
+}
+.block-posts .block-post-more {
+ text-decoration: underline;
+}
+.block-posts p {
+ padding: 0;
+}
+.block-posts .block-post-date {
+ padding-bottom: 10px;
+ color: #898989;
+}
+.clients {
+ margin-bottom: 20px;
+}
+/*Breadcrumb Start*/
+#breadcrumb {
+ border-bottom: 1px solid #CCCCCC;
+ float: left;
+ width: 100%;
+ margin-bottom: 10px;
+}
+#breadcrumb ul {
+ float: left;
+ list-style: none outside none;
+ margin: 0 0 2px;
+ padding: 12px 0 8px 10px;
+}
+#breadcrumb ul li {
+ background: url("../img/breadcrumb_icon.png") no-repeat scroll left 7px transparent;
+ float: left;
+ margin-left: 8px;
+ padding-left: 10px;
+}
+#breadcrumb .home {
+ background: none repeat scroll 0 0 transparent;
+ height: 15px;
+ margin-left: 0;
+ padding-left: 0;
+}
+/*Breadcrumg Ens*/
+/*Sidebars Start*/
+#left-sidebar .sidebar-wrapper {
+ padding-right: 19px;
+ border-right: 1px solid #cccccc;
+}
+.side-nav .active a {
+ color: #000000;
+}
+.sidebar .sidebar-block {
+ margin-bottom: 35px;
+ clear: both;
+ overflow: hidden;
+}
+.sidebar-news-widget ul, .side-nav ul {
+ list-style: none;
+ margin-left: 0;
+}
+.sidebar-news-widget ul li, .side-nav ul li {
+ border-bottom: 1px solid #CCCCCC;
+ margin-bottom: 8px;
+ overflow: hidden;
+ padding-bottom: 8px;
+}
+.comments-widget p, .text-widget p, .tags-widget p {
+ padding: 0;
+ color: #898989;
+}
+.sidebar-news-widget ul li p, .sidebar-news-widget .date {
+ padding: 0 0 0 69px;
+}
+.side-nav ul li a {
+ background: url("../img/left_nav_bullets.png") no-repeat scroll 0 8px transparent;
+ padding-left: 9px;
+ display: block;
+ font-size: 13px;
+}
+.side-nav ul li a:hover {
+ text-decoration: none;
+ color: #333333;
+}
+.tags-widget p {
+ margin-bottom: 5px;
+}
+.sidebar-news-widget ul .photo {
+ float: left;
+ margin-right: 10px;
+}
+.sidebar {
+ padding-top: 29px;
+ padding-right: 0;
+ box-sizing: content-box;
+}
+.sidebar h2 {
+ border-bottom: 3px solid #cccccc;
+ padding-bottom: 6px;
+ margin-bottom: 12px;
+}
+.date i {
+ padding-right: 3px;
+}
+.comments-widget ul {
+ list-style: none;
+ margin-left: 0;
+}
+.comments-widget ul li {
+ margin-bottom: 10px;
+}
+#right-sidebar .sidebar-wrapper {
+ padding-left: 19px;
+ border-left: 1px solid #cccccc;
+}
+.tags-widget ul {
+ list-style: none;
+ margin-left: 0;
+}
+.tags-widget ul li {
+ float: left;
+ margin-right: 18px;
+}
+.gallery-widget ul {
+ list-style: none;
+ margin-left: -10px;
+}
+.gallery-widget ul li {
+ margin-left: 10px;
+ float: left;
+ margin-bottom: 10px;
+}
+/*Sidebars End*/
+
+/*Main Column Start*/
+.main-column {
+ margin-top: 8px;
+}
+.main-column img {
+ margin-bottom: 10px;
+}
+.post-item {
+ clear: both;
+ margin-bottom: 25px;
+}
+.post-item .post-description {
+ margin: 0;
+ padding-bottom: 0;
+}
+.post-item .post-more {
+ font-family: Arial;
+ text-decoration: underline;
+}
+.post-item .post-more:hover {
+ text-decoration: none;
+}
+.post-item-panel {
+ background-color: #F5F5F5;
+ margin-top: 10px;
+ overflow: hidden;
+ padding: 10px 10px 0;
+}
+.post-item-panel ul {
+ list-style: none;
+ margin-left: 0;
+ padding-left: 0;
+}
+.post-item-panel ul li {
+ float: left;
+ margin-right: 20px;
+}
+.post-item-panel ul li p {
+ padding: 0 0 8px;
+ color: #898989;
+}
+.post-item-panel ul li p i, .tags-widget p i {
+ padding-right: 3px;
+}
+.post-socials {
+ margin: 20px 0 50px 0;
+}
+.post-socials h2, .reply-form h2 {
+ color: #333333;
+}
+.comments .name {
+ font-family: Arial, sans-serif;
+ font-size: 14px;
+}
+.comments .comment-date {
+ padding: 0;
+}
+.comments .reply {
+ font-family: Arial, sans-serif;
+ font-size: 12px;
+}
+.comment-details {
+ margin-bottom: 5px;
+}
+.comment-item {
+ margin-bottom: 15px;
+}
+.comment-item .span1 {
+ margin-bottom: 10px;
+}
+.comment-body {
+ background-color: #f5f5f5;
+ border-radius: 5px 5px 5px 5px;
+ position: relative;
+}
+.comment-table .baloon {
+ background: url("../img/baloon.gif") no-repeat scroll 7px 22px transparent;
+ border: medium none;
+ width: 15px;
+}
+.comment-body p {
+ padding: 10px 12px;
+ font-size: 14px;
+ color: #666666;
+}
+form .error {
+ position: relative;
+}
+#validForm {
+ clear: both;
+}
+#validForm .btn {
+ background-color: buttonface;
+}
+select, textarea, input[type="text"], input[type="password"], input[type="datetime"], input[type="datetime-local"], input[type="date"], input[type="month"], input[type="time"], input[type="week"], input[type="number"], input[type="email"], input[type="url"], input[type="search"], input[type="tel"], input[type="color"], .uneditable-input {
+ margin-bottom: 10px;
+ height: 30px;
+}
+label {
+ margin-bottom: 5px;
+}
+.control-group {
+ margin-bottom: 10px;
+}
+.contact-info .socials {
+ padding: 0;
+ margin: 20px 0 10px 0;
+}
+.control-group.error .control-label, .control-group.error .help-block, .control-group.error .help-inline {
+ color: #B94A48;
+}
+.team-member h2 {
+ line-height: 18px;
+ margin-bottom: 5px;
+ color: #333333;
+}
+.team-member h4 {
+ margin: 5px 0 0 0;
+ color: #666666;
+ font-weight: normal;
+}
+.team-member em {
+ color: #666666;
+}
+.team-member .experience {
+ padding-top: 0;
+ padding-bottom: 10px;
+ color: #666666;
+}
+.team-member .photo {
+ margin-bottom: 10px;
+}
+.member-divider {
+ border-bottom: 1px dashed #cccccc;
+ clear: both;
+ height: 1px;
+ margin-bottom: 50px;
+}
+.two-col-team .team-member {
+ margin-bottom: 50px;
+}
+div.alert {
+ padding: 20px 15px 10px 35px;
+ padding-left: 35px;
+ margin-bottom: 10px;
+}
+.alert-note {
+ border: 1px solid #000000;
+ background-color: #ffffff;
+}
+.alert-error {
+ border: 1px solid #d47676;
+ background-color: #f6d4d4;
+}
+.alert-attention {
+ border: 1px solid #fece89;
+ background-color: #fff3c2;
+}
+.alert-info {
+ border: 1px solid #448398;
+ background-color: #b4e5ec;
+}
+}
+.alert-success {
+ border: 1px solid #72ad55;
+ background-color: #ceefbe;
+}
+.alert h2 {
+ background: transparent url("../img/warning-icons.png") top left no-repeat;
+ padding: 3px 0 5px 35px;
+ margin-bottom: 0;
+ font-size: 22px;
+}
+.alert p {
+ padding-left: 35px;
+ padding-bottom: 10px;
+}
+.alert .close {
+ right: -8px;
+ top: -17px;
+}
+.alert-note h2 {
+ background-position: 0 3px;
+}
+.alert-error h2 {
+ background-position: 0 -75px;
+ color: #ae3f3f;
+}
+.alert-error p {
+ color: #ae3f3f;
+}
+.alert-attention h2 {
+ background-position: 0 -150px;
+ color: #ab5e2a;
+}
+.alert-attention p {
+ color: #ab5e2a;
+}
+.alert-info h2 {
+ background-position: 0 -227px;
+ color: #448398;
+}
+.alert-info p {
+ color: #448398;
+}
+.alert-success h2 {
+ background-position: 0 -305px;
+ color: #488a28;
+}
+.alert-success p {
+ color: #488a28;
+}
+.stick-wrapper {
+ margin-left: -20px;
+ padding-left: 35px;
+ width: 720px;
+ margin-top: 50px;
+ -webkit-box-sizing: content-box;
+ -moz-box-sizing: content-box;
+ box-sizing: content-box;
+}
+.progress {
+ height: 20px;
+ margin-bottom: 20px;
+}
+.sr-only {
+ position: inherit;
+ width: auto;
+ height: auto;
+}
+.btn-inverse {
+ background-color: #222222;
+ color: #ffffff;
+ border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+}
+.btn-inverse:hover {
+ background-color: #333333;
+ color: #ffffff;
+ border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
+}
+.stick-wrapper .stick {
+ margin-left: -29px;
+}
+.stick {
+ height: 190px;
+ padding: 30px 50px 30px 30px;
+ text-align: center;
+ width: 188px;
+ -webkit-box-sizing: content-box;
+ -moz-box-sizing: content-box;
+ box-sizing: content-box;
+}
+.stick p {
+ padding: 7px 0;
+}
+.stick h2 {
+ margin-bottom: 0;
+}
+.note-stick {
+ background: transparent url("../img/note_stick_bg.png") top left no-repeat;
+}
+.note-stick h2, .note-stick p {
+ color: #666666;
+}
+.alert-stick {
+ background: transparent url("../img/alert_stick_bg.png") top left no-repeat;
+}
+.alert-stick h2, .alert-stick p {
+ color: #580a0a;
+}
+.success-stick {
+ background: transparent url("../img/success_stick_bg.png") top left no-repeat;
+}
+.success-stick h2, .success-stick p {
+ color: #406230;
+}
+.info-stick {
+ background: transparent url("../img/info_stick_bg.png") top left no-repeat;
+}
+.info-stick h2, .info-stick p {
+ color: #255a6c;
+}
+.attention-stick {
+ background: transparent url("../img/attention_stick_bg.png") top left no-repeat;
+}
+.attention-stick h2, .attention-stick p {
+ color: #96570d;
+}
+#right-sidebar .stick {
+ margin-left: -10px;
+}
+#left-sidebar .stick {
+ margin-left: -34px;
+}
+.left-stick {
+ margin-left: -14px;
+}
+.right-stick {
+ float: right;
+ margin-right: -30px;
+}
+.dropcap {
+ display: block;
+ float: left;
+ margin: 19px 10px 10px 10px;
+ font-family: 'Open Sans', Arial, sans-serif;
+ font-size: 48px;
+}
+.dropcap-black {
+ color: #000000;
+}
+.panel-heading {
+ padding: 0;
+ background-color: transparent;
+}
+.dropdown-menu .divider {
+ margin: 10px 0;
+}
+.panel-default > .panel-heading {
+ background: transparent;
+}
+.accordion, .toggle-box {
+ border: 1px solid #f5f5f5;
+}
+.accordion-group {
+ border: none;
+ border-radius: 0 0 0 0;
+}
+.toggle-box {
+ margin-bottom: 20px;
+}
+.accordion-inner, .tbox-inner {
+ border-top: 1px solid #E5E5E5;
+ padding: 9px 15px 9px 60px;
+ border: none;
+}
+.accordion .accordion-toggle, .toggle-box a {
+ background: url("../img/collapse_btn.png") no-repeat scroll left 10px transparent;
+ color: #666666;
+ display: block;
+ font-size: 18px;
+ line-height: 23px;
+ padding: 10px 20px 10px 40px;
+}
+.accordion a.collapsed, .toggle-box .collapsed {
+ background: url("../img/collapse_btn.png") no-repeat scroll left -58px transparent;
+}
+.accordion-heading, .tbox-heading {
+ padding-left: 20px;
+}
+.dif-table {
+ margin-bottom: 15px;
+ margin-top: 30px;
+ margin-left: 10px;
+}
+.dif-table p {
+ padding: 6px 0;
+ font-family: 'Open Sans', Arial, sans-serif;
+ text-align: center;
+ box-sizing: content-box;
+ -moz-box-sizing: content-box;
+ -webkit-box-sizing: content-box;
+}
+.dif-table .col-md-2, .dif-table .col-md-3 {
+ margin-left: 0;
+}
+.dif-table div.col-md-3 {
+ border-width: 1px;
+ border-radius: 2px 2px 2px 2px;
+ box-shadow: 0 0 3px #CCCCCC;
+ position: relative;
+ z-index: 10;
+}
+.dif-table div.col-md-3 .bottom {
+ padding: 15px 0;
+}
+.dif-table .col-md-3 .title {
+ padding: 20px 0;
+ background-color: #f09931;
+ text-shadow: 0 1px #9c6420;
+ border-radius: 2px 2px 0 0;
+}
+.dif-table div.col-md-3 .btn-primary {
+ font-size: 16px;
+ padding: 10px 20px;
+}
+.dif-table .title {
+ color: #ffffff;
+ font-size: 20px;
+ text-shadow: 0 1px 0 #1a4e75;
+ font-weight: 600;
+}
+.dif-table .cost {
+ font-size: 16px;
+ background-color: #f5f5f5;
+ font-weight: bold;
+}
+.dif-table ul {
+ list-style: none;
+ margin: 0;
+ text-align: center;
+ padding: 0;
+}
+.dif-table ul li {
+ padding: 5px 0 5px 0;
+}
+.dif-table ul li img {
+ margin-bottom: 3px;
+ margin-right: 4px;
+}
+.dif-table .btn {
+ font-size: 13px;
+ height: 20px;
+ padding: 3px 9px;
+ box-sizing: content-box;
+ -moz-box-sizing: content-box;
+ -webkit-box-sizing: content-box;
+}
+.dif-table .bottom {
+ background-color: #f5f5f5;
+}
+.dif-table .table-column {
+ border-style: solid;
+ border-color: #e0e0e0;
+ margin-bottom: 20px;
+ padding: 0;
+}
+.dif-table .first-column {
+ border-radius: 2px 0 0 2px;
+}
+.dif-table .first-column .title {
+ border-radius: 2px 0 0 0;
+}
+.dif-table .last-column {
+ border-radius: 0 2px 2px 0;
+ border-width: 1px 1px 1px 0;
+}
+.dif-table .last-column .title {
+ border-radius: 0 2px 0 0;
+}
+.dif-table .col-md-3 {
+ height: 250px;
+ margin-top: -28px;
+}
+.flexslider .slides img {
+ margin-bottom: 0;
+}
+.flexslider .slide2 .carousel-caption, .slide3 .carousel-caption {
+ right: 0;
+ bottom: 0;
+ width: 96%;
+}
+.flexslider .slide3 .carousel-caption {
+ background: none repeat scroll 0 0 #E7E7E8;
+}
+.flexslider .slide3 .carousel-caption p, .flexslider .slide4 .carousel-caption p {
+ color: #333333;
+}
+.flexslider .slide4 .carousel-caption {
+ background: transparent url("../img/slide4_info_bg.png") top left repeat;
+}
+.flexslider .portfolio-grid-1 .thumbnails {
+ margin-bottom: 0;
+}
+.help-inline {
+ display: block;
+}
+.contact-info h2 {
+ border-bottom: 3px solid #CCCCCC;
+ margin-bottom: 12px;
+ padding-bottom: 6px;
+ clear: both;
+}
+.contact-info address {
+ margin-bottom: 15px;
+}
+.contact-info .socials {
+ float: none;
+ overflow: hidden;
+}
+.contact-info .socials li {
+ float: left;
+ margin: 0 5px 0 0;
+}
+.contact-info .table tbody > tr > td {
+ border-top: none;
+ border-bottom: 1px solid #DDDDDD;
+ padding: 4px 8px 4px 0;
+}
+.contact-info table .small {
+ width: 40%;
+}
+.text-divider1 {
+ border-top: 1px solid #cccccc;
+ margin-bottom: 19px;
+}
+.text-divider2 {
+ display: block;
+ margin-bottom: 19px;
+ width: 100%;
+ border-bottom: 1px solid #cccccc;
+ text-align: right;
+ color: #666666;
+ margin-top: -19px;
+}
+.text-divider2:hover, .text-divider4:hover {
+ text-decoration: none;
+ color: #666666;
+}
+.text-divider3 {
+ border-top: 1px dashed #cccccc;
+ margin-bottom: 19px;
+}
+.text-divider4 {
+ display: block;
+ margin-bottom: 19px;
+ width: 100%;
+ border-bottom: 1px dashed #cccccc;
+ text-align: right;
+ color: #666666;
+ margin-top: -19px;
+}
+.text-divider5, .text-divider6 {
+ border-bottom: 1px solid #cccccc;
+ width: 100%;
+ margin-bottom: 19px;
+ margin-top: -3px;
+}
+.text-divider5 span {
+ display: block;
+ width: 70px;
+ height: 3px;
+}
+.text-divider6 span {
+ display: block;
+ width: 70px;
+ height: 3px;
+ float: right;
+}
+.nav-tabs a {
+ font-size: 14px;
+ color: #666666;
+}
+.btn-toolbar {
+ margin-top: 10px;
+ margin-bottom: 10px;
+}
+.buttons-example .ex, .buttons-example .btn-group {
+ margin-bottom: 20px;
+}
+.addthis_32x32_style .addthis_counter.addthis_bubble_style {
+ width: 64px!important;
+}
+.demo-icons .col-md-1 {
+ margin-bottom: 30px;
+}
+.portfolio-details {
+ margin-top: 2px;
+ margin-bottom: 20px;
+}
+.back-to-portfolio {
+ background: url("../img/arrow_left.gif") no-repeat scroll 13px 12px #F5F5F5;
+ border-radius: 3px 3px 3px 3px;
+ color: #666666;
+ display: block;
+ font-size: 16px;
+ padding: 7px 20px 7px 33px;
+ margin-bottom: 10px;
+}
+.item-details {
+ list-style: none;
+ margin-left: 0;
+ padding: 0;
+}
+.addthis_counter.addthis_bubble_style {
+ box-sizing: content-box;
+ -moz-box-sizing: content-box;
+ -webkit-box-sizing: content-box;
+}
+.item-details li {
+ font-size: 14px;
+ color: #666666;
+ margin-bottom: 5px;
+}
+.item-details li .title {
+ font-weight: bold;
+ padding-right: 3px;
+}
+.item-details .website {
+ margin-bottom: 9px;
+}
+.item-details .website i {
+ color: #666666;
+}
+.item-details .tags p {
+ padding-bottom: 0;
+}
+.item-details .tags i {
+ color: #cccccc;
+}
+.item-details .share span {
+ display: block;
+}
+.portfolio-slider {
+ margin-bottom: 100px;
+ margin-top: 20px;
+}
+.portfolio-slider #slider {
+ margin-bottom: 10px;
+}
+.portfolio-slider #carousel .slides li {
+ border: 2px solid #ffffff;
+ border-radius: 2px;
+ cursor: pointer;
+}
+.col-wrapper {
+ padding-top: 21px;
+}
+#clients {
+ overflow: visible;
+ clear: both;
+}
+.twitter-wrapper {
+ position: relative;
+ padding: 10px 0 10px 0;
+}
+#nav_t {
+ float: left;
+ height: auto;
+ position: absolute;
+ /*top: 34%;*/
+ width: 11px;
+}
+#nav_t .flex-prev {
+ background: url("../img/tw_arrow_up.png") no-repeat scroll 0 0 transparent;
+ display: block;
+ height: 6px;
+ left: 0;
+ margin-bottom: 7px;
+ width: 11px;
+}
+#nav_t .flex-next {
+ background: url("../img/tw_arrow_down.png") no-repeat scroll 0 0 transparent;
+ display: block;
+ height: 6px;
+ left: 0;
+ width: 11px;
+}
+#nav_t .flex-direction-nav a {
+ position: inherit;
+}
+.follow_img {
+ position: absolute;
+ right: 0;
+ top: 16%;
+}
+#prev_t {
+ display: block;
+ color: #fff;
+}
+#next_t {
+ display: block;
+ color: #fff;
+}
+.tweets-slide {
+ display: block;
+ color: #fff;
+ overflow: hidden;
+ padding-left: 20px;
+}
+.tweets-slide ul .slides li {
+ color: #FFFFFF;
+ font-size: 14px;
+ height: auto;
+ line-height: 14px;
+ padding: 10px 0 10px 10px;
+ margin: 10px 0 10px 10px;
+
+ width: 100%;
+ display: block;
+
+}
+.tweets-slide .flex-viewport {
+}
+.tweets-slide td {
+ color: #FFFFFF;
+ font-size: 14px;
+ height: auto;
+ line-height: 14px;
+ min-height: 44px;
+ padding-left: 10px;
+ width: 100%;
+}
+.bannercontainer .middle {
+ color: #333333;
+ font-family: Open Sans, Arial, sans-serif;
+ font-style: italic;
+}
+.bannercontainer .slide3 .middle {
+ padding: 5px 10px 8px 10px;
+ font-weight: bold;
+ color: #333333;
+}
+.bannercontainer .big {
+ color: #FFFFFF;
+ font-family: Open Sans, Arial, sans-serif;
+ padding-bottom: 4px;
+ padding-left: 10px;
+ background-color: #000000;
+}
+.bannercontainer .slide2 .big {
+ background-color: #2671AC;
+}
+.bannercontainer .slide3 .big {
+ background-color: #2671AC;
+ padding-bottom: 4px;
+}
+.bannercontainer .small {
+ color: #666666;
+ font-family: Open Sans, Arial, sans-serif;
+ white-space: normal;
+}
+.bannercontainer .slide3 .small {
+ background-color: #000000;
+ color: #ffffff;
+ padding: 6px 0 10px 43px;
+}
+.buttons-container {
+ position: relative;
+ text-align: center;
+ height: 67px;
+ padding: 20px 50px;
+}
+.buttons-container .nav-select {
+ border-radius: 4px;
+ height: 30px;
+ line-height: 30px;
+ border: 1px solid #CCC;
+ background-color: #FFF;
+}
+.bannercontainer .banner ul li div {
+ left: -999em;
+}
+.bannercontainer .banner ul {
+ list-style: none;
+ margin-left: 0;
+}
+.hero-list {
+ margin-bottom: 40px;
+}
+.hero-list .col-md-3 {
+ text-align: center;
+ margin-bottom: 20px;
+ line-height: 1.333;
+}
+.hero-list .image-wrapper {
+ text-align: center;
+}
+.hero-list img {
+ padding: 0 11px;
+ display: inline;
+}
+.index1 .hero-list img {
+ padding: 0;
+}
+.hero-list-description {
+ float: left;
+}
+.hero-list a {
+ clear: both;
+ display: block;
+ margin-top: 15px;
+}
+.hero-list p {
+ color: #333333;
+ font-family: 'Raleway',Arial,sans-serif;
+ line-height: 18px;
+ overflow: hidden;
+ padding: 0;
+}
+.hero-list h2 {
+ margin: 14px 0;
+ color: #333333;
+ font-size: 22px;
+}
+.features-list .image-wrapper {
+ float: none;
+}
+.dark-hero {
+ text-align: center;
+ padding: 15px;
+ margin-bottom: 40px;
+}
+.dark-hero h1 {
+ color: #ffffff;
+ font-size: 40px;
+ font-family: 'Raleway', sans-serif;
+ line-height: 1.333;
+ margin-bottom: 0;
+}
+.dark-hero h1 span {
+ color: #648798;
+}
+.dark-hero ul {
+ padding: 20px 0 15px 0;
+ margin-bottom: 0;
+}
+.dark-hero ul li {
+ display: inline;
+ color: #ffffff;
+ font-size: 14px;
+}
+.mini-blocks .block1, .mini-blocks .block2, .mini-blocks .block3 {
+ border-top: 1px solid #d6d6d6;
+ padding: 0;
+}
+.mini-blocks .block1 ul, .mini-blocks .block2 ul, .mini-blocks .block3 ul {
+ margin: 0;
+ padding: 0;
+}
+.mini-blocks .block1 {
+ margin-left: 10px;
+}
+.mini-blocks .block1 .mini-wrapper {
+ padding: 19px 18px;
+}
+.mini-blocks .block2 .mini-wrapper {
+ padding: 19px 18px;
+ border-right: 1px solid #d6d6d6;
+ border-left: 1px solid #d6d6d6;
+}
+.mini-blocks .block3 .mini-wrapper {
+ padding: 19px 18px;
+}
+Inherited from li
+.features-block ul li {
+ color: #999999;
+ font-size: 14px;
+}
+.mini-blocks ul {
+ list-style: none;
+ margin-left: 0;
+}
+.features-block .soft-updates li {
+ border-bottom: 1px solid #d6d6d6;
+ padding-bottom: 15px;
+ margin-bottom: 15px;
+ overflow: hidden;
+}
+.features-block ul li {
+ color: #999999;
+ font-size: 14px;
+ margin-bottom: 7px;
+}
+.soft-updates .date-img {
+ float: left;
+ margin-right: 25px;
+ width: 62px;
+ height: 70px;
+ background: #2773ae;
+ position:relative;
+}
+.soft-updates .date-img:before {
+ position:absolute;
+ top:0;
+ left:0;
+ width:100%;
+ height:100%;
+ background: url("../img/date_img_mask.png") 0 0 no-repeat;
+ content:'';
+}
+.soft-updates .date-img * {
+ position:relative;
+ z-index:1;
+}
+.soft-updates .date-img .top-date {
+ color: #EFF7AD;
+ font-size: 12px;
+ font-weight: bold;
+ height: 24px;
+ line-height: 2.1;
+}
+.soft-updates .date-img .bottom-date {
+ color: #FFFFFF;
+ font-size: 26px;
+ font-weight: bold;
+ height: 36px;
+ line-height: 1.19;
+}
+.soft-updates .date-img span {
+ display: block;
+ text-align: center;
+}
+.soft-updates p {
+ color: #333333;
+ font-size: 15px;
+ line-height: 1.333;
+ padding-bottom: 0;
+ padding-right: 0;
+}
+.mini-clients li {
+ border: 1px solid #CCCCCC;
+ padding: 5px 20px;
+}
+.mini-blocks .block2 {
+ margin-left: 0;
+ background-image: linear-gradient(bottom 90deg, #FFFFFF 11%, #FBFBFB 63%, #E2E2E2 100%);
+ background-image: -o-linear-gradient(bottom 90deg, #FFFFFF 11%, #FBFBFB 63%, #E2E2E2 100%);
+ background-image: -moz-linear-gradient(bottom 90deg, #FFFFFF 11%, #FBFBFB 63%, #E2E2E2 100%);
+ background-image: -webkit-linear-gradient(bottom 90deg, #FFFFFF 11%, #FBFBFB 63%, #E2E2E2 100%);
+ background-image: -ms-linear-gradient(bottom 90deg, #FFFFFF 11%, #FBFBFB 63%, #E2E2E2 100%);
+ background-image: -webkit-gradient( linear, right bottom, left top, color-stop(0.11, #FFFFFF), color-stop(0.63, #FBFBFB), color-stop(1, #E2E2E2) );
+}
+.features-block .mini-wrapper h2 {
+ color: #333333;
+ font-weight: bold;
+ font-size: 20px;
+ margin-bottom: 20px;
+ clear: both;
+}
+blockquote.greyb {
+ border-left: 10px solid #2773ae;
+ background: none;
+ border-top: none;
+ border-right: none;
+ border-bottom: none;
+ border-radius: 0;
+ box-shadow: none;
+ padding: 0 0 0 34px;
+ position:relative;
+}
+blockquote.greyb small {
+ font-size: 13px;
+ color: #3c92cd;
+}
+blockquote.greyb small {
+ font-size: 13px;
+ color: #648798;
+}
+.page-header {
+ padding-bottom: 9px;
+ margin: 20px 0 30px;
+ border-bottom: 1px solid #EEE;
+}
+.features-list {
+ margin-bottom: 20px;
+ margin-top: 30px;
+}
+.features-block h2 {
+ color: #333333;
+ font-size: 22px;
+ margin-bottom: 20px;
+ font-family: 'Raleway', sans-serif;
+ clear: both;
+}
+.features-block p {
+ color: #999999;
+ padding-right: 20px;
+ padding-bottom: 15px;
+}
+.features-block .left-list {
+ float: left;
+ margin-right: 20px;
+ width: 50%;
+}
+.features-block ul {
+ padding-left: 0;
+ list-style: none;
+}
+.features-block ul li {
+ color: #999999;
+ font-size: 14px;
+ margin-bottom: 7px;
+}
+.features-block .more {
+ display: block;
+ clear: both;
+ font-size: 14px;
+}
+blockquote.blueb {
+ border-left: 10px solid #648798;
+ border-top: none;
+ border-right: none;
+ border-bottom: none;
+ border-radius: 0;
+ box-shadow: none;
+ padding: 0 0 0 47px;
+ margin-bottom: 0;
+ position:relative;
+ background:none;
+}
+blockquote:before {
+ content: '';
+ position:absolute;
+ left:8px;
+ top:10px;
+ font-size:60px;
+ color:#2773ae;
+}
+.clients {
+ margin-bottom: 70px;
+}
+.line_title {
+ background: url("../img/line_title_bg.gif") repeat-x scroll 0 13px transparent;
+ float: left;
+ margin-bottom: 5px;
+ text-align: center;
+ width: 100%;
+}
+.line_title h2 {
+ background-color: #FFFFFF;
+ color: #0078cc;
+ display: inline-block;
+ font-size: 20px;
+ padding: 0 30px;
+}
+.line_title h2 a {
+ color: #648798;
+}
+.hover-shade {
+ position: absolute;
+ left: -9999em;
+ top: 0;
+}
+.block-posts {
+ margin-bottom: 80px;
+}
+.lined-title-wrapper {
+ overflow: hidden;
+ border-bottom: 1px solid #ececec;
+ margin-bottom: 20px;
+}
+.lined-title-wrapper h2 {
+ float: left;
+ margin-bottom: 8px;
+ color: #000000;
+ font-size: 14px;
+ text-transform: uppercase;
+ font-weight: 600;
+}
+.lined-title-wrapper .all {
+ color: #648798;
+}
+.lined-title-wrapper .all {
+ font-size: 14px;
+ float: right;
+ line-height: 17px;
+ font-style: italic;
+ padding-right: 3px;
+}
+.fancy-wrapper {
+ position: relative;
+}
+.fancy-wrapper .fancy {
+ display: block;
+ height: 100%;
+ left: -9999em;
+ opacity: 0.7;
+ position: absolute;
+ top: 0;
+ width: 100%;
+}
+.portfolio-grid-1 .hp-wrapper .bottom-block-optional {
+ height: 45px;
+ padding: 24px 0 16px 0;
+ position:relative;
+ box-sizing: content-box;
+ -moz-box-sizing: content-box;
+ -webkit-box-sizing: content-box;
+ -o-box-sizing: content-box;
+ -ms-box-sizing: content-box;
+}
+.portfolio-grid-1 .hp-wrapper {
+ position: relative;
+ margin-bottom: 20px;
+}
+.hp-wrapper:hover .fancy {
+ left: 0;
+}
+.block-posts .block-post-title {
+ font-size: 14px;
+ color: #000000;
+ font-weight: 600;
+ margin-bottom: 6px;
+ display: block;
+}
+.block-posts .block-post-date {
+ padding-bottom: 20px;
+ font-style: italic;
+ color: #999999;
+}
+.block-posts .block-post-content {
+ margin: 0 0 2px;
+ color: #666666;
+ padding: 0;
+ line-height: 18px;
+}
+.center-logo a.cs-logo {
+ margin: 0 auto;
+}
+a.cs-logo {
+ display: block;
+ width: 236px;
+ height: 72px;
+}
+.coming-soon-content h1 {
+ font-size: 70px;
+ color: #ffffff;
+ margin: 40px 0;
+ line-height: 80px;
+}
+.coming-soon-content {
+ background-color: #2773ae;
+ border-bottom: 1px solid #FFFFFF;
+ border-top: 1px solid #2773ae;
+ text-align: center;
+}
+.coming-soon-topline {
+ border-top: 1px solid #ffffff;
+}
+p#note {
+ color: #ffffff;
+}
+.coming-soon-subscribe {
+ margin: 70px 0 200px;
+}
+.coming-soon-footer .footer-socials {
+ float: none;
+ display: inline-block;
+ margin: 40px 0;
+}
+.footer-socials {
+ list-style: none;
+ margin: 0;
+ padding: 0;
+ clear: both;
+ margin-bottom: 20px;
+ float: left;
+}
+.footer-socials li {
+ float: left;
+ margin-right: 10px;
+}
+.footer-socials li .fb {
+ background: url("../img/socials.png") no-repeat scroll 0 0 transparent;
+}
+.coming-soon-footer .col-md-12 {
+ text-align: center;
+}
+
+.footer-socials li a {
+ display: block;
+ width: 32px;
+ height: 32px;
+}
+.footer-socials li .tw {
+ background: url("../img/socials.png") no-repeat scroll -43px 0 transparent;
+}
+.footer-socials li .in {
+ background: url("../img/socials.png") no-repeat scroll -87px 0 transparent;
+}
+.footer-socials li .wf {
+ background: url("../img/socials.png") no-repeat scroll -130px 0 transparent;
+}
+.footer-socials li .fl {
+ background: url("../img/socials.png") no-repeat scroll -173px 0 transparent;
+}
+.footer-socials li .b {
+ background: url("../img/socials.png") no-repeat scroll -217px 0 transparent;
+}
+.top_cs_line {
+ background-color: #000000;
+}
+.top_cs_line {
+ height: 8px;
+}
+.coming-soon-footer, .footer-bottom-cs, .footer-cs, .top_cs_line {
+ margin: 0;
+}
+.coming-soon-btn {
+ background-color: #000000;
+ color: #ffffff;
+}
+hr {
+ margin-top: 20px;
+ margin-bottom: 20px;
+}
+.portfolio-grid-1 .small .bottom-block {
+ width: 210px;
+}
+.portfolio-grid-1 .middle .bottom-block {
+ width: 450px;
+}
+.portfolio-grid-1 .tall .bottom-block {
+ width: 215px;
+}
+.portfolio-grid-1 .large .bottom-block {
+ width: 450px;
+}
+.tour-btn {
+ background: transparent;
+}
+.tour-btn:hover {
+ background: transparent;
+}
+/*Main Column End*/
+
+/*Footer Start*/
+#footer {
+ width: 100%;
+}
+#footer address {
+ margin-bottom: 20px;
+}
+#footer ul {
+ margin-bottom: 20px;
+ padding-left: 0;
+}
+.footer-top {
+ height: 10px;
+ background-color: #898989;
+}
+.footer-wrapper {
+ background-color: #666666;
+ padding-top: 17px;
+}
+.footer-bottom {
+ background-color: #333333;
+}
+.footer-logo {
+ margin-bottom: 20px;
+}
+.footer-wrapper .address {
+ padding-left: 15px;
+}
+.footer-wrapper .address p {
+ margin-bottom: 5px;
+ color: #cbcbcb;
+ padding: 0;
+}
+.footer-wrapper .address p i {
+ display: block;
+ float: left;
+ line-height: 20px;
+ width: 30px;
+}
+.footer-wrapper h4 {
+ border-bottom: 1px solid #CBCBCB;
+ color: #CBCBCB;
+ font-size: 18px;
+ margin-bottom: 8px;
+ padding-bottom: 8px;
+}
+.footer-wrapper .col-md-4 {
+ margin-bottom: 30px;
+}
+.footer-wrapper .footer-right h4, .footer-wrapper .footer-center h4 {
+ margin-bottom: 0;
+}
+.footer-navigate {
+ list-style: none;
+ margin-left: 0;
+}
+.footer-center p {
+ color: #cbcbcb;
+ padding: 12px 0 0;
+}
+.footer-navigate li {
+ border-bottom: 1px solid #898989;
+ padding: 5px 0;
+}
+.footer-navigate li a {
+ color: #ffffff;
+}
+.footer-bottom p {
+ padding: 18px 0 13px 14px;
+ color: #ffffff;
+}
+.footer-bottom p a {
+ color: #ffffff;
+}
+/*Footer End*/
+
diff --git a/css/flexslider.css b/css/flexslider.css
new file mode 100755
index 0000000..349a4fc
--- /dev/null
+++ b/css/flexslider.css
@@ -0,0 +1,101 @@
+/*
+ * jQuery FlexSlider v2.0
+ * http://www.woothemes.com/flexslider/
+ *
+ * Copyright 2012 WooThemes
+ * Free to use under the GPLv2 license.
+ * http://www.gnu.org/licenses/gpl-2.0.html
+ *
+ * Contributing author: Tyler Smith (@mbmufffin)
+ */
+
+
+/* Browser Resets */
+.flex-container a:active,
+.flexslider a:active,
+.flex-container a:focus,
+.flexslider a:focus {outline: none;}
+.slides,
+.flex-control-nav,
+.flex-direction-nav {margin: 0; padding: 0; list-style: none;}
+
+/* FlexSlider Necessary Styles
+*********************************/
+.flexslider {margin: 0; padding: 0;}
+.flexslider .slides > li {display: none; -webkit-backface-visibility: hidden; position: relative;} /* Hide the slides before the JS is loaded. Avoids image jumping */
+.flexslider .slides img {width: 100%; display: block;}
+.flex-pauseplay span {text-transform: capitalize;}
+
+/* Clearfix for the .slides element */
+.slides:after {content: "."; display: block; clear: both; visibility: hidden; line-height: 0; height: 0;}
+html[xmlns] .slides {display: block;}
+* html .slides {height: 1%;}
+
+/* No JavaScript Fallback */
+/* If you are not using another script, such as Modernizr, make sure you
+ * include js that eliminates this class on page load */
+.no-js .slides > li:first-child {display: block;}
+
+
+/* FlexSlider Default Theme
+*********************************/
+.flexslider {margin: 0 0 60px; background: #fff; position: relative; zoom: 1;}
+.flex-viewport {max-height: 2000px;}
+.loading .flex-viewport {max-height: 300px;}
+.flexslider .slides {zoom: 1;}
+
+.carousel li {margin-right: 5px}
+
+
+/* Direction Nav */
+.flex-direction-nav {*height: 0;}
+.flex-direction-nav a {width: 30px; height: 29px; display: block; background: url(../img/slider_arrows.png) no-repeat 0 0; position: absolute; top: 48%; cursor: pointer; text-indent: -9999px;}
+.flex-direction-nav .flex-next {background-position: 100% 0; right: 20px; }
+.flex-direction-nav .flex-prev {left: 20px; background-position: 0 0;}
+.flexslider .flex-next:hover {background-position: -30px -29px;}
+.flexslider .flex-prev:hover {background-position: 0 -29px;}
+.flex-direction-nav .flex-disabled {opacity: .3!important; filter:alpha(opacity=30); cursor: default;}
+
+/* Control Nav */
+.flex-control-nav {width: 100%; position: absolute; bottom: -40px; text-align: center;}
+.flex-control-nav li {margin: 0 6px; display: inline-block; zoom: 1; *display: inline;}
+.flex-control-paging li a {width: 11px; height: 11px; display: block; background: #666; background: rgba(0,0,0,0.5); cursor: pointer; text-indent: -9999px; -webkit-border-radius: 20px; -moz-border-radius: 20px; -o-border-radius: 20px; border-radius: 20px; box-shadow: inset 0 0 3px rgba(0,0,0,0.3);}
+.flex-control-paging li a:hover { background: #333; background: rgba(0,0,0,0.7); }
+.flex-control-paging li a.flex-active { background: #000; background: rgba(0,0,0,0.9); cursor: default; }
+
+.flex-control-thumbs {margin: 5px 0 0; position: static; overflow: hidden;}
+.flex-control-thumbs li {width: 25%; float: left; margin: 0;}
+.flex-control-thumbs img {width: 100%; display: block; opacity: .7; cursor: pointer;}
+.flex-control-thumbs img:hover {opacity: 1;}
+.flex-control-thumbs .flex-active {opacity: 1; cursor: default;}
+
+@media screen and (max-width: 860px) {
+ .flex-direction-nav .flex-prev {opacity: 1; left: 0;}
+ .flex-direction-nav .flex-next {opacity: 1; right: 0;}
+}
+
+.slide-info {
+ width: 380px;
+ height: 85px;
+ position: absolute;
+ background: transparent url('../img/slide_info_bg.png') top left repeat;
+ bottom: 20px;
+ right: 30px;
+ padding: 15px 20px;
+}
+.slide-info h2 {
+ padding-bottom: 10px;
+}
+.slide-info h2 a {
+ font-size: 24px;
+ color: #2773ae;
+ text-decoration: none;
+ font-weight: normal;
+}
+.slide-info h2 a:hover {
+ text-decoration: underline;
+}
+.slide-info p {
+ color: #ffffff;
+ font-size: 14px;
+}
\ No newline at end of file
diff --git a/css/font-awesome-ie7.css b/css/font-awesome-ie7.css
new file mode 100755
index 0000000..c1dc3ac
--- /dev/null
+++ b/css/font-awesome-ie7.css
@@ -0,0 +1,645 @@
+[class^="icon-"],
+[class*=" icon-"] {
+ font-family: FontAwesome;
+ font-style: normal;
+ font-weight: normal;
+}
+.btn.dropdown-toggle [class^="icon-"],
+.btn.dropdown-toggle [class*=" icon-"] {
+ /* keeps button heights with and without icons the same */
+
+ line-height: 1.4em;
+}
+.icon-large {
+ font-size: 1.3333em;
+}
+.icon-glass {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-music {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-search {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-envelope {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-heart {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-star {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-star-empty {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-user {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-film {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-th-large {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-th {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-th-list {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-ok {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-remove {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-zoom-in {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-zoom-out {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-off {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-signal {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-cog {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-trash {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-home {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-file {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-time {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-road {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-download-alt {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-download {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-upload {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-inbox {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-play-circle {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-repeat {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-refresh {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-list-alt {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-lock {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-flag {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-headphones {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-volume-off {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-volume-down {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-volume-up {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-qrcode {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-barcode {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-tag {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-tags {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-book {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-bookmark {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-print {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-camera {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-font {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-bold {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-italic {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-text-height {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-text-width {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-align-left {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-align-center {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-align-right {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-align-justify {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-list {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-indent-left {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-indent-right {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-facetime-video {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-picture {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-pencil {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-map-marker {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-adjust {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-tint {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-edit {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-share {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-check {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-move {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-step-backward {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-fast-backward {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-backward {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-play {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-pause {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-stop {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-forward {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-fast-forward {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-step-forward {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-eject {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-chevron-left {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-chevron-right {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-plus-sign {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-minus-sign {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-remove-sign {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-ok-sign {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-question-sign {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-info-sign {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-screenshot {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-remove-circle {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-ok-circle {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-ban-circle {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-arrow-left {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-arrow-right {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-arrow-up {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-arrow-down {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-share-alt {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-resize-full {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-resize-small {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-plus {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-minus {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-asterisk {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-exclamation-sign {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-gift {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-leaf {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-fire {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-eye-open {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-eye-close {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-warning-sign {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-plane {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-calendar {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-random {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-comment {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-magnet {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-chevron-up {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-chevron-down {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-retweet {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-shopping-cart {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-folder-close {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-folder-open {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-resize-vertical {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-resize-horizontal {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-bar-chart {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-twitter-sign {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-facebook-sign {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-camera-retro {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-key {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-cogs {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-comments {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-thumbs-up {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-thumbs-down {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-star-half {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-heart-empty {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-signout {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-linkedin-sign {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-pushpin {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-external-link {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-signin {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-trophy {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-github-sign {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-upload-alt {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-lemon {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-phone {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-check-empty {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-bookmark-empty {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-phone-sign {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-twitter {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-facebook {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-github {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-unlock {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-credit-card {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-rss {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-hdd {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-bullhorn {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-bell {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-certificate {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-hand-right {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-hand-left {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-hand-up {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-hand-down {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-circle-arrow-left {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-circle-arrow-right {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-circle-arrow-up {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-circle-arrow-down {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-globe {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-wrench {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-tasks {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-filter {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-briefcase {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-fullscreen {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-group {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-link {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-cloud {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-beaker {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-cut {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-copy {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-paper-clip {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-save {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-sign-blank {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-reorder {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-list-ul {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-list-ol {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-strikethrough {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-underline {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-table {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-magic {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-truck {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-pinterest {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-pinterest-sign {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-google-plus-sign {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-google-plus {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-money {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-caret-down {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-caret-up {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-caret-left {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-caret-right {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-columns {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-sort {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-sort-down {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-sort-up {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-envelope-alt {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-linkedin {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-undo {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-legal {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-dashboard {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-comment-alt {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-comments-alt {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-bolt {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-sitemap {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-umbrella {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-paste {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
+.icon-user-md {
+ *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' ');
+}
diff --git a/css/font-awesome.css b/css/font-awesome.css
new file mode 100755
index 0000000..4697599
--- /dev/null
+++ b/css/font-awesome.css
@@ -0,0 +1,303 @@
+/* Font Awesome
+ the iconic font designed for use with Twitter Bootstrap
+ -------------------------------------------------------
+ The full suite of pictographic icons, examples, and documentation
+ can be found at: http://fortawesome.github.com/Font-Awesome/
+
+ License
+ -------------------------------------------------------
+ The Font Awesome webfont, CSS, and LESS files are licensed under CC BY 3.0:
+ http://creativecommons.org/licenses/by/3.0/ A mention of
+ 'Font Awesome - http://fortawesome.github.com/Font-Awesome' in human-readable
+ source code is considered acceptable attribution (most common on the web).
+ If human readable source code is not available to the end user, a mention in
+ an 'About' or 'Credits' screen is considered acceptable (most common in desktop
+ or mobile software).
+
+ Contact
+ -------------------------------------------------------
+ Email: dave@davegandy.com
+ Twitter: http://twitter.com/fortaweso_me
+ Work: http://lemonwi.se co-founder
+
+ */
+@font-face {
+ font-family: "FontAwesome";
+ src: url('../font/fontawesome-webfont.eot');
+ src: url('../font/fontawesome-webfont.eot?#iefix') format('eot'), url('../font/fontawesome-webfont.woff') format('woff'), url('../font/fontawesome-webfont.ttf') format('truetype'), url('../font/fontawesome-webfont.svg#FontAwesome') format('svg');
+ font-weight: normal;
+ font-style: normal;
+}
+
+/* Font Awesome styles
+ ------------------------------------------------------- */
+[class^="icon-"]:before, [class*=" icon-"]:before {
+ font-family: FontAwesome;
+ font-weight: normal;
+ font-style: normal;
+ display: inline-block;
+ text-decoration: inherit;
+}
+a [class^="icon-"], a [class*=" icon-"] {
+ display: inline-block;
+ text-decoration: inherit;
+}
+/* makes the font 33% larger relative to the icon container */
+.icon-large:before {
+ vertical-align: top;
+ font-size: 1.3333333333333333em;
+}
+.btn [class^="icon-"], .btn [class*=" icon-"] {
+ /* keeps button heights with and without icons the same */
+
+ line-height: .9em;
+}
+li [class^="icon-"], li [class*=" icon-"] {
+ display: inline-block;
+ width: 1.25em;
+ text-align: center;
+}
+li .icon-large[class^="icon-"], li .icon-large[class*=" icon-"] {
+ /* 1.5 increased font size for icon-large * 1.25 width */
+
+ width: 1.875em;
+}
+li[class^="icon-"], li[class*=" icon-"] {
+ margin-left: 0;
+ list-style-type: none;
+}
+li[class^="icon-"]:before, li[class*=" icon-"]:before {
+ text-indent: -2em;
+ text-align: center;
+}
+li[class^="icon-"].icon-large:before, li[class*=" icon-"].icon-large:before {
+ text-indent: -1.3333333333333333em;
+}
+/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
+ readers do not read off random characters that represent icons */
+.icon-glass:before { content: "\f000"; }
+.icon-music:before { content: "\f001"; }
+.icon-search:before { content: "\f002"; }
+.icon-envelope:before { content: "\f003"; }
+.icon-heart:before { content: "\f004"; }
+.icon-star:before { content: "\f005"; }
+.icon-star-empty:before { content: "\f006"; }
+.icon-user:before { content: "\f007"; }
+.icon-film:before { content: "\f008"; }
+.icon-th-large:before { content: "\f009"; }
+.icon-th:before { content: "\f00a"; }
+.icon-th-list:before { content: "\f00b"; }
+.icon-ok:before { content: "\f00c"; }
+.icon-remove:before { content: "\f00d"; }
+.icon-zoom-in:before { content: "\f00e"; }
+
+.icon-zoom-out:before { content: "\f010"; }
+.icon-off:before { content: "\f011"; }
+.icon-signal:before { content: "\f012"; }
+.icon-cog:before { content: "\f013"; }
+.icon-trash:before { content: "\f014"; }
+.icon-home:before { content: "\f015"; }
+.icon-file:before { content: "\f016"; }
+.icon-time:before { content: "\f017"; }
+.icon-road:before { content: "\f018"; }
+.icon-download-alt:before { content: "\f019"; }
+.icon-download:before { content: "\f01a"; }
+.icon-upload:before { content: "\f01b"; }
+.icon-inbox:before { content: "\f01c"; }
+.icon-play-circle:before { content: "\f01d"; }
+.icon-repeat:before { content: "\f01e"; }
+
+/* \f020 doesn't work in Safari. all shifted one down */
+.icon-refresh:before { content: "\f021"; }
+.icon-list-alt:before { content: "\f022"; }
+.icon-lock:before { content: "\f023"; }
+.icon-flag:before { content: "\f024"; }
+.icon-headphones:before { content: "\f025"; }
+.icon-volume-off:before { content: "\f026"; }
+.icon-volume-down:before { content: "\f027"; }
+.icon-volume-up:before { content: "\f028"; }
+.icon-qrcode:before { content: "\f029"; }
+.icon-barcode:before { content: "\f02a"; }
+.icon-tag:before { content: "\f02b"; }
+.icon-tags:before { content: "\f02c"; }
+.icon-book:before { content: "\f02d"; }
+.icon-bookmark:before { content: "\f02e"; }
+.icon-print:before { content: "\f02f"; }
+
+.icon-camera:before { content: "\f030"; }
+.icon-font:before { content: "\f031"; }
+.icon-bold:before { content: "\f032"; }
+.icon-italic:before { content: "\f033"; }
+.icon-text-height:before { content: "\f034"; }
+.icon-text-width:before { content: "\f035"; }
+.icon-align-left:before { content: "\f036"; }
+.icon-align-center:before { content: "\f037"; }
+.icon-align-right:before { content: "\f038"; }
+.icon-align-justify:before { content: "\f039"; }
+.icon-list:before { content: "\f03a"; }
+.icon-indent-left:before { content: "\f03b"; }
+.icon-indent-right:before { content: "\f03c"; }
+.icon-facetime-video:before { content: "\f03d"; }
+.icon-picture:before { content: "\f03e"; }
+
+.icon-pencil:before { content: "\f040"; }
+.icon-map-marker:before { content: "\f041"; }
+.icon-adjust:before { content: "\f042"; }
+.icon-tint:before { content: "\f043"; }
+.icon-edit:before { content: "\f044"; }
+.icon-share:before { content: "\f045"; }
+.icon-check:before { content: "\f046"; }
+.icon-move:before { content: "\f047"; }
+.icon-step-backward:before { content: "\f048"; }
+.icon-fast-backward:before { content: "\f049"; }
+.icon-backward:before { content: "\f04a"; }
+.icon-play:before { content: "\f04b"; }
+.icon-pause:before { content: "\f04c"; }
+.icon-stop:before { content: "\f04d"; }
+.icon-forward:before { content: "\f04e"; }
+
+.icon-fast-forward:before { content: "\f050"; }
+.icon-step-forward:before { content: "\f051"; }
+.icon-eject:before { content: "\f052"; }
+.icon-chevron-left:before { content: "\f053"; }
+.icon-chevron-right:before { content: "\f054"; }
+.icon-plus-sign:before { content: "\f055"; }
+.icon-minus-sign:before { content: "\f056"; }
+.icon-remove-sign:before { content: "\f057"; }
+.icon-ok-sign:before { content: "\f058"; }
+.icon-question-sign:before { content: "\f059"; }
+.icon-info-sign:before { content: "\f05a"; }
+.icon-screenshot:before { content: "\f05b"; }
+.icon-remove-circle:before { content: "\f05c"; }
+.icon-ok-circle:before { content: "\f05d"; }
+.icon-ban-circle:before { content: "\f05e"; }
+
+.icon-arrow-left:before { content: "\f060"; }
+.icon-arrow-right:before { content: "\f061"; }
+.icon-arrow-up:before { content: "\f062"; }
+.icon-arrow-down:before { content: "\f063"; }
+.icon-share-alt:before { content: "\f064"; }
+.icon-resize-full:before { content: "\f065"; }
+.icon-resize-small:before { content: "\f066"; }
+.icon-plus:before { content: "\f067"; }
+.icon-minus:before { content: "\f068"; }
+.icon-asterisk:before { content: "\f069"; }
+.icon-exclamation-sign:before { content: "\f06a"; }
+.icon-gift:before { content: "\f06b"; }
+.icon-leaf:before { content: "\f06c"; }
+.icon-fire:before { content: "\f06d"; }
+.icon-eye-open:before { content: "\f06e"; }
+
+.icon-eye-close:before { content: "\f070"; }
+.icon-warning-sign:before { content: "\f071"; }
+.icon-plane:before { content: "\f072"; }
+.icon-calendar:before { content: "\f073"; }
+.icon-random:before { content: "\f074"; }
+.icon-comment:before { content: "\f075"; }
+.icon-magnet:before { content: "\f076"; }
+.icon-chevron-up:before { content: "\f077"; }
+.icon-chevron-down:before { content: "\f078"; }
+.icon-retweet:before { content: "\f079"; }
+.icon-shopping-cart:before { content: "\f07a"; }
+.icon-folder-close:before { content: "\f07b"; }
+.icon-folder-open:before { content: "\f07c"; }
+.icon-resize-vertical:before { content: "\f07d"; }
+.icon-resize-horizontal:before { content: "\f07e"; }
+
+.icon-bar-chart:before { content: "\f080"; }
+.icon-twitter-sign:before { content: "\f081"; }
+.icon-facebook-sign:before { content: "\f082"; }
+.icon-camera-retro:before { content: "\f083"; }
+.icon-key:before { content: "\f084"; }
+.icon-cogs:before { content: "\f085"; }
+.icon-comments:before { content: "\f086"; }
+.icon-thumbs-up:before { content: "\f087"; }
+.icon-thumbs-down:before { content: "\f088"; }
+.icon-star-half:before { content: "\f089"; }
+.icon-heart-empty:before { content: "\f08a"; }
+.icon-signout:before { content: "\f08b"; }
+.icon-linkedin-sign:before { content: "\f08c"; }
+.icon-pushpin:before { content: "\f08d"; }
+.icon-external-link:before { content: "\f08e"; }
+
+.icon-signin:before { content: "\f090"; }
+.icon-trophy:before { content: "\f091"; }
+.icon-github-sign:before { content: "\f092"; }
+.icon-upload-alt:before { content: "\f093"; }
+.icon-lemon:before { content: "\f094"; }
+.icon-phone:before { content: "\f095"; }
+.icon-check-empty:before { content: "\f096"; }
+.icon-bookmark-empty:before { content: "\f097"; }
+.icon-phone-sign:before { content: "\f098"; }
+.icon-twitter:before { content: "\f099"; }
+.icon-facebook:before { content: "\f09a"; }
+.icon-github:before { content: "\f09b"; }
+.icon-unlock:before { content: "\f09c"; }
+.icon-credit-card:before { content: "\f09d"; }
+.icon-rss:before { content: "\f09e"; }
+
+.icon-hdd:before { content: "\f0a0"; }
+.icon-bullhorn:before { content: "\f0a1"; }
+.icon-bell:before { content: "\f0a2"; }
+.icon-certificate:before { content: "\f0a3"; }
+.icon-hand-right:before { content: "\f0a4"; }
+.icon-hand-left:before { content: "\f0a5"; }
+.icon-hand-up:before { content: "\f0a6"; }
+.icon-hand-down:before { content: "\f0a7"; }
+.icon-circle-arrow-left:before { content: "\f0a8"; }
+.icon-circle-arrow-right:before { content: "\f0a9"; }
+.icon-circle-arrow-up:before { content: "\f0aa"; }
+.icon-circle-arrow-down:before { content: "\f0ab"; }
+.icon-globe:before { content: "\f0ac"; }
+.icon-wrench:before { content: "\f0ad"; }
+.icon-tasks:before { content: "\f0ae"; }
+
+.icon-filter:before { content: "\f0b0"; }
+.icon-briefcase:before { content: "\f0b1"; }
+.icon-fullscreen:before { content: "\f0b2"; }
+
+.icon-group:before { content: "\f0c0"; }
+.icon-link:before { content: "\f0c1"; }
+.icon-cloud:before { content: "\f0c2"; }
+.icon-beaker:before { content: "\f0c3"; }
+.icon-cut:before { content: "\f0c4"; }
+.icon-copy:before { content: "\f0c5"; }
+.icon-paper-clip:before { content: "\f0c6"; }
+.icon-save:before { content: "\f0c7"; }
+.icon-sign-blank:before { content: "\f0c8"; }
+.icon-reorder:before { content: "\f0c9"; }
+.icon-list-ul:before { content: "\f0ca"; }
+.icon-list-ol:before { content: "\f0cb"; }
+.icon-strikethrough:before { content: "\f0cc"; }
+.icon-underline:before { content: "\f0cd"; }
+.icon-table:before { content: "\f0ce"; }
+
+.icon-magic:before { content: "\f0d0"; }
+.icon-truck:before { content: "\f0d1"; }
+.icon-pinterest:before { content: "\f0d2"; }
+.icon-pinterest-sign:before { content: "\f0d3"; }
+.icon-google-plus-sign:before { content: "\f0d4"; }
+.icon-google-plus:before { content: "\f0d5"; }
+.icon-money:before { content: "\f0d6"; }
+.icon-caret-down:before { content: "\f0d7"; }
+.icon-caret-up:before { content: "\f0d8"; }
+.icon-caret-left:before { content: "\f0d9"; }
+.icon-caret-right:before { content: "\f0da"; }
+.icon-columns:before { content: "\f0db"; }
+.icon-sort:before { content: "\f0dc"; }
+.icon-sort-down:before { content: "\f0dd"; }
+.icon-sort-up:before { content: "\f0de"; }
+
+.icon-envelope-alt:before { content: "\f0e0"; }
+.icon-linkedin:before { content: "\f0e1"; }
+.icon-undo:before { content: "\f0e2"; }
+.icon-legal:before { content: "\f0e3"; }
+.icon-dashboard:before { content: "\f0e4"; }
+.icon-comment-alt:before { content: "\f0e5"; }
+.icon-comments-alt:before { content: "\f0e6"; }
+.icon-bolt:before { content: "\f0e7"; }
+.icon-sitemap:before { content: "\f0e8"; }
+.icon-umbrella:before { content: "\f0e9"; }
+.icon-paste:before { content: "\f0ea"; }
+
+.icon-user-md:before { content: "\f200"; }
diff --git a/css/mantis.css b/css/mantis.css
deleted file mode 100644
index 7440519..0000000
--- a/css/mantis.css
+++ /dev/null
@@ -1,312 +0,0 @@
-body {
- font:14px/1.5em "Lucida Grande", Tahoma, sans-serif;
- letter-spacing:0px;
- color:#333;
- background-color:#fff;
- margin:0;
- padding:0;
-}
-
-.clearLeft {clear:left;}
-.clearRight {clear:right;}
-.clearBoth {clear:both;}
-.hide {display:none;}
-.center {text-align:center;}
-.floatRight {float:right;}
-
-.testimonial {
- margin: 1em 0 0;
-}
-
-.author {
- display: block;
- font-style: italic;
- text-align: right;
- margin: 0 0 2em;
-}
-
-div.ybox-outer {
- float: left;
- padding: 3px;
-}
-
-div.ybox-inner {
- display: table-cell;
- height: 7em;
- width: 189px;
- background: #fff9d3;
- border: 1px solid #f1d32e;
- vertical-align: middle;
- text-align: center;
-}
-
-div.genericbox {
- position: relative;
- width: 45%;
- float: left;
- background: #fff9d3;
- border: 1px solid #f1d32e;
- padding: 10px;
- margin: 4px;
-}
-
-div.box-fixedheight {
- height: 17em;
-}
-
-div.box-doublewidth {
- width: 95%;
-}
-
-div.box-bottom {
- position: absolute;
- bottom: 0;
- margin-left: -10px;
- width: 100%;
-}
-
-p.downloadlink {
- text-align: center;
- font-weight: bold;
-}
-
-h4.addon {
- margin-bottom: 0px;
-}
-
-div.addon-text {
- margin: 0 20px auto 20px;
- padding-top: 0px;
-}
-
-div.genericbox ul {
- list-style: none;
- padding: 0;
- margin: 0;
-}
-
-div.genericbox li {
- margin: 2px;
- padding: 2px;
- background: #fffade;
-}
-
-div.genericbox h3 {
- padding-top: 1px;
- margin-top: 1px;
-}
-
-div#site {
- width: 610px;
- min-height: 300px;
- margin: 30px auto 0 auto;
-}
-
-div#bottomLinks {
- margin: 10px auto 0 auto;
- width: 590px;
- padding-left: 10px;
- padding-right: 10px;
- text-align: center;
-}
-
-div#bottomLinks a {
- padding-right: 15px;
-}
-
-div#buttonContainer {
- margin: 10px auto 0 auto;
- border-top: 2px solid #ccc;
- border-bottom: 2px solid #ccc;
- height: 47px;
- background: #eee;
-}
-
-div#buttonContainer td {
- padding-left: 15px;
-}
-
-div#vertad {
- position: absolute;
- right: 50px;
- top: 220px;
- width: 150px;
-}
-
-div#header {
- background:#fff url(../images/head_gradient.gif) repeat-x top left;
- margin:0;
- padding:0;
-}
-
-div#header div#headerInner {
- margin:0;
- padding:0;
-}
-
-div#header div#headerInner div#logoContainer {}
-
-div#header div#headerInner div#logoContainerInner {
- width:400px;
- margin:0 auto;
- padding:20px;
-}
-
-div#header div#headerInner div#logoContainer div#logo {
- float:left;
- width:200px;
-}
-
-div#header div#headerInner div#logoContainer div#logo a,
-div#header div#headerInner div#logoContainer div#logo a:hover {
- border:none;
- background:none;
-}
-
-div#header div#headerInner div#logoContainer div#feed {
- float:right;
- width:300px;
- text-align:right;
- padding:10px 0 0 0;
-}
-
-div#header div#headerInner div#logoContainer div#feed input.text {
- width:60%;
-}
-
-div#header div#headerInner div#menu {
- background:#eee;
- border-top:2px solid #ccc;
- border-bottom:1px solid #ddd;
- text-align:center;
-}
-
-div#header div#headerInner div#menu table {
- max-width: 70%;
- margin:0 auto;
-}
-
-div#header div#headerInner div#menu ul {
- display:block;
- width:100%;
- margin:0 auto;
- padding:0;
- font-size:12px;
-}
-
-div#header div#headerInner div#menu ul li {
- display:block;
- float:left;
-}
-
-div#header div#headerInner div#menu ul li a {
- display:block;
- margin:-2px 0 0 0;
- padding:5px 7px 8px 7px;
- text-decoration:none;
- color:#666 !important;
- background-color:transparent;
- border-top: 2px solid #ccc;
-}
-
-div#header div#headerInner div#menu ul li a:hover {
- display:block;
- margin:-2px 0 0 0;
- padding:5px 7px 8px 7px;
- text-decoration:none;
- color:#666;
- background: #fff9d3;
- border-top: 2px solid #f1d32e;
-}
-
-/**
- * spotlight
- */
-
-div.spotlight {
- background-color: #e3f1f6;
- padding: 10px;
- clear: both;
- margin: 3px;
-}
-
-div.spotlight p {
- font-size: 11px;
- text-align: center;
- margin: inherit;
-}
-
-div.spotlight h3 {
- text-align: center;
-}
-
-/**
- * Standard table styles
- */
-.table {
- display: table;
- background: #FFF9D3;
- width:100%;
- border-collapse: collapse;
-}
-
-.table-header {
- display: table-header-group;
- border: 1px solid #F1D32E;
- background: #F1D32E;
- font-weight: bold;
-}
-
-.table-row {
- display: table-row;
- border: 1px solid #F1D32E;
-}
-
-.table-cell {
- display: table-cell;
- padding: 4px;
- vertical-align: middle;
-}
-
-/**
- * IRC logs page
- */
-
-div.irc-channel-name {
- font-weight: bold;
-}
-
-.irc-channel-current {
- padding-left: 25px;
- padding-right: 25px;
- text-align: center
-}
-
-/**
- * Tooltips
- */
-
-span.tooltip {
- position: relative;
-}
-
-span.tooltip span {
- display: none;
- position: absolute;
- top: 110%;
- left: 20%;
- margin-right: -100px;
- background-color: white;
- border-color: #333333;
- border-style: solid;
- border-width: 1px;
- box-shadow: 5px 5px 8px #CCCCCC;
- padding: 0 4px;
- font-size: 12px;
- font-weight: normal;
- z-index: 6;
-}
-
-span.tooltip:hover span {
- display: inline;
-}
diff --git a/css/mantisbt.css b/css/mantisbt.css
new file mode 100644
index 0000000..4d04d3c
--- /dev/null
+++ b/css/mantisbt.css
@@ -0,0 +1,11 @@
+.addthis_button_facebook_like {
+ width:95px !important;
+}
+
+.addthis_button_tweet {
+ width:95px !important;
+}
+
+.addthis_button_google_plusone {
+ width:85px !important;
+}
diff --git a/css/upgrade_browser.css b/css/upgrade_browser.css
new file mode 100644
index 0000000..7be31eb
--- /dev/null
+++ b/css/upgrade_browser.css
@@ -0,0 +1,212 @@
+* {
+ margin:0;
+ padding:0;
+ border:0;
+}
+
+html, body {
+ width:100%;
+ height:100%;
+ background-color:#ffffff;
+ text-align:center;
+}
+
+html {
+ overflow-y:scroll;
+}
+
+#container {
+ width:870px;
+ text-align:left;
+ margin:0 auto 0 auto;
+ padding:15px 15px 15px 15px;
+ text-align:left;
+}
+
+#header {
+ width:840px;
+ height:115px;
+ background-position:top;
+ background-repeat:no-repeat;
+ padding:20px 15px 15px 15px;
+ margin-bottom:25px;
+}
+
+#intro {
+ float:left;
+ width:420px;
+}
+
+#explain {
+ float:right;
+ width:420px;
+ margin-top:7px;
+}
+
+#explain p {
+ font-family:Arial, Helvetica, sans-serif;
+ font-size:14px;
+ line-height:21px;
+ color:#000000;
+}
+
+h1, h1 a, a h1 {
+ font-family:Georgia, "Times New Roman", Times, serif;
+ font-size:16px;
+ color:#000000;
+ margin-bottom:16px;
+}
+h2 {
+ font-family:Georgia, "Times New Roman", Times, serif;
+ font-size:18px;
+ color:#000000;
+ margin-bottom:14px;
+}
+
+#main h2 {
+ color:#000000;
+ margin-top:20px;
+}
+
+p, ul, td {
+ font-family:Arial, Helvetica, sans-serif;
+ font-size:14px;
+ line-height:21px;
+ color:#000000;
+ margin-bottom:21px;
+}
+
+a, a:link, a:visited, a:hover, a:active {
+ color:#000000;
+}
+
+ul {
+ margin-left:25px;
+}
+
+#buts {
+ margin-top:25px;
+ overflow:hidden;
+}
+
+.but {
+ width:270px;
+ height:130px;
+ margin-right:15px;
+ margin-bottom:15px;
+}
+
+.code {
+ width:100%;
+ height:80px;
+ background-color:#999999;
+ color:#ffffff;
+ overflow-y:scroll;
+ padding:10px 0 10px 0;
+}
+
+#footer, #language {
+ clear:both;
+ width:870px;
+ text-align:right;
+ margin:0 auto 0 auto;
+}
+
+#footer p, .tiny {
+ margin-right:10px;
+}
+
+#language p {
+ font-size:12px;
+ margin:0;
+ padding:0;
+ margin-right:10px;
+}
+
+#language a, #language a:link, #language a:visited, #language a:hover, #language a:active {
+ text-decoration:none;
+}
+
+#language a:hover {
+ text-decoration:underline;
+}
+
+input[type="text"] {
+ border-width:1px;
+ border-style:solid;
+ border-color:#999999;
+ height:21px;
+ padding:4px;
+}
+
+input[type="submit"] {
+ background-color:#999999;
+ color:#ffffff;
+ font-weight:bold;
+ padding:4px;
+}
+
+.error {
+ color:#ff0000;
+}
+
+.adsense_leaderboard {
+ width:100%;
+ text-align:center;
+}
+
+#button-ff {
+ background:transparent url(../img/button-ff.png) no-repeat left top;
+}
+
+#button-ie {
+ background:transparent url(../img/button-ie.png) no-repeat left top;
+}
+
+#button-ch {
+ background:transparent url(../img/button-ch.png) no-repeat left top;
+}
+
+#button-sa {
+ background:transparent url(../img/button-sa.png) no-repeat left top;
+}
+
+#button-op {
+ background:transparent url(../img/button-op.png) no-repeat left top;
+}
+
+#buts a {
+ display:block;
+ float:left;
+ width:172px;
+ height:120px;
+ overflow:hidden;
+ white-space:nowrap;
+ margin:0 19px 20px 0;
+ padding:10px 7px 0 91px;
+ text-decoration:none;
+}
+
+#buts a h3 {
+ font-family:Georgia, "Times New Roman", Times, serif;
+ font-size:18px;
+ width:172px;
+ overflow:hidden;
+ color:#000099;
+}
+
+p.sub {
+ width:172px;
+ overflow:hidden;
+ color:#000;
+ font-size:12px;
+ margin-bottom:33px;
+}
+
+p.downloadfree {
+ width:172px;
+ overflow:hidden;
+ font-family:Georgia, "Times New Roman", Times, serif;
+ font-size:18px;
+ color:#3d9702;
+}
\ No newline at end of file
diff --git a/demo.php b/demo.php
index bce9558..f841327 100644
--- a/demo.php
+++ b/demo.php
@@ -1,15 +1,94 @@
-
+
+
+
MantisHub | MantisBT Served Fresh
-
- MantisHub , which provides MantisBT as a service, offers a 30 day free trial (no credit card required).
- This provides ability to instantly provision an instance to try out the administrative and end-user features of MantisBT.
- If you are satisfied with the service, you can convert to any of the paid plans or go ahead and download MantisBT to setup your own instance.
-
+
+
+ MantisHub offers software as a service solution for MantisBT.
+ Get started in seconds and experiment with the latest version of MantisBT.
+
+
+
+
+ Having a dedicated instance with administrator access,
+ you are able to create projects,
+ submit issues and invite team members to evaluate MantisBT with you.
+ MantisHub team also offers you the support you need to get up to speed.
+ With 30 day free trial you have plenty of time to get familiar with MantisBT and decide the plan that works for you.
+
+
+
+ Founded by Victor Boctor, MantisBT long time contributor, MantisHub is designed to be a frictionless way to try out MantisBT.
+
+
+
+
+
+
+
+
+
+
Sneak Peek | Browse MantisBT Official Tracker
+
+
+
+
+
Just as you would expect, we are the first customer of our own product. We use MantisBT to track all
+ MantisBT bugs, features, release planning, and pretty much everything that related to helping us drive the
+ project forward.
+
+
We encourage you to browse the Mantis Bug Tracker which is publicly viewable to anyone. In doing so you will be
+ accessing the MantisBT as an anonymous user with very limited privileges thus missing quite a bit of functionality
+ - just keep that in mind.
+
+
+
+
+
+
+
+
+
+
Download | Setup Your Own
+
+
+
+
+
+ Are you considering deploying MantisBT behind the firewall?
+ If yes, then downloading and installing MantisBT is the way to go.
+
+
+
+
+
+
+
-
MantisBT Development
-
-
- MantisBT is free software. We encourage you to dive into the source
- and help on new features and bugfixes. That is the way free software works.
-
-
-
-
- Here are some important pointers for MantisBT-Development:
-
-
-
The source code
-
-
- MantisBT source code and plugins are hosted on GitHub.
-
- Detailed information on how to use git with MantisBT can be found in the
- Mantis Bug Tracker
- Developers Guide .
-
- Help with setting up Git and learning basic usage can be found in
- GitHub's Help pages .
-
-
-
Documentation
-
-
-
Communication
-
-
- Often times MantisBT developers hang out on IRC @ #mantisbt on the freenode network
-
-
- It's a good idea to subscribe to the mantisbt-dev mailinglist - details are on the mailing lists page .
-
-
-
-
+
+
+
+
+
+
+ MantisBT is an open source bug tracker with a large community of users and contributors.
+ Join us, learn from others, and have some fun!
+
+
+
+
+
+
+
+
+
+
+
+
+
Source Code
+
MantisBT source code and
+ plugins are hosted on GitHub. Detailed information on how to use git with MantisBT can be found in the
+ Mantis Bug Tracker Developers Guide. Help with setting up Git and learning basic usage can be found in
+ GitHub's Help pages.
+
+
MantisBT source code:
+
+
+
+
+
+
+
+
+
+
+
Documentation
+
MantisBT source code and
+ plugins are hosted on GitHub. Detailed information on how to use git with MantisBT can be found in the
+ Mantis Bug Tracker Developers Guide. Help with setting up Git and learning basic usage can be found in
+ GitHub's Help pages.
+
+
+
MantisBT developer documentation:
+
+
+
+
+
+
+
+
+
+
+
Communication
+
+
Sometimes its just easier to get help or discuss matters in real time. The #mantisbt channel on
+ irc.freenode.net is where MantisBT developers hang out.
+
+ Join #mantisbt IRC
+
+
+
+
+
+
+ MantisBT developers utilize mailing lists to communicate with other developers, translators, and the community.
+ You may want to join our mailing lists and join the conversation.
+ It is a good idea to discuss larger contributions on the mailing list before getting started.
+
+
+ Browse Mailing Lists
+
+
+
+
+
+
+
+
-MantisBT Documentation
-
- MantisBT Documentation is available from the following sources:
-
+
-
+
+
Docs for Administrators
-
Developer Documentation
+
+
+
+
+
-
- For developer-oriented documentation please see the development page .
-
+
-
+
+
+
Docs for Developers
+
MantisBT source code and
+ plugins are hosted on GitHub. Detailed information on how to use git with MantisBT can be found in the
+ Mantis Bug Tracker Developers Guide. Help with setting up Git and learning basic usage can be found in
+ GitHub's Help pages.
+
+
+
+
+
+
+
+
+
+
+
+
+
Docs for Translators
+
+ MantisBT ships in 50 languages providing it a great penetration around the world.
+ Anyone can contribute improvements to existing languages or even new languages via TranslateWiki.
+ For more details check the 'Translators How To Guide' .
+
+
+
-Download
+
-
">
-
Stable release
-
This is the latest stable MantisBT release.
- Please download this file for production use.
-
-
-
- Download MantisBT
-
-
-
- Please read the
Admin Guide for instructions on the upgrade process.
-
-
-
+
+
Stable Release | Get on latest!
+
+ This is the latest stable MantisBT release.
+ Make sure you are running the latest release to benefit from all security fixes, bug fixes, and new features.
+
- 0 ) { ?>
-
-
Development release
-
The latest development release is intended for evaluation and testing
- purposes. It is not recommended for production use, unless you are
- comfortable with PHP and able to troubleshoot issues that may arise.
-
-
-
- Download MantisBT
-
-
-
-
-
+
Additional Resources:
+
+
+
+
-
+
-
-
-
Nightly Builds
- These are nightly snapshots generated from the latest development branches in our
-
Git repository .
- They have only undergone minimal testing through our standard
-
Travis CI
- build process, and have not been formally prepared for release;
- we recommend you only use them for testing and feedback purposes.
-
- Download a Nightly Build
-
-
+
+
+
+
Development Release | Bleeding edge for the brave and tech savvy!
+
The latest development release is intended for evaluation and testing purposes. It is not recommended for
+ production use, unless you are comfortable with PHP and able to troubleshoot issues that may arise.
+
+
-
+
+
+
Additional Resources:
+
+
+
+
-MantisBT Distributions
-MantisBT is distributed with several
- GNU/Linux distributions .
- Typically however, the versions available in these distributions
- are not the latest.
- For the most recent MantisBT release use the links above.
+
+
+
+
+
+
Nightly Builds | Not Supported - use at your own risk!
+
These are nightly snapshots generated from the latest development branches in our Git repository. They have
+ only undergone minimal testing through our standard Travis CI build process, and have not been formally
+ prepared for release; we recommend you only use them for testing and feedback purposes.
+
+
+
+
+
+
Additional Resources:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/font/fontawesome-webfont.ttf b/font/fontawesome-webfont.ttf
new file mode 100755
index 0000000..c17e9f8
Binary files /dev/null and b/font/fontawesome-webfont.ttf differ
diff --git a/font/fontawesome-webfont.woff b/font/fontawesome-webfont.woff
new file mode 100755
index 0000000..09f2469
Binary files /dev/null and b/font/fontawesome-webfont.woff differ
diff --git a/get-tweets.php b/get-tweets.php
new file mode 100755
index 0000000..38484d8
--- /dev/null
+++ b/get-tweets.php
@@ -0,0 +1,16 @@
+get( 'https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=' . $g_twitter_username . "&count=" . $g_twitter_tweets_count );
+
+ echo json_encode($tweets);
diff --git a/guidelines.php b/guidelines.php
index e751c78..b84d969 100644
--- a/guidelines.php
+++ b/guidelines.php
@@ -1,5 +1,7 @@
-
+
+
+
MantisHub | MantisBT Hosting Made Easy
+
+
MantisHub offers a hassle-free turn-key solution to MantisBT customers. Backed by a support
+ team with years of experience building MantisBT.
+
+
Founded by Victor Boctor who is a developer of MantisBT since 2000, MantisHub is designed to be the
+ easiest and most complete solution for delivering MantisBT as a service.
+
+
+ MantisHub for MantisBT is what GitHub is for Git.3>
+ Victor Boctor
+
+
+
+
-
- MantisHub offers instant access to MantisBT as a service with a 30 day free trial to get you started (no credit card required).
- MantisHub provides the simplicity of a service with exclusive add-ons like MantisTouch .
- It is the only hosting solution that includes MantisBT support provided by Victor Boctor, a core MantisBT developer since 2000.
-
+
+
+
+
Why Use MantisHub?
+
+
+
+ Ability to get started in 1 minute with 30 day free trial.
+
+
+ Focus on your business rather than worrying about backups, upgrades, and support.
+
+
+ Support provided by experienced team with extensive MantisBT experience
+
+
+ Existing users are able to migrate their data.
+
+
+ Exclusive add-ons like MantisTouch
+
+
+ No long term commitment - cancel anytime and take your data with you.
+
+
+
+
+
+
+
+
+
-
MantisBT is a free popular web-based bugtracking system (feature list ). It is written in the PHP scripting language and works with MySQL , MS SQL, and PostgreSQL databases and a webserver. MantisBT has been installed on Windows, Linux, Mac OS, OS/2, and others. Almost any web browser should be able to function as a client. It is released under the terms of the GNU General Public License (GPL).
+
+
MantisBT makes collaboration with team members & clients easy, fast, and professional
+
+ MantisBT is an open source issue tracker that provides a delicate balance between simplicity and power.
+ Users are able to get started in minutes and start managing their projects while collaborating with their teammates and clients effectively.
+ Once you start using it, you will never go back!
+
+
-
-
-
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Email Notifications
+
Keep your team and clients updated with notifications on issue updates, resolution, or comments.
+
+
+
+
+
+
+
+
+
+
+
+
Access Control
+
Per project role based access control for users putting you in control of your business.
+
+
+
+
+
+
+
+
+
+
+
+
Customizable
+
+ Flexibility to customize your issue fields, notifications and workflow.
+
+
+
+
+
+
+
+
+
+
+
+
Words from our users
+
+
+
+
+
+
+
+
"We've come to respect mantis for its powerful simplicity and I go around recommending it to friends and clients alike."
+
+
John Zastrow / Tetra Tech, Inc.
+
+
+
+
+
+
+
+
"Great product! We tried 6 different issue trackers before settling on Mantis."
+
+
John Locke / Freelock Computing
+
+
+
+
+
+
"Very flexible great project, exactly what we need for our software development."
+
+
Attila Strba / EnOcean
+
+
+
+
+
+
+
+
+
Try MantisBT Now!
+
It's never been easier to evaluate MantisBT.
+ You can start by one or more of the demo options we have available or just go directly to the downloads page
+ and get the latest version along with the administrator's guide to setup on your own servers.
+
+
+
+
+
+
+
+
+
+
-IRC
+
+
-
- The official MantisBT IRC channels are hosted on
- Freenode . The
+
IRC
+
+
+ The official MantisBT IRC channels are hosted on
+ Freenode . The
#mantisbt-help
Connect to the channel
- channel is dedicated to questions and support, while
+ channel is dedicated to questions and support, while
#mantisbt
Connect to the channel
- is more focused on development discussions.
-
-
-
- Our mantisbot lurks in both IRC channels and keeps a log
- of all conversations.
- The archives can be found here .
- Should you want to go off the record, simply prefix your message
- with [nolog] .
-
-
-
- If you are looking for an IRC client, have a look at this
- wikipedia page ,
- listing a number of options.
-
- Should you prefer to use a web client, feel free to use the widget below
- or connect using the
- Freenode webchat .
- Note that the
- Mibbit client has been disabled
- and can't be used on Freenode.
-
-
-
-
-
+ is more focused on development discussions.
+
+
+
+ Our mantisbot lurks in both IRC channels and keeps a log
+ of all conversations.
+ The archives can be found here .
+ Should you want to go off the record, simply prefix your message
+ with [nolog] .
+
+
+
+ If you are looking for an IRC client, have a look at this
+ wikipedia page ,
+ listing a number of options.
+
+ Should you prefer to use a web client, feel free to use the widget below
+ or connect using the
+ Freenode webchat .
+ Note that the
+ Mibbit client has been disabled
+ and can't be used on Freenode.
+
+
+
+
+
+
+
+
+
+
+
uasort( $callback );
- }
+ public function __construct( Traversable $iterator, $callback ) {
+ parent::__construct( iterator_to_array( $iterator ) );
+ $this->uasort( $callback );
+ }
}
@@ -24,12 +24,12 @@ public function __construct( Traversable $iterator, $callback ) {
* @return string absolute href to path
*/
function build_href( $p_path ) {
- global $t_depth;
+ global $t_depth;
- $t_split = explode( DIRECTORY_SEPARATOR, $p_path );
- $t_slice = array_slice( $t_split, $t_depth );
+ $t_split = explode( DIRECTORY_SEPARATOR, $p_path );
+ $t_slice = array_slice( $t_split, $t_depth );
- return '/' . implode( '/', array_map( 'urlencode', $t_slice ) );
+ return '/' . implode( '/', array_map( 'urlencode', $t_slice ) );
}
@@ -40,22 +40,22 @@ function build_href( $p_path ) {
* @return array|bool false if no subdirs found
*/
function get_years( $p_path ) {
- $t_years = false;
-
- # Loop over subdirectories
- $t_iter_years = new FileSystemIterator( $p_path );
- foreach( $t_iter_years as $t_year ) {
- if( $t_year->isDir() ) {
- $t_years[$t_year->getFileName()] = build_href( $t_year->getPathname() );
- }
- }
-
- # Most recent year first
- if( $t_years !== false ) {
- krsort( $t_years );
- }
-
- return $t_years;
+ $t_years = false;
+
+ # Loop over subdirectories
+ $t_iter_years = new FileSystemIterator( $p_path );
+ foreach( $t_iter_years as $t_year ) {
+ if( $t_year->isDir() && $t_year->isReadable() ) {
+ $t_years[$t_year->getFileName()] = build_href( $t_year->getPathname() );
+ }
+ }
+
+ # Most recent year first
+ if( $t_years !== false ) {
+ krsort( $t_years );
+ }
+
+ return $t_years;
}
@@ -64,131 +64,149 @@ function get_years( $p_path ) {
* @param string $p_path
*/
function build_channels_list( $p_path ) {
- # printf formats
- $t_fmt_irchref = '#%1$s ';
- $t_fmt_channel =
- ' ' . "\n"
- . '
%sConnect to the channel
' . "\n"
- . "
\n";
- $t_fmt_current =
- " %s\n"
- . ' (latest log )' . "\n";
- $t_fmt_year = '%s ';
-
- # Error handling in case the path does not exist
- if( !is_dir( $p_path ) ) {
- echo ' ' . "\n";
- echo '
' . "\n";
- echo " ERROR: path '$p_path' not found\n";
- echo "
\n";
- echo "
\n\n";
- return;
- }
-
- # Loop over parent directories (channels)
- $t_iter_channels = new SortingIterator(
- new FileSystemIterator( $p_path ),
- 'strcmp'
- );
- foreach( $t_iter_channels as $t_channel ) {
- if( $t_channel->isDir() && $t_channel->isReadable() ) {
- $t_current = false;
- $t_channel_name = $t_channel->getFileName();
-
- # Get subdirectories (years)
- $t_years = get_years( $t_channel->getPathname() );
-
- # Build channel name for display
- if( $t_years == false ) {
- # No subdirs for years found
- $t_href = build_href( $t_channel->getPathname() );
- $t_channel_name = sprintf( $t_fmt_year, $t_href, '#' . $t_channel_name );
- } else {
- if( array_key_exists( date( 'Y' ), $t_years ) ) {
- # Current year exists - link to irc channel
- $t_current = true;
- $t_channel_name = sprintf( $t_fmt_irchref, $t_channel_name );
- $t_href = reset( $t_years );
- } else {
- # Old channel - just display the name
- $t_channel_name = '#' . $t_channel_name;
- }
-
- # Replace array elements with hyperlinks
- array_walk(
- $t_years,
- function( &$p_elem, $p_key ) use ( $t_fmt_year ) {
- $p_elem = sprintf( $t_fmt_year, $p_elem, $p_key );
- }
- );
-
- }
-
- # Row
- echo ' ' . "\n";
-
- # Col 1: channel
- printf( $t_fmt_channel, $t_channel_name, $t_href );
-
- # Col 2: current
- echo '
' . "\n";
- if( $t_current ) {
- printf( $t_fmt_current, array_shift( $t_years ), $t_href );
- }
- echo "
\n";
-
- # Col 3: archives
- echo '
' . "\n";
- if( is_array( $t_years ) ) {
- # Display channel div & links for each year
- echo ' ' . implode( ", \n ", $t_years ) . "\n";
- }
- echo "
\n";
-
- echo "
\n\n";
- }
- }
+ # printf formats
+ $t_fmt_irchref = '#%1$s ';
+ $t_fmt_channel =
+ ' ' . "\n"
+ . ' %s' . "\n"
+ . " \n";
+ $t_fmt_current =
+ " %s\n"
+ . ' (latest log )' . "\n";
+ $t_fmt_year = '%s ';
+
+ # Error handling in case the path does not exist
+ if( !is_dir( $p_path ) ) {
+ echo ' ' . "\n";
+ echo '
× ';
+ echo '
Error ';
+ echo '
' . "\n";
+ echo " Path '$p_path' is not found\n";
+ echo "
\n";
+ echo "
\n\n";
+ echo " \n";
+ return;
+ }
+
+ # Loop over parent directories (channels)
+ $t_iter_channels = new SortingIterator(
+ new FileSystemIterator( $p_path ),
+ 'strcmp'
+ );
+ foreach( $t_iter_channels as $t_channel ) {
+ if( $t_channel->isDir() && $t_channel->isReadable() ) {
+ $t_current = false;
+ $t_channel_name = $t_channel->getFileName();
+
+ # Get subdirectories (years)
+ $t_years = get_years( $t_channel->getPathname() );
+
+ # Build channel name for display
+ if( $t_years == false ) {
+ # No subdirs for years found
+ $t_href = build_href( $t_channel->getPathname() );
+ $t_channel_name = sprintf( $t_fmt_year, $t_href, '#' . $t_channel_name );
+ } else {
+ if( array_key_exists( date( 'Y' ), $t_years ) ) {
+ # Current year exists - link to irc channel
+ $t_current = true;
+ $t_channel_name = sprintf( $t_fmt_irchref, $t_channel_name );
+ $t_href = reset( $t_years );
+ } else {
+ # Old channel - just display the name
+ $t_channel_name = '#' . $t_channel_name;
+ }
+
+ # Replace array elements with hyperlinks
+ array_walk(
+ $t_years,
+ function( &$p_elem, $p_key ) use ( $t_fmt_year ) {
+ $p_elem = sprintf( $t_fmt_year, $p_elem, $p_key );
+ }
+ );
+
+ }
+
+ # Row
+ echo ' ' . "\n";
+
+ # Col 1: channel
+ echo ' ' . "\n";
+ printf( $t_fmt_channel, $t_channel_name, $t_href );
+ echo ' ' . "\n";
+
+ # Col 2: current
+ echo ' ' . "\n";
+ if( $t_current ) {
+ printf( $t_fmt_current, array_shift( $t_years ), $t_href );
+ }
+ echo " \n";
+
+ # Col 3: archives
+ echo ' ' . "\n";
+ if( is_array( $t_years ) ) {
+ # Display channel div & links for each year
+ echo ' ' . implode( ", \n ", $t_years ) . "\n";
+ }
+ echo " \n";
+
+ echo " \n\n";
+ }
+ }
}
- $t_sub_title = "IRC Logs";
- include( "top.php" );
+$t_sub_title = "IRC Logs";
+include( "top.php" );
?>
-IRC Logs Archive
-
-
-
+
+
-
+
IRC Logs Archive
+
+
+
+
+
+
+
+
+
+
+
+ Channel
+ Current Year
+ Archives
+
+
+
+
+
+
+
+
+
+
-
+
+
this.$items.length-1||b<0)return;return this.sliding?this.$element.one("slid",function(){c.to(b)}):d==b?this.pause().cycle():this.slide(b>d?"next":"prev",a(this.$items[b]))},b.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition.end&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},b.prototype.next=function(){if(this.sliding)return;return this.slide("next")},b.prototype.prev=function(){if(this.sliding)return;return this.slide("prev")},b.prototype.slide=function(b,c){var d=this.$element.find(".item.active"),e=c||d[b](),f=this.interval,g=b=="next"?"left":"right",h=b=="next"?"first":"last",i=this;if(!e.length){if(!this.options.wrap)return;e=this.$element.find(".item")[h]()}this.sliding=!0,f&&this.pause();var j=a.Event("slide.bs.carousel",{relatedTarget:e[0],direction:g});if(e.hasClass("active"))return;this.$indicators.length&&(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid",function(){var b=a(i.$indicators.children()[i.getActiveIndex()]);b&&b.addClass("active")}));if(a.support.transition&&this.$element.hasClass("slide")){this.$element.trigger(j);if(j.isDefaultPrevented())return;e.addClass(b),e[0].offsetWidth,d.addClass(g),e.addClass(g),d.one(a.support.transition.end,function(){e.removeClass([b,g].join(" ")).addClass("active"),d.removeClass(["active",g].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger("slid")},0)}).emulateTransitionEnd(600)}else{this.$element.trigger(j);if(j.isDefaultPrevented())return;d.removeClass("active"),e.addClass("active"),this.sliding=!1,this.$element.trigger("slid")}return f&&this.cycle(),this};var c=a.fn.carousel;a.fn.carousel=function(c){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},b.DEFAULTS,d.data(),typeof c=="object"&&c),g=typeof c=="string"?c:f.slide;e||d.data("bs.carousel",e=new b(this,f)),typeof c=="number"?e.to(c):g?e[g]():f.interval&&e.pause().cycle()})},a.fn.carousel.Constructor=b,a.fn.carousel.noConflict=function(){return a.fn.carousel=c,this},a(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",function(b){var c=a(this),d,e=a(c.attr("data-target")||(d=c.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,"")),f=a.extend({},e.data(),c.data()),g=c.attr("data-slide-to");g&&(f.interval=!1),e.carousel(f),(g=c.attr("data-slide-to"))&&e.data("bs.carousel").to(g),b.preventDefault()}),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var b=a(this);b.carousel(b.data())})})}(window.jQuery),+function(a){function e(){a(b).remove(),a(c).each(function(b){var c=f(a(this));if(!c.hasClass("open"))return;c.trigger(b=a.Event("hide.bs.dropdown"));if(b.isDefaultPrevented())return;c.removeClass("open").trigger("hidden.bs.dropdown")})}function f(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}"use strict";var b=".dropdown-backdrop",c="[data-toggle=dropdown]",d=function(b){var c=a(b).on("click.bs.dropdown",this.toggle)};d.prototype.toggle=function(b){var c=a(this);if(c.is(".disabled, :disabled"))return;var d=f(c),g=d.hasClass("open");e();if(!g){"ontouchstart"in document.documentElement&&!d.closest(".navbar-nav").length&&a('
').insertAfter(a(this)).on("click",e),d.trigger(b=a.Event("show.bs.dropdown"));if(b.isDefaultPrevented())return;d.toggleClass("open").trigger("shown.bs.dropdown"),c.focus()}return!1},d.prototype.keydown=function(b){if(!/(38|40|27)/.test(b.keyCode))return;var d=a(this);b.preventDefault(),b.stopPropagation();if(d.is(".disabled, :disabled"))return;var e=f(d),g=e.hasClass("open");if(!g||g&&b.keyCode==27)return b.which==27&&e.find(c).focus(),d.click();var h=a("[role=menu] li:not(.divider):visible a",e);if(!h.length)return;var i=h.index(h.filter(":focus"));b.keyCode==38&&i>0&&i--,b.keyCode==40&&i ').appendTo(document.body),this.$element.on("click.dismiss.modal",a.proxy(function(a){if(a.target!==a.currentTarget)return;this.options.backdrop=="static"?this.$element[0].focus.call(this.$element[0]):this.hide.call(this)},this)),e&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in");if(!b)return;e?this.$backdrop.one(a.support.transition.end,b).emulateTransitionEnd(150):b()}else!this.isShown&&this.$backdrop?(this.$backdrop.removeClass("in"),a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one(a.support.transition.end,b).emulateTransitionEnd(150):b()):b&&b()};var c=a.fn.modal;a.fn.modal=function(c,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},b.DEFAULTS,e.data(),typeof c=="object"&&c);f||e.data("bs.modal",f=new b(this,g)),typeof c=="string"?f[c](d):g.show&&f.show(d)})},a.fn.modal.Constructor=b,a.fn.modal.noConflict=function(){return a.fn.modal=c,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(b){var c=a(this),d=c.attr("href"),e=a(c.attr("data-target")||d&&d.replace(/.*(?=#[^\s]+$)/,"")),f=e.data("modal")?"toggle":a.extend({remote:!/#/.test(d)&&d},e.data(),c.data());b.preventDefault(),e.modal(f,this).one("hide",function(){c.is(":visible")&&c.focus()})}),a(document).on("show.bs.modal",".modal",function(){a(document.body).addClass("modal-open")}).on("hidden.bs.modal",".modal",function(){a(document.body).removeClass("modal-open")})}(window.jQuery),+function(a){"use strict";var b=function(a,b){this.type=this.options=this.enabled=this.timeout=this.hoverState=this.$element=null,this.init("tooltip",a,b)};b.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'',trigger:"hover focus",title:"",delay:0,html:!1,container:!1},b.prototype.init=function(b,c,d){this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d);var e=this.options.trigger.split(" ");for(var f=e.length;f--;){var g=e[f];if(g=="click")this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if(g!="manual"){var h=g=="hover"?"mouseenter":"focus",i=g=="hover"?"mouseleave":"blur";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},b.prototype.getDefaults=function(){return b.DEFAULTS},b.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&typeof b.delay=="number"&&(b.delay={show:b.delay,hide:b.delay}),b},b.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},b.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget)[this.type](this.getDelegateOptions()).data("bs."+this.type);clearTimeout(c.timeout),c.hoverState="in";if(!c.options.delay||!c.options.delay.show)return c.show();c.timeout=setTimeout(function(){c.hoverState=="in"&&c.show()},c.options.delay.show)},b.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget)[this.type](this.getDelegateOptions()).data("bs."+this.type);clearTimeout(c.timeout),c.hoverState="out";if(!c.options.delay||!c.options.delay.hide)return c.hide();c.timeout=setTimeout(function(){c.hoverState=="out"&&c.hide()},c.options.delay.hide)},b.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);if(b.isDefaultPrevented())return;var c=this.tip();this.setContent(),this.options.animation&&c.addClass("fade");var d=typeof this.options.placement=="function"?this.options.placement.call(this,c[0],this.$element[0]):this.options.placement,e=/\s?auto?\s?/i,f=e.test(d);f&&(d=d.replace(e,"")||"top"),c.detach().css({top:0,left:0,display:"block"}).addClass(d),this.options.container?c.appendTo(this.options.container):c.insertAfter(this.$element);var g=this.getPosition(),h=c[0].offsetWidth,i=c[0].offsetHeight;if(f){var j=this.$element.parent(),k=d,l=document.documentElement.scrollTop||document.body.scrollTop,m=this.options.container=="body"?window.innerWidth:j.outerWidth(),n=this.options.container=="body"?window.innerHeight:j.outerHeight(),o=this.options.container=="body"?0:j.offset().left;d=d=="bottom"&&g.top+g.height+i-l>n?"top":d=="top"&&g.top-l-i<0?"bottom":d=="right"&&g.right+h>m?"left":d=="left"&&g.left-h
'}),b.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),b.prototype.constructor=b,b.prototype.getDefaults=function(){return b.DEFAULTS},b.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content")[this.options.html?"html":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},b.prototype.hasContent=function(){return this.getTitle()||this.getContent()},b.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||(typeof b.content=="function"?b.content.call(a[0]):b.content)},b.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},b.prototype.tip=function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip};var c=a.fn.popover;a.fn.popover=function(c){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f=typeof c=="object"&&c;e||d.data("bs.popover",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.popover.Constructor=b,a.fn.popover.noConflict=function(){return a.fn.popover=c,this}}(window.jQuery),+function(a){"use strict";var b=function(b){this.element=a(b)};b.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.attr("data-target");d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,""));if(b.parent("li").hasClass("active"))return;var e=c.find(".active:last a")[0],f=a.Event("show.bs.tab",{relatedTarget:e});b.trigger(f);if(f.isDefaultPrevented())return;var g=a(d);this.activate(b.parent("li"),c),this.activate(g,g.parent(),function(){b.trigger({type:"shown.bs.tab",relatedTarget:e})})},b.prototype.activate=function(b,c,d){function g(){e.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),b.addClass("active"),f?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active"),d&&d()}var e=c.find("> .active"),f=d&&a.support.transition&&e.hasClass("fade");f?e.one(a.support.transition.end,g).emulateTransitionEnd(150):g(),e.removeClass("in")};var c=a.fn.tab;a.fn.tab=function(c){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new b(this)),typeof c=="string"&&e[c]()})},a.fn.tab.Constructor=b,a.fn.tab.noConflict=function(){return a.fn.tab=c,this},a(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(b){b.preventDefault(),a(this).tab("show")})}(window.jQuery),+function(a){"use strict";var b=function(c,d){this.options=a.extend({},b.DEFAULTS,d),this.$window=a(window).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(c),this.affixed=this.unpin=null,this.checkPosition()};b.RESET="affix affix-top affix-bottom",b.DEFAULTS={offset:0},b.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},b.prototype.checkPosition=function(){if(!this.$element.is(":visible"))return;var c=a(document).height(),d=this.$window.scrollTop(),e=this.$element.offset(),f=this.options.offset,g=f.top,h=f.bottom;typeof f!="object"&&(h=g=f),typeof g=="function"&&(g=f.top()),typeof h=="function"&&(h=f.bottom());var i=this.unpin!=null&&d+this.unpin<=e.top?!1:h!=null&&e.top+this.$element.height()>=c-h?"bottom":g!=null&&d<=g?"top":!1;if(this.affixed===i)return;this.unpin&&this.$element.css("top",""),this.affixed=i,this.unpin=i=="bottom"?e.top-d:null,this.$element.removeClass(b.RESET).addClass("affix"+(i?"-"+i:"")),i=="bottom"&&this.$element.offset({top:document.body.offsetHeight-h-this.$element.height()})};var c=a.fn.affix;a.fn.affix=function(c){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f=typeof c=="object"&&c;e||d.data("bs.affix",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.affix.Constructor=b,a.fn.affix.noConflict=function(){return a.fn.affix=c,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var b=a(this),c=b.data();c.offset=c.offset||{},c.offsetBottom&&(c.offset.bottom=c.offsetBottom),c.offsetTop&&(c.offset.top=c.offsetTop),b.affix(c)})})}(window.jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d),this.transitioning=null,this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};b.DEFAULTS={toggle:!0},b.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},b.prototype.show=function(){if(this.transitioning||this.$element.hasClass("in"))return;var b=a.Event("show.bs.collapse");this.$element.trigger(b);if(b.isDefaultPrevented())return;var c=this.$parent&&this.$parent.find("> .panel > .in");if(c&&c.length){var d=c.data("bs.collapse");if(d&&d.transitioning)return;c.collapse("hide"),d||c.data("bs.collapse",null)}var e=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[e](0),this.transitioning=1;var f=function(){this.$element.removeClass("collapsing").addClass("in")[e]("auto"),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return f.call(this);var g=a.camelCase(["scroll",e].join("-"));this.$element.one(a.support.transition.end,a.proxy(f,this)).emulateTransitionEnd(350)[e](this.$element[0][g])},b.prototype.hide=function(){if(this.transitioning||!this.$element.hasClass("in"))return;var b=a.Event("hide.bs.collapse");this.$element.trigger(b);if(b.isDefaultPrevented())return;var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"),this.transitioning=1;var d=function(){this.transitioning=0,this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")};if(!a.support.transition)return d.call(this);this.$element[c](0).one(a.support.transition.end,a.proxy(d,this)).emulateTransitionEnd(350)},b.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};var c=a.fn.collapse;a.fn.collapse=function(c){return this.each(function(){var d=a(this),e=d.data("bs.collapse"),f=a.extend({},b.DEFAULTS,d.data(),typeof c=="object"&&c);e||d.data("bs.collapse",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.collapse.Constructor=b,a.fn.collapse.noConflict=function(){return a.fn.collapse=c,this},a(document).on("click.bs.collapse.data-api","[data-toggle=collapse]",function(b){var c=a(this),d,e=c.attr("data-target")||b.preventDefault()||(d=c.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""),f=a(e),g=f.data("bs.collapse"),h=g?"toggle":c.data(),i=c.attr("data-parent"),j=i&&a(i);if(!g||!g.transitioning)j&&j.find('[data-toggle=collapse][data-parent="'+i+'"]').not(c).addClass("collapsed"),c[f.hasClass("in")?"addClass":"removeClass"]("collapsed");f.collapse(h)})}(window.jQuery),+function(a){function b(c,d){var e,f=a.proxy(this.process,this);this.$element=a(c).is("body")?a(window):a(c),this.$body=a("body"),this.$scrollElement=this.$element.on("scroll.bs.scroll-spy.data-api",f),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||(e=a(c).attr("href"))&&e.replace(/.*(?=#[^\s]+$)/,"")||"")+" .nav li > a",this.offsets=a([]),this.targets=a([]),this.activeTarget=null,this.refresh(),this.process()}"use strict",b.DEFAULTS={offset:10},b.prototype.refresh=function(){var b=this.$element[0]==window?"offset":"position";this.offsets=a([]),this.targets=a([]);var c=this,d=this.$body.find(this.selector).map(function(){var d=a(this),e=d.data("target")||d.attr("href"),f=/^#\w/.test(e)&&a(e);return f&&f.length&&[[f[b]().top+(!a.isWindow(c.$scrollElement.get(0))&&c.$scrollElement.scrollTop()),e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){c.offsets.push(this[0]),c.targets.push(this[1])})},b.prototype.process=function(){var a=this.$scrollElement.scrollTop()+this.options.offset,b=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,c=b-this.$scrollElement.height(),d=this.offsets,e=this.targets,f=this.activeTarget,g;if(a>=c)return f!=(g=e.last()[0])&&this.activate(g);for(g=d.length;g--;)f!=e[g]&&a>=d[g]&&(!d[g+1]||a<=d[g+1])&&this.activate(e[g])},b.prototype.activate=function(b){this.activeTarget=b,a(this.selector).parents(".active").removeClass("active");var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate")};var c=a.fn.scrollspy;a.fn.scrollspy=function(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f=typeof c=="object"&&c;e||d.data("bs.scrollspy",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=c,this},a(window).on("load",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);b.scrollspy(b.data())})})}(window.jQuery),+function(a){function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(a.style[c]!==undefined)return{end:b[c]}}"use strict",a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one(a.support.transition.end,function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b()})}(window.jQuery)
\ No newline at end of file
diff --git a/js/custom.js b/js/custom.js
new file mode 100755
index 0000000..e665220
--- /dev/null
+++ b/js/custom.js
@@ -0,0 +1,98 @@
+/**
+ * Isotope: An exquisite jQuery plugin for magical layouts
+ * options: http://isotope.metafizzy.co/docs/options.html
+ */
+var directory;
+jQuery.noConflict();
+jQuery(document).ready(function($) {
+
+ /**
+ * html generation for the the select menu
+ * - menu list is converted to the form element
+ * - menu links are converted to the form elements ,
+ * Text within tags is removed from the select menu.
+ *
+ * Select menu will be inserted in block with selector .buttons-container that should be present in the html code of the page
+ */
+ var select_menu = '';
+ $(".navbar-collapse a").each(function() {
+ var el = $(this);
+ select_menu += ''+el.html().replace(/.*<\/i>/gi,'')+' ';
+ });
+ select_menu += ' ';
+ $(select_menu).appendTo(".buttons-container");
+ // to work select element as menu, go to the next page on change
+ $(".buttons-container select").change(function() {
+ window.location = $(this).find("option:selected").val();
+ });
+
+ /**
+ * get twitter feed and output to the "list" tag in
+ * each message is scrolled by flexslider, which is initialized after messages loaded
+ * messages, navigation arrows and twitter logo are centered vertically
+ */
+ $.ajax({ // get content from twiter
+ url: 'http://www.mantisbt.org/preview/get-tweets.php',
+ type: 'GET',
+ dataType: 'json',
+ data: {
+ include_rts: true,
+ count: 5, // Number: count of messages in feed
+ include_entities: true
+ },
+ success: function(data, textStatus, xhr) {
+ // html preparing and output to the page
+ var html = '';
+ for (var i = 0; i < data.length; i++) {
+ html = html +'';
+ }
+ $(".tweets-slide ul").append($(html));
+ var height_li = 30;
+ $(".tweets-slide ul li").each(function() {
+ $(this).css('height', '');
+ if ($(this).outerHeight(true) > height_li) height_li = $(this).outerHeight(true);
+ });
+ $(".tweets-slide ul li").each(function() {
+ var margin = Math.floor((height_li-$(this).outerHeight(true))/2);
+ $(this).css('height', height_li);
+ $(this).children("p").css('margin-top', margin);
+ });
+ // flexslider initialization
+ $('.tweets-slide').flexslider({
+ animation: "slide", //String: Select your animation type, "fade" or "slide"
+ keyboard: false, //Boolean: Allow slider navigating via keyboard left/right keys
+ controlNav: false, //Boolean: Create navigation for paging control of each clide? Note: Leave true for manualControls usage
+ direction: "vertical", //String: Select the sliding direction, "horizontal" or "vertical"
+ pauseOnHover: true, //Boolean: Pause the slideshow when hovering over slider, then resume when no longer hovering
+ animationSpeed: 500, //Integer: Set the speed of animations, in milliseconds
+ slideshowSpeed: 5000, //Integer: Set the speed of the slideshow cycling, in milliseconds
+ controlsContainer: "#nav_t", //{UPDATED} jQuery Object/Selector: Declare which container the navigation elements should be appended too. Default container is the FlexSlider element. Example use would be $(".flexslider-container"). Property is ignored if given element is not found.
+ useCSS:false
+ });
+ // twitter logo and navigation block position correction on page loaded and twitter messages loaded
+ $("#nav_t").css('margin-top', Math.floor(((height_li - $("#nav_t").outerHeight(true))/2)));
+ $(".follow_img").css('margin-top', Math.floor(((height_li - $(".follow_img").outerHeight(true))/2)));
+ }
+ });
+ // twitter logo and navigation block position correction on window resize
+ $(window).on('resize', function() {
+ if ($(".tweets-slide ul li").length>0) {
+ var height_li = 30;
+ $(".tweets-slide ul li").each(function() {
+ $(this).css('height', '');
+ if ($(this).outerHeight(true) > height_li) height_li = $(this).outerHeight(true);
+ });
+ $(".tweets-slide ul li").each(function() {
+ var margin = Math.floor((height_li-$(this).outerHeight(true))/2);
+ $(this).css('height', height_li);
+ $(this).children("p").css('margin-top', margin);
+ });
+ $("#nav_t").css('margin-top', Math.floor(((height_li - $("#nav_t").outerHeight(true))/2)+2));
+ $(".follow_img").css('margin-top', Math.floor(((height_li - $(".follow_img").outerHeight(true))/2)+1));
+ }
+
+ });
+});
+
diff --git a/js/html5shiv.js b/js/html5shiv.js
new file mode 100755
index 0000000..df7b327
--- /dev/null
+++ b/js/html5shiv.js
@@ -0,0 +1,301 @@
+/**
+* @preserve HTML5 Shiv v3.6.2 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
+*/
+;(function(window, document) {
+/*jshint evil:true */
+ /** version */
+ var version = '3.6.2';
+
+ /** Preset options */
+ var options = window.html5 || {};
+
+ /** Used to skip problem elements */
+ var reSkip = /^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i;
+
+ /** Not all elements can be cloned in IE **/
+ var saveClones = /^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i;
+
+ /** Detect whether the browser supports default html5 styles */
+ var supportsHtml5Styles;
+
+ /** Name of the expando, to work with multiple documents or to re-shiv one document */
+ var expando = '_html5shiv';
+
+ /** The id for the the documents expando */
+ var expanID = 0;
+
+ /** Cached data for each document */
+ var expandoData = {};
+
+ /** Detect whether the browser supports unknown elements */
+ var supportsUnknownElements;
+
+ (function() {
+ try {
+ var a = document.createElement('a');
+ a.innerHTML = ' ';
+ //if the hidden property is implemented we can assume, that the browser supports basic HTML5 Styles
+ supportsHtml5Styles = ('hidden' in a);
+
+ supportsUnknownElements = a.childNodes.length == 1 || (function() {
+ // assign a false positive if unable to shiv
+ (document.createElement)('a');
+ var frag = document.createDocumentFragment();
+ return (
+ typeof frag.cloneNode == 'undefined' ||
+ typeof frag.createDocumentFragment == 'undefined' ||
+ typeof frag.createElement == 'undefined'
+ );
+ }());
+ } catch(e) {
+ // assign a false positive if detection fails => unable to shiv
+ supportsHtml5Styles = true;
+ supportsUnknownElements = true;
+ }
+
+ }());
+
+ /*--------------------------------------------------------------------------*/
+
+ /**
+ * Creates a style sheet with the given CSS text and adds it to the document.
+ * @private
+ * @param {Document} ownerDocument The document.
+ * @param {String} cssText The CSS text.
+ * @returns {StyleSheet} The style element.
+ */
+ function addStyleSheet(ownerDocument, cssText) {
+ var p = ownerDocument.createElement('p'),
+ parent = ownerDocument.getElementsByTagName('head')[0] || ownerDocument.documentElement;
+
+ p.innerHTML = 'x';
+ return parent.insertBefore(p.lastChild, parent.firstChild);
+ }
+
+ /**
+ * Returns the value of `html5.elements` as an array.
+ * @private
+ * @returns {Array} An array of shived element node names.
+ */
+ function getElements() {
+ var elements = html5.elements;
+ return typeof elements == 'string' ? elements.split(' ') : elements;
+ }
+
+ /**
+ * Returns the data associated to the given document
+ * @private
+ * @param {Document} ownerDocument The document.
+ * @returns {Object} An object of data.
+ */
+ function getExpandoData(ownerDocument) {
+ var data = expandoData[ownerDocument[expando]];
+ if (!data) {
+ data = {};
+ expanID++;
+ ownerDocument[expando] = expanID;
+ expandoData[expanID] = data;
+ }
+ return data;
+ }
+
+ /**
+ * returns a shived element for the given nodeName and document
+ * @memberOf html5
+ * @param {String} nodeName name of the element
+ * @param {Document} ownerDocument The context document.
+ * @returns {Object} The shived element.
+ */
+ function createElement(nodeName, ownerDocument, data){
+ if (!ownerDocument) {
+ ownerDocument = document;
+ }
+ if(supportsUnknownElements){
+ return ownerDocument.createElement(nodeName);
+ }
+ if (!data) {
+ data = getExpandoData(ownerDocument);
+ }
+ var node;
+
+ if (data.cache[nodeName]) {
+ node = data.cache[nodeName].cloneNode();
+ } else if (saveClones.test(nodeName)) {
+ node = (data.cache[nodeName] = data.createElem(nodeName)).cloneNode();
+ } else {
+ node = data.createElem(nodeName);
+ }
+
+ // Avoid adding some elements to fragments in IE < 9 because
+ // * Attributes like `name` or `type` cannot be set/changed once an element
+ // is inserted into a document/fragment
+ // * Link elements with `src` attributes that are inaccessible, as with
+ // a 403 response, will cause the tab/window to crash
+ // * Script elements appended to fragments will execute when their `src`
+ // or `text` property is set
+ return node.canHaveChildren && !reSkip.test(nodeName) ? data.frag.appendChild(node) : node;
+ }
+
+ /**
+ * returns a shived DocumentFragment for the given document
+ * @memberOf html5
+ * @param {Document} ownerDocument The context document.
+ * @returns {Object} The shived DocumentFragment.
+ */
+ function createDocumentFragment(ownerDocument, data){
+ if (!ownerDocument) {
+ ownerDocument = document;
+ }
+ if(supportsUnknownElements){
+ return ownerDocument.createDocumentFragment();
+ }
+ data = data || getExpandoData(ownerDocument);
+ var clone = data.frag.cloneNode(),
+ i = 0,
+ elems = getElements(),
+ l = elems.length;
+ for(;i');if(1 ':""+b+" ",a.controlNavScaffold.append(""+g+" "),b++;a.controlsContainer?d(a.controlsContainer).append(a.controlNavScaffold):a.append(a.controlNavScaffold);f.controlNav.set();f.controlNav.active();a.controlNavScaffold.delegate("a, img",s,function(b){b.preventDefault();var b=d(this),g=a.controlNav.index(b);b.hasClass(e+"active")||(a.direction=g>a.currentSlide?"next":"prev",a.flexAnimate(g,c.pauseOnAction))});r&&a.controlNavScaffold.delegate("a",
+ "click touchstart",function(a){a.preventDefault()})},setupManual:function(){a.controlNav=a.manualControls;f.controlNav.active();a.controlNav.live(s,function(b){b.preventDefault();var b=d(this),g=a.controlNav.index(b);b.hasClass(e+"active")||(g>a.currentSlide?a.direction="next":a.direction="prev",a.flexAnimate(g,c.pauseOnAction))});r&&a.controlNav.live("click touchstart",function(a){a.preventDefault()})},set:function(){a.controlNav=d("."+e+"control-nav li "+("thumbnails"===c.controlNav?"img":"a"),
+ a.controlsContainer?a.controlsContainer:a)},active:function(){a.controlNav.removeClass(e+"active").eq(a.animatingTo).addClass(e+"active")},update:function(b,c){1"+a.count+" ")):1===a.pagingCount?a.controlNavScaffold.find("li").remove():a.controlNav.eq(c).closest("li").remove();f.controlNav.set();1'+c.prevText+' '+c.nextText+" ");a.controlsContainer?(d(a.controlsContainer).append(b),a.directionNav=d("."+e+"direction-nav li a",a.controlsContainer)):(a.append(b),a.directionNav=d("."+e+"direction-nav li a",a));f.directionNav.update();a.directionNav.bind(s,function(b){b.preventDefault();b=d(this).hasClass(e+"next")?a.getTarget("next"):a.getTarget("prev");a.flexAnimate(b,c.pauseOnAction)});
+ r&&a.directionNav.bind("click touchstart",function(a){a.preventDefault()})},update:function(){var b=e+"disabled";1===a.pagingCount?a.directionNav.addClass(b):c.animationLoop?a.directionNav.removeClass(b):0===a.animatingTo?a.directionNav.removeClass(b).filter("."+e+"prev").addClass(b):a.animatingTo===a.last?a.directionNav.removeClass(b).filter("."+e+"next").addClass(b):a.directionNav.removeClass(b)}},pausePlay:{setup:function(){var b=d('');a.controlsContainer?
+ (a.controlsContainer.append(b),a.pausePlay=d("."+e+"pauseplay a",a.controlsContainer)):(a.append(b),a.pausePlay=d("."+e+"pauseplay a",a));f.pausePlay.update(c.slideshow?e+"pause":e+"play");a.pausePlay.bind(s,function(b){b.preventDefault();if(d(this).hasClass(e+"pause")){a.manualPause=true;a.manualPlay=false;a.pause()}else{a.manualPause=false;a.manualPlay=true;a.play()}});r&&a.pausePlay.bind("click touchstart",function(a){a.preventDefault()})},update:function(b){"play"===b?a.pausePlay.removeClass(e+
+ "pause").addClass(e+"play").text(c.playText):a.pausePlay.removeClass(e+"play").addClass(e+"pause").text(c.pauseText)}},touch:function(){function b(b){j=l?d-b.touches[0].pageY:d-b.touches[0].pageX;p=l?Math.abs(j)j||a.currentSlide===a.last&&0Number(new Date)-k&&50o/2)?a.flexAnimate(l,c.pauseOnAction):a.flexAnimate(a.currentSlide,c.pauseOnAction,!0)}i.removeEventListener("touchmove",b,!1);i.removeEventListener("touchend",g,!1);f=j=e=d=null}var d,e,f,o,j,k,p=!1;i.addEventListener("touchstart",function(j){a.animating?j.preventDefault():1===j.touches.length&&(a.pause(),o=l?a.h:a.w,k=Number(new Date),f=h&&
+ m&&a.animatingTo===a.last?0:h&&m?a.limit-(a.itemW+c.itemMargin)*a.move*a.animatingTo:h&&a.currentSlide===a.last?a.limit:h?(a.itemW+c.itemMargin)*a.move*a.currentSlide:m?(a.last-a.currentSlide+a.cloneOffset)*o:(a.currentSlide+a.cloneOffset)*o,d=l?j.touches[0].pageY:j.touches[0].pageX,e=l?j.touches[0].pageX:j.touches[0].pageY,i.addEventListener("touchmove",b,!1),i.addEventListener("touchend",g,!1))},!1)},resize:function(){!a.animating&&a.is(":visible")&&(h||a.doMath(),q?f.smoothHeight():h?(a.slides.width(a.computedW),
+ a.update(a.pagingCount),a.setProps()):l?(a.viewport.height(a.h),a.setProps(a.h,"setTotal")):(c.smoothHeight&&f.smoothHeight(),a.newSlides.width(a.computedW),a.setProps(a.computedW,"setTotal")))},smoothHeight:function(b){if(!l||q){var c=q?a:a.viewport;b?c.animate({height:a.slides.eq(a.animatingTo).height()},b):c.height(a.slides.eq(a.animatingTo).height())}},sync:function(b){var g=d(c.sync).data("flexslider"),e=a.animatingTo;switch(b){case "animate":g.flexAnimate(e,c.pauseOnAction,!1,!0);break;case "play":!g.playing&&
+ !g.asNav&&g.play();break;case "pause":g.pause()}}};a.flexAnimate=function(b,g,n,i,k){p&&1===a.pagingCount&&(a.direction=a.currentItema.w?2*c.itemMargin:c.itemMargin,b=(a.itemW+b)*a.move*a.animatingTo,b=b>a.limit&&1!==a.visible?a.limit:b):b=0===a.currentSlide&&b===a.count-1&&c.animationLoop&&"next"!==a.direction?m?(a.count+a.cloneOffset)*o:0:a.currentSlide===a.last&&0===b&&c.animationLoop&&"prev"!==a.direction?m?0:(a.count+1)*o:m?(a.count-1-b+a.cloneOffset)*o:(b+a.cloneOffset)*o;a.setProps(b,
+ "",c.animationSpeed);if(a.transitions){if(!c.animationLoop||!a.atEnd)a.animating=!1,a.currentSlide=a.animatingTo;a.container.unbind("webkitTransitionEnd transitionend");a.container.bind("webkitTransitionEnd transitionend",function(){a.wrapup(o)})}else a.container.animate(a.args,c.animationSpeed,c.easing,function(){a.wrapup(o)})}c.smoothHeight&&f.smoothHeight(c.animationSpeed)}};a.wrapup=function(b){!q&&!h&&(0===a.currentSlide&&a.animatingTo===a.last&&c.animationLoop?a.setProps(b,"jumpEnd"):a.currentSlide===
+ a.last&&(0===a.animatingTo&&c.animationLoop)&&a.setProps(b,"jumpStart"));a.animating=!1;a.currentSlide=a.animatingTo;c.after(a)};a.animateSlides=function(){a.animating||a.flexAnimate(a.getTarget("next"))};a.pause=function(){clearInterval(a.animatedSlides);a.playing=!1;c.pausePlay&&f.pausePlay.update("play");a.syncExists&&f.sync("pause")};a.play=function(){a.animatedSlides=setInterval(a.animateSlides,c.slideshowSpeed);a.playing=!0;c.pausePlay&&f.pausePlay.update("pause");a.syncExists&&f.sync("play")};
+ a.canAdvance=function(b,g){var d=p?a.pagingCount-1:a.last;return g?!0:p&&a.currentItem===a.count-1&&0===b&&"prev"===a.direction?!0:p&&0===a.currentItem&&b===a.pagingCount-1&&"next"!==a.direction?!1:b===a.currentSlide&&!p?!1:c.animationLoop?!0:a.atEnd&&0===a.currentSlide&&b===d&&"next"!==a.direction?!1:a.atEnd&&a.currentSlide===d&&0===b&&"next"===a.direction?!1:!0};a.getTarget=function(b){a.direction=b;return"next"===b?a.currentSlide===a.last?0:a.currentSlide+1:0===a.currentSlide?a.last:a.currentSlide-
+ 1};a.setProps=function(b,g,d){var e,f=b?b:(a.itemW+c.itemMargin)*a.move*a.animatingTo;e=-1*function(){if(h)return"setTouch"===g?b:m&&a.animatingTo===a.last?0:m?a.limit-(a.itemW+c.itemMargin)*a.move*a.animatingTo:a.animatingTo===a.last?a.limit:f;switch(g){case "setTotal":return m?(a.count-1-a.currentSlide+a.cloneOffset)*b:(a.currentSlide+a.cloneOffset)*b;case "setTouch":return b;case "jumpEnd":return m?b:a.count*b;case "jumpStart":return m?a.count*b:b;default:return b}}()+"px";a.transitions&&(e=l?
+ "translate3d(0,"+e+",0)":"translate3d("+e+",0,0)",d=void 0!==d?d/1E3+"s":"0s",a.container.css("-"+a.pfx+"-transition-duration",d));a.args[a.prop]=e;(a.transitions||void 0===d)&&a.container.css(a.args)};a.setup=function(b){if(q)a.slides.css({width:"100%","float":"left",marginRight:"-100%",position:"relative"}),"init"===b&&a.slides.eq(a.currentSlide).fadeIn(c.animationSpeed,c.easing),c.smoothHeight&&f.smoothHeight();else{var g,n;"init"===b&&(a.viewport=d('
').css({overflow:"hidden",
+ position:"relative"}).appendTo(a).append(a.container),a.cloneCount=0,a.cloneOffset=0,m&&(n=d.makeArray(a.slides).reverse(),a.slides=d(n),a.container.empty().append(a.slides)));c.animationLoop&&!h&&(a.cloneCount=2,a.cloneOffset=1,"init"!==b&&a.container.find(".clone").remove(),a.container.append(a.slides.first().clone().addClass("clone")).prepend(a.slides.last().clone().addClass("clone")));a.newSlides=d(c.selector,a);g=m?a.count-1-a.currentSlide+a.cloneOffset:a.currentSlide+a.cloneOffset;l&&!h?(a.container.height(200*
+ (a.count+a.cloneCount)+"%").css("position","absolute").width("100%"),setTimeout(function(){a.newSlides.css({display:"block"});a.doMath();a.viewport.height(a.h);a.setProps(g*a.h,"init")},"init"===b?100:0)):(a.container.width(200*(a.count+a.cloneCount)+"%"),a.setProps(g*a.computedW,"init"),setTimeout(function(){a.doMath();a.newSlides.css({width:a.computedW,"float":"left",display:"block"});c.smoothHeight&&f.smoothHeight()},"init"===b?100:0))}h||a.slides.removeClass(e+"active-slide").eq(a.currentSlide).addClass(e+
+ "active-slide")};a.doMath=function(){var b=a.slides.first(),d=c.itemMargin,e=c.minItems,f=c.maxItems;a.w=a.width();a.h=b.height();a.boxPadding=b.outerWidth()-b.width();h?(a.itemT=c.itemWidth+d,a.minW=e?e*a.itemT:a.w,a.maxW=f?f*a.itemT:a.w,a.itemW=a.minW>a.w?(a.w-d*e)/e:a.maxWa.w?a.w:c.itemWidth,a.visible=Math.floor(a.w/(a.itemW+d)),a.move=0a.w?(a.itemW+2*d)*a.count-a.w-d:(a.itemW+d)*a.count-a.w-d):(a.itemW=a.w,a.pagingCount=a.count,a.last=a.count-1);a.computedW=a.itemW-a.boxPadding};a.update=function(b,d){a.doMath();h||(ba.controlNav.length)f.controlNav.update("add");else if("remove"===d&&!h||a.pagingCount
+ a.last&&(a.currentSlide-=1,a.animatingTo-=1),f.controlNav.update("remove",a.last);c.directionNav&&f.directionNav.update()};a.addSlide=function(b,e){var f=d(b);a.count+=1;a.last=a.count-1;l&&m?void 0!==e?a.slides.eq(a.count-e).after(f):a.container.prepend(f):void 0!==e?a.slides.eq(e).before(f):a.container.append(f);a.update(e,"add");a.slides=d(c.selector+":not(.clone)",a);a.setup();c.added(a)};a.removeSlide=function(b){var e=isNaN(b)?a.slides.index(d(b)):b;a.count-=1;a.last=a.count-1;isNaN(b)?d(b,
+ a.slides).remove():l&&m?a.slides.eq(a.last).remove():a.slides.eq(b).remove();a.doMath();a.update(e,"remove");a.slides=d(c.selector+":not(.clone)",a);a.setup();c.removed(a)};f.init()};d.flexslider.defaults={namespace:"flex-",selector:".slides > li",animation:"fade",easing:"swing",direction:"horizontal",reverse:!1,animationLoop:!0,smoothHeight:!1,startAt:0,slideshow:!0,slideshowSpeed:7E3,animationSpeed:600,initDelay:0,randomize:!1,pauseOnAction:!0,pauseOnHover:!1,useCSS:!0,touch:!0,video:!1,controlNav:!0,
+ directionNav:!0,prevText:"Previous",nextText:"Next",keyboard:!0,multipleKeyboard:!1,mousewheel:!1,pausePlay:!1,pauseText:"Pause",playText:"Play",controlsContainer:"",manualControls:"",sync:"",asNavFor:"",itemWidth:0,itemMargin:0,minItems:0,maxItems:0,move:0,start:function(){},before:function(){},after:function(){},end:function(){},added:function(){},removed:function(){}};d.fn.flexslider=function(i){void 0===i&&(i={});if("object"===typeof i)return this.each(function(){var a=d(this),c=a.find(i.selector?
+ i.selector:".slides > li");1===c.length?(c.fadeIn(400),i.start&&i.start(a)):void 0===a.data("flexslider")&&new d.flexslider(this,i)});var k=d(this).data("flexslider");switch(i){case "play":k.play();break;case "pause":k.pause();break;case "next":k.flexAnimate(k.getTarget("next"),!0);break;case "prev":case "previous":k.flexAnimate(k.getTarget("prev"),!0);break;default:"number"===typeof i&&k.flexAnimate(i,!0)}}})(jQuery);
\ No newline at end of file
diff --git a/js/mail_validation.js b/js/mail_validation.js
new file mode 100755
index 0000000..5d8512b
--- /dev/null
+++ b/js/mail_validation.js
@@ -0,0 +1,99 @@
+// var $mjq for better adaptation and work with other libraries
+var $mjq = jQuery.noConflict();
+$mjq(function(){
+ $mjq(document).ready(function(){
+ $mjq(".help-inline").each(function() {
+ $mjq(this).css('display', 'none');
+ });
+ });
+ $mjq("#inputEmail").bind('blur', is_valid_email);
+ $mjq("#inputName").bind('blur', is_valid_name);
+ $mjq("#textarea").bind('blur', is_valid_comment);
+ $mjq('#validForm').bind('submit', function(e) {
+ if (!is_valid_form())
+ return false;
+
+ e.preventDefault();
+ $mjq("#result").html('');
+ var data = $mjq(this).serialize();
+
+ $mjq.ajax({
+ url: "/send-form-email.php",
+ type: "post",
+ dataType : "json",
+ data: data,
+ success: function(data) {
+ var alertClass;
+ if(data.error === true){
+ alertClass = 'alert-error';
+ }else{
+ alertClass = 'alert-success';
+ $mjq('#validForm').closest('form').find("input[type=text], textarea").val("");
+ }
+ $mjq("#result").html(returnHtml(alertClass, data.message));
+ },
+ error: function(data) {
+ $mjq("#result").html(returnHtml('alert-error', data));
+ }
+ });
+ });
+});
+
+function returnHtml(alertClass, html){
+ return '× '+html+'
';
+}
+
+// Email validate
+function is_valid_email() {
+ $this = $mjq("#inputEmail");
+ var pattern = new RegExp(/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i);
+ if(pattern.test($this.val())){ // valid
+ if ($this.closest(".control-group").hasClass("error"))
+ $this.closest(".control-group").removeClass("error");
+ $this.siblings(".help-inline").css("display", "none");
+ return true;
+ } else { // error
+ if (!$this.closest(".control-group").hasClass("error"))
+ $this.closest(".control-group").addClass("error");
+ $this.siblings(".help-inline").css("display", "block");
+ return false;
+ }
+}
+// Name validate
+function is_valid_name() {
+ $this = $mjq("#inputName");
+ if($this.val().length>0){ // valid
+ if ($this.closest(".control-group").hasClass("error"))
+ $this.closest(".control-group").removeClass("error");
+ $this.siblings(".help-inline").css("display", "none");
+ return true
+ } else { // error
+ if (!$this.closest(".control-group").hasClass("error"))
+ $this.closest(".control-group").addClass("error");
+ $this.siblings(".help-inline").css("display", "block");
+ return false;
+ }
+}
+// Comment validate
+function is_valid_comment() {
+ $this = $mjq("#textarea");
+ if($this.val().length>0){ // valid
+ if ($this.closest(".control-group").hasClass("error"))
+ $this.closest(".control-group").removeClass("error");
+ $this.siblings(".help-inline").css("display", "none");
+ return true
+ } else { // error
+ if (!$this.closest(".control-group").hasClass("error"))
+ $this.closest(".control-group").addClass("error");
+ $this.siblings(".help-inline").css("display", "block");
+ return false;
+ }
+}
+// Form validate
+function is_valid_form() {
+ var ret = true;
+ if (!is_valid_name()) var ret = false;
+ if (!is_valid_email()) var ret = false;
+ if (!is_valid_comment()) var ret = false;
+ return ret;
+}
\ No newline at end of file
diff --git a/js/respond.src.js b/js/respond.src.js
new file mode 100755
index 0000000..e7db2da
--- /dev/null
+++ b/js/respond.src.js
@@ -0,0 +1,342 @@
+/*! matchMedia() polyfill - Test a CSS media type/query in JS. Authors & copyright (c) 2012: Scott Jehl, Paul Irish, Nicholas Zakas. Dual MIT/BSD license */
+/*! NOTE: If you're already including a window.matchMedia polyfill via Modernizr or otherwise, you don't need this part */
+
+window.matchMedia = window.matchMedia || (function( doc, undefined ) {
+
+ "use strict";
+
+ var bool,
+ docElem = doc.documentElement,
+ refNode = docElem.firstElementChild || docElem.firstChild,
+ // fakeBody required for
+ fakeBody = doc.createElement( "body" ),
+ div = doc.createElement( "div" );
+
+ div.id = "mq-test-1";
+ div.style.cssText = "position:absolute;top:-100em";
+ fakeBody.style.background = "none";
+ fakeBody.appendChild(div);
+
+ return function(q){
+
+ div.innerHTML = "";
+
+ docElem.insertBefore( fakeBody, refNode );
+ bool = div.offsetWidth === 42;
+ docElem.removeChild( fakeBody );
+
+ return {
+ matches: bool,
+ media: q
+ };
+
+ };
+
+}( document ));
+
+
+
+
+
+/*! Respond.js v1.3.0: min/max-width media query polyfill. (c) Scott Jehl. MIT/GPLv2 Lic. j.mp/respondjs */
+(function( win ){
+
+ "use strict";
+
+ //exposed namespace
+ var respond = {};
+ win.respond = respond;
+
+ //define update even in native-mq-supporting browsers, to avoid errors
+ respond.update = function(){};
+
+ //expose media query support flag for external use
+ respond.mediaQueriesSupported = win.matchMedia && win.matchMedia( "only all" ).matches;
+
+ //if media queries are supported, exit here
+ if( respond.mediaQueriesSupported ){
+ return;
+ }
+
+ //define vars
+ var doc = win.document,
+ docElem = doc.documentElement,
+ mediastyles = [],
+ rules = [],
+ appendedEls = [],
+ parsedSheets = {},
+ resizeThrottle = 30,
+ head = doc.getElementsByTagName( "head" )[0] || docElem,
+ base = doc.getElementsByTagName( "base" )[0],
+ links = head.getElementsByTagName( "link" ),
+ requestQueue = [],
+
+ //loop stylesheets, send text content to translate
+ ripCSS = function(){
+
+ for( var i = 0; i < links.length; i++ ){
+ var sheet = links[ i ],
+ href = sheet.href,
+ media = sheet.media,
+ isCSS = sheet.rel && sheet.rel.toLowerCase() === "stylesheet";
+
+ //only links plz and prevent re-parsing
+ if( !!href && isCSS && !parsedSheets[ href ] ){
+ // selectivizr exposes css through the rawCssText expando
+ if (sheet.styleSheet && sheet.styleSheet.rawCssText) {
+ translate( sheet.styleSheet.rawCssText, href, media );
+ parsedSheets[ href ] = true;
+ } else {
+ if( (!/^([a-zA-Z:]*\/\/)/.test( href ) && !base) ||
+ href.replace( RegExp.$1, "" ).split( "/" )[0] === win.location.host ){
+ requestQueue.push( {
+ href: href,
+ media: media
+ } );
+ }
+ }
+ }
+ }
+ makeRequests();
+ },
+
+ //recurse through request queue, get css text
+ makeRequests = function(){
+ if( requestQueue.length ){
+ var thisRequest = requestQueue.shift();
+
+ ajax( thisRequest.href, function( styles ){
+ translate( styles, thisRequest.href, thisRequest.media );
+ parsedSheets[ thisRequest.href ] = true;
+
+ // by wrapping recursive function call in setTimeout
+ // we prevent "Stack overflow" error in IE7
+ win.setTimeout(function(){ makeRequests(); },0);
+ } );
+ }
+ },
+
+ //find media blocks in css text, convert to style blocks
+ translate = function( styles, href, media ){
+ var qs = styles.match( /@media[^\{]+\{([^\{\}]*\{[^\}\{]*\})+/gi ),
+ ql = qs && qs.length || 0;
+
+ //try to get CSS path
+ href = href.substring( 0, href.lastIndexOf( "/" ) );
+
+ var repUrls = function( css ){
+ return css.replace( /(url\()['"]?([^\/\)'"][^:\)'"]+)['"]?(\))/g, "$1" + href + "$2$3" );
+ },
+ useMedia = !ql && media;
+
+ //if path exists, tack on trailing slash
+ if( href.length ){ href += "/"; }
+
+ //if no internal queries exist, but media attr does, use that
+ //note: this currently lacks support for situations where a media attr is specified on a link AND
+ //its associated stylesheet has internal CSS media queries.
+ //In those cases, the media attribute will currently be ignored.
+ if( useMedia ){
+ ql = 1;
+ }
+
+ for( var i = 0; i < ql; i++ ){
+ var fullq, thisq, eachq, eql;
+
+ //media attr
+ if( useMedia ){
+ fullq = media;
+ rules.push( repUrls( styles ) );
+ }
+ //parse for styles
+ else{
+ fullq = qs[ i ].match( /@media *([^\{]+)\{([\S\s]+?)$/ ) && RegExp.$1;
+ rules.push( RegExp.$2 && repUrls( RegExp.$2 ) );
+ }
+
+ eachq = fullq.split( "," );
+ eql = eachq.length;
+
+ for( var j = 0; j < eql; j++ ){
+ thisq = eachq[ j ];
+ mediastyles.push( {
+ media : thisq.split( "(" )[ 0 ].match( /(only\s+)?([a-zA-Z]+)\s?/ ) && RegExp.$2 || "all",
+ rules : rules.length - 1,
+ hasquery : thisq.indexOf("(") > -1,
+ minw : thisq.match( /\(\s*min\-width\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/ ) && parseFloat( RegExp.$1 ) + ( RegExp.$2 || "" ),
+ maxw : thisq.match( /\(\s*max\-width\s*:\s*(\s*[0-9\.]+)(px|em)\s*\)/ ) && parseFloat( RegExp.$1 ) + ( RegExp.$2 || "" )
+ } );
+ }
+ }
+
+ applyMedia();
+ },
+
+ lastCall,
+
+ resizeDefer,
+
+ // returns the value of 1em in pixels
+ getEmValue = function() {
+ var ret,
+ div = doc.createElement('div'),
+ body = doc.body,
+ fakeUsed = false;
+
+ div.style.cssText = "position:absolute;font-size:1em;width:1em";
+
+ if( !body ){
+ body = fakeUsed = doc.createElement( "body" );
+ body.style.background = "none";
+ }
+
+ body.appendChild( div );
+
+ docElem.insertBefore( body, docElem.firstChild );
+
+ ret = div.offsetWidth;
+
+ if( fakeUsed ){
+ docElem.removeChild( body );
+ }
+ else {
+ body.removeChild( div );
+ }
+
+ //also update eminpx before returning
+ ret = eminpx = parseFloat(ret);
+
+ return ret;
+ },
+
+ //cached container for 1em value, populated the first time it's needed
+ eminpx,
+
+ //enable/disable styles
+ applyMedia = function( fromResize ){
+ var name = "clientWidth",
+ docElemProp = docElem[ name ],
+ currWidth = doc.compatMode === "CSS1Compat" && docElemProp || doc.body[ name ] || docElemProp,
+ styleBlocks = {},
+ lastLink = links[ links.length-1 ],
+ now = (new Date()).getTime();
+
+ //throttle resize calls
+ if( fromResize && lastCall && now - lastCall < resizeThrottle ){
+ win.clearTimeout( resizeDefer );
+ resizeDefer = win.setTimeout( applyMedia, resizeThrottle );
+ return;
+ }
+ else {
+ lastCall = now;
+ }
+
+ for( var i in mediastyles ){
+ if( mediastyles.hasOwnProperty( i ) ){
+ var thisstyle = mediastyles[ i ],
+ min = thisstyle.minw,
+ max = thisstyle.maxw,
+ minnull = min === null,
+ maxnull = max === null,
+ em = "em";
+
+ if( !!min ){
+ min = parseFloat( min ) * ( min.indexOf( em ) > -1 ? ( eminpx || getEmValue() ) : 1 );
+ }
+ if( !!max ){
+ max = parseFloat( max ) * ( max.indexOf( em ) > -1 ? ( eminpx || getEmValue() ) : 1 );
+ }
+
+ // if there's no media query at all (the () part), or min or max is not null, and if either is present, they're true
+ if( !thisstyle.hasquery || ( !minnull || !maxnull ) && ( minnull || currWidth >= min ) && ( maxnull || currWidth <= max ) ){
+ if( !styleBlocks[ thisstyle.media ] ){
+ styleBlocks[ thisstyle.media ] = [];
+ }
+ styleBlocks[ thisstyle.media ].push( rules[ thisstyle.rules ] );
+ }
+ }
+ }
+
+ //remove any existing respond style element(s)
+ for( var j in appendedEls ){
+ if( appendedEls.hasOwnProperty( j ) ){
+ if( appendedEls[ j ] && appendedEls[ j ].parentNode === head ){
+ head.removeChild( appendedEls[ j ] );
+ }
+ }
+ }
+
+ //inject active styles, grouped by media type
+ for( var k in styleBlocks ){
+ if( styleBlocks.hasOwnProperty( k ) ){
+ var ss = doc.createElement( "style" ),
+ css = styleBlocks[ k ].join( "\n" );
+
+ ss.type = "text/css";
+ ss.media = k;
+
+ //originally, ss was appended to a documentFragment and sheets were appended in bulk.
+ //this caused crashes in IE in a number of circumstances, such as when the HTML element had a bg image set, so appending beforehand seems best. Thanks to @dvelyk for the initial research on this one!
+ head.insertBefore( ss, lastLink.nextSibling );
+
+ if ( ss.styleSheet ){
+ ss.styleSheet.cssText = css;
+ }
+ else {
+ ss.appendChild( doc.createTextNode( css ) );
+ }
+
+ //push to appendedEls to track for later removal
+ appendedEls.push( ss );
+ }
+ }
+ },
+ //tweaked Ajax functions from Quirksmode
+ ajax = function( url, callback ) {
+ var req = xmlHttp();
+ if (!req){
+ return;
+ }
+ req.open( "GET", url, true );
+ req.onreadystatechange = function () {
+ if ( req.readyState !== 4 || req.status !== 200 && req.status !== 304 ){
+ return;
+ }
+ callback( req.responseText );
+ };
+ if ( req.readyState === 4 ){
+ return;
+ }
+ req.send( null );
+ },
+ //define ajax obj
+ xmlHttp = (function() {
+ var xmlhttpmethod = false;
+ try {
+ xmlhttpmethod = new win.XMLHttpRequest();
+ }
+ catch( e ){
+ xmlhttpmethod = new win.ActiveXObject( "Microsoft.XMLHTTP" );
+ }
+ return function(){
+ return xmlhttpmethod;
+ };
+ })();
+
+ //translate CSS
+ ripCSS();
+
+ //expose update for re-running respond later on
+ respond.update = ripCSS;
+
+ //adjust on resize
+ function callMedia(){
+ applyMedia( true );
+ }
+ if( win.addEventListener ){
+ win.addEventListener( "resize", callMedia, false );
+ }
+ else if( win.attachEvent ){
+ win.attachEvent( "onresize", callMedia );
+ }
+})(this);
diff --git a/mailinglists.php b/mailinglists.php
index 9861954..13df423 100644
--- a/mailinglists.php
+++ b/mailinglists.php
@@ -1,116 +1,203 @@
-Mailing Lists
-Signup for the mailing lists. These are very low traffic since most people seem to use the forums . Please use the forums or the mailing lists for general help questions. Discussion of development issues is mainly done using the mailing list.
-
-
-SourceForge Mailing Lists
+
+
+
+
Mailing Lists
+
Sign up for the mailing lists. Discussion of development issues is mainly done using the mailing list.
+
+
+
General Help and Support Questions
+
+ Please use the forums for general help and support questions.
+ There it is also likely that your question has already been answered, so search before you submit your question.
+
+
+
+
+
+
+
+
Announcements Mailing List
+
Get notifications of releases and any important updates.
+
+
+
+
+
+
+
+
+
+
+
Help Mailing List
+
Ask for help (check the mailing list archives and the forums first.)
+
+
+
+
+
+
+
+
+
+
+
Development Mailing List
+
MantisBT development talk. This is where the core development team and contributors discuss all topics
+ related to MantisBT development, features, code changes, plugins and much more.
+
+
+
+
+
+
+
+
+
+
+
Localization Mailing List
+
Discuss MantisBT localization efforts.
+
+
+
+
+
+
+
+
+
+
+
SOAP API Mailing List
+
Discuss MantisBT SOAP API development issues.
+
+
+
+
+
+
+
+
+
+
+
Code Changes Mailing List
+
A message is sent to this whenever new code is committed to MantisBT source control (currently GitHub).
+
+
+
+
+
+
+
diff --git a/privacy.php b/privacy.php
index 5e4f3ae..d1aeb55 100644
--- a/privacy.php
+++ b/privacy.php
@@ -10,14 +10,14 @@
What information we collect?
-When a user registers on the bug tracker , we collect and store the following information:
+When a user registers on the bug tracker , we collect and store the following information:
Username
One way hash of the password (i.e. we can't know your plain text password)
Email address
-Users registering in the forums may optionally provide other personal information - like instant messenger ids, geographic location, occupation, and so on. This personal information is publicly viewable. We are not responsible for any personal information posted to your forum profile or in your forum messages. Also, if you participate in the mailing lists or post notes to the 'User Contributed Notes' section of the manual your email address and signatures will be visible to participants and visitors respectively.
+Users registering in the forums may optionally provide other personal information - like instant messenger ids, geographic location, occupation, and so on. This personal information is publicly viewable. We are not responsible for any personal information posted to your forum profile or in your forum messages. Also, if you participate in the mailing lists or post notes to the 'User Contributed Notes' section of the manual your email address and signatures will be visible to participants and visitors respectively.
How we use it?
diff --git a/requirements.php b/requirements.php
index bc4fb47..9a29e30 100644
--- a/requirements.php
+++ b/requirements.php
@@ -1,106 +1,3 @@
-
-Requirements
-
-MantisBT runs on any operating system that supports the required
- server software, e.g. Windows, MacOS, Linux, etc.
- It has very modest requirements - all you need is a computer
- to run the server on along with the server software.
-
-
-Hardware
-The server can be a shared public machine, or a dedicated box;
- It can even run on an desktop computer.
- Any recent hardware should be adequate for moderate usage.
- You will need enough disk space for the database to grow, and
- enough RAM to avoid virtual memory thrashing.
- Several thousand issues will only take up a few MBs of space, but
- be aware that this may grow proportionately with attached files.
-
-
-Software
-Please refer to the MantisBT Administration Guide
- for the target version to review the software requirements in detail:
-
-
-
-
-Cost
-MantisBT, including all the required underlying software is free for
- commercial and non-commercial use.
-
-The net cost to use MantisBT is the time to download, install, and
- configure the software plus any potential hardware costs.
- Continued maintenance should be minimal unless you are customizing the package.
-
-You can also use the MantisBT team's consulting services
- to customize or enhance MantisBT for your company's specific needs.
-
-
-Time
-If you've done this sort of thing before it will probably take about 10-60 minutes.
- If not, plan on around 1-8 hours depending on the problems you run into.
- If you are using InstantMantis to evaluate MantisBT or to run a small installation,
- then you should be up and running in 5 minutes, even if you have never
- touched a webserver or PHP before.
-
-
-PHP
-You don't have to know a thing about PHP to use MantisBT.
- However, it always helps to be able to tinker with PHP scripts.
-
-PHP is a simple scripting language and syntacticaly resembles C.
- It is not hard to learn. In fact, it makes normally difficult tasks
- so ridiculously easy that you'll want to use it for many tasks.
-
-The PHP Manual is phenomenal .
- If you ever have a question about a php function then run to the manual.
- The user comments always shed light into issues that others like you have experienced.
-
-There are many sites that offer basic tutorial to using PHP and/or MySQL,
- such as DevShed ,
- WebMonkey and many others.
-
-
-MySQL
-Basic administration of MySQL is necessary. At a minimum you should be able to:
-
- login
- create a new user
- give the user permissions
- create a new database
-
-MySQL.com has excellent documentation.
- We highly recommend using phpMyAdmin
- to administer your MySQL database.
- You can create a new database and edit tables with this excellent package.
- All you need to do beforehand is setup the database user(s).
-
-
-Webserver
-The webserver needs to be configured to handle PHP files.
- In Apache ,
- this monumental task requires all of three lines in the configuration file.
- There are also instructions for IIS
- and many more webservers, just refer to the
- PHP Manual !
-
-
-
+header( "HTTP/1.1 301 Moved Permanently" );
+header( "Location: http://www.mantisbt.org" );
diff --git a/support.php b/support.php
index 410cd4b..1f95549 100644
--- a/support.php
+++ b/support.php
@@ -1,17 +1,99 @@
-There are several ways to get community support:
+
+
-
+
Community Support
+
+
+
+
+
+
+
+ MantisBT is free software. The community around MantisBT is full of nice people who want to help
+ others learn. Become part of the family, learn from others, and give something back when you can.
+
+
+
+
+
+
+
+
+
+
The following resources are provided by the MantisBT community free of charge:
+
+
+
+
+
+
+
-
-
+
+
+
- Mantis Bug Tracker
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+ Mantis Bug Tracker
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/twitteroauth-master/LICENSE b/twitteroauth-master/LICENSE
new file mode 100755
index 0000000..233854f
--- /dev/null
+++ b/twitteroauth-master/LICENSE
@@ -0,0 +1,22 @@
+Copyright (c) 2009 Abraham Williams - http://abrah.am - abraham@poseurte.ch
+
+Permission is hereby granted, free of charge, to any person
+obtaining a copy of this software and associated documentation
+files (the "Software"), to deal in the Software without
+restriction, including without limitation the rights to use,
+copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the
+Software is furnished to do so, subject to the following
+conditions:
+
+The above copyright notice and this permission notice shall be
+included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
diff --git a/twitteroauth-master/README.md b/twitteroauth-master/README.md
new file mode 100755
index 0000000..c9a17ce
--- /dev/null
+++ b/twitteroauth-master/README.md
@@ -0,0 +1,114 @@
+TwitterOAuth
+------------
+
+PHP library for working with Twitter's OAuth API.
+
+Flow Overview
+=============
+
+1. Build TwitterOAuth object using client credentials.
+2. Request temporary credentials from Twitter.
+3. Build authorize URL for Twitter.
+4. Redirect user to authorize URL.
+5. User authorizes access and returns from Twitter.
+6. Rebuild TwitterOAuth object with client credentials and temporary credentials.
+7. Get token credentials from Twitter.
+8. Rebuild TwitterOAuth object with client credentials and token credentials.
+9. Query Twitter API.
+
+Terminology
+===========
+
+The terminology has changed since 0.1.x to better match the draft-hammer-oauth IETF
+RFC. You can read that at http://tools.ietf.org/html/draft-hammer-oauth. Some of the
+terms will differ from those Twitter uses as well.
+
+client credentials - Consumer key/secret you get when registering an app with Twitter.
+temporary credentials - Previously known as the request token.
+token credentials - Previously known as the access token.
+
+Parameters
+==========
+
+There are a number of parameters you can modify after creating a TwitterOAuth object.
+
+Switch an existing TwitterOAuth install to use version 1.1 of the API.
+
+ $connection->$host = "https://api.twitter.com/1.1/";
+
+Custom useragent.
+
+ $connection->useragent = 'Custom useragent string';
+
+Verify Twitters SSL certificate.
+
+ $connection->ssl_verifypeer = TRUE;
+
+There are several more you can find in TwitterOAuth.php.
+
+Extended flow using example code
+================================
+
+To use TwitterOAuth with the Twitter API you need *TwitterOAuth.php*, *OAuth.php* and
+client credentials. You can get client credentials by registering your application at
+[dev.twitter.com/apps](https://dev.twitter.com/apps).
+
+Users start out on connect.php which displays the "Sign in with Twitter" image hyperlinked
+to redirect.php. This button should be displayed on your homepage in your login section. The
+client credentials are saved in config.php as `CONSUMER_KEY` and `CONSUMER_SECRET`. You can
+save a static callback URL in the app settings page, in the config file or use a dynamic
+callback URL later in step 2. In example use https://example.com/callback.php.
+
+1) When a user lands on redirect.php we build a new TwitterOAuth object using the client credentials.
+If you have your own configuration method feel free to use it instead of config.php.
+
+ $connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET); // Use config.php client credentials
+ $connection = new TwitterOAuth('abc890', '123xyz');
+
+2) Using the built $connection object you will ask Twitter for temporary credentials. The `oauth_callback` value is required.
+
+ $temporary_credentials = $connection->getRequestToken(OAUTH_CALLBACK); // Use config.php callback URL.
+
+3) Now that we have temporary credentials the user has to go to Twitter and authorize the app
+to access and updates their data. You can also pass a second parameter of FALSE to not use [Sign
+in with Twitter](https://dev.twitter.com/docs/auth/sign-twitter).
+
+ $redirect_url = $connection->getAuthorizeURL($temporary_credentials); // Use Sign in with Twitter
+ $redirect_url = $connection->getAuthorizeURL($temporary_credentials, FALSE);
+
+4) You will now have a Twitter URL that you must send the user to.
+
+ https://api.twitter.com/oauth/authenticate?oauth_token=xyz123
+
+5) The user is now on twitter.com and may have to login. Once authenticated with Twitter they will
+will either have to click on allow/deny, or will be automatically redirected back to the callback.
+
+6) Now that the user has returned to callback.php and allowed access we need to build a new
+TwitterOAuth object using the temporary credentials.
+
+ $connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, $_SESSION['oauth_token'],
+ $_SESSION['oauth_token_secret']);
+
+7) Now we ask Twitter for long lasting token credentials. These are specific to the application
+and user and will act like password to make future requests. Normally the token credentials would
+get saved in your database but for this example we are just using sessions.
+
+ $token_credentials = $connection->getAccessToken($_REQUEST['oauth_verifier']);
+
+8) With the token credentials we build a new TwitterOAuth object.
+
+ $connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, $token_credentials['oauth_token'],
+ $token_credentials['oauth_token_secret']);
+
+9) And finally we can make requests authenticated as the user. You can GET, POST, and DELETE API
+methods. Directly copy the path from the API documentation and add an array of any parameter
+you wish to include for the API method such as curser or in_reply_to_status_id.
+
+ $account = $connection->get('account/verify_credentials');
+ $status = $connection->post('statuses/update', array('status' => 'Text of status here', 'in_reply_to_status_id' => 123456));
+ $status = $connection->delete('statuses/destroy/12345');
+
+Contributors
+============
+
+* [Abraham Williams](https://twitter.com/abraham) - Main developer, current maintainer.
diff --git a/twitteroauth-master/callback.php b/twitteroauth-master/callback.php
new file mode 100755
index 0000000..fe55f88
--- /dev/null
+++ b/twitteroauth-master/callback.php
@@ -0,0 +1,40 @@
+getAccessToken($_REQUEST['oauth_verifier']);
+
+/* Save the access tokens. Normally these would be saved in a database for future use. */
+$_SESSION['access_token'] = $access_token;
+
+/* Remove no longer needed request tokens */
+unset($_SESSION['oauth_token']);
+unset($_SESSION['oauth_token_secret']);
+
+/* If HTTP response is 200 continue otherwise send to connect page to retry */
+if (200 == $connection->http_code) {
+ /* The user has been verified and the access tokens can be saved for future use */
+ $_SESSION['status'] = 'verified';
+ header('Location: ./index.php');
+} else {
+ /* Save HTTP status for error dialog on connnect page.*/
+ header('Location: ./clearsessions.php');
+}
diff --git a/twitteroauth-master/clearsessions.php b/twitteroauth-master/clearsessions.php
new file mode 100755
index 0000000..d2bc2ba
--- /dev/null
+++ b/twitteroauth-master/clearsessions.php
@@ -0,0 +1,12 @@
+dev.twitter.com/apps';
+ exit;
+}
+
+/* Build an image link to start the redirect process. */
+$content = '
';
+
+/* Include HTML to display on the page. */
+include('html.inc');
diff --git a/twitteroauth-master/html.inc b/twitteroauth-master/html.inc
new file mode 100755
index 0000000..e093e35
--- /dev/null
+++ b/twitteroauth-master/html.inc
@@ -0,0 +1,39 @@
+
+
+
+
Twitter OAuth in PHP
+
+
+
+
+
+
+ '.$status_text.''; ?>
+
+
+
+
+
+
+
+
+
diff --git a/twitteroauth-master/images/darker.png b/twitteroauth-master/images/darker.png
new file mode 100755
index 0000000..746b6b9
Binary files /dev/null and b/twitteroauth-master/images/darker.png differ
diff --git a/twitteroauth-master/images/lighter.png b/twitteroauth-master/images/lighter.png
new file mode 100755
index 0000000..297bb03
Binary files /dev/null and b/twitteroauth-master/images/lighter.png differ
diff --git a/twitteroauth-master/index.php b/twitteroauth-master/index.php
new file mode 100755
index 0000000..2922c52
--- /dev/null
+++ b/twitteroauth-master/index.php
@@ -0,0 +1,30 @@
+get('statuses/home_timeline');
+
+/* Some example calls */
+//$connection->get('users/show', array('screen_name' => 'abraham'));
+//$connection->post('statuses/update', array('status' => date(DATE_RFC822)));
+//$connection->post('statuses/destroy', array('id' => 5437877770));
+//$connection->post('friendships/create', array('id' => 9436992));
+//$connection->post('friendships/destroy', array('id' => 9436992));
+
+/* Include HTML to display on the page */
+include('html.inc');
diff --git a/twitteroauth-master/redirect.php b/twitteroauth-master/redirect.php
new file mode 100755
index 0000000..9622075
--- /dev/null
+++ b/twitteroauth-master/redirect.php
@@ -0,0 +1,28 @@
+getRequestToken(OAUTH_CALLBACK);
+
+/* Save temporary credentials to session. */
+$_SESSION['oauth_token'] = $token = $request_token['oauth_token'];
+$_SESSION['oauth_token_secret'] = $request_token['oauth_token_secret'];
+
+/* If last connection failed don't display authorization link. */
+switch ($connection->http_code) {
+ case 200:
+ /* Build authorize URL and redirect user to Twitter. */
+ $url = $connection->getAuthorizeURL($token);
+ header('Location: ' . $url);
+ break;
+ default:
+ /* Show notification if something went wrong. */
+ echo 'Could not connect to Twitter. Refresh the page or try again later.';
+}
diff --git a/twitteroauth-master/test.php b/twitteroauth-master/test.php
new file mode 100755
index 0000000..12b6e88
--- /dev/null
+++ b/twitteroauth-master/test.php
@@ -0,0 +1,374 @@
+get('account/rate_limit_status');
+echo "Current API hits remaining: {$content->remaining_hits}.";
+
+/* Get logged in user to help with tests. */
+$user = $connection->get('account/verify_credentials');
+
+$active = FALSE;
+if (empty($active) || empty($_GET['confirmed']) || $_GET['confirmed'] !== 'TRUE') {
+ echo '
Warning! This page will make many requests to Twitter. ';
+ echo '
Performing these test might max out your rate limit. ';
+ echo '
Statuses/DMs will be created and deleted. Accounts will be un/followed. ';
+ echo '
Profile information/design will be changed. ';
+ echo '
USE A DEV ACCOUNT! ';
+ echo '
Before use you must set $active = TRUE in test.php ';
+ echo '
Continue or
go back .';
+ exit;
+}
+
+function twitteroauth_row($method, $response, $http_code, $parameters = '') {
+ echo '
';
+ echo "{$method} ";
+ switch ($http_code) {
+ case '200':
+ case '304':
+ $color = 'green';
+ break;
+ case '400':
+ case '401':
+ case '403':
+ case '404':
+ case '406':
+ $color = 'red';
+ break;
+ case '500':
+ case '502':
+ case '503':
+ $color = 'orange';
+ break;
+ default:
+ $color = 'grey';
+ }
+ echo "{$http_code} ";
+ if (!is_string($response)) {
+ $response = print_r($response, TRUE);
+ }
+ if (!is_string($parameters)) {
+ $parameters = print_r($parameters, TRUE);
+ }
+ echo '', strlen($response), ' ';
+ echo '', $parameters, ' ';
+ echo ' ';
+ echo '', substr($response, 0, 400), '... ';
+ echo ' ';
+
+}
+
+function twitteroauth_header($header) {
+ echo '
', $header, ' ';
+}
+
+/* Start table. */
+echo '
';
+echo '
';
+echo '';
+echo 'API Method ';
+echo 'HTTP Code ';
+echo 'Response Length ';
+echo 'Parameters ';
+echo ' ';
+echo 'Response Snippet ';
+echo ' ';
+
+/**
+ * Help Methods.
+ */
+twitteroauth_header('Help Methods');
+
+/* help/test */
+twitteroauth_row('help/test', $connection->get('help/test'), $connection->http_code);
+
+
+/**
+ * Timeline Methods.
+ */
+twitteroauth_header('Timeline Methods');
+
+/* statuses/public_timeline */
+twitteroauth_row('statuses/public_timeline', $connection->get('statuses/public_timeline'), $connection->http_code);
+
+/* statuses/public_timeline */
+twitteroauth_row('statuses/home_timeline', $connection->get('statuses/home_timeline'), $connection->http_code);
+
+/* statuses/friends_timeline */
+twitteroauth_row('statuses/friends_timeline', $connection->get('statuses/friends_timeline'), $connection->http_code);
+
+/* statuses/user_timeline */
+twitteroauth_row('statuses/user_timeline', $connection->get('statuses/user_timeline'), $connection->http_code);
+
+/* statuses/mentions */
+twitteroauth_row('statuses/mentions', $connection->get('statuses/mentions'), $connection->http_code);
+
+/* statuses/retweeted_by_me */
+twitteroauth_row('statuses/retweeted_by_me', $connection->get('statuses/retweeted_by_me'), $connection->http_code);
+
+/* statuses/retweeted_to_me */
+twitteroauth_row('statuses/retweeted_to_me', $connection->get('statuses/retweeted_to_me'), $connection->http_code);
+
+/* statuses/retweets_of_me */
+twitteroauth_row('statuses/retweets_of_me', $connection->get('statuses/retweets_of_me'), $connection->http_code);
+
+
+/**
+ * Status Methods.
+ */
+twitteroauth_header('Status Methods');
+
+/* statuses/update */
+date_default_timezone_set('GMT');
+$parameters = array('status' => date(DATE_RFC822));
+$status = $connection->post('statuses/update', $parameters);
+twitteroauth_row('statuses/update', $status, $connection->http_code, $parameters);
+
+/* statuses/show */
+$method = "statuses/show/{$status->id}";
+twitteroauth_row($method, $connection->get($method), $connection->http_code);
+
+/* statuses/destroy */
+$method = "statuses/destroy/{$status->id}";
+twitteroauth_row($method, $connection->delete($method), $connection->http_code);
+
+/* statuses/retweet */
+$method = 'statuses/retweet/6242973112';
+twitteroauth_row($method, $connection->post($method), $connection->http_code);
+
+/* statuses/retweets */
+$method = 'statuses/retweets/6242973112';
+twitteroauth_row($method, $connection->get($method), $connection->http_code);
+
+
+/**
+ * User Methods.
+ */
+twitteroauth_header('User Methods');
+
+/* users/show */
+$method = 'users/show/27831060';
+twitteroauth_row($method, $connection->get($method), $connection->http_code);
+
+/* users/search */
+$parameters = array('q' => 'oauth');
+twitteroauth_row('users/search', $connection->get('users/search', $parameters), $connection->http_code, $parameters);
+
+/* statuses/friends */
+$method = 'statuses/friends/27831060';
+twitteroauth_row($method, $connection->get($method), $connection->http_code);
+
+/* statuses/followers */
+$method = 'statuses/followers/27831060';
+twitteroauth_row($method, $connection->get($method), $connection->http_code);
+
+
+/**
+ * List Methods.
+ */
+twitteroauth_header('List Methods');
+
+/* POST lists */
+$method = "{$user->screen_name}/lists";
+$parameters = array('name' => 'Twitter OAuth');
+$list = $connection->post($method, $parameters);
+twitteroauth_row($method, $list, $connection->http_code, $parameters);
+
+/* POST lists id */
+$method = "{$user->screen_name}/lists/{$list->id}";
+$parameters = array('name' => 'Twitter OAuth List 2');
+$list = $connection->post($method, $parameters);
+twitteroauth_row($method, $list, $connection->http_code, $parameters);
+
+/* GET lists */
+$method = "{$user->screen_name}/lists";
+twitteroauth_row($method, $connection->get($method), $connection->http_code);
+
+/* GET lists id */
+$method = "{$user->screen_name}/lists/{$list->id}";
+twitteroauth_row($method, $connection->get($method), $connection->http_code);
+
+/* DELETE list */
+$method = "{$user->screen_name}/lists/{$list->id}";
+twitteroauth_row($method, $connection->delete($method), $connection->http_code);
+
+/* GET list statuses */
+$method = "oauthlib/lists/4097351/statuses";
+twitteroauth_row($method, $connection->get($method), $connection->http_code);
+
+/* GET list members */
+$method = "{$user->screen_name}/lists/memberships";
+twitteroauth_row($method, $connection->get($method), $connection->http_code);
+
+
+/* GET list subscriptions */
+$method = "{$user->screen_name}/lists/subscriptions";
+twitteroauth_row($method, $connection->get($method), $connection->http_code);
+
+
+/**
+ * List Members Methods.
+ */
+twitteroauth_header('List Members Methods');
+
+/* Create temp list for list member methods. */
+$method = "{$user->screen_name}/lists";
+$parameters = array('name' => 'Twitter OAuth Temp');
+$list = $connection->post($method, $parameters);
+
+
+/* POST list members */
+$parameters = array('id' => 27831060);
+$method = "{$user->screen_name}/{$list->id}/members";
+twitteroauth_row($method, $connection->post($method, $parameters), $connection->http_code, $parameters);
+
+/* GET list members */
+$method = "{$user->screen_name}/{$list->id}/members";
+twitteroauth_row($method, $connection->get($method), $connection->http_code);
+
+/* GET list members id */
+$method = "{$user->screen_name}/{$list->id}/members/27831060";
+twitteroauth_row($method, $connection->get($method), $connection->http_code);
+
+/* DELETE list members */
+$parameters = array('id' => 27831060);
+$method = "{$user->screen_name}/{$list->id}/members";
+twitteroauth_row($method, $connection->delete($method, $parameters), $connection->http_code, $parameters);
+
+/* Delete the temp list */
+$method = "{$user->screen_name}/lists/{$list->id}";
+$connection->delete($method);
+
+
+/**
+ * List Subscribers Methods.
+ */
+twitteroauth_header('List Subscribers Methods');
+
+
+/* POST list subscribers */
+$method = 'oauthlib/test-list/subscribers';
+twitteroauth_row($method, $connection->post($method), $connection->http_code);
+
+/* GET list subscribers */
+$method = 'oauthlib/test-list/subscribers';
+twitteroauth_row($method, $connection->get($method), $connection->http_code);
+
+/* GET list subscribers id */
+$method = "oauthlib/test-list/subscribers/{$user->id}";
+twitteroauth_row($method, $connection->get($method), $connection->http_code);
+
+/* DELETE list subscribers */
+$method = 'oauthlib/test-list/subscribers';
+twitteroauth_row($method, $connection->delete($method), $connection->http_code);
+
+
+/**
+ * Direct Message Methdos.
+ */
+twitteroauth_header('Direct Message Methods');
+
+/* direct_messages/new */
+$parameters = array('user_id' => $user->id, 'text' => 'Testing out @oauthlib code');
+$method = 'direct_messages/new';
+$dm = $connection->post($method, $parameters);
+twitteroauth_row($method, $dm, $connection->http_code, $parameters);
+
+/* direct_messages */
+$method = 'direct_messages';
+twitteroauth_row($method, $connection->get($method), $connection->http_code);
+
+/* direct_messages/sent */
+$method = 'direct_messages/sent';
+twitteroauth_row($method, $connection->get($method), $connection->http_code);
+
+/* direct_messages/sent */
+$method = "direct_messages/destroy/{$dm->id}";
+twitteroauth_row($method, $connection->delete($method), $connection->http_code);
+
+
+/**
+ * Friendships Methods.
+ */
+twitteroauth_header('Friendships Methods');
+
+/* friendships/create */
+$method = 'friendships/create/93915746';
+twitteroauth_row($method, $connection->post($method), $connection->http_code);
+
+/* friendships/show */
+$parameters = array('target_id' => 27831060);
+$method = 'friendships/show';
+twitteroauth_row($method, $connection->get($method, $parameters), $connection->http_code, $parameters);
+
+/* friendships/destroy */
+$method = 'friendships/destroy/93915746';
+twitteroauth_row($method, $connection->post($method), $connection->http_code);
+
+
+/**
+ * Social Graph Methods.
+ */
+twitteroauth_header('Social Graph Methods');
+
+/* friends/ids */
+$method = 'friends/ids';
+twitteroauth_row($method, $connection->get($method), $connection->http_code);
+
+/* friends/ids */
+$method = 'friends/ids';
+twitteroauth_row($method, $connection->get($method), $connection->http_code);
+
+
+/**
+ * Account Methods.
+ */
+twitteroauth_header('Account Methods');
+
+/* account/verify_credentials */
+$method = 'account/verify_credentials';
+twitteroauth_row($method, $connection->get($method), $connection->http_code);
+
+/* account/rate_limit_status */
+$method = 'account/rate_limit_status';
+twitteroauth_row($method, $connection->get($method), $connection->http_code);
+
+/* account/update_profile_colors */
+$parameters = array('profile_background_color' => 'fff');
+$method = 'account/update_profile_colors';
+twitteroauth_row($method, $connection->post($method, $parameters), $connection->http_code, $parameters);
+
+/* account/update_profile */
+$parameters = array('location' => 'Teh internets');
+$method = 'account/update_profile';
+twitteroauth_row($method, $connection->post($method, $parameters), $connection->http_code, $parameters);
+
+
+
+
+/**
+ * OAuth Methods.
+ */
+twitteroauth_header('OAuth Methods');
+
+/* oauth/request_token */
+$oauth = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET);
+twitteroauth_row('oauth/reqeust_token', $oauth->getRequestToken(), $oauth->http_code);
diff --git a/twitteroauth-master/twitteroauth/OAuth.php b/twitteroauth-master/twitteroauth/OAuth.php
new file mode 100755
index 0000000..4570013
--- /dev/null
+++ b/twitteroauth-master/twitteroauth/OAuth.php
@@ -0,0 +1,874 @@
+key = $key;
+ $this->secret = $secret;
+ $this->callback_url = $callback_url;
+ }
+
+ function __toString() {
+ return "OAuthConsumer[key=$this->key,secret=$this->secret]";
+ }
+}
+
+class OAuthToken {
+ // access tokens and request tokens
+ public $key;
+ public $secret;
+
+ /**
+ * key = the token
+ * secret = the token secret
+ */
+ function __construct($key, $secret) {
+ $this->key = $key;
+ $this->secret = $secret;
+ }
+
+ /**
+ * generates the basic string serialization of a token that a server
+ * would respond to request_token and access_token calls with
+ */
+ function to_string() {
+ return "oauth_token=" .
+ OAuthUtil::urlencode_rfc3986($this->key) .
+ "&oauth_token_secret=" .
+ OAuthUtil::urlencode_rfc3986($this->secret);
+ }
+
+ function __toString() {
+ return $this->to_string();
+ }
+}
+
+/**
+ * A class for implementing a Signature Method
+ * See section 9 ("Signing Requests") in the spec
+ */
+abstract class OAuthSignatureMethod {
+ /**
+ * Needs to return the name of the Signature Method (ie HMAC-SHA1)
+ * @return string
+ */
+ abstract public function get_name();
+
+ /**
+ * Build up the signature
+ * NOTE: The output of this function MUST NOT be urlencoded.
+ * the encoding is handled in OAuthRequest when the final
+ * request is serialized
+ * @param OAuthRequest $request
+ * @param OAuthConsumer $consumer
+ * @param OAuthToken $token
+ * @return string
+ */
+ abstract public function build_signature($request, $consumer, $token);
+
+ /**
+ * Verifies that a given signature is correct
+ * @param OAuthRequest $request
+ * @param OAuthConsumer $consumer
+ * @param OAuthToken $token
+ * @param string $signature
+ * @return bool
+ */
+ public function check_signature($request, $consumer, $token, $signature) {
+ $built = $this->build_signature($request, $consumer, $token);
+ return $built == $signature;
+ }
+}
+
+/**
+ * The HMAC-SHA1 signature method uses the HMAC-SHA1 signature algorithm as defined in [RFC2104]
+ * where the Signature Base String is the text and the key is the concatenated values (each first
+ * encoded per Parameter Encoding) of the Consumer Secret and Token Secret, separated by an '&'
+ * character (ASCII code 38) even if empty.
+ * - Chapter 9.2 ("HMAC-SHA1")
+ */
+class OAuthSignatureMethod_HMAC_SHA1 extends OAuthSignatureMethod {
+ function get_name() {
+ return "HMAC-SHA1";
+ }
+
+ public function build_signature($request, $consumer, $token) {
+ $base_string = $request->get_signature_base_string();
+ $request->base_string = $base_string;
+
+ $key_parts = array(
+ $consumer->secret,
+ ($token) ? $token->secret : ""
+ );
+
+ $key_parts = OAuthUtil::urlencode_rfc3986($key_parts);
+ $key = implode('&', $key_parts);
+
+ return base64_encode(hash_hmac('sha1', $base_string, $key, true));
+ }
+}
+
+/**
+ * The PLAINTEXT method does not provide any security protection and SHOULD only be used
+ * over a secure channel such as HTTPS. It does not use the Signature Base String.
+ * - Chapter 9.4 ("PLAINTEXT")
+ */
+class OAuthSignatureMethod_PLAINTEXT extends OAuthSignatureMethod {
+ public function get_name() {
+ return "PLAINTEXT";
+ }
+
+ /**
+ * oauth_signature is set to the concatenated encoded values of the Consumer Secret and
+ * Token Secret, separated by a '&' character (ASCII code 38), even if either secret is
+ * empty. The result MUST be encoded again.
+ * - Chapter 9.4.1 ("Generating Signatures")
+ *
+ * Please note that the second encoding MUST NOT happen in the SignatureMethod, as
+ * OAuthRequest handles this!
+ */
+ public function build_signature($request, $consumer, $token) {
+ $key_parts = array(
+ $consumer->secret,
+ ($token) ? $token->secret : ""
+ );
+
+ $key_parts = OAuthUtil::urlencode_rfc3986($key_parts);
+ $key = implode('&', $key_parts);
+ $request->base_string = $key;
+
+ return $key;
+ }
+}
+
+/**
+ * The RSA-SHA1 signature method uses the RSASSA-PKCS1-v1_5 signature algorithm as defined in
+ * [RFC3447] section 8.2 (more simply known as PKCS#1), using SHA-1 as the hash function for
+ * EMSA-PKCS1-v1_5. It is assumed that the Consumer has provided its RSA public key in a
+ * verified way to the Service Provider, in a manner which is beyond the scope of this
+ * specification.
+ * - Chapter 9.3 ("RSA-SHA1")
+ */
+abstract class OAuthSignatureMethod_RSA_SHA1 extends OAuthSignatureMethod {
+ public function get_name() {
+ return "RSA-SHA1";
+ }
+
+ // Up to the SP to implement this lookup of keys. Possible ideas are:
+ // (1) do a lookup in a table of trusted certs keyed off of consumer
+ // (2) fetch via http using a url provided by the requester
+ // (3) some sort of specific discovery code based on request
+ //
+ // Either way should return a string representation of the certificate
+ protected abstract function fetch_public_cert(&$request);
+
+ // Up to the SP to implement this lookup of keys. Possible ideas are:
+ // (1) do a lookup in a table of trusted certs keyed off of consumer
+ //
+ // Either way should return a string representation of the certificate
+ protected abstract function fetch_private_cert(&$request);
+
+ public function build_signature($request, $consumer, $token) {
+ $base_string = $request->get_signature_base_string();
+ $request->base_string = $base_string;
+
+ // Fetch the private key cert based on the request
+ $cert = $this->fetch_private_cert($request);
+
+ // Pull the private key ID from the certificate
+ $privatekeyid = openssl_get_privatekey($cert);
+
+ // Sign using the key
+ $ok = openssl_sign($base_string, $signature, $privatekeyid);
+
+ // Release the key resource
+ openssl_free_key($privatekeyid);
+
+ return base64_encode($signature);
+ }
+
+ public function check_signature($request, $consumer, $token, $signature) {
+ $decoded_sig = base64_decode($signature);
+
+ $base_string = $request->get_signature_base_string();
+
+ // Fetch the public key cert based on the request
+ $cert = $this->fetch_public_cert($request);
+
+ // Pull the public key ID from the certificate
+ $publickeyid = openssl_get_publickey($cert);
+
+ // Check the computed signature against the one passed in the query
+ $ok = openssl_verify($base_string, $decoded_sig, $publickeyid);
+
+ // Release the key resource
+ openssl_free_key($publickeyid);
+
+ return $ok == 1;
+ }
+}
+
+class OAuthRequest {
+ private $parameters;
+ private $http_method;
+ private $http_url;
+ // for debug purposes
+ public $base_string;
+ public static $version = '1.0';
+ public static $POST_INPUT = 'php://input';
+
+ function __construct($http_method, $http_url, $parameters=NULL) {
+ @$parameters or $parameters = array();
+ $parameters = array_merge( OAuthUtil::parse_parameters(parse_url($http_url, PHP_URL_QUERY)), $parameters);
+ $this->parameters = $parameters;
+ $this->http_method = $http_method;
+ $this->http_url = $http_url;
+ }
+
+
+ /**
+ * attempt to build up a request from what was passed to the server
+ */
+ public static function from_request($http_method=NULL, $http_url=NULL, $parameters=NULL) {
+ $scheme = (!isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] != "on")
+ ? 'http'
+ : 'https';
+ @$http_url or $http_url = $scheme .
+ '://' . $_SERVER['HTTP_HOST'] .
+ ':' .
+ $_SERVER['SERVER_PORT'] .
+ $_SERVER['REQUEST_URI'];
+ @$http_method or $http_method = $_SERVER['REQUEST_METHOD'];
+
+ // We weren't handed any parameters, so let's find the ones relevant to
+ // this request.
+ // If you run XML-RPC or similar you should use this to provide your own
+ // parsed parameter-list
+ if (!$parameters) {
+ // Find request headers
+ $request_headers = OAuthUtil::get_headers();
+
+ // Parse the query-string to find GET parameters
+ $parameters = OAuthUtil::parse_parameters($_SERVER['QUERY_STRING']);
+
+ // It's a POST request of the proper content-type, so parse POST
+ // parameters and add those overriding any duplicates from GET
+ if ($http_method == "POST"
+ && @strstr($request_headers["Content-Type"],
+ "application/x-www-form-urlencoded")
+ ) {
+ $post_data = OAuthUtil::parse_parameters(
+ file_get_contents(self::$POST_INPUT)
+ );
+ $parameters = array_merge($parameters, $post_data);
+ }
+
+ // We have a Authorization-header with OAuth data. Parse the header
+ // and add those overriding any duplicates from GET or POST
+ if (@substr($request_headers['Authorization'], 0, 6) == "OAuth ") {
+ $header_parameters = OAuthUtil::split_header(
+ $request_headers['Authorization']
+ );
+ $parameters = array_merge($parameters, $header_parameters);
+ }
+
+ }
+
+ return new OAuthRequest($http_method, $http_url, $parameters);
+ }
+
+ /**
+ * pretty much a helper function to set up the request
+ */
+ public static function from_consumer_and_token($consumer, $token, $http_method, $http_url, $parameters=NULL) {
+ @$parameters or $parameters = array();
+ $defaults = array("oauth_version" => OAuthRequest::$version,
+ "oauth_nonce" => OAuthRequest::generate_nonce(),
+ "oauth_timestamp" => OAuthRequest::generate_timestamp(),
+ "oauth_consumer_key" => $consumer->key);
+ if ($token)
+ $defaults['oauth_token'] = $token->key;
+
+ $parameters = array_merge($defaults, $parameters);
+
+ return new OAuthRequest($http_method, $http_url, $parameters);
+ }
+
+ public function set_parameter($name, $value, $allow_duplicates = true) {
+ if ($allow_duplicates && isset($this->parameters[$name])) {
+ // We have already added parameter(s) with this name, so add to the list
+ if (is_scalar($this->parameters[$name])) {
+ // This is the first duplicate, so transform scalar (string)
+ // into an array so we can add the duplicates
+ $this->parameters[$name] = array($this->parameters[$name]);
+ }
+
+ $this->parameters[$name][] = $value;
+ } else {
+ $this->parameters[$name] = $value;
+ }
+ }
+
+ public function get_parameter($name) {
+ return isset($this->parameters[$name]) ? $this->parameters[$name] : null;
+ }
+
+ public function get_parameters() {
+ return $this->parameters;
+ }
+
+ public function unset_parameter($name) {
+ unset($this->parameters[$name]);
+ }
+
+ /**
+ * The request parameters, sorted and concatenated into a normalized string.
+ * @return string
+ */
+ public function get_signable_parameters() {
+ // Grab all parameters
+ $params = $this->parameters;
+
+ // Remove oauth_signature if present
+ // Ref: Spec: 9.1.1 ("The oauth_signature parameter MUST be excluded.")
+ if (isset($params['oauth_signature'])) {
+ unset($params['oauth_signature']);
+ }
+
+ return OAuthUtil::build_http_query($params);
+ }
+
+ /**
+ * Returns the base string of this request
+ *
+ * The base string defined as the method, the url
+ * and the parameters (normalized), each urlencoded
+ * and the concated with &.
+ */
+ public function get_signature_base_string() {
+ $parts = array(
+ $this->get_normalized_http_method(),
+ $this->get_normalized_http_url(),
+ $this->get_signable_parameters()
+ );
+
+ $parts = OAuthUtil::urlencode_rfc3986($parts);
+
+ return implode('&', $parts);
+ }
+
+ /**
+ * just uppercases the http method
+ */
+ public function get_normalized_http_method() {
+ return strtoupper($this->http_method);
+ }
+
+ /**
+ * parses the url and rebuilds it to be
+ * scheme://host/path
+ */
+ public function get_normalized_http_url() {
+ $parts = parse_url($this->http_url);
+
+ $port = @$parts['port'];
+ $scheme = $parts['scheme'];
+ $host = $parts['host'];
+ $path = @$parts['path'];
+
+ $port or $port = ($scheme == 'https') ? '443' : '80';
+
+ if (($scheme == 'https' && $port != '443')
+ || ($scheme == 'http' && $port != '80')) {
+ $host = "$host:$port";
+ }
+ return "$scheme://$host$path";
+ }
+
+ /**
+ * builds a url usable for a GET request
+ */
+ public function to_url() {
+ $post_data = $this->to_postdata();
+ $out = $this->get_normalized_http_url();
+ if ($post_data) {
+ $out .= '?'.$post_data;
+ }
+ return $out;
+ }
+
+ /**
+ * builds the data one would send in a POST request
+ */
+ public function to_postdata() {
+ return OAuthUtil::build_http_query($this->parameters);
+ }
+
+ /**
+ * builds the Authorization: header
+ */
+ public function to_header($realm=null) {
+ $first = true;
+ if($realm) {
+ $out = 'Authorization: OAuth realm="' . OAuthUtil::urlencode_rfc3986($realm) . '"';
+ $first = false;
+ } else
+ $out = 'Authorization: OAuth';
+
+ $total = array();
+ foreach ($this->parameters as $k => $v) {
+ if (substr($k, 0, 5) != "oauth") continue;
+ if (is_array($v)) {
+ throw new OAuthException('Arrays not supported in headers');
+ }
+ $out .= ($first) ? ' ' : ',';
+ $out .= OAuthUtil::urlencode_rfc3986($k) .
+ '="' .
+ OAuthUtil::urlencode_rfc3986($v) .
+ '"';
+ $first = false;
+ }
+ return $out;
+ }
+
+ public function __toString() {
+ return $this->to_url();
+ }
+
+
+ public function sign_request($signature_method, $consumer, $token) {
+ $this->set_parameter(
+ "oauth_signature_method",
+ $signature_method->get_name(),
+ false
+ );
+ $signature = $this->build_signature($signature_method, $consumer, $token);
+ $this->set_parameter("oauth_signature", $signature, false);
+ }
+
+ public function build_signature($signature_method, $consumer, $token) {
+ $signature = $signature_method->build_signature($this, $consumer, $token);
+ return $signature;
+ }
+
+ /**
+ * util function: current timestamp
+ */
+ private static function generate_timestamp() {
+ return time();
+ }
+
+ /**
+ * util function: current nonce
+ */
+ private static function generate_nonce() {
+ $mt = microtime();
+ $rand = mt_rand();
+
+ return md5($mt . $rand); // md5s look nicer than numbers
+ }
+}
+
+class OAuthServer {
+ protected $timestamp_threshold = 300; // in seconds, five minutes
+ protected $version = '1.0'; // hi blaine
+ protected $signature_methods = array();
+
+ protected $data_store;
+
+ function __construct($data_store) {
+ $this->data_store = $data_store;
+ }
+
+ public function add_signature_method($signature_method) {
+ $this->signature_methods[$signature_method->get_name()] =
+ $signature_method;
+ }
+
+ // high level functions
+
+ /**
+ * process a request_token request
+ * returns the request token on success
+ */
+ public function fetch_request_token(&$request) {
+ $this->get_version($request);
+
+ $consumer = $this->get_consumer($request);
+
+ // no token required for the initial token request
+ $token = NULL;
+
+ $this->check_signature($request, $consumer, $token);
+
+ // Rev A change
+ $callback = $request->get_parameter('oauth_callback');
+ $new_token = $this->data_store->new_request_token($consumer, $callback);
+
+ return $new_token;
+ }
+
+ /**
+ * process an access_token request
+ * returns the access token on success
+ */
+ public function fetch_access_token(&$request) {
+ $this->get_version($request);
+
+ $consumer = $this->get_consumer($request);
+
+ // requires authorized request token
+ $token = $this->get_token($request, $consumer, "request");
+
+ $this->check_signature($request, $consumer, $token);
+
+ // Rev A change
+ $verifier = $request->get_parameter('oauth_verifier');
+ $new_token = $this->data_store->new_access_token($token, $consumer, $verifier);
+
+ return $new_token;
+ }
+
+ /**
+ * verify an api call, checks all the parameters
+ */
+ public function verify_request(&$request) {
+ $this->get_version($request);
+ $consumer = $this->get_consumer($request);
+ $token = $this->get_token($request, $consumer, "access");
+ $this->check_signature($request, $consumer, $token);
+ return array($consumer, $token);
+ }
+
+ // Internals from here
+ /**
+ * version 1
+ */
+ private function get_version(&$request) {
+ $version = $request->get_parameter("oauth_version");
+ if (!$version) {
+ // Service Providers MUST assume the protocol version to be 1.0 if this parameter is not present.
+ // Chapter 7.0 ("Accessing Protected Ressources")
+ $version = '1.0';
+ }
+ if ($version !== $this->version) {
+ throw new OAuthException("OAuth version '$version' not supported");
+ }
+ return $version;
+ }
+
+ /**
+ * figure out the signature with some defaults
+ */
+ private function get_signature_method(&$request) {
+ $signature_method =
+ @$request->get_parameter("oauth_signature_method");
+
+ if (!$signature_method) {
+ // According to chapter 7 ("Accessing Protected Ressources") the signature-method
+ // parameter is required, and we can't just fallback to PLAINTEXT
+ throw new OAuthException('No signature method parameter. This parameter is required');
+ }
+
+ if (!in_array($signature_method,
+ array_keys($this->signature_methods))) {
+ throw new OAuthException(
+ "Signature method '$signature_method' not supported " .
+ "try one of the following: " .
+ implode(", ", array_keys($this->signature_methods))
+ );
+ }
+ return $this->signature_methods[$signature_method];
+ }
+
+ /**
+ * try to find the consumer for the provided request's consumer key
+ */
+ private function get_consumer(&$request) {
+ $consumer_key = @$request->get_parameter("oauth_consumer_key");
+ if (!$consumer_key) {
+ throw new OAuthException("Invalid consumer key");
+ }
+
+ $consumer = $this->data_store->lookup_consumer($consumer_key);
+ if (!$consumer) {
+ throw new OAuthException("Invalid consumer");
+ }
+
+ return $consumer;
+ }
+
+ /**
+ * try to find the token for the provided request's token key
+ */
+ private function get_token(&$request, $consumer, $token_type="access") {
+ $token_field = @$request->get_parameter('oauth_token');
+ $token = $this->data_store->lookup_token(
+ $consumer, $token_type, $token_field
+ );
+ if (!$token) {
+ throw new OAuthException("Invalid $token_type token: $token_field");
+ }
+ return $token;
+ }
+
+ /**
+ * all-in-one function to check the signature on a request
+ * should guess the signature method appropriately
+ */
+ private function check_signature(&$request, $consumer, $token) {
+ // this should probably be in a different method
+ $timestamp = @$request->get_parameter('oauth_timestamp');
+ $nonce = @$request->get_parameter('oauth_nonce');
+
+ $this->check_timestamp($timestamp);
+ $this->check_nonce($consumer, $token, $nonce, $timestamp);
+
+ $signature_method = $this->get_signature_method($request);
+
+ $signature = $request->get_parameter('oauth_signature');
+ $valid_sig = $signature_method->check_signature(
+ $request,
+ $consumer,
+ $token,
+ $signature
+ );
+
+ if (!$valid_sig) {
+ throw new OAuthException("Invalid signature");
+ }
+ }
+
+ /**
+ * check that the timestamp is new enough
+ */
+ private function check_timestamp($timestamp) {
+ if( ! $timestamp )
+ throw new OAuthException(
+ 'Missing timestamp parameter. The parameter is required'
+ );
+
+ // verify that timestamp is recentish
+ $now = time();
+ if (abs($now - $timestamp) > $this->timestamp_threshold) {
+ throw new OAuthException(
+ "Expired timestamp, yours $timestamp, ours $now"
+ );
+ }
+ }
+
+ /**
+ * check that the nonce is not repeated
+ */
+ private function check_nonce($consumer, $token, $nonce, $timestamp) {
+ if( ! $nonce )
+ throw new OAuthException(
+ 'Missing nonce parameter. The parameter is required'
+ );
+
+ // verify that the nonce is uniqueish
+ $found = $this->data_store->lookup_nonce(
+ $consumer,
+ $token,
+ $nonce,
+ $timestamp
+ );
+ if ($found) {
+ throw new OAuthException("Nonce already used: $nonce");
+ }
+ }
+
+}
+
+class OAuthDataStore {
+ function lookup_consumer($consumer_key) {
+ // implement me
+ }
+
+ function lookup_token($consumer, $token_type, $token) {
+ // implement me
+ }
+
+ function lookup_nonce($consumer, $token, $nonce, $timestamp) {
+ // implement me
+ }
+
+ function new_request_token($consumer, $callback = null) {
+ // return a new token attached to this consumer
+ }
+
+ function new_access_token($token, $consumer, $verifier = null) {
+ // return a new access token attached to this consumer
+ // for the user associated with this token if the request token
+ // is authorized
+ // should also invalidate the request token
+ }
+
+}
+
+class OAuthUtil {
+ public static function urlencode_rfc3986($input) {
+ if (is_array($input)) {
+ return array_map(array('OAuthUtil', 'urlencode_rfc3986'), $input);
+ } else if (is_scalar($input)) {
+ return str_replace(
+ '+',
+ ' ',
+ str_replace('%7E', '~', rawurlencode($input))
+ );
+ } else {
+ return '';
+ }
+}
+
+
+ // This decode function isn't taking into consideration the above
+ // modifications to the encoding process. However, this method doesn't
+ // seem to be used anywhere so leaving it as is.
+ public static function urldecode_rfc3986($string) {
+ return urldecode($string);
+ }
+
+ // Utility function for turning the Authorization: header into
+ // parameters, has to do some unescaping
+ // Can filter out any non-oauth parameters if needed (default behaviour)
+ public static function split_header($header, $only_allow_oauth_parameters = true) {
+ $pattern = '/(([-_a-z]*)=("([^"]*)"|([^,]*)),?)/';
+ $offset = 0;
+ $params = array();
+ while (preg_match($pattern, $header, $matches, PREG_OFFSET_CAPTURE, $offset) > 0) {
+ $match = $matches[0];
+ $header_name = $matches[2][0];
+ $header_content = (isset($matches[5])) ? $matches[5][0] : $matches[4][0];
+ if (preg_match('/^oauth_/', $header_name) || !$only_allow_oauth_parameters) {
+ $params[$header_name] = OAuthUtil::urldecode_rfc3986($header_content);
+ }
+ $offset = $match[1] + strlen($match[0]);
+ }
+
+ if (isset($params['realm'])) {
+ unset($params['realm']);
+ }
+
+ return $params;
+ }
+
+ // helper to try to sort out headers for people who aren't running apache
+ public static function get_headers() {
+ if (function_exists('apache_request_headers')) {
+ // we need this to get the actual Authorization: header
+ // because apache tends to tell us it doesn't exist
+ $headers = apache_request_headers();
+
+ // sanitize the output of apache_request_headers because
+ // we always want the keys to be Cased-Like-This and arh()
+ // returns the headers in the same case as they are in the
+ // request
+ $out = array();
+ foreach( $headers AS $key => $value ) {
+ $key = str_replace(
+ " ",
+ "-",
+ ucwords(strtolower(str_replace("-", " ", $key)))
+ );
+ $out[$key] = $value;
+ }
+ } else {
+ // otherwise we don't have apache and are just going to have to hope
+ // that $_SERVER actually contains what we need
+ $out = array();
+ if( isset($_SERVER['CONTENT_TYPE']) )
+ $out['Content-Type'] = $_SERVER['CONTENT_TYPE'];
+ if( isset($_ENV['CONTENT_TYPE']) )
+ $out['Content-Type'] = $_ENV['CONTENT_TYPE'];
+
+ foreach ($_SERVER as $key => $value) {
+ if (substr($key, 0, 5) == "HTTP_") {
+ // this is chaos, basically it is just there to capitalize the first
+ // letter of every word that is not an initial HTTP and strip HTTP
+ // code from przemek
+ $key = str_replace(
+ " ",
+ "-",
+ ucwords(strtolower(str_replace("_", " ", substr($key, 5))))
+ );
+ $out[$key] = $value;
+ }
+ }
+ }
+ return $out;
+ }
+
+ // This function takes a input like a=b&a=c&d=e and returns the parsed
+ // parameters like this
+ // array('a' => array('b','c'), 'd' => 'e')
+ public static function parse_parameters( $input ) {
+ if (!isset($input) || !$input) return array();
+
+ $pairs = explode('&', $input);
+
+ $parsed_parameters = array();
+ foreach ($pairs as $pair) {
+ $split = explode('=', $pair, 2);
+ $parameter = OAuthUtil::urldecode_rfc3986($split[0]);
+ $value = isset($split[1]) ? OAuthUtil::urldecode_rfc3986($split[1]) : '';
+
+ if (isset($parsed_parameters[$parameter])) {
+ // We have already recieved parameter(s) with this name, so add to the list
+ // of parameters with this name
+
+ if (is_scalar($parsed_parameters[$parameter])) {
+ // This is the first duplicate, so transform scalar (string) into an array
+ // so we can add the duplicates
+ $parsed_parameters[$parameter] = array($parsed_parameters[$parameter]);
+ }
+
+ $parsed_parameters[$parameter][] = $value;
+ } else {
+ $parsed_parameters[$parameter] = $value;
+ }
+ }
+ return $parsed_parameters;
+ }
+
+ public static function build_http_query($params) {
+ if (!$params) return '';
+
+ // Urlencode both keys and values
+ $keys = OAuthUtil::urlencode_rfc3986(array_keys($params));
+ $values = OAuthUtil::urlencode_rfc3986(array_values($params));
+ $params = array_combine($keys, $values);
+
+ // Parameters are sorted by name, using lexicographical byte value ordering.
+ // Ref: Spec: 9.1.1 (1)
+ uksort($params, 'strcmp');
+
+ $pairs = array();
+ foreach ($params as $parameter => $value) {
+ if (is_array($value)) {
+ // If two or more parameters share the same name, they are sorted by their value
+ // Ref: Spec: 9.1.1 (1)
+ natsort($value);
+ foreach ($value as $duplicate_value) {
+ $pairs[] = $parameter . '=' . $duplicate_value;
+ }
+ } else {
+ $pairs[] = $parameter . '=' . $value;
+ }
+ }
+ // For each parameter, the name is separated from the corresponding value by an '=' character (ASCII code 61)
+ // Each name-value pair is separated by an '&' character (ASCII code 38)
+ return implode('&', $pairs);
+ }
+}
diff --git a/twitteroauth-master/twitteroauth/twitteroauth.php b/twitteroauth-master/twitteroauth/twitteroauth.php
new file mode 100755
index 0000000..3fb5052
--- /dev/null
+++ b/twitteroauth-master/twitteroauth/twitteroauth.php
@@ -0,0 +1,241 @@
+http_status; }
+ function lastAPICall() { return $this->last_api_call; }
+
+ /**
+ * construct TwitterOAuth object
+ */
+ function __construct($consumer_key, $consumer_secret, $oauth_token = NULL, $oauth_token_secret = NULL) {
+ $this->sha1_method = new OAuthSignatureMethod_HMAC_SHA1();
+ $this->consumer = new OAuthConsumer($consumer_key, $consumer_secret);
+ if (!empty($oauth_token) && !empty($oauth_token_secret)) {
+ $this->token = new OAuthConsumer($oauth_token, $oauth_token_secret);
+ } else {
+ $this->token = NULL;
+ }
+ }
+
+
+ /**
+ * Get a request_token from Twitter
+ *
+ * @returns a key/value array containing oauth_token and oauth_token_secret
+ */
+ function getRequestToken($oauth_callback) {
+ $parameters = array();
+ $parameters['oauth_callback'] = $oauth_callback;
+ $request = $this->oAuthRequest($this->requestTokenURL(), 'GET', $parameters);
+ $token = OAuthUtil::parse_parameters($request);
+ $this->token = new OAuthConsumer($token['oauth_token'], $token['oauth_token_secret']);
+ return $token;
+ }
+
+ /**
+ * Get the authorize URL
+ *
+ * @returns a string
+ */
+ function getAuthorizeURL($token, $sign_in_with_twitter = TRUE) {
+ if (is_array($token)) {
+ $token = $token['oauth_token'];
+ }
+ if (empty($sign_in_with_twitter)) {
+ return $this->authorizeURL() . "?oauth_token={$token}";
+ } else {
+ return $this->authenticateURL() . "?oauth_token={$token}";
+ }
+ }
+
+ /**
+ * Exchange request token and secret for an access token and
+ * secret, to sign API calls.
+ *
+ * @returns array("oauth_token" => "the-access-token",
+ * "oauth_token_secret" => "the-access-secret",
+ * "user_id" => "9436992",
+ * "screen_name" => "abraham")
+ */
+ function getAccessToken($oauth_verifier) {
+ $parameters = array();
+ $parameters['oauth_verifier'] = $oauth_verifier;
+ $request = $this->oAuthRequest($this->accessTokenURL(), 'GET', $parameters);
+ $token = OAuthUtil::parse_parameters($request);
+ $this->token = new OAuthConsumer($token['oauth_token'], $token['oauth_token_secret']);
+ return $token;
+ }
+
+ /**
+ * One time exchange of username and password for access token and secret.
+ *
+ * @returns array("oauth_token" => "the-access-token",
+ * "oauth_token_secret" => "the-access-secret",
+ * "user_id" => "9436992",
+ * "screen_name" => "abraham",
+ * "x_auth_expires" => "0")
+ */
+ function getXAuthToken($username, $password) {
+ $parameters = array();
+ $parameters['x_auth_username'] = $username;
+ $parameters['x_auth_password'] = $password;
+ $parameters['x_auth_mode'] = 'client_auth';
+ $request = $this->oAuthRequest($this->accessTokenURL(), 'POST', $parameters);
+ $token = OAuthUtil::parse_parameters($request);
+ $this->token = new OAuthConsumer($token['oauth_token'], $token['oauth_token_secret']);
+ return $token;
+ }
+
+ /**
+ * GET wrapper for oAuthRequest.
+ */
+ function get($url, $parameters = array()) {
+ $response = $this->oAuthRequest($url, 'GET', $parameters);
+ if ($this->format === 'json' && $this->decode_json) {
+ return json_decode($response);
+ }
+ return $response;
+ }
+
+ /**
+ * POST wrapper for oAuthRequest.
+ */
+ function post($url, $parameters = array()) {
+ $response = $this->oAuthRequest($url, 'POST', $parameters);
+ if ($this->format === 'json' && $this->decode_json) {
+ return json_decode($response);
+ }
+ return $response;
+ }
+
+ /**
+ * DELETE wrapper for oAuthReqeust.
+ */
+ function delete($url, $parameters = array()) {
+ $response = $this->oAuthRequest($url, 'DELETE', $parameters);
+ if ($this->format === 'json' && $this->decode_json) {
+ return json_decode($response);
+ }
+ return $response;
+ }
+
+ /**
+ * Format and sign an OAuth / API request
+ */
+ function oAuthRequest($url, $method, $parameters) {
+ if (strrpos($url, 'https://') !== 0 && strrpos($url, 'http://') !== 0) {
+ $url = "{$this->host}{$url}.{$this->format}";
+ }
+ $request = OAuthRequest::from_consumer_and_token($this->consumer, $this->token, $method, $url, $parameters);
+ $request->sign_request($this->sha1_method, $this->consumer, $this->token);
+ switch ($method) {
+ case 'GET':
+ return $this->http($request->to_url(), 'GET');
+ default:
+ return $this->http($request->get_normalized_http_url(), $method, $request->to_postdata());
+ }
+ }
+
+ /**
+ * Make an HTTP request
+ *
+ * @return API results
+ */
+ function http($url, $method, $postfields = NULL) {
+ $this->http_info = array();
+ $ci = curl_init();
+ /* Curl settings */
+ curl_setopt($ci, CURLOPT_USERAGENT, $this->useragent);
+ curl_setopt($ci, CURLOPT_CONNECTTIMEOUT, $this->connecttimeout);
+ curl_setopt($ci, CURLOPT_TIMEOUT, $this->timeout);
+ curl_setopt($ci, CURLOPT_RETURNTRANSFER, TRUE);
+ curl_setopt($ci, CURLOPT_HTTPHEADER, array('Expect:'));
+ curl_setopt($ci, CURLOPT_SSL_VERIFYPEER, $this->ssl_verifypeer);
+ curl_setopt($ci, CURLOPT_HEADERFUNCTION, array($this, 'getHeader'));
+ curl_setopt($ci, CURLOPT_HEADER, FALSE);
+
+ switch ($method) {
+ case 'POST':
+ curl_setopt($ci, CURLOPT_POST, TRUE);
+ if (!empty($postfields)) {
+ curl_setopt($ci, CURLOPT_POSTFIELDS, $postfields);
+ }
+ break;
+ case 'DELETE':
+ curl_setopt($ci, CURLOPT_CUSTOMREQUEST, 'DELETE');
+ if (!empty($postfields)) {
+ $url = "{$url}?{$postfields}";
+ }
+ }
+
+ curl_setopt($ci, CURLOPT_URL, $url);
+ $response = curl_exec($ci);
+ $this->http_code = curl_getinfo($ci, CURLINFO_HTTP_CODE);
+ $this->http_info = array_merge($this->http_info, curl_getinfo($ci));
+ $this->url = $url;
+ curl_close ($ci);
+ return $response;
+ }
+
+ /**
+ * Get the header info to store.
+ */
+ function getHeader($ch, $header) {
+ $i = strpos($header, ':');
+ if (!empty($i)) {
+ $key = str_replace('-', '_', strtolower(substr($header, 0, $i)));
+ $value = trim(substr($header, $i + 2));
+ $this->http_header[$key] = $value;
+ }
+ return strlen($header);
+ }
+}
diff --git a/upgrade_browser.php b/upgrade_browser.php
new file mode 100644
index 0000000..692f2f5
--- /dev/null
+++ b/upgrade_browser.php
@@ -0,0 +1,85 @@
+
+
+
+
+
+
+ Mantis Bug Tracker
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
You are using an outdated browser
+
For a better experience using MantisBT website, please upgrade to a modern web browser.
+
+
+
+
+
+
+
+