|
24.01.2014, 08:13
#38536276
Ссылка:
Ссылка на сообщение:
Ссылка с названием темы:
|
|
|
|
Здесь представлен мой код, хотел бы услышать критику в его адрес, а также возможно с точки зрения программиста, его улучшить
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. 113. 114. 115. 116. 117. 118. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 172. 173. 174. 175. 176. 177. 178. 179. 180. 181. 182. 183. 184. 185. 186. 187. 188. 189. 190. 191. 192. 193. 194. 195. 196. 197. 198. 199. 200. 201. 202. 203. 204. 205. 206. 207. 208. 209. 210. 211. 212. 213. 214. 215. 216. 217. 218. 219. 220. 221. 222. 223. 224. 225. 226. 227. 228. 229. 230. 231. 232. 233. 234. 235. 236. 237. 238. 239. 240. 241. 242. 243. 244. 245. 246. 247. 248. 249. 250. 251. 252. 253. 254. 255. 256. 257. 258. 259. 260. 261. 262. 263. 264. 265. 266. 267. 268. 269. 270. 271. 272. 273. 274. 275. 276. 277. 278. 279. 280. 281. 282. 283. 284. 285. 286. 287. 288. 289. 290. 291. 292. 293. 294. 295. 296. 297. 298. 299. 300. 301. 302. 303. 304. 305. 306. 307. 308. 309. 310. 311. 312. 313. 314. 315. 316. 317. 318. 319. 320. 321. 322. 323. 324. 325. 326. 327. 328. 329. 330. 331. 332. 333. 334. 335. 336. 337. 338. 339. 340. 341. 342. 343. 344. 345. 346. 347. 348. 349. 350. 351. 352. 353. 354. 355. 356. 357. 358. 359. 360. 361. 362. 363. 364. 365. 366. 367. 368. 369. 370. 371. 372. 373. 374. 375. 376. 377. 378. 379. 380. 381. 382. 383. 384. 385. 386. 387. 388. 389. 390. 391. 392. 393. 394. 395. 396. 397. 398. 399. 400. 401. 402. 403. 404. 405. 406. 407. 408. 409. 410. 411. 412. 413. 414. 415. 416. 417. 418. 419. 420. 421. 422. 423. 424. 425. 426. 427. 428. 429. 430. 431. 432. 433. 434. 435. 436. 437. 438. 439. 440. 441. 442. 443. 444. 445. 446. 447. 448. 449. 450. 451. 452. 453. 454. 455. 456. 457. 458. 459. 460. 461. 462. 463. 464. 465. 466. 467. 468. 469. 470. 471. 472. 473. 474. 475. 476. 477. 478. 479. 480. 481. 482. 483. 484. 485. 486. 487. 488. 489. 490. 491. 492. 493. 494. 495. 496. 497. 498. 499. 500. 501. 502. 503. 504. 505. 506. 507. 508. 509. 510. 511. 512. 513. 514. 515. 516. 517. 518. 519. 520. 521. 522. 523. 524. 525. 526. 527. 528. 529. 530. 531. 532. 533. 534. 535. 536. 537. 538. 539. 540. 541. 542. 543. 544. 545. 546. 547. 548. 549. 550. 551. 552. 553. 554. 555. 556. 557. 558. 559. 560. 561. 562. 563. 564. 565. 566. 567. 568. 569. 570. 571. 572. 573. 574. 575. 576. 577. 578. 579. 580. 581. 582. 583. 584. 585. 586. 587. 588. 589. 590. 591. 592. 593. 594. 595. 596. 597. 598. 599. 600. 601. 602. 603. 604. 605. 606. 607. 608. 609. 610. 611. 612. 613. 614. 615. 616. 617. 618. 619. 620. 621. 622. 623. 624. 625. 626. 627. 628. 629. 630. 631. 632. 633. 634. 635. 636. 637. 638. 639. 640. 641. 642. 643. 644. 645. 646. 647. 648. 649. 650. 651. 652. 653. 654. 655. 656. 657. 658. 659. 660. 661. 662. 663. 664. 665. 666. 667. 668. 669. 670. 671. 672. 673. 674. 675. 676. 677. 678. 679. 680. 681. 682. 683. 684. 685. 686. 687. 688. 689. 690. 691. 692. 693. 694. 695. 696. 697. 698. 699. 700. 701. 702. 703. 704. 705. 706. 707. 708. 709. 710. 711. 712. 713. 714. 715. 716. 717. 718. 719. 720. 721.
var b = []; // Основной объект
var ntv = 0; // следим за нтв
var cart = ''; // Кука которая следит за выбором параметров пакета пользователем
b = {
ids: {
ololo: 0,
internet: 0,
telephony: 0,
ktv: 0
},
single: [],
phone_has: 0,
wifi_has: 1,
_pult__has: 0,
_karta__has: 0,
tv: {
type: 0,
name: [],
hd: 0,
sd: 0,
all_channels: 0
},
promo_period: 0,
domain: 0,
number: 0,
_pult___karta_: 0,
price: {// Используется для проставки цен в шаблон
promo: 0, // цена на промо период
common: 0, // обычная цена, после промо периода
wifi_price: 0, // покупка wifi
wifi_rent: 0, // аренда wifi
_pult_: 0, // цена каммодуля
_karta_: 0, // цена каммодуля
connect: 0, //цена при подключении
economy: 0, // читаем экономию
sum_promo: 0, // выводим итоговую сумму промо
sum_connect: 0, // выводим итоговую сумму подключения
sum_common: 0, // выводим итоговую сумму после промо периода
sum_device: 0, // выводим итоговую сумму оборудования
tv: 0, // выводим итоговую сумму тв
phone_promo: 0, // цена телефонии
phone: 0
},
packages: [] // Пакеты каналов
};
b.packageHover = function(e) {
var p = b.packages[ jQuery(e.currentTarget).attr('data-package_index') ];
jQuery('.b-backage-single_package_descr').html('<h2 class="b-package-popup__inner-title1 b-package-popup__title_ind4">' + p.name + '</h2><p>' + p.description + '<img class="b-manage-packages-popup-img" src="' + p.image_channel + '" /></p>');
};
b.switchTvType = function() {
var type_atata = jQuery('.b-package-single__tv-type-atata'), type_cabel = jQuery('.b-package-single__tv-type-cabel');
if (type_atata.css('display') == 'none') {
type_cabel.fadeOut(300, function() {
type_atata.fadeIn();
b.tv.type = 1;
if (parseInt(b.number) != 0) {
b._pult__has = 1;
b._karta__has = 0;
} else {
b._pult__has = 0;
b._karta__has = 1;
}
console.log(b._pult__has);
mathBundle();
});
} else {
type_atata.fadeOut(300, function() {
type_cabel.fadeIn();
b.tv.type = 2;
mathBundle();
});
}
return(false);
};
b.managePackages = function() {
var scrollTop = window.pageYOffset || docEl.scrollTop || body.scrollTop;
jQuery(".js-package-single_manage-packages-popup").css('top', scrollTop + 150).show();
jQuery(".b-package__wrap-popup").show();
return(false);
};
b.addPhone = function() {
jQuery('.js-package-single__phone-absent').fadeOut(100, function() {
jQuery('.js-package-single__phone-present').fadeIn(100);
});
b.phone_has = 1;
mathBundle();
return(false);
};
b.removePhone = function() {
jQuery('.js-package-single__phone-present').fadeOut(100, function() {
jQuery('.js-package-single__phone-absent').fadeIn(100);
});
b.phone_has = 0;
mathBundle();
return(false);
};
b.removeWifi = function() {
b.wifi_has = 0;
mathBundle();
return(false);
};
b.changeDevice = function() {
var type_atata = jQuery('.b-package-single__tv-type-atata'), type_cabel = jQuery('.b-package-single__tv-type-cabel');
var device = jQuery(this).val();
switch (device) {
case '_pult_':
b._pult__has = 1;
b._karta__has = 0;
break;
case '_karta_':
b._karta__has = 1;
b._pult__has = 0;
break;
}
if (type_atata.css('display') == 'none') {
b.tv.type = 1;
type_cabel.fadeOut(300, function() {
type_atata.fadeIn();
});
}
mathBundle();
return(false);
};
b.addWifi = function() {
b.wifi_has = 1;
mathBundle();
return(false);
};
b.hidePrices = function() {
jQuery('.js-package-single__detailed-prices').hide('slow');
jQuery('.js-package-single__hide-detailed-prices').fadeOut('slow', function() {
jQuery('.js-package-single__show-detailed-prices').fadeIn('slow');
});
return(false);
};
b.showPrices = function() {
jQuery('.js-package-single__detailed-prices').show('slow');
jQuery('.js-package-single__show-detailed-prices').fadeOut('slow', function() {
jQuery('.js-package-single__hide-detailed-prices').fadeIn('slow');
});
return(false);
};
mathBundle = function() {
// Ищем подходящий пакет и делаем его активным
// Переменные по услугам
var d = 0, k = 0, t = 0;
if (b.phone_has == 1) {
t = b.ids.telephony
}
if (b.tv.type == 1) {
d = b.ids.atatatv
}
if (b.tv.type == 2) {
k = b.ids.ktv
}
b.single = getBundleByMatrix(b.ids.internet, d, k, t);
// Смотрим наличие телефонии
if (b.phone_has == 1) {
// Если промо период равен 0, то стоимость телефонии 150
if (b.promo_period == 0) {
b.price.phone_promo = 150;
} else {
b.price.phone_promo = 111;
}
} else {
b.price.phone = 0;
b.price.phone_promo = 0;
}
// Смотрим какое телевидение выбрано 1. atata TV, 2. КТВ
if (b.tv.type == 1) {
if (parseInt(b.single.field_bundles__pult__rent_price) != 0) {
b.price._pult_ = parseInt(b.single.pole___pult__rent_price); // цена декодера
} else {
b.price._pult_ = parseInt(b.single.pole___pult__price); // цена декодера
}
if (parseInt(b.single.pole___karta__rent_price) != 0) {
b.price._karta_ = parseInt(b.single.pole___karta__rent_price); // цена _karta_
} else {
b.price._karta_ = parseInt(b.single.pole___karta__price); // цена _karta_
}
// Если есть декодер на тарифном плане, то ставим его первым, если нет то каммодуль
if (b._pult__has == 1) {
b._pult___karta_ = b.price._pult_;
}
if (b._karta__has == 1) {
b._pult___karta_ = b.price._karta_;
}
} else {
b._pult___karta_ = 0;
b._pult__has = 0;
b._karta__has = 0;
}
b.price.promo = parseInt(b.single.pole__promo_price); // цена на промо период
b.price.common = parseInt(b.single.pole__price); // обычная цена, после промо периода
b.price.wifi_price = parseInt(b.single.pole__wifi_price); // покупка wifi
b.price.wifi_rent = parseInt(b.single.pole__wifi_rent_price); // аренда wifi
if (b.promo_period == 0) {
b.price.promo = b.price.common;
}
//Wi-Fi
if (b.wifi_has == 1) {
b.price.wifi_price = parseInt(b.single.pole__wifi_price);
b.price.wifi_rent = parseInt(b.single.pole__wifi_rent_price);
} else {
b.price.wifi_price = 0;
b.price.wifi_rent = 0;
}
//Цены итого
b.price.sum_device = b.price.wifi_price + b._pult___karta_;
//Итого
b.price.sum_connect = b.price.promo + b.price.sum_device + b.price.tv;
b.price.sum_promo = b.price.promo + b.price.wifi_rent + b.price.tv;
b.price.sum_common = b.price.common + b.price.wifi_rent + b.price.tv;
getEcononomy();
updatePackagesInfo();
};
function updatePackagesInfo() {
var wifi_des;
if (b.wifi_has === 1) {
jQuery('.js-package-single__wifi-absent').hide();
jQuery('.js-package-single__wifi-present').show();
jQuery('.wifi_name').show();
jQuery('.wifi_name').removeClass('b-atata100__color-gray1');
} else {
jQuery('.wifi_name').hide();
jQuery('.wifi_name').addClass('b-atata100__color-gray1');
jQuery('.js-package-single__wifi-present').hide();
jQuery('.js-package-single__wifi-absent').show();
}
if (b.tv.type == 1) {
jQuery('.b-check__list-item_ktv').show();
if (parseInt(b.single.pole___pult__price) == 0 && parseInt(b.number) == 0) {
jQuery('.package-single__radio').eq(0).hide();
}
jQuery('.tv_name').text("atata TV");
jQuery('.b-atata100__list-item_ktv').show();
jQuery('.total_chanel').show();
jQuery('.device_name').show();
jQuery('.tv_name_bundles').html('');
for (var key in b.tv.name) {
jQuery('.tv_name_bundles').append('<li class="b-check__sub-list-item">' + key + '</li>');
}
if (b._pult__has == 1) {
jQuery('.device_name').text("Декодер");
jQuery(".b-package-single__tv-image_cammod").addClass("b-package-single__tv-image_hide");
jQuery(".b-package-single__tv-image_decod").removeClass("b-package-single__tv-image_hide");
jQuery('[value="_pult_"]').eq(0).attr('checked', true);
}
if (b._karta__has == 1) {
jQuery('.device_name').text("САМ-модуль");
jQuery(".b-package-single__tv-image_cammod").removeClass("b-package-single__tv-image_hide");
jQuery(".b-package-single__tv-image_decod").addClass("b-package-single__tv-image_hide");
jQuery('[value="_karta_"]').eq(0).attr('checked', true);
}
} else {
jQuery('.b-check__list-item_ktv').hide();
if (parseInt(b.single.pole___pult__price) == 0 && parseInt(b.number) == 0) {
jQuery('.package-single__radio').eq(0).show();
}
jQuery('.tv_name').text("Кабельное ТВ");
jQuery('.b-atata100__list-item_ktv').hide();
jQuery('.tv_chanel_check:checked').click();
jQuery('.package-single__radio').attr('checked', false);
jQuery('.total_chanel').hide();
jQuery('.device_name').hide();
jQuery('.total_chanel').hide();
jQuery('.b-atata100__list-item_ktv').hide();
}
// Перебираем объект цена и вставляем значения на сайт
jQuery.each(b.price, function(i, val) {
jQuery('.price_' + i).text(val);
});
jQuery('.b-backage-single_price_tv').text(b.price.promo);
jQuery('.b-backage-single_sd-channels-count').each(function(i, el) {
jQuery(el).text(b.tv.sd);
});
jQuery('.b-backage-single_hd-channels-count').each(function(i, el) {
jQuery(el).text(b.tv.hd);
});
jQuery('.b-backage-single_channels-sel').text(b.tv.hd + b.tv.sd);
jQuery('.b-package-single__progress_load').css('width', Math.round((b.tv.hd + b.tv.sd) / b.tv.all_channels * 100) + '%');
jQuery('.digit_text').text(getChannelText(b.tv.sd));
jQuery('.hd_text').text(getChannelText(b.tv.hd));
if (b.promo_period > 3) {
jQuery('.actionPeriod').text('2-' + b.promo_period);
jQuery('.actionPeriodEnd').text('с ' + parseInt(b.promo_period + 1) + ' месяца');
}
else {
jQuery('.actionPeriod').text(b.promo_period + ' месяца');
if (b.promo_period == 0) {
jQuery('.actionPeriodEnd').text('с 2' + ' месяца');
} else {
jQuery('.actionPeriodEnd').text('с ' + parseInt(b.promo_period + 1) + ' месяца');
}
}
var textPerm;
if (b.price.economy == 0) {
jQuery('.total_economy').hide();
}
var wifi_des = "";
var wifi_name = "Wi-Fi роутер ";
var wifi_name2 = "Wi-Fi роутера ";
var combo_des = '';
var perm_des = '';
var rent_price_des = '';
jQuery('.wifi_name').html(wifi_name);
jQuery('.wifi_name2').html(wifi_name);
if ((b.single.pole__atatatv != '' || b.single.pole__ktv != '') &&
b.single.pole__telephony != '') {
wifi_name = "Combo Wi-Fi ";
wifi_name2 = "Combo Wi-Fi ";
jQuery('.wifi_name').html(wifi_name);
jQuery('.wifi_name2').html(wifi_name);
combo_des = "Combo Wi-Fi – устройство объединяющие в себе Wi-Fi роутер и телефонный адаптер в одном корпусе.<br><br>";
}
jQuery('.combo_des').html(combo_des);
jQuery('.b-package__gray1').html(wifi_des);
if (ntv == 2) {
jQuery('.ntv_class').text(325);
} else {
jQuery('.ntv_class').text(400);
}
jQuery('.wififree').hide();
jQuery('.wificity').hide();
if (Drupal.settings.wifi_city) {
jQuery('.wificity').show();
}
if (b.price.wifi_price == 0 && b.price.wifi_rent == 0) {
jQuery('.wififree').show();
}
}
// Точка входа
function initPackages() {
// atataен
b.atataain = Drupal.settings.atataain.atataain;
// Номер пакета в массиве
b.number = Drupal.settings.bundles_number;
if (Drupal.settings.single_bundles.pole__atatatv == '') {
b.tv.type = 2;
} else {
b.tv.type = 1;
b.ids.atatatv = Drupal.settings.single_bundles.pole__atatatv;
// Получаем пакеты каналов с JSON
var buff_pack = JSON.parse(Drupal.settings.tvlist);
for (var key in buff_pack) {
b.packages[buff_pack[key].billing_id] = buff_pack[key];
}
// Массив пакетов каналов
var chanel_arr = new Array();
var chanel_packet = Drupal.settings.atatatv[Drupal.settings.single_bundles.pole__atatatv].result.nodes[0].field_ctv_plans_pockets;
// Смотри какие пакеты каналов включены в пакет
jQuery.each(chanel_packet, function(i, val) {
if (chanel_packet.pocket_id == b.packages.billing_id) {
chanel_arr.push(val.pocket_id);
}
});
for (var key in b.packages) {
var p = b.packages[key], htmltmp = '';
if (jQuery.inArray(p.billing_id, chanel_arr) != -1) {
p.price = 0;
}
if (p.price == 0) {
htmltmp = '<div class="b-package-popup__form1-row"><label class="b-package__wrapper b-package-single__package_label" data-package_index="' + p.billing_id + '"><input type="checkbox" checked disabled onchange="packageSel(this);" data-package_index="' + p.billing_id + '">' + p.name + '</label></div>';
}
else {
if (p.billing_id == 1 || p.billing_id == 5) {
htmltmp = '<div class="b-package-popup__form1-row "><label class="b-package__wrapper b-package-popup__form1-sp-label b-package-single__package_label" data-package_index="' + p.billing_id + '"><span class="b-package-popup__fl-left">' +
'<input type="checkbox" class="tv_chanel_check" onchange="packageSel(this);" data-billing_id="' + p.billing_id + '" data-package_index="' + p.billing_id + '"> ' + p.name + '</span><span class="b-package-popup__fl-right"><span class="ntv_class">' + p.price + '</span> <span class="b-rub_font_verdana">Р</span> /мес.</span></label></div>';
} else {
htmltmp = '<div class="b-package-popup__form1-row "><label class="b-package__wrapper b-package-popup__form1-sp-label b-package-single__package_label" data-package_index="' + p.billing_id + '"><span class="b-package-popup__fl-left">' +
'<input type="checkbox" class="tv_chanel_check" onchange="packageSel(this);" data-billing_id="' + p.billing_id + '" data-package_index="' + p.billing_id + '"> ' + p.name + '</span><span class="b-package-popup__fl-right">' + p.price + ' <span class="b-rub_font_verdana">Р</span> /мес.</span></label></div>';
}
}
if (p.price != 0) {
jQuery('.b-package-single_packages_list').append(htmltmp);
}
else {
b.tv.sd += parseInt(p.digit_count);
b.tv.hd += parseInt(p.hd_count);
jQuery('.b-package-single_packages_list').prepend(htmltmp);
}
b.tv.all_channels += parseInt(p.digit_count) + parseInt(p.hd_count);
}
jQuery('.b-backage-single_channels-avail').text(b.tv.all_channels);
jQuery('.b-package-single__package_label').hover(b.packageHover);
}
b.ids.internet = Drupal.settings.single_bundles.pole__internet;
b.ids.ktv = Drupal.settings.ktv;
b.single = Drupal.settings.single_bundles;
b.promo_period = parseInt(b.single.pole__promo_period);
if (parseInt(b.number) != 0) {
b._pult__has = 1;
b._karta__has = 0;
} else {
b._pult__has = 0;
b._karta__has = 1;
}
if (Drupal.settings.single_bundles.pole__telephony != '') {
b.phone_has = 1;
b.ids.telephony = Drupal.settings.single_bundles.pole__telephony;
b.addPhone(); //
} else {
b.phone_has = 0;
b.removePhone();
}
}
function packageSel(el) {
var p = b.packages[jQuery(el).attr('data-billing_id')];
jQuery('.b-backage-single_package_descr .b-package-popup__inner-title1').html(p.name);
jQuery('.b-backage-single_package_descr p').html(p.description);
if (el.checked) {
b.price.tv += parseInt(p.price);
if (p.billing_id == 1 || p.billing_id == 5) {
++ntv;
if (ntv == 2) {
b.price.tv -= parseInt(b.packages[1].price) + parseInt(b.packages[5].price);
b.packages[1].price = "325";
b.packages[5].price = "325";
b.price.tv += parseInt(b.packages[1].price) + parseInt(b.packages[5].price);
}
}
b.tv.sd += parseInt(p.digit_count);
b.tv.hd += parseInt(p.hd_count);
b.tv.name[p.name] = {
name: [p.name],
billing_id: [p.billing_id]
};
}
else {
if (p.billing_id == 1 || p.billing_id == 5) {
--ntv;
if (ntv != 2) {
b.price.tv -= parseInt(b.packages[1].price) + parseInt(b.packages[5].price);
b.packages[1].price = "400";
b.packages[5].price = "400";
b.price.tv += parseInt(b.packages[1].price) + parseInt(b.packages[5].price);
}
}
b.price.tv -= parseInt(p.price);
b.tv.sd -= parseInt(p.digit_count);
b.tv.hd -= parseInt(p.hd_count);
delete b.tv.name[p.name];
}
mathBundle();
}
jQuery(function() {
initPackages();
jQuery('.popup__close').click(function() {
jQuery('.js-package-single_manage-packages-popup').css('display', 'none');
jQuery('.b-package__wrap-popup').css('display', 'none');
});
jQuery('.js-package-single__switch-tv-type').click(b.switchTvType);
jQuery('.js-package-single__add-channels').click(b.managePackages);
jQuery('.js-package-single__add-phone').click(b.addPhone);
jQuery('.js-package-single__remove-phone').click(b.removePhone);
jQuery('.js-package-single__wifi-remove').click(b.removeWifi);
jQuery('.js-package-single__wifi-add').click(b.addWifi);
jQuery('.js-package-single__hide-detailed-prices').click(b.hidePrices);
jQuery('.js-package-single__show-detailed-prices').click(b.showPrices);
jQuery('.package-single__radio').change(b.changeDevice);
if (parseInt(b.single.pole___pult__price) == 0 && parseInt(b.number) == 0) {
jQuery('.package-single__radio').eq(0).hide();
}
jQuery(".b-package-single__show_link").click(function() {
jQuery(jQuery(this).data("hide")).hide();
jQuery(jQuery(this).data("show")).show();
return false;
});
jQuery(".b-package__wrap-popup").click(function() {
jQuery(".b-package-popup, .b-package__wrap-popup").hide();
return false;
});
jQuery(".b-package__show-hint").mousemove(function() {
jQuery(jQuery(this).data("show")).show();
return false;
}).mouseout(function() {
jQuery(jQuery(this).data("show")).hide();
});
jQuery(".b-package__return").click(function() {
jQuery.scrollTo(0, 500);
});
var scrollCheck = jQuery("#js-check-scroll").offset().top;
var topNavMax = jQuery(".footer").offset().top - 200;
jQuery(window).scroll(function() {
var windowScroll = (document.documentElement && document.documentElement.scrollTop) || document.body.scrollTop;
if (windowScroll > topNavMax) {
jQuery("#js-check-scroll").css("top", topNavMax - scrollCheck);
jQuery("#js-check-scroll").removeClass('b-check-fixed-nav');
} else if (windowScroll < scrollCheck) {
jQuery("#js-check-scroll").css("top", "0px");
jQuery("#js-check-scroll").removeClass('b-check-fixed-nav');
} else {
jQuery("#js-check-scroll").css("top", "10px");
jQuery("#js-check-scroll").addClass('b-check-fixed-nav');
}
});
jQuery('#connect_button').on('mousedown', function() {
setCookie();
});
getCookie();
jQuery(".b-package__click-hint").click(function() {
jQuery(jQuery(this).data("show")).show();
return false;
});
jQuery(document).click(function() {
jQuery(".b-package-hint").hide();
});
});
function setCookie() {
var cookie = [];// Объект который отправим
var arr = new Array();
var products = new Array();
var phone_id = Drupal.settings.services.phone_service_id;
var atatatv_id = Drupal.settings.services.atatatv_service_id;
var internet_id = Drupal.settings.services.internet_service_id;
var ktv_id = Drupal.settings.services.ktv_service_id;
var JSONcookie = ''; // строка формата json
for (var key in b.tv.name) {
arr.push(parseInt(b.tv.name[key].billing_id));
}
cookie = {
tariff_name: Drupal.settings.internet[b.single.pole__internet].result.nodes[0].title,
price_promo: b.price.sum_promo, // выводим итоговую сумму промо
price_connect: b.price.sum_connect
};
if (b.phone_has == 1) {
products.push(phone_id);
}
if (b.tv.type == 1) {
products.push(atatatv_id);
cookie.tv_bundles = arr;
} else if (b.tv.type == 2) {
products.push(ktv_id);
}
products.push(internet_id);
cookie.products = products;
if (b.wifi_has == 1) {
cookie.wifi = 1;
}
if (b._pult__has == 1) {
cookie._pult_ = 1;
}
if (b._karta__has == 1) {
cookie._karta_ = 1;
}
cookie.referral_path = window.location.pathname;
JSONcookie = JSON.stringify(cookie);
jQuery.cookie('cart', JSONcookie, {expires: 30, path: '/', atataain: Drupal.settings.cookie_atataain});
return false;
}
function getCookie() {
cart = jQuery.cookie('cart');
cart = JSON.parse(cart);
if (cart) {
if (Drupal.settings.internet[b.single.pole__internet].result.nodes[0].title == cart.tariff_name) {
if (cart.products) {
for (var key in cart.products) {
switch (cart.products[key]) {
case "53":
break;
case "12":
b.switchTvType();
break;
}
}
}
if (cart.tv_bundles) {
for (var key in cart.tv_bundles) {
jQuery('[data-billing_id="' + cart.tv_bundles[key] + '"]').trigger('click');
}
}
if (cart._karta_) {
jQuery('[value="_karta_"]').change().attr('checked', true);
}
if (cart._pult_) {
jQuery('[value="_karta_"]').change().attr('_pult_', true);
}
if (!cart.wifi) {
b.removeWifi();
}
} else {
jQuery.cookie('cart', null);
}
}
return false;
}
|
|
|