{"version":3,"sources":["Components/Utility/vendor/lightboxv2.min.js","Components/Utility/MetaTags.jsx","Components/Utility/ApiCalls.js","Components/Utility/WebStorageFactory.js","Components/Utility/JsonProvider.jsx","Components/Utility/ErrorProvider.jsx","Components/Utility/DataLayers.js","Components/Utility/LoadGRM.jsx","Components/Utility/Global.jsx","Components/Partials/Header.jsx","Components/Utility/PromotionState.js","Components/Partials/Footer.jsx","Components/Partials/Button.jsx","Components/Screens/Closed.jsx","Components/Screens/Comingsoon.jsx","Components/Screens/Splitter.jsx","Components/Screens/Login.jsx","Components/Screens/Shipping.jsx","Components/Screens/Home.jsx","Components/Screens/Register.jsx","Components/Screens/Forgotpassword.jsx","Components/Screens/Recoverpassword.jsx","Components/Screens/Batchcode.jsx","Components/Screens/Movie.jsx","Components/Screens/Wordsearch.jsx","Components/Screens/Puzzle.jsx","Components/Screens/Thankyou.jsx","Components/Screens/Limit.jsx","Components/Screens/Error.jsx","Components/Screens/FAQ.jsx","Components/Screens/Terms.jsx","Components/Utility/vendor/criticalcom.js","App.js","index.js"],"names":["a","b","c","e","d","length","fn","call","window","ctx","f","TypeError","setTimeout","push","document","readyState","addEventListener","Adimo","defaultLanguage","setLanguage","utils","location","href","replace","RegExp","exec","decodeURIComponent","domLoaded","adimo_docReady","getGATracking","source","medium","term","content","campaign","referrer","split","toLowerCase","indexOf","sessionStorage","adimoTracking","JSON","stringify","parse","encodeURIComponent","getParameterByName","search","getPageScroll","self","pageYOffset","pageXOffset","documentElement","scrollTop","scrollLeft","body","Array","findButtonsWidget","parentNode","parentElement","widget","mobileCheck","test","substr","navigator","userAgent","vendor","opera","main","o","querySelector","getAttribute","match","s","en","data","type","frameId","i","event","dataLayer","some","label","toString","parseInt","popup","style","display","k","height","offsetWidth","classList","remove","offerLabelWidth","add","this","onclick","includes","g","j","contains","isVisible","h","m","staticTouchpointIdentifier","n","q","disableABTest","ADIMO_DOMAIN","t","index","doNotTrack","dismissCookieNotification","r","ga","getAll","forEach","get","substring","u","l","createElement","className","v","w","setAttribute","textContent","iframeAnchorText","position","left","top","appendChild","x","overflow","y","onload","adimoLoadedIframe","src","frameBorder","scrolling","width","p","removeEventListener","removeChild","bind","focus","contentWindow","postMessage","querySelectorAll","hasAttribute","removeAttribute","button","widgetIndex","buttonAriaLabel","he","ar","init","children","innerHTML","cursor","border","id","preventDefault","tpid","isMobile","host","XMLHttpRequest","open","setRequestHeader","send","click","getElementById","rel","head","nodeType","childNodes","MutationObserver","addedNodes","observe","childList","subtree","loadCustomScript","load","hostname","MetaTags","title","description","keywords","name","checkUpcCodes","dataObj","token","locale","urlPath","axios","method","headers","undefined","enctype","response","checkUser","objToSend","keys","accessToken","userName","profileId","QuestionLegal","allParamsEncrypted","russiaOrder","shippingInfoObj","shippingDetails","UserName","ua","verifyCaptchaEnterCode","redemptionToken","EncodedResponse","verifyCaptcha","orderAward","getPuzzle","postPuzzle","getCrossword","postCrossword","setLocalData","key","value","localStorage","setItem","getSessionData","getItem","setSessionData","removeSessionData","removeItem","JsonContext","createContext","LoadJson","useState","translations","setTranslations","settings","setSettings","windowOriginURL","origin","jsonEnvUrl","translationsURL","res","Translations","getData","settingsData","settingsURL","filter","itm","Locale","getSettings","Provider","ErrorProvider","useContext","history","useHistory","HandleError","error","webStorageService","status","ErrorCode","errMsgInvalid","CoreKelloggs_GeneralErrorMsg","ErrorMessage","pageScroll","dataLayers","script","lang","getElementsByTagName","Culturecode","country","toUpperCase","text","prepend","gtm","noscript","iframe","dl","GtmTitle","Node","prototype","insertAfter","newNode","nextSibling","insertBefore","signInData","userId","_addData","registerData","optIn","orderData","prizeNumber","imageUpload","selectSplitLocale","language_region","packCodeData","backToHP","socialData","imagePuzzleEntryComplete","entryLimit","winLimit","errorCodeEvent","url","errorCode","obj","Object","LoadGRM","formType","cb","questionLegal","handleRoute","path","pathname","login","register","subscription","reset","generateGRM","container","socialLogin","SocialSharingLocales","configObj","environment","GRMServiceURL","moduleKey","GRMModuleKey","showLogin","showSignup","showFacebook","showTwitter","facebookAppId","languageParam","join","region","gigyaApiKey","SAPGigyaApiKey","onAuth","authUser","dataToSend","ProfileAttributes","AccessToken","UsernameForServiceAuth","ProfileID","AllParamsEncrypted","API","then","proceed","redirect","message","user","City","Country","Flow","isNpr","Nobatchcoderequired","result","grm","winnerObj","Winner","winner","winnerCopy","isExtendedPhase","ExtendedPhase","refCode","RefCode","state","catch","onExit","clearInterval","_interval","kreg","onreadystatechange","regModule","KSTL","Registration","topic","view","element","hidden","$","attr","on","prop","val","trim","$input","max","maxLength","hasClass","windowWidth","innerWidth","heightss","firstcol","secondcol","css","Math","outerHeight","each","geterror","getfieldname","slice","getcontrolform","appendTo","form","hide","initReg","setInterval","localeVals","localeList","find","defaultLocale","windowHrefURL","getLocale","getIsCDC","isTOS","isCDC","getIsShipping","isShipping","showReceiptField","isSplitter","isShowReceiptField","getNpr","localeFrmUrl","item","checkLocale","browserStr","getUA","scrollTo","animate","offset","jquery","MetaTagsData","LoadGRMGlobal","Header","picturefill","srcSet","media","alt","HeaderAltText","moment","require","PromotionState","_getStates","startDate","StartDate","startDateTime","format","endDateTime","EndDate","currentDate","Date","currentDateUTC","tz","TimeZone","currentTime","outOfHrsEndDate","OutOfHrsEndDate","outOfHrsEndDateTime","extendedStartDateTime","ExtendedStartDate","getPromotionState","hours","minutes","seconds","getExtendedState","initPage","isStartPage","CampainCloseURL","_checkAppState","getStates","Footer","holdingPage","hostName","shareUrl","language","CoreKelloggs_CookiePr","idTrust","append","CoreKelloggs_FooterPrivacyPolicyLinkPrng","target","CoreKelloggs_PrivacyNoticeLinkTitle","dangerouslySetInnerHTML","__html","CoreKelloggs_FooterPrivacyPolicy","CoreKelloggs_FooterPringlesLink","CoreKelloggs_PringlesLinkTitle","CoreKelloggs_FooterPrng","nohref","Footerlistcompany","onClick","CoreKelloggs_FacebookSharingLinkTitle","aria-label","data-fbtext","FacebookSharingDescription","CoreKelloggs_FacebookImageAltText","twitterData","currentTarget","dataset","twittertext","CoreKelloggs_TwitterSharingLinkTitle","data-twittertext","TwitterSharingDescription","CoreKelloggs_TwitterImageAltText","to","CoreKelloggs_FaqsLinkTitle","CoreKelloggs_FooterFaq","CoreKelloggs_TermsNConditionsLinkTitle","CoreKelloggs_FooterTerms","CoreKelloggs_FooterMentionsSanitairesLink","CoreKelloggs_FooterMentionsSanitairesLinkTitle","CoreKelloggs_FooterMentionsSanitaires","FooterShortTerms","Button","txt","buttonType","CoreKelloggs_PromotionClosedCtaLinkTitle_pringles","ComingSoonCta","ComingSoonCtaLink","EndPromoButtonLabel","EndPromoButtonLink","CoreKelloggs_RegisterNowCtaTitle","CoreKelloggs_RegisterNowButton","CoreKelloggs_ReturnToHomepageCtaTitle","CoreKelloggs_BackToHomePage","Closed","CoreKelloggs_ClosedPageTitle","CampaignName","MetaContent","EndPromoTitle","Comingsoon","CoreKelloggs_ComingSoonPageTitle","ComingSoonHeading","ComingSoonDescription","Splitter","SplitterPageTitle","SplitterPageHeading","SplitterPage_frenchSite_ctaTitle","SplitterPageLink1","SplitterPage_dutchSite_ctaTitle","SplitterPageLink2","SplitterPage_germanSite_ctaTitle","Login","callOnce","setCallOnce","addClass","role","LoginPageHeading","LoginPageDescription","LoginPageDescription1","LoginPageDescription2","CoreKelloggs_TncsApplyLinkTitle","CoreKelloggs_TncApply","LoginSectionHeading","CoreKelloggs_RegisterPageMandatoryCopy","Or","Shipping","shippingDefault","Require_RU_Captcha","Require_Captcha","UserDetails","FirstName","isValid","isEmpty","isWritten","LastName","Address1","Address2","PostalCode","Email","Phone","TermsandConditions","sended","processing","validateCaptcha","shipping","setShipping","tncCheckbox","setTncCheckbox","privacyCheckbox","setPrivacyCheckbox","radioBtnCntry","setRadioBtnCntry","isAndroid","expCallback","grecaptcha","onSuccess","redemToken","updateValidateCaptcha","err","console","log","render","sitekey","callback","oncheck","which","keyCode","attributes","for","limitInput","AddressLen","userInput","attrVal","getPattern","pattern","minlength","CoreKelloggs_RegisterPageTitle","CoreKelloggs_RegisterPageDesc","CoreKelloggs_RegisterPageKeywords","CoreKelloggs_KpsShippingPageHeading","CoreKelloggs_KpsMandatoryFieldText","noValidate","data-ng-click","data-ng-model","htmlFor","CoreKelloggs_KpsFirstname","required","onKeyUp","$event","onChange","CoreKelloggs_FieldRequiredError","CoreKelloggs_KpsFirstnameError","CoreKelloggs_KpsSurname","CoreKelloggs_KpsSurnameError","CoreKelloggs_KpsAddress1","CoreKelloggs_KpsAddress1Error","CoreKelloggs_KpsAddress2","CoreKelloggs_KpsCity","CoreKelloggs_KpsCityError","CoreKelloggs_KpsPostcode","minLength","CoreKelloggs_KpsPostcodeError","CoreKelloggs_KpsEmail","CoreKelloggs_KpsConfirmEmailError","CoreKelloggs_KpsMobileNumber","onKeyDown","evt","CoreKelloggs_KpsMobileNumberError","CoreKelloggs_KpsCountry","checked","tabIndex","ShippingDetailsTncCheckBox","ShippingDetailsTncLink","subscription6028_EM","CoreKelloggs_KpsSubscriptionCheckbox","disabled","shippingInfoRussiaObj","lastName","address1","address2","city","postCode","terms","phone","setOrder","data-ng-activity-indicator","skip-ng-show","CoreKelloggs_KpsSubmitButton","Home","_intervalG","gigya","accounts","logout","CoreKelloggs_HomePageTitle","Register","_intervalR","CoreKelloggs_RegisterPageHeading","ValidEmailDirections_register","Forgotpassword","Recoverpassword","ResetPasswordHeader","Batchcode","getBtnObj","codesArrObj","setCodesArrObj","receipt1","invalid","large","empty","statusFile","statusMsg","showName","file","fileNameObj","setFileNameObj","smallViewPort","btnObj","setbtnObj","modalShown","setModalShown","pageState","toggleModal","removeClass","positionModal","updateBtnOj","validateCaptchaHome","updateValidateCaptchaHome","upcErrorLabels","CoreKelloggs_ErrorIncompleteCode","CoreKelloggs_ErrorInvalidCode","CoreKelloggs_ErrorCodeRequired","CoreKelloggs_ErrorDuplicateCode","upcCount","CodesCount","canImage","keyup","receiptAdded","_interval1","setAdimo","strTxt","CoreKelloggs_BuyNowAdimoLinkTitle","strTxt1","after","product_id","touchPointId","strTxtDetailPage","returnTouchpointID","codes","fileName","uploadReceipt","updateErrorKey","flag","errors","anyError","onBlur","transformedInput","duplicateCount","duplicate","verifyDuplicates","checkForDuplicates","_setStatuses","receiptNum","filename","valid","statusesArr","statusCheck","imageResponse","imageResult","Status","eq","Message","validResponse","sendForm","checkEntries","FormData","codesArr","codesInput","filenameVal","shipObj","closest","onTextChange","onUploadClick","trigger","validType","onChangeReceipt","reader","FileReader","files","elementName","size","readAsDataURL","BatchcodePageTitle","BatchcodeSectionTitle","BatchcodeSectionDescription","BatchcodeSectionDescription1","BatchcodeSectionDescription2","BatchcodeSectionInstruction","BatchcodeSectionInstruction1","map","code","BatchcodeSectionLabel","aria-atomic","autoComplete","placeholder","CoreKelloggs_EnterCodeInputFieldTitle","CoreKelloggs_UploadImageHeader","CoreKelloggs_UploadImageTypeError","CoreKelloggs_UploadImageSizeError","CoreKelloggs_UploadImageMandatoryError","data-attr","data-clickfor","CoreKelloggs_ReceiptUploadCtaTitle","CoreKelloggs_UploadImageCta","accept","data-asd","data-code","data-file-name","data-options","data-check-entries","CoreKelloggs_ReceiptUploadIconTitle","EnterNowCtaTitle","aria-disabled","CoreKelloggs_BatchcodeSectionCta","CoreKelloggs_CodehelpSection1Title","CanImageAltText","CodehelpSection1Instruction","data-smallv","String","CoreKelloggs_Uploadimageinstructionsheading","UploadImageInstructions","UploadImageStep1","UploadImageStep2","UploadImageStep3","Movie","CoreKelloggs_ChooseMoviePageTitle","Wordsearch","crossletters","setCrossletters","findwords","setFindwords","useEffect","crossword","CrossWordService","setLetters","setWords","words","wordsFromArr","wordsFrom","start","sett","highlightColor","crossHeight","contener","tabScope","getWords","letters","getLetters","marker","pos","isActive","canvas","context","getContext","extend","rescale","pointerEventToXY","out","currentX","currentY","touch","originalEvent","touches","changedTouches","pageX","pageY","floor","drawLine","end","sX","sY","beginPath","moveTo","lineTo","lineWidth","lineCap","strokeStyle","stroke","drawScrachedLines","isScratched","redraw","clearRect","contenerWidth","crosswordControl","turnOn","getScrachedWord","crosswordQueryStr","lastIndexOf","onselectstart","onmousedown","timerecorder","setFinishCallback","reason","isFinishEnable","Crossword","Words","coordinatesToReturn","lockCrossword","finishCb","finishErrorCb","startdate","set","enddate","ResultSolutionTimeSeconds","haveFinalDetails","lettersToSet","wordsToSet","wordsArr","word","finishCrossWord","answers","Row","Columns","SolutionTimeSeconds","wordSearchComplete","RedirectUrl","portfolio","Portfolio","prizes","Prizes","fnError","customMerg","obj1","obj2","obj3","posStart","posEnd","scrachedWord","lettersCoordinates","abs","checkWord","starty","count","reverse","wordChecked","min","color","z","CoreKelloggs_CrosswordPageTitle","WordSearchPageTitle","cross-word","control","row","vindex","WordsToFind","ng-activity-indicator","ng-show","Puzzle","cardIndex","postKey","imgSrc","values","puzzle","genRanNo","random","index1","randomNo","rplacedNo","handlePuzzle","jqPuzzle","texts","defaults","rows","cols","hole","shuffle","numbers","shufflePieces","confirmShuffle","toggleOriginal","toggleNumbers","counter","timer","pauseTimer","success","fadeOriginal","callbackTimeout","animation","shuffleRounds","shuffleSpeed","slidingSpeed","fadeOriginalSpeed","gridSize","overlap","backgroundOpacity","i18n","shuffleLabel","toggleOriginalLabel","toggleNumbersLabel","confirmShuffleMessage","movesLabel","secondsLabel","fr","de","pt","checkOrder","numbersArray","product","round","getMatrixPosition","col","getBorderWidth","$element","property","Timer","interval","startTime","startPauseTime","timeout","totalPause","run","update","getTime","now","stop","clearTimeout","pause","resume","solved","$srcImg","lock","moves","shuffled","currHole","$dummyPiece","$dummyWrapper","$dummyGui","replaceWith","computedStyles","gui","padding","right","bottom","wrapper","piece","removeAttr","one","coveredWidth","coveredHeight","visibility","fullWidth","fullHeight","totalPieceWidth","totalPieceHeight","boxModelHack","boxModel","getOffset","rounds","speed","$shuffleButton","is","confirm","$gui","$background","fadeTo","prependTo","$wrapper","$buttons","$display","$counter","$timer","shuffles","choices","splice","randomIndex","animCounter","lastRound","pieceIndex","$piece","$pieces","expPos","emptyTile","ImagePuzzleTitleAccess_copy5","ImagePuzzleTitleAccess_copy1","And","ImagePuzzleTitleAccess_copy2","ImagePuzzleTitleAccess_copy3","ImagePuzzleTitleAccess_copy4","borderWidth","margin","$protoPiece","backgroundImage","bgLeft","bgTop","clone","backgroundPosition","$originalButton","$numbersButton","opacity","$controls","$protoButton","$protoField","$credits","$panel","backgroundColor","textAlign","browser","msie","mousedown","mouseout","mouseup","current","currPos","dest","ImagePuzzleTitleAccess_copy","positions","blankPos","currVal","expVal","movVal","ms","checkSolution","finishGame","show","solutionCallback","isFunction","puzzleMoves","TieBreakAnswer","complete","jQuery","version","$1","CoreKelloggs_PuzzlePageTitle","ImagePuzzlePageTitle","ImagePuzzleStepsHeading","ImagePuzzleSteps1","ImagePuzzleSteps2","ImagePuzzleSteps3","ImagePuzzleTitleCopy","ImagePuzzleTitleCopy1","ImagePuzzleTitleCopy2","Thankyou","useLocation","WinPageDesc","WinPageHeading","WinPageDesc1","WinPageDesc2","refNumberCopy","winnerCode","PrizeDrawThankyouHeading","PrizeDrawThankyouDesc","PrizeDrawThankyouDesc1","Sorry","NotAWinnerPageHeading","NotAWinnerPageDesc","Tier1SmartTv_heading","Tier1SmartTv_heading1","Tier1SmartTv_desc","Tier1SmartTv_desc1","ReferenceNumberCopy","Tier1SmartTv_desc2","ThankYouPageHeading","ThankYouPageDescription","ThankYouPageDescription1","setThankyouContent","CoreKelloggs_ThankyouPageTitle","Limit","limitPageHeading","limitPageDesc","limitPageDesc1","globalLimit","WinLimit","CoreKelloggs_MaximumEntryLimit","CoreKelloggs_MaximumEntryLimit_teamPringles","DailyLimit","DailyLimitDesc","CoreKelloggs_LimitPageTitle","Error","ErrorKey","titleError","CoreKelloggs_ErrorPageTitle","CoreKelloggs_ErrorPageHeading","FAQ","defaultFaq","clicked_country","currentlang","FaqRomania","Faq","faqContent","setFaqContent","clickedCountry","setClickedCountry","show_hide","CoreKelloggs_FaqPageTitle","LabelRomania","LabelMoldova","Terms","defaultTerms","TncRomania","Tnc","tncContent","setTncContent","CoreKelloggs_TermsPageTitle","serviceURL","JS_ServiceURL","base","siteURL","ajax","dataType","jsonpCallback","request","errorThrown","getAlert","jsonObject","json","msg","hits","detMsgURL","alertImgURL","shortMsg","App","loaded","setLoaded","loadApp","faqTnc","Fragment","exact","toLocaleLowerCase","ReactDOM","StrictMode"],"mappings":"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","file":"static/js/main.41e32ddf.chunk.js","sourcesContent":["/* eslint-disable */\r\n\r\n!function(a,b){function c(){if(!e){e=!0;for(var a=0;a0?a.medium=\"paid search\":null!=b(\"utm_source\")||b(\"utm_medium\")||null!=b(\"utm_term\")||b(\"utm_content\")||null!=b(\"utm_campaign\")||(c.indexOf(\".google.\")>=0||c.indexOf(\".yahoo.\")>=0||c.indexOf(\".bing.\")>=0?a.medium=\"organic search\":a.medium=\"referral\"),sessionStorage.adimoTracking=JSON.stringify(a)):null!=sessionStorage.adimoTracking&&sessionStorage.adimoTracking.length>0&&(a=JSON.parse(sessionStorage.adimoTracking)));var e=\"\";return e+=null!=a.source?\"&utm_source=\"+encodeURIComponent(a.source):\"\",e+=null!=a.medium?\"&utm_medium=\"+encodeURIComponent(a.medium):\"\",e+=null!=a.term?\"&utm_term=\"+encodeURIComponent(a.term):\"\",e+=null!=a.content?\"&utm_content=\"+encodeURIComponent(a.content):\"\",e+=null!=a.campaign?\"&utm_campaign=\"+encodeURIComponent(a.campaign):\"\"},getParameterByName:function(a){a=a.replace(/[\\[]/,\"\\\\[\").replace(/[\\]]/,\"\\\\]\");var b=new RegExp(\"[\\\\?&]\"+a+\"=([^&#]*)\"),c=b.exec(location.search);return null===c?\"\":decodeURIComponent(c[1].replace(/\\+/g,\" \"))},getPageScroll:function(){var a,b;return self.pageYOffset?(b=self.pageYOffset,a=self.pageXOffset):document.documentElement&&document.documentElement.scrollTop?(b=document.documentElement.scrollTop,a=document.documentElement.scrollLeft):document.body&&(b=document.body.scrollTop,a=document.body.scrollLeft),new Array(a,b)},findButtonsWidget:function(a,b){for(var c=a.parentNode||a.parentElement,d=0;d iframe\").style.height=f+\"px\"}}}function e(a){var b=a.widget,c=b.offsetWidth;b.classList.remove(\"adimoMicro\"),b.classList.remove(\"adimoTiny\"),b.classList.remove(\"adimoSmall\"),b.classList.remove(\"adimoMedium\"),c<70+a.offerLabelWidth?b.classList.add(\"adimoMicro\"):c<122+a.offerLabelWidth?b.classList.add(\"adimoTiny\"):c<172+a.offerLabelWidth?b.classList.add(\"adimoSmall\"):c<222+a.offerLabelWidth&&b.classList.add(\"adimoMedium\")}function f(a){var b=this,d=Adimo.utils.findButtonsWidget(b,o);if(d.widget.onclick){var e=d.widget,f=e.getAttribute(\"onclick\");if(f.includes(\"setLanguage\")){var g=f.match(/\\('(.*)'\\)/);if(g){var j=g[1];window.Adimo.defaultLanguage=j}}}if(!d.widget.classList.contains(\"adimoAjaxLoading\")){if(d.popup)d.isVisible?i(d):h(d);else{d.widget.classList.add(\"adimoAjaxLoading\");var m=d.staticTouchpointIdentifier;null!=Adimo.utils.getParameterByName(\"host\")&&\"&host=\"+Adimo.utils.getParameterByName(\"host\");var n=\"recipe-lightbox\"===d.type?\"recipes\":\"lightbox\",q=d.disableABTest,s=\"https://campaigns-api.adimo.co\";window.ADIMO_DOMAIN&&(s=window.ADIMO_DOMAIN);var t=s+\"/Conversions/ConvertStaticTouchpointToTouchpointUrl?touchpointIdentifier=\"+m+\"&frameId=\"+d.index+Adimo.utils.getGATracking()+\"&touchpointPath=\"+n+\"&suppressAutoEngagementTracking=false&\"+(window.Adimo.defaultLanguage?\"defaultLanguage=\"+window.Adimo.defaultLanguage+\"&\":\"\")+(d.doNotTrack?\"doNotTrack=true&\":\"\")+(d.dismissCookieNotification?\"dismissCookieNotification=true&\":\"\")+\"isLightbox=true&disableABTest=\"+(q?\"true\":\"false\")+(r?\"&autoOpen=true\":\"\");\"undefined\"!=typeof ga&&ga&&ga(function(){try{var a=ga.getAll(),b=\"\";a.length>0&&(a.forEach(function(a){var c=a.get(\"clientId\");b+=a.get(\"trackingId\")+\":\"+c+\",\"}),b.length>0&&(b=b.substring(0,b.length-1)),t+=\"&gaClient=\"+b)}catch(a){}});var u=l.createElement(\"div\");u.className=\"adimoPopup\";var v=\"LightboxFrame_\"+d.index,w=l.createElement(\"a\");w.className=\"adimo-iframe-anchor\",w.setAttribute(\"href\",\"#\"+v),w.textContent=c().iframeAnchorText,w.style.display=\"inline-block\",w.style.position=\"absolute\",w.style.left=\"50%\",w.style.top=\"50px\",w.style[\"font-size\"]=\"1px\",u.appendChild(w);var x=l.createElement(\"div\");x.className=\"iframeBox\",x.style.overflow=\"hidden\";var y=l.createElement(\"iframe\");y.setAttribute(\"id\",v),y.classList.add(\"adimo-lightbox-frame\"),function(a){y.onload=function(){h(a),a.widget.classList.remove(\"adimoAjaxLoading\"),k.adimoLoadedIframe&&k.adimoLoadedIframe()}}(d),y.src=t,y.frameBorder=\"0\",y.scrolling=\"no\",y.setAttribute(\"allow\",\"geolocation *;\"),y.style.width=p+\"px\",x.appendChild(y),u.appendChild(x),d.popup=u,l.body.appendChild(d.popup)}return!1}}function g(a){this.removeEventListener(\"click\",g,!1);var b=this.parentNode;this.classList.contains(\"adimoPopup\")&&(b=this);for(var c=null,d=0;d iframe\");b.contentWindow.focus(),b.contentWindow.postMessage({type:\"lightboxOpened\"},\"*\");for(var c=document.querySelectorAll(\"body > *:not(.adimoLightbox)\"),d=0;d0&&(i=parseInt(g.substring(h+5,g.indexOf(\".\",h)),10)),0===i||i>=11){var j=new XMLHttpRequest;j.open(\"POST\",a),j.setRequestHeader(\"Content-Type\",\"application/json; charset=utf-8\"),j.send(JSON.stringify(f))}null!=c&&\"https://4dvq37jqcg.execute-api.eu-west-1.amazonaws.com/prod/send\"==a&&t.push(c)}}var k=a,l=k.document,m=\"https://cdn.adimo.co\",n=null,o=[],p=262,q=220,r=!1;widgetIndex=0;var s={en:{buttonAriaLabel:\"Click to Add to Basket\",iframeAnchorText:\"Continue on to add products to your basket\"},he:{buttonAriaLabel:\"לחץ להוספה לסל\",iframeAnchorText:\"המשך להוסיף מוצרים לסל שלך\"},ar:{buttonAriaLabel:\"انقر للإضافة إلى سلة التسوق\",iframeAnchorText:\"استمر في إضافة منتجات إلى سلتك\"}},t=[];return{init:function(a,g){var h=function(){function a(a){var b=null;if(a.children.length>0){var d=a.innerHTML;a.innerHTML=\"\",b=document.createElement(\"div\"),d=d.replace(/href=\"#[0-9a-zA-Z]*\"/g,'href=\"javascript:void(0)\"').replace(/href=\\'#[0-9a-zA-Z]*\\'/g,\"href='javascript:void(0)'\"),b.innerHTML=d,b.style.cursor=\"pointer\"}else{b=l.createElement(\"button\"),b.classList.add(\"adimoButton\"),b.classList.add(\"sticker\"),b.classList.add(\"type-atb\"),b.style.border=\"none\",b.setAttribute(\"aria-label\",c().buttonAriaLabel);var h=l.createElement(\"div\");h.id=\"loadIndicator\",h.classList.add(\"loader\"),b.appendChild(h)}!function(a){a.addEventListener(\"click\",function(b){b.preventDefault(),f.call(a,b)})}(b);var i=a.getAttribute(\"data-static-touchpoint-identifier\"),k=\"recipe-lightbox\"===a.getAttribute(\"data-type\")?\"recipe-lightbox\":\"lightbox\",m=\"true\"===a.getAttribute(\"data-disable-ab-test\"),n={index:widgetIndex++,widget:a,button:b,staticTouchpointIdentifier:i,popup:null,isVisible:!1,disableABTest:m,type:k};a.getAttribute(\"data-do-not-track\")&&\"true\"==a.getAttribute(\"data-do-not-track\")&&(n.doNotTrack=!0),a.getAttribute(\"data-dismiss-cookie-notification\")&&\"true\"==a.getAttribute(\"data-dismiss-cookie-notification\")&&(n.dismissCookieNotification=!0),j(\"https://4dvq37jqcg.execute-api.eu-west-1.amazonaws.com/prod/send\",\"lightboxv2\",i,null,null),g&&(o=[]),a.appendChild(n.button),e(n),o.push(n),r=Adimo.utils.getParameterByName(\"a_open\");var p=Adimo.utils.getParameterByName(\"a_open\")==i;(r||p)&&(\"true\"===r.toLowerCase()||p)&&(r=!0,b.click())}var b=l.querySelectorAll(\".adimoModalOverlay\");if(b.length>0&&b[0].parentNode.removeChild(b[0]),n=l.createElement(\"div\"),n.className=\"adimoModalOverlay\",n.style.display=\"none\",l.body.appendChild(n),null==document.getElementById(\"adimoWidgetSS\")){var d=document.createElement(\"link\");d.rel=\"stylesheet\",d.type=\"text/css\",d.id=\"adimoWidgetSS\",d.href=m+\"/BasketAdsWidget/widget.css\",(document.head||document.documentElement).appendChild(d)}var h=l.querySelectorAll(\".adimoWidget\");const i=function(b){1===b.nodeType&&b.classList.contains(\"adimoWidget\")&&a(b),b.childNodes&&[].forEach.call(b.childNodes,function(a){i(a)})};new MutationObserver(function(a,b){for(var c=0;c {\r\n return (\r\n \r\n \r\n {title}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default MetaTags;\r\n","import axios from 'axios';\r\nimport { locale } from './Global';\r\n\r\nexport const checkUpcCodes = async (dataObj, token) => {\r\n if (!locale || !dataObj) { return; }\r\n let urlPath = '/api/' + locale + '/redemption/validate-codes';\r\n if (locale.toLowerCase() == 'it_it') {\r\n urlPath = '/api/' + locale + '/redemption/validate-codesIT'\r\n }\r\n if (locale.toLowerCase() == 'it_it') {\r\n const response = await axios(urlPath, {\r\n method: 'POST',\r\n headers: { \r\n 'Content-Type': undefined, \r\n enctype: 'multipart/form-data', \r\n 'redemption-token': token \r\n },\r\n data: dataObj,\r\n });\r\n return response.data;\r\n } else {\r\n const response = await axios(urlPath, {\r\n method: 'POST',\r\n headers: { 'redemption-token': token },\r\n data: { 'codes': dataObj },\r\n });\r\n return response.data;\r\n }\r\n};\r\n\r\nexport const checkUser = async objToSend => {\r\n if (!locale || !objToSend) { return; }\r\n var keys = '',\r\n urlPath = '/api/' + locale + '/redemption/user';\r\n for (keys in objToSend) {\r\n if (objToSend[keys] === '') {\r\n return;\r\n }\r\n }\r\n var dataObj = {\r\n 'accessToken': objToSend.accessToken,\r\n 'userName': objToSend.userName,\r\n 'profileId': objToSend.profileId,\r\n 'userAgent': objToSend.userAgent,\r\n 'QuestionLegal': objToSend.QuestionLegal,\r\n 'allParamsEncrypted': objToSend.allParamsEncrypted\r\n }\r\n const response = await axios(urlPath, {\r\n method: 'POST',\r\n // headers: {\r\n // 'redemption-token': objToSend['redemption-token']\r\n // },\r\n data: dataObj,\r\n });\r\n return response.data;\r\n\r\n};\r\nexport const russiaOrder = async shippingInfoObj => {\r\n if (!locale || !shippingInfoObj) { return; }\r\n var urlPath = '/api/' + locale + '/redemption/userKPS';\r\n var dataObj = {\r\n 'shippingDetails': shippingInfoObj.shippingDetails,\r\n 'UserName':shippingInfoObj.UserName,\r\n 'accessToken': shippingInfoObj['redemption-token'],\r\n 'profileId': -1,\r\n 'userAgent': shippingInfoObj.ua,\r\n 'allParamsEncrypted': shippingInfoObj['redemption-token']\r\n }\r\n const response = await axios(urlPath, {\r\n method: 'POST',\r\n headers: {\r\n 'redemption-token': shippingInfoObj['redemption-token']\r\n },\r\n data: dataObj,\r\n });\r\n return response.data;\r\n\r\n};\r\nexport const verifyCaptchaEnterCode = async data => {\r\n if (!locale || !data) { return; }\r\n var urlPath = '/api/' + locale + '/redemption/authenticate-validate-codes';\r\n const response = await axios(urlPath, {\r\n method: 'POST',\r\n headers: {\r\n 'redemption-token': data.redemptionToken\r\n },\r\n data: { EncodedResponse: data.token },\r\n });\r\n return response.data;\r\n\r\n};\r\nexport const verifyCaptcha = async data => {\r\n if (!locale || !data) { return; }\r\n var urlPath = '/api/' + locale + '/redemption/authenticate';\r\n const response = await axios(urlPath, {\r\n method: 'POST',\r\n headers: {\r\n 'redemption-token': data.redemptionToken\r\n },\r\n data: { EncodedResponse: data.token },\r\n });\r\n return response.data;\r\n\r\n};\r\n\r\nexport const orderAward = async (shippingInfoObj) => {\r\n if (!locale || !shippingInfoObj) { return; }\r\n let urlPath = '/api/' + locale + '/redemption/init-order';\r\n const response = await axios(urlPath, {\r\n method: 'POST',\r\n headers: { 'redemption-token': shippingInfoObj['redemption-token'] },\r\n data: {'shippingDetails': shippingInfoObj.shippingDetails}\r\n });\r\n return response.data;\r\n};\r\nexport const getPuzzle = async (token) => {\r\n if (!locale) { return; }\r\n let urlPath = '/api/' + locale + '/redemption/get-skill';\r\n const response = await axios(urlPath, {\r\n method: 'POST',\r\n headers: { 'redemption-token': token }\r\n });\r\n return response.data;\r\n};\r\nexport const postPuzzle = async (data,token) => {\r\n if (!locale || !data) { return; }\r\n let urlPath = '/api/' + locale + '/redemption/validate-skill';\r\n const response = await axios(urlPath, {\r\n method: 'POST',\r\n headers: { 'redemption-token': token },\r\n data : data\r\n });\r\n return response.data;\r\n};\r\nexport const getCrossword = async (token) => {\r\n if (!locale) { return; }\r\n let urlPath = '/api/' + locale + '/redemption/get-crossword';\r\n const response = await axios(urlPath, {\r\n method: 'POST',\r\n headers: { 'redemption-token': token }\r\n });\r\n return response.data;\r\n};\r\nexport const postCrossword = async (data,token) => {\r\n if (!locale || !data) { return; }\r\n let urlPath = '/api/' + locale + '/redemption/validate-crossword';\r\n const response = await axios(urlPath, {\r\n method: 'POST',\r\n headers: { 'redemption-token': token },\r\n data : data\r\n });\r\n return response.data;\r\n};\r\n\r\n\r\n","export const getLocalData = (key) => {\r\n var value = localStorage.getItem(key);\r\n if (!value) { return; }\r\n // assume it is an object that has been stringified\r\n if (value[0] === \"{\" && key != 'servToken') {\r\n value = JSON.parse(value);\r\n }\r\n return value;\r\n};\r\nexport const setLocalData = (key, value) => {\r\n if (!key || !value) { return; }\r\n if (typeof value === \"object\") {\r\n value = JSON.stringify(value);\r\n }\r\n localStorage.setItem(key, value);\r\n};\r\nexport const removeLocalData = (key) => {\r\n if (!key) { return; }\r\n localStorage.removeItem(key);\r\n};\r\nexport const getSessionData = (key) => {\r\n var value = sessionStorage.getItem(key);\r\n if (!value) { return; }\r\n // assume it is an object that has been stringified\r\n if (value[0] === \"{\" && key != 'servToken') {\r\n value = JSON.parse(value);\r\n }\r\n return value;\r\n};\r\nexport const setSessionData = (key, value) => {\r\n if (!key || !value) { return; }\r\n if (typeof value === \"object\") {\r\n value = JSON.stringify(value);\r\n }\r\n sessionStorage.setItem(key, value);\r\n};\r\nexport const removeSessionData = (key) => {\r\n if (!key) { return; }\r\n sessionStorage.removeItem(key);\r\n};\r\n","import React, { useState, createContext } from 'react';\r\nimport axios from 'axios';\r\nimport { locale } from './Global';\r\n\r\nconst JsonContext = createContext();\r\nexport const LoadJson = ({ children }) => {\r\n const [translations, setTranslations] = useState('');\r\n const [settings, setSettings] = useState('');\r\n let windowOriginURL = window.location.origin,\r\n jsonEnvUrl = (windowOriginURL.indexOf('stage.') >= 0 || windowOriginURL.indexOf('staging-') >= 0) ? 'Stage' : (windowOriginURL.indexOf('local.') >= 0 || windowOriginURL.indexOf('dev-') >= 0) ? 'Dev' : 'Prod';\r\n // Translations Call\r\n let translationsLoadFlag = (translations === '') ? true : false,\r\n translationsURL = (locale == 'be' || locale == 'ch') ? '/Content/mock/' + locale + '/translations.json' : '/Content/translations/LetsCelebrate2022_' + locale + '.json';\r\n if (translationsLoadFlag) {\r\n async function getData() {\r\n const res = await axios.get(translationsURL);\r\n setTranslations(res.data.Translations);\r\n }\r\n getData();\r\n }\r\n\r\n // Settings Call\r\n let settingsLoadFlag = (settings === '') ? true : false,\r\n settingsURL = (locale == 'be' || locale == 'ch') ? '/Content/mock/settings_splitter.json' : '/Content/settingsJson/values_' + jsonEnvUrl + '.json',\r\n settingsData;\r\n if (settingsLoadFlag) {\r\n async function getSettings() {\r\n const res = await axios.get(settingsURL);\r\n settingsData = res.data.filter(function (itm) {\r\n return itm.Locale == locale;\r\n });\r\n setSettings(settingsData[0]);\r\n }\r\n getSettings();\r\n }\r\n return {children}\r\n \r\n}\r\n\r\nexport default JsonContext;","import { useHistory } from \"react-router-dom\";\r\nimport { useContext } from 'react';\r\nimport * as webStorageService from './WebStorageFactory';\r\nimport { locale, pageScroll } from './Global';\r\nimport JsonContext from './JsonProvider';\r\n\r\nconst ErrorProvider = () => {\r\n const { translations } = useContext(JsonContext);\r\n const history = useHistory();\r\n return {\r\n HandleError: (error) => {\r\n webStorageService.setSessionData('createPageState', 'Error');\r\n if (error!=undefined) {\r\n if (error.status === 500 || error.status === 503 || error.status === 400 || error.status === 403) {\r\n if (error.data.ErrorCode == undefined) {\r\n webStorageService.setSessionData('ErrorCode', error.status);\r\n history.push('/' + locale + '/Error/' + error.status);\r\n let errMsgInvalid = (translations.CoreKelloggs_GeneralErrorMsg).replace(\"100\", error.status);\r\n webStorageService.setSessionData('ErrorKey', errMsgInvalid);\r\n } else {\r\n webStorageService.setSessionData('ErrorKey', translations[error.data.ErrorMessage]);\r\n webStorageService.setSessionData('ErrorCode', error.data.ErrorCode);\r\n history.push('/' + locale + '/Error/' + error.data.ErrorCode);\r\n }\r\n pageScroll();\r\n }\r\n } else {\r\n history.push('/' + locale + '/Error/100');\r\n }\r\n }\r\n }\r\n};\r\n\r\nexport default ErrorProvider;","import { locale } from './Global';\r\n\r\n const dataLayers=()=> {\r\n return {\r\n init: _initDataLayers,\r\n gtm: _initGTM,\r\n signInData: _SuccessfulSignIn,\r\n registerData: _SuccessfulAccountRegistration,\r\n orderData: _OderComplete,\r\n imageUpload: _ImageUpload,\r\n selectSplitLocale: _SelectSplitLocale,\r\n packCodeData: _PackCodeSubmission,\r\n backToHP:_BackToHP,\r\n socialData: _SocialShare,\r\n imagePuzzleEntryComplete:_imagePuzzleEntryComplete,\r\n entryLimit:_entryLimit,\r\n winLimit:_winLimit,\r\n errorCodeEvent:_ErrorCode,\r\n };\r\n function _initDataLayers(settings){\r\n var script = document.createElement('script'),\r\n body = document.getElementsByTagName('body'),\r\n lang = (locale == 'be' || locale == 'ch') ? settings.Culturecode.split('-')[0]:locale.split('_')[0].toLowerCase(),\r\n country = (locale == 'be' || locale == 'ch') ? locale:locale.split('_')[1].toUpperCase();\r\n script.type = 'text/javascript';\r\n script.id = 'DataLayer';\r\n script.text = 'var dataLayer = [{\\'language\\': \\''+ lang +'\\', \\'locale\\': \\''+ country +'\\', \\'brand\\': \\'Pringles\\', \\'campaign\\': \\'Celebrate 2022\\'}];';\r\n document.body.prepend(script);\r\n }\r\n function _initGTM(translations){\r\n var script = document.createElement('script'),\r\n noscript = document.createElement('noscript'),\r\n iframe = document.createElement('iframe'),\r\n body = document.getElementsByTagName('body'),\r\n dl = document.getElementById('DataLayer');\r\n script.type = 'text/javascript';\r\n script.text = '(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({\\'gtm.start\\':new Date().getTime(),event:\\'gtm.js\\'});var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!=\\'dataLayer\\'?\\'&l=\\'+l:\\'\\';j.async=true;j.src=\\'//www.googletagmanager.com/gtm.js?id=\\'+i+dl;f.parentNode.insertBefore(j,f);})(window,document,\\'script\\',\\'dataLayer\\',\\'GTM-PVLK\\');';\r\n iframe.src = '//www.googletagmanager.com/ns.html?id=GTM-PVLK';\r\n iframe.height = 0;\r\n iframe.width = 0;\r\n iframe.style = 'display:none;visibility:hidden';\r\n iframe.name = 'grm-iframe';\r\n iframe.title=translations.GtmTitle;\r\n Node.prototype.insertAfter = function(newNode) {\r\n if(this.nextSibling) {\r\n return this.parentNode.insertBefore(newNode, this.nextSibling);\r\n } else {\r\n return this.parentNode.appendChild(newNode);\r\n }\r\n };\r\n dl.insertAfter(noscript);\r\n noscript.appendChild(iframe);\r\n noscript.insertAfter(script);\r\n }\r\n function _addData(obj){\r\n if(!obj || Object.keys(obj).length <= 0){return;}\r\n if(window.dataLayer){\r\n window.dataLayer.push(obj); \r\n }\r\n return; \r\n }\r\n function _PackCodeSubmission(){\r\n var obj = {\r\n 'event': 'KE1.event',\r\n 'category': 'Celebrate 2022',\r\n 'action': 'Pack Code Submission',\r\n 'label': 'Success'\r\n };\r\n _addData(obj);\r\n return;\r\n }\r\n function _ImageUpload(){\r\n var obj = {\r\n 'event': 'KE1.event',\r\n 'category': 'Celebrate 2022',\r\n 'action': 'Image Upload(Italy)',\r\n 'label': 'Success'\r\n };\r\n _addData(obj);\r\n return;\r\n }\r\n function _SelectSplitLocale(language_region) {\r\n var obj = {\r\n 'event': 'KE1.event',\r\n 'category': 'Celebrate 2022',\r\n 'action': 'Language Page',\r\n 'label': language_region\r\n };\r\n _addData(obj);\r\n }\r\n function _imagePuzzleEntryComplete(){\r\n var obj = {\r\n 'event': 'KE1.event',\r\n 'category': 'Celebrate 2022',\r\n 'action': 'Image Puzzle Entry Complete',\r\n 'label': 'Prize TBC'\r\n };\r\n\r\n _addData(obj);\r\n return;\r\n }\r\n function _SuccessfulSignIn(userId,label){\r\n var updated_label = (label=='Social')?label:'On-site';\r\n var obj = {\r\n 'event': 'KE1.event',\r\n 'category': 'Celebrate 2022',\r\n 'action': 'Account Log In',\r\n 'label': updated_label,\r\n 'userID': userId ? userId : ''\r\n };\r\n _addData(obj);\r\n }\r\n function _SuccessfulAccountRegistration(userId,optIn,label){\r\n var updated_label=(label=='Social')?label:'On-site';\r\n var obj = {\r\n 'event': 'KE1.event',\r\n 'category': 'Celebrate 2022',\r\n 'action': 'Account Registration',\r\n 'label': updated_label,\r\n 'userID': userId ? userId : '',\r\n 'optIn': optIn ? 'Opt In' : 'Opt Out'\r\n };\r\n _addData(obj);\r\n }\r\n function _OderComplete(prizeNumber) {\r\n var label;\r\n switch (prizeNumber) {\r\n case 1:\r\n label = 'The Samsung Sero 43\" QLED Smart TV';\r\n break;\r\n case 97:\r\n label = 'Prize TBC';\r\n break;\r\n }\r\n var obj = {\r\n 'event': 'KE1.event',\r\n 'category': 'Celebrate 2022',\r\n 'action': 'Entry Complete',\r\n 'label': label\r\n };\r\n _addData(obj);\r\n }\r\n function _SocialShare(label){\r\n var obj = {\r\n 'event': 'KE1.event',\r\n 'category': 'Celebrate 2022',\r\n 'action': 'Social Share',\r\n 'label': label ? label : ''\r\n };\r\n _addData(obj);\r\n }\r\n function _entryLimit(){\r\n var obj = {\r\n 'event': 'KE1.event',\r\n 'category': 'Celebrate 2022',\r\n 'action': 'Daily Limit Exceeded',\r\n 'label': 'Success'\r\n };\r\n _addData(obj);\r\n }\r\n function _winLimit(){\r\n var obj = {\r\n 'event': 'KE1.event',\r\n 'category': 'Celebrate 2022',\r\n 'action': 'Win Limit Exceeded',\r\n 'label': 'Success'\r\n };\r\n _addData(obj);\r\n }\r\n function _BackToHP(){\r\n var obj = {\r\n 'event': 'KE1.event',\r\n 'category': 'Celebrate 2022',\r\n 'action': 'Return To Homepage',\r\n 'label': 'Success'\r\n };\r\n _addData(obj);\r\n }\r\n function _ErrorCode(url,errorCode){\r\n var obj = {\r\n 'event': 'KE1.event', \r\n 'category': 'Celebrate 2022', \r\n 'action': 'Error Code', \r\n 'label': url?url:'', \r\n 'errorCode': errorCode?errorCode:''\r\n };\r\n _addData(obj);\r\n }\r\n }\r\n \r\nexport default dataLayers;","import { useHistory } from \"react-router-dom\";\r\nimport { useContext } from 'react';\r\nimport { locale, $, pageScroll, isNpr } from './Global';\r\nimport * as API from './ApiCalls';\r\nimport * as webStorageService from './WebStorageFactory';\r\nimport JsonContext from './JsonProvider';\r\nimport ErrorProvider from \"./ErrorProvider\";\r\nimport dataLayers from \"./DataLayers\";\r\n\r\nconst LoadGRM = (formType, cb) => {\r\n const { settings } = useContext(JsonContext);\r\n const history = useHistory();\r\n const { HandleError } = ErrorProvider();\r\n const handleRoute = (path) => {\r\n history.push({ pathname: path });\r\n pageScroll();\r\n };\r\n const handleRouteNpn = (path, obj) => {\r\n if(path.toLowerCase().indexOf('thankyou')>-1){\r\n webStorageService.setSessionData('createPageState', 'Thankyou');\r\n }else if(path.toLowerCase().indexOf('puzzle')>-1){\r\n webStorageService.setSessionData('createPageState', 'Puzzle');\r\n }\r\n history.push({ pathname: path, state: obj });\r\n pageScroll();\r\n };\r\n var login = false,\r\n register = false,\r\n subscription = false,\r\n reset = false,\r\n questionLegal;\r\n\r\n switch (formType) {\r\n case 'login':\r\n login = true;\r\n register = false;\r\n break;\r\n case 'register':\r\n login = false;\r\n register = true;\r\n break;\r\n case 'forgot':\r\n login = true;\r\n register = false;\r\n break;\r\n case 'reset':\r\n // login = true;\r\n // register = false;\r\n reset = true;\r\n break;\r\n default:\r\n login = true;\r\n register = true;\r\n }\r\n var generateGRM = function () {\r\n if (document.querySelectorAll('#reg-container').length) {\r\n var container = document.getElementById('reg-container'),\r\n url = window.location.host,\r\n socialLogin = (settings.SocialSharingLocales.toLowerCase()).indexOf(locale.toLowerCase()) > -1 ? true : false,\r\n configObj = {\r\n environment: settings.GRMServiceURL.match('stage') ? 'stage' : 'prod', // or 'stage' for testing\r\n moduleKey: settings.GRMModuleKey, //modulekeyvalue, //\r\n showLogin: login,\r\n showSignup: register,\r\n showFacebook: socialLogin,\r\n showTwitter: socialLogin,\r\n facebookAppId: window.location.hostname.indexOf('pringles.com') < 0 ? '507845417694792' : '576577947491834',\r\n // myAccountUrl: '/path/to/myaccount.html', // required, if you are implementing my account v6\r\n languageParam : locale.split(\"_\").join(\"-\"),\r\n region:\"KEU\",\r\n gigyaApiKey : settings.SAPGigyaApiKey,\r\n onAuth: function (authUser) {\r\n // cookie authUser properties, or post them back to your server via AJAX\r\n // then fire callback to notify the reg v6 module that your auth routine has finished\r\n // for example:\r\n if (authUser) {\r\n if (login || register) {\r\n var dataToSend = {\r\n // 'redemption-token': webStorageService.getSessionData('servToken'),\r\n 'QuestionLegal': questionLegal== undefined && authUser.ProfileAttributes!=null ? authUser.ProfileAttributes.QuestionLegal : questionLegal,\r\n 'accessToken': authUser.AccessToken,\r\n 'userName': authUser.UsernameForServiceAuth,\r\n 'profileId': authUser.ProfileID,\r\n 'userAgent': navigator.userAgent,\r\n 'allParamsEncrypted': authUser.AllParamsEncrypted\r\n };\r\n // $rootScope.profileId = authUser.ProfileID;\r\n // $rootScope.disableRegister = true;\r\n\r\n\r\n API.checkUser(dataToSend).then((response) => {\r\n // var locale = webStorageService.getSessionData('requestedlocale'),\r\n var page = '',\r\n proceed = true;\r\n if (response.redirect) {\r\n\r\n proceed = false;\r\n \r\n if (response.redirect.indexOf('limit') > -1) {\r\n webStorageService.setSessionData('createPageState', 'Limit');\r\n webStorageService.setSessionData('limitType', response.message);\r\n }\r\n if (response.redirect.indexOf('puzzle') > -1) {\r\n webStorageService.setSessionData('createPageState', 'puzzle');\r\n }\r\n handleRoute(response.redirect);\r\n\r\n }\r\n if (response.user) {\r\n response.user.profileId = authUser.ProfileID;\r\n // resourceService.setGRMUser(response.user);\r\n webStorageService.setSessionData('grmUser', response.user);\r\n }\r\n if (response.token) {\r\n webStorageService.setSessionData('servToken', response.token);\r\n var token = response.token;\r\n }\r\n if (formType === 'login') {\r\n dataLayers().signInData(authUser.ProfileID, authUser.City, authUser.Country, subscription, authUser.Flow);\r\n }\r\n if (formType === 'register') {\r\n dataLayers().registerData(authUser.ProfileID, authUser.City, authUser.Country, subscription, authUser.Flow);\r\n }\r\n if ((formType === 'login' || formType === 'register') && proceed) {\r\n /*$location.path('/' + lang + '/ShippingDetails');\r\n accessService.setPermission('shippingdetails', true);*/\r\n if (isNpr && response.Nobatchcoderequired) {\r\n var data = [];\r\n API.checkUpcCodes(data, webStorageService.getSessionData('servToken')).then(function (response) {\r\n \r\n if (!!response.result && response.result.length > 0) {\r\n webStorageService.setSessionData('servToken', response.token);\r\n var grm = webStorageService.getSessionData('grmUser');\r\n var shippingInfoObj = {\r\n 'redemption-token': webStorageService.getSessionData('servToken'),\r\n 'shippingDetails': grm\r\n };\r\n API.orderAward(shippingInfoObj).then(function (response) {\r\n \r\n \r\n if (response.token) {\r\n \r\n webStorageService.setSessionData('servToken', response.token);\r\n webStorageService.setLocalData('servToken', response.token);\r\n } else {\r\n webStorageService.removeSessionData('servToken');\r\n }\r\n // var grmUser = {};\r\n // if (Object.keys(resourceService.getGRMUser()).length !== 0) {\r\n // grmUser = resourceService.getGRMUser();\r\n // } else {\r\n // grmUser = webStorageService.getSessionData('grmUser');\r\n // }\r\n if (response.redirect) {\r\n var winnerObj = {};\r\n if (response.redirect.indexOf('puzzle') > -1) {\r\n webStorageService.setSessionData('createPageState', 'Puzzle');\r\n }\r\n if (response.redirect.toLowerCase().indexOf('thankyou') > -1) {\r\n if (response.Winner !== undefined && response.Winner !== null) {\r\n winnerObj = {\r\n winner: response.Winner,\r\n winnerCopy: response.winnerCopy,\r\n isExtendedPhase: response.ExtendedPhase,\r\n refCode: response.RefCode\r\n }\r\n dataLayers().orderData(response.Winner);\r\n }\r\n }\r\n \r\n if (response.redirect.indexOf('limit') > -1) {\r\n webStorageService.setSessionData('createPageState', 'Limit');\r\n }\r\n handleRouteNpn(response.redirect, winnerObj);\r\n \r\n } else {\r\n HandleError();\r\n }\r\n }).catch(function (error) {\r\n HandleError(error.response);\r\n });\r\n }\r\n }).catch(function (error) {\r\n HandleError(error.response);\r\n });\r\n } else {\r\n webStorageService.setSessionData('createPageState', 'Batchcodeentry');\r\n handleRoute(\"/\" + locale + \"/BatchCodeEntry\");\r\n }\r\n }\r\n }).catch(function (error) {\r\n HandleError(error.response);\r\n });\r\n } else if (reset) {\r\n setTimeout(function () {\r\n // window.location.pathname = '/' + locale;\r\n window.location = '/' + locale + '/Home';\r\n\r\n }, 4000);\r\n }\r\n }\r\n },\r\n onExit: function (authUser) {\r\n // your redirect logic goes here \r\n // NOTE: if you already used onAuth to authenticate the user\r\n // then you don't need to do anything with authUser here\r\n // console.log(authUser, 'exit');\r\n // AccessService.clearPermissions();\r\n // SpoonService.clearSpoon();\r\n // ShippingService.clearData();\r\n // $location.path(startAgainUrl);\r\n }\r\n };\r\n function initReg() {\r\n // initialize the reg v6 module\r\n var regModule = window.KSTL.Registration.init(container, configObj);\r\n // subscribe to module event notifications\r\n var eventViewRender = regModule.bind('view:render', function (topic, view) {\r\n cb();\r\n if (view.name === '/Sweepstakes/Error') {\r\n view.element.hidden = true;\r\n }\r\n // personal checkbox\r\n $('#reg-container input[type=\"checkbox\"] + label').prepend('');\r\n\r\n // placeholder\r\n /*$('#reg-container input[name=\"FirstName\"]').attr(\"placeholder\", resourceService.translations.GrmFirstNamePlaceholder);\r\n $('#reg-container input[name=\"LastName\"]').attr(\"placeholder\", resourceService.translations.GrmLastNamePlaceholder);\r\n $('#reg-container input[name=\"Password\"]').attr(\"placeholder\", resourceService.translations.GrmPasswordPlaceholder);\r\n $('#reg-container input[name=\"PasswordConfirm\"]').attr(\"placeholder\", resourceService.translations.GrmConfirmPasswordPlaceholder);\r\n $('#reg-container input[name=\"AddressLine1\"]').attr(\"placeholder\", resourceService.translations.GrmAddressLine1Placeholder);\r\n $('#reg-container input[name=\"AddressLine2\"]').attr(\"placeholder\", resourceService.translations.GrmAddressLine2Placeholder);\r\n $('#reg-container input[name=\"City\"]').attr(\"placeholder\", resourceService.translations.GrmTownCityPlaceholder);\r\n $('#reg-container input[name=\"PostalCode\"]').attr(\"placeholder\", resourceService.translations.GrmPostcodePlaceholder);\r\n $('#reg-container input[name=\"UserName\"]').attr(\"placeholder\", resourceService.translations.GrmEmailPlaceholder);\r\n $('#reg-container input[name=\"UserNameConfirm\"]').attr(\"placeholder\", resourceService.translations.GrmConfirmEmailPlaceholder);\r\n $('#reg-container input[name=\"PhoneNumber1\"]').attr(\"placeholder\", resourceService.translations.GrmPhoneNumberPlaceholder);\r\n */\r\n\r\n $('#KSTL-Registration-wrapper-TermsConditions label a').attr(\"target\", \"_self\");\r\n\r\n $('#KSTL-Registration-wrapper-HeaderSubscription input').on('change', function () {\r\n subscription = $(this).prop(\"checked\");\r\n });\r\n\r\n $('#KSTL-Registration-QuestionLegal').on('change', function () {\r\n questionLegal = $('#KSTL-Registration-QuestionLegal').val().trim();\r\n $('#KSTL-Registration-QuestionLegal').val(questionLegal);\r\n });\r\n\r\n var $input = $('#KSTL-Registration-PostalCode');\r\n $input.on('keyup', (function (e) {\r\n var max = $input[0] ? $input[0].maxLength : 10;\r\n if (max) {\r\n if ($input.val().length > max) {\r\n $input.val($input.val().substr(0, max));\r\n }\r\n }\r\n }));\r\n // set column height\r\n var thises = $('div[ng-activity-indicator=\"Circled\"]');\r\n if (thises.hasClass(\"ng-hide\")) {\r\n var windowWidth = window.innerWidth;\r\n var heightss = \"\";\r\n var firstcol = $('.js-setheight .twocols > div:first-child .content');\r\n var secondcol = $('.js-setheight .twocols > div:last-child .content');\r\n if (windowWidth > 768) {\r\n firstcol.css({ \"height\": \"\" });\r\n secondcol.css({ 'height': \"\" });\r\n heightss = Math.max(firstcol.outerHeight(true), secondcol.outerHeight(true));\r\n firstcol.css({ 'height': heightss });\r\n secondcol.css({ 'height': heightss });\r\n }\r\n }\r\n\r\n // change position of validate-error\r\n $(\".ns-popover-list-theme\").each(function () {\r\n var geterror = $(this);\r\n var getfieldname = $(this).attr(\"id\").slice(26);\r\n var controlformid = \"#KSTL-Registration-wrapper-\" + getfieldname;\r\n var getcontrolform = $(controlformid);\r\n geterror.appendTo(getcontrolform);\r\n });\r\n // if ($('.pod').length > 0){ \r\n // var $pod = $('.pod'),\r\n // grmScope = KSTL.Registration.frmElement($pod.get()).isolateScope();\r\n // }\r\n // if (!grmScope) {\r\n // \treturn;\r\n // }\r\n });\r\n\r\n var eventFormSubmit = regModule.bind('form:submit', function (topic, form) {\r\n /*console.log('regv6 form:submit', form.name);\r\n if you wish to unsubscribe\r\n regModule.unbind(eventViewRender);\r\n console.log(eventFormSubmit);*/\r\n });\r\n\r\n var eventForgotPwdRender = regModule.bind('forgotpassword:render', function (topic, view) {\r\n $(\".login-container .login-heading\").hide();\r\n });\r\n\r\n var eventTnCLinkRender = regModule.bind('registration:render', function (topic, view) {\r\n if ($('#KSTL-Registration-AddressLine1').length) {\r\n var addressVal = $('#KSTL-Registration-AddressLine1').val();\r\n // if(addressVal==''|| addressVal==null || addressVal==undefined)\r\n // window.KSTL.Registration.frmElement.AddressLine1 = '.';\r\n }\r\n });\r\n }\r\n clearInterval(_interval);\r\n // async script loader... do not modify\r\n return (function () {\r\n var src, kreg, s;\r\n if(settings.SAPGigyaApiKey!=undefined && settings.SAPGigyaApiKey!=null){\r\n src = settings.GRMServiceURL + '/scripts/registrationv2.js';;\r\n }else{\r\n src = settings.GRMServiceURL + '/scripts/registration.min.js';\r\n }\r\n kreg = document.createElement('script');\r\n kreg.type = 'text/javascript';\r\n kreg.onload = kreg.onreadystatechange = function () {\r\n if (!this.readyState || this.readyState === 'loaded' || this.readyState === 'complete') {\r\n kreg.onload = kreg.onreadystatechange = null;\r\n if (container) {\r\n initReg();\r\n }\r\n }\r\n };\r\n kreg.src = src;\r\n s = document.getElementsByTagName('script')[0];\r\n s.parentNode.insertBefore(kreg, s);\r\n })();\r\n }\r\n }\r\n var _interval = setInterval(function () {\r\n generateGRM();\r\n }, 300);\r\n};\r\n\r\nexport default LoadGRM;\r\n","import { localeList, defaultLocale } from './ConfigData.json';\r\nimport MetaTagsData from './MetaTags';\r\nimport LoadGRMGlobal from './LoadGRM';\r\nimport jquery from 'jquery';\r\n\r\n\r\nlet localeVals = localeList.find(o => o.locale === defaultLocale),\r\n windowOriginURL = window.location.origin,\r\n windowHrefURL = window.location.href,\r\n getLocale = defaultLocale,\r\n getIsTOS = localeVals.isTOS,\r\n getIsCDC = localeVals.isCDC,\r\n getIsShipping = localeVals.isShipping,\r\n getIsSplitter = localeVals.isSplitter,\r\n showReceiptField = localeVals.isShowReceiptField,\r\n getNpr = localeVals.isNpr;\r\n\r\nconst checkLocale = () => {\r\n var localeFrmUrl;\r\n if(windowHrefURL == windowOriginURL + '/'){\r\n localeFrmUrl = defaultLocale;\r\n }else{\r\n localeFrmUrl = (windowHrefURL.split(windowOriginURL + '/')[1]).split('/')[0].toLowerCase();\r\n }\r\n\r\n localeList.forEach(function (item) {\r\n if (localeFrmUrl.toLowerCase() == item.locale.toLowerCase()) {\r\n getLocale = item.locale;\r\n getIsTOS = item.isTOS;\r\n getIsCDC = item.isCDC;\r\n getIsShipping = item.isShipping;\r\n getIsSplitter = item.isSplitter;\r\n showReceiptField = item.isShowReceiptField;\r\n getNpr = item.isNpr;\r\n }\r\n });\r\n}\r\ncheckLocale();\r\n\r\nconst getUA = () => {\r\n var ua = navigator.userAgent,\r\n browserStr = /Safari/i.test(ua) && !(/Chrome/i.test(ua)) ? 'safari ' : '',\r\n browserStr = /Android/i.test(ua) ? browserStr + 'android ' : browserStr + '',\r\n browserStr = /iPhone/i.test(ua) ? browserStr + 'iphone ' : browserStr + '',\r\n browserStr = /iPad/i.test(ua) ? browserStr + 'ipad ' : browserStr + '',\r\n browserStr = /Mac/i.test(ua) ? browserStr + 'mac' : browserStr + '';\r\n document.querySelector('html').className = browserStr;\r\n}\r\ngetUA();\r\n\r\nexport const pageScroll = () => {\r\n window.scrollTo(0, 0);\r\n setTimeout(function () {\r\n $('html, body').animate({\r\n scrollTop: $('.container').offset().top - 100\r\n }, 1000);\r\n }, 1000);\r\n}\r\n\r\nexport const relativeURL = process.env.PUBLIC_URL;\r\nexport const $ = jquery;\r\nexport const locale = getLocale;\r\nexport const isTOS = getIsTOS;\r\nexport const isCDC = getIsCDC;\r\nexport const isShipping = getIsShipping;\r\nexport const isSplitter = getIsSplitter;\r\nexport const isShowReceiptField = showReceiptField;\r\nexport const isNpr = getNpr;\r\nexport const MetaTags = MetaTagsData;\r\nexport const LoadGRM = LoadGRMGlobal;","import React, { useContext } from 'react';\r\nimport { locale } from '../Utility/Global';\r\nimport JsonContext from '../Utility/JsonProvider';\r\n\r\nconst Header = () => {\r\n const { translations } = useContext(JsonContext);\r\n \r\n const switchCountry = (e) => {\r\n e.preventDefault();\r\n window.location = \"/\" + e.target.value + \"/Home\";\r\n }\r\n return (\r\n <>\r\n
\r\n {/*
\r\n \r\n \r\n
*/}\r\n \r\n \r\n \r\n {translations.HeaderAltText}\r\n \r\n
\r\n \r\n )\r\n}\r\n\r\nexport default Header;","import * as webStorageService from './WebStorageFactory';\r\nimport { locale } from './Global';\r\nimport dataLayers from './DataLayers';\r\nconst moment = require('moment-timezone'); // UTC time according to the timezones npm i moment-timezone\r\nconst PromotionState=(settings,translations)=> {\r\n\r\n function _initPage () {\r\n var path = window.location.pathname.toLowerCase(),\r\n isStartPage = (path.match('home') || path.match('\\/' + locale + '\\/$') || path.match('\\/' + locale + '$') || path === '/') && !path.match('thankyou') ? true : false;\r\n dataLayers().init(settings);\r\n dataLayers().gtm(translations); \r\n if (isStartPage) {\r\n webStorageService.removeSessionData('servToken');\r\n webStorageService.removeLocalData('servToken');\r\n webStorageService.removeSessionData('grmUser');\r\n webStorageService.removeSessionData('lastUrlArr');\r\n }\r\n //Setting initial data in session storage\r\n // initConfig.setDefaultUrl(locale);//set default/start url for requested localization\r\n webStorageService.setSessionData('requestedLang', locale); //store requested localization in session storage\r\n // var initPermission = initConfig.getPagePermission(); //get start permissions for each page from init configuration service\r\n //Data Layers\r\n if (isStartPage) {\r\n // webStorageService.setSessionData('permission', initPermission); //store start permission in session storage \r\n // dataLayers.init();\r\n // dataLayers.gtm();\r\n }\r\n if (path.match('recoverpassword') || path.match('forgotpassword')) {\r\n // webStorageService.setSessionData('permission', initPermission); //store start permission in session storage \r\n }\r\n\r\n var fState = new _getStates();\r\n //check Promotion State status and redirect to valid page\r\n _checkAppState(fState.getPromotionState());\r\n // _checkAppState('holdingpage');\r\n };\r\n function _getStates() {\r\n if (locale != 'ch' && locale != 'be') {\r\n\r\n var startDate = moment(settings.StartDate),\r\n startDateTime = startDate.format(),\r\n\r\n endDate = moment(settings.EndDate),\r\n endDateTime = endDate.format(),\r\n\r\n currentDate = new Date(),\r\n currentDateUTC = moment(currentDate).tz(settings.TimeZone),\r\n currentTime = currentDateUTC.format(),\r\n\r\n outOfHrsEndDate = settings.OutOfHrsEndDate == null ? currentDateUTC : moment(settings.OutOfHrsEndDate),\r\n outOfHrsEndDateTime = outOfHrsEndDate.format(),\r\n\r\n extendedStartDate = settings.ExtendedStartDate == null ? currentDateUTC : moment(settings.ExtendedStartDate),\r\n extendedStartDateTime = extendedStartDate.format(); \r\n }\r\n function _getPromotionState() {\r\n if (locale != 'ch' && locale != 'be') {\r\n if (currentTime >= startDateTime) {\r\n if (currentTime > endDateTime)\r\n return 'closed';\r\n else if (currentTime < outOfHrsEndDateTime) {\r\n if (currentDateUTC.hours() >= startDate.hours() && currentDateUTC.hours() <= outOfHrsEndDate.hours()) {\r\n if (currentDateUTC.hours() == startDate.hours() && currentDateUTC.hours() == outOfHrsEndDate.hours()) {\r\n if (currentDateUTC.minutes() >= outOfHrsEndDate.minutes()) {\r\n if (currentDateUTC.minutes() == outOfHrsEndDate.minutes()) {\r\n if (currentDateUTC.seconds() > outOfHrsEndDate.seconds()) {\r\n return 'outofhours';\r\n } else {\r\n return 'live';\r\n }\r\n } else {\r\n return 'outofhours';\r\n }\r\n\r\n }\r\n }\r\n else if (currentDateUTC.hours() == startDate.hours()) {\r\n if (currentDateUTC.minutes() <= startDate.minutes()) {\r\n if (currentDateUTC.minutes() == startDate.minutes()) {\r\n if (currentDateUTC.seconds() < startDate.seconds()) {\r\n return 'outofhours';\r\n } else {\r\n return 'live';\r\n }\r\n } else {\r\n return 'outofhours';\r\n }\r\n }\r\n } else if (currentDateUTC.hours() == outOfHrsEndDate.hours()) {\r\n if (currentDateUTC.minutes() >= outOfHrsEndDate.minutes()) {\r\n if (currentDateUTC.minutes() == outOfHrsEndDate.minutes()) {\r\n if (currentDateUTC.seconds() > outOfHrsEndDate.seconds()) {\r\n return 'outofhours';\r\n } else {\r\n return 'live';\r\n }\r\n } else {\r\n return 'outofhours';\r\n }\r\n\r\n }\r\n }\r\n return 'live';\r\n }\r\n else {\r\n return 'outofhours'\r\n }\r\n }\r\n\r\n return 'live';\r\n }\r\n return 'holdingpage';\r\n } else {\r\n return 'splitter';\r\n }\r\n }\r\n function _getExtendedState() {\r\n if (currentTime >= extendedStartDateTime && currentTime < endDateTime) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n return {\r\n getPromotionState: _getPromotionState,\r\n getExtendedState: _getExtendedState\r\n };\r\n };\r\n function _checkAppState(state) {\r\n if (!state) { return; }\r\n var url = '';\r\n switch (state.toLowerCase()) {\r\n case 'holdingpage':\r\n url = '/' + locale + '/ComingSoon';\r\n webStorageService.setSessionData('createPageState', 'Comingsoon');\r\n if ((window.location.href.toLowerCase()).indexOf('comingsoon') <= -1) {\r\n window.location.href=url;\r\n }\r\n break;\r\n case 'closed':\r\n url = settings.CampainCloseURL;\r\n window.location.href = url;\r\n break;\r\n case 'outofstock':\r\n url = '/' + locale + '/Outofstock';\r\n // routingConfig.setPath('redirectUrl', 'Outofstock');\r\n webStorageService.setSessionData('createPageState', 'Outofstock');\r\n // accessService.setPermission('oos', true);\r\n // history.push(url)\r\n // $location.path(url);\r\n break;\r\n case 'outofhours':\r\n // routingConfig.setPath('redirectUrl', 'Home');\r\n webStorageService.setSessionData('createPageState', 'Outofhours');\r\n break;\r\n case 'live':\r\n // routingConfig.setPath('redirectUrl', 'Home');\r\n // webStorageService.setSessionData('createPageState', 'Home');\r\n break;\r\n case 'splitter':\r\n url = '/' + locale;\r\n // routingConfig.setPath('redirectUrl', url);\r\n // window.location.href = url;\r\n break;\r\n default:\r\n url = '/' + locale + '/Error';\r\n // routingConfig.setPath('redirectUrl', 'Error');\r\n webStorageService.setSessionData('createPageState', 'Error');\r\n window.location.href = url;\r\n break;\r\n }\r\n }\r\n return {\r\n initPage: _initPage,\r\n getStates: _getStates\r\n }\r\n\r\n}\r\nexport default PromotionState;","import React, { useContext } from 'react';\r\nimport { Link } from \"react-router-dom\";\r\nimport { relativeURL, locale, $ } from '../Utility/Global';\r\nimport JsonContext from '../Utility/JsonProvider';\r\nimport dataLayers from '../Utility/DataLayers';\r\nimport PromotionState from '../Utility/PromotionState';\r\n\r\nconst Footer = () => {\r\n const { translations, settings } = useContext(JsonContext);\r\n const { getStates } = PromotionState(settings, translations);\r\n var holdingPage = (getStates().getPromotionState().toLowerCase() == 'holdingpage') ? true : false;\r\n let hostName = window.location.hostname,\r\n shareUrl = (hostName == 'celebrate.pringles.com') ? hostName + '/Content/s/' + locale + '/' : hostName + '/Content/s_dev/' + locale + '/';\r\n\r\n const shareFacebook = (e) => {\r\n e.preventDefault();\r\n window.open('https://www.facebook.com/sharer/sharer.php?u=' + shareUrl, 'targetWindow', 'toolbar=no, location=no, status=no, menubar=no, scrollbars=yes, resizable=yes,width=550, height=450');\r\n dataLayers().socialData('Facebook');\r\n return false;\r\n }\r\n\r\n const shareTwitter = (e) => {\r\n e.preventDefault();\r\n let twitterData = e.currentTarget.dataset.twittertext;\r\n window.open('https://twitter.com/intent/tweet?url=' + shareUrl + '&text=' + twitterData, 'targetWindow', 'toolbar=no, location=no, status=no, menubar=no, scrollbars=yes, resizable=yes,width=550, height=450');\r\n dataLayers().socialData('Twitter');\r\n return false;\r\n }\r\n\r\n const cookiePolicy = () => {\r\n setTimeout(function () {\r\n if (document.getElementById('PlaceidTrust')) {\r\n if ($('#cookieContainer').length > 0 && !$('.truste-script').length) {\r\n let country = locale.split('_')[1].toLowerCase(),\r\n language = locale.split('_')[0],\r\n src = translations.CoreKelloggs_CookiePr + '&language=' + language,\r\n idTrust = src.split('&')[1].split('=')[1];\r\n document.getElementById('PlaceidTrust').setAttribute('id', idTrust);\r\n $('.trusty').append('');\r\n }\r\n }\r\n }, 1000);\r\n }\r\n cookiePolicy();\r\n\r\n return (\r\n <>\r\n \r\n {/* {!holdingPage &&\r\n
\r\n }\r\n {!holdingPage &&\r\n
\r\n } */}\r\n\r\n \r\n )\r\n}\r\n\r\nexport default Footer;","import React, { useContext } from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { locale } from \"../Utility/Global\";\r\nimport dataLayers from \"../Utility/DataLayers\";\r\nimport JsonContext from \"../Utility/JsonProvider\";\r\n\r\nconst Button = ({ buttonType }) => {\r\n const { translations } = useContext(JsonContext);\r\n let title, txt, redirect;\r\n switch (buttonType) {\r\n case \"holding\":\r\n title = translations.CoreKelloggs_PromotionClosedCtaLinkTitle_pringles;\r\n txt = translations.ComingSoonCta;\r\n redirect = translations.ComingSoonCtaLink;\r\n case \"closed\":\r\n title = translations.EndPromoButtonLabel;\r\n txt = translations.EndPromoButtonLabel;\r\n redirect = translations.EndPromoButtonLink;\r\n break;\r\n case \"register\":\r\n title = translations.CoreKelloggs_RegisterNowCtaTitle;\r\n txt = translations.CoreKelloggs_RegisterNowButton;\r\n redirect = '/' + locale + '/Register'\r\n break;\r\n default:\r\n title = translations.CoreKelloggs_ReturnToHomepageCtaTitle;\r\n txt = translations.CoreKelloggs_BackToHomePage;\r\n redirect = \"/\" + locale + \"/Home\";\r\n }\r\n\r\n return (\r\n <>\r\n dataLayers().backToHP()}\r\n className=\"button\"\r\n title={title}\r\n >\r\n {txt}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default Button;\r\n","import React, { useContext } from 'react';\r\nimport Button from '../Partials/Button';\r\nimport { MetaTags } from '../Utility/Global';\r\nimport JsonContext from '../Utility/JsonProvider';\r\n\r\nconst Closed = ()=> {\r\n const { translations } = useContext(JsonContext);\r\n\r\n sessionStorage.removeItem('createPageState');\r\n document.querySelector('body').setAttribute('pagename', 'Closed');\r\n\r\n return (\r\n <>\r\n \r\n
\r\n

