{"version":3,"file":"goalCalculator.js","mappings":"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","sources":["webpack://MandG/./src/js/legacy/qna.js","webpack://MandG/./src/js/legacy/tools-global.js","webpack://MandG/webpack/bootstrap","webpack://MandG/webpack/runtime/compat get default export","webpack://MandG/webpack/runtime/define property getters","webpack://MandG/webpack/runtime/hasOwnProperty shorthand","webpack://MandG/./src/js/legacy/goal-calc.js"],"sourcesContent":["\r\n(function () {\r\n\r\n \"use strict\";\r\n\r\n $(document).ready(function () {\r\n\r\n var $doc = $(this);\r\n\r\n var qnaClass = function () {\r\n\r\n var answers = {},\r\n qnaActive = true,\r\n currentToolType;\r\n\r\n\r\n this.init = function (params) {\r\n\r\n params = params || {};\r\n\r\n var paramDefaults = {\r\n callbacks: {\r\n onFinalQuestionComplete: function () {\r\n // This method is overwritten in 'tools-global.js'.\r\n }\r\n },\r\n\r\n toolType: false\r\n };\r\n\r\n if (!params.toolType) {\r\n window.console.warn('QnA init failed. Parameter \"toolType\" is required');\r\n return false;\r\n } else {\r\n main($.extend(true, {}, paramDefaults, params));\r\n currentToolType = params.toolType;\r\n }\r\n };\r\n\r\n this.isActive = function () {\r\n return qnaActive;\r\n };\r\n\r\n this.getCurrentToolType = function () {\r\n return currentToolType;\r\n };\r\n\r\n /**\r\n *\r\n * @param params\r\n */\r\n function main(params) {\r\n\r\n var counter = {\r\n current: 1,\r\n max: $('.questions-block .question').length\r\n },\r\n qnaLoader = {\r\n\r\n setCounterMaxValue: function () {\r\n\r\n $('.counter-block .max').text(counterFormat(counter.max));\r\n\r\n },\r\n\r\n setCounterCurrentValue: function () {\r\n\r\n $('.counter-block .current').text(counterFormat(counter.current));\r\n\r\n },\r\n\r\n displayCurrentQuestion: function () {\r\n\r\n var $loader = this,\r\n $question = $('.question'),\r\n $currentQuestionElem = $question.eq(counter.current - 1),\r\n $categoryHeading = $('.section-title'),\r\n $hasMultipleChoice = (typeof $currentQuestionElem.attr('data-has-multiple') === 'undefined') ? false : true,\r\n categoryHeading = $currentQuestionElem.attr('data-category-heading') || false,\r\n isMobile = navigator.userAgent.match(/(iPad)|(iPhone)|(iPod)|(android)|(webOS)/i);\r\n var $QuestionInput = $currentQuestionElem.find('.input-block>input').hasClass(\"skip\");\r\n\r\n if ($QuestionInput && counter.current === counter.max) {\r\n $currentQuestionElem.find(\"button.next\").click();\r\n }\r\n if ($QuestionInput && counter.current !== counter.max) {\r\n counter.current++;\r\n $currentQuestionElem = $question.eq(counter.current - 1);\r\n //$currentQuestionElem.find(\"button.next\").click();\r\n }\r\n $question.removeClass('show');\r\n $loader.setCounterCurrentValue();\r\n $currentQuestionElem.addClass('show');\r\n\r\n if (categoryHeading && categoryHeading !== $categoryHeading.text()) {\r\n\r\n $categoryHeading.addClass('hide');\r\n\r\n setTimeout(function () {\r\n\r\n $categoryHeading.text(categoryHeading);\r\n\r\n }, 400);\r\n\r\n $categoryHeading.removeClass('hide');\r\n\r\n }\r\n\r\n setTimeout(function () {\r\n\r\n // New functionality for answers that have more than one option.\r\n if ($hasMultipleChoice === true) {\r\n\r\n var questionToShow = answers[Object.keys(answers)[Object.keys(answers).length - 1]],\r\n $multipleChoiceQuestion = $('.multiple-choice-question');\r\n\r\n $multipleChoiceQuestion.filter(function () {\r\n\r\n var $this = $(this),\r\n currentQuestionNames = $this.data('question-names').split(',');\r\n\r\n $.each(currentQuestionNames, function (index) {\r\n\r\n if (questionToShow === currentQuestionNames[index]) {\r\n\r\n $this.removeClass('hide');\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 $currentQuestionElem.css({ opacity: 1 });\r\n\r\n if (!isMobile) {\r\n $('input', $currentQuestionElem).focus();\r\n }\r\n\r\n }, 400);\r\n\r\n // If the first question is being displayed, don't scroll.\r\n if (counter.current === 1) {\r\n return;\r\n }\r\n\r\n // // Animate the scroll to desired position.\r\n // $('html, body').stop().animate({\r\n // scrollTop: ($('.QA-main .content-block-60').offset().top - ($('.header.headroom').height() + 10))\r\n // }, 400);\r\n\r\n },\r\n\r\n nextButton: function () {\r\n\r\n var loader = this;\r\n\r\n $doc.on('click', 'button.next', function () {\r\n\r\n counter.max = $('.questions-block .question').length;\r\n $('.counter-block .max').text(counterFormat(counter.max));\r\n var $inputElem = $(this).closest('.question').find('.question-controls input, .question-controls .icon-group');\r\n\r\n storeCurrentAnswer($inputElem, getInputElemType($inputElem));\r\n\r\n console.log($inputElem.length);\r\n\r\n while (i < $inputElem.length) {\r\n $inputElem[i].data('goal');\r\n i++;\r\n }\r\n if(window.gaTracking){\r\n window.gaTracking.sendEvent(\r\n 'submit',\r\n window.location.pathname + '/' + $('h2', '.question-text:eq(' + (counter.current - 1) + ')').text(),\r\n 'Completed question ' + counter.current + ' of ' + counter.max,\r\n ($inputElem.val() === '') ? $inputElem.data('goal') : $inputElem.val(),\r\n ''\r\n );\r\n }\r\n if (counter.current !== counter.max) {\r\n counter.current++;\r\n loader.displayCurrentQuestion();\r\n } else {\r\n\r\n qnaActive = false;\r\n params.callbacks.onFinalQuestionComplete(answers);\r\n\r\n // Animate the scroll to desired position.\r\n $('html, body').stop().animate({\r\n scrollTop: ($('.result-chart-block').offset().top - ($('.header.headroom').height() + 10))\r\n }, 400);\r\n\r\n }\r\n });\r\n\r\n function storeCurrentAnswer($inputElem, elemType) {\r\n var key = null,\r\n val = null;\r\n\r\n switch (elemType) {\r\n\r\n case 'input':\r\n if ($inputElem.length === 3) {\r\n key = 'education-costs';\r\n val = {\r\n 'primary-school-cost': $inputElem.eq(0).val(),\r\n 'high-school-cost': $inputElem.eq(1).val(),\r\n 'tertiary-cost': $inputElem.eq(2).val(),\r\n };\r\n }\r\n else {\r\n key = $inputElem.attr('data-prepop-id');\r\n val = $inputElem.val();\r\n }\r\n break;\r\n\r\n case 'ul':\r\n key = $inputElem.attr('data-prepop-id');\r\n val = (typeof $inputElem.attr('data-goal') !== \"undefined\") ? $inputElem.attr('data-goal') : $inputElem.attr('data-selected-id');\r\n break;\r\n\r\n default:\r\n throw '\"elemType\" is not defined on switch statement.';\r\n }\r\n\r\n answers[key] = {};\r\n answers[key] = val;\r\n\r\n }\r\n\r\n function getInputElemType($inputElem) {\r\n\r\n return $inputElem[0].tagName.toLowerCase();\r\n\r\n }\r\n },\r\n\r\n inputValidation: function () {\r\n\r\n $('.question').each(function () {\r\n\r\n var $questionElem = $(this);\r\n\r\n function showNextButton() {\r\n $questionElem.find(\"button.next\").addClass(\"enabled\");\r\n }\r\n\r\n function hideNextButton() {\r\n $questionElem.find('button.next').removeClass('enabled');\r\n }\r\n\r\n $questionElem.find('.input-block input').on('keyup', function () {\r\n if (this.validity.valid) {\r\n showNextButton();\r\n } else {\r\n hideNextButton();\r\n }\r\n });\r\n\r\n $questionElem.find('.choose-your-goal li').on('click', function () {\r\n\r\n var $this = $(this);\r\n\r\n $this.addClass('active').siblings('.goal-icon').removeClass('active');\r\n showNextButton();\r\n\r\n });\r\n\r\n $questionElem.find('.radio-group li label').on('click', function () {\r\n\r\n var $this = $(this);\r\n\r\n $this.addClass('active').parent().siblings('.goal-icon').find('label').removeClass('active');\r\n showNextButton();\r\n\r\n });\r\n\r\n $questionElem.find('.icon-group.dropdown-menu li').off().on('click', function () {\r\n\r\n var $this = $(this);\r\n\r\n $this.addClass('active').siblings('.goal-icon').removeClass('active');\r\n showNextButton();\r\n\r\n });\r\n\r\n $questionElem.find('.icon-group.select-tax.dropdown-menu li').off().on('click', function () {\r\n\r\n var $this = $(this);\r\n\r\n $this.addClass('active').siblings('.goal-icon').removeClass('active');\r\n showNextButton();\r\n\r\n });\r\n\r\n $questionElem.find('.icon-group.select-month.dropdown-menu li').off().on('click', function () {\r\n\r\n var $this = $(this);\r\n\r\n $this.addClass('active').siblings('.goal-icon').removeClass('active');\r\n showNextButton();\r\n\r\n });\r\n\r\n $questionElem.find('.icon-group.select-year.dropdown-menu li').off().on('click', function () {\r\n\r\n var $this = $(this);\r\n\r\n $this.addClass('active').siblings('.goal-icon').removeClass('active');\r\n showNextButton();\r\n\r\n });\r\n\r\n });\r\n }\r\n };\r\n\r\n for (var i in qnaLoader) {\r\n if (qnaLoader[i].hasOwnProperty) {\r\n qnaLoader[i]();\r\n }\r\n }\r\n\r\n\r\n function counterFormat(number) {\r\n\r\n return number > 9 ? number + '' : '0' + number;\r\n\r\n }\r\n }\r\n };\r\n\r\n window._QnA = new qnaClass();\r\n\r\n });\r\n\r\n})();\r\n","/*\r\n * We will use a self executing/anonomous function to protect the private variables and methods.\r\n * We also add the ; incase a the previous code has not been closed off when we concatenate our source code later for production.\r\n */\r\n;(function() {\r\n\r\n\t\"use strict\";\r\n\t\r\n\t$(document).ready(function() {\r\n\r\n\t\tvar $doc = $(this),\r\n\t\t\tqna = window._QnA;\r\n\t\t\r\n\t\tif (!qna) {\r\n\r\n\t\t\tapplyToolGlobalCode();\r\n\r\n\t\t} else {\r\n\r\n\t\t\tvar w_qnaToolTypeCheck = setInterval(function() {\r\n\r\n\t\t\t\tif (getToolType()) {\r\n\r\n\t\t\t\t\tapplyToolGlobalCode();\r\n\t\t\t\t\tclearInterval(w_qnaToolTypeCheck);\r\n\r\n\t\t\t\t}\r\n\t\t\t}, 200);\r\n\r\n\t\t}\r\n\r\n function getToolType() {\r\n\r\n var toolType = null;\r\n\r\n if(qna) {\r\n\r\n\t\t\t\ttoolType = qna.getCurrentToolType();\r\n\r\n } else {\r\n\r\n\t\t\t\ttoolType = window.toolType;\r\n\r\n }\r\n\r\n return toolType;\r\n }\r\n\r\n\t\tfunction applyToolGlobalCode() {\r\n\r\n\t\t\t$doc.on(\"keypress\", function(e) {\r\n\r\n\t\t\t\tvar keycodes = {\r\n\t\t\t\t\t\tenter : 13\r\n\t\t\t\t\t},\r\n\t\t\t\t\tisQnaActive;\r\n\r\n\t\t\t\tif(qna) {\r\n\r\n\t\t\t\t\tisQnaActive = qna.isActive();\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t\tfunction keyCheckHandler() {\r\n\r\n\t\t\t\t\tif (e.keyCode === keycodes.enter) {\r\n\r\n\t\t\t\t\t\tif (isQnaActive) {\r\n\r\n\t\t\t\t\t\t\tqnaControlHandler();\r\n\r\n\t\t\t\t\t\t} else {\r\n\r\n\t\t\t\t\t\ttoolControlHandler(getToolType());\r\n\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t\tkeyCheckHandler();\r\n\r\n\t\t\t});\r\n\r\n\t\t\tfunction qnaControlHandler() {\r\n\r\n\t\t\t\t$(\".question.show .next.enabled\").click();\r\n\r\n\t\t\t}\r\n\r\n\t\t\tfunction toolControlHandler(tooltype) {\r\n\r\n\t\t\t\tvar tooltypeList = {\r\n\r\n\t\t\t\t\t\"retirement-calc\" : function() {\r\n\t\t\t\t\t\t// Currently we don't use this but it is here for future usages.\r\n\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\"goal-calc\" : function() {\r\n\t\t\t\t\t\t$(\".calculate\").click();\r\n },\r\n\r\n \"education-calc\": function () {\r\n $(\".calculate\").click();\r\n },\r\n\r\n \"tax-free\" : function() {\r\n $(\".calculate\").click();\r\n },\r\n\r\n\t\t\t\t\t\"fund-picker\" : function() {\r\n\t\t\t\t\t\t$(\".lookup-funds\").click();\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\r\n\t\t\t\ttooltypeList[tooltype]();\r\n\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\t// END: applyToolGlobalCode();\r\n\r\n\t});\r\n\t// End : Document.ready();\r\n\r\n})();\r\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","import \"/src/css/legacy/goal-calc.css\";\r\nimport \"/src/css/legacy/fundpicker.css\";\r\nimport \"/src/css/legacy/funds.css\";\r\nimport \"/src/css/legacy/our-tools.css\";\r\n\r\nimport \"/src/js/legacy/qna.js\";\r\n\r\n(function () {\r\n\t\"use strict\";\r\n\r\n\t$(document).ready(function () {\r\n\t\tdocument.getElementById(\"goalText\").value = \"\";\r\n\r\n\t\tvar $doc = $(this),\r\n\t\t\t$goalElem,\r\n\t\t\tcurrentGoal = \"\",\r\n\t\t\tcurrentSpecify = \"\",\r\n\t\t\tqnaComplete = false,\r\n\t\t\tf = window.formatNumber.toRandFormat,\r\n\t\t\tqnaChecker = setInterval(function () {\r\n\t\t\t\tif (typeof window._QnA !== \"undefined\") {\r\n\t\t\t\t\twindow._QnA.init({\r\n\t\t\t\t\t\tcallbacks: {\r\n\t\t\t\t\t\t\tonFinalQuestionComplete: function (answers) {\r\n\t\t\t\t\t\t\t\tsendFacebookToolCompletedEvent('Goal Calculator');\r\n\t\t\t\t\t\t\t\tfor (var i in answers) {\r\n\t\t\t\t\t\t\t\t\tif (answers[i].hasOwnProperty) {\r\n\t\t\t\t\t\t\t\t\t\tif (i === \"choose-goal\") {\r\n\t\t\t\t\t\t\t\t\t\t\t$(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\".dropdown button[data-prepop-id='\" +\r\n\t\t\t\t\t\t\t\t\t\t\t\t\ti +\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"']\"\r\n\t\t\t\t\t\t\t\t\t\t\t).html(answers[i]);\r\n\t\t\t\t\t\t\t\t\t\t\t//alert(answers[i]);\r\n\t\t\t\t\t\t\t\t\t\t\tif (answers[i] !== \"Other\") {\r\n\t\t\t\t\t\t\t\t\t\t\t\t$(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\".field.otherDetail.other-detail\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t.closest(\".input-row\")\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t.addClass(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"hidden optional-row\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t\t$(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\".field.otherDetail.other-detail\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t.closest(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\".goal-calc-input-row\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t.removeClass(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\"hidden optional-row\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t\t\t\t//alert($('.field.otherDetail.other-detail').val)\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\t\t$(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\".goal-calc-fields input[data-prepop-id='\" +\r\n\t\t\t\t\t\t\t\t\t\t\t\t\ti +\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"']\"\r\n\t\t\t\t\t\t\t\t\t\t\t).val(answers[i]);\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tqnaComplete = true;\r\n\t\t\t\t\t\t\t\tvar goalText =\r\n\t\t\t\t\t\t\t\t\tdocument.getElementById(\"goalText\").value;\r\n\t\t\t\t\t\t\t\t// localStorage.setItem('lastname', goalText);\r\n\t\t\t\t\t\t\t\tdocument.getElementById(\"specifyGoal\").value =\r\n\t\t\t\t\t\t\t\t\tgoalText; //sessionStorage.getItem('lastname');\r\n\r\n\t\t\t\t\t\t\t\t$(\".QA-main\").css({ display: \"none\" });\r\n\t\t\t\t\t\t\t\t$(\".goal-calc-container\").addClass(\"show\");\r\n\t\t\t\t\t\t\t\t$(\".goal-calc-fields input\")\r\n\t\t\t\t\t\t\t\t\t.eq(0)\r\n\t\t\t\t\t\t\t\t\t.trigger(\"keypress\");\r\n\r\n\t\t\t\t\t\t\t\t$(\".goal-calc-fields input\").keyup(function () {\r\n\t\t\t\t\t\t\t\t\t$(\".calculate\").click();\r\n\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t\t\t\t\t$(\".goal-calc-main\")\r\n\t\t\t\t\t\t\t\t\t\t.addClass(\"show\")\r\n\t\t\t\t\t\t\t\t\t\t.css({ opacity: 1 });\r\n\t\t\t\t\t\t\t\t\t$(\".calculate\").click();\r\n\t\t\t\t\t\t\t\t}, 400);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t// END: onFinalQuestionComplete().\r\n\t\t\t\t\t\t},\r\n\r\n\t\t\t\t\t\ttoolType: \"goal-calc\"\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t$(\".cost-of-goal\").on(\"keyup keydown paste\", function () {\r\n\t\t\t\t\t\t// Get a jQuery reference to the current DOM object.\r\n\t\t\t\t\t\tvar $this = $(this),\r\n\t\t\t\t\t\t\t// Get a clean string without any comma seperators.\r\n\t\t\t\t\t\t\t// strippedNumber = $this.val();\r\n\t\t\t\t\t\t\tstrippedNumber = $this.val().replace(/,/g, \"\");\r\n\t\t\t\t\t\t// alert(strippedNumber)\r\n\t\t\t\t\t\t// If the number is polluted with other characters...\r\n\t\t\t\t\t\tif (isNaN(Number(strippedNumber))) {\r\n\t\t\t\t\t\t\t// ...Go no further.\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif ($this.val().replace(/,/g, \"\") < 10000) {\r\n\t\t\t\t\t\t\t$(\"span.cost-of-goal-alert\").removeClass(\"valid\");\r\n\t\t\t\t\t\t\t$(\"#lumpsumMax\").text(\r\n\t\t\t\t\t\t\t\t\"Minimum lum sum amount is R10 000\"\r\n\t\t\t\t\t\t\t); // this only apply to the input field on the info step or result step\r\n\t\t\t\t\t\t\t$(\"#lumpsumMax\")\r\n\t\t\t\t\t\t\t\t.closest(\"p\")\r\n\t\t\t\t\t\t\t\t.removeClass(\"is-valid\")\r\n\t\t\t\t\t\t\t\t.addClass(\"not-valid\"); // so is this\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t$(\"span.cost-of-goal-alert\").addClass(\"valid\");\r\n\t\t\t\t\t\t\t$(\"#lumpsumMax\").text(\"\"); // ans this\r\n\t\t\t\t\t\t\t$(\"#lumpsumMax\")\r\n\t\t\t\t\t\t\t\t.closest(\"p\")\r\n\t\t\t\t\t\t\t\t.addClass(\"is-valid\")\r\n\t\t\t\t\t\t\t\t.removeClass(\"not-valid\"); // and this\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// If the string is at least in the thousands...\r\n\t\t\t\t\t\tif (strippedNumber.length > 4) {\r\n\t\t\t\t\t\t\t// Add the en-US local which by default seperates thousnads, millions etc...\r\n\t\t\t\t\t\t\t// More info here : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString\r\n\t\t\t\t\t\t\t// Supports these browsers : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString#Browser_compatibility\r\n\t\t\t\t\t\t\tstrippedNumber = Number(\r\n\t\t\t\t\t\t\t\tstrippedNumber\r\n\t\t\t\t\t\t\t).toLocaleString(\"en-US\", {\r\n\t\t\t\t\t\t\t\tminimumFractionDigits: 0\r\n\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t// Add the newly formatted string to the DOM.\r\n\t\t\t\t\t\t\t$this.val(strippedNumber);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tclearInterval(qnaChecker);\r\n\t\t\t\t}\r\n\t\t\t}, 50),\r\n\t\t\telemEvents = {\r\n\t\t\t\tcalculate: function () {\r\n\t\t\t\t\t$doc.on(\"click\", \".calculate\", function () {\r\n\t\t\t\t\t\tvar $resultInfoBlock = $(\".result-info-block\");\r\n\r\n\t\t\t\t\t\tgetCurrentGoal();\r\n\t\t\t\t\t\tgetCalcResults(getCalcData());\r\n\r\n\t\t\t\t\t\t$resultInfoBlock.removeClass(\"show\");\r\n\r\n\t\t\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t\t\t$resultInfoBlock.addClass(\"show\");\r\n\t\t\t\t\t\t}, 1000);\r\n\r\n\t\t\t\t\t\tfunction getCurrentGoal() {\r\n\t\t\t\t\t\t\tif (qnaComplete) {\r\n\t\t\t\t\t\t\t\t// alert(\"vvvv\");\r\n\t\t\t\t\t\t\t\tcurrentGoal = $(\".input-row .btn\").text();\r\n\r\n\t\t\t\t\t\t\t\tcurrentSpecify = $(\r\n\t\t\t\t\t\t\t\t\t\".field.otherDetail.other-detail\"\r\n\t\t\t\t\t\t\t\t).val();\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tcurrentGoal = $(\r\n\t\t\t\t\t\t\t\t\t\".choose-your-goal .icon-group\"\r\n\t\t\t\t\t\t\t\t).attr(\"data-goal\");\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t},\r\n\r\n\t\t\t\ttoggleControls: function () {\r\n\t\t\t\t\t$doc.on(\r\n\t\t\t\t\t\t\"click\",\r\n\t\t\t\t\t\t\".increaseInvestAmountByInflation\",\r\n\t\t\t\t\t\tfunction () {\r\n\t\t\t\t\t\t\t$(this).toggleClass(\"checked\");\r\n\t\t\t\t\t\t\t$(\".calculate\").click();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t);\r\n\t\t\t\t},\r\n\r\n\t\t\t\tvalidation: function () {\r\n\t\t\t\t\tvar $inputs = $(\r\n\t\t\t\t\t\t\t\".goal-calc-input-row:not(.optional-row) input\"\r\n\t\t\t\t\t\t),\r\n\t\t\t\t\t\t$calculate = $(\".calculate\");\r\n\r\n\t\t\t\t\t$doc.on(\"keypress\", $inputs, function () {\r\n\t\t\t\t\t\tvar isValid = true;\r\n\r\n\t\t\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t\t\t$inputs.each(function () {\r\n\t\t\t\t\t\t\t\tvar $this = $(this),\r\n\t\t\t\t\t\t\t\t\thasNoVal = $this.val() === \"\";\r\n\r\n\t\t\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t\t\t($this.hasClass(\":invalid\") || hasNoVal) &&\r\n\t\t\t\t\t\t\t\t\t$this.closest(\r\n\t\t\t\t\t\t\t\t\t\t\".goal-calc-input-row:not(.hidden.optional-row)\"\r\n\t\t\t\t\t\t\t\t\t) > 0\r\n\t\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\t\tisValid = false;\r\n\t\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\tif (isValid) {\r\n\t\t\t\t\t\t\t\t$calculate.attr(\"disabled\", false);\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t$calculate.attr(\"disabled\", true);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}, 20);\r\n\t\t\t\t\t});\r\n\t\t\t\t},\r\n\r\n\t\t\t\tgoalPickerButtons: function () {\r\n\t\t\t\t\t$(document).on(\r\n\t\t\t\t\t\t\"click\",\r\n\t\t\t\t\t\t\".choose-your-goal li\",\r\n\t\t\t\t\t\tfunction () {\r\n\t\t\t\t\t\t\tvar $this = $(this);\r\n\r\n\t\t\t\t\t\t\t$goalElem = $this;\r\n\t\t\t\t\t\t\t$this.parent().attr(\"data-goal\", $this.text());\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t);\r\n\t\t\t\t},\r\n\r\n\t\t\t\tbootStrapDropdown: function () {\r\n\t\t\t\t\t$(document).on(\r\n\t\t\t\t\t\t\"click\",\r\n\t\t\t\t\t\t\".goal-calc .dropdown-menu li\",\r\n\t\t\t\t\t\tfunction () {\r\n\t\t\t\t\t\t\tvar $this = $(this);\r\n\r\n\t\t\t\t\t\t\t// alert('test');\r\n\r\n\t\t\t\t\t\t\t$goalElem = $this;\r\n\t\t\t\t\t\t\t$this\r\n\t\t\t\t\t\t\t\t.closest(\".dropdown\")\r\n\t\t\t\t\t\t\t\t.children(\".dropdown-toggle\")\r\n\t\t\t\t\t\t\t\t.text($this.text());\r\n\t\t\t\t\t\t\t// alert(\"rrrrr\");\r\n\t\t\t\t\t\t\tif ($this.text() !== \"Other\") {\r\n\t\t\t\t\t\t\t\t$(\".field.otherDetail.other-detail\")\r\n\t\t\t\t\t\t\t\t\t.closest(\".input-row\")\r\n\t\t\t\t\t\t\t\t\t.addClass(\"hidden optional-row\");\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t$(\".field.otherDetail.other-detail\")\r\n\t\t\t\t\t\t\t\t\t.closest(\".input-row\")\r\n\t\t\t\t\t\t\t\t\t.removeClass(\"hidden optional-row\");\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t$(\".calculate\").click();\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};\r\n\r\n\t\tfor (var i in elemEvents) {\r\n\t\t\tif (elemEvents[i].hasOwnProperty) {\r\n\t\t\t\telemEvents[i]();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfunction numberWithCommas(x) {\r\n\t\t\treturn x.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n\t\t}\r\n\r\n\t\tfunction getCalcData() {\r\n\t\t\tvar calcData = {\r\n\t\t\t\tOtherDetail: function () {\r\n\t\t\t\t\treturn $(\".otherDetail\").val();\r\n\t\t\t\t},\r\n\r\n\t\t\t\tCurrentCostOfGoal: function () {\r\n\t\t\t\t\treturn numberWithCommas($(\".currentCostOfGoal\").val());\r\n\t\t\t\t},\r\n\r\n\t\t\t\tTimeToSave: function () {\r\n\t\t\t\t\treturn Number($(\".timeToSave\").val());\r\n\t\t\t\t},\r\n\r\n\t\t\t\tInflation: function () {\r\n\t\t\t\t\treturn Number($(\".inflationView\").val().replace(\"%\", \"\"));\r\n\t\t\t\t},\r\n\r\n\t\t\t\tGrowthAboveInflation: function () {\r\n\t\t\t\t\treturn Number(\r\n\t\t\t\t\t\t$(\".growthAboveInflation\").val().replace(\"%\", \"\")\r\n\t\t\t\t\t);\r\n\t\t\t\t},\r\n\r\n\t\t\t\tIncreaseInvestmentAmountByInflation: function () {\r\n\t\t\t\t\treturn $(\".increaseInvestAmountByInflation\").is(\":checked\");\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\treturn {\r\n\t\t\t\tOtherDetail: calcData.OtherDetail(),\r\n\t\t\t\tCurrentCostOfGoal: calcData.CurrentCostOfGoal(),\r\n\t\t\t\tTimeToSave: calcData.TimeToSave(),\r\n\t\t\t\tInflation: calcData.Inflation(),\r\n\t\t\t\tGrowthAboveInflation: calcData.GrowthAboveInflation(),\r\n\t\t\t\tIncreaseInvestmentAmountByInflation:\r\n\t\t\t\t\tcalcData.IncreaseInvestmentAmountByInflation()\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tfunction push(date, value, data) {\r\n\t\t\tdata.push({\r\n\t\t\t\tdate: new Date(date),\r\n\t\t\t\tvalue: value\r\n\t\t\t});\r\n\r\n\t\t\treturn data;\r\n\t\t}\r\n\r\n\t\tfunction getCalcResults(data) {\r\n\t\t\tvar chartData = [],\r\n\t\t\t\tgraphData = [];\r\n\r\n\t\t\tajaxCall();\r\n\r\n\t\t\tfunction ajaxCall() {\r\n\t\t\t\t$.ajax({\r\n\t\t\t\t\ttype: \"POST\",\r\n\t\t\t\t\turl: \"/api/Services/GetGoalCalculator\",\r\n\t\t\t\t\tdata: JSON.stringify(data),\r\n\t\t\t\t\tcontentType: \"application/json\",\r\n\t\t\t\t\tdataType: \"json\",\r\n\t\t\t\t\tsuccess: function (response) {\r\n\t\t\t\t\t\t$.each(response.InvestmentValueList, function (k, v) {\r\n\t\t\t\t\t\t\tvar dateArr = k.substring(0, 10).split(\"-\");\r\n\r\n\t\t\t\t\t\t\tk =\r\n\t\t\t\t\t\t\t\tdateArr[0] +\r\n\t\t\t\t\t\t\t\t\"-\" +\r\n\t\t\t\t\t\t\t\t(dateArr[1].length === 1\r\n\t\t\t\t\t\t\t\t\t? \"0\" + dateArr[1]\r\n\t\t\t\t\t\t\t\t\t: dateArr[1]) +\r\n\t\t\t\t\t\t\t\t\"-\" +\r\n\t\t\t\t\t\t\t\t(dateArr[2].length === 1\r\n\t\t\t\t\t\t\t\t\t? \"0\" + dateArr[2]\r\n\t\t\t\t\t\t\t\t\t: dateArr[2]);\r\n\r\n\t\t\t\t\t\t\tgraphData = push(new Date(k), v, graphData);\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tchartData.push(graphData);\r\n\t\t\t\t\t\tgraphData = [];\r\n\r\n\t\t\t\t\t\t$.each(response.TotalPremiumsList, function (k, v) {\r\n\t\t\t\t\t\t\tvar dateArr = k.substring(0, 10).split(\"-\");\r\n\r\n\t\t\t\t\t\t\tk =\r\n\t\t\t\t\t\t\t\tdateArr[0] +\r\n\t\t\t\t\t\t\t\t\"-\" +\r\n\t\t\t\t\t\t\t\t(dateArr[1].length === 1\r\n\t\t\t\t\t\t\t\t\t? \"0\" + dateArr[1]\r\n\t\t\t\t\t\t\t\t\t: dateArr[1]) +\r\n\t\t\t\t\t\t\t\t\"-\" +\r\n\t\t\t\t\t\t\t\t(dateArr[2].length === 1\r\n\t\t\t\t\t\t\t\t\t? \"0\" + dateArr[2]\r\n\t\t\t\t\t\t\t\t\t: dateArr[2]);\r\n\r\n\t\t\t\t\t\t\tgraphData = push(new Date(k), v, graphData);\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tchartData.push(graphData);\r\n\t\t\t\t\t\tgraphData = [];\r\n\r\n\t\t\t\t\t\t$.each(response.LumpSumValueList, function (k, v) {\r\n\t\t\t\t\t\t\tvar dateArr = k.substring(0, 10).split(\"-\");\r\n\r\n\t\t\t\t\t\t\tk =\r\n\t\t\t\t\t\t\t\tdateArr[0] +\r\n\t\t\t\t\t\t\t\t\"-\" +\r\n\t\t\t\t\t\t\t\t(dateArr[1].length === 1\r\n\t\t\t\t\t\t\t\t\t? \"0\" + dateArr[1]\r\n\t\t\t\t\t\t\t\t\t: dateArr[1]) +\r\n\t\t\t\t\t\t\t\t\"-\" +\r\n\t\t\t\t\t\t\t\t(dateArr[2].length === 1\r\n\t\t\t\t\t\t\t\t\t? \"0\" + dateArr[2]\r\n\t\t\t\t\t\t\t\t\t: dateArr[2]);\r\n\r\n\t\t\t\t\t\t\tgraphData = push(new Date(k), v, graphData);\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tchartData.push(graphData);\r\n\t\t\t\t\t\tgraphData = [];\r\n\r\n\t\t\t\t\t\tvar chartdiv = $(\".chartdiv\")[0];\r\n\r\n\t\t\t\t\t\tplot(chartData, chartdiv);\r\n\r\n\t\t\t\t\t\tupdateResultInfoBlock();\r\n\r\n\t\t\t\t\t\tfunction updateResultInfoBlock() {\r\n\t\t\t\t\t\t\t$(\".result-info-block p\").text(resultSummaryText());\r\n\r\n\t\t\t\t\t\t\tfunction resultSummaryText() {\r\n\t\t\t\t\t\t\t\tvar premium = response.Premium,\r\n\t\t\t\t\t\t\t\t\tfutureCostOfGoal =\r\n\t\t\t\t\t\t\t\t\t\tresponse.FutureCostOfGoal,\r\n\t\t\t\t\t\t\t\t\tgoalText = goalTextFormat(),\r\n\t\t\t\t\t\t\t\t\tyr = yearTextFormat(),\r\n\t\t\t\t\t\t\t\t\tlumpSumPresentValue =\r\n\t\t\t\t\t\t\t\t\t\tresponse.LumpSumPresentValue,\r\n\t\t\t\t\t\t\t\t\ttext =\r\n\t\t\t\t\t\t\t\t\t\t\"For you to save R\" +\r\n\t\t\t\t\t\t\t\t\t\tnumberWithCommas(\r\n\t\t\t\t\t\t\t\t\t\t\tdata.CurrentCostOfGoal\r\n\t\t\t\t\t\t\t\t\t\t) +\r\n\t\t\t\t\t\t\t\t\t\t\" within \" +\r\n\t\t\t\t\t\t\t\t\t\tdata.TimeToSave +\r\n\t\t\t\t\t\t\t\t\t\t\" \" +\r\n\t\t\t\t\t\t\t\t\t\tyr +\r\n\t\t\t\t\t\t\t\t\t\t\" \" +\r\n\t\t\t\t\t\t\t\t\t\tgoalText +\r\n\t\t\t\t\t\t\t\t\t\t\", you would need an inflation-adjusted amount of \" +\r\n\t\t\t\t\t\t\t\t\t\tf(futureCostOfGoal) +\r\n\t\t\t\t\t\t\t\t\t\t\". This means you would need to invest a lump sum of \" +\r\n\t\t\t\t\t\t\t\t\t\tf(lumpSumPresentValue) +\r\n\t\t\t\t\t\t\t\t\t\t\" today or \" +\r\n\t\t\t\t\t\t\t\t\t\tf(premium) +\r\n\t\t\t\t\t\t\t\t\t\t\" per month, at an investment growth rate of \" +\r\n\t\t\t\t\t\t\t\t\t\tdata.GrowthAboveInflation +\r\n\t\t\t\t\t\t\t\t\t\t\"% above inflation.\",\r\n\t\t\t\t\t\t\t\t\ttextWithInflationToggle =\r\n\t\t\t\t\t\t\t\t\t\t\"For you to save R\" +\r\n\t\t\t\t\t\t\t\t\t\tnumberWithCommas(\r\n\t\t\t\t\t\t\t\t\t\t\tdata.CurrentCostOfGoal\r\n\t\t\t\t\t\t\t\t\t\t) +\r\n\t\t\t\t\t\t\t\t\t\t\" within \" +\r\n\t\t\t\t\t\t\t\t\t\tdata.TimeToSave +\r\n\t\t\t\t\t\t\t\t\t\t\" \" +\r\n\t\t\t\t\t\t\t\t\t\tyr +\r\n\t\t\t\t\t\t\t\t\t\t\" \" +\r\n\t\t\t\t\t\t\t\t\t\tgoalText +\r\n\t\t\t\t\t\t\t\t\t\t\", you would need an inflation-adjusted amount of \" +\r\n\t\t\t\t\t\t\t\t\t\tf(futureCostOfGoal) +\r\n\t\t\t\t\t\t\t\t\t\t\". This means you would need to invest a lump sum of \" +\r\n\t\t\t\t\t\t\t\t\t\tf(lumpSumPresentValue) +\r\n\t\t\t\t\t\t\t\t\t\t\" today or \" +\r\n\t\t\t\t\t\t\t\t\t\tf(premium) +\r\n\t\t\t\t\t\t\t\t\t\t\" per month for the first year, increasing annually by inflation, at an investment growth rate of \" +\r\n\t\t\t\t\t\t\t\t\t\tdata.GrowthAboveInflation +\r\n\t\t\t\t\t\t\t\t\t\t\"% above inflation.\";\r\n\r\n\t\t\t\t\t\t\t\tif (data.IncreaseInvestmentAmountByInflation) {\r\n\t\t\t\t\t\t\t\t\treturn textWithInflationToggle;\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\treturn text;\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tfunction goalTextFormat() {\r\n\t\t\t\t\t\t\t\tvar alias =\r\n\t\t\t\t\t\t\t\t\t$goalElem.attr(\"data-summary-alias\");\r\n\r\n\t\t\t\t\t\t\t\tif (alias !== undefined) {\r\n\t\t\t\t\t\t\t\t\treturn goalCopy(currentSpecify);\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\treturn goalCopy(currentGoal);\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tfunction goalCopy(goal) {\r\n\t\t\t\t\t\t\t\t\tif (goal.toLowerCase() === \"offshore\") {\r\n\t\t\t\t\t\t\t\t\t\treturn \"for \" + goal;\r\n\t\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t\treturn \"for your \" + goal;\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tfunction yearTextFormat() {\r\n\t\t\t\t\t\t\t\tif (data.TimeToSave === 1) {\r\n\t\t\t\t\t\t\t\t\treturn \"year\";\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\treturn \"years\";\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}\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}\r\n\t\t}\r\n\r\n\t\tfunction plot(graphData, targetElem) {\r\n\t\t\tvar chart = AmCharts.makeChart(targetElem, {\r\n\t\t\t\tautoDisplay: true,\r\n\t\t\t\ttype: \"serial\",\r\n\t\t\t\tcategoryField: \"date\",\r\n\t\t\t\tdataDateFormat: \"YYYY-MM-DD\",\r\n\t\t\t\tbackgroundColor: \"#fff\",\r\n\t\t\t\tcolor: \"#2f2f2f\",\r\n\t\t\t\tfontFamily: \"InfraSemibold\",\r\n\t\t\t\ttheme: \"dark\",\r\n\t\t\t\tcategoryAxis: {\r\n\t\t\t\t\tparseDates: true,\r\n\t\t\t\t\tdashLength: 1,\r\n\t\t\t\t\tminorGridEnabled: true\r\n\t\t\t\t},\r\n\r\n\t\t\t\tchartCursor: {\r\n\t\t\t\t\tenabled: true,\r\n\t\t\t\t\tcursorAlpha: 0,\r\n\t\t\t\t\tvalueLineAlpha: 0.2,\r\n\t\t\t\t\tvalueLineBalloonEnabled: true,\r\n\t\t\t\t\tvalueLineEnabled: true,\r\n\t\t\t\t\tzoomable: false\r\n\t\t\t\t},\r\n\t\t\t\tnumberFormatter: {\r\n\t\t\t\t\tprecision: 0,\r\n\t\t\t\t\tdecimalSeparator: \".\",\r\n\t\t\t\t\tthousandsSeparator: \",\"\r\n\t\t\t\t},\r\n\t\t\t\ttrendLines: [],\r\n\t\t\t\tgraphs: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tballoonText:\r\n\t\t\t\t\t\t\t\"
[[title]] R[[value]]
\",\r\n\t\t\t\t\t\tid: \"g1\",\r\n\t\t\t\t\t\tlegendAlpha: 1,\r\n\t\t\t\t\t\tlineColor: \"#65b4e5\",\r\n\t\t\t\t\t\tlineThickness: 2,\r\n\t\t\t\t\t\tmarkerType: \"circle\",\r\n\t\t\t\t\t\tnegativeFillAlphas: 0,\r\n\t\t\t\t\t\tnegativeLineAlpha: 0,\r\n\t\t\t\t\t\ttitle: \"Investment Value (Lump Sum)\",\r\n\t\t\t\t\t\tuseLineColorForBulletBorder: true,\r\n\t\t\t\t\t\tvalueField: \"value\"\r\n\t\t\t\t\t}\r\n\t\t\t\t],\r\n\t\t\t\tballoon: {\r\n\t\t\t\t\tborderThickness: 2,\r\n\t\t\t\t\tfillAlpha: 1,\r\n\t\t\t\t\tshadowAlpha: 0,\r\n\t\t\t\t\thorizontalPadding: 10,\r\n\t\t\t\t\tverticalPadding: 8\r\n\t\t\t\t},\r\n\t\t\t\tlegend: {\r\n\t\t\t\t\tautoMargins: false,\r\n\t\t\t\t\tenabled: true,\r\n\t\t\t\t\tequalWidths: false,\r\n\t\t\t\t\tmarginLeft: 10,\r\n\t\t\t\t\tvalueText: \"R[[value]]\",\r\n\t\t\t\t\tcolor: \"#2f2f2f\",\r\n\t\t\t\t},\r\n\t\t\t\tguides: [],\r\n\t\t\t\tvalueAxes: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tid: \"v1\",\r\n\t\t\t\t\t\taxisAlpha: 1,\r\n\t\t\t\t\t\tunit: \"R\",\r\n\t\t\t\t\t\tunitPosition: \"left\"\r\n\t\t\t\t\t}\r\n\t\t\t\t],\r\n\r\n\t\t\t\tvalueAxesSettings: {\r\n\t\t\t\t\tunit: \"R\",\r\n\t\t\t\t\tunitPosition: \"left\"\r\n\t\t\t\t},\r\n\r\n\t\t\t\tresponsive: {\r\n\t\t\t\t\tenabled: true\r\n\t\t\t\t},\r\n\r\n\t\t\t\tallLabels: [],\r\n\r\n\t\t\t\ttitles: [],\r\n\r\n\t\t\t\tdataProvider: graphData[2]\r\n\t\t\t});\r\n\r\n\t\t\tvar yAxis2 = new AmCharts.ValueAxis();\r\n\r\n\t\t\tyAxis2.position = \"left\"; // set this to \"right\" if you want it on the right\r\n\t\t\tyAxis2.unit = \"R\";\r\n\t\t\tyAxis2.offset = 30;\r\n\r\n\t\t\tchart.addValueAxis(yAxis2);\r\n\r\n\t\t\tchart.validateData(yAxis2);\r\n\r\n\t\t\t// Graph #2.\r\n\t\t\tvar graph2 = new AmCharts.AmGraph();\r\n\t\t\tgraph2.lineColor = \"#055a60\";\r\n\t\t\tgraph2.lineThickness = 2;\r\n\t\t\tgraph2.balloonText =\r\n\t\t\t\t\"
[[title]] R[[value]]
\";\r\n\t\t\tgraph2.xField = \"bx\";\r\n\t\t\tgraph2.yField = \"by\";\r\n\t\t\tgraph2.dataProvider = graphData[0];\r\n\t\t\tgraph2.valueField = \"value\";\r\n\t\t\tgraph2.yAxis = yAxis2;\r\n\t\t\tgraph2.title = \"Investment Value (Monthly Contributions)\";\r\n\t\t\tgraph2.markerType = \"circle\";\r\n\t\t\tgraph2.legendAlpha = 1;\r\n\r\n\t\t\tchart.addGraph(graph2);\r\n\r\n\t\t\tchart.write(targetElem);\r\n\r\n\t\t\tchart.validateData(graph2);\r\n\r\n\t\t\tchart.invalidateSize();\r\n\r\n\t\t\tchart.validateNow();\r\n\r\n\t\t\t//Lump Sum Present Value\r\n\t\t\tvar yAxis3 = new AmCharts.ValueAxis();\r\n\r\n\t\t\tyAxis3.position = \"left\"; // set this to \"right\" if you want it on the right\r\n\t\t\tyAxis3.unit = \"R\";\r\n\t\t\tyAxis3.offset = 30;\r\n\r\n\t\t\tchart.addValueAxis(yAxis3);\r\n\t\t\tchart.validateData(yAxis3);\r\n\r\n\t\t\t// Graph #3.\r\n\t\t\tvar graph3 = new AmCharts.AmGraph();\r\n\t\t\tgraph3.lineColor = \"#7ebd5f\";\r\n\t\t\tgraph3.lineThickness = 2;\r\n\t\t\tgraph3.balloonText =\r\n\t\t\t\t\"
[[title]] R[[value]]
\";\r\n\t\t\tgraph3.xField = \"bx\";\r\n\t\t\tgraph3.yField = \"by\";\r\n\t\t\tgraph3.dataProvider = graphData[1];\r\n\t\t\tgraph3.valueField = \"value\";\r\n\t\t\tgraph3.yAxis = yAxis3;\r\n\t\t\tgraph3.title = \"Total Contributions\";\r\n\t\t\tgraph3.markerType = \"circle\";\r\n\t\t\tgraph3.legendAlpha = 1;\r\n\r\n\t\t\tchart.addGraph(graph3);\r\n\r\n\t\t\tchart.write(targetElem);\r\n\r\n\t\t\tchart.validateData(graph3);\r\n\r\n\t\t\tchart.invalidateSize();\r\n\r\n\t\t\tchart.validateNow();\r\n\r\n\t\t\t// Animate the scroll to desired position.\r\n\t\t\t$(\"html, body\")\r\n\t\t\t\t.stop()\r\n\t\t\t\t.animate(\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tscrollTop:\r\n\t\t\t\t\t\t\t$(\".content-block-60.result-chart-block\").offset()\r\n\t\t\t\t\t\t\t\t.top -\r\n\t\t\t\t\t\t\t($(\".header.headroom\").height() + 10)\r\n\t\t\t\t\t},\r\n\t\t\t\t\t400\r\n\t\t\t\t);\r\n\t\t}\r\n\r\n\t\t// Resizes the graph on print\r\n\r\n\t\t(function () {\r\n\t\t\tvar beforePrint = function () {\r\n\t\t\t\tfor (var i = 0; i < AmCharts.charts.length; i++) {\r\n\t\t\t\t\tvar chart = AmCharts.charts[i];\r\n\t\t\t\t\tchart.div.style.width = \"780px\";\r\n\t\t\t\t\tchart.div.style.height = \"100%\";\r\n\t\t\t\t\tchart.validateNow();\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t\tvar afterPrint = function () {\r\n\t\t\t\tfor (var i = 0; i < AmCharts.charts.length; i++) {\r\n\t\t\t\t\tvar chart = AmCharts.charts[i];\r\n\t\t\t\t\tchart.div.style.width = \"100%\";\r\n\t\t\t\t\tchart.div.style.height = \"466px\";\r\n\t\t\t\t\tchart.validateNow();\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\tif (window.matchMedia) {\r\n\t\t\t\tvar mediaQueryList = window.matchMedia(\"print\");\r\n\t\t\t\tmediaQueryList.addListener(function (mql) {\r\n\t\t\t\t\tif (mql.matches) {\r\n\t\t\t\t\t\tbeforePrint();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tafterPrint();\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\twindow.onbeforeprint = beforePrint;\r\n\t\t\twindow.onafterprint = afterPrint;\r\n\t\t})();\r\n\t});\r\n})();\r\n\r\nimport \"/src/js/legacy/tools-global.js\";\r\n"],"names":["$","document","ready","$doc","this","window","_QnA","currentToolType","answers","qnaActive","init","params","toolType","console","warn","counter","current","max","length","qnaLoader","setCounterMaxValue","text","counterFormat","setCounterCurrentValue","displayCurrentQuestion","$question","$currentQuestionElem","eq","$categoryHeading","$hasMultipleChoice","attr","categoryHeading","isMobile","navigator","userAgent","match","$QuestionInput","find","hasClass","click","removeClass","addClass","setTimeout","questionToShow","Object","keys","filter","$this","currentQuestionNames","data","split","each","index","css","opacity","focus","nextButton","loader","on","$inputElem","closest","elemType","key","val","storeCurrentAnswer","tagName","toLowerCase","getInputElemType","log","i","gaTracking","sendEvent","location","pathname","callbacks","onFinalQuestionComplete","stop","animate","scrollTop","offset","top","height","inputValidation","$questionElem","showNextButton","validity","valid","siblings","parent","off","hasOwnProperty","number","main","extend","isActive","getCurrentToolType","qna","w_qnaToolTypeCheck","setInterval","getToolType","applyToolGlobalCode","clearInterval","e","isQnaActive","keyCode","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","exports","module","__webpack_modules__","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","obj","prop","prototype","call","getElementById","value","$goalElem","beforePrint","afterPrint","currentGoal","currentSpecify","qnaComplete","f","formatNumber","toRandFormat","qnaChecker","sendFacebookToolCompletedEvent","html","goalText","display","trigger","keyup","strippedNumber","replace","isNaN","Number","toLocaleString","minimumFractionDigits","elemEvents","calculate","calcData","chartData","graphData","$resultInfoBlock","OtherDetail","CurrentCostOfGoal","numberWithCommas","TimeToSave","Inflation","GrowthAboveInflation","IncreaseInvestmentAmountByInflation","is","ajax","type","url","JSON","stringify","contentType","dataType","success","response","InvestmentValueList","k","v","dateArr","substring","push","Date","TotalPremiumsList","LumpSumValueList","premium","futureCostOfGoal","yr","lumpSumPresentValue","textWithInflationToggle","chartdiv","targetElem","chart","AmCharts","makeChart","autoDisplay","categoryField","dataDateFormat","backgroundColor","color","fontFamily","theme","categoryAxis","parseDates","dashLength","minorGridEnabled","chartCursor","enabled","cursorAlpha","valueLineAlpha","valueLineBalloonEnabled","valueLineEnabled","zoomable","numberFormatter","precision","decimalSeparator","thousandsSeparator","trendLines","graphs","balloonText","id","legendAlpha","lineColor","lineThickness","markerType","negativeFillAlphas","negativeLineAlpha","title","useLineColorForBulletBorder","valueField","balloon","borderThickness","fillAlpha","shadowAlpha","horizontalPadding","verticalPadding","legend","autoMargins","equalWidths","marginLeft","valueText","guides","valueAxes","axisAlpha","unit","unitPosition","valueAxesSettings","responsive","allLabels","titles","dataProvider","yAxis2","ValueAxis","position","addValueAxis","validateData","graph2","AmGraph","xField","yField","yAxis","addGraph","write","invalidateSize","validateNow","yAxis3","graph3","plot","Premium","FutureCostOfGoal","goalCopy","goal","goalTextFormat","LumpSumPresentValue","toggleControls","toggleClass","validation","$inputs","$calculate","isValid","hasNoVal","goalPickerButtons","bootStrapDropdown","children","x","toString","date","charts","div","style","width","matchMedia","addListener","mql","matches","onbeforeprint","onafterprint"],"sourceRoot":""}