├── .env.example ├── .github ├── depandabot.yml └── workflows │ ├── build-app.yml │ └── run-tests.yml ├── .gitignore ├── Dockerfile ├── README.md ├── backend ├── __init__.py ├── algorithm.py ├── decorators.py ├── forms.py ├── handlers.py ├── models.py └── views │ ├── auth.py │ └── views.py ├── contract └── BookingChain.sol ├── docker-compose.yml ├── globals.py ├── migrations ├── README ├── alembic.ini ├── env.py └── script.py.mako ├── nginx └── conf.d │ └── nginx.conf ├── requirements.txt ├── server.py ├── static ├── bat │ └── MailHandler.php ├── booking │ ├── booking.php │ ├── css │ │ └── booking.css │ ├── font │ │ ├── FontAwesome.otf │ │ ├── font-awesome.css │ │ ├── fontawesome-webfont.eot │ │ ├── fontawesome-webfont.svg │ │ ├── fontawesome-webfont.ttf │ │ ├── fontawesome-webfont.woff │ │ ├── icomoon.dev.svg │ │ ├── icomoon.eot │ │ ├── icomoon.svg │ │ ├── icomoon.ttf │ │ └── icomoon.woff │ ├── js │ │ ├── booking.js │ │ ├── jquery-ui-1.10.3.custom.min.js │ │ ├── jquery.fancyform.js │ │ ├── jquery.placeholder.js │ │ └── regula.js │ └── less │ │ ├── booking.less │ │ └── mixins.less ├── css │ ├── adipoli.css │ ├── camera.css │ ├── chat.css │ ├── detail-group.css │ ├── font-awesome.css │ ├── form.css │ ├── grid.css │ ├── ie.css │ ├── owl.carousel.css │ ├── reset.css │ ├── skeleton.css │ ├── style.css │ ├── superfish.css │ └── touchTouch.css ├── demo.txt ├── fonts │ ├── FontAwesome.otf │ ├── fontawesome-webfont.eot │ ├── fontawesome-webfont.svg │ ├── fontawesome-webfont.ttf │ └── fontawesome-webfont.woff ├── images │ ├── DTU-Campus.jpg │ ├── a.jpg │ ├── arrows.png │ ├── arrowws.png │ ├── big1.jpg │ ├── big2.jpg │ ├── big3.jpg │ ├── big4.jpg │ ├── big5.jpg │ ├── big6.jpg │ ├── big7.jpg │ ├── big8.jpg │ ├── big9.jpg │ ├── camera-loader.gif │ ├── capt_bg.png │ ├── comm.jpg │ ├── cost.jpg │ ├── cost1.jpg │ ├── dtu2.jpg │ ├── dtu3.png │ ├── dtu4.jpg │ ├── dtutoramaecl.png │ ├── icon1.png │ ├── icon2.png │ ├── icon3.png │ ├── icon4.png │ ├── icon5.jpg │ ├── imgonline-com-ua-resize-ldHHNkkIfP5vwUWa (1).jpg │ ├── loc.jpg │ ├── logo.png │ ├── magnifier.png │ ├── menu_bg.png │ ├── nsit1.jpg │ ├── nsit2.jpg │ ├── nsit3.jpg │ ├── nsit4.jpg │ ├── page1_img1.jpg │ ├── page1_img2.jpg │ ├── page1_img3.jpg │ ├── page2_img1.jpg │ ├── page3_img1.jpg │ ├── page3_img2.jpg │ ├── page3_img3.jpg │ ├── page3_img4.jpg │ ├── page3_img5.jpg │ ├── page3_img6.jpg │ ├── page3_img7.jpg │ ├── page3_img8.jpg │ ├── page3_img9.jpg │ ├── page4_img1.jpg │ ├── page4_img3.jpg │ ├── page4_img4.jpg │ ├── page4_img5.jpg │ ├── page4_img6.jpg │ ├── page4_img7.jpg │ ├── page4_img8.jpg │ ├── page4_img9.jpg │ ├── preloader.gif │ ├── prevnext.png │ ├── quotes.png │ ├── serv.jpg │ ├── serv1.jpg │ ├── slide.jpg │ ├── slide1.jpg │ ├── slide2.jpg │ └── spacer.png ├── js │ ├── TMForm.js │ ├── Web3Payments.js │ ├── camera.js │ ├── html5shiv.js │ ├── jquery-migrate-1.2.1.js │ ├── jquery.adipoli.js │ ├── jquery.easing.1.3.js │ ├── jquery.equalheights.js │ ├── jquery.js │ ├── jquery.mobile.customized.min.js │ ├── jquery.mobilemenu.js │ ├── jquery.ui.totop.js │ ├── owl.carousel.js │ ├── script.js │ ├── superfish.js │ └── touchTouch.jquery.js └── logo.png ├── templates ├── base.html ├── chat.html ├── contact.html ├── detail-group.html ├── index.html ├── login.html ├── navbar.html ├── register.html └── services.html └── tests ├── functional ├── test_login.py └── test_register.py └── unit └── test_models.py /.env.example: -------------------------------------------------------------------------------- 1 | SECRET_KEY=sadaskljdweropdw11 2 | GOOGLE_MAPS_APIKEY=Adsdkdfktest 3 | ORG_SOURCE=delhi -------------------------------------------------------------------------------- /.github/depandabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: "pip" 4 | directory: "/" 5 | schedule: 6 | interval: "daily" 7 | open-pull-requests-limit: 100 -------------------------------------------------------------------------------- /.github/workflows/build-app.yml: -------------------------------------------------------------------------------- 1 | name: OSMD BookCab 2 | 3 | on: 4 | push: 5 | branches: [ main ] 6 | 7 | jobs: 8 | deploy: 9 | runs-on: ubuntu-latest 10 | strategy: 11 | fail-fast: false 12 | matrix: 13 | python-version: [3.10.9] 14 | steps: 15 | - uses: actions/checkout@main 16 | - name: Initialize Python 3.10.9 17 | uses: actions/setup-python@v1 18 | with: 19 | python-version: ${{matrix.python-version}} 20 | - name: Install dependencies 21 | run: | 22 | python -m pip install --upgrade pip 23 | pip install -r requirements.txt 24 | python server.py -------------------------------------------------------------------------------- /.github/workflows/run-tests.yml: -------------------------------------------------------------------------------- 1 | name: OSMD BookCab run tests 2 | 3 | on: 4 | push: 5 | branches: [ main ] 6 | 7 | jobs: 8 | deploy: 9 | runs-on: ubuntu-latest 10 | strategy: 11 | fail-fast: false 12 | matrix: 13 | python-version: [3.10.9] 14 | steps: 15 | - uses: actions/checkout@main 16 | - name: Initialize Python 3.10.9 17 | uses: actions/setup-python@v1 18 | with: 19 | python-version: ${{matrix.python-version}} 20 | - name: Install dependencies and run tests 21 | run: | 22 | python -m pip install --upgrade pip 23 | pip install -r requirements.txt 24 | python -m pytest -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | venv 2 | __pycache__ 3 | .env 4 | instance 5 | *.db -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM python:3.10 2 | ENV PYTHONUNBUFFERED 1 3 | WORKDIR /code 4 | COPY requirements.txt requirements.txt ./ 5 | RUN pip install -r requirements.txt 6 | COPY . ./ 7 | EXPOSE 8000 8 | CMD ["sh", "./deploy.sh"] 9 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |
Country: ' . $_POST["country"] . '
' . "\n"; 18 | $messageBody .= 'Email Address: ' . $_POST['email'] . '
' . "\n"; 22 | $messageBody .= 'State: ' . $_POST['state'] . '
' . "\n"; 28 | $messageBody .= 'Phone Number: ' . $_POST['phone'] . '
' . "\n"; 32 | $messageBody .= 'Fax Number: ' . $_POST['fax'] . '
' . "\n"; 36 | $messageBody .= 'Message: ' . $_POST['message'] . '
' . "\n"; 40 | } 41 | 42 | if($_POST["stripHTML"] == 'true'){ 43 | $messageBody = strip_tags($messageBody); 44 | } 45 | 46 | if($host=="" or $username=="" or $password==""){ 47 | $owner_email = $_POST["owner_email"]; 48 | $headers = 'From:' . $_POST["email"] . "\r\n" . 'Content-Type: text/plain; charset=UTF-8' . "\r\n"; 49 | $subject = 'A message from your site visitor ' . $_POST["name"]; 50 | 51 | try{ 52 | if(!mail($owner_email, $subject, $messageBody, $headers)){ 53 | throw new Exception('mail failed'); 54 | }else{ 55 | echo 'mail sent'; 56 | } 57 | }catch(Exception $e){ 58 | echo $e->getMessage() ."\n"; 59 | } 60 | }else{ 61 | require_once 'Mail.php'; 62 | 63 | $to = $_POST["owner_email"]; 64 | $subject = 'A message from your site visitor ' . $_POST["name"]; 65 | $headers = array ( 66 | 'From' => 'From:' . $_POST["email"] . "\r\n" . 'Content-Type: text/plain; charset=UTF-8' . "\r\n", 67 | 'To' => $to, 68 | 'Subject' => $subject); 69 | 70 | $smtp = Mail::factory( 71 | 'smtp', 72 | array ( 73 | 'host' => $host, 74 | 'port' => $port, 75 | 'auth' => true, 76 | 'username' => $username, 77 | 'password' => $password)); 78 | 79 | $mail = $smtp->send($to, $headers, $messageBody); 80 | 81 | try{ 82 | if(PEAR::isError($mail)){ 83 | echo $mail->getMessage(); 84 | }else{ 85 | echo 'mail sent'; 86 | } 87 | }catch(Exception $mail){ 88 | echo $mail->getMessage() ."\n"; 89 | } 90 | } 91 | ?> -------------------------------------------------------------------------------- /static/booking/booking.php: -------------------------------------------------------------------------------- 1 | $value) { 10 | echo "$key".': '."$value".'&'; 11 | if (($value != 'nope') && ($key != 'owner_email') && ($key != 'sender')) { 12 | $messageBody .="$key" . ': '."$value" . "\n\n"; 13 | } 14 | } 15 | 16 | try{ 17 | echo $_POST['Email']; 18 | echo $subject; 19 | echo $messageBody; 20 | 21 | if(!mail($ownerEmail, $subject, $messageBody, $headers)){ 22 | throw new Exception('mail failed'); 23 | }else{ 24 | echo 'mail sent'; 25 | } 26 | }catch(Exception $e){ 27 | echo $e->getMessage() ."\n"; 28 | } 29 | ?> -------------------------------------------------------------------------------- /static/booking/css/booking.css: -------------------------------------------------------------------------------- 1 | @import '../font/font-awesome.css'; 2 | /* CSS for jquery.fancyform.js */ 3 | /*custom mixins */ 4 | /*end custom mixins */ 5 | /* Control Holder */ 6 | 7 | #bookingForm { 8 | padding-right: 36px; 9 | font-family: 'Open Sans', sans-serif; 10 | } 11 | 12 | .tmInput { 13 | position: relative; 14 | } 15 | 16 | .mr0 { 17 | margin-right: 0; 18 | } 19 | 20 | .tmTextarea { 21 | padding-top: 12px; 22 | } 23 | 24 | .fl1 { 25 | width: 193px; 26 | float: left; 27 | } 28 | 29 | .fl1.fl2 { 30 | top: 33px; 31 | } 32 | 33 | .fl1+.fl1 { 34 | margin-left: 47px; 35 | } 36 | 37 | .fl1 em { 38 | font-style: normal; 39 | padding-top: 12px; 40 | display: block; 41 | float: left; 42 | padding-left: 12px; 43 | } 44 | 45 | .fl1 em +div { 46 | float: right; 47 | } 48 | 49 | .tmInput { 50 | width: 100%; 51 | } 52 | 53 | 54 | .height1 { 55 | height: 44px !important; 56 | } 57 | 58 | .fl1 em +.controlHolder { 59 | margin-bottom: 0; 60 | } 61 | 62 | .tmSelect { 63 | margin-bottom: 8px !important; 64 | } 65 | 66 | 67 | .tmInput { 68 | margin-right: 47px; 69 | } 70 | 71 | #bookingForm { 72 | position: relative; 73 | display: block; 74 | padding-top: 5px; 75 | color: #737272; 76 | font: 14px/20px 'Open Sans', sans-serif; 77 | } 78 | 79 | #bookingForm input, 80 | #bookingForm textarea { 81 | outline: none; 82 | -webkit-box-sizing: border-box; 83 | -moz-box-sizing: border-box; 84 | box-sizing: border-box; 85 | 86 | border: 1px solid #f1f1f1; 87 | color: #737272; 88 | background: #f0f3f5; 89 | padding: 5px 12px; 90 | width: 100%; 91 | font: 14px/20px 'Open Sans', sans-serif; 92 | height: 30px; 93 | 94 | } 95 | 96 | #bookingForm textarea { 97 | resize: none; 98 | padding-top: 10px !important; 99 | color: #737272; 100 | font: 14px/20px 'Open Sans', sans-serif; 101 | height: 143px !important; 102 | -webkit-box-sizing: border-box; 103 | -moz-box-sizing: border-box; 104 | box-sizing: border-box; 105 | 106 | } 107 | 108 | 109 | 110 | #bookingForm input::-webkit-input-placeholder { 111 | color: #737272; 112 | } 113 | 114 | input::-webkit-input-placeholder , 115 | textarea::-webkit-input-placeholder 116 | {color:#737272;} 117 | 118 | input::-moz-placeholder, 119 | textarea::-moz-placeholder 120 | {color:#737272;} 121 | 122 | #bookingForm input:focus, 123 | #bookingForm textarea:focus { 124 | background: #fff; 125 | } 126 | 127 | #bookingForm a.btn { 128 | } 129 | #bookingForm a.btn:hover { 130 | } 131 | .controlHolder { 132 | position: relative; 133 | margin-bottom: 13px; 134 | } 135 | /* Messages */ 136 | .error-message { 137 | position: absolute; 138 | top: 31px; 139 | white-space: nowrap; 140 | right: 0px; 141 | font-weight: normal; 142 | text-align: right; 143 | font-size: 10px; 144 | line-height: 1em; 145 | color: gray; 146 | z-index: 4; 147 | color: #fe5353; 148 | } 149 | .success-message { 150 | position: relative; 151 | text-align: left; 152 | color: gray; 153 | margin: 5px 0px; 154 | color: #F3AA29; 155 | } 156 | /* transformSelect CSS */ 157 | /* 1st type of select */ 158 | .tmSelect, 159 | .tmSelect2 { 160 | clear: both; 161 | width: 100%; 162 | margin: 0px; 163 | } 164 | .tmSelect li, 165 | .tmSelect2 li { 166 | position: relative; 167 | list-style: none; 168 | 169 | } 170 | .tmSelect span, 171 | .tmSelect2 span, 172 | .tmSelect input[type=text], 173 | .tmSelect2 input[type=text] { 174 | position: relative; 175 | cursor: pointer; 176 | display: block; 177 | left: 0; 178 | top: 0; 179 | margin: 0; 180 | } 181 | .tmSelect:after, 182 | .tmSelect2:after { 183 | content: '\f002'; 184 | position: absolute; 185 | top: 8px; 186 | right: 9px; 187 | font: normal normal 18px 'FontAwesome'; 188 | color: #ccc; 189 | z-index: 4; 190 | } 191 | .tmSelect.auto, 192 | .tmSelect2.auto { 193 | cursor: pointer; 194 | padding: 0; 195 | margin: 6px 0 20px 0; 196 | border: 1px #f1f1f1 solid; 197 | color: #737272; 198 | background: #f0f3f5; 199 | font: 14px/20px 'Open Sans', sans-serif; 200 | width: 95px; 201 | height: 30px; 202 | float: right; 203 | -webkit-box-sizing: border-box; 204 | -moz-box-sizing: border-box; 205 | box-sizing: border-box; 206 | } 207 | .tmSelect.auto span, 208 | .tmSelect2.auto span { 209 | background: transparent; 210 | } 211 | .tmSelect.auto:focus, 212 | .tmSelect2.auto:focus { 213 | background: #fff; 214 | } 215 | .tmSelect.auto ul, 216 | .tmSelect2.auto ul { 217 | margin: 0px 0 0; 218 | float: right; 219 | -webkit-box-sizing: border-box; 220 | -moz-box-sizing: border-box; 221 | box-sizing: border-box; 222 | width: 55px; 223 | } 224 | .tmSelect.auto > li:first-child > span, 225 | .tmSelect2.auto > li:first-child > span { 226 | padding: 4px 12px 6px; 227 | color: #737272; 228 | width: 100%; 229 | z-index: 10; 230 | position: relative; 231 | -webkit-box-sizing: border-box; 232 | -moz-box-sizing: border-box; 233 | box-sizing: border-box; 234 | } 235 | .tmSelect ul, 236 | .tmSelect2 ul, 237 | .tmSelect .transformSelectDropdown, 238 | .tmSelect2 .transformSelectDropdown { 239 | position: absolute; 240 | width: 100%; 241 | max-height: 210px; 242 | padding: 0px 0px; 243 | top: 29px; 244 | margin: 0px; 245 | right: 0; 246 | border: 1px #ccc solid; 247 | color: #737272; 248 | min-height: 65px; 249 | background: #fff; 250 | font: 12px/18px Arial, sans-serif; 251 | -webkit-box-sizing: border-box; 252 | -moz-box-sizing: border-box; 253 | box-sizing: border-box; 254 | box-shadow: none; 255 | z-index: 999; 256 | } 257 | .tmSelect ul:focus, 258 | .tmSelect2 ul:focus, 259 | .tmSelect .transformSelectDropdown:focus, 260 | .tmSelect2 .transformSelectDropdown:focus { 261 | background: #fff; 262 | } 263 | .tmSelect ul span, 264 | .tmSelect2 ul span, 265 | .tmSelect .transformSelectDropdown span, 266 | .tmSelect2 .transformSelectDropdown span { 267 | border: 0; 268 | color: #000; 269 | padding: 0px 9px; 270 | line-height: 17px; 271 | } 272 | .tmSelect ul span:hover, 273 | .tmSelect2 ul span:hover, 274 | .tmSelect .transformSelectDropdown span:hover, 275 | .tmSelect2 .transformSelectDropdown span:hover { 276 | background: #d2dae0; 277 | } 278 | .tmSelect ul li input[type=checkbox], 279 | .tmSelect2 ul li input[type=checkbox] { 280 | position: relative; 281 | top: 2px; 282 | margin: 0 5px 0 0; 283 | cursor: pointer; 284 | } 285 | /* 2nd type of select */ 286 | .tmSelect2:after { 287 | content: ''; 288 | background-color: #d2dae0; 289 | width: 23px; 290 | height: 22px; 291 | text-align: center; 292 | color: #adaeaf; 293 | font-size: 14px; 294 | line-height: 25px; 295 | right: 4px; 296 | margin-top: 2px; 297 | } 298 | /* Radio */ 299 | .trans-element-radio { 300 | display: inline-block; 301 | display: block; 302 | zoom: 1; 303 | width: 15px; 304 | height: 15px; 305 | cursor: pointer; 306 | } 307 | .tmRadio { 308 | padding-left: 0; 309 | } 310 | .tmRadio p { 311 | padding-bottom: 0; 312 | margin-bottom: 0; 313 | padding-top: 0px; 314 | position: relative; 315 | top: -6px; 316 | } 317 | .tmRadio p { 318 | padding-bottom: 0; 319 | margin-bottom: 3px; 320 | padding-left: 30px; 321 | } 322 | .tmRadio input { 323 | margin-right: 5px; 324 | } 325 | .tmRadio .unchecked, 326 | .tmRadio .checked { 327 | position: relative; 328 | cursor: pointer; 329 | margin-right: 5px; 330 | } 331 | 332 | .tmRadio strong { 333 | margin-left: 30px; 334 | } 335 | 336 | .tmRadio { 337 | margin-left: -30px !important; 338 | } 339 | .tmRadio .unchecked:after, 340 | .tmRadio .checked:after { 341 | content: '\f10c'; 342 | position: relative; 343 | top: 1px; 344 | font: normal normal 20px 'FontAwesome'; 345 | color: #adaeaf; 346 | } 347 | .tmRadio .checked:after { 348 | content: '\f05d'; 349 | color: #98a6b3; 350 | } 351 | /* Checkbox */ 352 | .trans-element-checkbox { 353 | cursor: pointer; 354 | zoom: 1; 355 | } 356 | .trans-element-checkbox span { 357 | padding-left: 40px; 358 | 359 | } 360 | .trans-element-checkbox.checked:after { 361 | content: '\f046'; 362 | } 363 | .trans-element-checkbox:after { 364 | content: '\f096'; 365 | position: relative; 366 | display: inline-block; 367 | top: 2px; 368 | width: 17px; 369 | font: normal normal 18px 'FontAwesome'; 370 | color: #ccc; 371 | } 372 | .trans-element-checkbox.unchecked:after { 373 | content: '\f096'; 374 | } 375 | .tmCheckbox, 376 | .tmRadio { 377 | margin-left: 0; 378 | padding-left: 0; 379 | padding: 0; 380 | } 381 | .tmCheckbox span, 382 | .tmRadio span { 383 | position: relative; 384 | margin-right: 10px; 385 | top: 1px; 386 | } 387 | /* Datepicker */ 388 | .tmDatepicker { 389 | position: relative; 390 | margin-bottom: 20px; 391 | } 392 | 393 | #bookingForm>strong { 394 | display: block; 395 | font-weight: normal; 396 | float: left; 397 | padding-top: 7px; 398 | } 399 | 400 | 401 | #bookingForm>strong+.controlHolder { 402 | width: 336px; 403 | float: right; 404 | padding-top: 1px; 405 | } 406 | 407 | .tmDatepicker { 408 | display: block; 409 | margin-bottom: 0; 410 | } 411 | 412 | .tmDatepicker:after { 413 | content: '\f073'; 414 | position: absolute; 415 | bottom: 5px; 416 | right: 23px; 417 | font: normal normal 20px/20px 'FontAwesome'; 418 | color: #98a6b3; 419 | z-index: 4; 420 | cursor: text; 421 | } 422 | .ui-datepicker { 423 | padding: 10px; 424 | width: 300px; 425 | font-size: 13px; 426 | display: none; 427 | z-index: 100 !important; 428 | -webkit-box-sizing: border-box; 429 | -moz-box-sizing: border-box; 430 | box-sizing: border-box; 431 | -webkit-border-radius: 4px; 432 | -moz-border-radius: 4px; 433 | border: 1px #ccc solid; 434 | color: #737272; 435 | background: #F0F3F5; 436 | } 437 | .ui-datepicker:focus { 438 | background: #fff; 439 | } 440 | .ui-datepicker a { 441 | color: #777; 442 | } 443 | .ui-datepicker a:hover { 444 | color: #000; 445 | text-decoration: none; 446 | } 447 | .ui-datepicker-prev, 448 | .ui-datepicker-next { 449 | cursor: pointer; 450 | float: left; 451 | } 452 | .ui-datepicker-next { 453 | float: right; 454 | } 455 | .ui-datepicker-title { 456 | text-align: center; 457 | } 458 | .ui-datepicker-calendar { 459 | margin: 10px 11px; 460 | } 461 | .ui-datepicker-calendar td { 462 | padding: 1px 10px; 463 | text-align: center; 464 | } 465 | .ui-datepicker-calendar .ui-datepicker-current-day, 466 | .ui-datepicker-calendar .ui-datepicker-today { 467 | -webkit-box-shadow: 0px 0px 5px 0px rgba(0, 0, 0, 0.2); 468 | -moz-box-shadow: 0px 0px 5px 0px rgba(0, 0, 0, 0.2); 469 | box-shadow: 0px 0px 5px 0px rgba(0, 0, 0, 0.2); 470 | -webkit-border-radius: 4px; 471 | -moz-border-radius: 4px; 472 | border-radius: 4px; 473 | padding: 6px 15px; 474 | border: 1px #ccc solid; 475 | background: #f5f5f5; 476 | color: #000; 477 | font-weight: normal; 478 | padding: 3px; 479 | } 480 | .ui-datepicker-calendar .ui-datepicker-current-day:hover, 481 | .ui-datepicker-calendar .ui-datepicker-today:hover { 482 | background: #efefef; 483 | } 484 | .ui-datepicker-calendar .ui-datepicker-today { 485 | border-color: #fff; 486 | } 487 | button.ui-state-default { 488 | border: none; 489 | padding: 3px 7px; 490 | font: 12px/18px Arial, sans-serif; 491 | -webkit-box-shadow: 0px 0px 5px 0px rgba(0, 0, 0, 0.2); 492 | -moz-box-shadow: 0px 0px 5px 0px rgba(0, 0, 0, 0.2); 493 | box-shadow: 0px 0px 5px 0px rgba(0, 0, 0, 0.2); 494 | -webkit-border-radius: 4px; 495 | -moz-border-radius: 4px; 496 | border-radius: 4px; 497 | padding: 6px 15px; 498 | border: 1px #ccc solid; 499 | background: #f5f5f5; 500 | color: #000; 501 | font-weight: normal; 502 | } 503 | button.ui-state-default:hover { 504 | background: #efefef; 505 | } 506 | .ui-datepicker-close { 507 | float: right; 508 | } 509 | .clearfix { 510 | *zoom: 1; 511 | } 512 | .clearfix:before, 513 | .clearfix:after { 514 | display: table; 515 | content: ""; 516 | line-height: 0; 517 | } 518 | .clearfix:after { 519 | clear: both; 520 | } 521 | .hide-text { 522 | font: 0/0 a; 523 | color: transparent; 524 | text-shadow: none; 525 | background-color: transparent; 526 | border: 0; 527 | } 528 | 529 | #map-canvas { 530 | height: 100%; 531 | width: 100%; 532 | } 533 | -------------------------------------------------------------------------------- /static/booking/font/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtmegaBuzz/BookCab/cda69e1cec9df35f03ef4b8bf3b715d41c065511/static/booking/font/FontAwesome.otf -------------------------------------------------------------------------------- /static/booking/font/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtmegaBuzz/BookCab/cda69e1cec9df35f03ef4b8bf3b715d41c065511/static/booking/font/fontawesome-webfont.eot -------------------------------------------------------------------------------- /static/booking/font/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtmegaBuzz/BookCab/cda69e1cec9df35f03ef4b8bf3b715d41c065511/static/booking/font/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /static/booking/font/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtmegaBuzz/BookCab/cda69e1cec9df35f03ef4b8bf3b715d41c065511/static/booking/font/fontawesome-webfont.woff -------------------------------------------------------------------------------- /static/booking/font/icomoon.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtmegaBuzz/BookCab/cda69e1cec9df35f03ef4b8bf3b715d41c065511/static/booking/font/icomoon.eot -------------------------------------------------------------------------------- /static/booking/font/icomoon.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtmegaBuzz/BookCab/cda69e1cec9df35f03ef4b8bf3b715d41c065511/static/booking/font/icomoon.ttf -------------------------------------------------------------------------------- /static/booking/font/icomoon.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AtmegaBuzz/BookCab/cda69e1cec9df35f03ef4b8bf3b715d41c065511/static/booking/font/icomoon.woff -------------------------------------------------------------------------------- /static/booking/js/jquery.placeholder.js: -------------------------------------------------------------------------------- 1 | /*! http://mths.be/placeholder v2.0.7 by @mathias */ 2 | ;(function(window, document, $) { 3 | 4 | // Opera Mini v7 doesn’t support placeholder although its DOM seems to indicate so 5 | var isOperaMini = Object.prototype.toString.call(window.operamini) == '[object OperaMini]'; 6 | var isInputSupported = 'placeholder' in document.createElement('input') && !isOperaMini; 7 | var isTextareaSupported = 'placeholder' in document.createElement('textarea') && !isOperaMini; 8 | var prototype = $.fn; 9 | var valHooks = $.valHooks; 10 | var propHooks = $.propHooks; 11 | var hooks; 12 | var placeholder; 13 | 14 | if (isInputSupported && isTextareaSupported) { 15 | 16 | placeholder = prototype.placeholder = function() { 17 | return this; 18 | }; 19 | 20 | placeholder.input = placeholder.textarea = true; 21 | 22 | } else { 23 | 24 | placeholder = prototype.placeholder = function() { 25 | var $this = this; 26 | $this 27 | .filter((isInputSupported ? 'textarea' : ':input') + '[placeholder]') 28 | .not('.placeholder') 29 | .bind({ 30 | 'focus.placeholder': clearPlaceholder, 31 | 'blur.placeholder': setPlaceholder 32 | }) 33 | .data('placeholder-enabled', true) 34 | .trigger('blur.placeholder'); 35 | return $this; 36 | }; 37 | 38 | placeholder.input = isInputSupported; 39 | placeholder.textarea = isTextareaSupported; 40 | 41 | hooks = { 42 | 'get': function(element) { 43 | var $element = $(element); 44 | 45 | var $passwordInput = $element.data('placeholder-password'); 46 | if ($passwordInput) { 47 | return $passwordInput[0].value; 48 | } 49 | 50 | return $element.data('placeholder-enabled') && $element.hasClass('placeholder') ? '' : element.value; 51 | }, 52 | 'set': function(element, value) { 53 | var $element = $(element); 54 | 55 | var $passwordInput = $element.data('placeholder-password'); 56 | if ($passwordInput) { 57 | return $passwordInput[0].value = value; 58 | } 59 | 60 | if (!$element.data('placeholder-enabled')) { 61 | return element.value = value; 62 | } 63 | if (value == '') { 64 | element.value = value; 65 | // Issue #56: Setting the placeholder causes problems if the element continues to have focus. 66 | if (element != safeActiveElement()) { 67 | // We can't use `triggerHandler` here because of dummy text/password inputs :( 68 | setPlaceholder.call(element); 69 | } 70 | } else if ($element.hasClass('placeholder')) { 71 | clearPlaceholder.call(element, true, value) || (element.value = value); 72 | } else { 73 | element.value = value; 74 | } 75 | // `set` can not return `undefined`; see http://jsapi.info/jquery/1.7.1/val#L2363 76 | return $element; 77 | } 78 | }; 79 | 80 | if (!isInputSupported) { 81 | valHooks.input = hooks; 82 | propHooks.value = hooks; 83 | } 84 | if (!isTextareaSupported) { 85 | valHooks.textarea = hooks; 86 | propHooks.value = hooks; 87 | } 88 | 89 | $(function() { 90 | // Look for forms 91 | $(document).delegate('form', 'submit.placeholder', function() { 92 | // Clear the placeholder values so they don't get submitted 93 | var $inputs = $('.placeholder', this).each(clearPlaceholder); 94 | setTimeout(function() { 95 | $inputs.each(setPlaceholder); 96 | }, 10); 97 | }); 98 | }); 99 | 100 | // Clear placeholder values upon page reload 101 | $(window).bind('beforeunload.placeholder', function() { 102 | $('.placeholder').each(function() { 103 | this.value = ''; 104 | }); 105 | }); 106 | 107 | } 108 | 109 | function args(elem) { 110 | // Return an object of element attributes 111 | var newAttrs = {}; 112 | var rinlinejQuery = /^jQuery\d+$/; 113 | $.each(elem.attributes, function(i, attr) { 114 | if (attr.specified && !rinlinejQuery.test(attr.name)) { 115 | newAttrs[attr.name] = attr.value; 116 | } 117 | }); 118 | return newAttrs; 119 | } 120 | 121 | function clearPlaceholder(event, value) { 122 | var input = this; 123 | var $input = $(input); 124 | if (input.value == $input.attr('placeholder') && $input.hasClass('placeholder')) { 125 | if ($input.data('placeholder-password')) { 126 | $input = $input.hide().next().show().attr('id', $input.removeAttr('id').data('placeholder-id')); 127 | // If `clearPlaceholder` was called from `$.valHooks.input.set` 128 | if (event === true) { 129 | return $input[0].value = value; 130 | } 131 | $input.focus(); 132 | } else { 133 | input.value = ''; 134 | $input.removeClass('placeholder'); 135 | input == safeActiveElement() && input.select(); 136 | } 137 | } 138 | } 139 | 140 | function setPlaceholder() { 141 | var $replacement; 142 | var input = this; 143 | var $input = $(input); 144 | var id = this.id; 145 | if (input.value == '') { 146 | if (input.type == 'password') { 147 | if (!$input.data('placeholder-textinput')) { 148 | try { 149 | $replacement = $input.clone().attr({ 'type': 'text' }); 150 | } catch(e) { 151 | $replacement = $('').attr($.extend(args(this), { 'type': 'text' })); 152 | } 153 | $replacement 154 | .removeAttr('name') 155 | .data({ 156 | 'placeholder-password': $input, 157 | 'placeholder-id': id 158 | }) 159 | .bind('focus.placeholder', clearPlaceholder); 160 | $input 161 | .data({ 162 | 'placeholder-textinput': $replacement, 163 | 'placeholder-id': id 164 | }) 165 | .before($replacement); 166 | } 167 | $input = $input.removeAttr('id').hide().prev().attr('id', id).show(); 168 | // Note: `$input[0] != input` now! 169 | } 170 | $input.addClass('placeholder'); 171 | $input[0].value = $input.attr('placeholder'); 172 | } else { 173 | $input.removeClass('placeholder'); 174 | } 175 | } 176 | 177 | function safeActiveElement() { 178 | // Avoid IE9 `document.activeElement` of death 179 | // https://github.com/mathiasbynens/jquery-placeholder/pull/99 180 | try { 181 | return document.activeElement; 182 | } catch (err) {} 183 | } 184 | 185 | }(this, document, jQuery)); 186 | -------------------------------------------------------------------------------- /static/booking/less/booking.less: -------------------------------------------------------------------------------- 1 | @import '../font/font-awesome.css'; 2 | /* CSS for jquery.fancyform.js */ 3 | 4 | /*custom mixins */ 5 | .customStyle(){ 6 | .box-shadow(inset 0px 0px 10px 0px rgba(0, 0, 0, 0.2)); 7 | .box-sizing(border-box); 8 | .border-radius(4px); 9 | border: 1px #ccc solid; 10 | color: #000; 11 | background: #fff; 12 | &:focus{ 13 | background: #fff; 14 | } 15 | } 16 | .buttonStyle(){ 17 | .box-shadow(0px 0px 5px 0px rgba(0, 0, 0, 0.2)); 18 | .border-radius(4px); 19 | padding: 6px 15px; 20 | border: 1px #ccc solid; 21 | background: #f5f5f5; 22 | color: #000; 23 | font-weight: normal; 24 | &:hover { 25 | background: #efefef; 26 | } 27 | } 28 | .customFont(){ 29 | font: 12px/18px Arial, sans-serif; 30 | } 31 | .fontAwesome(){ 32 | font: normal normal 18px 'FontAwesome'; 33 | color: #ccc; 34 | } 35 | /*end custom mixins */ 36 | /* Control Holder */ 37 | #bookingForm { 38 | position: relative; 39 | width: 100%; 40 | margin: 30px 0; 41 | .customFont(); 42 | input, 43 | textarea{ 44 | outline: none; 45 | .customStyle(); 46 | padding: 8px 10px; 47 | line-height: 15px; 48 | .size(34px,100%); 49 | } 50 | textarea { 51 | min-height: 200px; 52 | resize: none; 53 | .customFont(); 54 | } 55 | a.btn{ 56 | .buttonStyle(); 57 | } 58 | } 59 | .controlHolder{ 60 | position: relative; 61 | margin-bottom: 10px; 62 | } 63 | /* Messages */ 64 | .error-message{ 65 | position: absolute; 66 | top: 4px; 67 | right: 2px; 68 | font-weight: normal; 69 | text-align: right; 70 | width: 100%; 71 | font-size: 10px; 72 | line-height: 1em; 73 | color: gray; 74 | z-index: 4; 75 | color: #fe5353; 76 | } 77 | .success-message{ 78 | position: relative; 79 | text-align: left; 80 | color: gray; 81 | margin: 5px 0px; 82 | color: #28a1fe; 83 | } 84 | /* transformSelect CSS */ 85 | /* 1st type of select */ 86 | .tmSelect, .tmSelect2 { 87 | clear: both; 88 | width: 100%; 89 | margin: 0px; 90 | li{ 91 | position: relative; 92 | list-style: none; 93 | } 94 | span, input[type=text] { 95 | position: relative; 96 | cursor: pointer; 97 | display: block; 98 | left: 0; 99 | top: 0; 100 | margin: 0; 101 | } 102 | &:after{ 103 | content: '\f002'; 104 | position: absolute; 105 | top: 8px; 106 | right: 9px; 107 | .fontAwesome(); 108 | z-index: 4; 109 | } 110 | &.auto{ 111 | cursor: pointer; 112 | span { 113 | background: transparent; 114 | } 115 | padding: 0; 116 | margin: 0 0 20px 0; 117 | line-height: 20px; 118 | .customStyle(); 119 | .customFont(); 120 | .box-sizing(border-box); 121 | ul{ 122 | margin: 1px 0 0; 123 | .box-sizing(border-box); 124 | width: 100%; 125 | background: #f9f9f9; 126 | } 127 | >li{ 128 | &:first-child>span{ 129 | padding: 7px 12px; 130 | width: 100%; 131 | .box-sizing(border-box); 132 | } 133 | } 134 | } 135 | ul, .transformSelectDropdown{ 136 | position: absolute; 137 | width: 100%; 138 | max-height: 210px; 139 | padding: 7px 0px; 140 | margin: 0px; 141 | .customStyle(); 142 | .customFont(); 143 | border-top: none; 144 | border-top-left-radius: 0px; 145 | border-top-right-radius: 0px; 146 | .box-sizing(border-box); 147 | box-shadow: none; 148 | background: #f9f9f9; 149 | z-index: 10; 150 | span { 151 | border: 0; 152 | color: #000; 153 | padding: 5px 13px; 154 | &:hover{ 155 | background: #ccc; 156 | } 157 | } 158 | } 159 | ul li input[type=checkbox] { 160 | position: relative; 161 | top: 2px; 162 | margin: 0 5px 0 0; 163 | cursor: pointer; 164 | } 165 | } 166 | /* 2nd type of select */ 167 | .tmSelect2{ 168 | &:after{ 169 | content: '\f0ab'; 170 | } 171 | } 172 | /* Radio */ 173 | .trans-element-radio{ 174 | display: inline-block; 175 | display: block; 176 | zoom: 1; 177 | width: 15px; 178 | height: 15px; 179 | cursor: pointer; 180 | } 181 | .tmRadio{ 182 | padding-left: 0; 183 | p{ 184 | padding-bottom: 0; 185 | margin-bottom: 0; 186 | } 187 | p{ 188 | padding-bottom: 0; 189 | margin-bottom: 3px; 190 | } 191 | input{ 192 | margin-right: 5px; 193 | } 194 | .unchecked, .checked{ 195 | position: relative; 196 | cursor: pointer; 197 | margin-right: 10px; 198 | &:after{ 199 | content: '\f10c'; 200 | position: relative; 201 | top: 2px; 202 | .fontAwesome(); 203 | } 204 | } 205 | .checked{ 206 | &:after{ 207 | content: '\f05d'; 208 | } 209 | } 210 | } 211 | /* Checkbox */ 212 | .trans-element-checkbox{ 213 | cursor: pointer; 214 | zoom: 1; 215 | span{ 216 | padding-left: 40px; 217 | } 218 | &.checked{ 219 | &:after{ 220 | content: '\f046'; 221 | } 222 | } 223 | &:after{ 224 | content: '\f096'; 225 | position: relative; 226 | display: inline-block; 227 | top: 2px; 228 | width: 17px; 229 | .fontAwesome(); 230 | } 231 | &.unchecked{ 232 | &:after{ 233 | content: '\f096'; 234 | } 235 | } 236 | } 237 | .tmCheckbox, .tmRadio{ 238 | margin-left: 0; 239 | padding-left: 0; 240 | padding: 0; 241 | span{ 242 | position: relative; 243 | margin-right: 10px; 244 | } 245 | } 246 | /* Datepicker */ 247 | .tmDatepicker{ 248 | position: relative; 249 | margin-bottom: 20px; 250 | &:after{ 251 | content: '\f073'; 252 | position: absolute; 253 | top: 7px; 254 | right: 9px; 255 | .fontAwesome(); 256 | z-index: 4; 257 | } 258 | } 259 | .ui-datepicker{ 260 | padding: 10px; 261 | width: 300px; 262 | font-size: 13px; 263 | display:none; 264 | z-index: 100 !important; 265 | .customStyle(); 266 | background: #f9f9f9; 267 | a{ 268 | color: #777; 269 | &:hover{ 270 | color: #000; 271 | text-decoration: none; 272 | } 273 | } 274 | } 275 | .ui-datepicker-prev, .ui-datepicker-next{ 276 | cursor: pointer; 277 | float: left; 278 | } 279 | .ui-datepicker-next{ 280 | float: right; 281 | } 282 | .ui-datepicker-title{ 283 | text-align: center; 284 | } 285 | .ui-datepicker-calendar{ 286 | margin: 10px 11px; 287 | td{ 288 | padding: 1px 10px; 289 | text-align: center; 290 | } 291 | .ui-datepicker-current-day, .ui-datepicker-today{ 292 | .buttonStyle(); 293 | padding: 3px; 294 | } 295 | .ui-datepicker-today{ 296 | border-color: #fff; 297 | } 298 | } 299 | button.ui-state-default{ 300 | border: none; 301 | padding: 3px 7px; 302 | .customFont(); 303 | .buttonStyle(); 304 | } 305 | .ui-datepicker-close{ 306 | float: right; 307 | } 308 | 309 | @import "mixins.less"; -------------------------------------------------------------------------------- /static/css/adipoli.css: -------------------------------------------------------------------------------- 1 | .adipoli-wrapper 2 | { 3 | margin:auto; 4 | position:absolute; 5 | left: 0; 6 | right: 0; 7 | top: 0; 8 | bottom: 0; 9 | display: inline-block; 10 | } 11 | .adipoli-wrapper>img 12 | { 13 | position: absolute; 14 | z-index: 1; 15 | } 16 | .adipoli-before 17 | { 18 | position: absolute; 19 | z-index: 5; 20 | } 21 | .adipoli-after 22 | { 23 | position: absolute; 24 | z-index: 10; 25 | } 26 | .adipoli-slice { 27 | display:block; 28 | position:absolute; 29 | z-index:15; 30 | height:100%; 31 | } 32 | .adipoli-box 33 | { 34 | display:block; 35 | position:absolute; 36 | z-index:15; 37 | } -------------------------------------------------------------------------------- /static/css/camera.css: -------------------------------------------------------------------------------- 1 | 2 | 3 | /************************** 4 | * 5 | * GENERAL 6 | * 7 | **************************/ 8 | 9 | 10 | .slider_wrapper { 11 | position: relative; 12 | text-align: left; 13 | } 14 | 15 | 16 | .camera_target_content { 17 | overflow: hidden !important; 18 | 19 | } 20 | 21 | .camera_wrap { 22 | display: none; 23 | position: relative; 24 | overflow: visible !important; 25 | z-index: 0; 26 | margin-bottom: 0 !important; 27 | } 28 | 29 | 30 | .camera_wrap img { 31 | max-width: 10000px; 32 | } 33 | 34 | .camera_fakehover { 35 | height: 100%; 36 | min-height: 60px; 37 | position: relative; 38 | width: 100%; 39 | } 40 | 41 | .camera_src { 42 | display: none; 43 | } 44 | .cameraCont, .cameraContents { 45 | height: 100%; 46 | position: relative; 47 | width: 100%; 48 | z-index: 1; 49 | } 50 | .cameraSlide { 51 | bottom: 0; 52 | left: 0; 53 | position: absolute; 54 | right: 0; 55 | top: 0; 56 | width: 100%; 57 | } 58 | .cameraContent { 59 | bottom: 0; 60 | display: none; 61 | left: 0; 62 | position: absolute; 63 | right: 0; 64 | top: 0; 65 | width: 100%; 66 | } 67 | .camera_target { 68 | bottom: 0; 69 | height: 100%; 70 | left: 0; 71 | overflow: hidden; 72 | position: absolute; 73 | right: 0; 74 | text-align: left; 75 | top: 0; 76 | width: 100%; 77 | z-index: 0; 78 | } 79 | .camera_overlayer { 80 | bottom: 0; 81 | height: 100%; 82 | left: 0; 83 | overflow: hidden; 84 | position: absolute; 85 | right: 0; 86 | top: 0; 87 | width: 100%; 88 | z-index: 0; 89 | } 90 | .camera_target_content { 91 | bottom: 0; 92 | left: 0; 93 | overflow: hidden; 94 | position: absolute; 95 | right: 0; 96 | top: 0; 97 | z-index: 2; 98 | } 99 | .camera_target_content .camera_link { 100 | background: url(../images/blank.gif); 101 | display: block; 102 | height: 100%; 103 | text-decoration: none; 104 | } 105 | .camera_loader { 106 | background: #fff url(../images/camera-loader.gif) no-repeat center; 107 | background: rgba(255, 255, 255, 0.9) url(../images/camera-loader.gif) no-repeat center; 108 | border: 1px solid #ffffff; 109 | border-radius: 18px; 110 | height: 36px; 111 | left: 50%; 112 | overflow: hidden; 113 | position: absolute; 114 | margin: -18px 0 0 -18px; 115 | top: 50%; 116 | width: 36px; 117 | z-index: 3; 118 | } 119 | 120 | .camera_nav_cont { 121 | height: 65px; 122 | overflow: hidden; 123 | position: absolute; 124 | right: 9px; 125 | top: 15px; 126 | width: 120px; 127 | z-index: 4; 128 | } 129 | .camerarelative { 130 | overflow: hidden; 131 | position: relative; 132 | } 133 | .imgFake { 134 | cursor: pointer; 135 | } 136 | .camera_commands > .camera_stop { 137 | display: none; 138 | } 139 | 140 | 141 | .slide_wrapper .camera_prev{ 142 | background: url(../images/prevnext_bg.png) 0 0 repeat; 143 | width: 70px; 144 | top: 0 !important; 145 | height: auto !important; 146 | bottom: 0; 147 | left: -80px; 148 | display: block; 149 | position: absolute; 150 | opacity: 1 !important; 151 | transition: 0.5s ease; 152 | -o-transition: 0.5s ease; 153 | -webkit-transition: 0.5s ease; 154 | } 155 | 156 | .slide_wrapper .camera_prev>span { 157 | background: url(../images/prev.png) center 0 no-repeat; 158 | top: 50%; 159 | 160 | margin-top: -10px; 161 | position: absolute; 162 | display: block; 163 | height: 20px; 164 | left: 0; 165 | right: 0; 166 | } 167 | 168 | .slide_wrapper .camera_next>span { 169 | background: url(../images/next.png) center 0 no-repeat; 170 | top: 50%; 171 | margin-top: -10px; 172 | position: absolute; 173 | display: block; 174 | left: 0; 175 | right: 0; 176 | height: 20px; 177 | } 178 | 179 | 180 | 181 | .slide_wrapper .camera_next { 182 | background: url(../images/prevnext_bg.png) 0 0 repeat; 183 | width: 70px; 184 | top: 0 !important; 185 | bottom: 0; 186 | height: auto !important; 187 | 188 | right: -80px; 189 | display: block; 190 | position: absolute; 191 | opacity: 1 !important; 192 | transition: 0.5s ease; 193 | -o-transition: 0.5s ease; 194 | -webkit-transition: 0.5s ease; 195 | } 196 | 197 | .camera_thumbs_cont { 198 | z-index: 900; 199 | position: absolute; 200 | bottom: 0; 201 | left: 0; 202 | right: 0; 203 | } 204 | 205 | 206 | .camera_thumbs_cont > div { 207 | float: left; 208 | width: 100%; 209 | 210 | } 211 | .camera_thumbs_cont ul { 212 | background: url(../images/thumb_bg.png) 0 0 repeat; 213 | overflow: hidden; 214 | position: relative; 215 | width: 100% !important; 216 | margin: 0 !important; 217 | margin-left: 0px !important; 218 | left: 0% !important; 219 | margin-top: 0px !important; 220 | text-align: center; 221 | padding: 10px 0 10px; 222 | } 223 | .camera_thumbs_cont ul li { 224 | background-color: transparent; 225 | display: inline-block; 226 | font-size: 0; 227 | line-height: 0; 228 | transition: 0.5s ease; 229 | -o-transition: 0.5s ease; 230 | -webkit-transition: 0.5s ease; 231 | } 232 | 233 | .camera_thumbs_cont ul li+li { 234 | margin-left: 11px !important; 235 | } 236 | .camera_thumbs_cont ul li > img { 237 | cursor: pointer; 238 | opacity: 1 !important; 239 | vertical-align:bottom; 240 | transition: 0.5s ease; 241 | -o-transition: 0.5s ease; 242 | -webkit-transition: 0.5s ease; 243 | } 244 | 245 | 246 | 247 | 248 | 249 | .camera_thumbs_cont ul li:hover, .camera_thumbs_cont ul li.cameracurrent { 250 | opacity: 0.5; 251 | } 252 | .camera_clear { 253 | display: block; 254 | clear: both; 255 | } 256 | .showIt { 257 | display: none; 258 | } 259 | .camera_clear { 260 | clear: both; 261 | display: block; 262 | height: 1px; 263 | margin: -1px 0 25px; 264 | position: relative; 265 | text-align: right; 266 | } 267 | 268 | 269 | 270 | .caption { 271 | 272 | position: absolute; 273 | text-align: center; 274 | font-size: 24px; 275 | line-height: 60px; 276 | left: 0; 277 | right: 0; 278 | top: 41%; 279 | color: #fff; 280 | -moz-box-sizing: border-box; 281 | -webkit-box-sizing: border-box; 282 | -o-box-sizing: border-box; 283 | box-sizing: border-box; 284 | } 285 | 286 | .caption .price span { 287 | display: block; 288 | font-size: 48px; 289 | line-height: 48px; 290 | margin-top: -4px; 291 | } 292 | 293 | .caption a { 294 | margin-top: 30px; 295 | font: 18px/20px 'Open Sans', sans-serif; 296 | color: #fff; 297 | border-radius: 20px; 298 | text-transform: uppercase; 299 | padding: 12px 46px 13px; 300 | box-shadow: 3px 3px 5px 3px #193c46; 301 | 302 | display: inline-block; 303 | background-color: #7ecefd; 304 | background: url(../images/capt_a.png) 0 0 repeat-x #c5302c; 305 | 306 | } 307 | 308 | .caption a:hover { 309 | color: #fff; 310 | background-color: #002141; 311 | background-position: 0 -100px; 312 | } 313 | 314 | /************************** 315 | * 316 | * COLORS & SKINS 317 | * 318 | **************************/ 319 | 320 | 321 | /* 322 | .camera_pag { 323 | display: block; 324 | position: absolute; 325 | left: 50%; 326 | margin-left: -40px; 327 | bottom: -34px; 328 | overflow: hidden; 329 | float: left; 330 | z-index: 999; 331 | text-align: left; 332 | 333 | } 334 | 335 | .camera_pag_ul { 336 | overflow: hidden; 337 | 338 | 339 | } 340 | 341 | .camera_pag ul li { 342 | float: left; 343 | } 344 | 345 | .camera_pag ul li+li { 346 | margin-left: 11px; 347 | } 348 | 349 | .camera_pag ul li span { 350 | background: url(../images/pagination.png) right 0 no-repeat; 351 | display: block; 352 | width: 20px; 353 | height: 20px; 354 | overflow: hidden; 355 | color: transparent; 356 | text-indent: -100px; 357 | 358 | } 359 | 360 | .camera_pag ul li:hover span, .camera_pag ul li.cameracurrent span { 361 | cursor: pointer; 362 | background-position: 0 0; 363 | }*/ 364 | 365 | 366 | .camera_prev, .camera_next { 367 | display: block; 368 | position: absolute; 369 | width: 69px; 370 | height: 61px; 371 | left: 0; 372 | color: #cdcdce; 373 | cursor: pointer; 374 | top: 50%; 375 | margin-top: -35px; 376 | z-index: 999; 377 | background: url(../images/prevnext.png) 0 0 no-repeat; 378 | opacity: 1 !important; 379 | transition: width 0.5s ease; 380 | -o-transition: width 0.5s ease; 381 | -webkit-transition: width 0.5s ease; 382 | 383 | } 384 | 385 | 386 | 387 | .camera_next { 388 | right: 0; 389 | left: auto; 390 | background-position: right bottom; 391 | } 392 | 393 | .camera_prev:hover { 394 | width: 75px; 395 | background-position: 0 bottom; 396 | } 397 | 398 | .camera_next:hover { 399 | width: 75px; 400 | background-position: right 0; 401 | } 402 | 403 | 404 | -------------------------------------------------------------------------------- /static/css/chat.css: -------------------------------------------------------------------------------- 1 | @import url("https://fonts.googleapis.com/css?family=Source+Sans+Pro&display=swap"); 2 | * { 3 | box-sizing: border-box; 4 | } 5 | body { 6 | margin: 0; 7 | padding: 0; 8 | min-height: 100vh; 9 | font-family: "Source Sans Pro", sans-serif; 10 | background-color: #ecf0f1; 11 | background-image: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23bdc3c7' fill-opacity='0.35'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E"); 12 | } 13 | .container { 14 | width: 100%; 15 | height: 100%; 16 | } 17 | .container .status { 18 | position: fixed; 19 | top: 0; 20 | width: 70%; 21 | margin-left: 50%; 22 | transform: translateX(-50%); 23 | background-color: #2ecc71; 24 | color: #fff; 25 | padding: 8px; 26 | border-radius: 3px; 27 | font-weight: 600; 28 | } 29 | .container .messages { 30 | background-color: #ecf0f1; 31 | background-image: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23bdc3c7' fill-opacity='0.35'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E"); 32 | max-width: 70%; 33 | margin: 1rem auto; 34 | display: flex; 35 | flex-direction: column; 36 | } 37 | .container .messages > div { 38 | padding: 8px 12px; 39 | border: 1px solid #c4c4c4; 40 | width: auto; 41 | margin: 8px; 42 | background-color: #fff; 43 | } 44 | .container .messages > div .username { 45 | font-size: 12px; 46 | color: #3498db; 47 | margin-bottom: 4px; 48 | font-weight: 600; 49 | } 50 | .container .messages > div:last-child { 51 | margin-bottom: 3rem; 52 | } 53 | .container .messages .received { 54 | align-self: flex-start; 55 | border-radius: 5px 8px 6px 0; 56 | } 57 | .container .messages .sent { 58 | align-self: flex-end; 59 | border-radius: 5px 0 6px 8px; 60 | } 61 | .container form { 62 | position: fixed; 63 | bottom: 2px; 64 | width: 70%; 65 | display: flex; 66 | margin-left: 50%; 67 | transform: translateX(-50%); 68 | } 69 | .container form input { 70 | width: calc(100% - 100px); 71 | outline: none; 72 | padding: 12px; 73 | border: 1px solid #747474; 74 | border-radius: 4px; 75 | margin-right: 2px; 76 | font-size: 16px; 77 | } 78 | .container form button { 79 | width: 100px; 80 | padding: 12px 18px; 81 | border: none; 82 | background-color: #2ecc71; 83 | color: #fff; 84 | font-size: 22px; 85 | outline: none; 86 | border-radius: 0 5px 5px 0; 87 | cursor: pointer; 88 | transition: 0.2s all; 89 | } 90 | .container form button:active { 91 | transform: scale(0.97); 92 | } 93 | .toast { 94 | display: none; 95 | position: absolute; 96 | padding: 12px 30px; 97 | background-color: #57606f; 98 | color: #fff; 99 | border-radius: 3px; 100 | font-size: 14px; 101 | cursor: pointer; 102 | z-index: 99; 103 | top: 22px; 104 | right: 12px; 105 | } 106 | .show-top { 107 | display: block; 108 | animation: animate-top 0.1s forwards; 109 | } 110 | @keyframes animate-top { 111 | to { 112 | transform: translateY(8px); 113 | } 114 | } 115 | @media screen and (max-width: 700px) { 116 | .container { 117 | width: 100%; 118 | } 119 | .container .messages { 120 | max-width: 100%; 121 | } 122 | .container form { 123 | width: 100%; 124 | margin-left: 0; 125 | transform: translateX(0); 126 | } 127 | .container .status { 128 | width: 100%; 129 | } 130 | } 131 | -------------------------------------------------------------------------------- /static/css/detail-group.css: -------------------------------------------------------------------------------- 1 | @import "compass"; 2 | 3 | .mod-directions { 4 | font-family: "Arial"; 5 | display: flex; 6 | flex-direction: column; 7 | justify-content: center; 8 | align-items: center; 9 | margin-top: 50px; 10 | } 11 | .mod-directions .mod-directions-form .mod-directions-form-row { 12 | overflow: hidden; 13 | margin-bottom: 24px; 14 | } 15 | .mod-directions .mod-directions-form .mod-directions-form-row .mod-directions-form-label { 16 | display: inline-block; 17 | vertical-align: middle; 18 | width: 150px; 19 | font-weight: bold; 20 | font-size: 13px; 21 | } 22 | .mod-directions .mod-directions-form .mod-directions-form-row .mod-directions-form-input-block { 23 | display: inline-block; 24 | vertical-align: middle; 25 | padding: 6px; 26 | background: white; 27 | border: 2px solid lightgray; 28 | font-size: 14px; 29 | color: #34495e; 30 | outline: 0; 31 | } 32 | .mod-directions .mod-directions-form .mod-directions-form-row .mod-directions-form-input-block:focus, .mod-directions .mod-directions-form .mod-directions-form-row .mod-directions-form-input-block:active { 33 | border-color: #1abc9c; 34 | } 35 | .mod-directions .mod-directions-form .mod-directions-form-row .mod-directions-form-submit { 36 | margin-left: 150px; 37 | background: #1abc9c; 38 | color: white; 39 | padding: 8px 15px; 40 | border: none; 41 | } 42 | 43 | 44 | #mod-directions-form-submit{ 45 | width: 100%; 46 | } -------------------------------------------------------------------------------- /static/css/form.css: -------------------------------------------------------------------------------- 1 | /****Form****/ 2 | 3 | #form { 4 | padding-top: 15px; 5 | } 6 | 7 | #form input { 8 | width: 100%; 9 | height: 31px; 10 | float:left; 11 | background: #fefefe; 12 | box-sizing: border-box; 13 | -webkit-appearance: none; 14 | -moz-box-sizing: border-box; /*Firefox 1-3*/ 15 | -webkit-box-sizing: border-box; /* Safari */ 16 | color: #878787; 17 | font: 14px/20px 'Open Sans', sans-serif; 18 | border: 1px solid #f0efef; 19 | padding: 5px 18px 7px; 20 | } 21 | 22 | 23 | #form textarea { 24 | width: 100%; 25 | height: 221px; 26 | background: #fefefe; 27 | position: relative; 28 | resize:none; 29 | overflow: hidden; 30 | box-sizing: border-box; 31 | -webkit-appearance: none; 32 | -moz-box-sizing: border-box; /*Firefox 1-3*/ 33 | -webkit-box-sizing: border-box; /* Safari */ 34 | float:left; 35 | margin: 0; 36 | color: #878787; 37 | font: 14px/20px 'Open Sans', sans-serif; 38 | border: 1px solid #f0efef; 39 | padding: 11px 18px 7px; 40 | } 41 | 42 | #form .message ._placeholder { 43 | padding-top: 22px; 44 | } 45 | 46 | 47 | 48 | #form ._placeholder { 49 | transition: 0.5s ease; 50 | -o-transition: 0.5s ease; 51 | -webkit-transition: 0.5s ease; 52 | color: #878787; 53 | font: 14px/20px 'Open Sans', sans-serif; 54 | border: 1px solid transparent; 55 | padding: 5px 28px 5px; 56 | height: 30px !important; 57 | width: 100% !important; 58 | box-sizing: border-box; 59 | -moz-box-sizing: border-box; /*Firefox 1-3*/ 60 | -webkit-box-sizing: border-box; /* Safari */ 61 | position: absolute; 62 | right: 0; 63 | top: 0; 64 | bottom: 0; 65 | left: 0; 66 | cursor: text !important; 67 | display: block; 68 | } 69 | 70 | #form ._placeholder.hidden { 71 | display: none; 72 | } 73 | 74 | #form ._placeholder.focused { 75 | opacity: 0.3; 76 | } 77 | 78 | 79 | #form .message ._placeholder { 80 | height: 100% !important; 81 | } 82 | #form label { 83 | position:relative; 84 | display: block; 85 | min-height: 40px; 86 | float: left; 87 | width: 170px; 88 | } 89 | 90 | 91 | #form label+label { 92 | margin-left: 30px; 93 | } 94 | 95 | 96 | #form label.message { 97 | width: 100%; 98 | position: relative; 99 | margin-left: 0; 100 | } 101 | 102 | 103 | 104 | 105 | #form .error-message, #form .empty-message { 106 | color: #E02A05; 107 | font-size: 11px; 108 | line-height:14px; 109 | width:auto; 110 | position: absolute; 111 | z-index: 999; 112 | bottom: -3px; 113 | opacity: 0; 114 | right: 5px; 115 | float:left; 116 | transition: 0.5s ease; 117 | -o-transition: 0.5s ease; 118 | -webkit-transition: 0.5s ease; 119 | } 120 | 121 | #form .message .error-message, #form .message .empty-message { 122 | bottom: -16px; 123 | } 124 | 125 | 126 | 127 | 128 | #form .invalid .error-message, #form .empty .empty-message { 129 | opacity: 1; 130 | } 131 | 132 | .btns { 133 | font-size: 0; 134 | line-height: 0; 135 | text-align: right; 136 | padding-top: 28px; 137 | } 138 | 139 | .btns a.btn { 140 | margin: 0; 141 | padding-left: 0; 142 | padding-right: 0; 143 | min-width: 85px; 144 | display: inline-block; 145 | text-align: center; 146 | 147 | } 148 | 149 | .btns a.btn+a.btn { 150 | margin-left: 8px; 151 | } 152 | 153 | 154 | 155 | 156 | 157 | 158 | .phone { 159 | position: relative; 160 | } 161 | 162 | 163 | 164 | .message br { 165 | height: 0; 166 | line-height: 0; 167 | } 168 | 169 | #form .success-message { 170 | display: none; 171 | opacity: 0; 172 | position: absolute; 173 | background: #fefefe; 174 | border: 1px solid #f0efef; 175 | width: 100%; 176 | height: 40px; 177 | text-align: center; 178 | padding: 9px 10px; 179 | z-index: 999; 180 | box-sizing: border-box; 181 | -moz-box-sizing: border-box; /*Firefox 1-3*/ 182 | -webkit-box-sizing: border-box; /* Safari */ 183 | transition: 0.5s ease; 184 | -o-transition: 0.5s ease; 185 | -webkit-transition: 0.5s ease; 186 | } 187 | 188 | #form.success .success-message { 189 | display: block; 190 | opacity: 1; 191 | } 192 | 193 | .success_wrapper { 194 | position: relative; 195 | } 196 | 197 | @media only screen and (max-width: 995px) { 198 | 199 | #form { 200 | } 201 | 202 | 203 | #form label { 204 | float: none !important; 205 | width: 100%; 206 | margin-left: 0 !important; 207 | } 208 | 209 | #form input { 210 | margin-bottom: 10px; 211 | } 212 | 213 | 214 | #form .success-message { 215 | width: 100%; 216 | } 217 | 218 | .btns { 219 | padding-right: 0; 220 | } 221 | 222 | #form label.email { 223 | width: 100%; 224 | margin: 0; 225 | } 226 | 227 | .map figure { 228 | float: left !important; 229 | margin-right: 0px !important; 230 | } 231 | 232 | 233 | } 234 | 235 | @media only screen and (max-width: 767px) { 236 | 237 | 238 | .map figure { 239 | width: 100% !important; 240 | float: none !important; 241 | display: block !important; 242 | margin-right: 0px !important; 243 | } 244 | .btns { 245 | padding-bottom: 0; 246 | } 247 | 248 | #form textarea { 249 | height: 300px !important; 250 | } 251 | 252 | #form { 253 | padding-right: 0; 254 | } 255 | 256 | } 257 | @media only screen and (max-width: 479px) { 258 | 259 | #form textarea { 260 | height: 200px !important; 261 | } 262 | } -------------------------------------------------------------------------------- /static/css/grid.css: -------------------------------------------------------------------------------- 1 | /* 2 | Variable Grid System. 3 | Learn more ~ http://www.spry-soft.com/grids/ 4 | Based on 960 Grid System - http://960.gs/ 5 | 6 | Licensed under GPL and MIT. 7 | */ 8 | 9 | /* 10 | Forces backgrounds to span full width, 11 | even if there is horizontal scrolling. 12 | Increase this if your layout is wider. 13 | 14 | Note: IE6 works fine without this fix. 15 | */ 16 | 17 | body { 18 | min-width: 1200px; 19 | } 20 | 21 | /* Containers 22 | ----------------------------------------------------------------------------------------------------*/ 23 | .container_12 { 24 | margin-left: auto; 25 | margin-right: auto; 26 | width: 1200px; 27 | } 28 | 29 | /* Grid >> Global 30 | ----------------------------------------------------------------------------------------------------*/ 31 | 32 | 33 | .grid_1, 34 | .grid_2, 35 | .grid_3, 36 | .grid_4, 37 | .grid_5, 38 | .grid_6, 39 | .grid_7, 40 | .grid_8, 41 | .grid_9, 42 | .grid_10, 43 | .grid_11, 44 | .grid_12 { 45 | display:inline; 46 | float: left; 47 | position: relative; 48 | margin-left: 15px; 49 | margin-right: 15px; 50 | } 51 | 52 | 53 | 54 | .push_1, .pull_1, 55 | .push_2, .pull_2, 56 | .push_3, .pull_3, 57 | .push_4, .pull_4, 58 | .push_5, .pull_5, 59 | .push_6, .pull_6, 60 | .push_7, .pull_7, 61 | .push_8, .pull_8, 62 | .push_9, .pull_9, 63 | .push_10, .pull_10, 64 | .push_11, .pull_11, 65 | .push_12, .pull_12 { 66 | position:relative; 67 | } 68 | 69 | 70 | /* Grid >> Children (Alpha ~ First, Omega ~ Last) 71 | ----------------------------------------------------------------------------------------------------*/ 72 | 73 | .alpha { 74 | margin-left: 0; 75 | } 76 | 77 | .omega { 78 | margin-right: 0; 79 | } 80 | 81 | /* Grid >> 12 Columns 82 | ----------------------------------------------------------------------------------------------------*/ 83 | 84 | 85 | .container_12 .grid_1 { 86 | width:70px; 87 | } 88 | 89 | .container_12 .grid_2 { 90 | width:170px; 91 | } 92 | 93 | .container_12 .grid_3 { 94 | width:270px; 95 | } 96 | 97 | .container_12 .grid_4 { 98 | width:370px; 99 | } 100 | 101 | .container_12 .grid_5 { 102 | width:470px; 103 | } 104 | 105 | .container_12 .grid_6 { 106 | width:570px; 107 | } 108 | 109 | .container_12 .grid_7 { 110 | width:670px; 111 | } 112 | 113 | .container_12 .grid_8 { 114 | width:770px; 115 | } 116 | 117 | .container_12 .grid_9 { 118 | width:870px; 119 | } 120 | 121 | .container_12 .grid_10 { 122 | width:970px; 123 | } 124 | 125 | .container_12 .grid_11 { 126 | width:1070px; 127 | } 128 | 129 | .container_12 .grid_12 { 130 | width:1170px; 131 | } 132 | 133 | 134 | 135 | 136 | /* Prefix Extra Space >> 12 Columns 137 | ----------------------------------------------------------------------------------------------------*/ 138 | 139 | 140 | .container_12 .prefix_1 { 141 | padding-left:100px; 142 | } 143 | 144 | .container_12 .prefix_2 { 145 | padding-left:200px; 146 | } 147 | 148 | .container_12 .prefix_3 { 149 | padding-left:300px; 150 | } 151 | 152 | .container_12 .prefix_4 { 153 | padding-left:400px; 154 | } 155 | 156 | .container_12 .prefix_5 { 157 | padding-left:500px; 158 | } 159 | 160 | .container_12 .prefix_6 { 161 | padding-left:600px; 162 | } 163 | 164 | .container_12 .prefix_7 { 165 | padding-left:700px; 166 | } 167 | 168 | .container_12 .prefix_8 { 169 | padding-left:800px; 170 | } 171 | 172 | .container_12 .prefix_9 { 173 | padding-left:900px; 174 | } 175 | 176 | .container_12 .prefix_10 { 177 | padding-left:1000px; 178 | } 179 | 180 | .container_12 .prefix_11 { 181 | padding-left:1100px; 182 | } 183 | 184 | 185 | 186 | /* Suffix Extra Space >> 12 Columns 187 | ----------------------------------------------------------------------------------------------------*/ 188 | 189 | 190 | .container_12 .suffix_1 { 191 | padding-right:100px; 192 | } 193 | 194 | .container_12 .suffix_2 { 195 | padding-right:200px; 196 | } 197 | 198 | .container_12 .suffix_3 { 199 | padding-right:300px; 200 | } 201 | 202 | .container_12 .suffix_4 { 203 | padding-right:400px; 204 | } 205 | 206 | .container_12 .suffix_5 { 207 | padding-right:500px; 208 | } 209 | 210 | .container_12 .suffix_6 { 211 | padding-right:600px; 212 | } 213 | 214 | .container_12 .suffix_7 { 215 | padding-right:700px; 216 | } 217 | 218 | .container_12 .suffix_8 { 219 | padding-right:800px; 220 | } 221 | 222 | .container_12 .suffix_9 { 223 | padding-right:900px; 224 | } 225 | 226 | .container_12 .suffix_10 { 227 | padding-right:1000px; 228 | } 229 | 230 | .container_12 .suffix_11 { 231 | padding-right:1100px; 232 | } 233 | 234 | 235 | 236 | /* Push Space >> 12 Columns 237 | ----------------------------------------------------------------------------------------------------*/ 238 | 239 | 240 | .container_12 .push_1 { 241 | left:100px; 242 | } 243 | 244 | .container_12 .push_2 { 245 | left:200px; 246 | } 247 | 248 | .container_12 .push_3 { 249 | left:300px; 250 | } 251 | 252 | .container_12 .push_4 { 253 | left:400px; 254 | } 255 | 256 | .container_12 .push_5 { 257 | left:500px; 258 | } 259 | 260 | .container_12 .push_6 { 261 | left:600px; 262 | } 263 | 264 | .container_12 .push_7 { 265 | left:700px; 266 | } 267 | 268 | .container_12 .push_8 { 269 | left:800px; 270 | } 271 | 272 | .container_12 .push_9 { 273 | left:900px; 274 | } 275 | 276 | .container_12 .push_10 { 277 | left:1000px; 278 | } 279 | 280 | .container_12 .push_11 { 281 | left:1100px; 282 | } 283 | 284 | 285 | 286 | /* Pull Space >> 12 Columns 287 | ----------------------------------------------------------------------------------------------------*/ 288 | 289 | 290 | .container_12 .pull_1 { 291 | left:-100px; 292 | } 293 | 294 | .container_12 .pull_2 { 295 | left:-200px; 296 | } 297 | 298 | .container_12 .pull_3 { 299 | left:-300px; 300 | } 301 | 302 | .container_12 .pull_4 { 303 | left:-400px; 304 | } 305 | 306 | .container_12 .pull_5 { 307 | left:-500px; 308 | } 309 | 310 | .container_12 .pull_6 { 311 | left:-600px; 312 | } 313 | 314 | .container_12 .pull_7 { 315 | left:-700px; 316 | } 317 | 318 | .container_12 .pull_8 { 319 | left:-800px; 320 | } 321 | 322 | .container_12 .pull_9 { 323 | left:-900px; 324 | } 325 | 326 | .container_12 .pull_10 { 327 | left:-1000px; 328 | } 329 | 330 | .container_12 .pull_11 { 331 | left:-1100px; 332 | } 333 | 334 | 335 | 336 | 337 | /* `Clear Floated Elements 338 | ----------------------------------------------------------------------------------------------------*/ 339 | 340 | 341 | 342 | /* http://www.yuiblog.com/blog/2010/09/27/clearfix-reloaded-overflowhidden-demystified */ 343 | 344 | .clearfix:before, 345 | .clearfix:after { 346 | content: '\0020'; 347 | display: block; 348 | overflow: hidden; 349 | visibility: hidden; 350 | width: 0; 351 | height: 0; 352 | } 353 | 354 | .clearfix:after { 355 | clear: both; 356 | } 357 | 358 | /* 359 | The following zoom:1 rule is specifically for IE6 + IE7. 360 | Move to separate stylesheet if invalid CSS is a problem. 361 | */ 362 | 363 | .clearfix { 364 | zoom: 1; 365 | } -------------------------------------------------------------------------------- /static/css/ie.css: -------------------------------------------------------------------------------- 1 | 2 | .socials a { 3 | behavior: url(js/PIE.htc); 4 | position: relative; 5 | } 6 | 7 | 8 | .clear.height1 { 9 | height: 33px !important; 10 | } 11 | 12 | .socials a { 13 | margin-right: 9px; 14 | } 15 | 16 | 17 | #form .invalid .error-message, #form .empty .empty-message { 18 | display: block; 19 | } 20 | 21 | #form .error-message, #form .empty-message { 22 | display: none; 23 | } 24 | 25 | a.gal:hover img { 26 | filter:progid:DXImageTransform.Microsoft.Alpha(opacity=20); 27 | 28 | } -------------------------------------------------------------------------------- /static/css/owl.carousel.css: -------------------------------------------------------------------------------- 1 | #owl { 2 | overflow: hidden; 3 | z-index: 1; 4 | position: relative; 5 | padding-top: 80px; 6 | margin: -41px -10px 0; 7 | } 8 | 9 | 10 | 11 | #owl .owl-item { 12 | float: left; 13 | width: 100%; 14 | } 15 | 16 | #owl .item { 17 | padding: 0 10px; 18 | position: relative; 19 | text-align: left; 20 | } 21 | 22 | #owl .item .clear { 23 | height: 10px; 24 | } 25 | 26 | #owl .item .text1 { 27 | margin-bottom: 4px; 28 | } 29 | 30 | .owl-wrapper-outer { 31 | overflow: hidden; 32 | } 33 | 34 | 35 | #owl .owl-prev, #owl .owl-next { 36 | cursor: pointer; 37 | position: absolute; 38 | background: url(../images/prevnext.png) 0 0 no-repeat; 39 | display: block; 40 | height: 25px; 41 | right: 38px; 42 | top: 0; 43 | width: 17px; 44 | overflow: hidden; 45 | text-indent: -999px; 46 | 47 | } 48 | 49 | #owl .owl-next { 50 | right: 10px; 51 | background-position: right bottom; 52 | 53 | } 54 | #owl .owl-next:hover { 55 | background-position: right 0; 56 | } 57 | 58 | 59 | 60 | #owl .owl-prev:hover { 61 | background-position: 0 bottom; 62 | } 63 | 64 | 65 | 66 | 67 | 68 | /* Owl content */ 69 | 70 | 71 | 72 | .owl-carousel .owl-wrapper{ 73 | display: none; 74 | position: relative; 75 | -webkit-transform: translate3d(0px, 0px, 0px); 76 | -webkit-perspective: 1000; 77 | } 78 | 79 | 80 | /*2nd*/ 81 | #owl1 { 82 | overflow: hidden; 83 | z-index: 1; 84 | position: relative; 85 | padding-top: 97px; 86 | margin: -53px -10px 0; 87 | } 88 | 89 | 90 | #owl1 .owl-item { 91 | float: left; 92 | width: 100%; 93 | } 94 | 95 | #owl1 .item { 96 | padding: 0 10px; 97 | position: relative; 98 | text-align: left; 99 | } 100 | 101 | #owl1 .item .count { 102 | background: url(../images/count_icon.png) 0 0 no-repeat; 103 | width: 60px; 104 | height: 66px; 105 | float: left; 106 | margin-right: 20px; 107 | text-align: center; 108 | color: #3498db; 109 | font: 30px/82px 'Bitter', serif; 110 | } 111 | 112 | #owl1 .item .text1 { 113 | padding-top: 11px; 114 | color: #3498db; 115 | } 116 | 117 | #owl1 .item .text1 .col2 { 118 | display: block; 119 | line-height: 15px; 120 | font-size: 15px; 121 | padding-top: 3px; 122 | } 123 | 124 | #owl1 .item .clear { 125 | height: 21px; 126 | } 127 | 128 | .owl-wrapper-outer { 129 | overflow: hidden; 130 | } 131 | 132 | #owl1 .owl-prev, #owl1 .owl-next { 133 | cursor: pointer; 134 | position: absolute; 135 | background: url(../images/prevnext.png) 0 0 no-repeat; 136 | display: block; 137 | height: 25px; 138 | right: 38px; 139 | top: 0; 140 | width: 17px; 141 | overflow: hidden; 142 | text-indent: -999px; 143 | 144 | } 145 | 146 | #owl1 .owl-next { 147 | right: 10px; 148 | background-position: right bottom; 149 | 150 | } 151 | #owl1 .owl-next:hover { 152 | background-position: right 0; 153 | } 154 | 155 | 156 | 157 | #owl1 .owl-prev:hover { 158 | background-position: 0 bottom; 159 | } 160 | -------------------------------------------------------------------------------- /static/css/reset.css: -------------------------------------------------------------------------------- 1 | a,abbr,acronym,address,applet,article,aside,audio,b,blockquote,big,body,center,canvas,caption,cite,code,command,datalist,dd,del,details,dfn,dl,div,dt,em,embed,fieldset,figcaption,figure,font,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,keygen,label,legend,li,meter,nav,object,ol,output,p,pre,progress,q,s,samp,section,small,span,source,strike,strong,sub,sup,table,tbody,tfoot,thead,th,tr,tdvideo,tt,u,ul,var{background:transparent;border:0 none;font-size:100%;margin:0;padding:0;border:0;outline:0;vertical-align:top;}ol, ul {list-style:none;}blockquote, q {quotes:none;}table, table td {padding:0;border:none;border-collapse:collapse;}img {vertical-align:top;}embed {vertical-align:top;}input[type=text], textarea{ outline:none;border-radius:0;} -------------------------------------------------------------------------------- /static/css/skeleton.css: -------------------------------------------------------------------------------- 1 | /* 2 | * Skeleton V1.1 3 | * Copyright 2011, Dave Gamache 4 | * www.getskeleton.com 5 | * Free to use under the MIT license. 6 | * http://www.opensource.org/licenses/mit-license.php 7 | * 8/17/2011 8 | */ 9 | 10 | 11 | /* Table of Contents 12 | ================================================== 13 | #Base 960 Grid 14 | #Tablet (Portrait) 15 | #Mobile (Portrait) 16 | #Mobile (Landscape) 17 | #Clearing */ 18 | 19 | 20 | 21 | /* #Base 960 Grid 22 | ================================================== */ 23 | 24 | .container_12{ position: relative; width: 960px; margin: 0 auto; padding: 0; } 25 | .grid_1, 26 | .grid_2, 27 | .grid_3, 28 | .grid_4, 29 | .grid_5, 30 | .grid_6, 31 | .grid_7, 32 | .grid_8, 33 | .grid_9, 34 | .grid_10, 35 | .grid_11, 36 | .grid_12 37 | { float: left; display: inline; margin-left: 10px; margin-right: 10px; } 38 | 39 | /* Nested Column Classes */ 40 | .container_12 .alpha { margin-left: 0; } 41 | .container_12 .omega { margin-right: 0; } 42 | 43 | /* Base Grid */ 44 | .container_12 .grid_1 { width: 60px; } 45 | .container_12 .grid_2 { width: 140px; } 46 | .container_12 .grid_3 { width: 220px; } 47 | .container_12 .grid_4 { width: 300px; } 48 | .container_12 .grid_5 { width: 380px; } 49 | .container_12 .grid_6 { width: 460px; } 50 | .container_12 .grid_7 { width: 540px; } 51 | .container_12 .grid_8 { width: 620px; } 52 | .container_12 .grid_9 { width: 700px; } 53 | .container_12 .grid_10 { width: 780px; } 54 | .container_12 .grid_11 { width: 860px; } 55 | .container_12 .grid_12 { width: 940px; } 56 | /* Prefix Extra Space >> 12 Columns */ 57 | .container_12 .prefix_1 {padding-left:80px;} 58 | .container_12 .prefix_2 {padding-left:160px;} 59 | .container_12 .prefix_3 {padding-left:240px;} 60 | .container_12 .prefix_4 {padding-left:320px;} 61 | .container_12 .prefix_5 {padding-left:400px;} 62 | .container_12 .prefix_6 {padding-left:480px;} 63 | .container_12 .prefix_7 {padding-left:560px;} 64 | .container_12 .prefix_8 {padding-left:640px;} 65 | .container_12 .prefix_9 {padding-left:720px;} 66 | .container_12 .prefix_10 {padding-left:800px;} 67 | .container_12 .prefix_11 {padding-left:880px;} 68 | /* Suffix Extra Space >> 12 Columns */ 69 | .container_12 .suffix_1 {padding-right:80px;} 70 | .container_12 .suffix_2 {padding-right:160px;} 71 | .container_12 .suffix_3 {padding-right:240px;} 72 | .container_12 .suffix_4 {padding-right:320px;} 73 | .container_12 .suffix_5 {padding-right:400px;} 74 | .container_12 .suffix_6 {padding-right:480px;} 75 | .container_12 .suffix_7 {padding-right:560px;} 76 | .container_12 .suffix_8 {padding-right:640px;} 77 | .container_12 .suffix_9 {padding-right:720px;} 78 | .container_12 .suffix_10 {padding-right:800px;} 79 | .container_12 .suffix_11 {padding-right:880px;} 80 | 81 | /* #Tablet (Portrait) 82 | ================================================== */ 83 | 84 | /* Note: Design for a width of 768px */ 85 | 86 | @media only screen and (min-width: 768px) and (max-width: 995px) { 87 | .container_12 { width: 768px; } 88 | .grid_1, 89 | .grid_2, 90 | .grid_3, 91 | .grid_4, 92 | .grid_5, 93 | .grid_6, 94 | .grid_7, 95 | .grid_8, 96 | .grid_9, 97 | .grid_10, 98 | .grid_11, 99 | .grid_12 100 | { margin-left: 10px; margin-right: 10px; } 101 | .container_12 .alpha { margin-left: 0;} 102 | .container_12 .omega { margin-right: 0;} 103 | 104 | .container_12 .grid_1 { width: 44px; } 105 | .container_12 .grid_2 { width: 108px; } 106 | .container_12 .grid_3 { width: 172px; } 107 | .container_12 .grid_4 { width: 236px; } 108 | .container_12 .grid_5 { width: 300px; } 109 | .container_12 .grid_6 { width: 364px; } 110 | .container_12 .grid_7 { width: 428px; } 111 | .container_12 .grid_8 { width: 492px; } 112 | .container_12 .grid_9 { width: 556px; } 113 | .container_12 .grid_10 { width: 620px; } 114 | .container_12 .grid_11 { width: 684px; } 115 | .container_12 .grid_12 { width: 748px; } 116 | /* Prefix Extra Space >> 12 Columns */ 117 | .container_12 .prefix_1 {padding-left:64px;} 118 | .container_12 .prefix_2 {padding-left:128px;} 119 | .container_12 .prefix_3 {padding-left:192px;} 120 | .container_12 .prefix_4 {padding-left:256px;} 121 | .container_12 .prefix_5 {padding-left:320px;} 122 | .container_12 .prefix_6 {padding-left:384px;} 123 | .container_12 .prefix_7 {padding-left:448px;} 124 | .container_12 .prefix_8 {padding-left:512px;} 125 | .container_12 .prefix_9 {padding-left:576px;} 126 | .container_12 .prefix_10 {padding-left:640px;} 127 | .container_12 .prefix_11 {padding-left:768px;} 128 | /* Suffix Extra Space >> 12 Columns */ 129 | .container_12 .suffix_1 {padding-right:64px;} 130 | .container_12 .suffix_2 {padding-right:128px;} 131 | .container_12 .suffix_3 {padding-right:192px;} 132 | .container_12 .suffix_4 {padding-right:256px;} 133 | .container_12 .suffix_5 {padding-right:320px;} 134 | .container_12 .suffix_6 {padding-right:384px;} 135 | .container_12 .suffix_7 {padding-right:448px;} 136 | .container_12 .suffix_8 {padding-right:512px;} 137 | .container_12 .suffix_9 {padding-right:576px;} 138 | .container_12 .suffix_10 {padding-right:640px;} 139 | .container_12 .suffix_11 {padding-right:768px;} 140 | } 141 | 142 | 143 | /* #Mobile (Portrait) 144 | ================================================== */ 145 | 146 | /* Note: Design for a width of 320px */ 147 | 148 | @media only screen and (max-width: 767px) { 149 | .container_12{width: 300px;} 150 | .grid_1, 151 | .grid_2, 152 | .grid_3, 153 | .grid_4, 154 | .grid_5, 155 | .grid_6, 156 | .grid_7, 157 | .grid_8, 158 | .grid_9, 159 | .grid_10, 160 | .grid_11, 161 | .grid_12{margin: 0;} 162 | 163 | .container_12 .grid_1, 164 | .container_12 .grid_2, 165 | .container_12 .grid_3, 166 | .container_12 .grid_4, 167 | .container_12 .grid_5, 168 | .container_12 .grid_6, 169 | .container_12 .grid_7, 170 | .container_12 .grid_8, 171 | .container_12 .grid_9, 172 | .container_12 .grid_10, 173 | .container_12 .grid_11, 174 | .container_12 .grid_12{width: 300px;} 175 | /* Prefix Extra Space >> 12 Columns */ 176 | .container_12 .prefix_1, 177 | .container_12 .prefix_2, 178 | .container_12 .prefix_3, 179 | .container_12 .prefix_4, 180 | .container_12 .prefix_5, 181 | .container_12 .prefix_6, 182 | .container_12 .prefix_7, 183 | .container_12 .prefix_8, 184 | .container_12 .prefix_9, 185 | .container_12 .prefix_10, 186 | .container_12 .prefix_11{padding-left:0;} 187 | /* Suffix Extra Space >> 12 Columns */ 188 | .container_12 .suffix_1, 189 | .container_12 .suffix_2, 190 | .container_12 .suffix_3, 191 | .container_12 .suffix_4, 192 | .container_12 .suffix_5, 193 | .container_12 .suffix_6, 194 | .container_12 .suffix_7, 195 | .container_12 .suffix_8, 196 | .container_12 .suffix_9, 197 | .container_12 .suffix_10, 198 | .container_12 .suffix_11{padding-right:0;} 199 | } 200 | 201 | 202 | /* #Mobile (Landscape) 203 | ================================================== */ 204 | 205 | /* Note: Design for a width of 480px */ 206 | 207 | @media only screen and (min-width: 480px) and (max-width: 767px) { 208 | .container_12 { width: 420px; } 209 | .grid_1, 210 | .grid_2, 211 | .grid_3, 212 | .grid_4, 213 | .grid_5, 214 | .grid_6, 215 | .grid_7, 216 | .grid_8, 217 | .grid_9, 218 | .grid_10, 219 | .grid_11, 220 | .grid_12{margin: 0;} 221 | 222 | .container_12 .grid_1, 223 | .container_12 .grid_2, 224 | .container_12 .grid_3, 225 | .container_12 .grid_4, 226 | .container_12 .grid_5, 227 | .container_12 .grid_6, 228 | .container_12 .grid_7, 229 | .container_12 .grid_8, 230 | .container_12 .grid_9, 231 | .container_12 .grid_10, 232 | .container_12 .grid_11, 233 | .container_12 .grid_12{width: 420px;} 234 | /* Prefix Extra Space >> 12 Columns */ 235 | .container_12 .prefix_1, 236 | .container_12 .prefix_2, 237 | .container_12 .prefix_3, 238 | .container_12 .prefix_4, 239 | .container_12 .prefix_5, 240 | .container_12 .prefix_6, 241 | .container_12 .prefix_7, 242 | .container_12 .prefix_8, 243 | .container_12 .prefix_9, 244 | .container_12 .prefix_10, 245 | .container_12 .prefix_11{padding-left:0;} 246 | /* Suffix Extra Space >> 12 Columns */ 247 | .container_12 .suffix_1, 248 | .container_12 .suffix_2, 249 | .container_12 .suffix_3, 250 | .container_12 .suffix_4, 251 | .container_12 .suffix_5, 252 | .container_12 .suffix_6, 253 | .container_12 .suffix_7, 254 | .container_12 .suffix_8, 255 | .container_12 .suffix_9, 256 | .container_12 .suffix_10, 257 | .container_12 .suffix_11{padding-right:0;} 258 | } 259 | 260 | 261 | /* #Clearing 262 | ================================================== */ 263 | 264 | /* Self Clearing Goodness */ 265 | .container_12:after { content: "\0020"; display: block; height: 0; clear: both; visibility: hidden; } 266 | 267 | /* Use clearfix class on parent to clear nested columns, 268 | or wrap each row of columns in a