{translations.EndPromoTitle}

\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default Closed;","import React, { useContext } from 'react';\r\nimport Button from '../Partials/Button';\r\nimport { MetaTags } from '../Utility/Global';\r\nimport JsonContext from '../Utility/JsonProvider';\r\nconst Comingsoon = () => {\r\n const { translations } = useContext(JsonContext);\r\n\r\n sessionStorage.removeItem('createPageState');\r\n document.querySelector('body').setAttribute('pagename', 'Comingsoon');\r\n\r\n return (\r\n <>\r\n \r\n
\r\n
\r\n

{translations.ComingSoonHeading}

\r\n

\r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default Comingsoon;","import React, { useContext } from 'react';\r\nimport * as webStorageService from '../Utility/WebStorageFactory';\r\nimport { locale, MetaTags } from '../Utility/Global';\r\nimport JsonContext from '../Utility/JsonProvider';\r\nimport dataLayers from '../Utility/DataLayers';\r\n\r\nconst Splitter = () => {\r\n const { translations } = useContext(JsonContext);\r\n\r\n webStorageService.removeSessionData('codes');\r\n webStorageService.removeSessionData('createPageState');\r\n\r\n document.querySelector('body').setAttribute('pagename', 'Splitter');\r\n return (\r\n <>\r\n \r\n
\r\n

\r\n \r\n {\r\n locale == 'be' &&\r\n \r\n }\r\n {\r\n locale == 'ch' &&\r\n \r\n }\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default Splitter;","import React, { useContext, useState } from 'react';\r\nimport Button from '../Partials/Button';\r\nimport { locale, LoadGRM, $, isCDC } from '../Utility/Global'\r\nimport JsonContext from '../Utility/JsonProvider';\r\n\r\nconst Login = () => {\r\n const { translations } = useContext(JsonContext);\r\n const [callOnce, setCallOnce] = useState(false);\r\n if (!callOnce) {\r\n LoadGRM('login', function () {\r\n if ($('.hiding').length > 0) {\r\n $('.hiding').addClass('hide');\r\n }\r\n });\r\n setCallOnce(true);\r\n }\r\n\r\n document.querySelector('body').setAttribute('pagename', 'Login');\r\n\r\n return (\r\n <>\r\n {!isCDC &&
\r\n
\r\n
{translations.LoginPageHeading}
\r\n

{translations.LoginPageHeading}

\r\n

\r\n

\r\n

{translations.LoginPageDescription2}

\r\n

\r\n \r\n \r\n

\r\n

{translations.LoginSectionHeading}

\r\n

\r\n
\r\n
\r\n
{translations.Or}
\r\n
}\r\n {isCDC &&
\r\n \r\n
\r\n \r\n
}\r\n \r\n )\r\n}\r\n\r\nexport default Login;","import React, { useState, useContext } from 'react';\r\nimport { Redirect, useHistory } from 'react-router-dom';\r\nimport { locale, MetaTags, $, pageScroll } from '../Utility/Global';\r\nimport JsonContext from '../Utility/JsonProvider';\r\nimport * as webStorageService from '../Utility/WebStorageFactory';\r\nimport * as API from '../Utility/ApiCalls';\r\nimport ErrorProvider from '../Utility/ErrorProvider';\r\n\r\nconst Shipping = () => {\r\n const { translations, settings } = useContext(JsonContext);\r\n var shippingDefault, Require_RU_Captcha = settings.Require_Captcha;\r\n if (webStorageService.getSessionData('shippingBtnObj') == undefined) {\r\n shippingDefault = [{\r\n UserDetails: {\r\n FirstName: {\r\n isValid: false,\r\n isEmpty: true,\r\n error: false,\r\n value: '',\r\n isWritten: false,\r\n },\r\n LastName: {\r\n isValid: false,\r\n isEmpty: true,\r\n error: false,\r\n value: '',\r\n isWritten: false,\r\n },\r\n Address1: {\r\n isValid: false,\r\n isEmpty: true,\r\n error: false,\r\n value: '',\r\n isWritten: false,\r\n },\r\n Address2: {\r\n isValid: false,\r\n isEmpty: true,\r\n error: false,\r\n value: '',\r\n isWritten: false,\r\n },\r\n City: {\r\n isValid: false,\r\n isEmpty: true,\r\n error: false,\r\n value: '',\r\n isWritten: false,\r\n },\r\n PostalCode: {\r\n isValid: false,\r\n isEmpty: true,\r\n error: false,\r\n value: '',\r\n isWritten: false,\r\n },\r\n Email: {\r\n isValid: false,\r\n isEmpty: true,\r\n error: false,\r\n value: '',\r\n isWritten: false,\r\n },\r\n Phone: {\r\n isValid: false,\r\n isEmpty: true,\r\n error: false,\r\n value: '',\r\n isWritten: false,\r\n },\r\n TermsandConditions: {\r\n isEmpty: true,\r\n error: false\r\n },\r\n sended: false,\r\n processing: false,\r\n validateCaptcha: (locale == 'ru_RU' && Require_RU_Captcha == \"true\") ? false : true\r\n },\r\n }]\r\n } else {\r\n shippingDefault = JSON.parse(webStorageService.getSessionData(\"shippingBtnObj\"));\r\n }\r\n\r\n const [firstName, setFirstName] = useState('')\r\n const [lastName, setLastName] = useState('')\r\n const [shipping, setShipping] = useState(shippingDefault);\r\n const [tncCheckbox, setTncCheckbox] = useState(false);\r\n const [privacyCheckbox, setPrivacyCheckbox] = useState(false);\r\n const [radioBtnCntry, setRadioBtnCntry] = useState(false);\r\n const history = useHistory();\r\n const {HandleError} = ErrorProvider();\r\n const handleRoute = (path) => {\r\n history.push({pathname:path});\r\n pageScroll();\r\n }\r\n document.querySelector('body').setAttribute('pagename', 'Shipping');\r\n\r\n var ua = navigator.userAgent.toLowerCase(),\r\n isAndroid = ua.indexOf(\"android\") > -1,\r\n // processing = false,\r\n // Require_RU_Captcha = translations.Require_Captcha,\r\n // validateCaptcha = (locale == 'ru_RU' && Require_RU_Captcha == \"true\") ? false : true,\r\n RIChecked = false,\r\n tcChecked = false,\r\n countrySel = false,\r\n countryValue = '',\r\n UserDetails = '',\r\n _interval,\r\n sended = false,\r\n isIRL = (locale === 'ie' ? true : false);\r\n\r\n if ($('.hiding').length > 0) {\r\n $('.hiding').addClass('hide');\r\n }\r\n // $('html, body').animate({\r\n // scrollTop: $('header').offset().top - 100\r\n // }, 2000); \r\n var setCaptcha = function () {\r\n if ($('#sdForm').length && $('.g-recaptcha-response').length < 1 && typeof window.grecaptcha.render !== 'undefined') {\r\n if (locale == 'ru_RU' && Require_RU_Captcha == \"true\") {\r\n window.grecaptcha.render(\r\n 'g-recaptcha', {\r\n sitekey: '6LeRF1scAAAAAB-yBjJMrzLYSBqNAGjkf2PokFq1',\r\n callback: onSuccess,\r\n 'expired-callback': expCallback,\r\n 'hl': 'ru'\r\n }\r\n );\r\n }\r\n clearInterval(_interval);\r\n }\r\n };\r\n _interval = setInterval(function () {\r\n setCaptcha();\r\n }, 300);\r\n // countrySelected = function(event) {\r\n // countrySel = true;\r\n // console.log(event);\r\n // }\r\n function expCallback() {\r\n window.grecaptcha.reset();\r\n shippingDefault = JSON.parse(webStorageService.getSessionData('shippingBtnObj'))\r\n shippingDefault[0].UserDetails.validateCaptcha = false;\r\n webStorageService.setSessionData('shippingBtnObj', shippingDefault);\r\n setShipping(shippingDefault);\r\n }\r\n function onSuccess(token) {\r\n shippingDefault = webStorageService.getSessionData('shippingBtnObj') == undefined ? shippingDefault : JSON.parse(webStorageService.getSessionData('shippingBtnObj'));\r\n var redemToken = webStorageService.getSessionData('servToken') ? webStorageService.getSessionData('servToken') : '';\r\n if (token) {\r\n API.verifyCaptcha({ token: token, redemptionToken: redemToken }).then(function (res) {\r\n let updateValidateCaptcha = (res.status == 'FAILED') ? false : true;\r\n shippingDefault[0].UserDetails.validateCaptcha = updateValidateCaptcha;\r\n webStorageService.setSessionData('shippingBtnObj', shippingDefault);\r\n setShipping(shippingDefault);\r\n webStorageService.setSessionData('servToken', res.token);\r\n }).catch(function (err) {\r\n console.log(err)\r\n })\r\n }\r\n }\r\n var oncheck = function (event) {\r\n var keyCode = event.which || event.keyCode;\r\n if (keyCode == 13) {\r\n if (event.target.attributes.for.value == 'KSTL-Registration-TermsandConditions') {\r\n setTncCheckbox(!tncCheckbox);\r\n } else {\r\n setPrivacyCheckbox(!privacyCheckbox);\r\n }\r\n }\r\n }\r\n var limitInput = function (event) {\r\n if (isAndroid) {\r\n var AddressLen = event.target.maxLength;\r\n if (event.target.value.length > AddressLen) {\r\n event.target.value = event.target.value.substring(0, event.target.value - 1);\r\n }\r\n }\r\n }\r\n var userInput = function (event) {\r\n let attrVal = event.target.attributes.name.value,\r\n getPattern = attrVal == 'Address1' || attrVal == 'Address2' ? '' : event.target.attributes.pattern.value,\r\n pattern = RegExp(getPattern);\r\n shippingDefault[0].UserDetails[attrVal].isWritten = true;\r\n if (!event.target.value.length) {\r\n shippingDefault[0].UserDetails[attrVal].isEmpty = true;\r\n shippingDefault[0].UserDetails[attrVal].error = true;\r\n }else {\r\n shippingDefault[0].UserDetails[attrVal].isEmpty = false;\r\n if (!pattern.test(event.target.value)) {\r\n shippingDefault[0].UserDetails[attrVal].isValid = false\r\n shippingDefault[0].UserDetails[attrVal].error = true;\r\n } else {\r\n if(( attrVal == 'PostalCode'|| attrVal == 'Phone') && event.target.value.length < parseInt(event.target.attributes.minlength.value) ){\r\n shippingDefault[0].UserDetails[attrVal].isValid = false\r\n shippingDefault[0].UserDetails[attrVal].error = true;\r\n }else{\r\n shippingDefault[0].UserDetails[attrVal].error = false;\r\n shippingDefault[0].UserDetails[attrVal].isValid = true;\r\n shippingDefault[0].UserDetails[attrVal].value = event.target.value;\r\n }\r\n }\r\n }\r\n\r\n webStorageService.setSessionData('shippingBtnObj', shippingDefault);\r\n setShipping(shippingDefault);\r\n\r\n }\r\n var CountryValue = 'Russia',\r\n //sets default checked attribute for Terms\r\n TermsValues = true,\r\n onlyNumbers = function (evt) {\r\n if ((evt.which < 48 && evt.which > 41) || evt.which > 57) {\r\n evt.preventDefault();\r\n }\r\n }\r\n //public metodhs\r\n // setOrder = setOrder;\r\n function setOrder(event) {\r\n event.preventDefault();\r\n if (!shipping[0].UserDetails.FirstName.isEmpty && !shipping[0].UserDetails.LastName.isEmpty && !shipping[0].UserDetails.Address1.isEmpty && !shipping[0].UserDetails.Address2.isEmpty && !shipping[0].UserDetails.City.isEmpty && !shipping[0].UserDetails.PostalCode.isEmpty && !shipping[0].UserDetails.processing && shipping[0].UserDetails.validateCaptcha) {\r\n shippingDefault[0].UserDetails.sended = true;\r\n shippingDefault[0].UserDetails.processing = true;\r\n webStorageService.setSessionData('')\r\n setShipping(shippingDefault);\r\n var shippingInfoRussiaObj = {\r\n 'redemption-token': webStorageService.getSessionData('servToken'),\r\n 'UserName': shipping[0].UserDetails.Email.value,\r\n 'ua': ua,\r\n 'shippingDetails': {\r\n name: shipping[0].UserDetails.FirstName.value,\r\n lastName: shipping[0].UserDetails.LastName.value,//formObj.LastName,\r\n address1: shipping[0].UserDetails.Address1.value,//formObj.Address1,\r\n address2: shipping[0].UserDetails.Address2.value,//formObj.Address2,\r\n city: shipping[0].UserDetails.City.value,//formObj.City,\r\n postCode: shipping[0].UserDetails.PostalCode.value,//formObj.PostalCode,\r\n state: '',\r\n Email: shipping[0].UserDetails.Email.value,\r\n terms: tncCheckbox,\r\n subscription: privacyCheckbox,\r\n phone: shipping[0].UserDetails.Phone.value,\r\n country: radioBtnCntry// resourceService.getCountryCode().toLowerCase() // add russia\r\n }\r\n };\r\n API.russiaOrder(shippingInfoRussiaObj).then(function(response){\r\n if(response.token){\r\n webStorageService.setSessionData('servToken', response.token);\r\n webStorageService.setLocalData('servToken', response.token);\r\n // token = response.token;\r\n var shippingInfoObj = {\r\n 'redemption-token': response.token,\r\n 'shippingDetails': {\r\n name: shipping[0].UserDetails.FirstName.value,\r\n lastName: shipping[0].UserDetails.LastName.value,//formObj.LastName,\r\n address1: shipping[0].UserDetails.Address1.value,//formObj.Address1,\r\n address2: shipping[0].UserDetails.Address2.value ,//formObj.Address2,\r\n city: shipping[0].UserDetails.City.value,//formObj.City,\r\n postCode: shipping[0].UserDetails.PostalCode.value,//formObj.PostalCode,\r\n state: '',\r\n Email:shipping[0].UserDetails.Email.value,\r\n terms:tncCheckbox, \r\n subscription:privacyCheckbox,\r\n phone: shipping[0].UserDetails.Phone.value,\r\n country: 'ru'// resourceService.getCountryCode().toLowerCase() // add russia\r\n }\r\n };\r\n webStorageService.setSessionData('shippingInfoObj',shippingInfoObj);\r\n webStorageService.setSessionData('createPageState', 'Batchcodeentry');\r\n handleRoute(\"/\" + locale + \"/BatchCodeEntry\"); \r\n }\r\n else if(response.redirect){\r\n if (response.redirect.indexOf('limit') > -1) {\r\n webStorageService.setSessionData('limitType', response.message);\r\n webStorageService.setSessionData('createPageState', 'Limit');\r\n handleRoute(response.redirect); \r\n } \r\n }\r\n else{\r\n // $location.path(lang + '/Error');\r\n }\r\n }).catch(function(error){\r\n HandleError(error.response);\r\n });\r\n }\r\n }\r\n return (\r\n <>\r\n \r\n
\r\n

{translations.LoginPageHeading}

\r\n
{translations.LoginPageHeading}
\r\n

{translations.LoginPageDescription}

\r\n

\r\n \r\n \r\n

\r\n

{translations.CoreKelloggs_KpsShippingPageHeading}

\r\n

\r\n
\r\n {/* */}\r\n
\r\n \r\n {/* */}\r\n
\r\n {/* */}\r\n
\r\n \r\n limitInput($event)}\r\n onChange={($event) => userInput($event)}\r\n pattern=\"^[^±!@£$%^&*_+§¡€#¢§¶•ªº«\\\\/<>?:;|=.,]{1,50}$\"\r\n className={shipping[0].UserDetails.FirstName.isValid ? 'form-valid-field' : ''} />\r\n
\r\n {\r\n (shipping[0].UserDetails.FirstName.isEmpty && shipping[0].UserDetails.FirstName.error) &&\r\n
\r\n

\r\n {translations.CoreKelloggs_FieldRequiredError}\r\n

\r\n
\r\n }\r\n {\r\n !shipping[0].UserDetails.FirstName.isValid && !shipping[0].UserDetails.FirstName.isEmpty &&
\r\n

\r\n {translations.CoreKelloggs_KpsFirstnameError}\r\n

\r\n
\r\n }\r\n
\r\n
\r\n {/* \r\n \r\n */}\r\n
\r\n \r\n limitInput($event)}\r\n onChange={($event) => userInput($event)}\r\n required={true}\r\n pattern=\"^[^±!@£$%^&*_+§¡€#¢§¶•ªº«\\\\/<>?:;|=.,]{1,50}$\"\r\n className={shipping[0].UserDetails.LastName.isValid ? 'form-valid-field' : ''} />\r\n
\r\n {\r\n (shipping[0].UserDetails.LastName.isEmpty && shipping[0].UserDetails.LastName.error) &&\r\n
\r\n

\r\n {translations.CoreKelloggs_FieldRequiredError}\r\n

\r\n
\r\n }\r\n {\r\n !shipping[0].UserDetails.LastName.isValid && !shipping[0].UserDetails.LastName.isEmpty &&
\r\n

\r\n {translations.CoreKelloggs_KpsSurnameError}\r\n

\r\n
\r\n }\r\n
\r\n
\r\n {/* */}\r\n\r\n {/* */}\r\n
\r\n \r\n limitInput($event)}\r\n onChange={($event) => userInput($event)}\r\n required={true}\r\n className={shipping[0].UserDetails.Address1.isValid ? 'form-valid-field' : ''}\r\n />\r\n
\r\n {\r\n (shipping[0].UserDetails.Address1.isEmpty && shipping[0].UserDetails.Address1.error) &&\r\n
\r\n

\r\n {translations.CoreKelloggs_KpsAddress1Error}\r\n

\r\n
\r\n }\r\n
\r\n
\r\n {/* \r\n \r\n */}\r\n
\r\n \r\n limitInput($event)}\r\n onChange={($event) => userInput($event)}\r\n required={true}\r\n className={shipping[0].UserDetails.Address2.isValid ? 'form-valid-field' : ''}\r\n />\r\n
\r\n {\r\n (shipping[0].UserDetails.Address2.isEmpty && shipping[0].UserDetails.Address2.error) &&\r\n
\r\n

\r\n {translations.CoreKelloggs_FieldRequiredError}\r\n

\r\n
\r\n }\r\n
\r\n
\r\n {/* \r\n \r\n */}\r\n
\r\n \r\n\r\n limitInput($event)}\r\n pattern=\"^[^±!@£$%^&*_+§¡€#¢§¶•ªº«\\\\/<>?:;|=.,]{1,50}$\"\r\n onChange={($event) => userInput($event)}\r\n required={true}\r\n className={shipping[0].UserDetails.City.isValid ? 'form-valid-field' : ''} />\r\n
\r\n {\r\n (shipping[0].UserDetails.City.isEmpty && shipping[0].UserDetails.City.error) &&\r\n
\r\n

\r\n {translations.CoreKelloggs_FieldRequiredError}\r\n

\r\n
\r\n }\r\n {\r\n !shipping[0].UserDetails.City.isValid && !shipping[0].UserDetails.City.isEmpty &&
\r\n

\r\n {translations.CoreKelloggs_KpsCityError}\r\n

\r\n
\r\n }\r\n
\r\n
\r\n {/* \r\n \r\n */}\r\n
\r\n \r\n limitInput($event)}\r\n pattern=\"^[0-9]*$\"\r\n required={true}\r\n onChange={($event) => userInput($event)}\r\n className={shipping[0].UserDetails.PostalCode.isValid ? 'form-valid-field' : ''} />\r\n
\r\n {\r\n (shipping[0].UserDetails.PostalCode.isEmpty && shipping[0].UserDetails.PostalCode.error) &&\r\n
\r\n

\r\n {translations.CoreKelloggs_FieldRequiredError}\r\n

\r\n
\r\n }\r\n {\r\n !shipping[0].UserDetails.PostalCode.isValid && !shipping[0].UserDetails.PostalCode.isEmpty &&
\r\n

\r\n {translations.CoreKelloggs_KpsPostcodeError}\r\n

\r\n
\r\n }\r\n
\r\n
\r\n {/* \r\n \r\n */}\r\n
\r\n \r\n\r\n userInput($event)}\r\n className={shipping[0].UserDetails.Email.isValid ? 'form-valid-field' : ''} />\r\n
\r\n {\r\n (shipping[0].UserDetails.Email.isEmpty && shipping[0].UserDetails.Email.error) &&\r\n
\r\n

\r\n {translations.CoreKelloggs_FieldRequiredError}\r\n

\r\n
\r\n }\r\n {\r\n !shipping[0].UserDetails.Email.isValid && !shipping[0].UserDetails.Email.isEmpty &&
\r\n

\r\n {translations.CoreKelloggs_KpsConfirmEmailError}\r\n

\r\n
\r\n }\r\n
\r\n
\r\n\r\n {/* */}\r\n
\r\n \r\n\r\n onlyNumbers($event)}\r\n onChange={($event) => userInput($event)}\r\n className={shipping[0].UserDetails.Phone.isValid ? 'form-valid-field' : ''} />\r\n
\r\n {\r\n (shipping[0].UserDetails.Phone.isEmpty && shipping[0].UserDetails.Phone.error) &&\r\n
\r\n

\r\n {translations.CoreKelloggs_FieldRequiredError}\r\n

\r\n
\r\n }\r\n {\r\n !shipping[0].UserDetails.Phone.isValid && !shipping[0].UserDetails.Phone.isEmpty &&
\r\n

\r\n {translations.CoreKelloggs_KpsMobileNumberError}\r\n

\r\n
\r\n }\r\n
\r\n
\r\n {/* \r\n \r\n */}\r\n
\r\n \r\n\r\n setRadioBtnCntry(!radioBtnCntry)} />\r\n \r\n {/*
*/}\r\n
\r\n {/* \r\n \r\n */}\r\n
\r\n setTncCheckbox(!tncCheckbox)}\r\n />\r\n
\r\n {\r\n (shipping[0].UserDetails.TermsandConditions.isEmpty && shipping[0].UserDetails.TermsandConditions.error) &&\r\n
\r\n

\r\n {translations.CoreKelloggs_FieldRequiredError}\r\n

\r\n
\r\n }\r\n
\r\n \r\n \r\n
\r\n
\r\n setPrivacyCheckbox(!privacyCheckbox)} />\r\n \r\n \r\n
\r\n {/* */}\r\n\r\n {/* */}\r\n
\r\n
\r\n
\r\n {/* */}\r\n\r\n {/* */}\r\n
\r\n {/* */}\r\n \r\n {/* */}\r\n
\r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default Shipping;","import React, { useContext } from 'react';\r\nimport { locale, isShipping, MetaTags } from '../Utility/Global';\r\nimport * as webStorageService from '../Utility/WebStorageFactory';\r\nimport Login from './Login';\r\nimport Shipping from './Shipping';\r\nimport JsonContext from '../Utility/JsonProvider';\r\n\r\nconst Home = () => {\r\n const { translations } = useContext(JsonContext);\r\n webStorageService.removeSessionData('codes');\r\n webStorageService.removeSessionData('createPageState');\r\n webStorageService.removeSessionData('btnObj');\r\n webStorageService.removeSessionData('shippingBtnObj');\r\n webStorageService.removeSessionData('receiptObj');\r\n const _intervalG = setInterval(function () {\r\n logout();\r\n }, 300);\r\n function logout() {\r\n if (window.gigya != undefined) {\r\n window.gigya.accounts.logout();\r\n clearInterval(_intervalG);\r\n }\r\n }\r\n\r\n return (\r\n <>\r\n \r\n {\r\n isShipping ? : \r\n }\r\n \r\n )\r\n}\r\n\r\nexport default Home;","import React, { useContext, useState } from 'react';\r\nimport { MetaTags, LoadGRM, $, isCDC } from '../Utility/Global';\r\nimport * as webStorageService from '../Utility/WebStorageFactory';\r\nimport JsonContext from '../Utility/JsonProvider';\r\n\r\nconst Register = () => {\r\n const { translations } = useContext(JsonContext);\r\n const [callOnce, setCallOnce] = useState(false);\r\n\r\n webStorageService.removeSessionData('codes');\r\n webStorageService.removeSessionData('createPageState');\r\n document.querySelector('body').setAttribute('pagename', 'Register');\r\n if (!callOnce) {\r\n LoadGRM('register', function () {\r\n if ($('.hiding').length > 0) {\r\n $('.hiding').addClass('hide');\r\n }\r\n });\r\n setCallOnce(true);\r\n const _intervalR = setInterval(function () {\r\n setFocus();\r\n }, 300);\r\n\r\n function setFocus() {\r\n if (document.getElementById('KSTL-Registration-FirstName') != null) {\r\n document.getElementById('KSTL-Registration-FirstName').focus();\r\n clearInterval(_intervalR);\r\n }\r\n }\r\n\r\n }\r\n\r\n return (\r\n <>\r\n \r\n {!isCDC &&
\r\n
\r\n

{translations.CoreKelloggs_RegisterPageHeading}

\r\n

{translations.ValidEmailDirections_register}

\r\n

\r\n
{translations.CoreKelloggs_RegisterPageHeading}
\r\n {/*

{translations.LoginPageTitle}

*/}\r\n
\r\n
\r\n
}\r\n {\r\n isCDC &&
\r\n
\r\n
\r\n }\r\n \r\n )\r\n}\r\n\r\nexport default Register;","import React, { useContext } from 'react';\r\nimport { MetaTags, LoadGRM } from '../Utility/Global';\r\nimport JsonContext from '../Utility/JsonProvider';\r\n\r\nconst Forgotpassword = () => {\r\n const { translations } = useContext(JsonContext);\r\n\r\n document.querySelector('body').setAttribute('pagename', 'Forgotpassword');\r\n\r\n if ((window.location.href).indexOf('resetpassword') > 0 || (window.location.href).indexOf('unlockaccount') > 0) {\r\n LoadGRM('reset', function () { });\r\n }\r\n else {\r\n LoadGRM('forgot', function () { });\r\n }\r\n\r\n return (\r\n <>\r\n \r\n
\r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default Forgotpassword;","import React, { useContext } from 'react';\r\nimport { MetaTags, LoadGRM } from '../Utility/Global';\r\nimport JsonContext from '../Utility/JsonProvider';\r\n\r\nconst Recoverpassword = () => {\r\n const { translations } = useContext(JsonContext);\r\n\r\n document.querySelector('body').setAttribute('pagename', 'Recoverpassword');\r\n\r\n LoadGRM('reset', function () { });\r\n\r\n return (\r\n <>\r\n \r\n
\r\n

{translations.ResetPasswordHeader}

\r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default Recoverpassword;","import React, { useState, useContext } from 'react';\r\nimport { Redirect, useHistory } from 'react-router-dom';\r\nimport { locale, isShowReceiptField, MetaTags, $, pageScroll } from '../Utility/Global';\r\nimport '../Utility/vendor/lightboxv2.min';\r\nimport * as API from '../Utility/ApiCalls';\r\nimport * as webStorageService from '../Utility/WebStorageFactory';\r\nimport JsonContext from '../Utility/JsonProvider';\r\nimport ErrorProvider from '../Utility/ErrorProvider';\r\nimport dataLayers from '../Utility/DataLayers';\r\n\r\nconst Batchcode = () => {\r\n const history = useHistory();\r\n const { HandleError } = ErrorProvider();\r\n const _intervalG = setInterval(function () {\r\n logout();\r\n }, 300);\r\n function logout() {\r\n if (window.gigya != undefined) {\r\n window.gigya.accounts.logout();\r\n clearInterval(_intervalG);\r\n }\r\n }\r\n\r\n const handleRoute = (path, obj) => {\r\n if (path.toLowerCase().indexOf('thankyou') > -1) {\r\n webStorageService.setSessionData('createPageState', 'Thankyou');\r\n } else if (path.toLowerCase().indexOf('puzzle') > -1) {\r\n webStorageService.setSessionData('createPageState', 'Puzzle');\r\n }\r\n else if (path.toLowerCase().indexOf('limit') > -1) {\r\n webStorageService.setSessionData('createPageState', 'Limit');\r\n }\r\n history.push({ pathname: path, state: obj });\r\n pageScroll();\r\n }\r\n const [codesArrObj, setCodesArrObj] = useState([{\r\n 'objId': '',\r\n 'id': '',\r\n 'errors': '',\r\n 'labels': '',\r\n 'value': '',\r\n 'uploadId': '',\r\n 'receiptNum': '',\r\n 'isWritten': false,\r\n 'duplicateKey': -1\r\n }]);\r\n const [fileNameObj, setFileNameObj] = useState([{\r\n receipt1: {\r\n name: '',\r\n invalid: false,\r\n large: false,\r\n empty: '',\r\n statusFile: '',\r\n statusMsg: '',\r\n showName: false,\r\n file: null\r\n }\r\n }])\r\n const { translations, settings } = useContext(JsonContext);\r\n var Require_Captcha = settings.Require_Captcha,\r\n _interval,\r\n getBtnObj;\r\n\r\n if (webStorageService.getSessionData('btnObj') == undefined) {\r\n getBtnObj = [{\r\n 'sended': false,\r\n 'validateCaptchaHome': (Require_Captcha == \"true\") ? false : true,\r\n 'anyError': false,\r\n 'isEmpty': true,\r\n 'validResponse': false\r\n }];\r\n } else {\r\n getBtnObj = JSON.parse(webStorageService.getSessionData(\"btnObj\"));\r\n }\r\n const [btnObj, setbtnObj] = useState(getBtnObj)\r\n const [modalShown, setModalShown] = useState(false);\r\n let pageState = webStorageService.getSessionData('createPageState');\r\n\r\n // pageState = 'Batchcodeentry';\r\n if (pageState == '' || pageState == undefined || pageState == null) {\r\n window.location = '/' + locale + '/Home';\r\n } else if (pageState != 'Batchcodeentry') {\r\n return \r\n }\r\n let smallViewPort;\r\n\r\n var toggleModal = function (event) {\r\n event.preventDefault();\r\n setModalShown(!modalShown)\r\n if (!modalShown) {\r\n $('html,body').removeClass('activeOverlay');\r\n }\r\n setTimeout(function () {\r\n positionModal();\r\n }, 5);\r\n };\r\n var positionModal = function () {\r\n if (modalShown) {\r\n if ($('.ng-modal-dialog').height() > ($(window).height() - 50)) {\r\n smallViewPort = false;\r\n }\r\n else {\r\n smallViewPort = true;\r\n }\r\n }\r\n }\r\n if (pageState == 'Batchcodeentry') {\r\n var upcErrorLabels = {\r\n 'length': translations.CoreKelloggs_ErrorIncompleteCode,\r\n 'pattern': translations.CoreKelloggs_ErrorInvalidCode,\r\n 'redeemed': translations.CoreKelloggs_ErrorInvalidCode,\r\n 'empty': translations.CoreKelloggs_ErrorCodeRequired,\r\n 'duplicate': translations.CoreKelloggs_ErrorDuplicateCode,\r\n 'invalid': translations.CoreKelloggs_ErrorInvalidCode\r\n },\r\n hidePromoCodeField,\r\n upcCount = settings.CodesCount,\r\n canImage = (locale == 'ru_RU') ? locale : 'en_GB';\r\n\r\n if (locale == 'lv_LV' || locale == 'bg_bg') {\r\n hidePromoCodeField = true;\r\n }\r\n \r\n $('.topMenuAdimo').keyup(function (e) {\r\n if (e.keyCode == 13) {\r\n $('.topMenuAdimo').click();\r\n e.preventDefault();\r\n }\r\n });\r\n \r\n const _interval1 = setInterval(function () {\r\n setAdimo();\r\n }, 300);\r\n var setAdimo = function () {\r\n if ($('.bg-home-img-cont').length) {\r\n if ((locale == 'en_GB') && document.querySelectorAll('.buy-now').length == 0) {\r\n var buyNowBtn = true;\r\n // setTimeout(function () {\r\n // $(function () {\r\n // Adimo call\r\n window.Adimo.main.init('https://basketads.adimo.co', false);\r\n var strTxt = \"\";\r\n var strTxt1 = \"'Buy Now'\";\r\n $(\".bg-home-img-cont\").after(strTxt);\r\n $('.buy-now-txt').append(strTxt1);\r\n //To add product detail page\t\r\n if ($(\".pack-image span > span\").data('src')) {\r\n var product_image_path = \"\";\r\n product_image_path = $(\".pack-image span > span\").data('src');\r\n var product_id = product_image_path.split('/')[6];\r\n var insertPosition = $(\".kstl-product-description\");\r\n function returnTouchpointID(product_id) {\r\n switch (product_id) {\r\n case 'product_6786220':\r\n //Product - Pringles BBQ 200g\r\n var touchPointId = '344696b0-fd4d-4a19-a7c2-0a2652d75ced';\r\n break;\r\n case 'product_6604916':\r\n //Product - Pringles BBQ 40g\r\n var touchPointId = '1027c729-b269-42e9-93b4-af2b9bf823d7';\r\n break;\r\n case 'product_6574745':\r\n //Product - Pringles Cheese & Onion 200g\r\n var touchPointId = '4be34b8b-2d7e-41b3-9c10-73fbdb218130';\r\n break;\r\n case 'product_6598149':\r\n //Product - Pringles Original 200g\r\n var touchPointId = 'd094270e-ae39-48ba-869f-a58c029a47ed';\r\n break;\r\n case 'product_6589741':\r\n //Product - Pringles Original 40g\r\n var touchPointId = '5e73ef3c-ff83-4288-bb9d-fb5774fec452';\r\n break;\r\n case 'product_6598149':\r\n //Product - Pringles Original 70g\r\n var touchPointId = '114919bf-91e9-4784-9c83-185cf8fdc97f';\r\n break;\r\n case 'product_6581769':\r\n //Product - Pringles Paprika 200g\r\n var touchPointId = '48baf4f8-775f-484d-b25e-c0a811de438d';\r\n break;\r\n case 'product_6589742':\r\n //Product - Pringles Paprika 40g\r\n var touchPointId = '1bbf72dc-c1af-4319-9025-991b733ea5a0';\r\n break;\r\n case 'product_3310719':\r\n //Product - Pringles Prawn Cocktail 200g\r\n var touchPointId = '0af913d6-1b55-4f85-9513-88adfcb31d38';\r\n break;\r\n case 'product_7387674':\r\n //Product - Pringles Rice Katsu Curry 160\r\n var touchPointId = '2b4296b2-1eea-461b-ba8c-75187abc15bd';\r\n break;\r\n case 'product_3311028':\r\n //Product - Pringles Salt & Vinegar 200g\r\n var touchPointId = 'e3e6db4f-220c-4e43-bd11-d69522ff0476';\r\n break;\r\n case 'product_6574775':\r\n //Product - Pringles Salt & Vinegar 40g\r\n var touchPointId = '661a3c38-c47d-42df-8993-c6b2cf90a400';\r\n break;\r\n case 'product_11093244':\r\n //Product - Pringles Sizzl'N Cheese & Chilli 180g\r\n var touchPointId = '72bc4e39-6753-4381-8df6-3d522664d2b7';\r\n break;\r\n case 'product_11092207':\r\n //Product - Pringles Sizzl'N Kickin’ Sour Cream 180g\r\n var touchPointId = '4ec16765-399a-4b8b-86b2-cbc734a4ee0d';\r\n break;\r\n case 'product_11093193':\r\n //Product - Pringles Sizzl'N Spicy BBQ 180g\r\n var touchPointId = '6ec2bfc5-7344-4732-b5ff-830b7c31bfa1';\r\n break;\r\n case 'product_6609590':\r\n //Product - Pringles Smokey Bacon 200g\r\n var touchPointId = '99be6444-9379-459e-93d7-feab9b20187f';\r\n break;\r\n case 'product_6598150':\r\n //Product - Pringles Sour Cream & Onion 200g\r\n var touchPointId = '3a6d9290-66e9-418a-9a09-3fa43c34d46d';\r\n break;\r\n case 'product_3311040':\r\n //Product - Pringles Sour Cream & Onion 40g\r\n var touchPointId = 'f6d13daf-00dc-43b0-a22f-6de85a1ae8a3';\r\n break;\r\n case 'product_6598150':\r\n //Product - Pringles Sour Cream & Onion 70g\r\n var touchPointId = '07c092e9-23bc-4ddf-a0be-547448c300d2';\r\n break;\r\n case 'product_6605707':\r\n //Product - Pringles Steak 200g\r\n var touchPointId = 'e304aea1-d16c-44ba-8bf2-6bf2b3fdc8b2';\r\n break;\r\n case 'product_6926477':\r\n //Product - Rice BBQ Teriyaki 160g\r\n var touchPointId = 'f04c808b-2b1b-446c-b2f4-aef422805421';\r\n break;\r\n case 'product_6926473':\r\n //Product - Rice Malaysian Red Curry 160g\r\n var touchPointId = '6d8d139d-9793-4f15-bb70-9c9fdf2de076';\r\n break;\r\n case 'product_6926471':\r\n //Product - Rice Peking Duck with Hoisin Sauce 160g\r\n var touchPointId = 'ba7eb203-3739-41fd-93a1-c704e4315834';\r\n break;\r\n case 'product_6926475':\r\n //Product - Rice Tandoori Chicken Masala 160g\r\n var touchPointId = '0a299d1e-867f-4bdb-8668-0f7fe1f0ef26';\r\n break;\r\n case 'Product_3978711':\r\n //Product - Tortilla Cheesy Nacho Cheese 160g\r\n var touchPointId = 'e2b0b9de-b750-4084-b19a-d1c4c27a2363';\r\n break;\r\n case 'product_6231074':\r\n //Product - Tortilla Sour Cream 160g\r\n var touchPointId = 'eda72921-1398-41ff-8e55-de8f492955ce';\r\n break;\r\n }\r\n if (touchPointId) {\r\n var strTxtDetailPage = \"
\";\r\n } else {\r\n var strTxtDetailPage = \"\";\r\n }\r\n return strTxtDetailPage;\r\n }\r\n insertPosition.after(returnTouchpointID(product_id));\r\n }\r\n // });\r\n // }, 1000);\r\n\r\n }\r\n clearInterval(_interval1);\r\n }\r\n }\r\n var imageValid = false,\r\n numValid = false,\r\n PromotionIdNotFound = false,\r\n codes = [],\r\n updateBtnOj = getBtnObj,\r\n receiptAdded,\r\n // $anchorScroll,\r\n // modalShown = false,\r\n coordinatesToReturn = {},\r\n lockCrossword = false,\r\n showlanguageSelector = true,\r\n fileName = [];\r\n var setCaptcha = function () {\r\n if ($('#upcCodeForm').length && $('.g-recaptcha-response').length < 1 && typeof window.grecaptcha.render !== 'undefined') {\r\n if (settings.Require_Captcha == \"true\") {\r\n window.grecaptcha.render(\r\n 'g-recaptcha', {\r\n sitekey: '6LeRF1scAAAAAB-yBjJMrzLYSBqNAGjkf2PokFq1',\r\n callback: onSuccess,\r\n 'expired-callback': expCallback,\r\n 'hl': locale.split('_')[0]\r\n }\r\n );\r\n }\r\n clearInterval(_interval);\r\n }\r\n };\r\n _interval = setInterval(function () {\r\n setCaptcha();\r\n }, 300);\r\n\r\n function expCallback() {\r\n window.grecaptcha.reset();\r\n updateBtnOj = JSON.parse(webStorageService.getSessionData('btnObj'))\r\n updateBtnOj[0].validateCaptchaHome = false;\r\n webStorageService.setSessionData('btnObj', updateBtnOj);\r\n\r\n setbtnObj(updateBtnOj);\r\n }\r\n function onSuccess(token) {\r\n updateBtnOj = JSON.parse(webStorageService.getSessionData('btnObj'))\r\n if (token) {\r\n API.verifyCaptchaEnterCode({ token: token, redemptionToken: webStorageService.getSessionData('servToken') }).then(function (res) {\r\n let updateValidateCaptchaHome = (res.status == 'FAILED') ? false : true;\r\n updateBtnOj[0].validateCaptchaHome = updateValidateCaptchaHome;\r\n webStorageService.setSessionData('btnObj', updateBtnOj);\r\n setbtnObj(updateBtnOj);\r\n webStorageService.setSessionData('servToken', res.token);\r\n }).catch(function (err) {\r\n HandleError(err.response)\r\n })\r\n }\r\n }\r\n\r\n if (webStorageService.getSessionData('codes') == undefined) {\r\n for (var i = 1; i <= upcCount; i++) {\r\n codes.push({\r\n 'objId': i,\r\n 'id': 'Code' + i,\r\n 'errors': '',\r\n 'labels': 'BatchcodeSection1Label' + i,\r\n 'value': '',\r\n 'uploadId': 'uploadImg' + i,\r\n 'receiptNum': 'receipt' + i,\r\n 'isWritten': false,\r\n 'duplicateKey': -1\r\n });\r\n }\r\n } else {\r\n codes = JSON.parse(webStorageService.getSessionData(\"codes\"));\r\n }\r\n\r\n var uploadReceipt = false;\r\n if (locale.toLowerCase() == 'it_it') {\r\n document.querySelector('body').className = 'activeOverlay Batchcodeentry';\r\n uploadReceipt = true;\r\n if (webStorageService.getSessionData('receiptObj') == undefined) {\r\n fileName = [{\r\n receipt1: {\r\n name: '',\r\n invalid: false,\r\n large: false,\r\n empty: '',\r\n statusFile: '',\r\n statusMsg: '',\r\n showName: false,\r\n file: null\r\n }\r\n }];\r\n } else {\r\n fileName = JSON.parse(webStorageService.getSessionData(\"receiptObj\"));\r\n }\r\n } else {\r\n uploadReceipt = false;\r\n }\r\n\r\n var checkForDuplicates = function (e, index) {\r\n var value = e.target.value.toLowerCase();\r\n for (var i = 0; i < codes.length; i++) {\r\n if (value == codes[i].value.toLowerCase() && i != index && (!codes[i].errors || codes[i].errors == upcErrorLabels.duplicate)) {\r\n codes[i].errors = upcErrorLabels.duplicate;\r\n codes[index].errors = upcErrorLabels.duplicate;\r\n //codes[i].duplicateKey = index;\r\n }\r\n }\r\n // setCodesArr(codes);\r\n }\r\n var verifyDuplicates = function (index) {\r\n var duplicateCount;\r\n for (var i = 0; i < codes.length; i++) {\r\n duplicateCount = 0;\r\n if (i != index && codes[i].errors == upcErrorLabels.duplicate) {\r\n for (var j = 0; j < codes.length; j++) {\r\n if (codes[i].value.toLowerCase() == codes[j].value.toLowerCase() && i != j) {\r\n duplicateCount++;\r\n }\r\n }\r\n if (!duplicateCount && codes[i].errors == upcErrorLabels.duplicate) {\r\n codes[i].errors = '';\r\n }\r\n }\r\n }\r\n\r\n }\r\n var updateErrorKey = function () {\r\n var flag = false;\r\n for (var i = 0; i < codes.length; i++) {\r\n if (codes[i].errors) {\r\n flag = true;\r\n }\r\n }\r\n updateBtnOj[0].anyError = (flag ? true : false);\r\n }\r\n var onBlur = function (index, e) {\r\n // if(!item.$viewValue){\r\n // _setInvalidFieldState(item.$name, 'required');\r\n // }\r\n if (e.target.value.length < e.target.maxLength && e.target.value.length) {\r\n codes[index].errors = upcErrorLabels.length;\r\n } else if (!e.target.value.length) {\r\n codes[index].errors = upcErrorLabels.empty;\r\n updateBtnOj[0].isEmpty = true;\r\n } else {\r\n updateBtnOj[0].isEmpty = false;\r\n }\r\n updateErrorKey();\r\n codes[index].isWritten = true;\r\n webStorageService.setSessionData(\"codes\", codes);\r\n setCodesArrObj(codes);\r\n webStorageService.setSessionData('btnObj', updateBtnOj);\r\n setbtnObj(updateBtnOj);\r\n // alignVertically();\r\n };\r\n var userInput = function (e, index) {\r\n codes[index].value = e.target.value;\r\n if (e.target.value == 0 && (codes[index].isWritten || codes[index].errors)) {\r\n codes[index].errors = upcErrorLabels.empty;\r\n }\r\n else if (codes[index].isWritten || codes[index].errors) {\r\n let transformedInput = e.target.value.replace(/[^a-zA-Z0-9]/g, ''); \r\n e.target.value = transformedInput\r\n if (e.target.value.length < e.target.maxLength) {\r\n codes[index].errors = upcErrorLabels.length;\r\n updateErrorKey();\r\n }\r\n verifyDuplicates(index);\r\n updateBtnOj[0].isEmpty = false;\r\n }\r\n if (e.target.value.length == e.target.maxLength) {\r\n e.preventDefault();\r\n } else if (e.target.value.length > e.target.maxLength) {\r\n // Maximum exceeded\r\n e.target.value = e.target.value.substring(0, e.target.maxLength);\r\n }\r\n if (e.target.value.length == e.target.maxLength) {\r\n codes[index].errors = '';\r\n checkForDuplicates(e, index);\r\n updateErrorKey();\r\n }\r\n webStorageService.setSessionData(\"codes\", codes);\r\n setCodesArrObj(codes);\r\n webStorageService.setSessionData('btnObj', updateBtnOj);\r\n setbtnObj(updateBtnOj);\r\n // alignVertically();\r\n }\r\n var _setStatuses = function (response) {\r\n var valid = true,\r\n statusesArr = response.result,\r\n statusCheck = true,\r\n imageResponse = uploadReceipt ? response.imageResult : '',\r\n receiptNum, scrollElement, filename;\r\n codes = webStorageService.getSessionData(\"codes\") ? JSON.parse(webStorageService.getSessionData(\"codes\")) : '';\r\n filename = webStorageService.getSessionData(\"receiptObj\") ? JSON.parse(webStorageService.getSessionData(\"receiptObj\")) : '';\r\n if (uploadReceipt && !!imageResponse) {\r\n for (i = 0; i < imageResponse.length; i++) {\r\n if (imageResponse[i].Status.toLowerCase() == 'failed') {\r\n valid = false;\r\n if (Require_Captcha === \"true\") {\r\n window.grecaptcha.reset();\r\n updateBtnOj[0].validateCaptchaHome = false;\r\n // setbtnObj({...btnObj,validateCaptchaHome:false});\r\n }\r\n $('.upload-img').eq(i).val(null);\r\n receiptNum = 'receipt' + (i + 1);\r\n filename[0][receiptNum].statusFile = true;\r\n filename[0][receiptNum].showName = false;\r\n receiptAdded = false;\r\n filename[0][receiptNum].statusMsg = imageResponse[i].Message;\r\n filename[0][receiptNum].file = null;\r\n filename[0][receiptNum].name = '';\r\n webStorageService.setSessionData('receiptObj', filename);\r\n setFileNameObj(filename);\r\n //someCtrlFn(receiptNum, null, false);\r\n if (statusCheck) {\r\n scrollElement = 'uploadReceipt' + (i + 1);\r\n statusCheck = false;\r\n }\r\n }\r\n }\r\n }\r\n for (i = 0; i < statusesArr.length; i++) {\r\n if (statusesArr[i].status.toLowerCase() != 'valid') {\r\n updateBtnOj[0].anyError = true;\r\n updateBtnOj[0].validResponse = false;\r\n\r\n if (Require_Captcha === \"true\") {\r\n window.grecaptcha.reset();\r\n updateBtnOj[0].validateCaptchaHome = false;\r\n // validateCaptchaHome = false;\r\n // setbtnObj(updateBtnOj);\r\n\r\n }\r\n webStorageService.setSessionData('btnObj', updateBtnOj);\r\n setbtnObj(updateBtnOj);\r\n codes[i].errors = upcErrorLabels[statusesArr[i].status.toLowerCase()];\r\n valid = false;\r\n if (statusCheck) {\r\n scrollElement = 'Code' + (i + 1);\r\n statusCheck = false;\r\n // $anchorScroll.yOffset = 100;\r\n }\r\n }\r\n }\r\n if (!statusCheck) {\r\n // $anchorScroll(scrollElement);\r\n // $('#' + scrollElement).focus();\r\n }\r\n webStorageService.setSessionData(\"codes\", codes);\r\n setCodesArrObj(codes);\r\n\r\n //$location.hash(scrollElement);\r\n // call $anchorScroll()\r\n // alignVertically();\r\n return valid;\r\n }\r\n var sendForm = function (e) {\r\n e.preventDefault();\r\n receiptAdded = (uploadReceipt) ? checkEntries() : true;\r\n if (!receiptAdded) {\r\n setTimeout(function () {\r\n if ($('.blank-msg').eq(0).length > 0) {\r\n var elem = $('.blank-msg').eq(0).closest('.upload-receipt').attr('id');\r\n // $anchorScroll(elem);\r\n }\r\n }, 300);\r\n } else {\r\n updateBtnOj[0].sended = true;\r\n updateBtnOj[0].validResponse = true;\r\n updateBtnOj[0].validateCaptchaHome = false;\r\n webStorageService.setSessionData('btnObj', updateBtnOj);\r\n setbtnObj(updateBtnOj);\r\n\r\n var form = new FormData(),\r\n data, codesArr = [],\r\n codesInput = webStorageService.getSessionData(\"codes\") ? JSON.parse(webStorageService.getSessionData(\"codes\")) : '',\r\n filenameVal = webStorageService.getSessionData(\"receiptObj\") ? JSON.parse(webStorageService.getSessionData(\"receiptObj\")) : '';\r\n\r\n for (var i = 0; i < codesInput.length; i++) {\r\n codesArr[i] = $.trim(codesInput[i].value).toUpperCase();\r\n }\r\n if (locale.toLowerCase() == 'it_it') {\r\n for (var i = 0; i < 1; i++) {\r\n\r\n // form.append('receipt[]', filenameVal[0]['receipt' + (i + 1)].file);\r\n form.append('PartNumber', filenameVal[0]['receipt' + (i + 1)].file);\r\n\r\n }\r\n for (var i = 0; i < codesArr.length; i++) {\r\n\r\n form.append('Codes[]', codesArr[i]);\r\n }\r\n data = form;\r\n } else {\r\n data = codesArr;\r\n }\r\n API.checkUpcCodes(data, webStorageService.getSessionData('servToken')).then(function (response) {\r\n updateBtnOj[0].sended = false;\r\n webStorageService.setSessionData('btnObj', updateBtnOj);\r\n setbtnObj(updateBtnOj);\r\n if (!!response.result && response.result.length > 0) {\r\n if (_setStatuses(response) && response.token) {\r\n webStorageService.setSessionData('servToken', response.token);\r\n if (locale.toLowerCase() != 'lv_lv' && locale.toLowerCase() != 'bg_bg') {\r\n dataLayers().packCodeData();\r\n }\r\n if (locale.toLowerCase() === 'ru_ru') {\r\n var shipObj = webStorageService.getSessionData('shippingInfoObj');\r\n var shippingInfoObj = {\r\n 'redemption-token': response.token,\r\n 'shippingDetails': {\r\n name: shipObj.shippingDetails.name,\r\n lastName: shipObj.shippingDetails.lastName,//formObj.LastName,\r\n address1: shipObj.shippingDetails.address1,//formObj.Address1,\r\n address2: shipObj.shippingDetails.address2,//formObj.Address2,\r\n city: shipObj.shippingDetails.city,//formObj.City,\r\n postCode: shipObj.shippingDetails.postCode,//formObj.PostalCode,\r\n state: shipObj.shippingDetails.state,\r\n Email: shipObj.shippingDetails.Email,\r\n terms: shipObj.shippingDetails.terms,\r\n subscription: shipObj.shippingDetails.subscription,\r\n phone: shipObj.shippingDetails.phone,\r\n country: shipObj.shippingDetails.country// resourceService.getCountryCode().toLowerCase() // add russia\r\n }\r\n };\r\n }\r\n else {\r\n var grm = webStorageService.getSessionData('grmUser');\r\n var shippingInfoObj = {\r\n 'redemption-token': webStorageService.getSessionData('servToken'),\r\n 'shippingDetails': grm\r\n };\r\n }\r\n\r\n /*sended = true;*/\r\n\r\n API.orderAward(shippingInfoObj).then(function (response) {\r\n // sended = false;\r\n /*disableRegister = false;*/\r\n if (response.token) {\r\n // var token = response.token;\r\n webStorageService.setSessionData('servToken', response.token);\r\n webStorageService.setLocalData('servToken', response.token);\r\n } else {\r\n webStorageService.removeSessionData('servToken');\r\n }\r\n if (response.redirect) {\r\n updateBtnOj[0].validResponse = false;\r\n webStorageService.setSessionData('btnObj', updateBtnOj);\r\n setbtnObj(updateBtnOj);\r\n var winnerObj = {};\r\n if (response.redirect.toLowerCase().indexOf('thankyou') > -1) {\r\n if (response.Winner !== undefined && response.Winner !== null) {\r\n winnerObj = {\r\n winner: response.Winner,\r\n winnerCopy: response.winnerCopy,\r\n isExtendedPhase: response.ExtendedPhase,\r\n refCode: response.RefCode\r\n }\r\n if (response.Winner > 0) {\r\n dataLayers().orderData(response.Winner);\r\n }\r\n }\r\n }\r\n if (response.redirect.indexOf('limit') > -1) {\r\n webStorageService.setSessionData('limitType', response.message);\r\n }\r\n handleRoute(response.redirect, winnerObj);\r\n } else {\r\n // $location.path(locale + '/Error');\r\n }\r\n }).catch(function (error) {\r\n HandleError(error.response);\r\n });\r\n }\r\n\r\n }\r\n }).catch(function (error) {\r\n HandleError(error.response);\r\n });\r\n }\r\n };\r\n // var onClick = function (clicks) {\r\n // clicks = clicks;\r\n // this.options.registerClicks(clicks);\r\n // }\r\n var checkEntries = function () {\r\n receiptAdded = true;\r\n let filenameVal = webStorageService.getSessionData(\"receiptObj\") ? JSON.parse(webStorageService.getSessionData(\"receiptObj\")) : [{\r\n receipt1: {\r\n name: '',\r\n invalid: false,\r\n large: false,\r\n empty: '',\r\n statusFile: '',\r\n statusMsg: '',\r\n showName: false,\r\n file: null\r\n }\r\n }];\r\n for (var key in filenameVal[0]) {\r\n if (filenameVal[0][key].name.length < 1) {\r\n filenameVal[0][key].empty = true;\r\n filenameVal[0][key].invalid = false;\r\n filenameVal[0][key].large = false;\r\n filenameVal[0][key].statusFile = false;\r\n } else {\r\n filenameVal[0][key].empty = false;\r\n }\r\n if (filenameVal[0][key].file == null) {\r\n receiptAdded = false;\r\n }\r\n }\r\n webStorageService.setSessionData('receiptObj', filenameVal);\r\n setFileNameObj(filenameVal);\r\n return receiptAdded;\r\n }\r\n // var someCtrlFn = function (arg1, arg2, field) {\r\n // var validEntry = true;\r\n // filename[arg1].file = arg2;\r\n // imageValid = false;\r\n // if (field) {\r\n // filename[arg1].statusFile = false;\r\n // }\r\n // receiptAdded = true;\r\n // };\r\n\r\n var onTextChange = function (e, index) {\r\n var $el = $(e.target);\r\n var maxLength = $el.attr('maxLength');\r\n maxLength = maxLength ? maxLength : 19;\r\n };\r\n var onUploadClick = function ($event) {\r\n $event.preventDefault();\r\n var triggerEl = $('#' + $($event.target).data('clickfor'));\r\n triggerEl.trigger('click');\r\n };\r\n var validType = ['image/jpeg', 'image/jpg', 'image/gif', 'image/png']\r\n , validSize = 5;\r\n var onChangeReceipt = function (event) {\r\n const reader = new FileReader();\r\n let file = event.target.files[0],\r\n elementName = event.target.name;\r\n fileName[0][elementName].name = '';\r\n fileName[0][elementName].invalid = false;\r\n fileName[0][elementName].size = false;\r\n fileName[0][elementName].showName = false;\r\n fileName[0][elementName].statusFile = false;\r\n fileName[0][elementName].large = false;\r\n fileName[0][elementName].empty = false;\r\n\r\n if (file == undefined) {\r\n file = null;\r\n }\r\n else if (validType.indexOf(file.type) < 0) {\r\n event.target.value = null;\r\n file = null;\r\n fileName[0][elementName].invalid = true;\r\n fileName[0][elementName].large = false;\r\n }\r\n else if ((file.size) / (1024 * 1024) > validSize) {\r\n event.target.value = null;\r\n file = null;\r\n fileName[0][elementName].invalid = false;\r\n fileName[0][elementName].large = true;\r\n }\r\n else {\r\n fileName[0][elementName].name = file.name;\r\n fileName[0][elementName].showName = true;\r\n dataLayers().imageUpload()\r\n }\r\n reader.addEventListener(\"load\", function () {\r\n // convert image file to base64 string\r\n fileName[0][elementName].file = reader.result;\r\n webStorageService.setSessionData('receiptObj', fileName);\r\n setFileNameObj(fileName);\r\n }, false);\r\n\r\n if(file){\r\n reader.readAsDataURL(file);\r\n }else{\r\n setFileNameObj(fileName);\r\n }\r\n\r\n\r\n }\r\n var isOutOfHours = webStorageService.getSessionData('pageState') ?\r\n webStorageService.getSessionData('pageState') === 'Outofhours' : false;\r\n //isOutOfHours=true;\r\n // if (isOutOfHours) dataLayers().OutOfHours();\r\n var goToPringlesSite = function () {\r\n // dataLayers().goToPringles('Out of Hours Page');\r\n };\r\n\r\n document.querySelector('body').setAttribute('pagename', 'Batchcodeentry');\r\n\r\n }\r\n\r\n\r\n return (\r\n <>\r\n \r\n
\r\n
\r\n
\r\n
\r\n

{translations.BatchcodeSectionTitle}

\r\n

{translations.BatchcodeSectionDescription}

\r\n

\r\n

{translations.BatchcodeSectionDescription2}

\r\n\r\n

\r\n \r\n \r\n

\r\n\r\n
\r\n
\r\n
\r\n

{translations.BatchcodeSectionInstruction}

\r\n

{translations.BatchcodeSectionInstruction1}

\r\n {\r\n codes.map(function (code, index){\r\n return (\r\n
\r\n \r\n\r\n
\r\n

\r\n {codesArrObj[index].errors}\r\n

\r\n
\r\n
\r\n userInput(e, index)}\r\n onBlur={(e) => onBlur(index, e)}\r\n className={codesArrObj[index].errors && 'ng-error'}\r\n onKeyUp={(e) => onTextChange(e, index)}\r\n title={translations.CoreKelloggs_EnterCodeInputFieldTitle} />\r\n\r\n
\r\n {\r\n isShowReceiptField &&
\r\n

\r\n {translations.CoreKelloggs_UploadImageHeader}\r\n

\r\n {fileNameObj[0][code.receiptNum].invalid && {translations.CoreKelloggs_UploadImageTypeError}}\r\n {fileNameObj[0][code.receiptNum].large && {translations.CoreKelloggs_UploadImageSizeError}}\r\n {fileNameObj[0][code.receiptNum].empty && {translations.CoreKelloggs_UploadImageMandatoryError}}\r\n {fileNameObj[0][code.receiptNum].statusFile && {fileNameObj[0][code.receiptNum].statusMsg}}\r\n {fileNameObj[0][code.receiptNum].showName && {fileNameObj[0][code.receiptNum].name}\r\n }\r\n \r\n
\r\n }\r\n
\r\n )\r\n })\r\n }\r\n
\r\n
\r\n
\r\n
\r\n \r\n {\r\n (locale == 'en_GB' ) &&

Need another Pringles can?
You are just a click away.

\r\n }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{translations.CoreKelloggs_CodehelpSection1Title}

\r\n \r\n {/* */}\r\n \r\n \r\n {/* */}\r\n {translations.CanImageAltText}\r\n \r\n

{translations.CodehelpSection1Instruction}

\r\n
\r\n
\r\n
\r\n {modalShown &&
\r\n {modalShown &&
\r\n
toggleModal(event)}>
\r\n
\r\n
toggleModal(event)}>
\r\n
\r\n
\r\n {translations.CoreKelloggs_Uploadimageinstructionsheading &&

{translations.UploadImageInstructions}

}\r\n
\r\n
\r\n

{translations.UploadImageStep1}

\r\n

{translations.UploadImageStep2}

\r\n

{translations.UploadImageStep3}

\r\n
\r\n
\r\n
\r\n
}\r\n
}\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default Batchcode;\r\n\r\n\r\n","import React, { useContext } from 'react';\r\nimport { Redirect } from \"react-router-dom\";\r\nimport * as webStorageService from '../Utility/WebStorageFactory';\r\nimport { locale, MetaTags, pageScroll } from '../Utility/Global';\r\nimport JsonContext from '../Utility/JsonProvider';\r\n\r\nconst Movie = () => {\r\n const { translations } = useContext(JsonContext);\r\n\r\n let pageState = webStorageService.getSessionData('createPageState');\r\n\r\n if (pageState == '' || pageState == undefined || pageState == null) {\r\n window.location = '/' + locale + '/Home';\r\n } else if (pageState != 'Movie') {\r\n return \r\n }\r\n\r\n document.querySelector('body').setAttribute('pagename', 'Movie');\r\n\r\n return (\r\n <>\r\n \r\n
\r\n

{translations.CoreKelloggs_ChooseMoviePageTitle}

\r\n Movie Page\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default Movie;","import React, { useState, useContext, useEffect } from 'react';\r\nimport { Redirect, useHistory } from \"react-router-dom\";\r\nimport * as webStorageService from '../Utility/WebStorageFactory';\r\nimport { locale, MetaTags, $, pageScroll } from '../Utility/Global';\r\nimport JsonContext from '../Utility/JsonProvider';\r\nimport ErrorProvider from '../Utility/ErrorProvider';\r\nimport dataLayers from '../Utility/DataLayers';\r\nimport * as API from '../Utility/ApiCalls';\r\n\r\nfunction Wordsearch() {\r\n const { translations } = useContext(JsonContext);\r\n const { HandleError } = ErrorProvider();\r\n const history = useHistory();\r\n const [crossletters, setCrossletters] = useState([]);\r\n const [findwords, setFindwords] = useState([]);\r\n \r\n document.querySelector('body').setAttribute('pagename', 'Wordsearch');\r\n\r\n useEffect(() => {\r\n API.getCrossword(webStorageService.getSessionData('servToken'))\r\n .then(function (data) {\r\n if (data.crossword) {\r\n CrossWordService.setLetters(data.crossword);\r\n CrossWordService.setWords(data.words);\r\n var wordsFromArr = JSON.parse(data.words),\r\n wordsFrom = '';\r\n for (var i = 0; i < wordsFromArr.length; i++) {\r\n if (locale.toLowerCase() == \"ka_ge\") {\r\n wordsFrom +=\r\n '

' +\r\n wordsFromArr[i].toLowerCase() +\r\n '

';\r\n }\r\n else {\r\n wordsFrom +=\r\n '

' +\r\n wordsFromArr[i].toUpperCase() +\r\n '

';\r\n }\r\n }\r\n wordsFrom = wordsFrom;\r\n setFindwords(wordsFrom);\r\n CrossWordService.start();\r\n isStarted = true;\r\n\r\n //Directive\r\n var sett = {\r\n highlightColor: '#cf122e',\r\n crossHeight: 0.8,\r\n contener: $('.cross-word'),\r\n tabScope: $('.tabContainer'),\r\n button: $('.text .button')\r\n }\r\n\r\n //Array of words to find\r\n words = CrossWordService.getWords();\r\n\r\n //Array of letters\r\n letters = CrossWordService.getLetters();\r\n setCrossletters(letters);\r\n //Current crossed line \r\n var marker = {\r\n pos: {\r\n x: 0,\r\n y: 0\r\n },\r\n isActive: false\r\n };\r\n\r\n //isDisable\r\n var isDisable = false;\r\n\r\n //Canvas alement\r\n var canvas = sett.contener.find('canvas')[0];\r\n var context = canvas.getContext('2d');\r\n\r\n //##############################\r\n //PRIVATE METHODS\r\n //##############################\r\n var init = function (settings) {\r\n $.extend(sett, settings);\r\n //bindUiEvents();\r\n setTimeout(function () {\r\n rescale();\r\n }, 2000);\r\n //resize\r\n $(window).on('resize', function () {\r\n setTimeout(function () {\r\n rescale();\r\n }, 0);\r\n });\r\n }\r\n\r\n //Returns the current position of coursor or finger\r\n var pointerEventToXY = function (e) {\r\n var out = { x: 0, y: 0, currentX: 0, currentY: 0 };\r\n if (e.type == 'touchstart' || e.type == 'touchmove' || e.type == 'touchend' || e.type == 'touchcancel') {\r\n var touch = e.originalEvent.touches[0] || e.originalEvent.changedTouches[0];\r\n out.x = touch.pageX;\r\n out.y = touch.pageY;\r\n } else if (e.type == 'mousedown' || e.type == 'mouseup' || e.type == 'mousemove' || e.type == 'mouseover' || e.type == 'mouseout' || e.type == 'mouseenter' || e.type == 'mouseleave') {\r\n out.x = e.pageX;\r\n out.y = e.pageY;\r\n }\r\n out.currentX = out.x - sett.tabScope.offset().left;\r\n out.currentY = out.y - sett.tabScope.offset().top;\r\n\r\n out.x = Math.floor((out.x - sett.tabScope.offset().left) * (100 / sett.tabScope.width()) / 10);\r\n out.y = Math.floor((out.y - sett.tabScope.offset().top) * (100 / sett.tabScope.height()) / 10);\r\n\r\n\r\n return out;\r\n };\r\n\r\n //draws sinle line\r\n var drawLine = function (start, end) {\r\n var sX = ((start.x) * canvas.width / 10) + canvas.width / 10 / 2;\r\n var sY = ((start.y) * canvas.height / 10) + canvas.height / 10 / 2;\r\n context.beginPath();\r\n context.moveTo(sX, sY);\r\n if (end.currentX) {\r\n context.lineTo(end.currentX, end.currentY);\r\n } else {\r\n context.lineTo(\r\n ((end.x) * canvas.width / 10) + canvas.width / 10 / 2,\r\n ((end.y) * canvas.height / 10) + canvas.height / 10 / 2\r\n );\r\n }\r\n context.lineWidth = (canvas.width / 10) * sett.crossHeight;\r\n context.lineCap = \"round\";\r\n context.strokeStyle = sett.highlightColor;\r\n context.stroke();\r\n };\r\n\r\n //draws all schrached lines\r\n var drawScrachedLines = function () {\r\n for (var i = 0; i < words.length; i++) {\r\n if (words[i].isScratched) {\r\n drawLine(words[i].start, words[i].end);\r\n }\r\n }\r\n }\r\n\r\n //redraw\r\n var redraw = function () {\r\n //update letters and words\r\n letters = CrossWordService.getLetters();\r\n words = CrossWordService.getWords();\r\n\r\n //redraw UI\r\n marker.isActive = false;\r\n context.clearRect(0, 0, canvas.width, canvas.height);\r\n drawScrachedLines();\r\n }\r\n\r\n //rescale\r\n var rescale = function () {\r\n sett.tabScope.css({\r\n 'width': '',\r\n 'height': ''\r\n });\r\n var contenerWidth = sett.tabScope.width();\r\n // if (contenerWidth > $(window).height()) {\r\n // contenerWidth = $(window).height();\r\n // }\r\n sett.tabScope.width(contenerWidth);\r\n sett.tabScope.height(contenerWidth);\r\n $(canvas).attr('width', contenerWidth + 'px');\r\n $(canvas).attr('height', contenerWidth + 'px');\r\n redraw();\r\n\r\n };\r\n\r\n //##############################\r\n //EVENTS HANDLERS\r\n //##############################\r\n var bindUiEvents = function () {\r\n //Start scraching\r\n sett.tabScope.on('mousedown touchstart', function (e) {\r\n if (isDisable) return false;\r\n var pos = pointerEventToXY(e);\r\n marker.pos.x = pos.x;\r\n marker.pos.y = pos.y;\r\n marker.isActive = true;\r\n context.clearRect(0, 0, canvas.width, canvas.height);\r\n drawScrachedLines();\r\n drawLine(marker.pos, pos);\r\n });\r\n\r\n //End scraching\r\n sett.tabScope.on('mouseup touchend mouseleave', function (e) {\r\n\r\n marker.isActive = false;\r\n if (e.type == \"mouseleave\") {\r\n context.clearRect(0, 0, canvas.width, canvas.height);\r\n drawScrachedLines();\r\n return false;\r\n }\r\n CrossWordService.getScrachedWord(marker.pos, pointerEventToXY(e));\r\n context.clearRect(0, 0, canvas.width, canvas.height);\r\n drawScrachedLines();\r\n });\r\n\r\n //Do scraching\r\n sett.tabScope.on('mousemove touchmove', function (e) {\r\n e.preventDefault();\r\n if (!marker.isActive) return false;\r\n context.clearRect(0, 0, canvas.width, canvas.height);\r\n\r\n var pos = pointerEventToXY(e);\r\n drawScrachedLines();\r\n drawLine(marker.pos, pos);\r\n });\r\n\r\n /*sett.button.on('click', function(e) {\r\n e.preventDefault();\r\n CrossWordService.finishCrossWord();\r\n dataLayers.crosswordSend();\r\n })*/\r\n };\r\n\r\n //##############################\r\n //PUBLIC METHODS\r\n //##############################\r\n\r\n //constructor\r\n function ScratchWords(settings) {\r\n init(settings);\r\n }\r\n\r\n var scratchWords = new ScratchWords({});\r\n\r\n //function declaration, which will be called in controller\r\n //scope.control = scope.control || {};\r\n var crosswordControl = {};\r\n\r\n crosswordControl.turnOn = function () {\r\n bindUiEvents();\r\n }\r\n\r\n crosswordControl.redraw = function () {\r\n redraw();\r\n }\r\n\r\n //controller\r\n var crosswordQueryStr = (window.location.href).substr((window.location.href).lastIndexOf('/') + 1),\r\n crosswordUuidStr = crosswordQueryStr.indexOf(\"?\") > 0 ? crosswordQueryStr.split(\"?\")[0] : crosswordQueryStr,\r\n crosswordUuid = crosswordQueryStr ? crosswordUuidStr : null;\r\n $('html, body').animate(\r\n {\r\n scrollTop: $('.wordsearch-page').offset().top\r\n },\r\n 2000\r\n );\r\n // Private variables\r\n var kraveHorrorWinUrl = '/win';\r\n var kraveHorrorLoseUrl = locale + '/lose';\r\n var kraveHorrorUrl = locale + '/Error',\r\n // Public variables\r\n isStarted = false,\r\n isFinishEnable = false;\r\n // This variable will be pass to directive\r\n // Private methods\r\n document.getElementById('crossword').onselectstart = function () {\r\n return false;\r\n };\r\n document.getElementById('crossword').onmousedown = function () {\r\n return false;\r\n };\r\n // Public methods\r\n CrossWordService.timerecorder();\r\n CrossWordService.setFinishCallback(\r\n function (data) {\r\n },\r\n function (reason) {\r\n window.location.href = ('/' + locale + '/error');\r\n },\r\n webStorageService.getSessionData('servToken')\r\n );\r\n if (typeof crosswordControl.turnOn === 'function')\r\n crosswordControl.turnOn();\r\n if (typeof crosswordControl.redraw === 'function')\r\n crosswordControl.redraw();\r\n } else {\r\n kraveHorrorUrl = locale + '/Error';\r\n }\r\n })\r\n .catch(function (error) {\r\n HandleError(error.response);\r\n });\r\n // pass callback function to the service\r\n CrossWordService.isFinishEnable(function () {\r\n // $apply(function () {\r\n isFinishEnable = true;\r\n // });\r\n });\r\n }, [])\r\n\r\n let pageState = webStorageService.getSessionData('createPageState');\r\n // pageState = 'Crossword';\r\n if (pageState == '' || pageState == undefined || pageState == null) {\r\n window.location = '/' + locale + '/Home';\r\n } else if (pageState != 'Crossword') {\r\n return \r\n }\r\n\r\n // Initial state of letters\r\n var letters = [],\r\n Crossword = [],\r\n // Initial state of words\r\n words = [],\r\n Words = [],\r\n wordMustBeChecked = true,\r\n isFinishEnable = function () { },\r\n coordinatesToReturn = {},\r\n lockCrossword = false,\r\n CrossWordService = {\r\n finishCb: null,\r\n finishErrorCb: null,\r\n token: null,\r\n timerecorder: (function () {\r\n var startdate = new Date();\r\n var set = false;\r\n var end = false;\r\n var enddate = new Date();\r\n return function (state) {\r\n var ResultSolutionTimeSeconds = enddate - startdate;\r\n if (!set) {\r\n startdate = new Date();\r\n set = true;\r\n return startdate;\r\n }\r\n if (state == 'stop' && !end) {\r\n enddate = new Date();\r\n end = true;\r\n return enddate;\r\n }\r\n startdate = ''; set = false; end = false; enddate = '';\r\n return ResultSolutionTimeSeconds;\r\n };\r\n })(),\r\n haveFinalDetails: function () {\r\n return Crossword.length > 0 && Words.length > 0;\r\n },\r\n setLetters: function (lettersToSet) {\r\n try {\r\n Crossword = JSON.parse(lettersToSet);\r\n } catch (e) {\r\n // Console.log(\"Bad letters format from backend\");\r\n }\r\n },\r\n setWords: function (wordsToSet) {\r\n try {\r\n var wordsArr = JSON.parse(wordsToSet);\r\n Words = [];\r\n for (var i = 0; i < wordsArr.length; i++) {\r\n if (locale.toLowerCase() == \"ka_ge\") {\r\n Words.push({\r\n word: wordsArr[i].toLowerCase(),\r\n isScratched: false\r\n });\r\n }\r\n else {\r\n Words.push({\r\n word: wordsArr[i].toUpperCase(),\r\n isScratched: false\r\n });\r\n }\r\n }\r\n } catch (e) {\r\n // Console.log(\"Bad words format from backend\");\r\n }\r\n },\r\n getLetters: function () {\r\n return letters;\r\n },\r\n getWords: function () {\r\n return words;\r\n },\r\n isFinishEnable: function (cb) {\r\n isFinishEnable = cb;\r\n },\r\n finishCrossWord: function () {\r\n // var token = this.token;\r\n // var result = $q.defer();\r\n var answers = [];\r\n $('.ng-isolate-scope').removeClass(\"hide-loader\");\r\n for (var k in coordinatesToReturn) {\r\n answers.push({\r\n Row: k,\r\n Columns: coordinatesToReturn[k]\r\n });\r\n }\r\n API.postCrossword(\r\n { answers: answers, SolutionTimeSeconds: CrossWordService.timerecorder() },\r\n webStorageService.getSessionData('servToken')\r\n )\r\n .then(function (data) {\r\n dataLayers().wordSearchComplete();\r\n if (data.response.RedirectUrl.toLowerCase().indexOf('thankyou') > -1) {\r\n // (locale.toLowerCase() == 'mk_mk') ? dataLayers().orderData(16) : dataLayers().orderData(97);\r\n var winnerObj = {\r\n winner: 97,\r\n isExtendedPhase: data.response.ExtendedPhase,\r\n portfolio: data.response.Portfolio,\r\n prizes: data.response.Prizes,\r\n refCode: data.response.RefCode\r\n }\r\n if(!data.response.ExtendedPhase){\r\n dataLayers().orderData();\r\n }\r\n webStorageService.setSessionData('createPageState', 'Thankyou');\r\n }\r\n history.push({ pathname: data.response.RedirectUrl, state: winnerObj });\r\n pageScroll();\r\n\r\n })\r\n .catch(function (error) {\r\n HandleError(error.response);\r\n });\r\n },\r\n setFinishCallback: function (fn, fnError, token) {\r\n this.finishCb = fn;\r\n this.finishErrorCb = fnError;\r\n this.token = token;\r\n },\r\n start: null,\r\n getScrachedWord: null\r\n },\r\n customMerg = function (obj1, obj2, obj3) {\r\n if (typeof obj2 !== 'object') {\r\n if (!obj1[obj2]) {\r\n obj1[obj2] = [];\r\n }\r\n obj1[obj2].push(obj3);\r\n return false;\r\n }\r\n for (var i in obj2) {\r\n if (!obj1[i]) {\r\n obj1[i] = [];\r\n }\r\n for (var j = 0; j < obj2[i].length; j++) {\r\n if (obj1[i].indexOf(obj2[i][j]) == -1) {\r\n obj1[i].push(obj2[i][j]);\r\n }\r\n }\r\n }\r\n };\r\n // Detect if scrached word is correct\r\n CrossWordService.getScrachedWord = function (posStart, posEnd) {\r\n var scrachedWord = '';\r\n var lettersCoordinates = {};\r\n if (posStart.x == posEnd.x) {\r\n var start = posStart.y > posEnd.y ? posEnd.y : posStart.y;\r\n var end = posStart.y > posEnd.y ? posStart.y : posEnd.y;\r\n for (var i = start; i <= end; i++) {\r\n scrachedWord += letters[i][posStart.x];\r\n customMerg(lettersCoordinates, i, posStart.x);\r\n }\r\n } else if (posStart.y == posEnd.y) {\r\n var start = posStart.x > posEnd.x ? posEnd.x : posStart.x;\r\n var end = posStart.x > posEnd.x ? posStart.x : posEnd.x;\r\n for (var i = start; i <= end; i++) {\r\n scrachedWord += letters[posStart.y][i];\r\n customMerg(lettersCoordinates, posStart.y, i);\r\n }\r\n } else if (Math.abs(posStart.x - posEnd.x) == Math.abs(posStart.y - posEnd.y)) {\r\n var start = posStart.x > posEnd.x ? posEnd : posStart;\r\n var end = posStart.x > posEnd.x ? posStart : posEnd;\r\n for (var i = 0; i <= end.x - start.x; i++) {\r\n if (start.y < end.y) {\r\n scrachedWord += letters[start.y + i][start.x + i];\r\n customMerg(lettersCoordinates, start.y + i, start.x + i);\r\n } else {\r\n scrachedWord += letters[start.y - i][start.x + i];\r\n customMerg(lettersCoordinates, start.y - i, start.x + i);\r\n }\r\n }\r\n }\r\n if (wordMustBeChecked) {\r\n if (\r\n checkWord(scrachedWord, posStart, posEnd, function () {\r\n customMerg(coordinatesToReturn, lettersCoordinates);\r\n })\r\n ) {\r\n // Nothing\r\n }\r\n } else if (scrachedWord != '') {\r\n words.push({\r\n word: scrachedWord,\r\n isScratched: true,\r\n start: {\r\n x: posStart.x,\r\n y: posStart.y\r\n },\r\n end: {\r\n x: posEnd.x,\r\n y: posEnd.y\r\n }\r\n });\r\n customMerg(coordinatesToReturn, lettersCoordinates);\r\n // isFinishEnable();\r\n }\r\n };\r\n // Detect if scrached word is on the words list\r\n\r\n var checkWord = function (word, posStart, posEnd, cb) {\r\n var count = 0,\r\n result = false,\r\n start,\r\n end,\r\n starty;\r\n for (var i = 0; i < words.length; i++) {\r\n if (\r\n !words[i].isScratched &&\r\n (words[i].word.trim() == word ||\r\n words[i].word.trim() ==\r\n word\r\n .split('')\r\n .reverse()\r\n .join(''))\r\n ) {\r\n words[i].isScratched = true;\r\n var wordChecked = words[i].word.trim().toLowerCase();\r\n $('.' + wordChecked)\r\n .addClass('wodrIsChecked')\r\n .append('');\r\n words[i].start = {\r\n x: posStart.x,\r\n y: posStart.y\r\n };\r\n words[i].end = {\r\n x: posEnd.x,\r\n y: posEnd.y\r\n };\r\n count++;\r\n if (posStart.x == posEnd.x) {\r\n start = Math.min(posStart.y, posEnd.y);\r\n end = Math.max(posStart.y, posEnd.y);\r\n for (var j = start; j <= end; j++) {\r\n $(\r\n 'tr:nth-child(' + (j + 1) + ') td:nth-child(' + (posStart.x + 1) + ')'\r\n ).css({ color: '#fff' });\r\n }\r\n } else if (posStart.y == posEnd.y) {\r\n start = Math.min(posStart.x, posEnd.x);\r\n end = Math.max(posStart.x, posEnd.x);\r\n for (var j = start; j <= end; j++) {\r\n $(\r\n 'tr:nth-child(' + (posStart.y + 1) + ') td:nth-child(' + (j + 1) + ')'\r\n ).css({ color: '#fff' });\r\n }\r\n } else {\r\n var z = 1;\r\n start = Math.min(posStart.x, posEnd.x);\r\n end = Math.max(posStart.x, posEnd.x);\r\n starty = Math.min(posStart.y, posEnd.y);\r\n if (\r\n (posStart.x > posEnd.x && posStart.y > posEnd.y) ||\r\n (posStart.x < posEnd.x && posStart.y < posEnd.y)\r\n ) {\r\n for (var j = start; j <= end; j++) {\r\n $(\r\n 'tr:nth-child(' + (starty + z) + ') td:nth-child(' + (j + 1) + ')'\r\n ).css({ color: '#fff' });\r\n z++;\r\n }\r\n } else {\r\n for (var j = end; j >= start; j--) {\r\n $(\r\n 'tr:nth-child(' + (starty + z) + ') td:nth-child(' + (j + 1) + ')'\r\n ).css({ color: '#fff' });\r\n z++;\r\n }\r\n }\r\n }\r\n result = true;\r\n } else if (words[i].isScratched) {\r\n count++;\r\n }\r\n }\r\n if (word.isScratched) {\r\n }\r\n if (result) {\r\n cb();\r\n }\r\n // If(count==words.length){\r\n\r\n if (count == 10) {\r\n // isFinishEnable();\r\n CrossWordService.timerecorder('stop');\r\n if (lockCrossword === false) {\r\n CrossWordService.finishCrossWord();\r\n lockCrossword = true;\r\n }\r\n }\r\n return result;\r\n };\r\n CrossWordService.start = function () {\r\n letters = Crossword;\r\n words = Words;\r\n };\r\n\r\n return (\r\n <>\r\n \r\n
\r\n
\r\n

{translations.WordSearchPageTitle}

\r\n
{translations.WordSearchPageTitle}
\r\n {/*

{translations.WordSearchSubHeading}

*/}\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n \r\n\r\n {\r\n crossletters.map(function (row, index) {\r\n\r\n return (\r\n \r\n\r\n {\r\n row.map(function (value, vindex) {\r\n return (\r\n \r\n )\r\n })\r\n }\r\n\r\n \r\n )\r\n })\r\n }\r\n\r\n \r\n
{row[vindex]}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

{translations.WordsToFind}

\r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default Wordsearch;","import React, { useContext } from 'react';\r\nimport { Redirect, useHistory } from \"react-router-dom\";\r\nimport * as webStorageService from '../Utility/WebStorageFactory';\r\nimport * as API from '../Utility/ApiCalls'\r\nimport { locale, MetaTags, $, pageScroll } from '../Utility/Global';\r\nimport JsonContext from '../Utility/JsonProvider';\r\nimport ErrorProvider from '../Utility/ErrorProvider';\r\nimport dataLayers from '../Utility/DataLayers';\r\n\r\nconst Puzzle = () => {\r\n const { translations } = useContext(JsonContext);\r\n const { HandleError } = ErrorProvider();\r\n const history = useHistory();\r\n\r\n let pageState = webStorageService.getSessionData('createPageState');\r\n if (pageState == '' || pageState == undefined || pageState == null) {\r\n window.location = '/' + locale + '/Home';\r\n } else if (pageState != 'Puzzle') {\r\n return \r\n }\r\n\r\n document.querySelector('body').setAttribute('pagename', 'Puzzle');\r\n\r\n // setTimeout(function () {\r\n // $('html, body').animate({\r\n // scrollTop: $('.puzzle-container').offset().top - 100\r\n // }, 2000);\r\n // }, 2000);\r\n // accessService.setPermission('batchcode', false);\r\n // accessService.setPermission('register', false);\r\n // accessService.setPermission('login', false);\r\n\r\n var vm = this,\r\n postKey = [],\r\n imgSrc = (window.innerWidth <= 1024) ? '/Content/img/puzzle/celebrate2022-puzzle-kv-250x250.jpg' : '/Content/img/puzzle/celebrate2022-puzzle-kv-350x350.jpg',cardIndex,skillToken,answers;\r\n // cardIndex = Object.values([2, 4, 1, 3]);\r\n API.getPuzzle(webStorageService.getSessionData(\"servToken\")).then(function (data) {\r\n cardIndex = Object.values(data.puzzle);\r\n skillToken = data.token;\r\n webStorageService.setSessionData(\"servToken\",data.token);\r\n var genRanNo = function () {\r\n return Math.floor(100000 + Math.random() * 900000);\r\n }\r\n /*\r\n * Make encrypted array for puzzle tile poistions--@shivam\r\n */\r\n for (var index1 = 0; index1 < 6; index1++) {\r\n var randomNo = genRanNo().toString();\r\n var rplacedNo = randomNo.substring(0, cardIndex[index1]) + cardIndex[index1] + randomNo.substring(cardIndex[index1] + 1);\r\n postKey[index1] = rplacedNo;\r\n }\r\n answers = [postKey[0], postKey[1], postKey[2], postKey[3], postKey[4], postKey[5], genRanNo().toString()];\r\n var generatePuzzle = function generatePuzzle() {\r\n if (cardIndex != undefined) {\r\n $('.main-wrapper .container.puzzle #puzzleContainer').css('display', 'block');\r\n if ($('.hiding').length > 0) {\r\n $('.hiding').addClass('hide');\r\n }\r\n handlePuzzle(cardIndex,translations);\r\n clearInterval(_interval);\r\n }\r\n }\r\n var _interval = setInterval(function () {\r\n generatePuzzle();\r\n }, 300);\r\n\r\n }).catch(function (error) {\r\n HandleError(error.response);\r\n });\r\n $('.main-wrapper .container.puzzle #puzzleContainer').css('display', 'block');\r\n const handlePuzzle = (cardIndex,translations)=> {\r\n (function ($) {\r\n /*\r\n * jqPuzzle - Sliding Puzzles with jQuery\r\n * Version 1.02\r\n * \r\n * Copyright (c) 2008 Ralf Stoltze, http://www.2meter3.de/jqPuzzle/\r\n * Dual-licensed under the MIT and GPL licenses.\r\n */\r\n $.fn.jqPuzzle = function (settings, texts) {\r\n \r\n // default settings\r\n var defaults = {\r\n \r\n rows: 2, // number of rows [3 ... 9]\r\n cols: 2, // number of columns [3 ... 9]\r\n hole: 4, // initial hole position [1 ... rows*columns]\r\n shuffle: false, // initially show shuffled pieces [true|false]\r\n numbers: true, // initially show numbers on pieces [true|false]\r\n language: 'en', // language for gui elements [language code]\r\n \r\n // display additional gui controls\r\n control: {\r\n shufflePieces: true, // display 'Shuffle' button [true|false]\r\n confirmShuffle: true, // ask before shuffling [true|false]\r\n toggleOriginal: true, // display 'Original' button [true|false]\r\n toggleNumbers: true, // display 'Numbers' button [true|false]\r\n counter: true, // display moves counter [true|false]\r\n timer: true, // display timer (seconds) [true|false]\r\n pauseTimer: false // pause timer if 'Original' button is activated \r\n // [true|false]\r\n },\r\n \r\n // perform actions when the puzzle is solved sucessfully\r\n success: {\r\n fadeOriginal: true, // cross-fade original image [true|false]\r\n callback: undefined, // callback a user-defined function [function]\r\n // the function is passed an object as its argument\r\n // which includes the fields 'moves' and 'seconds'\r\n callbackTimeout: 300 // time in ms after which the callback is called\r\n },\r\n \r\n // animation speeds and settings\r\n animation: {\r\n shuffleRounds: 3, // number of shuffle rounds [1 ... ]\r\n shuffleSpeed: 800, // time in ms to perform a shuffle round\r\n slidingSpeed: 200, // time in ms for a single move\r\n fadeOriginalSpeed: 600 // time in ms to cross-fade original image\r\n },\r\n \r\n // additional style information not specified via css\r\n style: {\r\n gridSize: 2, // space between two pieces in px\r\n overlap: true, // if true, adjacent piece borders will overlap\r\n // applies only if gridSize is set to 0\r\n backgroundOpacity: 0.1 // opacity of the original image behind the pieces\r\n // [0 ... 1] (0 means no display)\r\n }\r\n };\r\n \r\n // language localizations\r\n var i18n = {\r\n en: {\r\n shuffleLabel: 'Shuffle',\r\n toggleOriginalLabel: 'Original',\r\n toggleNumbersLabel: 'Numbers',\r\n confirmShuffleMessage: 'Do you really want to shuffle?',\r\n movesLabel: 'moves',\r\n secondsLabel: 'seconds'\r\n },\r\n fr: {\r\n shuffleLabel: 'Mélanger',\r\n toggleOriginalLabel: 'Original',\r\n toggleNumbersLabel: 'Nombres',\r\n confirmShuffleMessage: 'Veux-tu vraiment mélanger?',\r\n movesLabel: 'mouvements',\r\n secondsLabel: 'secondes'\r\n },\r\n de: {\r\n shuffleLabel: 'Mischen',\r\n toggleOriginalLabel: 'Original',\r\n toggleNumbersLabel: 'Nummern',\r\n confirmShuffleMessage: 'Willst du wirklich mischen?',\r\n movesLabel: 'Züge',\r\n secondsLabel: 'Sekunden'\r\n },\r\n pt: {\r\n shuffleLabel: 'Embaralhar',\r\n toggleOriginalLabel: 'Original',\r\n toggleNumbersLabel: 'Numeros',\r\n confirmShuffleMessage: 'Tem certeza que deseja reembralhar?',\r\n movesLabel: 'movimentos',\r\n secondsLabel: 'segundos'\r\n }\r\n };\r\n \r\n // if rows or cols, but no hole was user-defined,\r\n // explicitly set hole position to last piece (bottom right)\r\n if (settings && !settings.hole && (settings.rows || settings.cols)) {\r\n settings.hole = (settings.rows || defaults.rows) * (settings.cols || defaults.cols);\r\n }\r\n \r\n // extend the user-defined settings object with default settings\r\n settings = $.extend(true, {}, defaults, settings);\r\n \r\n // extend the user-defined texts object with current language texts\r\n texts = $.extend((i18n[settings.language] || i18n[defaults.language]), texts);\r\n \r\n // create some handy shortcut variables\r\n var rows = settings.rows,\r\n cols = settings.cols,\r\n hole = settings.hole;\r\n var control = settings.control,\r\n success = settings.success,\r\n animation = settings.animation,\r\n style = settings.style;\r\n \r\n // check settings for valid values\r\n \r\n // keep rows and columns within limits\r\n if (rows < 3 || rows > 9) rows = defaults.rows;\r\n if (cols < 3 || cols > 9) cols = defaults.rows;\r\n \r\n // keep hole position within limits\r\n if ((hole > (rows * cols)) || (hole < 1)) hole = rows * cols;\r\n hole--; // zero-based index\r\n \r\n // animation speed = 0 doesn't work\r\n if (animation.slidingSpeed < 1) animation.slidingSpeed = 1;\r\n if (animation.shuffleSpeed < 1) animation.shuffleSpeed = 1;\r\n if (animation.fadeOriginalSpeed < 1) animation.fadeOriginalSpeed = 1;\r\n \r\n // keep shuffle rounds within limits\r\n if (animation.shuffleRounds < 1) animation.shuffleRounds = 1;\r\n \r\n \r\n // helper functions --------------------------------------------------------\r\n \r\n // checks if the puzzle is solved\r\n var checkSolution = function ($pieces) {\r\n \r\n // iterate over pieces and check each piece\r\n for (var i = 0; i < $pieces.length; i++) {\r\n // since the hole is not saved in the pieces array, \r\n // adjust the index if it is bejond the hole position\r\n // var pieceIndex = (i < hole) ? i : i + 1;\r\n \r\n // check if current position match target (index) position\r\n // if($pieces.eq(i).attr('current') != pieceIndex) return false;\r\n if ($(\"[current='\" + i + \"']\").attr('index') != cardIndex[i]) return false;\r\n }\r\n \r\n return true;\r\n };\r\n \r\n // checks if the puzzle can be solved (pure math ...)\r\n var checkOrder = function (numbersArray) {\r\n var product = 1;\r\n for (var i = 1; i <= (rows * cols - 1); i++) {\r\n for (var j = (i + 1); j <= (rows * cols); j++) {\r\n product *= ((numbersArray[i - 1] - numbersArray[j - 1]) / (i - j));\r\n }\r\n }\r\n return Math.round(product) == 1;\r\n };\r\n \r\n // get the linear index from a row/col pair (zero-based)\r\n var getLinearPosition = function (row, col) {\r\n return parseInt(row) * cols + parseInt(col);\r\n };\r\n \r\n // get the row/col pair from a linear index (zero-based)\r\n var getMatrixPosition = function (index) {\r\n return {\r\n row: (Math.floor(index / cols)),\r\n col: (index % cols)\r\n };\r\n };\r\n \r\n // get the pixel width of a border (internet explorer returns keywords)\r\n // the left side values will be used\r\n var getBorderWidth = function ($element) {\r\n // the reported css value\r\n var property = $element.css('border-left-width');\r\n // a border style must be set to get a valid border width\r\n if ($element.css('border-left-style') != 'none') {\r\n switch (property) {\r\n case 'thin':\r\n return 2;\r\n case 'medium':\r\n return 4;\r\n case 'thick':\r\n return 6;\r\n default:\r\n return parseInt(property) || 0; // parse pixel value\r\n }\r\n }\r\n return 0;\r\n };\r\n \r\n // a reusable timer component\r\n // pass in a timeout interval in ms, after which callback is called\r\n // callback gets passed one argument, the elapsed time is ms\r\n var Timer = function (interval, callback) {\r\n var startTime;\r\n var startPauseTime;\r\n var totalPause = 0;\r\n var timeout;\r\n \r\n var run = function () {\r\n update(new Date().getTime());\r\n timeout = setTimeout(run, interval);\r\n };\r\n \r\n var update = function (now) {\r\n callback(now - totalPause - startTime);\r\n };\r\n \r\n // start the timer\r\n this.start = function () {\r\n if (startTime) return false;\r\n startTime = new Date().getTime();\r\n run();\r\n };\r\n \r\n // stop the timer\r\n this.stop = function () {\r\n if (!startTime) return false;\r\n clearTimeout(timeout);\r\n var now = new Date().getTime();\r\n if (startPauseTime) totalPause += now - startPauseTime;\r\n update(now);\r\n startTime = startPauseTime = undefined;\r\n totalPause = 0;\r\n };\r\n \r\n // pause the timer\r\n this.pause = function () {\r\n if (!startTime || startPauseTime) return false;\r\n clearTimeout(timeout);\r\n startPauseTime = new Date().getTime();\r\n };\r\n \r\n // resume the timer\r\n this.resume = function () {\r\n if (!startPauseTime) return false;\r\n totalPause += new Date().getTime() - startPauseTime;\r\n startPauseTime = undefined;\r\n run();\r\n };\r\n };\r\n \r\n \r\n // apply jqPuzzle to each image element within selection -------------------\r\n \r\n return this.filter('img').each(function () {\r\n var $srcImg = $(this); // source image as jQuery object\r\n var lock = false; // flag if animations are running\r\n var moves = 0; // counter for single moves\r\n var seconds = 0; // counter for seconds after first move\r\n var solved; // flag if the puzzle is solved by the user\r\n var shuffled = settings.shuffle; // flag if the puzzle was shuffled\r\n var timer; // a timer component\r\n \r\n // save the current hole position for further manipulation\r\n var currHole = hole;\r\n \r\n \r\n // create dummy elements to get computed css properties\r\n var $dummyPiece = $('
').addClass('jqp-piece');\r\n var $dummyWrapper = $('
').addClass('jqp-wrapper').append($dummyPiece);\r\n var $dummyGui = $('
')\r\n .attr('class', $srcImg.attr('class') || '') // transfer classes\r\n .addClass('jqPuzzle')\r\n .append($dummyWrapper);\r\n \r\n // replace original image with dummy\r\n $srcImg.replaceWith($dummyGui);\r\n \r\n // assign old image id to dummy\r\n $dummyGui.attr('id', $srcImg.attr('id') || '');\r\n \r\n // get computed css properties of dummy elements\r\n var computedStyles = {\r\n gui: {\r\n border: getBorderWidth($dummyGui),\r\n padding: {\r\n left: parseInt($dummyGui.css('padding-left')) || 0,\r\n right: parseInt($dummyGui.css('padding-right')) || 0,\r\n top: parseInt($dummyGui.css('padding-top')) || 0,\r\n bottom: parseInt($dummyGui.css('padding-bottom')) || 0\r\n }\r\n },\r\n wrapper: {\r\n border: getBorderWidth($dummyWrapper),\r\n padding: parseInt($dummyWrapper.css('padding-left')) || 0\r\n },\r\n piece: {\r\n border: getBorderWidth($dummyPiece)\r\n }\r\n };\r\n \r\n // re-replace dummy elements with original image\r\n $dummyGui.removeAttr('id');\r\n $dummyGui.replaceWith($srcImg);\r\n \r\n \r\n // wait for the image to be loaded, to be able to get its real width/height\r\n $srcImg.one('load', function () {\r\n \r\n // overlap piece borders if there is no margin between pieces\r\n // this way, piece borders will not be doubled\r\n var overlap = (style.gridSize === 0 && style.overlap);\r\n \r\n // total space of piece borders and grid lines, which will cover parts of the image\r\n var coveredWidth = cols * (2 * computedStyles.piece.border) + (cols - 1) * style.gridSize;\r\n var coveredHeight = rows * (2 * computedStyles.piece.border) + (rows - 1) * style.gridSize;\r\n \r\n // recalc if overlap\r\n if (overlap) {\r\n coveredWidth -= (cols - 1) * computedStyles.piece.border;\r\n coveredHeight -= (rows - 1) * computedStyles.piece.border;\r\n }\r\n \r\n // make sure to get the original image size, not scaled values\r\n // in mozilla, width() and height() do not work with hidden elements\r\n $srcImg.css({\r\n width: 'auto',\r\n height: 'auto',\r\n visibility: 'visible'\r\n });\r\n \r\n // pieces width and height, based on original image size\r\n var width = Math.floor(($srcImg.width() - coveredWidth) / cols);\r\n var height = Math.floor(($srcImg.height() - coveredHeight) / rows);\r\n \r\n // reject too small images\r\n if (width < 30 || height < 30) return false;\r\n \r\n // recalc full image width and height to avoid rounding errors\r\n var fullWidth = cols * width + coveredWidth;\r\n var fullHeight = rows * height + coveredHeight;\r\n \r\n // image source path\r\n var imgSrc = $srcImg.attr('src');\r\n \r\n // total width/height of a piece (including piece border and 1 grid size)\r\n var totalPieceWidth = width + 2 * computedStyles.piece.border + style.gridSize;\r\n var totalPieceHeight = height + 2 * computedStyles.piece.border + style.gridSize;\r\n \r\n // handle internet explorer quirks mode box model\r\n var boxModelHack = {\r\n piece: $.boxModel ? 0 : 2 * computedStyles.piece.border,\r\n wrapper: $.boxModel ? 0 : 2 * (computedStyles.wrapper.border + computedStyles.wrapper.padding),\r\n gui: {\r\n width: $.boxModel ? 0 : 2 * computedStyles.gui.border +\r\n computedStyles.gui.padding.left + computedStyles.gui.padding.right,\r\n height: $.boxModel ? 0 : 2 * computedStyles.gui.border +\r\n computedStyles.gui.padding.top + computedStyles.gui.padding.bottom\r\n }\r\n };\r\n \r\n \r\n // helper functions ------------------------------------------------\r\n \r\n // pixel offset of an element, based on matrix position\r\n var getOffset = function (row, col) {\r\n var offset = {\r\n left: computedStyles.wrapper.padding + col * totalPieceWidth,\r\n top: computedStyles.wrapper.padding + row * totalPieceHeight\r\n };\r\n \r\n if (overlap) {\r\n offset.left -= col * computedStyles.piece.border;\r\n offset.top -= row * computedStyles.piece.border;\r\n }\r\n \r\n return offset;\r\n };\r\n \r\n // shuffle pieces\r\n var shuffle = function (rounds, speed) {\r\n \r\n // when speed is defined, the function was triggered by a user event (button click)\r\n if (speed) {\r\n // do nothing, if disabled\r\n if ($shuffleButton.is('.jqp-disabled')) return false;\r\n \r\n // do nothing, if locked\r\n if (lock) return false;\r\n \r\n // ask for confirmation\r\n if (control.confirmShuffle && (moves > 0) &&\r\n !window.confirm(texts.confirmShuffleMessage)) return false;\r\n \r\n lock = true; // set lock\r\n \r\n // if the puzzle is solved\r\n if (solved) {\r\n // reset gui\r\n $gui.removeClass('jqp-solved');\r\n \r\n // fade out original\r\n $background.fadeTo(animation.fadeOriginalSpeed, style.backgroundOpacity, function () {\r\n // opera gets kicked without remove()\r\n $background.remove().prependTo($wrapper);\r\n \r\n // re-enable all buttons\r\n $buttons.removeClass('jqp-disabled');\r\n });\r\n }\r\n }\r\n \r\n // stop the timer\r\n if (timer) timer.stop();\r\n \r\n // reset flag and counters\r\n solved = false;\r\n shuffled = true;\r\n moves = 0;\r\n seconds = 0;\r\n \r\n // reset display\r\n if ($display) $display.removeClass('jqp-disabled');\r\n if ($counter) $counter.val(moves);\r\n if ($timer) $timer.val(seconds);\r\n \r\n var shuffles = [];\r\n var i = 0;\r\n // generate orders for several shuffle rounds\r\n while (i < rounds) {\r\n // create an array for choosing random positions\r\n // based on its lenght, we can select free positions\r\n var choices = [];\r\n for (var j = 0; j < rows * cols; j++) {\r\n choices[j] = j;\r\n }\r\n // remove element on initial hole position\r\n choices.splice(hole, 1);\r\n \r\n shuffles[i] = [];\r\n // generate random numbers\r\n for (var j = 0; j < rows * cols; j++) {\r\n \r\n // but keep hole at initial position\r\n if (j == hole) {\r\n shuffles[i][j] = hole;\r\n continue;\r\n }\r\n \r\n // select a random position based on the length of the choices\r\n var randomIndex = Math.floor(Math.random() * choices.length);\r\n \r\n // save the value at this index as the next number in the current order\r\n shuffles[i][j] = choices[randomIndex];\r\n \r\n // remove this value from the choices array (reducing its length)\r\n choices.splice(randomIndex, 1);\r\n }\r\n \r\n // don't increase i if we are in last round \r\n // and the generated order is not solvable\r\n if (((i + 1) < rounds) || checkOrder(shuffles[i])) i++;\r\n }\r\n \r\n var animCounter = 0; // animation counter for save unlock\r\n \r\n // shuffle pieces in several rounds\r\n for (var i = 0; i < rounds; i++) {\r\n \r\n // set flag for the last round\r\n var lastRound = ((i + 1) == rounds);\r\n \r\n // iterate over the generated orders\r\n // with j being the linear index for the destination order\r\n for (var j = 0; j < shuffles[i].length; j++) {\r\n \r\n // we cannot move the hole\r\n if (j == hole) {\r\n // update hole position\r\n if (lastRound) currHole = hole;\r\n continue;\r\n }\r\n \r\n // the value is the index of the current piece\r\n // in the original, ordered $pieces array\r\n var pieceIndex = shuffles[i][j];\r\n \r\n // since the hole is not saved in the $pieces array, \r\n // adjust the index if it is bejond the hole position\r\n if (pieceIndex > hole) pieceIndex -= 1;\r\n \r\n // get the actual piece to be moved\r\n var $piece = $pieces.eq(pieceIndex);\r\n \r\n // get target position\r\n var target = getMatrixPosition(j);\r\n \r\n // get pixel offset new position\r\n var offset = getOffset(target.row, target.col);\r\n \r\n // update current row/cal in last round\t(ie needs a string)\r\n if (lastRound) {\r\n $piece.attr('current', j.toString());\r\n var expPos = $piece[0].getAttribute('expectedposition'),\r\n emptyTile = (expPos == 1 || expPos == 5) ? translations.ImagePuzzleTitleAccess_copy5 + ' 6.' : '';\r\n (j >= 3) ? $piece.attr('aria-label', emptyTile + translations.ImagePuzzleTitleAccess_copy1 + ' ' + String(j + 1) + ' ' + translations.And + ' ' + translations.ImagePuzzleTitleAccess_copy2 + ' ' + expPos + '. ' + translations.ImagePuzzleTitleAccess_copy3) : $piece.attr('aria-label', emptyTile + translations.ImagePuzzleTitleAccess_copy1 + ' ' + String(j + 1) + ' ' + translations.And + ' ' + translations.ImagePuzzleTitleAccess_copy2 + ' ' + expPos + '. ' + translations.ImagePuzzleTitleAccess_copy4);\r\n }\r\n \r\n // either just set or animate styles\r\n if (speed === undefined) {\r\n $piece.css({\r\n left: offset.left,\r\n top: offset.top\r\n });\r\n } else {\r\n // animate!\r\n $piece.animate({\r\n left: offset.left,\r\n top: offset.top\r\n }, speed, null, function () {\r\n // unlock after last animation in last round\r\n animCounter++;\r\n if (animCounter == animation.shuffleRounds * (rows * cols - 1)) {\r\n lock = false;\r\n animCounter = 0;\r\n }\r\n });\r\n }\r\n }\r\n }\r\n };\r\n \r\n \r\n // create elements -------------------------------------------------\r\n \r\n // create a wrapper for the pieces\r\n var $wrapper = $('
')\r\n .addClass('jqp-wrapper')\r\n .css({\r\n width: fullWidth + boxModelHack.wrapper + 2,\r\n height: fullHeight + boxModelHack.wrapper + 2,\r\n borderWidth: computedStyles.wrapper.border,\r\n padding: computedStyles.wrapper.padding,\r\n margin: 0,\r\n position: 'relative',\r\n overflow: 'hidden',\r\n display: 'block',\r\n visibility: 'inherit'\r\n });\r\n \r\n // create a single piece prototype to be cloned for the actual pieces\r\n var $protoPiece = $('')\r\n .addClass('jqp-piece')\r\n .css({\r\n width: width + boxModelHack.piece + 2,\r\n height: height + boxModelHack.piece + 2,\r\n backgroundImage: 'url(' + imgSrc + ')',\r\n borderWidth: computedStyles.piece.border,\r\n margin: 0,\r\n padding: 0,\r\n position: 'absolute',\r\n overflow: 'hidden',\r\n display: 'block',\r\n visibility: 'inherit',\r\n cursor: 'default'\r\n })\r\n .attr('href', '#')\r\n .append($('')); // will hold the numbers\r\n // create pieces inside wrapper\r\n \r\n var $pieces = $([]),\r\n key = 0; // create an empty jQuery object\r\n for (var i = 0; i < rows; i++) {\r\n for (var j = 0; j < cols; j++) {\r\n var index = getLinearPosition(i, j); // linear index\r\n \r\n // do not create piece at initial hole position\r\n if (index == hole) continue;\r\n \r\n // get piece position offset\r\n var offset = getOffset(i, j);\r\n \r\n // calculate background offset\r\n var bgLeft = -1 * (j * totalPieceWidth + computedStyles.piece.border);\r\n var bgTop = -1 * (i * totalPieceHeight + computedStyles.piece.border);\r\n \r\n // recalc if overlap\r\n if (overlap) {\r\n bgLeft += j * computedStyles.piece.border;\r\n bgTop += i * computedStyles.piece.border;\r\n }\r\n \r\n // create single pieces from prototype\r\n $pieces = $pieces.add($protoPiece.clone()\r\n .css({\r\n left: offset.left,\r\n top: offset.top,\r\n backgroundPosition: (bgLeft + 'px ' + bgTop + 'px')\r\n })\r\n // add expando property to save the current position\r\n .attr('current', String(index)) // ie hack: String()\r\n .attr('index', cardIndex[key])\r\n .attr('href', '#')\r\n .attr('expectedposition', String(index + 1))\r\n .appendTo($wrapper)\r\n // add number to inner span\r\n .children().text(index + 1).end()\r\n );\r\n key = key + 1;\r\n }\r\n }\r\n \r\n // initially shuffle pieces\r\n if (settings.shuffle) shuffle(1);\r\n \r\n // create background (original image) inside wrapper\r\n var $background = $('
')\r\n .css({\r\n width: fullWidth,\r\n height: fullHeight,\r\n left: computedStyles.wrapper.padding,\r\n top: computedStyles.wrapper.padding,\r\n backgroundImage: 'url(' + imgSrc + ')',\r\n borderWidth: 0,\r\n margin: 0,\r\n padding: 0,\r\n position: 'absolute',\r\n opacity: style.backgroundOpacity\r\n })\r\n .prependTo($wrapper);\r\n \r\n // create controls which will hold the buttons and the display\r\n var $controls = $('
')\r\n .addClass('jqp-controls')\r\n .css({\r\n visibility: 'inherit',\r\n display: 'block',\r\n position: 'static'\r\n });\r\n \r\n var $shuffleButton, $originalButton, $numbersButton;\r\n \r\n // create a button prototype to be cloned for the actual buttons\r\n var $protoButton = $('').css('cursor', 'default');\r\n \r\n // create shuffle button\r\n if (control.shufflePieces) {\r\n $shuffleButton = $protoButton.clone()\r\n .text(texts.shuffleLabel)\r\n .appendTo($controls);\r\n }\r\n \r\n // create toggle original button\r\n if (control.toggleOriginal) {\r\n $originalButton = $protoButton.clone()\r\n .text(texts.toggleOriginalLabel)\r\n .appendTo($controls);\r\n }\r\n \r\n // create toggle numbers button\r\n if (control.toggleNumbers) {\r\n $numbersButton = $protoButton.clone()\r\n .text(texts.toggleNumbersLabel)\r\n .appendTo($controls);\r\n // immediately toggle button, if numbers are initially shown\r\n if (settings.numbers) $numbersButton.addClass('jqp-toggle');\r\n }\r\n \r\n // keep a reference to all buttons for convenience\r\n var $buttons = $controls.children();\r\n \r\n var $display, $counter, $timer;\r\n if (control.counter || control.timer) {\r\n \r\n // create wrapper for counter/timer\r\n $display = $('')\r\n .css('cursor', 'default')\r\n .appendTo($controls);\r\n \r\n // create a text field prototype to be cloned for actual text fields\r\n var $protoField = $('')\r\n .val(0)\r\n .css({\r\n width: '5ex',\r\n cursor: 'default'\r\n })\r\n .attr('readonly', 'readonly');\r\n \r\n // create counter component\r\n if (control.counter) $counter = $protoField.clone()\r\n .appendTo($display)\r\n .after(texts.movesLabel + ' ');\r\n \r\n // create timer component\r\n if (control.timer) $timer = $protoField.clone()\r\n .appendTo($display)\r\n .after(texts.secondsLabel);\r\n \r\n // disable display if the puzzle is not shuffled yet\r\n if (!settings.shuffle) $display.addClass('jqp-disabled');\r\n }\r\n \r\n // add link to jqPuzzle homepage\r\n var $credits = $('')\r\n // .text('jqPuzzle')\r\n // .attr('href', 'http://www.2meter3.de/jqPuzzle/')\r\n // .css({\r\n // \t'float': 'right',\r\n // \tfontFamily: 'Verdana, Arial, Helvetica, sans-serif',\r\n // \tfontSize: '9px',\r\n // \tlineHeight: '12px',\r\n // \ttextDecoration: 'none',\r\n // \tcolor: '#FFFFFF',\r\n // \tbackgroundColor: '#777777',\r\n // \tbackgroundImage: 'none',\r\n // \tborderBottom: '1px dotted #FFFFFF',\r\n // \tpadding: '1px 3px 2px',\r\n // \tmarginRight: computedStyles.wrapper.border,\r\n // \tposition: 'static',\r\n // \tdisplay: 'inline',\r\n // \tvisibility: 'inherit'\r\n // });\r\n \r\n // panel which holds controls and credits, used for height() calculations\r\n var $panel = $('
')\r\n .css({\r\n width: fullWidth + 2 * (computedStyles.wrapper.padding + computedStyles.wrapper.border),\r\n position: 'absolute',\r\n display: 'block',\r\n visibility: 'inherit', //'visible',\r\n margin: '0px',\r\n padding: '0px',\r\n backgroundColor: 'transparent'\r\n })\r\n .append($credits).append($controls);\r\n $('.correct-img, .correct-img img').css({\r\n height: fullHeight + 2 * (computedStyles.wrapper.padding + computedStyles.wrapper.border) + boxModelHack.gui.height - 10,\r\n })\r\n // full gui (including wrapper and panel)\r\n var $gui = $('
')\r\n .attr('class', $srcImg.attr('class') || '') // transfer classes\r\n .addClass('jqPuzzle') // always assign class jqPuzzle\r\n .css({\r\n width: fullWidth + 2 * (computedStyles.wrapper.padding + computedStyles.wrapper.border) + boxModelHack.gui.width,\r\n height: fullHeight + 2 * (computedStyles.wrapper.padding + computedStyles.wrapper.border) + boxModelHack.gui.height,\r\n textAlign: 'left',\r\n overflow: 'hidden',\r\n display: 'block'\r\n })\r\n .append($wrapper).append($panel);\r\n \r\n // replace source image with jqPuzzle\r\n $srcImg.replaceWith($gui);\r\n \r\n // assign source image id to jqPuzzle\r\n var id = $srcImg.attr('id');\r\n if (id) $gui.attr('id', id);\r\n \r\n // opera has strange effect when calling hide() and val() before \r\n // the elements are attached to the dom\r\n // hide numbers\r\n if (!settings.numbers) $pieces.children().hide();\r\n // fill inputs\r\n if ($display) $display.children('input').val(0);\r\n \r\n // now, after everything is rendered, recalc gui height\r\n var guiHeight = $gui.height();\r\n var panelHeight = $panel.height();\r\n \r\n $gui.height($gui.height() + $panel.height());\r\n \r\n \r\n // attach events ---------------------------------------------------\r\n \r\n // prevent text selection\r\n if ($.browser.msie) $gui[0].onselectstart = function () {\r\n return false;\r\n };\r\n else $gui.mousedown(function () {\r\n return false;\r\n });\r\n \r\n // button press on mousedown\r\n $buttons.mousedown(function () {\r\n if (!$(this).is('.jqp-disabled')) $(this).addClass('jqp-down');\r\n });\r\n $buttons.mouseout(function () {\r\n $(this).removeClass('jqp-down');\r\n });\r\n $buttons.mouseup(function () {\r\n $(this).removeClass('jqp-down');\r\n });\r\n \r\n // swap pieces on click\r\n $pieces.on('click touchend', function (event) {\r\n //$pieces.click(function (event) {\r\n event.preventDefault();\r\n // do nothing, if locked\r\n if (lock) return false;\r\n \r\n // do nothing, if solved after being shuffled\r\n if (solved) return false;\r\n \r\n lock = true; // set lock\r\n var $piece = $(this);\r\n $piece.focus();\r\n // get current position from expando\r\n var current = $piece.attr('current');\r\n var expPos = $piece[0].getAttribute('expectedposition');\r\n var currPos = $piece[0].getAttribute('current');\r\n // get current matrix positions for piece and hole\r\n var source = getMatrixPosition(current);\r\n var dest = getMatrixPosition(currHole);\r\n \r\n // only swap pieces adjacent to the hole\r\n if (Math.abs(source.row - dest.row) + Math.abs(source.col - dest.col) != 1) {\r\n lock = false;\r\n $piece.attr('aria-label', translations.ImagePuzzleTitleAccess_copy1 + ' ' + String(parseInt(currPos) + 1) + ' ' + translations.And + ' ' + translations.ImagePuzzleTitleAccess_copy2 + ' ' + expPos + '.' + translations.ImagePuzzleTitleAccess_copy4);\r\n \r\n return false;\r\n }\r\n else {\r\n $piece.attr('aria-label', translations.ImagePuzzleTitleAccess_copy);\r\n }\r\n // get offset for the new position\r\n var offset = getOffset(dest.row, dest.col);\r\n \r\n // update piece expando and current hole position\r\n $piece.attr('current', String(currHole)); // ie hack: String()\r\n \r\n var positions = [],\r\n blankPos = [];\r\n for (var i = 0; i < 6; i++) {\r\n $pieces.each(function (j) {\r\n if (i == $pieces[j].getAttribute('current')) {\r\n positions.push(i);\r\n return;\r\n //currPos[j] = $pieces[j].getAttribute('current');\r\n // expPos[j] = $pieces[j].getAttribute('expectedposition');\r\n //need later// $pieces[j].setAttribute('aria-label', 'The current position of tile is ' + String(parseInt($pieces[j].getAttribute('current'))+1) + ' and it should be at position ' + $pieces[j].getAttribute('expectedposition') + '.');\r\n }\r\n });\r\n if (positions.indexOf(i) < 0) { //identifying blank position\r\n blankPos.push(i);\r\n }\r\n \r\n }\r\n setTimeout(() => {\r\n for (var k = 0; k < 5; k++) {\r\n var currVal = (parseInt($pieces[k].getAttribute('current')) + 1),\r\n expVal = $pieces[k].getAttribute('expectedposition'),\r\n emptyTile = (expVal == 1 || expVal == 5) ? translations.ImagePuzzleTitleAccess_copy5 + ' ' + parseInt(blankPos[0] + 1) + '. ' : '',\r\n movVal = ((blankPos[0] == 0 && ($pieces[k].getAttribute('current') == '1' || $pieces[k].getAttribute('current') == '2')) || (blankPos[0] == 1 && ($pieces[k].getAttribute('current') == '0' || $pieces[k].getAttribute('current') == '3')) || (blankPos[0] == 2 && ($pieces[k].getAttribute('current') == '0' || $pieces[k].getAttribute('current') == '3' || $pieces[k].getAttribute('current') == '4')) || (blankPos[0] == 3 && ($pieces[k].getAttribute('current') == '1' || $pieces[k].getAttribute('current') == '2' || $pieces[k].getAttribute('current') == '5')) || (blankPos[0] == 4 && ($pieces[k].getAttribute('current') == '2' || $pieces[k].getAttribute('current') == '5')) || (blankPos[0] == 5 && ($pieces[k].getAttribute('current') == '3' || $pieces[k].getAttribute('current') == '4'))) ? translations.ImagePuzzleTitleAccess_copy3 : translations.ImagePuzzleTitleAccess_copy4;\r\n \r\n $pieces[k].setAttribute('aria-label', emptyTile + translations.ImagePuzzleTitleAccess_copy1 + ' ' + currVal + ' ' + translations.And + ' ' + translations.ImagePuzzleTitleAccess_copy2 + ' ' + expVal + '. ' + movVal);\r\n }\r\n }, 1500);\r\n \r\n currHole = current;\r\n // increase moves counter only if the puzzle was shuffled\r\n if (shuffled) moves++;\r\n \r\n // update counter field\r\n if ($counter) $counter.val(moves);\r\n \r\n // start timer, if needed\r\n if (moves == 1) {\r\n // initiate timer with update function\r\n if (!timer) timer = new Timer(333, function (ms) {\r\n seconds = Math.floor(ms / 1000);\r\n if ($timer) $timer.val(seconds);\r\n });\r\n timer.start();\r\n }\r\n \r\n // animate!\r\n $piece.animate({\r\n left: offset.left,\r\n top: offset.top\r\n }, animation.slidingSpeed, null, function () {\r\n // only check if the puzzle was shuffled\r\n if (shuffled) {\r\n // check if the puzzle is solved\r\n solved = checkSolution($pieces);\r\n if (solved) {\r\n if (timer) timer.stop();\r\n shuffled = false;\r\n $gui.addClass('jqp-solved');\r\n window.setTimeout(finishGame, 100);\r\n } else {\r\n lock = false\r\n \r\n }\r\n } else lock = false;\r\n });\r\n });\r\n \r\n // shuffle pieces on click\r\n if (control.shufflePieces) $shuffleButton.click(function () {\r\n shuffle(animation.shuffleRounds, animation.shuffleSpeed);\r\n });\r\n \r\n // toggle original on click\r\n if (control.toggleOriginal) $originalButton.click(function () {\r\n // do nothing, if disabled\r\n if ($originalButton.is('.jqp-disabled')) return false;\r\n \r\n // do nothing, if locked\r\n if (lock) return false;\r\n \r\n lock = true; // set lock\r\n \r\n if ($originalButton.is('.jqp-toggle')) {\r\n // re-enable other buttons\r\n if (control.shufflePieces) $shuffleButton.removeClass('jqp-disabled');\r\n if (control.toggleNumbers) $numbersButton.removeClass('jqp-disabled');\r\n \r\n $originalButton.removeClass('jqp-toggle');\r\n \r\n // fade out original\r\n $background.fadeTo(animation.fadeOriginalSpeed, style.backgroundOpacity, function () {\r\n $(this).prependTo($wrapper);\r\n \r\n // resume timer\r\n if (control.pauseTimer && timer) timer.resume();\r\n \r\n lock = false;\r\n });\r\n } else {\r\n // disable other buttons\r\n if (control.shufflePieces) $shuffleButton.addClass('jqp-disabled');\r\n if (control.toggleNumbers) $numbersButton.addClass('jqp-disabled');\r\n \r\n $originalButton.addClass('jqp-toggle');\r\n \r\n // pause timer\r\n if (control.pauseTimer && timer) timer.pause();\r\n \r\n // fade in original\r\n $background.appendTo($wrapper).fadeTo(animation.fadeOriginalSpeed, 1, function () {\r\n \r\n lock = false;\r\n });\r\n }\r\n return false; // prevent default action\r\n });\r\n \r\n // toggle numbers on click\r\n if (control.toggleNumbers) $numbersButton.click(function () {\r\n // do nothing, if disabled\r\n if ($numbersButton.is('.jqp-disabled')) return false;\r\n \r\n if ($numbersButton.is('.jqp-toggle')) {\r\n $numbersButton.removeClass('jqp-toggle');\r\n $pieces.children().hide();\r\n } else {\r\n $numbersButton.addClass('jqp-toggle');\r\n $pieces.children().show();\r\n }\r\n });\r\n \r\n \r\n // work to do when the puzzle is solved\r\n var finishGame = function () {\r\n if (success.fadeOriginal) {\r\n // disable buttons\r\n if (control.toggleOriginal) $originalButton.addClass('jqp-disabled');\r\n if (control.toggleNumbers) $numbersButton.addClass('jqp-disabled');\r\n \r\n // fade in original\r\n $background.appendTo($wrapper).fadeTo(animation.fadeOriginalSpeed, 1.0, function () {\r\n lock = false; // reset lock\r\n solutionCallback(); // call user callback\r\n });\r\n } else {\r\n lock = false; // reset lock\r\n solutionCallback(); // call user callback\t\r\n }\r\n };\r\n \r\n // call a user-defined callback after a timeout, when the puzzle is solved\r\n var solutionCallback = function () {\r\n if ($.isFunction(success.callback)) {\r\n setTimeout(function () {\r\n success.callback({\r\n moves: moves,\r\n seconds: seconds\r\n });\r\n \r\n }, success.callbackTimeout);\r\n }\r\n // console.log(seconds);\r\n var puzzleMoves = moves;\r\n $('.ng-isolate-scope').removeClass(\"hide-loader\");\r\n API.postPuzzle({\r\n answers: answers,\r\n TieBreakAnswer: puzzleMoves\r\n },\r\n webStorageService.getSessionData(\"servToken\")\r\n )\r\n .then(function (data) {\r\n // accessService.setPermission('limit', true);\r\n if (data.response.RedirectUrl.toLowerCase().indexOf('thankyou') > -1) {\r\n \r\n var winnerObj = {\r\n winner: 97,\r\n isExtendedPhase: data.response.ExtendedPhase\r\n }\r\n \r\n dataLayers().imagePuzzleEntryComplete();\r\n // dataLayers().orderData(97);\r\n webStorageService.setSessionData('createPageState', 'Thankyou');\r\n }\r\n \r\n history.push({ pathname: data.response.RedirectUrl, state: winnerObj });\r\n pageScroll();\r\n })\r\n .catch(function (error) {\r\n HandleError(error.response);\r\n });\r\n };\r\n \r\n }); // img load\r\n \r\n // unfortunately, image load does not fire consistently across browsers\r\n // (especially with cached images)\r\n // therefore, check image.load periodically (bah, brute force...)\r\n var interval = setInterval(function () {\r\n if ($srcImg[0].complete) {\r\n clearInterval(interval);\r\n $srcImg.trigger('load');\r\n }\r\n }, 333);\r\n \r\n /*\r\n var interval;\r\n (function waitForImage($image) {\r\n if(!$image[0].complete) {\r\n interval = setInterval(function() {\r\n waitForImage($image);\r\n }, 100);\r\n } else {\r\n clearInterval(interval);\r\n $image.trigger('load');\r\n }\r\n })($srcImg);*/\r\n \r\n // ie shows some inconsistencies with img load and cached images\r\n // fortunately, in this cases img.complete is true from the beginning\r\n //if($.browser.msie && $srcImg[0] && $srcImg[0].complete) $srcImg.trigger('load');\r\n \r\n \r\n }).end(); // return full collection to allow chaining\r\n };\r\n \r\n // automagically apply jqPuzzle to all images with class 'jqPuzzle'\r\n $(function () {\r\n \r\n $('img.jqPuzzle').each(function () {\r\n \r\n // define an additional micro format (to be used as a class name)\r\n \r\n /* Syntax: .jqp[-LANGUAGE]-rROWS-cCOLS[-hHOLE][-sSHUFFLE_ROUNDS][-FLAGS]\r\n * \r\n * Flags: S - initially shuffle pieces\r\n * N - initially hide numbers\r\n * A - hide 'Shuffle' button\r\n * B - hide 'Original' button\r\n * C - hide 'Numbers' button\r\n * D - hide 'moves' display\r\n * E - hide 'seconds' display\r\n */\r\n var microFormat = /\\bjqp(-[a-z]{2})?-r(\\d)-c(\\d)(-h(\\d+))?(-s(\\d+))?(-[A-Z]+)?\\b/;\r\n \r\n // execute regex and save matches\r\n var match = microFormat.exec(this.className);\r\n \r\n // build settings object from micro format\r\n var settings;\r\n if (match) {\r\n settings = {\r\n rows: parseInt(match[2]),\r\n cols: parseInt(match[3]),\r\n hole: parseInt(match[5]) || null,\r\n shuffle: match[8] && match[8].indexOf('S') != -1,\r\n numbers: match[8] ? match[8].indexOf('N') == -1 : true,\r\n language: match[1] && match[1].substring(1)\r\n };\r\n \r\n if (match[7]) {\r\n settings.animation = {};\r\n settings.animation.shuffleRounds = parseInt(match[7]);\r\n }\r\n \r\n if (match[8] && match[8].search(/[ABCDE]/) != -1) {\r\n settings.control = {};\r\n settings.control.shufflePieces = match[8].indexOf('A') == -1;\r\n settings.control.toggleOriginal = match[8].indexOf('B') == -1;\r\n settings.control.toggleNumbers = match[8].indexOf('C') == -1;\r\n settings.control.counter = match[8].indexOf('D') == -1;\r\n settings.control.timer = match[8].indexOf('E') == -1;\r\n }\r\n }\r\n // call the plugin\r\n $(this).jqPuzzle(settings);\r\n });\r\n });\r\n \r\n })($);\r\n var jQuery = $;\r\n jQuery.browser = {};\r\n (function () {\r\n jQuery.browser.msie = false;\r\n jQuery.browser.version = 0;\r\n if (navigator.userAgent.match(/MSIE ([0-9]+)\\./)) {\r\n jQuery.browser.msie = true;\r\n jQuery.browser.version = RegExp.$1;\r\n }\r\n })();\r\n $(function () {\r\n var mySettings = {\r\n rows: 3, // number of rows [3 ... 9] \r\n cols: 2, // number of columns [3 ... 9] \r\n hole: 6, // initial hole position [1 ... rows*columns] \r\n shuffle: true, // initially show shuffled pieces [true|false] \r\n numbers: false, // initially show numbers on pieces [true|false] \r\n // display additional gui controls \r\n control: {\r\n shufflePieces: false, // display 'Shuffle' button [true|false] \r\n confirmShuffle: false, // ask before shuffling [true|false] \r\n toggleOriginal: false, // display 'Original' button [true|false] \r\n toggleNumbers: false, // display 'Numbers' button [true|false] \r\n counter: false, // display moves counter [true|false] \r\n timer: false, // display timer (seconds) [true|false] \r\n pauseTimer: false // pause timer if 'Original' button is activated \r\n // [true|false] \r\n },\r\n }\r\n $('#puzzle-box').jqPuzzle(mySettings);\r\n });\r\n }\r\n \r\n return (\r\n <>\r\n \r\n
\r\n

\r\n
{translations.CoreKelloggs_PuzzlePageTitle}
\r\n
\r\n

{translations.ImagePuzzleStepsHeading}

\r\n

{translations.ImagePuzzleSteps1}

\r\n

{translations.ImagePuzzleSteps2}

\r\n

{translations.ImagePuzzleSteps3}

\r\n
\r\n
\r\n

{translations.ImagePuzzleTitleCopy}

\r\n

{translations.ImagePuzzleTitleCopy1}

\r\n

{translations.ImagePuzzleTitleCopy2}

\r\n
\r\n
\r\n
\r\n {translations.CoreKelloggs_PuzzlePageTitle}\r\n
\r\n {translations.CoreKelloggs_PuzzlePageTitle}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default Puzzle;","import React, { useContext } from 'react';\r\nimport { Redirect, useLocation } from \"react-router-dom\";\r\nimport * as webStorageService from '../Utility/WebStorageFactory';\r\nimport { locale, MetaTags } from '../Utility/Global';\r\nimport JsonContext from '../Utility/JsonProvider';\r\nimport dataLayers from '../Utility/DataLayers';\r\nimport Button from '../Partials/Button';\r\n\r\nconst Thankyou = () => {\r\n const { translations } = useContext(JsonContext);\r\n const location = useLocation();\r\n let pageState = webStorageService.getSessionData('createPageState');\r\n // pageState = 'Thankyou';\r\n\r\n if (pageState == '' || pageState == undefined || pageState == null) {\r\n window.location = '/' + locale + '/Home';\r\n } else if (pageState != 'Thankyou') {\r\n return \r\n }\r\n\r\n webStorageService.removeSessionData('createPageState');\r\n document.querySelector('body').setAttribute('pagename', 'Thankyou');\r\n\r\n var winnerCode = location.state.winner,\r\n // var winnerCode = 1,\r\n isExtendedPhase = location.state.isExtendedPhase;\r\n // isExtendedPhase = false;\r\n var winCategory, WinPageDesc, WinPageHeading, WinPageSubHeading, WinPageDesc1, refCode, WinPageDesc2,refNumberCopy;\r\n if (isExtendedPhase) {\r\n winCategory = 'extended'\r\n WinPageHeading = translations.PrizeDrawThankyouHeading;\r\n WinPageDesc = translations.PrizeDrawThankyouDesc;\r\n WinPageDesc1 = translations.PrizeDrawThankyouDesc1;\r\n dataLayers().orderData(97);\r\n }\r\n\r\n\r\n var setThankyouContent = function () {\r\n switch (winnerCode) {\r\n case 0:\r\n case -16:\r\n winCategory = 'Lose';\r\n WinPageHeading = translations.Sorry;\r\n WinPageDesc = translations.NotAWinnerPageHeading;\r\n WinPageDesc1 = translations.NotAWinnerPageDesc;\r\n break;\r\n case 1:\r\n winCategory = 'Samsung Sero';\r\n WinPageHeading = translations.Tier1SmartTv_heading +\" \" + translations.Tier1SmartTv_heading1;\r\n WinPageDesc = translations.Tier1SmartTv_desc;\r\n WinPageDesc1 = translations.Tier1SmartTv_desc1;\r\n refNumberCopy = translations.ReferenceNumberCopy\r\n refCode = location.state.refCode;\r\n // refCode = 'XXXXX';\r\n WinPageDesc2 = translations.Tier1SmartTv_desc2\r\n break;\r\n case 97:\r\n winCategory = 'Crossword';\r\n WinPageHeading = translations.ThankYouPageHeading;\r\n WinPageDesc = translations.ThankYouPageDescription;\r\n WinPageDesc1 = translations.ThankYouPageDescription1;\r\n break;\r\n default:\r\n // $location.path(lang + '/Home');\r\n break;\r\n }\r\n }\r\n if (!isExtendedPhase) {\r\n setThankyouContent();\r\n }\r\n return (\r\n <>\r\n \r\n
\r\n {WinPageHeading &&

}\r\n
{WinPageHeading}
\r\n {WinPageDesc &&

}\r\n {WinPageDesc1 &&

}\r\n {refNumberCopy &&

}\r\n {refCode &&

}\r\n {WinPageDesc2 &&

}\r\n
\r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default Thankyou;","import React, { useContext } from 'react';\r\nimport { Redirect } from \"react-router-dom\";\r\nimport * as webStorageService from '../Utility/WebStorageFactory';\r\nimport { locale, MetaTags } from '../Utility/Global';\r\nimport JsonContext from '../Utility/JsonProvider';\r\nimport dataLayers from '../Utility/DataLayers';\r\nimport Button from '../Partials/Button';\r\nconst Limit = () => {\r\n const { translations } = useContext(JsonContext);\r\n let pageState = webStorageService.getSessionData('createPageState');\r\n // pageState = 'Limit';\r\n if (pageState == '' || pageState == undefined || pageState == null) {\r\n window.location = '/' + locale + '/Home';\r\n } else if (pageState != 'Limit') {\r\n return \r\n }\r\n\r\n document.querySelector('body').setAttribute('pagename', 'Limit');\r\n\r\n let globalLimit = webStorageService.getSessionData('limitType'),\r\n // globalLimit = 'GlobalRedemptionLimit',\r\n limitPageHeading,\r\n limitPageDesc,\r\n limitPageDesc1;\r\n const _intervalG = setInterval(function () {\r\n logout();\r\n }, 300);\r\n function logout() {\r\n if (window.gigya != undefined) {\r\n window.gigya.accounts.logout();\r\n clearInterval(_intervalG);\r\n }\r\n }\r\n\r\n if (globalLimit == 'GlobalRedemptionLimit') {\r\n dataLayers().winLimit();\r\n limitPageHeading = translations.Sorry;\r\n limitPageDesc = translations.WinLimit;\r\n } else if (globalLimit == 'MaxUserAttemptLimit') {\r\n limitPageDesc = translations.CoreKelloggs_MaximumEntryLimit;\r\n limitPageDesc1 = translations.CoreKelloggs_MaximumEntryLimit_teamPringles;\r\n } else {\r\n dataLayers().entryLimit();\r\n limitPageHeading = translations.Sorry;\r\n limitPageDesc = translations.DailyLimit;\r\n limitPageDesc1 = translations.DailyLimitDesc;\r\n }\r\n return (\r\n <>\r\n \r\n
\r\n {limitPageHeading &&

{limitPageHeading}

}\r\n {limitPageDesc &&

}\r\n {limitPageDesc1 &&

}\r\n
\r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default Limit;","import React, { useContext } from 'react';\r\nimport { Redirect } from \"react-router-dom\";\r\nimport * as webStorageService from '../Utility/WebStorageFactory';\r\nimport { locale, MetaTags } from '../Utility/Global';\r\nimport JsonContext from '../Utility/JsonProvider';\r\nimport dataLayers from '../Utility/DataLayers';\r\nimport Button from '../Partials/Button';\r\nconst Error = () => {\r\n const { translations } = useContext(JsonContext);\r\n\r\n let pageState = webStorageService.getSessionData('createPageState');\r\n pageState = 'Error';\r\n if (pageState == '' || pageState == undefined || pageState == null) {\r\n window.location = '/' + locale + '/Home';\r\n } else if (pageState != 'Error') {\r\n return \r\n }\r\n\r\n\r\n document.querySelector('body').setAttribute('pagename', 'Error');\r\n let ErrorKey = webStorageService.getSessionData('ErrorKey') ? webStorageService.getSessionData('ErrorKey') : translations.CoreKelloggs_GeneralErrorMsg,\r\n ErrorCode = webStorageService.getSessionData('ErrorCode') ? webStorageService.getSessionData('ErrorCode') : '',\r\n titleError = ErrorKey,\r\n hideErrHead = (ErrorCode == 140) ? true : false;\r\n dataLayers().errorCodeEvent(\"pringles.com\",ErrorCode)\r\n return (\r\n <>\r\n \r\n
\r\n

{translations.CoreKelloggs_ErrorPageHeading}

\r\n

\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default Error;","import React, { useContext, useState } from 'react';\r\nimport { locale, MetaTags } from '../Utility/Global';\r\nimport JsonContext from '../Utility/JsonProvider';\r\n\r\nconst FAQ = () => {\r\n const { translations } = useContext(JsonContext);\r\n document.querySelector('body').setAttribute('pagename', 'FAQ');\r\n\r\n let currentlang = locale.toLowerCase(),\r\n defaultFaq,\r\n clicked_country;\r\n //defaultFaq=translations.Faq;\r\n switch (currentlang) {\r\n case 'ro_ro':\r\n defaultFaq = translations.FaqRomania;\r\n clicked_country = 'Romania';\r\n break;\r\n // case 'en_gr':\r\n // defaultFaq = translations.FaqCyprus;\r\n // clicked_country = 'Cyprus';\r\n // break;\r\n // // case 'fr_be':\r\n // // defaultFaq=translations.FaqBelgium;\r\n // // clicked_country='Belgium';\r\n // // break;\r\n default:\r\n defaultFaq = translations.Faq;\r\n }\r\n \r\n const [ faqContent, setFaqContent ] = useState(defaultFaq);\r\n const [ clickedCountry, setClickedCountry ] = useState(clicked_country?clicked_country:'');\r\n \r\n const show_hide = function (key) {\r\n clicked_country = key.trim();\r\n setClickedCountry(clicked_country);\r\n // faqContent = translations['Faq' + key];\r\n setFaqContent(translations['Faq' + key]);\r\n\r\n /* if(clicked_country === 'Luxembourgh'){\r\n faqContent=translations['FaqLuxembourg'];\r\n } else if(clicked_country === 'Belgium') {\r\n faqContent=translations['FaqBelgium'];\r\n } else if(clicked_country === 'Malta') {\r\n faqContent=translations['FaqMalta'];\r\n } else if(clicked_country === 'Iceland') {\r\n faqContent=translations['FaqIceland'];\r\n } else{\r\n faqContent=translations['Faq'+key];\r\n }*/\r\n };\r\n return (\r\n <>\r\n \r\n
\r\n
\r\n {\r\n (currentlang != 'el_gr' && currentlang != 'az_az') &&

{translations.CoreKelloggs_FooterFaq}

\r\n }\r\n {\r\n currentlang == 'el_gr' &&

ΣΥΧΝΕΣ ΕΡΩΤΗΣΕΙΣ (FAQ)

\r\n }\r\n {\r\n currentlang == 'ro_ro' &&
    \r\n {\r\n currentlang == 'ro_ro' &&
  1. show_hide('Romania')}\r\n className={clickedCountry !== 'Romania' ? 'active inactive': 'active'}\r\n >{translations.LabelRomania}
  2. \r\n }\r\n {\r\n currentlang == 'ro_ro' &&
  3. show_hide('Moldova')}\r\n className={clickedCountry === 'Moldova' ? 'active':''}\r\n >{translations.LabelMoldova}
  4. \r\n }\r\n {/* {\r\n currentlang == 'en_gr' &&
  5. show_hide('Cyprus')}\r\n className={clickedCountry !== 'Cyprus' ? 'active inactive': 'active'}\r\n >{translations.LabelCyprus}
  6. \r\n }\r\n {\r\n currentlang == 'en_gr' &&
  7. show_hide('Malta')}\r\n className={clickedCountry === 'Malta' ? 'active':''}\r\n >{translations.LabelMalta}
  8. \r\n }\r\n {\r\n currentlang == 'en_gr' &&
  9. {translations.LabelIceland}
  10. \r\n }\r\n {\r\n currentlang == 'fr_be' &&
  11. {translations.LabelBelgium}
  12. \r\n }\r\n {\r\n currentlang == 'en_gr' &&
  13. {translations.LabelLuxembourg}
  14. \r\n } */}\r\n\r\n
\r\n } \r\n {/* */}\r\n

\r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default FAQ;","import React, { useContext, useState } from 'react';\r\nimport { locale, MetaTags } from '../Utility/Global';\r\nimport JsonContext from '../Utility/JsonProvider';\r\n\r\nconst Terms = () => {\r\n const { translations } = useContext(JsonContext);\r\n\r\n document.querySelector('body').setAttribute('pagename', 'TERMS');\r\n\r\n let currentlang = locale.toLowerCase(),\r\n defaultTerms,\r\n clicked_country;\r\n // defaultTerms=translations.Tnc;\r\n switch (currentlang) {\r\n case 'ro_ro':\r\n defaultTerms = translations.TncRomania;\r\n clicked_country = 'Romania';\r\n break;\r\n // // case 'fr_be':\r\n // // defaultTerms=translations.TncBelgium;\r\n // // clicked_country='Belgium';\r\n // // break;\r\n default:\r\n defaultTerms = translations.Tnc;\r\n }\r\n const [ tncContent, setTncContent ] = useState(defaultTerms);\r\n const [ clickedCountry, setClickedCountry ] = useState(clicked_country?clicked_country:'');\r\n const show_hide = function (key) {\r\n clicked_country = key.trim();\r\n setClickedCountry(clicked_country);\r\n // tncContent = translations['Tnc' + key];\r\n setTncContent(translations['Tnc' + key]);\r\n /* if(clickedCountry === 'Luxembourgh'){\r\n tncContent=translations['TncLuxembourgh'];\r\n } else if(clickedCountry === 'Belgium') {\r\n tncContent=translations['TncBelgium'];\r\n } else if(clickedCountry === 'Malta') {\r\n tncContent=translations['TncMalta'];\r\n } else if(clickedCountry === 'Iceland') {\r\n tncContent=translations['TncIceland'];\r\n } else{\r\n tncContent=translations['Tnc'+key];\r\n }*/\r\n };\r\n return (\r\n <>\r\n \r\n
\r\n
\r\n {\r\n (currentlang != 'el_gr' && currentlang != 'az_az') &&

{translations.CoreKelloggs_FooterTerms}

\r\n }\r\n {\r\n currentlang == 'el_gr' &&

ΟΡΟΙ ΚΑΙ ΠΡΟΫΠΟΘΕΣΕΙΣ

\r\n }\r\n {\r\n currentlang == 'ro_ro' &&
    \r\n {\r\n currentlang == 'ro_ro' &&
  1. show_hide('Romania')}>\r\n {translations.LabelRomania}
  2. \r\n \r\n }\r\n {\r\n currentlang == 'ro_ro' &&
  3. show_hide('Moldova')}\r\n className={clickedCountry === 'Moldova' ? 'active': ' '}\r\n > {translations.LabelMoldova}
  4. \r\n }\r\n {/* {\r\n currentlang == 'en_gr' &&
  5. {translations.LabelIceland}
  6. \r\n }\r\n {\r\n currentlang == 'fr_be' &&
  7. {translations.LabelBelgium}
  8. \r\n }\r\n {\r\n currentlang == 'en_gr' &&
  9. {translations.LabelLuxembourg}
  10. \r\n } */}\r\n
\r\n }\r\n

\r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default Terms;","import {$} from '../../Utility/Global'\r\n\r\n$(window).on('load',function(){\r\n var serviceURL = (typeof window.JS_ServiceURL !== 'undefined')?window.JS_ServiceURL:'https://services.kelloggs.com',\r\n base = window.location.pathname.split('/')[1],\r\n siteURL = window.location.origin + (base.length > 0 ? \"/\" + base : \"\");\r\n\t\tif (siteURL.indexOf('stage.') >= 0) {\r\n /*commented stage as per mindtree ref#1076472*/\r\n serviceURL = \"//gammastage.services.kelloggs.com\";\r\n }\r\n $.ajax({\r\n url: serviceURL+'/bin/ccquerybuilder.jsonp?propertyName=sitepath&propertyValue='+siteURL,\r\n dataType: 'jsonp',\r\n //jsonp: false,\r\n jsonpCallback: 'getAlert',\r\n success: function(data){\r\n //console.log(data); \r\n },\r\n complete: function() {\r\n //alert('complete');\r\n },\r\n error: function (request, error, errorThrown) {\r\n //console.log(error, errorThrown);\r\n }\r\n });\r\n});\r\nwindow.getAlert = function(jsonObject) {\r\n var json = JSON.parse(jsonObject), i, msg = \"\";\r\n for (i=0;i  '+shortMsg+'
';\r\n }\r\n if(document.getElementById('error_wp').innerHTML!=null)\r\n document.getElementById('error_wp').innerHTML=msg;\r\n}","import React, { useContext,useState } from 'react';\r\nimport { Route, Switch, Redirect } from \"react-router-dom\";\r\n\r\nimport { locale } from './Components/Utility/Global';\r\n\r\nimport Header from './Components/Partials/Header';\r\nimport Footer from './Components/Partials/Footer';\r\n\r\nimport Closed from './Components/Screens/Closed';\r\nimport Comingsoon from './Components/Screens/Comingsoon';\r\nimport Splitter from './Components/Screens/Splitter';\r\nimport Home from './Components/Screens/Home';\r\nimport Register from './Components/Screens/Register';\r\nimport Forgotpassword from './Components/Screens/Forgotpassword';\r\nimport Recoverpassword from './Components/Screens/Recoverpassword';\r\nimport Batchcode from './Components/Screens/Batchcode';\r\nimport Movie from './Components/Screens/Movie';\r\nimport Wordsearch from './Components/Screens/Wordsearch';\r\nimport Puzzle from './Components/Screens/Puzzle';\r\nimport Thankyou from './Components/Screens/Thankyou';\r\nimport Limit from './Components/Screens/Limit';\r\nimport Error from './Components/Screens/Error';\r\nimport FAQ from './Components/Screens/FAQ';\r\nimport Terms from './Components/Screens/Terms';\r\nimport JsonContext from './Components/Utility/JsonProvider';\r\nimport './Components/Utility/vendor/criticalcom';\r\nimport PromotionState from './Components/Utility/PromotionState';\r\n\r\nimport './Styles/celebrate2022.scss';\r\nvar $ = require('jquery');\r\nvar jQuery = require('jquery');\r\n\r\nwindow.$ = $;\r\nwindow.jQuery = $;\r\n\r\nconst App = () => {\r\n const { translations, settings } = useContext(JsonContext);\r\n const [loaded, setLoaded] = useState(false);\r\n const loadApp = (translations !== \"\" && translations !== undefined && settings !== \"\" && settings !== undefined) ? true : false;\r\n const faqTnc = (window.location.href.toLowerCase()).indexOf('faq') > -1 || (window.location.href.toLowerCase()).indexOf('terms') > -1;\r\n if(loadApp && !loaded){\r\n setLoaded(true);\r\n const {initPage} = PromotionState(settings,translations);\r\n initPage();\r\n sessionStorage.removeItem('btnObj');\r\n sessionStorage.removeItem('shippingBtnObj');\r\n sessionStorage.removeItem('receiptObj');\r\n }\r\n\r\n return (\r\n <>\r\n {loadApp && loaded &&\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n {\r\n locale != 'be' && locale != 'ch' && !faqTnc &&