// ==== Offerspage script ==== // Created by : Fredrik Frederiksen // Version : 2.0.1 // Update Date : 22/01-2019 // ==== ==== var OffersPage = {}; var loadingScrollPos = 0; //used to start the offerspage. //call from a document ready after incito loading has started. OffersPage.Activate = function() { //Incito.TestLogging('activate'); if(Incito.config.openCategory != undefined) OffersPage.IntialPosition(); OffersPage.MenuWidth(); OffersPage.SetMenuTitle(); OffersPage.CreateMenu(); OffersPage.CreateBanners(); OffersPage.CreateMenuSectors(); OffersPage.ActivateBackButton(); OffersPage.ActivateMobileButton(); OffersPage.ActivateScrollDetection(); OffersPage.ActivateSearch(); }; //find initial position in the incito baased on url param 'openCategory'. OffersPage.IntialPosition = function(){ initialCat = {}; for(i = 0; i < incitoDataInput.Menu.length; i++){ for(ti = 0; ti < incitoDataInput.Menu[i]['data-ids'].length; ti++){ if(incitoDataInput.Menu[i]['data-ids'][ti] === Incito.config.openCategory){ initialCat = incitoDataInput.Menu[i]; } } } initialTarget = ''; Incito.TestLogging(initialCat['data-ids']); if(initialCat['data-ids'] !== undefined){ $('.incito .incito__view ').each(function(){ if($(this).attr('data-id') !== undefined){ var dataId = $(this).attr('data-id'); for(i = 0; i < initialCat['data-ids'].length; i++){ if(initialTarget === '' && initialCat['data-ids'][i] === dataId){ initialTarget = dataId } } } }); Incito.TestLogging(initialTarget == ''); if(!initialTarget == ''){ OffersPage.ScrollToDataId(initialTarget, 1); } } }; //Fixes the width of the menu in desktop mode to avoid overlapping the catalog. //Runs as loop on OffersPage.Activate. OffersPage.MenuWidth = function(){ if($('body').width() > 685){ if($('#'+Incito.config.targetId+' > .incito > .incito__view').width() !== undefined){ if($('body').width() - $('#'+Incito.config.targetId+' > .incito > .incito__view').width() < 300){ $('#offers-menu-area').width($('body').width() - $('#'+Incito.config.targetId+' > .incito > .incito__view').width()); } } } }; //Activates the backbutton for mobile users. OffersPage.ActivateBackButton = function(){ $('#back-button').click(function(){ nga({ 'eventCategory': 'Incito Publication', 'eventAction': 'Top Buttons Clicked', 'eventLabel': 'Back Button' }); //ga('IncitoTracker.send', 'event', 'Incito Publication', 'Top Buttons Clicked', 'Back Button'); if (window.history.length === 1 || document.referrer === undefined || !document.referrer.includes(window.location.hostname)) { document.location = incitoDataInput.Heading['ReturnPage']; } else { window.history.back(); } }); }; //Sets the title at the top of the menu based on included data file. //Runs as loop on OffersPage.Activate. OffersPage.SetMenuTitle = function(){ if($('head title').text().indexOf(incitoDataInput.Heading['Title']) === -1){ $('head title').append(incitoDataInput.Heading['Title']); } if(Incito.publication.activePublication.details !== undefined){ $('#offers-menu-title-area').prepend(incitoDataInput.Heading['Title']); incitoDataInput.Heading['TitleSub'] = Incito.FormatDate(Incito.publication.activePublication.details); if(incitoDataInput.Heading['TitleSubCustom'].length){ for(i = 0; i < incitoDataInput.Heading['TitleSubCustom'].length; i++){ if(incitoDataInput.Heading['TitleSubCustom'][i]['Label'] === Incito.publication.activePublication.details.label){ incitoDataInput.Heading['TitleSub'] = incitoDataInput.Heading['TitleSubCustom'][i]['TitleSub']; } } } $('#offers-menu-title-area .offers-menu-title-sub').append(incitoDataInput.Heading['TitleSub']); } }; //Variables used by OffersPage.CreateMenu() var menuItems = []; //Loop to ensure all categories gets added to the menu while the catalog loads. //Runs as loop on OffersPage.Activate. OffersPage.CreateMenu = function(){ $('#offers-menu-categories').addClass('active'); $('.loading-area').addClass('fade-away'); $('#incito-area').addClass('incito-fade-in'); $('#offers-menu-area').removeClass('waiting'); OffersPage.AddMenuButtons(); OffersPage.SetActiveCategory(); }; //Adds buttons to the menu OffersPage.AddMenuButtons = function(){ testerVar = 0; //loop through the incito catalog and find matching categories in datasheet $('.incito .incito__view ').each(function(){ if($(this).attr('data-id') !== undefined){ var dataId = $(this).attr('data-id'); for(i = 0; i < incitoDataInput.Menu.length; i++){ for(ti = 0; ti < incitoDataInput.Menu[i]['data-ids'].length; ti++){ //Incito.TestLogging(incitoDataInput.Menu[i]['data-ids'][ti]); //Incito.TestLogging(dataId); if(incitoDataInput.Menu[i]['data-ids'][ti] === dataId){ var addToMenu = true; for(mi = 0; mi < menuItems.length; mi++){ if(menuItems[mi]['Title'] === incitoDataInput.Menu[i]['Title']){ addToMenu = false; } } if(addToMenu){ menuItems.push({'Title':incitoDataInput.Menu[i]['Title'], 'data-ids': incitoDataInput.Menu[i]['data-ids'], 'Target': dataId}); } } } } } }); //add new categories to the menu for(i = $('#offers-menu-categories .offers-menu-categories-button').length; i < menuItems.length; i++){ $('#offers-menu-categories').append('
'); } //rebind the click event for scroll on menu items $('.offers-menu-categories-button').unbind('click'); $('.offers-menu-categories-button').click(function(){ OffersPage.CloseMobileMenu(); $('#incito-area').removeClass('incito-fade-in'); OffersPage.ScrollToDataId($(this).attr('value'), 1); $('#incito-area').addClass('incito-fade-in'); /*$([document.documentElement, document.body]).animate({ scrollTop: $('div.incito__view[data-id="'+$(this).attr('value')+'"]').offset().top }, 1000);*/ nga({ 'eventCategory': 'Incito Publication', 'eventAction': 'Category Changed', 'eventLabel': $(this).attr('data-gaAction') }); //ga('IncitoTracker.send', 'event', 'Incito Publication', 'Category Changed', $(this).attr('data-gaAction')); }); //test if menu needs scroll pointers OffersPage.ActivateScrollPointers(); OffersPage.SetProgressCategory(); $('.new-fade-in').removeClass('new-fade-in'); }; //Adds an event to scrolling to add the indicator for current category OffersPage.ActivateScrollDetection = function(){ $(window).scroll(function(){ OffersPage.SetActiveCategory(); OffersPage.SetProgressCategory(); }); }; //Finds the currently active category and adds a marker to it in the menu. OffersPage.SetActiveCategory = function(){ var first = ''; $("#incito-area #incito__publication .incito .incito__view").each(function() { if ($(this).offset().top > ($(window).scrollTop() - $(this).height() + 150)) { first = $(this).attr('data-id'); if(first != undefined) { for(i = 0; i < incitoDataInput.Menu.length; i++){ for(ti = 0; ti < incitoDataInput.Menu[i]['data-ids'].length; ti++){ if(incitoDataInput.Menu[i]['data-ids'][ti] === first){ $('#offers-menu-categories .offers-menu-categories-button').each(function(){ if($(this).text() == incitoDataInput.Menu[i]['Title']){ if(!$(this).hasClass('active')){ $('#offers-menu-categories .offers-menu-categories-button').removeClass('active'); $(this).addClass('active'); } } }); return false; } } } } } }); }; OffersPage.SetProgressCategory = function() { if(!$('.sgn-incito__progress .progressCategory').length){ currCategory = $('#offers-menu-categories .offers-menu-categories-button.active').text(); if(currCategory === ''){ currCategory = $('#offers-menu-categories .offers-menu-categories-button').first().text(); } $('.sgn-incito__progress').append('