Guest User

Untitled

a guest
Jun 22nd, 2018
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.97 KB | None | 0 0
  1. (function(){
  2. var $ = window.optimizely.get('jquery');
  3. var utils = window.optimizely.get('utils');
  4.  
  5. function reduxStore () {
  6. return window.store && window.store.getState().ads.placements.tab && window.store.getState().searchData;
  7. }
  8.  
  9. function allTabsRendered () {
  10. var tabsCount = window.store.getState().ads.placements.tab.length;
  11. return $('.tab').length === tabsCount;
  12. }
  13.  
  14. function markTabsClicked () {
  15. utils.waitForElement('.verticalTabs__children__wrapper').then(function(element){
  16. $(element).on('click', '.tab', function(){
  17. $(element).addClass('visited');
  18. });
  19. });
  20. }
  21.  
  22. function generateTabsContent() {
  23. utils.observeSelector('.verticalTabs__children__wrapper span', function(){
  24. utils.waitUntil(allTabsRendered).then(function(){
  25. var tabs = window.store.getState().ads.placements.tab;
  26. $('.tab').each(function(index){
  27. $(this).empty();
  28. $(this).append('<div class="tab__name">'+tabs[index].displayName+'</div>');
  29. });
  30. });
  31. });
  32. }
  33.  
  34. function generateHeaderSearchWidget() {
  35. utils.waitForElement('.verticalHeader__search').then(function(element){
  36. $(element).empty();
  37. var cities;
  38. var searchData = window.store.getState().searchData;
  39. var date1MonthShort = searchData.date1.toLocaleString('en', { month: "short" });
  40. var date2MonthShort = searchData.date2.toLocaleString('en', { month: "short" });
  41. var date1 = searchData.date1.getDate();
  42. var date2 = searchData.date2.getDate();
  43. var dates = '<span class="dates-wrapper">'+date1MonthShort+' '+date1+' - '+date2MonthShort+' '+date2+'</span>';
  44. if (searchData.origin && searchData.destination){
  45. cities = '<span class="cities-wrapper">'+searchData.origin.airport.code+' - '+searchData.destination.airport.code+'</span>';
  46. }
  47. if (searchData.destination){
  48. cities = '<span class="cities-wrapper">'+searchData.destination.airport.code+'</span>';
  49. }
  50. $('.verticalHeader__editDetails span').text('Edit trip details');
  51. $(element).append(cities+dates);
  52. $(element).css('visibility', 'visible');
  53. });
  54. }
  55.  
  56. function generateWelcomeMessage() {
  57. utils.observeSelector('.tabContent__welcome-message', function(){
  58. var dealsCount = window.store.getState().ads.placements.tab.length;
  59. $('.tabContent__headline span').text('We Found '+ dealsCount +' Deals for Your Trip');
  60. $('.tabContent__subheadline span').text('Click to compare multiple sites and find great deals');
  61. $('.tabContent__tip span').text('See Deal');
  62. $('.tabContent__tip').on('click', function(){
  63. $('.tab:first-child').click();
  64. });
  65. $('.tabContent__welcome-message').css('visibility', 'visible');
  66. });
  67. }
  68.  
  69. function init() {
  70. generateHeaderSearchWidget();
  71. generateTabsContent();
  72. generateWelcomeMessage();
  73. markTabsClicked();
  74. }
  75.  
  76. utils.waitUntil(reduxStore).then(function(){
  77. /*init();*/
  78.  
  79.  
  80. window.store.subscribe(function(){
  81.  
  82. });
  83. });
  84. })();
Add Comment
Please, Sign In to add comment