{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/assets/javascript/app/preloader.js","webpack:///./src/assets/javascript/app/utilities/index.js","webpack:///./src/assets/javascript/app/overlay.js","webpack:///./src/assets/javascript/app/intro.js","webpack:///./src/assets/javascript/app/question.js","webpack:///./src/assets/javascript/app/results.js","webpack:///./src/assets/javascript/app/application.js","webpack:///./src/assets/javascript/app/utilities/selectors.js","webpack:///./src/assets/javascript/app/index.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","Preloader","params","timeline","preloadCount","extension","extension2","self","this","preloaderElement","document","getElementById","loaderFill","querySelector","loaderBar","loadingText","overlay","Modernizr","on","console","log","images","imageFile","imageTag","Image","src","addEventListener","fileLoaded","fileError","startLoading","loaderTween","percent","Math","round","kill","TweenLite","to","width","toString","onComplete","checkPreloadCount","TimelineLite","closeComplete","Application","tweenLength","opacity","tweenStagger","style","display","ironSelector","preloaderClosed","qs","selector","scope","qsArray","nodeList","querySelectorAll","arr","trackEvent","category","action","label","dataLayer","completedEvt","undefined","ga","Overlay","_singletonInstance","initialize","importantOverlay","importantOverlayBg","importantOverlayClose","openImportantWindow","id","setAttribute","classList","add","clientHeight","closeImportantWindow","removeEventListener","remove","setTimeout","compareOverlay","compareOverlayClose","setCompareIrons","iron1","iron2","optimal","alternative","compareOverlayCallback","openCompareOverlay","cb","closeCompareWindow","whyOverlay","whyOverlayBg","whyOverlayClose","openWhyWindow","closeWhyWindow","mpiOverlay","mpiOverlayBg","mpiOverlayClose","mpiOverlayValue","openMPIWindow","mpi","textContent","closeMPIWindow","forEach","btn","innerText","attrOverlay","attrOverlayBg","attrOverlayClose","openAttrWindow","closeAttrWindow","getAttribute","resultsOverlay","resultsOverlayBg","resultsOverlayClose","resultsForm","emailInput","emailSuccess","submitButton","primaryId","alternateId","primaryFIid","alternateFIid","e","preventDefault","submitResultsForm","showResultsError","setInitialEmailValue","email","showResultsSuccess","innerHTML","openSendResults","closeSendResults","el","Intro","IntroElement","content","contentImage","contentCTA","startButton","introTitle","introClosed","open","set","play","startButtonClicked","event","close","timeScale","Question","elementId","QuestionElement","type","background","progress","text","importantButton","controls","answers","slider","nextButton","previousButton","selectedAnswerId","sliderTween1","sliderTween2","sliderTween3","questionClosed","selectedDirection","fillProgressBar","openComplete","onCompleteScope","x","initialzeImportantButton","initializeAnswers","initializePreviousButton","initializeNextButton","initializeSlider","answer","answerClicked","disableAnswers","input","ua","navigator","userAgent","indexOf","isInternetExplorer","sliderChanged","sliderImage1","sliderImage2","sliderImage3","units","index","delayLength","importantButtonClicked","previousClicked","nextClicked","disableControls","resetAnswers","target","val","parseInt","storeAnswer","clearProgressBar","Results","videoEl","mainEl","ResultsElement","primaryTitle","alternativeTitle","logo","description","btnWhy","learnMore","moreButton","fittingButton","clubImage","clubVideo","playVideoButton","closeVideoButton","mpiButtonWrap","mpiButton","homeButton","sendResultsButton","ctaButtons","compareButton","showAlternativeButton","showPrimaryButton","mpiElement","nextPage","ironId","quickHideComplete","quickShow","reset","setResults","partner","variable","vars","location","search","substring","split","pair","getQueryStringVariable","sortedScores","calculateResults","min","max","getMPI","irons","getElementsByClassName","homeClicked","sendResultsClicked","alternativeClicked","primaryClicked","compareClicked","whyClicked","playVideoClicked","moreClicked","fittingClicked","override","parent","href","quickHide","pause","currentTime","closeVideoClicked","completeProgressBar","preloader","intro","question1","question2","question3","question4","question5","question6","questions","results","progressBarSegments","currentState","currentQuestion","totalQuestions","progressIndex","score_t100","score_t150","score_t200","score_t350","score_t400","score_620cb","score_620mb","mpi_t100","mpi_t150","mpi_t200","mpi_t350","mpi_t400","mpi_620cb","mpi_620mb","resizeFrame","scrollToTopOfPage","direction","answerId","answerElement","scores","keys","sort","a","b","clubId","resetProgressBar","scrollTo","top","behavior","getHeight","height","innerWidth","requestAnimationFrame","postMessage","xmlhttp","XMLHttpRequest","onreadystatechange","readyState","responseText","JSON","parse","Message","resutlsHook","formData","FormData","terms","optin","checked","append","send"],"mappings":"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","file":"bundle.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"./dist/assets/javascript/\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([121,\"vendor\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import Application from \"./application\"\r\n\r\nlet Preloader = function (params) {\r\n\t// console.log('Preloader initalizing ' + Application.tweenLength);\r\n\r\n\t/**\r\n\t * PRELOAD STUFF\r\n\t */\r\n\tlet preloadTotal = 0\r\n\tlet preloadCount = 0\r\n\tlet extension = \".png\"\r\n\tlet extension2 = \".jpg\"\r\n\tlet images = []\r\n\tlet self = this\r\n\tlet preloaderElement = document.getElementById(\"preloader\")\r\n\tlet loaderFill = preloaderElement.querySelector(\".preloader-fill\")\r\n\tlet loaderBar = preloaderElement.querySelector(\".preloader-bar\")\r\n\tlet loadingText = preloaderElement.querySelector(\".preloader-label\")\r\n\tlet overlay = preloaderElement.querySelector(\".preloader-overlay\")\r\n\tlet timeline\r\n\t// Wait for modernizr to determine webp support before we start the loading sequence\r\n\tModernizr.on(\"webp\", function (result) {\r\n\t\t// console.log('webp support = ' + result);\r\n\t\tif (result) {\r\n\t\t\textension = \".webp\"\r\n\t\t\textension2 = \".webp\"\r\n\t\t}\r\n\t\t// temp beta hack\r\n\t\t// extension = \".png\";\r\n\t\tconsole.log(\"extension is \" + extension)\r\n\t\tself.images = [\r\n\t\t\t\"common/arrow-right\" + extension,\r\n\t\t\t\"common/arrow-left\" + extension,\r\n\t\t\t\"common/slider.png\",\r\n\t\t\t\"common/slider-bar.png\",\r\n\t\t\t\"intro/bg\" + extension2,\r\n\t\t\t\"question-1/bg\" + extension2,\r\n\t\t\t\"question-3/bg\" + extension2,\r\n\t\t\t\"question-4/bg\" + extension2,\r\n\t\t\t\"question-5/bg\" + extension2,\r\n\t\t\t\"question-6/bg\" + extension2,\r\n\t\t\t\"results/bg\" + extension2,\r\n\t\t\t\"intro/content\" + extension,\r\n\t\t\t\"intro/cta-radial-bg\" + extension,\r\n\t\t\t\"question-2/content\" + extension,\r\n\t\t\t\"question-3/content\" + extension,\r\n\t\t\t\"question-4/slider-1\" + extension,\r\n\t\t\t\"question-4/slider-2\" + extension,\r\n\t\t\t\"question-4/slider-3\" + extension,\r\n\t\t\t\"question-5/slider-1\" + extension,\r\n\t\t\t\"question-5/slider-2\" + extension,\r\n\t\t\t\"question-5/slider-3\" + extension,\r\n\t\t\t\"question-6/slider-1\" + extension,\r\n\t\t\t\"question-6/slider-2\" + extension,\r\n\t\t\t\"question-6/slider-3\" + extension,\r\n\t\t\t\"results/club-t100\" + extension,\r\n\t\t\t\"results/club-t150\" + extension,\r\n\t\t\t\"results/club-t200\" + extension,\r\n\t\t\t\"results/club-t350\" + extension,\r\n\t\t\t\"results/club-620cb\" + extension,\r\n\t\t\t\"results/club-620mb\" + extension,\r\n\t\t\t\"icons/help-48dp.svg\",\r\n\t\t\t\"icons/info-48dp.svg\",\r\n\t\t\t\"icons/chevron-right-48dp.svg\",\r\n\t\t\t\"icons/chevron-left-48dp.svg\",\r\n\t\t\t\"icons/play-48dp.svg\",\r\n\t\t\t\"icons/cancel-48dp.svg\",\r\n\t\t\t\"results/logo-t100.webp\",\r\n\t\t\t\"results/logo-t150.webp\",\r\n\t\t\t\"results/logo-t200.webp\",\r\n\t\t\t\"results/logo-t350.webp\",\r\n\t\t\t\"results/logo-620cb.webp\",\r\n\t\t\t\"results/logo-620mb.webp\"\r\n\t\t]\r\n\t\tstartLoading()\r\n\t})\r\n\r\n\tfunction startLoading() {\r\n\t\tconsole.log(\"startLoading \", self.images)\r\n\t\tlet imageFile\r\n\t\tlet imageTag\r\n\t\tfor (let i = 0; i < self.images.length; i++) {\r\n\t\t\timageFile = self.images[i]\r\n\t\t\timageTag = new Image()\r\n\t\t\timageTag.src = \"../assets/images/\" + imageFile\r\n\t\t\timageTag.addEventListener(\"load\", fileLoaded)\r\n\t\t\timageTag.addEventListener(\"error\", fileError)\r\n\t\t}\r\n\t}\r\n\r\n\tlet percent = 0\r\n\tlet loaderTween\r\n\tfunction fileLoaded() {\r\n\t\tconsole.log(\"image loaded\")\r\n\t\tpreloadCount++\r\n\t\t//update loader bar\r\n\t\tpercent = Math.round((preloadCount / preloadTotal) * 100)\r\n\t\tif (percent > 100) {\r\n\t\t\tpercent = 100\r\n\t\t}\r\n\t\tif (loaderTween !== undefined && loaderTween !== null) {\r\n\t\t\tloaderTween.kill()\r\n\t\t}\r\n\t\tloaderTween = TweenLite.to(loaderFill, 1, { width: percent.toString() + \"%\", onComplete: checkPreloadCount })\r\n\t}\r\n\r\n\tfunction fileError() {\r\n\t\tconsole.log(\"\")\r\n\t\tconsole.log(\"ERROR loading file, proceeding with app experience anyway...\")\r\n\t\tconsole.log(\"\")\r\n\t\t// comment the rest of this function out to stop the app when an image doesn't load,\r\n\t\t// but the app should still be usable without most image files, so we will let it proceed...\r\n\t\tpreloadCount++\r\n\t\t//update loader bar\r\n\t\tpercent = Math.round((preloadCount / preloadTotal) * 100)\r\n\t\tif (percent > 100) {\r\n\t\t\tpercent = 100\r\n\t\t}\r\n\t\tif (loaderTween !== undefined && loaderTween !== null) {\r\n\t\t\tloaderTween.kill()\r\n\t\t}\r\n\t\tloaderTween = TweenLite.to(loaderFill, 1, { width: percent.toString() + \"%\", onComplete: checkPreloadCount })\r\n\t}\r\n\r\n\tfunction checkPreloadCount() {\r\n\t\t//check for all images\r\n\t\tif (preloadCount >= preloadTotal) {\r\n\t\t\t// console.log('everything is loaded');\r\n\t\t\t// showIntro();\r\n\t\t\tclosePreloader()\r\n\t\t}\r\n\t}\r\n\r\n\tfunction closePreloader() {\r\n\t\ttimeline = new TimelineLite({ onComplete: closeComplete })\r\n\t\ttimeline.to([loaderBar, loadingText], Application.tweenLength, { opacity: 0 })\r\n\t\ttimeline.to(overlay, Application.tweenLength, { opacity: 0 }, \"-=\" + Application.tweenStagger.toString())\r\n\t\t// loaderTween = TweenLite.to([loaderBar, loadingText], Application.tweenLength, {opacity: 0});\r\n\t\t// loaderTween2 = TweenLite.to(overlay, Application.tweenLength, {opacity: 0, delay: Application.tweenStagger, onComplete: closeComplete});\r\n\t}\r\n\r\n\tfunction closeComplete() {\r\n\t\tloaderTween.kill()\r\n\t\tloaderTween = null\r\n\t\ttimeline.kill()\r\n\t\ttimeline = null\r\n\t\tpreloaderElement.style.display = \"none\"\r\n\t\t// window.intro.open();\r\n\t\twindow.ironSelector.preloaderClosed()\r\n\t}\r\n}\r\n\r\nexport default Preloader\r\n","/**\r\n * querySelector wrapper\r\n *\r\n * @param {string} selector Selector to query\r\n * @param {Element} [scope] Optional scope element for the selector\r\n */\r\nexport function qs(selector, scope) {\r\n return (scope || document).querySelector(selector);\r\n}\r\n\r\nexport function qsArray (selector, scope) {\r\n let nodeList = (scope || document).querySelectorAll(selector);\r\n let arr = [];\r\n for(let i = 0; i < nodeList.length; i++) {\r\n arr.push(nodeList[i]);\r\n }\r\n return arr;\r\n}\r\n\r\n/**\r\n * addEventListener wrapper\r\n *\r\n * @param {Element|Window} target Target Element\r\n * @param {string} type Event name to bind to\r\n * @param {Function} callback Event callback\r\n * @param {boolean} [capture] Capture the event\r\n */\r\nexport function $on(target, type, callback, capture) {\r\n target.addEventListener(type, callback, !!capture);\r\n}\r\n\r\n/**\r\n * Attach a handler to an event for all elements matching a selector.\r\n *\r\n * @param {Element} target Element which the event must bubble to\r\n * @param {string} selector Selector to match\r\n * @param {string} type Event name\r\n * @param {Function} handler Function called when the event bubbles to target\r\n * from an element matching selector\r\n * @param {boolean} [capture] Capture the event\r\n */\r\n// export function $delegate(target, selector, type, handler, capture) {\r\n// const dispatchEvent = event => {\r\n// const targetElement = event.target;\r\n// const potentialElements = target.querySelectorAll(selector);\r\n// let i = potentialElements.length;\r\n//\r\n// while (i--) {\r\n// if (potentialElements[i] === targetElement) {\r\n// handler.call(targetElement, event);\r\n// break;\r\n// }\r\n// }\r\n// };\r\n//\r\n// $on(target, type, dispatchEvent, !!capture);\r\n// }\r\n\r\n/**\r\n * Returns a function, that, as long as it continues to be invoked, will not\r\n * be triggered. The function will be called after it stops being called for\r\n * N milliseconds. If `immediate` is passed, trigger the function on the\r\n * leading edge, instead of the trailing.\r\n *\r\n * @param {Function} func to be executed on debounce\r\n * @param {number} wait time in milliseconds\r\n * @param {boolean} immediate boolean\r\n *\r\n * */\r\nexport function debounce(func, wait, immediate) {\r\n let timeout;\r\n return function() {\r\n let context = this, args = arguments;\r\n let later = function() {\r\n timeout = null;\r\n if (!immediate) func.apply(context, args);\r\n };\r\n let callNow = immediate && !timeout;\r\n clearTimeout(timeout);\r\n timeout = setTimeout(later, wait);\r\n if (callNow) func.apply(context, args);\r\n };\r\n}\r\n\r\n/*!\r\n* Microsoft Internet Explorer Browser Test\r\n* */\r\nexport function isInternetExplorer() {\r\n let ua = window.navigator.userAgent;\r\n\r\n let msie = ua.indexOf('MSIE ');\r\n if (msie > 0) {\r\n return true;\r\n // IE 10 or older => return version number\r\n // return parseInt(ua.substring(msie + 5, ua.indexOf('.', msie)), 10);\r\n }\r\n\r\n var trident = ua.indexOf('Trident/');\r\n if (trident > 0) {\r\n return true;\r\n // IE 11 => return version number\r\n // let rv = ua.indexOf('rv:');\r\n // return parseInt(ua.substring(rv + 3, ua.indexOf('.', rv)), 10);\r\n }\r\n\r\n // other browser\r\n return false;\r\n}\r\n\r\n/*!\r\n * Microsoft Edge Browser Test\r\n * */\r\nexport function isEdge() {\r\n let ua = window.navigator.userAgent;\r\n\r\n let edge = ua.indexOf('Edge/');\r\n if (edge > 0) {\r\n return true;\r\n // // Edge (IE 12+) => return version number\r\n // return parseInt(ua.substring(edge + 5, ua.indexOf('.', edge)), 10);\r\n }\r\n\r\n // other browser\r\n return false;\r\n}\r\n\r\n/*\r\n * Google Analytic tracking function\r\n * */\r\n\r\nexport function trackEvent(category, action, label, value)\r\n{\r\n\r\n if (typeof dataLayer !== 'undefined')\r\n {\r\n var completedEvt = { 'event': 'GAEvent', 'eventCategory': category, 'eventAction': action, 'eventLabel': label, 'UA Event Value' : value };\r\n dataLayer.push(completedEvt);\r\n }\r\n\r\n else if (window.ga !== undefined && window.ga !== null)\r\n window.ga('send', 'event', category, action, label, value);\r\n // console.log('event: ' + category + \", \" + action + ', ' + label + ', ' + value);\r\n}\r\n\r\n\r\n/*\r\n * Check for a query string variable and return the value if it exists, false if it doesn't exist\r\n * */\r\n\r\nexport function getQueryStringVariable(variable) {\r\n var query = window.location.search.substring(1);\r\n var vars = query.split(\"&\");\r\n for (var i = 0; i < vars.length; i++) {\r\n var pair = vars[i].split(\"=\");\r\n if (pair[0] == variable) { return pair[1]; }\r\n }\r\n return (false);\r\n}","import {qs, qsArray} from './utilities/index';\r\n\r\nlet Overlay = function () {\r\n if (Overlay.prototype._singletonInstance) {\r\n return Overlay.prototype._singletonInstance;\r\n }\r\n Overlay.prototype._singletonInstance = this;\r\n\r\n this.initialize();\r\n}\r\n\r\nOverlay.prototype.initialize = function () {\r\n\r\n let self = this;\r\n\r\n let importantOverlay = document.getElementById('important-overlay');\r\n let importantOverlayBg = qs('.overlay-bg', importantOverlay);\r\n let importantOverlayClose = qs('.close-button', importantOverlay);\r\n\r\n this.openImportantWindow = function (id) {\r\n importantOverlay.setAttribute('data-question-id', id);\r\n importantOverlay.classList.add('is-active');\r\n importantOverlay.clientHeight;\r\n importantOverlay.classList.add('is-visible');\r\n importantOverlayBg.addEventListener('click', this.closeImportantWindow);\r\n importantOverlayClose.addEventListener('click', this.closeImportantWindow);\r\n };\r\n\r\n this.closeImportantWindow = function () {\r\n importantOverlayBg.removeEventListener('click', this.closeImportantWindow);\r\n importantOverlayClose.removeEventListener('click', this.closeImportantWindow);\r\n importantOverlay.classList.remove('is-visible');\r\n setTimeout(function() {\r\n importantOverlay.classList.remove('is-active');\r\n }, 300);\r\n }\r\n\r\n let compareOverlay = document.getElementById('compare-overlay');\r\n // let compareOverlayBg = qs('.overlay-bg', compareOverlay);\r\n let compareOverlayClose = qs('.close-button', compareOverlay);\r\n\r\n this.setCompareIrons = function(iron1, iron2) {\r\n let optimal = qs('.is-optimal', compareOverlay);\r\n let alternative = qs('.is-alternative', compareOverlay);\r\n if (optimal) {\r\n optimal.classList.remove('is-optimal');\r\n alternative.classList.remove('is-alternative');\r\n }\r\n optimal = qs('[data-iron=\"' + iron1 + '\"]', compareOverlay);\r\n alternative = qs('[data-iron=\"' + iron2 + '\"]', compareOverlay);\r\n optimal.classList.add('is-optimal');\r\n alternative.classList.add('is-alternative');\r\n }\r\n\r\n let compareOverlayCallback = null;\r\n this.openCompareOverlay = function (cb) {\r\n compareOverlayCallback = cb;\r\n compareOverlay.classList.add('is-active');\r\n compareOverlay.clientHeight;\r\n compareOverlay.classList.add('is-visible');\r\n compareOverlayClose.addEventListener('click', this.closeCompareWindow);\r\n }\r\n\r\n this.closeCompareWindow = function () {\r\n compareOverlayClose.removeEventListener('click', this.closeCompareWindow);\r\n compareOverlay.classList.remove('is-visible');\r\n setTimeout(function() {\r\n compareOverlay.classList.remove('is-active');\r\n compareOverlayCallback();\r\n compareOverlayCallback = null;\r\n }, 300);\r\n }\r\n\r\n let whyOverlay = document.getElementById('why-overlay');\r\n let whyOverlayBg = qs('.overlay-bg', whyOverlay);\r\n let whyOverlayClose = qs('.close-button', whyOverlay);\r\n\r\n this.openWhyWindow = function (id) {\r\n whyOverlay.setAttribute('data-iron-id', id);\r\n whyOverlay.classList.add('is-active');\r\n whyOverlay.clientHeight;\r\n whyOverlay.classList.add('is-visible');\r\n whyOverlayBg.addEventListener('click', this.closeWhyWindow);\r\n whyOverlayClose.addEventListener('click', this.closeWhyWindow);\r\n };\r\n\r\n this.closeWhyWindow = function () {\r\n whyOverlayBg.removeEventListener('click', this.closeWhyWindow);\r\n whyOverlayClose.removeEventListener('click', this.closeWhyWindow);\r\n whyOverlay.classList.remove('is-visible');\r\n setTimeout(function() {\r\n whyOverlay.classList.remove('is-active');\r\n }, 300);\r\n }\r\n\r\n let mpiOverlay = document.getElementById('mpi-overlay');\r\n let mpiOverlayBg = qs('.overlay-bg', mpiOverlay);\r\n let mpiOverlayClose = qs('.close-button', mpiOverlay);\r\n let mpiOverlayValue = qs('.mpi-value', mpiOverlay);\r\n\r\n this.openMPIWindow = function (mpi) {\r\n mpiOverlayValue.textContent = mpi;\r\n mpiOverlay.classList.add('is-active');\r\n mpiOverlay.clientHeight;\r\n mpiOverlay.classList.add('is-visible');\r\n mpiOverlayBg.addEventListener('click', this.closeMPIWindow);\r\n mpiOverlayClose.addEventListener('click', this.closeMPIWindow);\r\n };\r\n\r\n this.closeMPIWindow = function () {\r\n mpiOverlayBg.removeEventListener('click', this.closeMPIWindow);\r\n mpiOverlayClose.removeEventListener('click', this.closeMPIWindow);\r\n mpiOverlay.classList.remove('is-visible');\r\n setTimeout(function() {\r\n mpiOverlay.classList.remove('is-active');\r\n }, 300);\r\n }\r\n\r\n let mpiButtons = qsArray('.mpi-button');\r\n mpiButtons.forEach(function (btn) {\r\n let mpi = qs('.mpi-button-value', btn);\r\n btn.addEventListener('click', function() {\r\n self.openMPIWindow(mpi.innerText);\r\n });\r\n });\r\n\r\n let attrOverlay = document.getElementById('attribute-overlay');\r\n let attrOverlayBg = qs('.overlay-bg', attrOverlay);\r\n let attrOverlayClose = qs('.close-button', attrOverlay);\r\n\r\n this.openAttrWindow = function (id) {\r\n attrOverlay.setAttribute('data-attribute-id', id);\r\n attrOverlay.classList.add('is-active');\r\n attrOverlay.clientHeight;\r\n attrOverlay.classList.add('is-visible');\r\n attrOverlayBg.addEventListener('click', this.closeAttrWindow);\r\n attrOverlayClose.addEventListener('click', this.closeAttrWindow);\r\n };\r\n\r\n this.closeAttrWindow = function () {\r\n attrOverlayBg.removeEventListener('click', this.closeAttrWindow);\r\n attrOverlayClose.removeEventListener('click', this.closeAttrWindow);\r\n attrOverlay.classList.remove('is-visible');\r\n setTimeout(function() {\r\n attrOverlay.classList.remove('is-active');\r\n }, 300);\r\n }\r\n\r\n let attrButtons = qsArray('.overlay-attribute-btn');\r\n attrButtons.forEach(function (btn) {\r\n btn.addEventListener('click', function() {\r\n self.openAttrWindow(btn.getAttribute('data-attribute'));\r\n });\r\n });\r\n\r\n let resultsOverlay = document.getElementById('send-results-overlay');\r\n let resultsOverlayBg = qs('.overlay-bg', resultsOverlay);\r\n let resultsOverlayClose = qsArray('.close-button', resultsOverlay);\r\n let resultsForm = qs('form', resultsOverlay);\r\n let emailInput = resultsForm.querySelector('input#email');\r\n let emailSuccess = resultsOverlay.querySelector('#success-email');\r\n let submitButton = resultsForm.querySelector('#submit');\r\n self.primaryId = '';\r\n self.alternateId = '';\r\n self.primaryFIid = '';\r\n self.alternateFIid = '';\r\n // let self = this;\r\n\r\n resultsForm.addEventListener('submit', function (e) {\r\n debugger;\r\n e.preventDefault();\r\n if(submitButton.getAttribute('aria-disabled') === 'false')\r\n {\r\n console.log('send results submitted ', emailInput.value);\r\n\r\n if (emailInput.value === '') {\r\n return;\r\n }\r\n window.submitResultsForm(emailInput.value, self.primaryId, self.alternateId, self.primaryFIid, self.alternateFIid);\r\n submitButton.setAttribute('aria-disabled', 'true');\r\n //submitButton.disabled = true;\r\n submitButton.classList.add('disabled');\r\n }\r\n }, true);\r\n\r\n emailInput.addEventListener('input', function (e) {\r\n console.log('email changed ' + emailInput.value)\r\n if (emailInput.value === '' && submitButton.getAttribute('aria-disabled') === 'false') {\r\n // console.log('disabled submit button');\r\n submitButton.classList.add('disabled');\r\n submitButton.setAttribute('aria-disabled', 'true');\r\n } else if (emailInput.value !== '' && submitButton.getAttribute('aria-disabled') === 'true') {\r\n submitButton.setAttribute('aria-disabled', 'false');\r\n submitButton.classList.remove('disabled');\r\n // console.log('enabled submit button');\r\n }\r\n })\r\n\r\n this.showResultsError = function () {\r\n resultsOverlay.setAttribute('data-step-id', 'error');\r\n }\r\n\r\n this.setInitialEmailValue = function (email) {\r\n emailInput.value = email\r\n if (emailInput.value !== '' && submitButton.getAttribute('aria-disabled') === 'true') {\r\n submitButton.setAttribute('aria-disabled', 'false');\r\n submitButton.classList.remove('disabled');\r\n // console.log('enabled submit button');\r\n }\r\n }\r\n\r\n this.showResultsSuccess = function () {\r\n emailSuccess.innerHTML = emailInput.value;\r\n resultsOverlay.setAttribute('data-step-id', 'success');\r\n }\r\n\r\n this.openSendResults = function (id, primaryId, alternateId, primaryFIid, alternateFIid) {\r\n console.log('Overlay.openSendResults ' + id + ', ' + primaryId + ', ' + alternateId);\r\n self.primaryId = primaryId;\r\n self.alternateId = alternateId;\r\n self.primaryFIid = primaryFIid;\r\n self.alternateFIid = alternateFIid;\r\n resultsOverlay.setAttribute('data-step-id', id);\r\n resultsOverlay.classList.add('is-active');\r\n resultsOverlay.clientHeight;\r\n resultsOverlay.classList.add('is-visible');\r\n // submitButton.disabled = false;\r\n // submitButton.classList.remove('disabled');\r\n if (emailInput.value === '' && submitButton.getAttribute('aria-disabled') === 'false') {\r\n // console.log('disabled submit button');\r\n submitButton.classList.add('disabled');\r\n //submitButton.disabled = true;\r\n submitButton.setAttribute('aria-disabled', 'true');\r\n }\r\n resultsOverlayBg.addEventListener('click', this.closeSendResults);\r\n resultsOverlayClose.forEach(function(el) {\r\n el.addEventListener('click', self.closeSendResults);\r\n });\r\n }\r\n\r\n this.closeSendResults = function () {\r\n resultsOverlayBg.removeEventListener('click', this.closeSendResults);\r\n resultsOverlayClose.forEach(function(el){\r\n el.removeEventListener('click', self.closeSendResults);\r\n });\r\n resultsOverlay.classList.remove('is-visible');\r\n setTimeout(function() {\r\n resultsOverlay.classList.remove('is-active');\r\n }, 300);\r\n }\r\n}\r\n\r\nexport default Overlay;\r\n","import Application from \"./application\"\r\nimport { trackEvent } from \"./utilities/index\"\r\nimport Overlay from \"./overlay\"\r\n\r\nlet Intro = function (params) {\r\n\t// console.log('Intro initalizing ' + params);\r\n\r\n\t/**\r\n\t *\r\n\t */\r\n\tlet self = this\r\n\tlet IntroElement = document.getElementById(\"intro\")\r\n\tlet content = IntroElement.querySelector(\".content\")\r\n\tlet contentImage = IntroElement.querySelector(\".content-image\")\r\n\tlet contentCTA = IntroElement.querySelector(\".content-cta\")\r\n\tlet startButton = IntroElement.querySelector(\".start-button\")\r\n\tlet introTitle = IntroElement.querySelector(\".content-header\")\r\n\tlet timeline\r\n\tlet overlay = new Overlay()\r\n\r\n\tthis.open = function () {\r\n\t\tTweenLite.set([introTitle, contentCTA, contentImage], { opacity: 0 })\r\n\t\tcontent.style.display = \"block\"\r\n\t\tIntroElement.style.display = \"block\"\r\n\t\ttimeline = new TimelineLite()\r\n\t\ttimeline.to(IntroElement, Application.tweenLength, { opacity: 1 })\r\n\t\ttimeline.to(introTitle, Application.tweenLength, { opacity: 1 })\r\n\t\ttimeline.to(contentImage, Application.tweenLength, { opacity: 1 }, Application.tweenStagger)\r\n\t\ttimeline.to(contentCTA, Application.tweenLength, { opacity: 1 }, Application.tweenStagger)\r\n\t\ttimeline.play()\r\n\t\tstartButton.addEventListener(\"click\", self.startButtonClicked)\r\n\t\t// temp\r\n\t\t// overlay.setCompareIrons('t200', 't350');\r\n\t\t// overlay.openCompareOverlay();\r\n\t}\r\n\r\n\tthis.startButtonClicked = function (event) {\r\n\t\t// console.log('Intro.startButtonClicked');\r\n\t\tself.close()\r\n\t\ttrackEvent(\"intro\", \"start\")\r\n\t}\r\n\r\n\tthis.close = function () {\r\n\t\t// console.log('close ' + self);\r\n\t\tstartButton.removeEventListener(\"click\", self.startButtonClicked)\r\n\t\ttimeline.kill()\r\n\t\ttimeline = new TimelineLite({ onComplete: closeComplete })\r\n\t\ttimeline.to(contentCTA, Application.tweenLength, { opacity: 0 })\r\n\t\ttimeline.to(contentImage, Application.tweenLength, { opacity: 0 }, Application.tweenStagger)\r\n\t\ttimeline.to(introTitle, Application.tweenLength, { opacity: 0 }, Application.tweenStagger)\r\n\t\ttimeline.to(IntroElement, Application.tweenLength, { opacity: 0 }, Application.tweenStagger)\r\n\t\ttimeline.timeScale(1.5)\r\n\t\ttimeline.play()\r\n\t}\r\n\r\n\tfunction closeComplete() {\r\n\t\t// console.log('closeComplete ' + self);\r\n\t\ttimeline.kill()\r\n\t\ttimeline = null\r\n\t\tcontent.style.display = \"none\"\r\n\t\tIntroElement.style.display = \"none\"\r\n\t\twindow.ironSelector.introClosed()\r\n\t}\r\n}\r\n\r\nexport default Intro\r\n","// import TweenLite from './vendor/TweenLite';\r\n// import { qs, qsArray } from './utilities/selectors';\r\nimport { qs, qsArray, isInternetExplorer, isEdge, trackEvent } from \"./utilities/index\"\r\nimport Application from \"./application\"\r\nimport Overlay from \"./overlay\"\r\n\r\nlet Question = function (params) {\r\n\t// console.log('Question initalizing ' + params);\r\n\r\n\t/**\r\n\t *\r\n\t */\r\n\tlet self = this\r\n\tlet elementId = params.elementId\r\n\tlet QuestionElement = document.getElementById(params.elementId)\r\n\t// 'multiple-choice' or 'range-slider'\r\n\tlet type = QuestionElement.getAttribute(\"data-question-type\")\r\n\tlet background = QuestionElement.querySelector(\".bg-image\")\r\n\tlet progress = QuestionElement.querySelector(\".progress\")\r\n\tlet text = QuestionElement.querySelector(\".question-wrap\")\r\n\tlet importantButton = QuestionElement.querySelector(\".btn-important\")\r\n\tlet contentImage = QuestionElement.querySelector(\".content-image\")\r\n\tlet controls = QuestionElement.querySelector(\".controls\")\r\n\tlet answers = qsArray(\".answer\", QuestionElement)\r\n\tlet slider = QuestionElement.querySelector(\".slider\")\r\n\tlet nextButton = QuestionElement.querySelector(\".next-button\")\r\n\tlet previousButton = QuestionElement.querySelector(\".previous-button\")\r\n\tlet timeline\r\n\tlet selectedAnswerId = \"\"\r\n\tlet selectedDirection = 0\r\n\tlet sliderTween1 = null\r\n\tlet sliderTween2 = null\r\n\tlet sliderTween3 = null\r\n\tlet overlay = new Overlay()\r\n\t// console.log('answers is ' + answers);\r\n\t// console.log('slider is ' + slider);\r\n\t// console.log('question type is ' + type);\r\n\r\n\tthis.open = function () {\r\n\t\t// console.log('Question.open');\r\n\t\twindow.ironSelector.fillProgressBar()\r\n\t\tTweenLite.set([background, progress, text, contentImage, controls], { opacity: 0 })\r\n\t\tTweenLite.set(answers, { opacity: 0 })\r\n\t\tif (slider !== null) {\r\n\t\t\tTweenLite.set(slider, { opacity: 0 })\r\n\t\t}\r\n\t\tQuestionElement.style.display = \"block\"\r\n\t\ttimeline = new TimelineLite({ onComplete: this.openComplete, onCompleteScope: this })\r\n\t\ttimeline.to(background, Application.tweenLength, { opacity: 1 })\r\n\t\ttimeline.to(progress, Application.tweenLength, { opacity: 1 }, Application.tweenStagger)\r\n\t\ttimeline.to(text, Application.tweenLength, { opacity: 1 }, Application.tweenStagger)\r\n\t\ttimeline.to(contentImage, Application.tweenLength, { opacity: 1 }, Application.tweenStagger)\r\n\t\tfor (let x = 0; x < answers.length; x++) {\r\n\t\t\ttimeline.to(answers[x], Application.tweenLength, { opacity: 1 }, Application.tweenStagger)\r\n\t\t}\r\n\t\tif (slider !== null) {\r\n\t\t\ttimeline.to(slider, Application.tweenLength, { opacity: 1 }, Application.tweenStagger)\r\n\t\t}\r\n\t\ttimeline.to(controls, Application.tweenLength, { opacity: 1 }, Application.tweenStagger)\r\n\t\ttimeline.play()\r\n\t}\r\n\r\n\tthis.openComplete = function () {\r\n\t\tif (type === \"multiple-choice\") {\r\n\t\t\tthis.initialzeImportantButton()\r\n\t\t\tthis.initializeAnswers()\r\n\t\t\tthis.initializePreviousButton()\r\n\t\t\t// this.initializeNextButton();\r\n\t\t\tif (selectedAnswerId !== \"\") {\r\n\t\t\t\tthis.initializeNextButton()\r\n\t\t\t}\r\n\t\t} else if (type === \"range-slider\") {\r\n\t\t\tthis.initialzeImportantButton()\r\n\t\t\tthis.initializeSlider()\r\n\t\t\tthis.initializePreviousButton()\r\n\t\t\tthis.initializeNextButton()\r\n\t\t}\r\n\t}\r\n\r\n\tthis.initializeAnswers = function () {\r\n\t\t// console.log('init answers ' + this.answerClicked);\r\n\t\tlet answer\r\n\t\tfor (let x = 0; x < answers.length; x++) {\r\n\t\t\tanswer = answers[x]\r\n\t\t\tanswer.addEventListener(\"click\", this.answerClicked)\r\n\t\t}\r\n\t\t// console.log('question has ' + answers.length + ' answers');\r\n\t}\r\n\r\n\tthis.disableAnswers = function () {\r\n\t\tlet answer\r\n\t\tfor (let x = 0; x < answers.length; x++) {\r\n\t\t\tanswer = answers[x]\r\n\t\t\tanswer.removeEventListener(\"click\", this.answerClicked)\r\n\t\t}\r\n\t}\r\n\r\n\tthis.initializeSlider = function () {\r\n\t\tif (slider !== null) {\r\n\t\t\tthis.input = slider.querySelector(\"input\")\r\n\t\t\tthis.value = slider.querySelector(\".value\")\r\n\r\n\t\t\tif (isInternetExplorer() === true) {\r\n\t\t\t\t// chrome slider released, works in ie\r\n\t\t\t\tthis.input.addEventListener(\"change\", this.sliderChanged)\r\n\t\t\t} else {\r\n\t\t\t\t// chrome slider moved, doesn't work in ie works in edge and everything else\r\n\t\t\t\tthis.input.addEventListener(\"input\", this.sliderChanged)\r\n\t\t\t}\r\n\r\n\t\t\tif (elementId !== \"question-2\") {\r\n\t\t\t\tthis.sliderImage1 = QuestionElement.querySelector(\".slider-image-1\")\r\n\t\t\t\tthis.sliderImage2 = QuestionElement.querySelector(\".slider-image-2\")\r\n\t\t\t\tthis.sliderImage3 = QuestionElement.querySelector(\".slider-image-3\")\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tthis.sliderChanged = function () {\r\n\t\tconsole.log(\"changed: \" + elementId)\r\n\t\tif (elementId === \"question-2\") {\r\n\t\t\t// update the display for question 2 distances\r\n\t\t\tlet display = self.input.value\r\n\t\t\tif (display < 100) {\r\n\t\t\t\tdisplay = \"<100\"\r\n\t\t\t} else if (display > 200) {\r\n\t\t\t\tdisplay = \">200\"\r\n\t\t\t}\r\n\t\t\tlet units = QuestionElement.getAttribute(\"data-answer-units\")\r\n\t\t\tif (units === null || units === undefined || units === \"\") {\r\n\t\t\t\tunits = \"yards\"\r\n\t\t\t}\r\n\t\t\tself.value.innerHTML = display.toString() + \" \" + units\r\n\t\t} else {\r\n\t\t\t//swap images for other sliders\r\n\t\t\tlet index = self.input.value\r\n\t\t\tlet tweenLength = 0.1\r\n\t\t\tlet delayLength = 0\r\n\t\t\tif (sliderTween1 !== null) {\r\n\t\t\t\tsliderTween1.kill()\r\n\t\t\t\tsliderTween2.kill()\r\n\t\t\t\tsliderTween3.kill()\r\n\t\t\t\tsliderTween1 = null\r\n\t\t\t\tsliderTween2 = null\r\n\t\t\t\tsliderTween3 = null\r\n\t\t\t}\r\n\t\t\t// question 4 is full fade to black\r\n\t\t\tif (elementId === \"question-4\") {\r\n\t\t\t\ttweenLength = 0.25\r\n\t\t\t\tdelayLength = 0.25 // console.log('show slider image ' + index);\r\n\t\t\t\tif (index.toString() === \"1\") {\r\n\t\t\t\t\tsliderTween1 = TweenLite.to(self.sliderImage1, tweenLength, {\r\n\t\t\t\t\t\topacity: 0,\r\n\t\t\t\t\t\tonComplete: function () {\r\n\t\t\t\t\t\t\tTweenLite.set(self.sliderImage1, { opacity: 0 })\r\n\t\t\t\t\t\t\tTweenLite.set(self.sliderImage1, { opacity: 0 })\r\n\t\t\t\t\t\t\tTweenLite.set(self.sliderImage1, { opacity: 0 })\r\n\t\t\t\t\t\t\tsliderTween1 = TweenLite.to(self.sliderImage1, tweenLength, { opacity: 1 })\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})\r\n\t\t\t\t\tsliderTween2 = TweenLite.to(self.sliderImage2, tweenLength, { opacity: 0 })\r\n\t\t\t\t\tsliderTween3 = TweenLite.to(self.sliderImage3, tweenLength, { opacity: 0 })\r\n\t\t\t\t} else if (index.toString() === \"2\") {\r\n\t\t\t\t\tsliderTween1 = TweenLite.to(self.sliderImage1, tweenLength, { opacity: 0 })\r\n\t\t\t\t\tsliderTween2 = TweenLite.to(self.sliderImage2, tweenLength, {\r\n\t\t\t\t\t\topacity: 0,\r\n\t\t\t\t\t\tonComplete: function () {\r\n\t\t\t\t\t\t\tTweenLite.set(self.sliderImage1, { opacity: 0 })\r\n\t\t\t\t\t\t\tTweenLite.set(self.sliderImage1, { opacity: 0 })\r\n\t\t\t\t\t\t\tTweenLite.set(self.sliderImage1, { opacity: 0 })\r\n\t\t\t\t\t\t\tsliderTween2 = TweenLite.to(self.sliderImage2, tweenLength, { opacity: 1 })\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})\r\n\t\t\t\t\tsliderTween3 = TweenLite.to(self.sliderImage3, tweenLength, { opacity: 0 })\r\n\t\t\t\t} else if (index.toString() === \"3\") {\r\n\t\t\t\t\tsliderTween1 = TweenLite.to(self.sliderImage1, tweenLength, { opacity: 0 })\r\n\t\t\t\t\tsliderTween2 = TweenLite.to(self.sliderImage2, tweenLength, { opacity: 0 })\r\n\t\t\t\t\tsliderTween3 = TweenLite.to(self.sliderImage3, tweenLength, {\r\n\t\t\t\t\t\topacity: 0,\r\n\t\t\t\t\t\tonComplete: function () {\r\n\t\t\t\t\t\t\tTweenLite.set(self.sliderImage1, { opacity: 0 })\r\n\t\t\t\t\t\t\tTweenLite.set(self.sliderImage1, { opacity: 0 })\r\n\t\t\t\t\t\t\tTweenLite.set(self.sliderImage1, { opacity: 0 })\r\n\t\t\t\t\t\t\tsliderTween3 = TweenLite.to(self.sliderImage3, tweenLength, { opacity: 1 })\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\t// question 5 and 6 is crossfade\r\n\t\t\t\t// console.log('show slider image ' + index);\r\n\t\t\t\tif (index.toString() === \"1\") {\r\n\t\t\t\t\tsliderTween1 = TweenLite.to(self.sliderImage1, tweenLength, { opacity: 1 })\r\n\t\t\t\t\tsliderTween2 = TweenLite.to(self.sliderImage2, tweenLength, { opacity: 0 })\r\n\t\t\t\t\tsliderTween3 = TweenLite.to(self.sliderImage3, tweenLength, { opacity: 0 })\r\n\t\t\t\t} else if (index.toString() === \"2\") {\r\n\t\t\t\t\tsliderTween1 = TweenLite.to(self.sliderImage1, tweenLength, { opacity: 0 })\r\n\t\t\t\t\tsliderTween2 = TweenLite.to(self.sliderImage2, tweenLength, { opacity: 1 })\r\n\t\t\t\t\tsliderTween3 = TweenLite.to(self.sliderImage3, tweenLength, { opacity: 0 })\r\n\t\t\t\t} else if (index.toString() === \"3\") {\r\n\t\t\t\t\tsliderTween1 = TweenLite.to(self.sliderImage1, tweenLength, { opacity: 0 })\r\n\t\t\t\t\tsliderTween2 = TweenLite.to(self.sliderImage2, tweenLength, { opacity: 0 })\r\n\t\t\t\t\tsliderTween3 = TweenLite.to(self.sliderImage3, tweenLength, { opacity: 1 })\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tthis.initialzeImportantButton = function () {\r\n\t\tif (importantButton !== null) {\r\n\t\t\t// console.log('enable important button');\r\n\t\t\timportantButton.addEventListener(\"click\", this.importantButtonClicked)\r\n\t\t}\r\n\t}\r\n\r\n\tthis.initializePreviousButton = function () {\r\n\t\t// console.log('init previous button ' + previousButton);\r\n\t\tpreviousButton.addEventListener(\"click\", this.previousClicked)\r\n\t}\r\n\r\n\tthis.initializeNextButton = function () {\r\n\t\t// console.log('init next button ' + nextButton);\r\n\t\tnextButton.addEventListener(\"click\", this.nextClicked)\r\n\t\tnextButton.classList.remove(\"disabled\")\r\n\t\t// nextButton.classList.add('enabled');\r\n\t}\r\n\r\n\tthis.disableControls = function () {\r\n\t\t// console.log('disable important button');\r\n\t\tif (importantButton !== null) {\r\n\t\t\timportantButton.removeEventListener(\"click\", this.importantButtonClicked)\r\n\t\t}\r\n\t\tpreviousButton.removeEventListener(\"click\", this.previousClicked)\r\n\t\tnextButton.removeEventListener(\"click\", this.nextClicked)\r\n\t}\r\n\r\n\tthis.answerClicked = function (event) {\r\n\t\t// console.log('Question.answerClicked ' + event.target.id);\r\n\t\t// console.log('selected answer id was ' + self.selectedAnswerId);\r\n\t\tif (selectedAnswerId === \"\") {\r\n\t\t\tself.initializeNextButton()\r\n\t\t}\r\n\t\tself.resetAnswers()\r\n\t\t// if its multiple choice set values here, if its slider set it in nextClicked\r\n\t\tselectedAnswerId = event.target.id\r\n\t\tevent.target.classList.add(\"selected\")\r\n\t\t// console.log('now selected answer id is ' + self.selectedAnswerId);\r\n\t}\r\n\r\n\tthis.resetAnswers = function () {\r\n\t\tlet answer\r\n\t\tfor (let x = 0; x < answers.length; x++) {\r\n\t\t\tanswer = answers[x]\r\n\t\t\tanswer.classList.remove(\"selected\")\r\n\t\t}\r\n\t\tselectedAnswerId = \"\"\r\n\t}\r\n\r\n\tthis.importantButtonClicked = function () {\r\n\t\toverlay.openImportantWindow(elementId)\r\n\t}\r\n\r\n\tthis.previousClicked = function (event) {\r\n\t\t// console.log('Question.previousClicked ' + event.target.id);\r\n\t\tself.selectedDirection = -1\r\n\t\tself.close()\r\n\t\t// window.ironSelector.questionClosed(-1);\r\n\t\ttrackEvent(\"navigation\", \"Previous\")\r\n\t}\r\n\r\n\tthis.nextClicked = function (event) {\r\n\t\t// console.log('Question.previousClicked ' + event.target.id);\r\n\t\tself.selectedDirection = 1\r\n\t\t// if its a slider set values here, if its multiple choice values set in answerClicked\r\n\t\tif (type === \"range-slider\") {\r\n\t\t\tif (elementId === \"question-2\") {\r\n\t\t\t\tlet val = parseInt(self.input.value, 10)\r\n\t\t\t\tif (val <= 100) {\r\n\t\t\t\t\tselectedAnswerId = \"question-2a1\"\r\n\t\t\t\t} else if (val <= 125) {\r\n\t\t\t\t\tselectedAnswerId = \"question-2a2\"\r\n\t\t\t\t} else if (val <= 150) {\r\n\t\t\t\t\tselectedAnswerId = \"question-2a3\"\r\n\t\t\t\t} else if (val <= 175) {\r\n\t\t\t\t\tselectedAnswerId = \"question-2a4\"\r\n\t\t\t\t} else if (val < 200) {\r\n\t\t\t\t\tselectedAnswerId = \"question-2a5\"\r\n\t\t\t\t} else {\r\n\t\t\t\t\tselectedAnswerId = \"question-2a6\"\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tselectedAnswerId = elementId + \"a\" + self.input.value\r\n\t\t\t}\r\n\t\t}\r\n\t\t// store answer in the main application history\r\n\t\twindow.ironSelector.storeAnswer(selectedAnswerId)\r\n\t\t// close it up\r\n\t\tself.close()\r\n\t\ttrackEvent(\"answer\", elementId, selectedAnswerId)\r\n\t\ttrackEvent(\"navigation\", \"Next\")\r\n\t}\r\n\r\n\tthis.close = function () {\r\n\t\t// console.log('close ' + selectedAnswerId);\r\n\t\tthis.disableAnswers()\r\n\t\tthis.disableControls()\r\n\t\twindow.ironSelector.clearProgressBar(self.selectedDirection)\r\n\t\ttimeline.kill()\r\n\t\ttimeline = new TimelineLite({ onComplete: closeComplete, onCompleteScope: this })\r\n\t\ttimeline.to(controls, Application.tweenLength, { opacity: 0 }, Application.tweenStagger)\r\n\t\tfor (let x = answers.length - 1; x >= 0; x--) {\r\n\t\t\ttimeline.to(answers[x], Application.tweenLength, { opacity: 0 }, Application.tweenStagger)\r\n\t\t}\r\n\t\tif (slider !== null) {\r\n\t\t\ttimeline.to(slider, Application.tweenLength, { opacity: 0 }, Application.tweenStagger)\r\n\t\t}\r\n\t\ttimeline.to(contentImage, Application.tweenLength, { opacity: 0 }, Application.tweenStagger)\r\n\t\ttimeline.to(text, Application.tweenLength, { opacity: 0 }, Application.tweenStagger)\r\n\t\ttimeline.to(progress, Application.tweenLength, { opacity: 0 }, Application.tweenStagger)\r\n\t\ttimeline.to(background, Application.tweenLength, { opacity: 0 })\r\n\t\ttimeline.timeScale(2)\r\n\t\ttimeline.play()\r\n\t}\r\n\r\n\tfunction closeComplete() {\r\n\t\t// console.log('closeComplete ' + this.selectedDirection);\r\n\t\ttimeline.kill()\r\n\t\ttimeline = null\r\n\t\t// content.style.display = 'none';\r\n\t\tQuestionElement.style.display = \"none\"\r\n\t\twindow.ironSelector.questionClosed(this.selectedDirection)\r\n\t}\r\n}\r\n\r\nexport default Question\r\n","import Application from './application';\r\nimport { trackEvent, getQueryStringVariable } from './utilities/index';\r\nimport Overlay from \"./overlay\";\r\n\r\nlet Results = function (params) {\r\n // console.log('Results initalizing ' + params);\r\n\r\n /**\r\n *\r\n */\r\n let self = this;\r\n let mainEl = document.getElementById('main');\r\n let ResultsElement = document.getElementById( 'results' );\r\n let background = ResultsElement.querySelector('.bg-image' );\r\n let primaryTitle = ResultsElement.querySelector('h2.primary' );\r\n let alternativeTitle = ResultsElement.querySelector('h2.alternative' );\r\n let logo = ResultsElement.querySelector('.iron-logo' );\r\n let description = ResultsElement.querySelector('.iron-description' );\r\n let btnWhy = ResultsElement.querySelector('.btn-why' );\r\n let learnMore = ResultsElement.querySelector('.more-content' );\r\n let moreButton = ResultsElement.querySelector('.more-button' );\r\n let fittingButton = ResultsElement.querySelector('.fitting-button' );\r\n let clubImage = ResultsElement.querySelector('.selected-iron' );\r\n let clubVideo = ResultsElement.querySelector('.selected-iron-video' );\r\n let playVideoButton = ResultsElement.querySelector('.play-video-btn' );\r\n let closeVideoButton = ResultsElement.querySelector('.iron-video-close' );\r\n let mpiButtonWrap = ResultsElement.querySelector('.mpi-button-wrap' );\r\n let mpiButton = ResultsElement.querySelector('.mpi-button-wrap .mpi-button' );\r\n let homeButton = ResultsElement.querySelector('.home-button');\r\n let sendResultsButton = ResultsElement.querySelector('.send-results');\r\n let ctaButtons = ResultsElement.querySelector('.cta-buttons');\r\n let compareButton = ResultsElement.querySelector('.compare-both-button');\r\n let showAlternativeButton = ResultsElement.querySelector('.show-alternative-results-button');\r\n let showPrimaryButton = ResultsElement.querySelector('.show-primary-results-button');\r\n let mpiElement = ResultsElement.querySelector('#mpi-value');\r\n let timeline;\r\n let nextPage = \"primary\";\r\n let ironId = \"\";\r\n let overlay = new Overlay();\r\n let primaryId = '';\r\n let alternateId = '';\r\n let primaryFIid = '';\r\n let alternateFIid = '';\r\n\r\n this.open = function() {\r\n // console.log('Results.open');\r\n // set new height\r\n mainEl.classList.add('results-visible');\r\n window.ironSelector.fillProgressBar();\r\n this.setResults();\r\n moreButton = ResultsElement.querySelector('.more-button-' + ironId );\r\n TweenLite.set( [background, primaryTitle, alternativeTitle, logo, description, btnWhy, mpiButton, learnMore, clubImage, ctaButtons], {opacity: 0});\r\n ResultsElement.style.display = 'block';\r\n timeline = new TimelineLite({onComplete: this.openComplete, onCompleteScope: this});\r\n timeline.to(background, Application.tweenLength, {opacity: 1});\r\n timeline.to([primaryTitle, alternativeTitle, logo, description, btnWhy, mpiButton], Application.tweenLength, {opacity: 1}, Application.tweenStagger);\r\n timeline.to(learnMore, Application.tweenLength, {opacity: 1}, Application.tweenStagger);\r\n timeline.to([ctaButtons, clubImage], Application.tweenLength, {opacity: 1}, Application.tweenStagger);\r\n timeline.play();\r\n };\r\n\r\n this.setResults = function () {\r\n let partner = false;\r\n try {\r\n if (getQueryStringVariable('partner') === \"true\") {\r\n partner = true;\r\n }\r\n } catch (e) {\r\n console.log('Error getting partner query string variables');\r\n }\r\n\r\n if (partner) {\r\n \r\n document.querySelectorAll('.more-button,.send-results,.fitting-button,.virtual-fitting-button,.product-button-wrap .btn-tertiary').forEach(function (el) {\r\n el.style.display = 'none';\r\n });\r\n }\r\n // ironId = window.ironSelector.calculateResults();\r\n let sortedScores = window.ironSelector.calculateResults();\r\n console.log(sortedScores[0], sortedScores[1]);\r\n overlay.setCompareIrons(sortedScores[0], sortedScores[1]);\r\n let mpi = 75;\r\n if (nextPage === \"alternative\") {\r\n ironId = sortedScores[1];\r\n // toggle buttons\r\n showPrimaryButton.style.display = 'inline-block';\r\n showAlternativeButton.style.display = 'none';\r\n alternativeTitle.style.display = 'block';\r\n primaryTitle.style.display = 'none';\r\n mpi = Math.min(Math.max(window.ironSelector.getMPI(ironId), 75), 98);\r\n } else {\r\n ironId = sortedScores[0];\r\n // toggle buttons\r\n showPrimaryButton.style.display = 'none';\r\n showAlternativeButton.style.display = 'inline-block';\r\n alternativeTitle.style.display = 'none';\r\n primaryTitle.style.display = 'block';\r\n mpi = Math.min(Math.max(window.ironSelector.getMPI(ironId), 81), 100);\r\n }\r\n // set mpi values on results screen\r\n console.log('setting mpi to ' + mpi);\r\n mpiElement.innerHTML = mpi.toString() + '%';\r\n // set mpi values on the compare screens\r\n primaryId = sortedScores[0];\r\n alternateId = sortedScores[1];\r\n document.getElementById('mpi-' + primaryId).innerHTML = Math.min(Math.max(window.ironSelector.getMPI(primaryId), 81), 100) + '%';\r\n document.getElementById('mpi-' + alternateId).innerHTML = Math.min(Math.max(window.ironSelector.getMPI(alternateId), 75), 98) + '%';\r\n\r\n console.log('selected iron id is: ' + ironId);\r\n ResultsElement.classList.add('show-' + ironId);\r\n nextPage = \"\";\r\n\r\n //debugger;\r\n\r\n let irons = document.getElementsByClassName('iron-wrap')[0]\r\n primaryFIid = irons.querySelector('div[data-iron=\"' + primaryId +'\"]').getAttribute('data-ironid');\r\n alternateFIid = irons.querySelector('div[data-iron=\"' + alternateId +'\"]').getAttribute('data-ironid');\r\n\r\n // track here or in the application?\r\n trackEvent('Recommendation', 'Primary', sortedScores[0]);\r\n trackEvent('Recommendation', 'Alternative', sortedScores[1]);\r\n // console.log('Primary', sortedScores[0]);\r\n // console.log('Alternative', sortedScores[1]);\r\n };\r\n\r\n this.openComplete = function () {\r\n // todo: initialize controls\r\n homeButton.addEventListener('click', this.homeClicked);\r\n sendResultsButton.addEventListener('click', this.sendResultsClicked);\r\n showAlternativeButton.addEventListener('click', this.alternativeClicked);\r\n showPrimaryButton.addEventListener('click', this.primaryClicked);\r\n compareButton.addEventListener('click', this.compareClicked);\r\n btnWhy.addEventListener('click', this.whyClicked);\r\n playVideoButton.addEventListener('click', this.playVideoClicked);\r\n // tracking listners\r\n if (moreButton !== null) {\r\n moreButton.addEventListener('click', this.moreClicked);\r\n }\r\n fittingButton.addEventListener('click', this.fittingClicked);\r\n\r\n };\r\n\r\n this.moreClicked = function(event) {\r\n trackEvent('navigation', 'Results', 'Product Details');\r\n };\r\n\r\n this.fittingClicked = function(event) {\r\n trackEvent('navigation', 'Results', 'Find A Fitting Location');\r\n };\r\n\r\n this.homeClicked = function(event) {\r\n let override = homeButton.getAttribute('data-url-override');\r\n if (override === null || override === undefined || override === \"\") {\r\n nextPage = \"home\";\r\n self.close();\r\n trackEvent('navigation', 'Home');\r\n } else {\r\n // window.location.href = override;\r\n parent.window.location.href = override;\r\n }\r\n };\r\n\r\n this.sendResultsClicked = function () {\r\n console.log('TODO: Calc sign in or success');\r\n overlay.openSendResults('sign-in', primaryId, alternateId, primaryFIid, alternateFIid);\r\n }\r\n\r\n this.previousClicked = function(event) {\r\n nextPage = \"question\";\r\n window.ironSelector.clearProgressBar(-1);\r\n self.close();\r\n trackEvent('navigation', 'Previous');\r\n };\r\n\r\n this.alternativeClicked = function(event) {\r\n nextPage = \"alternative\";\r\n self.close();\r\n trackEvent('navigation', 'Results', 'See Alternative Results');\r\n };\r\n\r\n this.primaryClicked = function(event) {\r\n nextPage = \"primary\";\r\n self.close();\r\n trackEvent('navigation', 'Results', 'See Primary Results');\r\n };\r\n\r\n this.compareClicked = function () {\r\n // console.log('TODO: Compare!');\r\n // overlay.openCompareOverlay();\r\n self.quickHide();\r\n }\r\n\r\n this.whyClicked = function () {\r\n overlay.openWhyWindow(ironId);\r\n }\r\n\r\n let videoEl;\r\n this.playVideoClicked = function () {\r\n videoEl = ResultsElement.querySelector('video[data-iron-video=\"' + ironId +'\"]');\r\n videoEl.pause();\r\n videoEl.currentTime = 0;\r\n videoEl.play();\r\n mpiButtonWrap.classList.add('is-hidden');\r\n clubVideo.classList.add('is-active');\r\n clubVideo.clientHeight;\r\n clubVideo.classList.add('is-visible');\r\n closeVideoButton.addEventListener('click', self.closeVideoClicked);\r\n }\r\n\r\n this.closeVideoClicked = function () {\r\n mpiButtonWrap.classList.remove('is-hidden');\r\n closeVideoButton.removeEventListener('click', self.closeVideoClicked);\r\n clubVideo.classList.remove('is-visible');\r\n setTimeout(function() {\r\n if (videoEl) {\r\n videoEl.pause();\r\n videoEl.currentTime = 0;\r\n }\r\n clubVideo.classList.remove('is-active');\r\n }, 300);\r\n }\r\n\r\n this.disableControls = function () {\r\n // console.log('disable controls ' + homeButton);\r\n homeButton.removeEventListener('click', this.homeClicked);\r\n sendResultsButton.removeEventListener('click', this.sendResultsClicked);\r\n showAlternativeButton.removeEventListener('click', this.alternativeClicked);\r\n showPrimaryButton.removeEventListener('click', this.primaryClicked);\r\n compareButton.removeEventListener('click', this.compareClicked);\r\n btnWhy.removeEventListener('click', this.whyClicked);\r\n playVideoButton.removeEventListener('click', this.playVideoClicked);\r\n if (moreButton !== null) {\r\n moreButton.removeEventListener('click', this.moreClicked);\r\n }\r\n fittingButton.removeEventListener('click', this.fittingClicked);\r\n };\r\n\r\n this.quickHide = function () {\r\n console.log('quick hide');\r\n self.closeVideoClicked();\r\n timeline.kill();\r\n timeline = new TimelineLite({onComplete: quickHideComplete});\r\n timeline.to([ctaButtons, clubImage, learnMore, primaryTitle, alternativeTitle, logo, description, btnWhy, mpiButton], Application.tweenLength, {opacity: 0});\r\n timeline.timeScale(1.5);\r\n timeline.play();\r\n }\r\n\r\n function quickHideComplete() {\r\n console.log('hide compare complete');\r\n overlay.openCompareOverlay(self.quickShow);\r\n }\r\n\r\n this.quickShow = function() {\r\n console.log('quick show');\r\n timeline.kill();\r\n timeline = new TimelineLite();\r\n timeline.to([ctaButtons, clubImage, learnMore, primaryTitle, alternativeTitle, logo, description, btnWhy, mpiButton], Application.tweenLength, {opacity: 1});\r\n timeline.timeScale(1.5);\r\n timeline.play();\r\n }\r\n\r\n this.close = function () {\r\n console.log('close ' + nextPage);\r\n this.closeVideoClicked();\r\n this.disableControls();\r\n if (nextPage === \"home\") {\r\n window.ironSelector.completeProgressBar();\r\n }\r\n timeline.kill();\r\n timeline = new TimelineLite({onComplete: closeComplete});\r\n timeline.to([ctaButtons, clubImage], Application.tweenLength, {opacity: 0});\r\n timeline.to(learnMore, Application.tweenLength, {opacity: 0}, Application.tweenStagger);\r\n timeline.to([primaryTitle, alternativeTitle, logo, description, btnWhy, mpiButton], Application.tweenLength, {opacity: 0}, Application.tweenStagger);\r\n timeline.to(background, Application.tweenLength, {opacity: 0}, Application.tweenStagger);\r\n timeline.timeScale(1.5);\r\n timeline.play();\r\n };\r\n\r\n function closeComplete() {\r\n mainEl.classList.remove('results-visible');\r\n // console.log('closeComplete ' + nextPage);\r\n timeline.kill();\r\n timeline = null;\r\n ResultsElement.style.display = 'none';\r\n ResultsElement.classList.remove('show-' + ironId);\r\n if (nextPage === \"home\") {\r\n // console.log('reset');\r\n nextPage = \"primary\";\r\n window.ironSelector.reset();\r\n } else if (nextPage === \"question\") {\r\n // console.log('previous');\r\n nextPage = \"primary\";\r\n window.ironSelector.questionClosed(-1);\r\n }else if (nextPage === \"primary\") {\r\n console.log('primary');\r\n self.open();\r\n }else if (nextPage === \"alternative\") {\r\n console.log('alternative');\r\n self.open();\r\n }\r\n }\r\n\r\n};\r\n\r\nexport default Results;\r\n\r\n","// import TweenLite from './vendor/TweenLite';\r\nimport Preloader from \"./preloader\"\r\nimport Intro from \"./intro\"\r\nimport Question from \"./question\"\r\nimport Results from \"./results\"\r\nimport Overlay from \"./overlay\"\r\nimport { qsArray } from \"./utilities/selectors\"\r\n\r\nlet Application = function (params) {\r\n\tif (Application.prototype._singletonInstance) {\r\n\t\treturn Application.prototype._singletonInstance\r\n\t}\r\n\tApplication.prototype._singletonInstance = this\r\n\r\n\tthis.initialize(params)\r\n}\r\n\r\nApplication.prototype.initialize = function (params) {\r\n\t// console.log('Application initalizing ' + params);\r\n\r\n\tApplication.tweenLength = 0.5\r\n\tApplication.tweenStagger = \"-=0.25\"\r\n\r\n\t/**\r\n\t *\r\n\t */\r\n\tlet self = this\r\n\tthis.preloader = new Preloader({})\r\n\tthis.overlay = new Overlay()\r\n\tthis.intro = new Intro({})\r\n\tthis.question1 = new Question({ elementId: \"question-1\" })\r\n\tthis.question2 = new Question({ elementId: \"question-2\" })\r\n\tthis.question3 = new Question({ elementId: \"question-3\" })\r\n\tthis.question4 = new Question({ elementId: \"question-4\" })\r\n\tthis.question5 = new Question({ elementId: \"question-5\" })\r\n\tthis.question6 = new Question({ elementId: \"question-6\" })\r\n\tthis.questions = [this.question1, this.question2, this.question3, this.question4, this.question5, this.question6]\r\n\tthis.results = new Results({})\r\n\r\n\tthis.progressBarSegments = qsArray(\"#progress-bar-overlay .progress-bar-segment\")\r\n\r\n\t// Current screen/state info\r\n\t// preloader, intro, question, results\r\n\tthis.currentState = \"preloader\"\r\n\tthis.currentQuestion = 0\r\n\tthis.totalQuestions = 6\r\n\t// this.totalQuestions = 1; // for testing results faster\r\n\r\n\tthis.progressIndex = 0\r\n\r\n\t// Scoring info\r\n\t// array of html element ids that have data attributes that are used to calculate final results\r\n\tthis.answers = []\r\n\tthis.score_t100 = 0\r\n\tthis.score_t150 = 0\r\n\tthis.score_t200 = 0\r\n\tthis.score_t350 = 0\r\n\tthis.score_t400 = 0\r\n\tthis.score_620cb = 0\r\n\tthis.score_620mb = 0\r\n\tthis.mpi_t100 = 0\r\n\tthis.mpi_t150 = 0\r\n\tthis.mpi_t200 = 0\r\n\tthis.mpi_t350 = 0\r\n\tthis.mpi_t400 = 0\r\n\tthis.mpi_620cb = 0\r\n\tthis.mpi_620mb = 0\r\n\r\n\tthis.preloaderClosed = function () {\r\n\t\tthis.intro.open()\r\n\t\tthis.currentState = \"intro\"\r\n\t\twindow.resizeFrame()\r\n\t}\r\n\r\n\tthis.introClosed = function () {\r\n\t\tthis.scrollToTopOfPage()\r\n\t\tthis.currentState = \"question\"\r\n\t\tthis.currentQuestion = 1\r\n\t\tthis.question1.open()\r\n\t\twindow.resizeFrame()\r\n\t}\r\n\r\n\tthis.questionClosed = function (direction) {\r\n\t\tif (direction > 0) {\r\n\t\t\t// next question or results\r\n\t\t\tthis.currentQuestion++\r\n\t\t} else {\r\n\t\t\t// previous question or intro\r\n\t\t\tthis.currentQuestion--\r\n\t\t}\r\n\t\tthis.scrollToTopOfPage()\r\n\t\tif (this.currentQuestion === 0) {\r\n\t\t\tthis.intro.open()\r\n\t\t\twindow.resizeFrame()\r\n\t\t} else if (this.currentQuestion === this.totalQuestions + 1) {\r\n\t\t\t//show results\r\n\t\t\tthis.results.open()\r\n\t\t\tthis.currentState = \"results\"\r\n\t\t\twindow.resizeFrame()\r\n\t\t} else {\r\n\t\t\tthis.questions[this.currentQuestion - 1].open()\r\n\t\t}\r\n\t}\r\n\r\n\tthis.storeAnswer = function (answerId) {\r\n\t\tthis.answers[this.currentQuestion - 1] = answerId\r\n\t\t//console.log('history is ', this.answers);\r\n\t\t// just to help see progress\r\n\t\tvar trash = this.calculateResults()\r\n\t}\r\n\r\n\tthis.calculateResults = function () {\r\n\t\tlet answerId\r\n\t\tlet answerElement\r\n\t\tthis.score_t100 = 0\r\n\t\tthis.score_t150 = 0\r\n\t\tthis.score_t200 = 0\r\n\t\tthis.score_t350 = 0\r\n\t\tthis.score_t400 = 0\r\n\t\tthis.score_620cb = 0\r\n\t\tthis.score_620mb = 0\r\n\t\tfor (let x = 0; x < this.answers.length; x++) {\r\n\t\t\tanswerElement = document.getElementById(this.answers[x])\r\n\t\t\tthis.score_t100 += parseInt(answerElement.getAttribute(\"data-t100\"), 10)\r\n\t\t\tthis.score_t150 += parseInt(answerElement.getAttribute(\"data-t150\"), 10)\r\n\t\t\tthis.score_t200 += parseInt(answerElement.getAttribute(\"data-t200\"), 10)\r\n\t\t\tthis.score_t350 += parseInt(answerElement.getAttribute(\"data-t350\"), 10)\r\n\t\t\tthis.score_t400 += parseInt(answerElement.getAttribute(\"data-t400\"), 10)\r\n\t\t\tthis.score_620cb += parseInt(answerElement.getAttribute(\"data-620cb\"), 10)\r\n\t\t\tthis.score_620mb += parseInt(answerElement.getAttribute(\"data-620mb\"), 10)\r\n\t\t\tconsole.log(\"\")\r\n\t\t\tconsole.log(\"Question \" + x + \" score totals:\")\r\n\t\t\tconsole.log(\r\n\t\t\t\t\"t400: \" + this.score_t400 + \" (added \" + parseInt(answerElement.getAttribute(\"data-t400\"), 10) + \")\"\r\n\t\t\t)\r\n\t\t\tconsole.log(\r\n\t\t\t\t\"t350: \" + this.score_t350 + \" (added \" + parseInt(answerElement.getAttribute(\"data-t350\"), 10) + \")\"\r\n\t\t\t)\r\n\t\t\tconsole.log(\r\n\t\t\t\t\"t200: \" + this.score_t200 + \" (added \" + parseInt(answerElement.getAttribute(\"data-t200\"), 10) + \")\"\r\n\t\t\t)\r\n\t\t\tconsole.log(\r\n\t\t\t\t\"t150: \" + this.score_t150 + \" (added \" + parseInt(answerElement.getAttribute(\"data-t150\"), 10) + \")\"\r\n\t\t\t)\r\n\t\t\tconsole.log(\r\n\t\t\t\t\"t100: \" + this.score_t100 + \" (added \" + parseInt(answerElement.getAttribute(\"data-t100\"), 10) + \")\"\r\n\t\t\t)\r\n\t\t\tconsole.log(\r\n\t\t\t\t\"620cb: \" + this.score_620cb + \" (added \" + parseInt(answerElement.getAttribute(\"data-620cb\"), 10) + \")\"\r\n\t\t\t)\r\n\t\t\tconsole.log(\r\n\t\t\t\t\"620mb: \" + this.score_620mb + \" (added \" + parseInt(answerElement.getAttribute(\"data-620mb\"), 10) + \")\"\r\n\t\t\t)\r\n\t\t}\r\n\r\n\t\tlet scores = {\r\n\t\t\t\"t100\": this.score_t100,\r\n\t\t\t\"t150\": this.score_t150,\r\n\t\t\t\"t200\": this.score_t200,\r\n\t\t\t\"t350\": this.score_t350,\r\n\t\t\t\"t400\": this.score_t400,\r\n\t\t\t\"620cb\": this.score_620cb,\r\n\t\t\t\"620mb\": this.score_620mb\r\n\t\t}\r\n\t\tlet sortedScores = Object.keys(scores).sort(function (a, b) {\r\n\t\t\treturn scores[b] - scores[a]\r\n\t\t})\r\n\t\t// console.log(\"final sorted score results: \", sortedScores);\r\n\r\n\t\t// using highest value for every question to figure out a 100% max percent.\r\n\t\t// this.mpi_t100 = Math.round( (this.score_t100 / 49) * 100);\r\n\t\t// this.mpi_t150 = Math.round( (this.score_t150 / 44) * 100);\r\n\t\t// this.mpi_t200 = Math.round( (this.score_t200 / 51) * 100);\r\n\t\t// this.mpi_t350 = Math.round( (this.score_t350 / 49) * 100);\r\n\t\t// this.mpi_t400 = Math.round( (this.score_t400 / 49) * 100);\r\n\t\t// this.mpi_620cb = Math.round( (this.score_620cb / 50) * 100);\r\n\t\t// this.mpi_620mb = Math.round( (this.score_620mb / 53) * 100);\r\n\t\tthis.mpi_t100 = Math.round((this.score_t100 / 49) * 100)\r\n\t\tthis.mpi_t150 = Math.round((this.score_t150 / 49) * 100)\r\n\t\tthis.mpi_t200 = Math.round((this.score_t200 / 49) * 100)\r\n\t\tthis.mpi_t350 = Math.round((this.score_t350 / 49) * 100)\r\n\t\tthis.mpi_t400 = Math.round((this.score_t400 / 49) * 100)\r\n\t\tthis.mpi_620cb = Math.round((this.score_620cb / 49) * 100)\r\n\t\tthis.mpi_620mb = Math.round((this.score_620mb / 49) * 100)\r\n\r\n\t\t// Math.min(Math.max(parsed, MIN), MAX)\r\n\t\tconsole.log(\"this.mpi_t100: \" + this.mpi_t100)\r\n\t\tconsole.log(\"this.mpi_t150: \" + this.mpi_t150)\r\n\t\tconsole.log(\"this.mpi_t200: \" + this.mpi_t200)\r\n\t\tconsole.log(\"this.mpi_t350: \" + this.mpi_t350)\r\n\t\tconsole.log(\"this.mpi_t400: \" + this.mpi_t400)\r\n\t\tconsole.log(\"this.mpi_620cb: \" + this.mpi_620cb)\r\n\t\tconsole.log(\"this.mpi_620mb: \" + this.mpi_620mb)\r\n\r\n\t\treturn sortedScores\r\n\t}\r\n\r\n\tthis.getMPI = function (clubId) {\r\n\t\tlet mpi = 0\r\n\t\tswitch (clubId) {\r\n\t\t\tcase \"t100\":\r\n\t\t\t\tmpi = this.mpi_t100\r\n\t\t\t\tbreak\r\n\t\t\tcase \"t150\":\r\n\t\t\t\tmpi = this.mpi_t150\r\n\t\t\t\tbreak\r\n\t\t\tcase \"t200\":\r\n\t\t\t\tmpi = this.mpi_t200\r\n\t\t\t\tbreak\r\n\t\t\tcase \"t350\":\r\n\t\t\t\tmpi = this.mpi_t350\r\n\t\t\t\tbreak\r\n\t\t\tcase \"t400\":\r\n\t\t\t\tmpi = this.mpi_t400\r\n\t\t\t\tbreak\r\n\t\t\tcase \"620cb\":\r\n\t\t\t\tmpi = this.mpi_620cb\r\n\t\t\t\tbreak\r\n\t\t\tcase \"620mb\":\r\n\t\t\t\tmpi = this.mpi_620mb\r\n\t\t\t\tbreak\r\n\t\t}\r\n\t\treturn mpi\r\n\t}\r\n\r\n\tthis.reset = function () {\r\n\t\tthis.resetProgressBar()\r\n\t\tthis.currentQuestion = 0\r\n\t\tthis.intro.open()\r\n\t\tthis.currentState = \"intro\"\r\n\t\twindow.resizeFrame()\r\n\t\tthis.scrollToTopOfPage()\r\n\t}\r\n\r\n\tthis.scrollToTopOfPage = function () {\r\n\t\ttry {\r\n\t\t\twindow.scrollTo({\r\n\t\t\t\ttop: 0,\r\n\t\t\t\tbehavior: \"auto\"\r\n\t\t\t})\r\n\t\t} catch (e) {\r\n\t\t\tconsole.log(\"scroll to top error\")\r\n\t\t}\r\n\t\ttry {\r\n\t\t\twindow.parent.parent.scrollTo({\r\n\t\t\t\ttop: 0,\r\n\t\t\t\tbehavior: \"auto\"\r\n\t\t\t})\r\n\t\t} catch (e) {\r\n\t\t\tconsole.log(\"scroll to top error\")\r\n\t\t}\r\n\t}\r\n\r\n\tthis.fillProgressBar = function () {\r\n\t\tlet direction = this.currentQuestion >= this.progressIndex ? 1 : -1\r\n\t\tif (direction === 1) {\r\n\t\t\tthis.progressBarSegments[this.currentQuestion - 1].classList.add(\"is-active\")\r\n\t\t} else if (direction === -1) {\r\n\t\t\tthis.progressBarSegments[this.currentQuestion - 1].classList.remove(\"is-complete\")\r\n\t\t}\r\n\t\tthis.progressIndex = this.currentQuestion\r\n\t}\r\n\r\n\tthis.clearProgressBar = function (direction) {\r\n\t\tif (direction === 1) {\r\n\t\t\tthis.progressBarSegments[this.currentQuestion - 1].classList.add(\"is-complete\")\r\n\t\t} else if (direction === -1) {\r\n\t\t\tthis.progressBarSegments[this.currentQuestion - 1].classList.remove(\"is-active\")\r\n\t\t}\r\n\t}\r\n\r\n\tthis.completeProgressBar = function () {\r\n\t\tthis.progressBarSegments[this.currentQuestion - 1].classList.add(\"is-complete\")\r\n\t}\r\n\r\n\tthis.resetProgressBar = function () {\r\n\t\tthis.progressBarSegments.forEach(function (el) {\r\n\t\t\tel.classList.add(\"no-animate\")\r\n\t\t\tel.clientHeight\r\n\t\t\tel.classList.remove(\"is-complete\")\r\n\t\t\tel.classList.remove(\"is-active\")\r\n\t\t\tel.clientHeight\r\n\t\t\tel.classList.remove(\"no-animate\")\r\n\t\t})\r\n\t\tthis.progressIndex = 0\r\n\t}\r\n\r\n\tthis.getHeight = function () {\r\n\t\tlet height = 770\r\n\t\tlet width = window.innerWidth\r\n\r\n\t\t// Calc height based on window size and currentState:\r\n\t\t// preloader, intro, question, results\r\n\t\tif (width < 800) {\r\n\t\t\theight = 667\r\n\t\t\tif (this.currentState === \"results\") {\r\n\t\t\t\theight = 855\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn height\r\n\t}\r\n}\r\n\r\nexport default Application\r\n","function qs(selector, scope) {\r\n return (scope || document).querySelector(selector);\r\n}\r\n\r\nfunction qsArray (selector, scope) {\r\n var nodeList = (scope || document).querySelectorAll(selector);\r\n var arr = [];\r\n for(var i = 0; i < nodeList.length; i++) {\r\n arr.push(nodeList[i]);\r\n }\r\n return arr;\r\n}\r\n\r\nexport { qs, qsArray };\r\n","import Application from \"./application\"\r\nimport Overlay from \"./overlay\"\r\n\r\nif (__DEV__) {\r\n\tconsole.log(\"DEVELOPMENT ENVIRONMENT\")\r\n}\r\nif (__SRC__) {\r\n\tconsole.log(\"SOURCE ENVIRONMENT\")\r\n}\r\nif (__DIST__) {\r\n\tconsole.log(\"DISTRIBUTION ENVIRONMENT\")\r\n}\r\n\r\nwindow.ironSelector = new Application()\r\n\r\n// /**\r\n// * IFRAME RESIZING\r\n// */\r\nfunction resizeFrame() {\r\n\trequestAnimationFrame(function () {\r\n\t\t// let height = 770;\r\n\t\tlet height = window.ironSelector.getHeight()\r\n\r\n\t\twindow.parent.postMessage([height], \"*\")\r\n\t})\r\n}\r\nwindow.resizeFrame = resizeFrame\r\nresizeFrame()\r\nwindow.addEventListener(\"load\", resizeFrame)\r\nwindow.addEventListener(\"resize\", resizeFrame)\r\n\r\nwindow.showResultsError = function () {\r\n\tlet overlay = new Overlay()\r\n\toverlay.showResultsError()\r\n}\r\nwindow.showResultsSuccess = function () {\r\n\tlet overlay = new Overlay()\r\n\toverlay.showResultsSuccess()\r\n}\r\n\r\n/***\r\n *\r\n * TODO: If logged in to Team Titleist call this function to prepopulate the email field:\r\n * window.setInitialEmailValue('tom@sample.com');\r\n *\r\n */\r\nwindow.setInitialEmailValue = function (email) {\r\n\tconsole.log(\"window.setInitialEmailValue: \" + email)\r\n\tlet overlay = new Overlay()\r\n\toverlay.setInitialEmailValue(email)\r\n}\r\n// window.setInitialEmailValue('tom@sample.com');\r\n\r\n/***\r\n *\r\n * TODO: Titleist needs to write the ajax call here. Fake sample timer shows results options.\r\n * I think that you could move this function outside of this file if that helps.\r\n * Valid ids: t100, t150, t200, t350, 620mb, 620cb\r\n *\r\n */\r\nwindow.submitResultsForm = function (email, primaryId, alternateId, primaryFIid, alternateFIid) {\r\n\tconsole.log(\"window.submitResultsForm: \" + email + \" primaryId: \" + primaryId + \", alternateId: \" + alternateId)\r\n\t//Put ajax calls here using parameter variable?\r\n\t//debugger;\r\n\tvar xmlhttp = new XMLHttpRequest() // new HttpRequest instance\r\n\txmlhttp.onreadystatechange = function () {\r\n\t\tif (xmlhttp.readyState == 4) {\r\n\t\t\tif (xmlhttp.responseText != undefined) {\r\n\t\t\t\tlet responseM = JSON.parse(xmlhttp.responseText)\r\n\t\t\t\tif (responseM.Message == \"Success\") window.showResultsSuccess()\r\n\t\t\t\telse window.showResultsError()\r\n\t\t\t} else {\r\n\t\t\t\twindow.showResultsError()\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\t//debugger;\r\n\txmlhttp.open(\"POST\", resutlsHook);\r\n\tvar formData = new FormData()\r\n\tlet terms = document.querySelectorAll(\"#terms\")\r\n\tlet optin = false\r\n\r\n\tif (terms && terms[0].checked) {\r\n\t\toptin = true\r\n\t}\r\n\tformData.append(\"email\", email)\r\n\tformData.append(\"products\", primaryId)\r\n\tformData.append(\"products\", alternateId)\r\n\tformData.append(\"productids\", primaryFIid)\r\n\tformData.append(\"productids\", alternateFIid)\r\n\tformData.append(\"source\", \"Iron Selector\")\r\n\tformData.append(\"optin\", optin)\r\n\t//var jsondata = JSON.stringify({email: email, products : [primaryId, alternateId], source: \"Iron Selector\"});\r\n\txmlhttp.send(formData)\r\n\t// fake timer here and sample for success and error results.\r\n\t//setTimeout( function () {\r\n\t// just showing error if you use this email address for testing\r\n\t//if (email.toLowerCase() === 'error@error.com') {\r\n\t//if error\r\n\t//window.showResultsError();\r\n\t//} else {\r\n\t//if success\r\n\t//window.showResultsSuccess();\r\n\t//}\r\n\r\n\t//}, 1200);\r\n}\r\n"],"sourceRoot":""}