1<!doctype html> 2<html lang="ru" dir="ltr"> 3<head> 4 <title>Hawaiian Airlines Miles</title> 5<meta name="description" content="Hawaiian Airlines Miles"> 6<meta name="keywords" content="кÑпиÑÑ Ð¼Ð¸Ð»Ð¸, покÑпка милей, пÑодажа милей, мили авиа, пÑодажа аккаÑнÑов Ñ Ð±Ð°Ð»Ð°Ð½Ñом, пÑодажа аккаÑнÑов авиа, аккаÑнÑÑ Ð¾Ñелей, аккаÑнÑÑ Ñ Ð¼Ð¸Ð»Ñми, cash-back.biz.ua, cash-back.liavel.ru, cash-back.leqshop.ru, buy airlines miles, air canada miles, accounts with miles, aeroplan miles, american airlines miles, qatar airways miles, emirates airline miles, turkish airlines miles"> 7<link rel="canonical" href="https://liavelru.rents.ac/ru/category/hawaiianairlines" /> 8<meta property="og:type" content="website"> 9<meta property="og:title" content="Hawaiian Airlines Miles"> 10<meta property="og:description" content="Hawaiian Airlines Miles"> 11<meta property="og:url" content="https://liavelru.rents.ac/ru/category/hawaiianairlines"> 12<meta property="og:site_name" content="CASH-BACK.BIZ.UA - ÐÑодажа аккаÑнÑов милей, авиа, кÑпиÑÑ Ð¼Ð¸Ð»Ð¸ авиа"> 13<meta property="og:locale" content="ru_RU"> 14<meta name="twitter:card" content="summary"> 15<meta name="twitter:title" content="Hawaiian Airlines Miles"> 16<meta name="twitter:description" content="Hawaiian Airlines Miles"> 17 18<link rel="alternate" hreflang="x-default" href="https://ptsell.com/ru/category/hawaiianairlines"/> 19 <link rel="alternate" hreflang="ru" href="https://ptsell.com/ru/category/hawaiianairlines"/> 20 <meta charset="utf-8"/> 21<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/> 22<meta name="viewport" content="width=device-width"/> 23 <meta name="google-site-verification" content="google-site-verification=Jf7049lbsi2KtuNrfwtuUT9U6h2ioeUULtixAltSP4Y"/> 24 <meta name="yandex-verification" content='36bc17ae7cbc9a9c'/> 25 <meta name="verification" content="6a508a60aa3bf9510ea6acb021c94b48"/> 26<link rel="icon" type="image/png" 27 href="https://www.iconsdb.com/icons/download/royal-blue/airplane-takeoff-64.ico"/> 28 29 <meta name="csrf-token" content="gM2wT4bPElRiqXG8pVy8rHd8QT5nl5GgSp2R083Q"> 30 31
31<script src="/vendor/jquery-2.1.3/jquery.min.js"></script>
31 32 33 <link rel="stylesheet" href="/vendor/jquery-ui-1.11.4/themes/smoothness/jquery-ui.min.css" media="print" onload="this.media='all'"> 34 <noscript><link rel="stylesheet" href="/vendor/jquery-ui-1.11.4/themes/smoothness/jquery-ui.min.css"></noscript> 35
35<script src="/vendor/jquery-ui-1.11.4/jquery-ui.min.js"></script>
35 36
36<script type="module" src="https://ptsell.com/build/assets/lazysizes.min-GD8IIHgq.js"></script>
36 37 <link rel="modulepreload" href="https://ptsell.com/build/assets/shop-old-FpYPzLs-.js" /><link rel="modulepreload" href="https://ptsell.com/build/assets/pusher-BVCVQPqm.js" /><link rel="modulepreload" href="https://ptsell.com/build/assets/_commonjsHelpers-Cpj98o6Y.js" />
37<script type="module" src="https://ptsell.com/build/assets/shop-old-FpYPzLs-.js" data-navigate-track="reload"></script>
37 38
38<script> 39 $(function () { 40 $('[data-toggle="tooltip"]').tooltip({html: true}); 41 // bootstrap tooltip 42 }); 43 var shop_currency = 'rub'; 44 </script>
44 45
45<script> 46 var shopMessages = { 47 0: "Такого кол-ва ÑоваÑа неÑ", 48 1: "ÐÑ ÑвеÑенÑ, ÑÑо Ñ Ð¾ÑиÑе пÑеÑваÑÑ Ð¿ÑоÑеÑÑ Ð¿Ð¾ÐºÑпки?", 49 2: "УкажиÑе Email адÑеÑ", 50 3: "Ðин. кол-во ÑоваÑа", 51 4: "Такого колиÑеÑÑва ÑоваÑа неÑ", 52 5: "ÐÑбеÑиÑе ÑпоÑоб оплаÑÑ", 53 6: "ÐÑÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ð¾Ñибка ÑеÑвеÑа. ÐопÑобÑйÑе еÑе Ñаз!", 54 7: "ÐплаÑиÑÑ ÑоваÑ!", 55 8: "ÐÑовеÑиÑÑ Ð¾Ð¿Ð»Ð°ÑÑ", 56 9: "ÐÑ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð¿ÑинÑÑÑ ÑÑÐ»Ð¾Ð²Ð¸Ñ Ð¼Ð°Ð³Ð°Ð·Ð¸Ð½Ð°", 57 10: "ÐакÑ. колиÑеÑÑво ÑоваÑа", 58 }; 59</script>
59 60
60<script src="/static/js/jquery.qrcode.min.js"></script>
60 61 62
62<script src="https://ptsell.com/build/assets/shop.new-s4_9xB9b.js"></script>
62 63 64 <link href="https://ptsell.com/build/assets/style-DclxN8TN.css" rel="stylesheet" media="all"/> 65 <style> 66 body { 67 background: #041933; 68 } 69 </style> 70 71 <link rel="stylesheet" href="/vendor/fontawesome-5.15.4/css/all.min.css" media="print" onload="this.media='all'"> 72 <noscript><link rel="stylesheet" href="/vendor/fontawesome-5.15.4/css/all.min.css"></noscript> 73 74</head> 75 76<body class="b-shop"> 77 78 <nav class="navbar navbar-default navbar-static-top"> 79 <div class="container"> 80 <div class="navbar-header"> 81 <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" 82 aria-expanded="false" aria-controls="navbar"> 83 <span class="sr-only">Toggle navigation</span> 84 <span class="icon-bar"></span> 85 <span class="icon-bar"></span> 86 <span class="icon-bar"></span> 87 </button> 88 </div> 89 <div id="navbar" class="navbar-collapse collapse"> 90 <ul class="nav navbar-nav"> 91 <li class="active"> 92 <a href="https://liavelru.rents.ac/ru/"> 93 ÐÐ»Ð°Ð²Ð½Ð°Ñ 94 </a> 95 </li> 96 <li > 97 <a href="https://liavelru.rents.ac/ru/rules"> 98 ÐÑавила 99 </a> 100 </li> 101 <li class="dropdown nav-item"> 102 <a href="#lang" class="nav-link dropdown-toggle" id="dropdown01" data-toggle="dropdown" 103 aria-haspopup="true" aria-expanded="false"> 104 <img class="countryflag" 105 src="https://ptsell.com/storage/images/flags/RU.png" 106 alt="RU"> 107 </a> 108 <div class="dropdown-menu" aria-labelledby="dropdown01"> 109 <a class="dropdown-item d-flex align-items-center gap-2 active " 110 rel="nofollow" href="/ru/category/hawaiianairlines" 111 aria-current="true" > 112 <img src="https://ptsell.com/storage/images/flags/RU.png" width="20" height="14" alt="Ð ÑÑÑкий"> 113 Ð ÑÑÑкий 114 </a> 115 <a class="dropdown-item d-flex align-items-center gap-2 " 116 rel="nofollow" href="/en/category/hawaiianairlines" 117 > 118 <img src="https://ptsell.com/storage/images/flags/GB.png" width="20" height="14" alt="English"> 119 English 120 </a> 121 </div> 122 </li> 123 </ul> 124 <div style="float:right; display: flex; align-items: center; margin:0px 10px 0px 10px;"> 125 126 </div> 127 128 129 <ul class="nav navbar-nav navbar-right col-md-3 col-xs-3 col-lg-2"> 130 <li> 131 <form> 132 <input type="hidden" name="_token" value="gM2wT4bPElRiqXG8pVy8rHd8QT5nl5GgSp2R083Q" autocomplete="off"> 133 <div class="input-group"> 134 <input type="text" name="search" class="form-control input-sm" 135 placeholder="поиÑк ÑоваÑов"> 136 <span class="input-group-btn"> 137 <button class="btn btn-primary btn-sm pull-right" type="submit">ÐоиÑк</button> 138 </span> 139 </div> 140 </form> 141 </li> 142 </ul> 143 144 <div class="deposit">ÐепозиÑ: 145 <a class="depred" 146 href="https://rents.ws/ru/deposits/liavelru" 147 target="_blank"> 148 0,00 ⽠149 </a> 150 </div> 151 152 </div> 153 </div> 154</nav> 155<!-- Auth Modal --> 156 157 <div class="modal fade bootstrap3-modal" id="authModal" tabindex="-1" role="dialog" aria-labelledby="authModalLabel"> 158 <div class="modal-dialog" role="document"> 159 <div class="modal-content"> 160 <div class="modal-header"> 161 <h4 class="modal-title text-capitalize-first" id="myModalLabel">войÑи</h4> 162 <button type="button" class="close" data-dismiss="modal" aria-label="Close" onclick="jQuery('#authModal').modal('hide'); return false;"><span aria-hidden="true">×</span></button> 163 </div> 164 <div class="modal-body"> 165 <form action="https://ptsell.com/ru/signin-shop" id="authForm" novalidate method="post"> 166 <input type="hidden" name="_token" value="gM2wT4bPElRiqXG8pVy8rHd8QT5nl5GgSp2R083Q" autocomplete="off"> <div class="form-group"> 167 <label class="form-label text-capitalize-first" for="basic-form-login">логин</label> 168 <input type="text" name="login" class="form-control" id="basic-form-login" 169 placeholder="логин" required value=""> 170 <div id="loginError" class="invalid-feedback text-danger"></div> 171 </div> 172 <div class="form-group"> 173 <label class="form-label text-capitalize-first" for="basic-form-password">паÑолÑ</label> 174 <input type="password" name="password" class="form-control" id="basic-form-password" 175 placeholder="паÑолÑ"> 176 <div id="passwordError" class="invalid-feedback text-danger"></div> 177 </div> 178 <div class="mb-3" id="basic-form-altcha"> 179 <altcha-widget challenge="/altcha/challenge" name="altcha" 180 auto="onfocus" configuration='{"hideFooter":true}'></altcha-widget> 181 <div id="altchaError" class="invalid-feedback text-danger"></div> 182</div> 183
183<script src="https://ptsell.com/vendor/altcha/altcha-3.3.0.i18n.min.js" defer></script>
183 184 <div class="form-group form-check"> 185 <input class="form-check-input" id="basic-form-checkbox" type="checkbox" name="remember"> 186 <label class="form-check-label text-capitalize-first" for="basic-form-checkbox">ÐапомниÑÑ Ð¼ÐµÐ½Ñ</label> 187 </div> 188 <div class="form-buttons"> 189 <button class="btn btn-primary text-capitalize-first" type="submit">войÑи</button> 190 <a href="https://ptsell.com/ru/signup" class="btn btn-default text-capitalize-first">ÑегиÑÑÑаÑиÑ</a> 191 </div> 192 </form> 193 </div> 194 </div> 195 </div> 196 </div> 197 198<style> 199 /* СвеÑÐ»Ð°Ñ Ñема модалки авÑоÑизаÑии (Ð´Ð»Ñ ÑвеÑлой ÑÐµÐ¼Ñ ÐºÐ¾ÑзинÑ) */ 200 [data-bs-theme="light"] #authModal .modal-content, 201 [data-bs-theme="light"] #authModal .modal-header, 202 [data-bs-theme="light"] #authModal .modal-body { 203 background-color: #ffffff !important; 204 color: #212529 !important; 205 font-size: 1rem !important; 206 } 207 208 [data-bs-theme="light"] #authModal .modal-title { 209 color: #212529 !important; 210 } 211 212 [data-bs-theme="light"] #authModal .form-control, 213 [data-bs-theme="light"] #authModal input[type="text"], 214 [data-bs-theme="light"] #authModal input[type="password"], 215 [data-bs-theme="light"] #authModal input[type="email"], 216 [data-bs-theme="light"] #authModal textarea { 217 background-color: #ffffff !important; 218 color: #212529 !important; 219 border-color: #ced4da !important; 220 } 221 222 [data-bs-theme="light"] #authModal .form-control:focus, 223 [data-bs-theme="light"] #authModal input[type="text"]:focus, 224 [data-bs-theme="light"] #authModal input[type="password"]:focus, 225 [data-bs-theme="light"] #authModal input[type="email"]:focus, 226 [data-bs-theme="light"] #authModal textarea:focus { 227 background-color: #ffffff !important; 228 color: #212529 !important; 229 border-color: #86b7fe !important; 230 box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25) !important; 231 } 232 233 [data-bs-theme="light"] #authModal .form-control::placeholder, 234 [data-bs-theme="light"] #authModal input[type="text"]::placeholder, 235 [data-bs-theme="light"] #authModal input[type="password"]::placeholder, 236 [data-bs-theme="light"] #authModal input[type="email"]::placeholder { 237 color: #6c757d !important; 238 opacity: 1 !important; 239 font-size: 1rem !important; 240 font-weight: 400 !important; 241 } 242 243 [data-bs-theme="light"] #authModal .form-label, 244 [data-bs-theme="light"] #authModal .text-muted, 245 [data-bs-theme="light"] #authModal .form-text { 246 color: #212529 !important; 247 font-size: 1rem !important; 248 font-weight: 400 !important; 249 padding-left: 0 !important; 250 text-transform: capitalize !important; 251 line-height: 1.5 !important; 252 margin-bottom: .5rem !important; 253 } 254 255 [data-bs-theme="light"] #authModal .form-check-label { 256 color: #212529 !important; 257 font-size: 1rem !important; 258 font-weight: 400 !important; 259 margin-left: 0 !important; 260 padding-left: 0 !important; 261 text-transform: capitalize !important; 262 } 263 264 [data-bs-theme="light"] #authModal .btn-close { 265 filter: none !important; 266 } 267 268 /* ТÑÐ¼Ð½Ð°Ñ Ñема модалки авÑоÑизаÑии (Ð´Ð»Ñ ÑÑмной ÑÐµÐ¼Ñ ÐºÐ¾ÑзинÑ) */ 269 [data-bs-theme="dark"] #authModal .modal-content, 270 [data-bs-theme="dark"] #authModal .modal-header, 271 [data-bs-theme="dark"] #authModal .modal-body { 272 background-color: #212529 !important; 273 color: #f8f9fa !important; 274 border-color: #343a40 !important; 275 font-size: 1rem !important; 276 } 277 278 [data-bs-theme="dark"] #authModal .modal-title { 279 color: #f8f9fa !important; 280 } 281 282 [data-bs-theme="dark"] #authModal .form-control, 283 [data-bs-theme="dark"] #authModal input[type="text"], 284 [data-bs-theme="dark"] #authModal input[type="password"], 285 [data-bs-theme="dark"] #authModal input[type="email"], 286 [data-bs-theme="dark"] #authModal textarea { 287 background-color: #343a40 !important; 288 color: #f8f9fa !important; 289 border-color: #495057 !important; 290 } 291 292 [data-bs-theme="dark"] #authModal .form-control:focus, 293 [data-bs-theme="dark"] #authModal input[type="text"]:focus, 294 [data-bs-theme="dark"] #authModal input[type="password"]:focus, 295 [data-bs-theme="dark"] #authModal input[type="email"]:focus, 296 [data-bs-theme="dark"] #authModal textarea:focus { 297 background-color: #343a40 !important; 298 color: #f8f9fa !important; 299 border-color: #86b7fe !important; 300 box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.35) !important; 301 } 302 303 [data-bs-theme="dark"] #authModal .form-control::placeholder, 304 [data-bs-theme="dark"] #authModal input[type="text"]::placeholder, 305 [data-bs-theme="dark"] #authModal input[type="password"]::placeholder, 306 [data-bs-theme="dark"] #authModal input[type="email"]::placeholder { 307 color: #adb5bd !important; 308 opacity: 1 !important; 309 font-size: 1rem !important; 310 font-weight: 400 !important; 311 } 312 313 [data-bs-theme="dark"] #authModal .form-label, 314 [data-bs-theme="dark"] #authModal .text-muted, 315 [data-bs-theme="dark"] #authModal .form-text { 316 color: #f8f9fa !important; 317 font-size: 1rem !important; 318 font-weight: 400 !important; 319 padding-left: 0 !important; 320 text-transform: capitalize !important; 321 line-height: 1.5 !important; 322 margin-bottom: .5rem !important; 323 } 324 325 [data-bs-theme="dark"] #authModal .btn-close { 326 filter: invert(1) grayscale(100%) brightness(200%) !important; 327 } 328 329 [data-bs-theme="dark"] #authModal .form-check-label { 330 color: #f8f9fa !important; 331 font-size: 1rem !important; 332 font-weight: 400 !important; 333 margin-left: 0 !important; 334 padding-left: 0 !important; 335 text-transform: capitalize !important; 336 } 337 338 /* СÑили Ð´Ð»Ñ Bootstrap 3 (ÑÑаÑÑе ÑаблонÑ) - пÑименÑÑÑÑÑ ÑолÑко к клаÑÑÑ bootstrap3-modal */ 339 .modal.bootstrap3-modal#authModal .modal-dialog { 340 z-index: 1050 !important; 341 position: relative; 342 } 343 344 .modal.bootstrap3-modal#authModal .modal-content { 345 border-radius: 4px; 346 box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); 347 border: 1px solid rgba(0, 0, 0, 0.2); 348 } 349 350 .modal.bootstrap3-modal#authModal .modal-header { 351 border-bottom: 1px solid #e5e5e5; 352 padding: 15px; 353 background-color: #fff; 354 display: flex; 355 align-items: center; 356 justify-content: space-between; 357 } 358 359 .modal.bootstrap3-modal#authModal .modal-header .close { 360 margin-top: -2px; 361 margin-left: auto; 362 margin-right: 0; 363 font-size: 21px; 364 font-weight: 700; 365 line-height: 1; 366 color: #000; 367 text-shadow: 0 1px 0 #fff; 368 opacity: 0.2; 369 filter: alpha(opacity=20); 370 float: right; 371 padding: 0; 372 background: transparent; 373 border: 0; 374 -webkit-appearance: none; 375 cursor: pointer; 376 order: 2; 377 } 378 379 .modal.bootstrap3-modal#authModal .modal-header .close:hover, 380 .modal.bootstrap3-modal#authModal .modal-header .close:focus { 381 color: #000; 382 text-decoration: none; 383 cursor: pointer; 384 opacity: 0.5; 385 filter: alpha(opacity=50); 386 } 387 388 .modal.bootstrap3-modal#authModal .modal-header .modal-title { 389 order: 1; 390 flex: 1; 391 margin-right: 10px; 392 } 393 394 395 .modal.bootstrap3-modal#authModal .modal-body { 396 position: relative; 397 padding: 15px; 398 background-color: #fff; 399 } 400 401 .modal.bootstrap3-modal#authModal .form-group { 402 margin-bottom: 15px; 403 } 404 405 .modal.bootstrap3-modal#authModal .form-label { 406 display: inline-block; 407 max-width: 100%; 408 margin-bottom: 5px; 409 font-weight: 700; 410 font-size: 14px; 411 } 412 413 .modal.bootstrap3-modal#authModal .form-control { 414 display: block; 415 width: 100%; 416 height: 34px; 417 padding: 6px 12px; 418 font-size: 14px; 419 line-height: 1.42857143; 420 color: #555; 421 background-color: #fff; 422 background-image: none; 423 border: 1px solid #ccc; 424 border-radius: 4px; 425 box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); 426 transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; 427 } 428 429 .modal.bootstrap3-modal#authModal .form-control:focus { 430 border-color: #66afe9; 431 outline: 0; 432 box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); 433 } 434 435 .modal.bootstrap3-modal#authModal .form-control::placeholder { 436 color: #999; 437 opacity: 1; 438 } 439 440 .modal.bootstrap3-modal#authModal .form-buttons { 441 display: flex; 442 gap: 10px; 443 margin-top: 20px; 444 } 445 446 .modal.bootstrap3-modal#authModal .btn { 447 display: inline-block; 448 padding: 6px 12px; 449 margin-bottom: 0; 450 font-size: 14px; 451 font-weight: 400; 452 line-height: 1.42857143; 453 text-align: center; 454 white-space: nowrap; 455 vertical-align: middle; 456 cursor: pointer; 457 user-select: none; 458 background-image: none; 459 border: 1px solid transparent; 460 border-radius: 4px; 461 } 462 463 .modal.bootstrap3-modal#authModal .btn-primary { 464 color: #fff; 465 background-color: #337ab7; 466 border-color: #2e6da4; 467 } 468 469 .modal.bootstrap3-modal#authModal .btn-primary:hover, 470 .modal.bootstrap3-modal#authModal .btn-primary:focus { 471 color: #fff; 472 background-color: #286090; 473 border-color: #204d74; 474 } 475 476 .modal.bootstrap3-modal#authModal .btn-default { 477 color: #333; 478 background-color: #fff; 479 border-color: #ccc; 480 } 481 482 .modal.bootstrap3-modal#authModal .btn-default:hover, 483 .modal.bootstrap3-modal#authModal .btn-default:focus { 484 color: #333; 485 background-color: #e6e6e6; 486 border-color: #adadad; 487 } 488
489 .modal.bootstrap3-modal#authModal .invalid-feedback { 490 display: block; 491 margin-top: 5px; 492 margin-bottom: 10px; 493 color: #a94442; 494 font-size: 12px; 495 } 496 497 .modal.bootstrap3-modal#authModal .form-control.is-invalid { 498 border-color: #a94442; 499 } 500 501 .modal.bootstrap3-modal#authModal .form-control.is-invalid:focus { 502 border-color: #a94442; 503 box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px rgba(169, 68, 66, 0.6); 504 } 505 506 .modal.bootstrap3-modal#authModal .form-check { 507 margin-top: 10px; 508 margin-bottom: 10px; 509 } 510 511 .modal.bootstrap3-modal#authModal .form-check-input { 512 margin-top: 4px; 513 margin-right: 5px; 514 } 515 516 .modal.bootstrap3-modal#authModal .form-check-label { 517 font-weight: 400; 518 font-size: 14px; 519 margin-left: 0; 520 } 521 522 .modal.bootstrap3-modal#authModal .captcha { 523 margin-bottom: 10px; 524 } 525 526 .modal.bootstrap3-modal#authModal .captcha span { 527 display: block; 528 } 529 530 .modal.bootstrap3-modal#authModal .text-right { 531 text-align: right; 532 } 533 534 .modal.bootstrap3-modal#authModal .row { 535 margin-left: -15px; 536 margin-right: -15px; 537 } 538 539 .modal.bootstrap3-modal#authModal .col-xs-6 { 540 position: relative; 541 min-height: 1px; 542 padding-left: 15px; 543 padding-right: 15px; 544 float: left; 545 width: 50%; 546 } 547 548 /* Ð¤Ð¸ÐºÑ Ð´Ð»Ñ backdrop в Bootstrap 3 */ 549 .modal.bootstrap3-modal#authModal ~ .modal-backdrop { 550 z-index: 1040 !important; 551 } 552 553 .modal.bootstrap3-modal#authModal { 554 z-index: 1050 !important; 555 } 556</style> 557
558<script> 559 document.addEventListener('DOMContentLoaded', function() { 560 const authModalElement = document.getElementById('authModal'); 561 if (!authModalElement) return; 562 563 // ÐниÑиализаÑÐ¸Ñ Ð¼Ð¾Ð´Ð°Ð»ÐºÐ¸: Bootstrap 5 или Bootstrap 3 (jQuery) 564 let authModal; 565 if (typeof bootstrap !== 'undefined' && bootstrap.Modal) { 566 // Bootstrap 5 567 authModal = new bootstrap.Modal(authModalElement, { 568 backdrop: true, 569 keyboard: true 570 }); 571 } else if (typeof $ !== 'undefined' && $.fn.modal) { 572 // Bootstrap 3 ÑеÑез jQuery - иÑполÑзÑем jQuery меÑÐ¾Ð´Ñ 573 // ÐниÑиализиÑÑем модалÑное окно Bootstrap 3 574 $(authModalElement).modal({ 575 show: false, 576 backdrop: true, 577 keyboard: true 578 }); 579 580 // Создаем обÑÐµÐºÑ Ð´Ð»Ñ ÑовмеÑÑимоÑÑи Ñ ÐºÐ¾Ð´Ð¾Ð¼ ниже 581 authModal = { 582 show: function() { 583 $(authModalElement).modal('show'); 584 }, 585 hide: function() { 586 $(authModalElement).modal('hide'); 587 } 588 }; 589 590 // ÐбÑабоÑÑик клика на ÐºÐ½Ð¾Ð¿ÐºÑ Ð·Ð°ÐºÑÑÑÐ¸Ñ Ð´Ð»Ñ Bootstrap 3 591 // ÐÑполÑзÑем неÑколÑко Ð¿Ð¾Ð´Ñ Ð¾Ð´Ð¾Ð² Ð´Ð»Ñ Ð½Ð°Ð´ÐµÐ¶Ð½Ð¾ÑÑи 592 593 // 1. ÐÑивÑзÑваем напÑÑмÑÑ Ðº кнопке закÑÑÑÐ¸Ñ 594 function attachCloseHandler() { 595 const $closeBtn = $(authModalElement).find('.close, [data-dismiss="modal"]'); 596 if ($closeBtn.length > 0) { 597 $closeBtn.off('click.authModalClose').on('click.authModalClose', function(e) { 598 e.preventDefault(); 599 e.stopPropagation(); 600 e.stopImmediatePropagation(); 601 $(authModalElement).modal('hide'); 602 return false; 603 }); 604 } 605 } 606 607 // ÐÑивÑзÑваем ÑÑÐ°Ð·Ñ 608 attachCloseHandler(); 609 // ÐÑивÑзÑваем еÑе Ñаз поÑле неболÑÑой задеÑжки на ÑлÑÑай еÑли DOM еÑе не гоÑов 610 setTimeout(attachCloseHandler, 50); 611 612 // 2. ÐÑполÑзÑем делегиÑование на document Ñ Ð²ÑÑоким пÑиоÑиÑеÑом 613 $(document).off('click.authModalClose', '#authModal .close, #authModal [data-dismiss="modal"]') 614 .on('click.authModalClose', '#authModal .close, #authModal [data-dismiss="modal"]', function(e) { 615 e.preventDefault(); 616 e.stopPropagation(); 617 e.stopImmediatePropagation(); 618 $(authModalElement).modal('hide'); 619 return false; 620 }); 621 622 // 3. ÐбÑабоÑÑик пÑи показе модалÑного окна (на ÑлÑÑай еÑли кнопка добавлÑеÑÑÑ Ð´Ð¸Ð½Ð°Ð¼Ð¸ÑеÑки) 623 $(authModalElement).on('shown.bs.modal', function() { 624 attachCloseHandler(); 625 }); 626 } else { 627 // Fallback: пÑоÑÑо показÑваем/ÑкÑÑваем ÑеÑез CSS 628 authModal = { 629 show: function() { 630 authModalElement.style.display = 'block'; 631 authModalElement.classList.add('show'); 632 document.body.classList.add('modal-open'); 633 }, 634 hide: function() { 635 authModalElement.style.display = 'none'; 636 authModalElement.classList.remove('show'); 637 document.body.classList.remove('modal-open'); 638 } 639 }; 640 641 // ÐбÑабоÑÑик клика на ÐºÐ½Ð¾Ð¿ÐºÑ Ð·Ð°ÐºÑÑÑÐ¸Ñ Ð´Ð»Ñ fallback 642 const closeBtn = authModalElement.querySelector('.close, [data-dismiss="modal"]'); 643 if (closeBtn) { 644 closeBtn.addEventListener('click', function(e) { 645 e.preventDefault(); 646 e.stopPropagation(); 647 authModal.hide(); 648 }); 649 } 650 } 651 652 // Ðбновление CSRF Ñокена пÑи оÑкÑÑÑии модалÑного окна 653 authModalElement.addEventListener('show.bs.modal', function () { 654 refreshCsrfToken(); 655 }); 656 657 // ÐÐ»Ñ Bootstrap 3 (jQuery) 658 if (typeof $ !== 'undefined') { 659 $(authModalElement).on('show.bs.modal', function () { 660 refreshCsrfToken(); 661 }); 662 } 663 664 // ÐеÑÐµÐ¼ÐµÐ½Ð½Ð°Ñ Ð´Ð»Ñ Ð¾ÑÑÐ»ÐµÐ¶Ð¸Ð²Ð°Ð½Ð¸Ñ Ð²Ñемени поÑледнего Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ñокена 665 let lastTokenRefresh = Date.now(); 666 const TOKEN_REFRESH_INTERVAL = 60000; // 1 минÑÑа 667 668 // ФÑнкÑÐ¸Ñ Ð´Ð»Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ CSRF Ñокена 669 function refreshCsrfToken(force = false) { 670 // ÐÑли Ñокен недавно обновлÑлÑÑ Ð¸ не пÑинÑдиÑелÑнÑй вÑзов, пÑопÑÑкаем 671 if (!force && (Date.now() - lastTokenRefresh) < TOKEN_REFRESH_INTERVAL) { 672 return Promise.resolve(); 673 } 674 675 return fetch('/csrf-token', { 676 method: 'GET', 677 headers: { 678 'X-Requested-With': 'XMLHttpRequest', 679 'Accept': 'application/json' 680 } 681 }) 682 .then(response => response.json()) 683 .then(data => { 684 if (data.csrf_token) { 685 const csrfInput = authModalElement.querySelector('input[name="_token"]'); 686 if (csrfInput) { 687 csrfInput.value = data.csrf_token; 688 } 689 // Также обновлÑем meta Ñег еÑли еÑÑÑ 690 const metaCsrf = document.querySelector('meta[name="csrf-token"]'); 691 if (metaCsrf) { 692 metaCsrf.setAttribute('content', data.csrf_token); 693 } 694 lastTokenRefresh = Date.now(); 695 } 696 }) 697 .catch(error => { 698 console.log('Ðе ÑдалоÑÑ Ð¾Ð±Ð½Ð¾Ð²Ð¸ÑÑ CSRF Ñокен, бÑÐ´ÐµÑ Ð¸ÑполÑзован ÑекÑÑий:', error); 699 }); 700 } 701 702 // Ðбновление Ñокена пÑи ÑокÑÑе на вкладке бÑаÑзеÑа 703 document.addEventListener('visibilitychange', function() { 704 if (!document.hidden) { 705 // Ðкладка ÑÑала акÑивной - обновлÑем Ñокен еÑли пÑоÑло доÑÑаÑоÑно вÑемени 706 refreshCsrfToken(); 707 } 708 }); 709 710 // Ðбновление Ñокена пÑи ÑокÑÑе на окно 711 window.addEventListener('focus', function() { 712 refreshCsrfToken(); 713 }); 714 715 // ÐбÑабоÑка Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ°Ð¿Ñи 716 const refreshCaptchaBtn = document.getElementById('refresh-captcha'); 717 if (refreshCaptchaBtn) { 718 refreshCaptchaBtn.addEventListener('click', function(e) { 719 e.preventDefault(); 720 e.stopPropagation(); 721 e.stopImmediatePropagation(); 722 723 const captchaContainer = document.querySelector('#authModal .captcha span'); 724 const captchaInput = document.getElementById('basic-form-captcha'); 725 726 if (!captchaContainer) { 727 console.error('ÐонÑÐµÐ¹Ð½ÐµÑ ÐºÐ°Ð¿Ñи не найден'); 728 return false;
729 } 730 731 // ÐÑиÑаем поле ввода капÑи пеÑед обновлением 732 if (captchaInput) { 733 captchaInput.value = ''; 734 } 735 736 fetch('/captcha-refresh', { 737 method: 'GET', 738 headers: { 739 'X-Requested-With': 'XMLHttpRequest', 740 'Accept': 'application/json' 741 } 742 }) 743 .then(response => { 744 if (!response.ok) { 745 throw new Error('Network response was not ok: ' + response.status); 746 } 747 return response.json(); 748 }) 749 .then(data => { 750 if (data && typeof data === 'object' && 'captcha' in data) { 751 if (data.captcha) { 752 captchaContainer.innerHTML = data.captcha; 753 } else { 754 console.error('ÐапÑа пÑÑÑÐ°Ñ Ð² оÑвеÑе:', data); 755 location.reload(); 756 } 757 } else { 758 console.error('ÐевеÑнÑй ÑоÑÐ¼Ð°Ñ Ð¾ÑвеÑа (ожидаеÑÑÑ Ð¾Ð±ÑÐµÐºÑ Ñ Ð¿Ð¾Ð»ÐµÐ¼ captcha):', data); 759 location.reload(); 760 } 761 }) 762 .catch(error => { 763 console.error('ÐÑибка Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ°Ð¿Ñи:', error); 764 // Fallback: пеÑезагÑÑжаем ÑÑÑаниÑÑ Ð´Ð»Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ°Ð¿Ñи 765 location.reload(); 766 }); 767 768 return false; 769 }); 770 } 771 772 // ALTCHA (proof-of-work «не ÑобоÑ», auth.partials.altcha). ÐÐ°Ñ submit-обÑабоÑÑик пеÑÐµÑ Ð²Ð°ÑÑÐ²Ð°ÐµÑ ÑоÑÐ¼Ñ 773 // ÑанÑÑе виджеÑа, поÑÑÐ¾Ð¼Ñ ÑеÑение запÑÑкаем и ждÑм Ñами. 774 async function altchaReady(form) { 775 const widget = form.querySelector('altcha-widget'); 776 if (!widget || typeof widget.getState !== 'function' || widget.getState() === 'verified') { 777 return; 778 } 779 if (widget.getState() !== 'verifying') { 780 await widget.verify(); 781 return; 782 } 783 // Уже ÑеÑаеÑÑÑ (ÑÑаÑÑ Ð¿Ð¾ ÑокÑÑÑ) â ждÑм конеÑ, не пеÑезапÑÑÐºÐ°Ñ Ð·Ð°Ð´Ð°ÑÑ. 784 await new Promise(resolve => { 785 const done = () => { widget.removeEventListener('statechange', onState); resolve(); }; 786 const onState = e => { if (e.detail && e.detail.state !== 'verifying') done(); }; 787 widget.addEventListener('statechange', onState); 788 setTimeout(done, 20000); 789 }); 790 } 791 function resetAltcha(form) { 792 const widget = form.querySelector('altcha-widget'); 793 if (widget && typeof widget.reset === 'function') { 794 widget.reset(); 795 widget.verify(); 796 } 797 } 798 799 // ÐбÑабоÑка оÑпÑавки ÑоÑÐ¼Ñ 800 const authForm = document.getElementById('authForm'); 801 if (authForm) { 802 // useCapture=true: ÑÑабаÑÑваем в Ñазе Ð·Ð°Ñ Ð²Ð°Ñа до jQuery-обÑабоÑÑиков (shop.new.js) 803 // stopImmediatePropagation пÑедоÑвÑаÑÐ°ÐµÑ Ð´Ð²Ð¾Ð¹Ð½Ð¾Ð¹ AJAX из legacy JS 804 authForm.addEventListener('submit', function(e) { 805 e.preventDefault(); 806 e.stopImmediatePropagation(); 807 808 const submitBtn = this.querySelector('button[type="submit"]'); 809 const originalText = submitBtn.textContent; 810 submitBtn.disabled = true; 811 submitBtn.textContent = 'ÐÑ Ð¾Ð´...'; 812 813 // ÐÑиÑÑка пÑедÑдÑÑÐ¸Ñ Ð¾Ñибок 814 document.querySelectorAll('#authForm .invalid-feedback').forEach(el => { 815 el.textContent = ''; 816 el.style.display = 'none'; 817 }); 818 document.querySelectorAll('#authForm .is-invalid').forEach(el => { 819 el.classList.remove('is-invalid'); 820 }); 821 822 // ÐбновлÑем CSRF Ñокен пеÑед оÑпÑавкой (пÑинÑдиÑелÑно) 823 const formElement = this; 824 refreshCsrfToken(true).then(async () => { 825 // ALTCHA: еÑли пÑовеÑка «не ÑобоÑ» еÑÑ Ð½Ðµ законÑилаÑÑ â дожидаемÑÑ ÐµÑ ÑеÑениÑ. 826 await altchaReady(formElement); 827 // ÐоÑле Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ñокена оÑпÑавлÑем ÑоÑÐ¼Ñ 828 const formData = new FormData(formElement); 829 830 fetch(formElement.action, { 831 method: 'POST', 832 body: formData, 833 headers: { 834 'X-Requested-With': 'XMLHttpRequest' 835 } 836 }) 837 .then(response => { 838 // ÐбÑабоÑка оÑибки 419 - CSRF пÑоÑÑÑ , пеÑезагÑÑжаем ÑÑÑаниÑÑ 839 if (response.status === 419) { 840 location.reload(); 841 return; 842 } 843 return response.json(); 844 }) 845 .then(data => { 846 if (!data) return; // ÐÑли бÑл reload, data бÑÐ´ÐµÑ undefined 847 848 if (data.success) { 849 const redirectUrl = (data.data && data.data.redirect_url) ? data.data.redirect_url : null; 850 try { 851 authModal.hide(); 852 } catch (e) { 853 console.error('Modal hide error:', e); 854 } 855 if (redirectUrl) { 856 window.location.href = redirectUrl; 857 } else { 858 location.reload(); 859 } 860 return; 861 } else { 862 // РеÑение ALTCHA одноÑазовое: поÑле оÑказа беÑÑм новÑÑ Ð·Ð°Ð´Ð°ÑÑ. 863 resetAltcha(formElement); 864 // ÐоказÑваем оÑибки 865 if (data.errors) {
866 Object.keys(data.errors).forEach(field => { 867 const input = document.getElementById('basic-form-' + field); 868 const errorDiv = document.getElementById(field + 'Error'); 869 if (input && errorDiv) { 870 input.classList.add('is-invalid'); 871 errorDiv.textContent = data.errors[field][0]; 872 errorDiv.style.display = 'block'; 873 } 874 }); 875 } 876 submitBtn.disabled = false; 877 submitBtn.textContent = originalText; 878 } 879 }) 880 .catch(error => { 881 console.error('ÐÑибка авÑоÑизаÑии:', error); 882 resetAltcha(formElement); 883 submitBtn.disabled = false; 884 submitBtn.textContent = originalText; 885 alert('ÐÑибка авÑоÑизаÑии. ÐопÑобÑйÑе еÑÑ Ñаз.'); 886 }); 887 }).catch(error => { 888 // ÐÑибка пÑи обновлении CSRF Ñокена 889 console.error('ÐÑибка Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ñокена:', error); 890 submitBtn.disabled = false; 891 submitBtn.textContent = originalText; 892 alert('Ðе ÑдалоÑÑ Ð¾Ð±Ð½Ð¾Ð²Ð¸ÑÑ Ñокен. ÐопÑобÑйÑе пеÑезагÑÑзиÑÑ ÑÑÑаниÑÑ.'); 893 }); 894 }, true); // useCapture: пеÑÐµÑ Ð²Ð°ÑÑваем до jQuery (shop.new.js) 895 } 896 }); 897</script>
vendor: 1 bytes, line 897
897
898<script> 899 $(function () { 900 var $link = $('a[data-toggle="modal"][data-target="#authModal"]'); 901 if (!$link.length) return; 902 $link.off('click.bs.modal').on('click.openLoginInsteadModal', function (e) { 903 e.preventDefault(); 904 window.location.href = "https://ptsell.com/ru/shop-signin"; 905 }); 906 }); 907</script>
907 908 <div class="container"> 909 <div class="row"> 910 <div class="col-md-12"> 911 <div class="row row-block row-block-header"> 912 <div class="col-md-12"> 913 <h3 style="text-align:center;">Main site currency: Russian Ruble</h3><h4 style="text-align:center;">To convert to other currencies, use the: <a href="https://www.xe.com/currencyconverter/convert/?Amount=1&From=RUB&To=USD" target="_blank" rel="noreferrer noopener"><u><b>xe.com/rub->usd</b></u></a></h4> 914 </div> 915 </div> 916 917 918 <div class="row"> 919 <h1 style="display: none;">Hawaiian Airlines Miles</h1> 920 <div class="col-md-3"> 921 <div class="nav nav-cat "> 922 <div class="list-group"> 923 <a href="https://liavelru.rents.ac/" class="other-buttons-color list-group-item active "> 924 <span class="fa fa-diamond"></span> ÐÑе 925 <span class="badge alert-success">524</span> 926 </a> 927 928 <a href="https://ptsell.com/ru/category/hawaiianairlines" 929 class="other-buttons-color list-group-item active "> 930 <span class="fa fa-bookmark"></span>Hawaiian Airlines <span 931 class="badge alert-success">3</span> 932 </a> 933 934 935 936 937 938 <a href="https://ptsell.com/ru/category/american-airlines-aadvantage" 939 class="other-buttons-color list-group-item "> 940 <span class="fa fa-bookmark"></span>American Airlines [AAdvantage] <span 941 class="badge alert-success">29</span> 942 </a> 943 944 945 946 947 948 <a href="https://ptsell.com/ru/category/qatar-airways" 949 class="other-buttons-color list-group-item "> 950 <span class="fa fa-bookmark"></span>Qatar Airways <span 951 class="badge alert-success">16</span> 952 </a> 953 954 955 956 957 958 <a href="https://ptsell.com/ru/category/air-canada-aeroplan" 959 class="other-buttons-color list-group-item "> 960 <span class="fa fa-bookmark"></span>Air Canada (Aeroplan) <span 961 class="badge alert-success">26</span> 962 </a> 963 964 965 966 967 968 <a href="https://ptsell.com/ru/category/air-france-flying-blue-klm-transavia" 969 class="other-buttons-color list-group-item "> 970 <span class="fa fa-bookmark"></span>Air France (Flying Blue | KLM | Transavia) <span 971 class="badge alert-success">3</span> 972 </a> 973 974 975 976 977 978 <a href="https://ptsell.com/ru/category/aerolineas" 979 class="other-buttons-color list-group-item "> 980 <span class="fa fa-bookmark"></span>Aerolineas <span 981 class="badge alert-success">9</span> 982 </a> 983 984 985 986 987 988 <a href="https://ptsell.com/ru/category/flydubai-emirates-skywards-miles" 989 class="other-buttons-color list-group-item "> 990 <span class="fa fa-bookmark"></span>FlyDubai | Emirates | Skywards Miles <span 991 class="badge alert-success">16</span> 992 </a> 993 994 995 996 997 998 <a href="https://ptsell.com/ru/category/british-airways" 999 class="other-buttons-color list-group-item ">
1000 <span class="fa fa-bookmark"></span>British Airways <span 1001 class="badge alert-success">14</span> 1002 </a> 1003 1004 1005 1006 1007 1008 <a href="https://ptsell.com/ru/category/united-airlines" 1009 class="other-buttons-color list-group-item "> 1010 <span class="fa fa-bookmark"></span>UNITED AIRLINES <span 1011 class="badge alert-success">11</span> 1012 </a> 1013 1014 1015 1016 1017 1018 <a href="https://ptsell.com/ru/category/turkishairlines" 1019 class="other-buttons-color list-group-item "> 1020 <span class="fa fa-bookmark"></span>TurkishAirlines <span 1021 class="badge alert-success">20</span> 1022 </a> 1023 1024 1025 1026 1027 1028 <a href="https://ptsell.com/ru/category/southwest-airlines" 1029 class="other-buttons-color list-group-item "> 1030 <span class="fa fa-bookmark"></span>SouthWest Airlines <span 1031 class="badge alert-success">21</span> 1032 </a> 1033 1034 1035 1036 1037 1038 <a href="https://ptsell.com/ru/category/smiles-com-br-gol-airlines-voegol" 1039 class="other-buttons-color list-group-item "> 1040 <span class="fa fa-bookmark"></span>Smiles Com BR | GOL Airlines | Voegol <span 1041 class="badge alert-success">11</span> 1042 </a> 1043 1044 1045 1046 1047 1048 <a href="https://ptsell.com/ru/category/accor-hotels-rixos-novotel-sofitel-and-more" 1049 class="other-buttons-color list-group-item "> 1050 <span class="fa fa-bookmark"></span>Accor Hotels (Rixos, Novotel, Sofitel & more) <span 1051 class="badge alert-success">24</span> 1052 </a> 1053 1054 1055 1056 1057 1058 <a href="https://ptsell.com/ru/category/lifemiles-avianca" 1059 class="other-buttons-color list-group-item "> 1060 <span class="fa fa-bookmark"></span>Lifemiles (Avianca) <span 1061 class="badge alert-success">21</span> 1062 </a> 1063 1064 1065 1066 1067 1068 <a href="https://ptsell.com/ru/category/ethiopian-airlines-sheba-miles" 1069 class="other-buttons-color list-group-item "> 1070 <span class="fa fa-bookmark"></span>Ethiopian Airlines [Sheba Miles] <span 1071 class="badge alert-success">19</span> 1072 </a> 1073 1074 1075 1076 1077 1078 <a href="https://ptsell.com/ru/category/korean-air-skypass-club" 1079 class="other-buttons-color list-group-item "> 1080 <span class="fa fa-bookmark"></span>KOREAN AIR (SKYPASS Club) <span 1081 class="badge alert-success">4</span> 1082 </a> 1083 1084 1085 1086 1087 1088 <a href="https://ptsell.com/ru/category/bestwestern" 1089 class="other-buttons-color list-group-item "> 1090 <span class="fa fa-bookmark"></span>BestWestern <span 1091 class="badge alert-success">2</span> 1092 </a> 1093 1094 1095 1096 1097 1098 <a href="https://ptsell.com/ru/category/ihg-and-holidayinn-club" 1099 class="other-buttons-color list-group-item ">
1100 <span class="fa fa-bookmark"></span>IHG & HolidayInn Club <span 1101 class="badge alert-success">4</span> 1102 </a> 1103 1104 1105 1106 1107 1108 <a href="https://ptsell.com/ru/category/all-nipon-airlines-anacojp" 1109 class="other-buttons-color list-group-item "> 1110 <span class="fa fa-bookmark"></span>All Nipon Airlines [ANA.CO.JP] <span 1111 class="badge alert-success">2</span> 1112 </a> 1113 1114 1115 1116 1117 1118 <a href="https://ptsell.com/ru/category/marriot-bonvoy" 1119 class="other-buttons-color list-group-item "> 1120 <span class="fa fa-bookmark"></span>Marriot Bonvoy <span 1121 class="badge alert-success">12</span> 1122 </a> 1123 1124 1125 1126 1127 1128 <a href="https://ptsell.com/ru/category/delta-airlines-skymiles" 1129 class="other-buttons-color list-group-item "> 1130 <span class="fa fa-bookmark"></span>Delta Airlines | Skymiles <span 1131 class="badge alert-success">18</span> 1132 </a> 1133 1134 1135 1136 1137 1138 <a href="https://ptsell.com/ru/category/aeromexico-clubpremier" 1139 class="other-buttons-color list-group-item "> 1140 <span class="fa fa-bookmark"></span>AeroMexico (ClubPremier) <span 1141 class="badge alert-success">13</span> 1142 </a> 1143 1144 1145 1146 1147 1148 <a href="https://ptsell.com/ru/category/alaska-airlines-mileage-plan" 1149 class="other-buttons-color list-group-item "> 1150 <span class="fa fa-bookmark"></span>Alaska Airlines [Mileage Plan] <span 1151 class="badge alert-success">39</span> 1152 </a> 1153 1154 1155 1156 1157 1158 <a href="https://ptsell.com/ru/category/hilton" 1159 class="other-buttons-color list-group-item "> 1160 <span class="fa fa-bookmark"></span>HILTON <span 1161 class="badge alert-success">9</span> 1162 </a> 1163 1164 1165 1166 1167 1168 <a href="https://ptsell.com/ru/category/jetblue-trueblue" 1169 class="other-buttons-color list-group-item "> 1170 <span class="fa fa-bookmark"></span>JetBlue - TrueBlue <span 1171 class="badge alert-success">22</span> 1172 </a> 1173 1174 1175 1176 1177 1178 <a href="https://ptsell.com/ru/category/flytap-tap-portugal" 1179 class="other-buttons-color list-group-item "> 1180 <span class="fa fa-bookmark"></span>FlyTAP | TAP Portugal <span 1181 class="badge alert-success">11</span> 1182 </a> 1183 1184 1185 1186 1187 1188 <a href="https://ptsell.com/ru/category/hotelscom-expedia-vrbo" 1189 class="other-buttons-color list-group-item "> 1190 <span class="fa fa-bookmark"></span>Hotels.com | Expedia | VRBO <span 1191 class="badge alert-success">1</span> 1192 </a> 1193 1194 1195 1196 1197 1198 <a href="https://ptsell.com/ru/category/gift-cards" 1199 class="other-buttons-color list-group-item ">
1200 <span class="fa fa-bookmark"></span>Gift Cards <span 1201 class="badge alert-success">4</span> 1202 </a> 1203 1204 1205 1206 1207 1208 <a href="https://ptsell.com/ru/category/ita-airways-volare-points" 1209 class="other-buttons-color list-group-item "> 1210 <span class="fa fa-bookmark"></span>ITA Airways [Volare Points] <span 1211 class="badge alert-success">2</span> 1212 </a> 1213 1214 1215 1216 1217 1218 <a href="https://ptsell.com/ru/category/japan-airlines-jal" 1219 class="other-buttons-color list-group-item "> 1220 <span class="fa fa-bookmark"></span>Japan Airlines - JAL <span 1221 class="badge alert-success">1</span> 1222 </a> 1223 1224 1225 1226 1227 1228 <a href="https://ptsell.com/ru/category/west-jet-westjet" 1229 class="other-buttons-color list-group-item "> 1230 <span class="fa fa-bookmark"></span>West Jet | WestJet <span 1231 class="badge alert-success">11</span> 1232 </a> 1233 1234 1235 1236 1237 1238 <a href="https://ptsell.com/ru/category/miles-and-more-lufthansa-austrian-lot-swiss-airlines" 1239 class="other-buttons-color list-group-item "> 1240 <span class="fa fa-bookmark"></span>Miles & More [Lufthansa, Austrian, Lot, Swiss Airlines] <span 1241 class="badge alert-success">29</span> 1242 </a> 1243 1244 1245 1246 1247 1248 <a href="https://ptsell.com/ru/category/airmilesca-collectors" 1249 class="other-buttons-color list-group-item "> 1250 <span class="fa fa-bookmark"></span>AirMiles.ca | Collectors <span 1251 class="badge alert-success">1</span> 1252 </a> 1253 1254 1255 1256 1257 1258 <a href="https://ptsell.com/ru/category/finnair" 1259 class="other-buttons-color list-group-item "> 1260 <span class="fa fa-bookmark"></span>FinnAIr <span 1261 class="badge alert-success">5</span> 1262 </a> 1263 1264 1265 1266 1267 1268 <a href="https://ptsell.com/ru/category/pia-pakistan-int-airlines" 1269 class="other-buttons-color list-group-item "> 1270 <span class="fa fa-bookmark"></span>PIA - Pakistan Int. Airlines <span 1271 class="badge alert-success">2</span> 1272 </a> 1273 1274 1275 1276 1277 1278 <a href="https://ptsell.com/ru/category/egypt-air-plus" 1279 class="other-buttons-color list-group-item "> 1280 <span class="fa fa-bookmark"></span>Egypt Air Plus <span 1281 class="badge alert-success">3</span> 1282 </a> 1283 1284 1285 1286 1287 1288 <a href="https://ptsell.com/ru/category/spirit-airlines" 1289 class="other-buttons-color list-group-item "> 1290 <span class="fa fa-bookmark"></span>Spirit Airlines <span 1291 class="badge alert-success">3</span> 1292 </a> 1293 1294 1295 1296 1297 1298 <a href="https://ptsell.com/ru/category/hyatt" 1299 class="other-buttons-color list-group-item ">
1300 <span class="fa fa-bookmark"></span>Hyatt <span 1301 class="badge alert-success">3</span> 1302 </a> 1303 1304 1305 1306 1307 1308 <a href="https://ptsell.com/ru/category/copa-ailrines-connect-miles" 1309 class="other-buttons-color list-group-item "> 1310 <span class="fa fa-bookmark"></span>Copa Ailrines | Connect Miles <span 1311 class="badge alert-success">2</span> 1312 </a> 1313 1314 1315 1316 1317 1318 <a href="https://ptsell.com/ru/category/air-vistara-vistara-club" 1319 class="other-buttons-color list-group-item "> 1320 <span class="fa fa-bookmark"></span>Air Vistara (Vistara Club) <span 1321 class="badge alert-success">3</span> 1322 </a> 1323 1324 1325 1326 1327 1328 <a href="https://ptsell.com/ru/category/airindia" 1329 class="other-buttons-color list-group-item "> 1330 <span class="fa fa-bookmark"></span>AirIndia <span 1331 class="badge alert-success">4</span> 1332 </a> 1333 1334 1335 1336 1337 1338 <a href="https://ptsell.com/ru/category/virginaustralia-velocityfrequentflyer" 1339 class="other-buttons-color list-group-item "> 1340 <span class="fa fa-bookmark"></span>VirginAustralia | VelocityFrequentFlyer <span 1341 class="badge alert-success">4</span> 1342 </a> 1343 1344 1345 1346 1347 1348 <a href="https://ptsell.com/ru/category/virgin-atlantic-flying-club" 1349 class="other-buttons-color list-group-item "> 1350 <span class="fa fa-bookmark"></span>Virgin Atlantic - Flying Club <span 1351 class="badge alert-success">12</span> 1352 </a> 1353 1354 1355 1356 1357 1358 <a href="https://ptsell.com/ru/category/etihad-airways-etihad-guest" 1359 class="other-buttons-color list-group-item "> 1360 <span class="fa fa-bookmark"></span>Etihad Airways - Etihad Guest <span 1361 class="badge alert-success">1</span> 1362 </a> 1363 1364 1365 1366 1367 1368 <a href="https://ptsell.com/ru/category/srilankan-airways-flysmiles" 1369 class="other-buttons-color list-group-item "> 1370 <span class="fa fa-bookmark"></span>Srilankan AIrways - FlySmiles <span 1371 class="badge alert-success">8</span> 1372 </a> 1373 1374 1375 1376 1377 1378 <a href="https://ptsell.com/ru/category/royalairmaroc-safar-flyer-miles" 1379 class="other-buttons-color list-group-item "> 1380 <span class="fa fa-bookmark"></span>RoyalAirMaroc - Safar Flyer Miles <span 1381 class="badge alert-success">13</span> 1382 </a> 1383 1384 1385 1386 1387 1388 <a href="https://ptsell.com/ru/category/aireuropa-suma" 1389 class="other-buttons-color list-group-item "> 1390 <span class="fa fa-bookmark"></span>AirEuropa SUMA <span 1391 class="badge alert-success">7</span> 1392 </a> 1393 1394 1395 1396 1397 1398 <a href="https://ptsell.com/ru/category/allegiant-air-allegiantaircom" 1399 class="other-buttons-color list-group-item ">
1400 <span class="fa fa-bookmark"></span>Allegiant Air - allegiantair.com <span 1401 class="badge alert-success">3</span> 1402 </a> 1403 1404 1405 1406 1407 1408 <a href="https://ptsell.com/ru/category/iberia" 1409 class="other-buttons-color list-group-item "> 1410 <span class="fa fa-bookmark"></span>Iberia <span 1411 class="badge alert-success">6</span> 1412 </a> 1413 1414 1415 1416 1417 1418 <a href="https://ptsell.com/ru/category/eva-air" 1419 class="other-buttons-color list-group-item "> 1420 <span class="fa fa-bookmark"></span>EVA Air <span 1421 class="badge alert-success">6</span> 1422 </a> 1423 1424 1425 1426 1427 1428 <a href="https://ptsell.com/ru/category/frontier-airlines-flyfrontier" 1429 class="other-buttons-color list-group-item "> 1430 <span class="fa fa-bookmark"></span>Frontier Airlines | FlyFrontier <span 1431 class="badge alert-success">3</span> 1432 </a> 1433 1434 1435 1436 1437 1438 <a href="https://ptsell.com/ru/category/singapore-kris" 1439 class="other-buttons-color list-group-item "> 1440 <span class="fa fa-bookmark"></span>Singapor e Airlines [KrisFLyer] <span 1441 class="badge alert-success">1</span> 1442 </a> 1443 1444 1445 1446 1447 1448 <a href="https://ptsell.com/ru/category/falconflyer" 1449 class="other-buttons-color list-group-item "> 1450 <span class="fa fa-bookmark"></span>GulfAir - FalconFLyer <span 1451 class="badge alert-success">2</span> 1452 </a> 1453 1454 1455 1456 1457 1458 <a href="https://ptsell.com/ru/category/scandichotels" 1459 class="other-buttons-color list-group-item "> 1460 <span class="fa fa-bookmark"></span>ScandicHotels - Scandic Friends <span 1461 class="badge alert-success">1</span> 1462 </a> 1463 1464 1465 1466 1467 1468 <a href="https://ptsell.com/ru/category/rwandamiles" 1469 class="other-buttons-color list-group-item "> 1470 <span class="fa fa-bookmark"></span>RwandaAIr - DreamMiles <span 1471 class="badge alert-success">1</span> 1472 </a> 1473 1474 1475 1476 1477 1478 <a href="https://ptsell.com/ru/category/flysas" 1479 class="other-buttons-color list-group-item "> 1480 <span class="fa fa-bookmark"></span>FlySAS - Scandinavian Airlines <span 1481 class="badge alert-success">0</span> 1482 </a> 1483 1484 1485 1486 1487 1488 1489 </div> 1490 </div> 1491 </div> 1492 1493 <div class="col-md-9 "> 1494 <div data-goods-region data-goods-container="tbody"> 1495<table class="table table-bordered shop_goods" 1496 > 1497 <tr> 1498 <th>ТоваÑ</th> 1499 <th>Ðол-во</th> 1500 <th>Ðа 1 ÑÑ.</th> 1501 <th></th> 1502 </tr> 1503 <tr class="separator" data-goods-item> 1504 <td colspan="4" class="text-center"> 1505 Hawaiian Airlines Miles 1506 </td> 1507 </tr> 1508 1509 <tr> 1510 <td colspan="4" class=""> 1511 1512 </td> 1513 </tr> 1514 </table> 1515 1516</div> 1517 1518 </div> 1519 </div> 1520 1521 <div class="row row-block row-block-footer"> 1522 <div class="col-md-12"> 1523 <p style="font-family:'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:14px;"><strong>CASH-BACK.BIZ.UA - ÐÑодажа ÑазнообÑазнÑÑ Ð°ÐºÐºÐ°ÑнÑов Ñ милÑми, бонÑÑами, поинÑами<br /><br /><img alt="" src="https://upload.wikimedia.org/wikipedia/commons/5/5c/Telegram_Messenger.png" style="height:20px;width:20px;" />CHANNEL_TELEGRAM: <a href="https://t.me/joinchat/AAAAAEL8s5_zaE5Yyrm9xA" style="background-size:initial;">@cash-back.biz.ua</a><br /></strong></p><h3><span style="font-size:9px;color:rgb(51,51,51);"><span style="font-weight:700;"><img alt="" src="https://upload.wikimedia.org/wikipedia/commons/5/5c/Telegram_Messenger.png" style="height:20px;width:20px;" /></span></span><span style="font-size:11px;color:rgb(51,51,51);"><span style="font-weight:700;"> </span></span><span style="font-size:12px;"><span style="font-weight:700;">Contact Telegram:</span> <a href="https://t.me/airlinesmiless" style="background-size:initial;">@airlinesmiless</a></span></h3><p><br /><span style="font-family:'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:12px;"></span></p> 1524 </div> 1525 </div> 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543
1543<script> 1544 $(function () { 1545 $('.separator').each(function () { 1546 var el = $(this).prev('tr'); 1547 if (el.hasClass("separator")) { 1548 el.remove(); 1549 } 1550 }); 1551 }); 1552 </script>
1552 1553 1554 </div> 1555 </div> 1556 </div> 1557<div id="quantity-modal-template" class="modal" tabindex="-1" role="dialog" style="display: none;"> 1558 <div class="modal-backdrop fade in"></div> 1559 <div class="modal-dialog" role="document"> 1560 <div class="modal-content"> 1561 1562 <div class="modal-header"> 1563 <button type="button" class="close" aria-label="Close"> 1564 <span>×</span> 1565 </button> 1566 <div class="modal-title fw-bold"></div> 1567 </div> 1568 1569 <div class="modal-body"> 1570 <div class="row" style="display: flex; align-items: center;"> 1571 <div class="col-xs-4 text-center"> 1572 <label class="add-to-cart-modal-label">ÐолиÑеÑÑво</label> 1573 <div class="quantity-control" style="display: flex; justify-content: center;"> 1574 <button class="btn btn-outline-secondary btn-sm btn-decrement">-</button> 1575 <input type="text" class="form-control text-center quantity-input" value="1" 1576 style="max-width: 70px;" /> 1577 <button class="btn btn-outline-secondary btn-sm btn-increment">+</button> 1578 </div> 1579 <small class="text-muted"> 1580 ÐоÑÑÑпно: <span class="available-qty">0</span> 1581 </small> 1582 </div> 1583 <div class="col-xs-8"> 1584 <h5 class="product-title"></h5> 1585 </div> 1586 </div> 1587 </div> 1588 1589 <div class="modal-footer"> 1590 <button class="btn btn-success btn-block checkout-btn"> 1591 ÐеÑейÑи к оплаÑе (<span 1592 class="total-price">0,00 â½</span>) 1593 </button> 1594 </div> 1595 1596 </div> 1597 </div> 1598 </div> 1599 <style> 1600 /* Ðелаем кÑеÑÑик кÑÑпнее */
1601 .modal-header .close { 1602 font-size: 32px; 1603 /* или болÑÑе пÑи Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ÑÑи */ 1604 line-height: 1; 1605 opacity: 0.8; 1606 } 1607 1608 /* ЦенÑÑиÑÑем по веÑÑикали */ 1609 .modal-header { 1610 position: relative; 1611 min-height: 50px; 1612 /* обÑзаÑелÑно, ÑÑÐ¾Ð±Ñ Ð±Ñл оÑÑÑÑп */ 1613 } 1614 1615 .modal-header .close { 1616 position: absolute; 1617 top: 50%; 1618 transform: translateY(-50%); 1619 right: 15px; 1620 } 1621 1622 /* ÐополниÑелÑно â пÑи наведении */ 1623 .modal-header .close:hover { 1624 opacity: 1; 1625 } 1626 1627 /* ЦенÑÑиÑÑем модалÑное окно по веÑÑикали */ 1628 .modal { 1629 text-align: center; 1630 padding: 0 !important; 1631 } 1632 1633 /* ÐÑжно Ð´Ð»Ñ inline-block ÑенÑÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ */ 1634 .modal:before { 1635 content: ''; 1636 display: inline-block; 1637 height: 100%; 1638 vertical-align: middle; 1639 margin-right: -4px; 1640 /* ÑÑÐ¾Ð±Ñ Ð¸Ð·Ð±ÐµÐ¶Ð°ÑÑ ÑмеÑÐµÐ½Ð¸Ñ */ 1641 } 1642
1643 .modal-dialog { 1644 display: inline-block; 1645 text-align: left; 1646 vertical-align: middle; 1647 } 1648 1649 /* ÐÑÑÑем ÑкÑолл и не даÑм пÑокÑÑÑиваÑÑ Ñон */ 1650 body.modal-open { 1651 overflow: hidden; 1652 } 1653 1654 @media (max-width: 767px) { 1655 .modal-dialog { 1656 width: 95%; 1657 } 1658 } 1659 </style> 1660
1660<script> 1661 $(document).ready(function () { 1662 $('.buy').on('click', function (e) { 1663 e.preventDefault(); 1664 const goodId = $(this).data('good-id'); 1665 const title = $(this).data('title'); 1666 const price = $(this).data('price'); 1667 1668 $.post("https://ptsell.com/ru/cart/add", { 1669 goodId: goodId, 1670 _token: 'gM2wT4bPElRiqXG8pVy8rHd8QT5nl5GgSp2R083Q' 1671 }).done(function (response) { 1672 const modal = openQuantityModal( 1673 goodId, 1674 title, 1675 price, 1676 response.currentQuantity || 1, 1677 response.availableQuantity 1678 ); 1679 1680 // ÐбновлÑем ÑÐµÐ½Ñ ÑÑÐ°Ð·Ñ Ð¿Ñи оÑкÑÑÑии модалки 1681 modal.find('.total-price').text(response.totalPrice); 1682 1683 // Broadcast ÑобÑÑие Ñже диÑпаÑÑиÑÑÑ Ð² конÑÑоллеÑе ShopOrderController::addToCart() 1684 // ÐомпоненÑÑ Ð¾Ð±Ð½Ð¾Ð²ÑÑÑÑ Ð°Ð²ÑомаÑиÑеÑки ÑеÑез WebSocket 1685 }).fail(function (xhr) { 1686 alert(xhr.responseJSON?.message || 'ÐÑибка пÑи добавлении ÑоваÑа'); 1687 }); 1688 }); 1689 }); 1690 1691 function openQuantityModal(goodId, title, price, quantity, availableQuantity) { 1692 const modalHtml = $('#quantity-modal-template') 1693 .clone() 1694 .removeAttr('id') 1695 .attr('id', 'quantity-modal') 1696 .appendTo('body') 1697 .show(); 1698 1699 modalHtml.find('.modal-title').text('Ð¢Ð¾Ð²Ð°Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½ в коÑзинÑ'); 1700 modalHtml.find('.product-title').text(title); 1701 modalHtml.find('.available-qty').text(availableQuantity); 1702 modalHtml.find('.checkout-btn').data('good-id', goodId).data('price', price); 1703 modalHtml.find('.quantity-input').val(quantity).data('max', availableQuantity).data('min', 1); 1704 1705 $('body').css('overflow', 'hidden'); 1706 1707 modalHtml.find('.close, .modal-backdrop, .continue-shopping').on('click', function () { 1708 modalHtml.remove(); 1709 $('body').css('overflow', ''); 1710 }); 1711 1712 modalHtml.find('.checkout-btn').on('click', function () { 1713 const qty = parseInt(modalHtml.find('.quantity-input').val()); 1714 const goodId = $(this).data('good-id'); 1715 1716 // СнаÑала обновлÑем колиÑеÑÑво в коÑзине 1717 $.post("https://ptsell.com/ru/cart/update-quantity", { 1718 goodId: goodId, 1719 quantity: qty, 1720 _token: 'gM2wT4bPElRiqXG8pVy8rHd8QT5nl5GgSp2R083Q' 1721 }).done(function () { 1722 1723 window.location.href = 'https://ptsell.com/ru/cart'; 1724 }); 1725 }); 1726 1727 return modalHtml; 1728 } 1729 1730 $(document).on('click', '.btn-decrement', function () { 1731 const modal = $(this).closest('.modal'); 1732 const input = modal.find('.quantity-input'); 1733 let val = parseInt(input.val()) || 0; 1734 const min = input.data('min') || 1; 1735 1736 if (val > min) { 1737 val -= 1; 1738 input.val(val); 1739 updateCartQuantity(modal, val); 1740 } 1741 }); 1742 1743 $(document).on('click', '.btn-increment', function () { 1744 const modal = $(this).closest('.modal'); 1745 const input = modal.find('.quantity-input'); 1746 let val = parseInt(input.val()) || 0; 1747 const max = input.data('max') || 99; 1748 1749 if (val < max) { 1750 val += 1; 1751 input.val(val); 1752 updateCartQuantity(modal, val); 1753 } 1754 }); 1755 1756 let debounceTimeout = null; 1757 1758 function updateCartQuantity(modal, quantity) { 1759 const goodId = modal.find('.checkout-btn').data('good-id'); 1760 1761 if (debounceTimeout) clearTimeout(debounceTimeout); 1762 debounceTimeout = setTimeout(() => { 1763 $.post("https://ptsell.com/ru/cart/update-quantity", { 1764 goodId: goodId, 1765 quantity: quantity, 1766 _token: 'gM2wT4bPElRiqXG8pVy8rHd8QT5nl5GgSp2R083Q' 1767 }).done(function (response) { 1768 // ÐбновлÑем total price в модалÑном окне 1769 if (response.totalPrice) { 1770 modal.find('.total-price').text(response.totalPrice); 1771 } 1772 }).fail(function (response) { 1773 alert(response.responseJSON?.message || 'ÐÑибка Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÐºÐ¾Ð»Ð¸ÑеÑÑва'); 1774 }); 1775 }, 300); 1776 } 1777
1778 // СлÑÑаем Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ÐºÐ¾ÑÐ·Ð¸Ð½Ñ Ð´Ð»Ñ ÑÐ¸Ð½Ñ ÑонизаÑии модалки ÑеÑез Echo 1779 $(document).ready(function () { 1780 if (typeof Echo === 'undefined') { 1781 return; 1782 } 1783 1784 const modalSessionId = 'nLoIQSYoaIjCoTd4pBhsIbS5Czn1pq7VVVkkagxn'; 1785 const channelName = 'cart.session.' + modalSessionId; 1786 1787 // ÐодпиÑÑваемÑÑ Ð½Ð° канал один Ñаз пÑи загÑÑзке ÑÑÑаниÑÑ 1788 // Echo пÑÐ¾Ð´Ð¾Ð»Ð¶Ð°ÐµÑ ÑлÑÑаÑÑ Ð´Ð°Ð¶Ðµ когда вкладка в Ñоне 1789 Echo.channel(channelName) 1790 .listen('CartUpdated', (event) => { 1791 // Ð¡Ð¸Ð½Ñ ÑонизиÑÑем Ð¼Ð¾Ð´Ð°Ð»ÐºÑ Ð¿Ñи полÑÑении ÑобÑÑÐ¸Ñ 1792 syncModalQuantityFromCart(); 1793 }); 1794 }); 1795 1796 function syncModalQuantityFromCart() { 1797 const modal = $('#quantity-modal'); 1798 if (modal.length === 0 || !modal.is(':visible')) { 1799 return; 1800 } 1801 1802 const goodId = modal.find('.checkout-btn').data('good-id'); 1803 if (!goodId) { 1804 return; 1805 } 1806 1807 // ÐолÑÑаем акÑÑалÑное колиÑеÑÑво из коÑÐ·Ð¸Ð½Ñ ÑеÑез AJAX 1808 $.ajax({ 1809 url: "https://ptsell.com/ru/cart/get-quantity", 1810 method: 'POST', 1811 data: { 1812 goodId: goodId, 1813 _token: 'gM2wT4bPElRiqXG8pVy8rHd8QT5nl5GgSp2R083Q' 1814 }, 1815 success: function (response) { 1816 if (response.success && response.quantity !== undefined) { 1817 const currentQuantity = parseInt(modal.find('.quantity-input').val()); 1818 const newQuantity = parseInt(response.quantity); 1819 1820 if (currentQuantity !== newQuantity) { 1821 modal.find('.quantity-input').val(newQuantity); 1822 } 1823 1824 // ÐбновлÑем ÑÐµÐ½Ñ 1825 if (response.totalPrice) { 1826 modal.find('.total-price').text(response.totalPrice); 1827 } 1828 } 1829 }, 1830 error: function () { 1831 // Ð ÑлÑÑае оÑибки ниÑего не делаем 1832 } 1833 }); 1834 } 1835 $(document).on('input', '.quantity-input', function () { 1836 const input = $(this); 1837 const modal = input.closest('.modal'); 1838 let val = parseInt(input.val()) || 0; 1839 const min = input.data('min') || 1; 1840 const max = input.data('max') || 99; 1841 1842 if (val < min) val = min; 1843 if (val > max) val = max; 1844 1845 input.val(val); 1846 updateCartQuantity(modal, val); 1847 }); 1848 </script>
1848 1849 <footer id="footer"> 1850 <div class="container"> 1851 <a class="footer-links report" href="https://ptsell.com/ru/complain/liavelru" rel="nofollow">СвÑÐ·Ñ Ñ Ð¿ÑодавÑом магазина</a> 1852 <a class="footer-links lang-switcher" rel="nofollow" 1853 href="/en/category/hawaiianairlines" title="English">English</a> 1854 </div> 1855</footer> 1856<!-- Google tag (gtag.js) -->
vendor: 68 bytes, lines 1856-1857
1856 1857 <script async src="https://www.googletagmanager.com/gtag/js?id=
1857G-KT9X7LPHP9
vendor: 16 bytes, lines 1857-1858
1857"></script> 1858
1858<script> 1859
vendor: 152 bytes, lines 1859-1863
1859window.dataLayer = window.dataLayer || []; 1860 function gtag(){dataLayer.push(arguments);} 1861 gtag('js', new Date()); 1862 1863 gtag('config', '
1863G-KT9X7LPHP9
vendor: 8 bytes, lines 1863-1864
1863'); 1864
1864</script>
1864 1865
1866<script src="/static/js/bootstrap.min.js"></script>
vendor: 1 bytes, line 1866
1866
1867<script> 1868 var shopCurrency = "rub"; 1869 // ÐалÑÑа ÐÐÐÐÐÐ Ñен (на англ. веÑÑии ÑÑблÑвой виÑÑÐ¸Ð½Ñ â usd) и множиÑÐµÐ»Ñ Ðº ÑÑммам, 1870 // коÑоÑÑе ÑеÑÐ²ÐµÑ ÑÑиÑÐ°ÐµÑ Ð² валÑÑе виÑÑинÑ. Ðаказ и оплаÑа оÑÑаÑÑÑÑ Ð² shopCurrency. 1871 var shopDisplayCurrency = "rub"; 1872 var shopDisplayRate = 1; 1873</script>
1873 1874 1875 <a href="https://www.liveinternet.ru/click" 1876target="_blank"><img id="licntD821" width="31" height="31" style="border:0" 1877title="LiveInternet" 1878src="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAEALAAAAAABAAEAAAIBTAA7" 1879alt=""/></a>
1879<script>(function(d,s){d.getElementById("licntD821").src= 1880"https://counter.yadro.ru/hit?t50.11;r"+escape(d.referrer)+ 1881((typeof(s)=="undefined")?"":";s"+s.width+"*"+s.height+"*"+ 1882(s.colorDepth?s.colorDepth:s.pixelDepth))+";u"+escape(d.URL)+ 1883";h"+escape(d.title.substring(0,150))+";"+Math.random()}) 1884(document,screen)</script>
1884 1885<!-- Yandex.Metrika counter -->
1886<script type="text/javascript" >
vendor: 413 bytes, lines 1886-1893
1886 1887 (function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)}; 1888 m[i].l=1*new Date(); 1889 for (var j = 0; j < document.scripts.length; j++) {if (document.scripts[j].src === r) { return; }} 1890 k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)}) 1891 (window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym"); 1892 1893 ym(
189396711796
vendor: 105 bytes, lines 1893-1897
1893, "init", { 1894 clickmap:true, 1895 trackLinks:true, 1896 accurateTrackBounce:true 1897 });
1898</script>
1898 1899<noscript><div><img src="https://mc.yandex.ru/watch/96711796" style="position:absolute; left:-9999px;" alt="" /></div></noscript> 1900<!-- /Yandex.Metrika counter --> 1901 </body> 1902</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.