{"version":3,"file":"js/app.tcw.min.js","mappings":"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","sources":["webpack://synergy.net.au/./scripts/tcw/app.tcw.js"],"sourcesContent":["import '../../stylesheets/src/sass/tcw/tcw.scss'\r\nexport default angular\r\n .module('syTCW', ['ngRoute'])\r\n .config(function ($routeProvider, $locationProvider) {\r\n $locationProvider.html5Mode(false)\r\n $routeProvider\r\n .when('/', {\r\n name: 'List',\r\n templateUrl: '/Global/TCW/ReduceYourBillList'\r\n })\r\n .when('/Television', {\r\n name: 'TV',\r\n templateUrl: '/Global/TCW/Television'\r\n })\r\n .when('/Console', {\r\n name: 'Games console',\r\n templateUrl: '/Global/TCW/Console'\r\n })\r\n .when('/PoolPump', {\r\n name: 'Poolpump',\r\n templateUrl: '/Global/TCW/PoolPump'\r\n })\r\n .when('/Fridge', {\r\n name: 'Fridge',\r\n templateUrl: '/Global/TCW/Fridge'\r\n })\r\n .when('/AC', {\r\n name: 'Airconditioner',\r\n templateUrl: '/Global/TCW/Airconditioner'\r\n })\r\n .when('/Lighting', {\r\n name: 'Lighting',\r\n templateUrl: '/Global/TCW/Lighting'\r\n })\r\n .when('/Freezer', {\r\n name: 'Freezer',\r\n templateUrl: '/Global/TCW/Freezer'\r\n })\r\n .when('/Dishwasher', {\r\n name: 'Dishwasher',\r\n templateUrl: '/Global/TCW/Dishwasher'\r\n })\r\n .when('/Dryer', {\r\n name: 'Dryer',\r\n templateUrl: '/Global/TCW/Dryer'\r\n })\r\n .when('/Heater', {\r\n name: 'Heater',\r\n templateUrl: '/Global/TCW/Heater'\r\n })\r\n .when('/Washingmachine', {\r\n name: 'Washingmachine',\r\n templateUrl: '/Global/TCW/Washingmachine'\r\n })\r\n })\r\n .controller('tcwQueController', [\r\n '$scope',\r\n '$timeout',\r\n 'questionService',\r\n '$route',\r\n '$filter',\r\n function tcwQueController($scope, $timeout, questionService, $route, $filter) {\r\n questionService.ApplianceName = $route && $route.current ? $route.current.name : ''\r\n $scope.trackStart = false\r\n\r\n handleQuestions()\r\n\r\n function clearRenderingControls() {\r\n const appliances = [\r\n 'AverageSlider',\r\n 'HomeType',\r\n 'HomeSize',\r\n 'HouseholdSize',\r\n 'Television',\r\n 'Console',\r\n 'PoolPump',\r\n 'Fridge',\r\n 'AirconditionerType',\r\n 'DaysOfWeek',\r\n 'AirconditionerUsage',\r\n 'LightTypes',\r\n 'LightingUsage',\r\n 'Freezer',\r\n 'LightSlider',\r\n 'HeaterType',\r\n 'HeaterUsage',\r\n 'WashingmachineType'\r\n ]\r\n\r\n appliances.forEach((appliance) => {\r\n const applianceElement = document.getElementById(appliance)\r\n if (applianceElement) {\r\n applianceElement.innerHTML = ''\r\n const hash = window.location.hash\r\n const path = hash.substring(hash.indexOf('/') + 1)\r\n applianceElement.classList.add(`${path}-${appliance}`)\r\n }\r\n })\r\n }\r\n\r\n function checkLightingUsageDisabled() {\r\n var countActive = 0\r\n var counthoursSel = 0\r\n var countnumberOfLightsSel = 0\r\n angular.forEach(questionService.LightingUsage, function (obj, key) {\r\n if (obj.active) {\r\n countActive++\r\n }\r\n if (obj.active && obj.hoursPerDay && obj.hoursPerDay > 0) {\r\n counthoursSel++\r\n }\r\n if (obj.active && obj.numberOfLights && obj.numberOfLights > 0) {\r\n countnumberOfLightsSel++\r\n }\r\n })\r\n if (\r\n countActive === counthoursSel &&\r\n countActive === countnumberOfLightsSel &&\r\n counthoursSel === countnumberOfLightsSel\r\n ) {\r\n return false\r\n }\r\n return true\r\n }\r\n\r\n function checkHeaterUsageDisabled() {\r\n var isDisabled = true\r\n angular.forEach(questionService.HeaterUsage.hours, function (obj, key) {\r\n if (obj.hoursPerDay && obj.hoursPerDay > 0) {\r\n isDisabled = false\r\n }\r\n })\r\n return isDisabled\r\n }\r\n $scope.disableNext = function () {\r\n $scope.disableNextAverageSlider = questionService.LastEnergyBill > 0 ? false : true\r\n $scope.disableNextHomeType = questionService.HouseType ? false : true\r\n $scope.disableNextHomeSize =\r\n questionService.HomeSize.Bedrooms > 0 && questionService.HomeSize.Bathrooms > 0 ? false : true\r\n $scope.disableNextHouseholdSize =\r\n questionService.HouseholdSize.Adults > 0 || questionService.HouseholdSize.Children > 0\r\n ? false\r\n : true\r\n $scope.disableNextLocation = questionService.Suburb ? false : true\r\n $scope.disableNextTelevision = questionService.Television.televisions > 0 ? false : true\r\n $scope.disableNextConsole = questionService.Console.consoles > 0 ? false : true\r\n $scope.disableNextPoolPump = questionService.PoolPump.value > 0 ? false : true\r\n $scope.disableNextFridge =\r\n questionService.Fridge.fridges.Large > 0 ||\r\n questionService.Fridge.fridges.Medium > 0 ||\r\n questionService.Fridge.fridges.Small > 0\r\n ? false\r\n : true\r\n $scope.disableNextAirconditionerType = questionService.AirconditionerType ? false : true\r\n $scope.disableNextDaysOfWeek =\r\n $filter('filter')(questionService.DaysOfWeek, { active: true }, true).length > 0 ? false : true\r\n $scope.disableNextAirconditionerUsage = questionService.AirconditionerUsage.temperature ? false : true\r\n $scope.disableNextLightTypes =\r\n $filter('filter')(questionService.LightTypes, { active: true }, true).length > 0 ? false : true\r\n $scope.disableNextLightingUsage = checkLightingUsageDisabled()\r\n $scope.disableNextFreezer =\r\n questionService.Freezer.freezers.Large > 0 || questionService.Freezer.freezers.Small > 0\r\n ? false\r\n : true\r\n $scope.disableNextLightSlider = questionService.LightSlider > 0 ? false : true\r\n $scope.disableNextHeaterType = questionService.HeaterType ? false : true\r\n $scope.disableNextHeaterUsage = checkHeaterUsageDisabled()\r\n $scope.disableNextWashingmachineType = questionService.WashingmachineType ? false : true\r\n if (\r\n !$scope.disableNextAverageSlider ||\r\n !$scope.disableNextHomeType ||\r\n !$scope.disableNextHomeSize ||\r\n !$scope.disableNextHouseholdSize ||\r\n !$scope.disableNextLocation ||\r\n $scope.disableNextTelevision ||\r\n $scope.disableNextConsole ||\r\n $scope.disableNextPoolPump ||\r\n $scope.disableNextFridge ||\r\n $scope.disableNextAirconditionerType ||\r\n $scope.disableNextDaysOfWeek ||\r\n $scope.disableNextAirconditionerUsage ||\r\n $scope.disableNextLightTypes ||\r\n $scope.disableNextLightingUsage ||\r\n $scope.disableNextFreezer ||\r\n $scope.disableNextLightSlider ||\r\n $scope.disableNextHeaterType ||\r\n $scope.disableNextWashingmachineType ||\r\n $scope.disableNextHeaterUsage\r\n ) {\r\n if (!$scope.trackStart) {\r\n $timeout(function () {\r\n if (questionService.SecResult && !$scope.resultTracked) {\r\n questionService.ResultFirstBtnLabel = $('#firstButton').attr(\r\n 'sy-adobe-analytics-tool-interaction'\r\n )\r\n questionService.trackEnergyToolsResult()\r\n $scope.resultTracked = true\r\n }\r\n }, 2000)\r\n $scope.trackStart = true\r\n }\r\n }\r\n }\r\n\r\n $scope.enableComponent = function () {\r\n if (!$scope.disableNextAverageSlider) {\r\n $scope.btnNextClick('sec-AverageSlider', '', 'true')\r\n }\r\n if (!$scope.disableNextHomeType) {\r\n $scope.btnNextClick('sec-HomeType', '', 'true')\r\n }\r\n if (!$scope.disableNextHouseholdSize) {\r\n $scope.btnNextClick('sec-HouseholdSize', '', 'true')\r\n }\r\n if (!$scope.disableNextHomeSize) {\r\n $scope.btnNextClick('sec-HomeSize', '', 'true')\r\n }\r\n if (!$scope.disableNextLocation) {\r\n $scope.btnNextClick('sec-Location', '', 'true')\r\n }\r\n if (!$scope.disableNextTelevision) {\r\n $scope.btnNextClick('sec-Television', '', 'true')\r\n }\r\n if (!$scope.disableNextConsole) {\r\n $scope.btnNextClick('sec-Console', '', 'true')\r\n }\r\n if (!$scope.disableNextPoolPump) {\r\n $scope.btnNextClick('sec-PoolPump', '', 'true')\r\n }\r\n if (!$scope.disableNextFridge) {\r\n $scope.btnNextClick('sec-Fridge', '', 'true')\r\n }\r\n if (!$scope.disableNextAirconditionerType) {\r\n $scope.btnNextClick('sec-AirconditionerType', '', 'true')\r\n }\r\n if (!$scope.disableNextDaysOfWeek) {\r\n $scope.btnNextClick('sec-DaysOfWeek', '', 'true')\r\n }\r\n if (!$scope.disableNextAirconditionerUsage) {\r\n $scope.btnNextClick('sec-AirconditionerUsage', '', 'true')\r\n }\r\n if (!$scope.disableNextLightTypes) {\r\n $scope.btnNextClick('sec-LightTypes', '', 'true')\r\n }\r\n if (!$scope.disableNextLightingUsage) {\r\n $scope.btnNextClick('sec-LightingUsage', '', 'true')\r\n }\r\n if (!$scope.disableNextFreezer) {\r\n $scope.btnNextClick('sec-Freezer', '', 'true')\r\n }\r\n if (!$scope.disableNextLightSlider) {\r\n $scope.btnNextClick('sec-LightSlider', '', 'true')\r\n }\r\n if (!$scope.disableNextHeaterType) {\r\n $scope.btnNextClick('sec-HeaterType', '', 'true')\r\n }\r\n if (!$scope.disableNextHeaterUsage) {\r\n $scope.btnNextClick('sec-HeaterUsage', '', 'true')\r\n }\r\n if (!$scope.disableNextWashingmachineType) {\r\n $scope.btnNextClick('sec-WashingmachineType', '', 'true')\r\n }\r\n }\r\n\r\n $scope.btnNextClick = function (id, scroll, addSteps) {\r\n var self = $('#' + id)\r\n var container = $(self)\r\n var nextdiv = container\r\n .nextAll('.section-container, :has(.section-container)')\r\n .first()\r\n .addClass('fadeIn')\r\n if (nextdiv.length === 0) {\r\n nextdiv = $(document).find('.section-container:first').addClass('fadeIn')\r\n }\r\n $(nextdiv).removeClass('disableControl')\r\n $(nextdiv).find('input,.tile-button').removeAttr('disabled')\r\n\r\n var stepId = $(self).find('.tcwNextBtn').attr('step')\r\n\r\n if (stepId) {\r\n if (addSteps) {\r\n $('#step-' + stepId).addClass('tcwCurrentStep')\r\n } else {\r\n $('#step-' + Number(stepId - 1)).addClass('tcwCurrentStep')\r\n }\r\n questionService.QuestionStepNumber = stepId - 1\r\n }\r\n if (scroll) {\r\n $('html, body').animate({ scrollTop: nextdiv.offset().top - 45 }, 1000)\r\n }\r\n if (questionService.ApplianceName) {\r\n //QuestionService.trackEnergyToolsAppliances();\r\n } else {\r\n if (!$scope.modifyQuestion) {\r\n questionService.trackEnergyTools()\r\n }\r\n }\r\n }\r\n\r\n const dialPalette = [\r\n '#CCDDFF',\r\n '#B2C8F4',\r\n '#99B4EA',\r\n '#82A1DF',\r\n '#6C8ED4',\r\n '#5277C0',\r\n '#3B61AC',\r\n '#3B61AC',\r\n '#284D98',\r\n '#183C84',\r\n '#0B2D70',\r\n '#073667',\r\n '#063A62',\r\n '#043F5E',\r\n '#024359',\r\n '#02526C',\r\n '#02607F',\r\n '#036F92',\r\n '#037DA6',\r\n '#048CB9',\r\n '#049ACC',\r\n '#36B3DD',\r\n '#71CFEE',\r\n '#B3EBFF'\r\n ]\r\n\r\n const tvColor = '#183C84'\r\n const consoleColor = '#284D98';\r\n\r\n $scope.AverageSliderParams = {\r\n labels: '',\r\n colors: ['#5A1F8B', '#2D329A', '#90107E', '#BF0472', '#E03E77', '#E7587A', '#F07A7E'],\r\n title: ''\r\n }\r\n $scope.HomeTypeParams = { labels: ['House', 'Unit', 'Townhouse', 'Apartment'], colors: '', title: '' }\r\n $scope.HomeSizeParams = { labels: ['Bedrooms', 'Bathrooms'], colors: '', title: '' }\r\n $scope.HouseholdSizeParams = { labels: ['Adults', 'Children'], colors: '', title: '' }\r\n $scope.TelevisionParams = {\r\n labels: undefined,\r\n colors: undefined,\r\n monitorColor: tvColor,\r\n wallSwitchButtonColor: tvColor,\r\n wallSwitchPlugColor: tvColor,\r\n wallSwitchCordColor: '#36B3DD',\r\n title: undefined\r\n }\r\n $scope.ConsoleParams = {\r\n labels: undefined,\r\n colors: undefined,\r\n monitorColor: consoleColor,\r\n wallSwitchButtonColor: consoleColor,\r\n wallSwitchPlugColor: consoleColor,\r\n wallSwitchCordColor: '#36B3DD',\r\n title: undefined\r\n }\r\n $scope.PoolPumpParams = { labels: undefined, colors: undefined, title: undefined }\r\n $scope.FridgeParams = { labels: undefined, colors: undefined, title: undefined }\r\n $scope.AirconditionerTypeParams = { labels: undefined, colors: undefined, title: undefined }\r\n $scope.DaysOfWeekParams = { labels: undefined, colors: undefined, title: undefined }\r\n $scope.AirconditionerUsageParams = {\r\n labels: undefined,\r\n colors: undefined,\r\n tabColor: '#131E45',\r\n hourSliderPalette: dialPalette,\r\n temperaturePalette: ['#ED7F2F', '#3B61AC', '#0B2D70'],\r\n title: undefined\r\n }\r\n $scope.LightTypesParams = { labels: undefined, colors: undefined, title: undefined }\r\n $scope.LightingUsageParams = {\r\n labels: undefined,\r\n colors: undefined,\r\n tabColor: '#1D1A5B',\r\n hourSliderPalette: dialPalette,\r\n lightingPalette: ['#0B2D70', '#048CB9', '#036F92', '#ED7F2F'],\r\n lightingValueColor: '#036F92',\r\n title: undefined\r\n }\r\n $scope.FreezerParams = { labels: undefined, colors: undefined, title: undefined }\r\n $scope.LightSliderParams = { labels: undefined, colors: undefined, palette: ['#0B2D70', '#048CB9', '#036F92', '#ED7F2F'], lightingValueColor: '#036F92', title: undefined }\r\n $scope.HeaterTypeParams = { labels: undefined, colors: undefined, title: undefined }\r\n $scope.HeaterUsageParams = {\r\n labels: undefined,\r\n colors: undefined,\r\n tabColor: '#037DA6',\r\n hourSliderPalette: dialPalette,\r\n title: undefined\r\n }\r\n $scope.WashingmachineTypeParams = { labels: undefined, colors: undefined, title: undefined }\r\n\r\n function renderTCWComponent() {\r\n clearRenderingControls()\r\n $scope.question = questionService\r\n $scope.disableNext()\r\n $scope.enableComponent()\r\n setTimeout(function () {\r\n const avgSlider = document.getElementById('AverageSlider')\r\n if (avgSlider) {\r\n tcw.renderElement('AverageSlider', avgSlider, {\r\n onChange: $scope.onUsageSliderChange,\r\n defaultValue: questionService.LastEnergyBill,\r\n scaleDomain: [0, 0.4, 0.7, 1],\r\n scaleRange: [0, 500, 2000, 9990],\r\n palette: $scope.AverageSliderParams.colors\r\n })\r\n }\r\n const homeType = document.getElementById('HomeType')\r\n if (homeType) {\r\n tcw.renderElement('HomeType', homeType, {\r\n onChange: $scope.onHouseTypeChange,\r\n defaultValue: questionService.HouseType,\r\n labels: $scope.HomeTypeParams.labels\r\n })\r\n }\r\n const homeSize = document.getElementById('HomeSize')\r\n if (homeSize) {\r\n tcw.renderElement('HomeSize', homeSize, {\r\n onChange: $scope.onHomeSizeChange,\r\n defaultValue: questionService.HomeSize.value,\r\n title: $scope.HomeSizeParams.title,\r\n labels: $scope.HomeSizeParams.labels\r\n })\r\n }\r\n const houseHoldSize = document.getElementById('HouseholdSize')\r\n if (houseHoldSize) {\r\n tcw.renderElement('HouseholdSize', houseHoldSize, {\r\n onChange: $scope.onHouseholdSizeChange,\r\n defaultValue: questionService.HouseholdSize.value,\r\n title: $scope.HouseholdSizeParams.title,\r\n labels: $scope.HouseholdSizeParams.labels\r\n })\r\n }\r\n\r\n const television = document.getElementById('Television')\r\n if (television) {\r\n let {\r\n title,\r\n monitorColor,\r\n monitorTextColor,\r\n offAtWallTitle,\r\n wallSwitchButtonColor,\r\n wallSwitchPlugColor,\r\n wallSwitchCordColor\r\n } = $scope.TelevisionParams\r\n\r\n const { colors } = $scope.TelevisionParams\r\n\r\n if (colors && colors.length > 0 ) {\r\n monitorColor = colors[0] ? colors[0] : monitorColor;\r\n monitorTextColor = colors[1] ? colors[1] : monitorTextColor;\r\n wallSwitchButtonColor = colors[2] ? colors[2] : wallSwitchButtonColor;\r\n wallSwitchPlugColor = colors[3] ? colors[3] : wallSwitchPlugColor;\r\n wallSwitchCordColor = colors[4] ? colors[4] : wallSwitchCordColor;\r\n }\r\n\r\n tcw.renderElement('Television', television, {\r\n onChange: $scope.onTelevisionChange,\r\n defaultValue: questionService.Television,\r\n maxValue: 10,\r\n title,\r\n offAtWallTitle,\r\n monitorColor,\r\n monitorTextColor,\r\n wallSwitchButtonColor,\r\n wallSwitchPlugColor,\r\n wallSwitchCordColor\r\n })\r\n }\r\n const console = document.getElementById('Console')\r\n if (console) {\r\n var title = undefined\r\n var offAtWallTitle = undefined\r\n var monitorColor = $scope.ConsoleParams.monitorColor\r\n var monitorTextColor = undefined\r\n var wallSwitchButtonColor = undefined\r\n if ($scope.ConsoleParams.title && $scope.ConsoleParams.title.length > 0) {\r\n if ($scope.ConsoleParams.title[0]) {\r\n title = $scope.ConsoleParams.title[0]\r\n }\r\n if ($scope.ConsoleParams.title[1]) {\r\n offAtWallTitle = $scope.ConsoleParams.title[1]\r\n }\r\n }\r\n if ($scope.ConsoleParams.colors && $scope.ConsoleParams.colors.length > 0) {\r\n if ($scope.ConsoleParams.colors[0]) {\r\n monitorColor = $scope.ConsoleParams.colors[0]\r\n }\r\n if ($scope.ConsoleParams.colors[1]) {\r\n monitorTextColor = $scope.ConsoleParams.colors[1]\r\n }\r\n if ($scope.ConsoleParams.colors[2]) {\r\n wallSwitchButtonColor = $scope.ConsoleParams.colors[2]\r\n }\r\n }\r\n tcw.renderElement('Console', console, {\r\n onChange: $scope.onConsoleChange,\r\n defaultValue: questionService.Console,\r\n maxValue: 10,\r\n title: title,\r\n offAtWallTitle: offAtWallTitle,\r\n monitorColor: monitorColor,\r\n monitorTextColor: monitorTextColor,\r\n wallSwitchButtonColor: wallSwitchButtonColor\r\n })\r\n }\r\n const poolPump = document.getElementById('PoolPump')\r\n if (poolPump) {\r\n tcw.renderElement('PoolPump', poolPump, {\r\n onChange: $scope.onPoolPumpChange,\r\n defaultValue: questionService.PoolPump.value,\r\n title: $scope.PoolPumpParams.title,\r\n palette: $scope.PoolPumpParams.colors\r\n })\r\n }\r\n const fridge = document.getElementById('Fridge')\r\n if (fridge) {\r\n var labelSmall = undefined\r\n var labelMedium = undefined\r\n var labelLarge = undefined\r\n if ($scope.FridgeParams.labels && $scope.FridgeParams.labels.length > 0) {\r\n if ($scope.FridgeParams.labels[0]) {\r\n labelSmall = $scope.FridgeParams.labels[0]\r\n }\r\n if ($scope.FridgeParams.labels[1]) {\r\n labelMedium = $scope.FridgeParams.labels[1]\r\n }\r\n if ($scope.FridgeParams.labels[2]) {\r\n labelLarge = $scope.FridgeParams.labels[2]\r\n }\r\n }\r\n tcw.renderElement('Fridges', fridge, {\r\n onChange: $scope.onFridgeChange,\r\n defaultValue: questionService.Fridge.fridges,\r\n color: $scope.FridgeParams.colors,\r\n title: $scope.FridgeParams.title,\r\n labelSmall: labelSmall,\r\n labelMedium: labelMedium,\r\n labelLarge: labelLarge\r\n })\r\n }\r\n const airconditionerType = document.getElementById('AirconditionerType')\r\n if (airconditionerType) {\r\n tcw.renderElement('AirconditionerType', airconditionerType, {\r\n onChange: $scope.onAirconditionerTypeChange,\r\n airconditionerType: questionService.AirconditionerType,\r\n color: $scope.AirconditionerTypeParams.colors,\r\n title: $scope.AirconditionerTypeParams.title\r\n })\r\n }\r\n const daysOfweek = document.getElementById('DaysOfWeek')\r\n if (daysOfweek) {\r\n tcw.renderElement('DaysOfWeek', daysOfweek, {\r\n onChange: $scope.onDaysOfWeekChange,\r\n defaultValue: questionService.DaysOfWeek,\r\n color: $scope.DaysOfWeekParams.colors,\r\n title: $scope.DaysOfWeekParams.title\r\n })\r\n }\r\n\r\n renderAirconditionerUsage()\r\n\r\n const lightTypes = document.getElementById('LightTypes')\r\n if (lightTypes) {\r\n tcw.renderElement('LightTypes', lightTypes, {\r\n onChange: $scope.onLightTypesChange,\r\n defaultValue: questionService.LightTypes,\r\n color: $scope.LightTypesParams.colors,\r\n title: $scope.LightTypesParams.title\r\n })\r\n }\r\n\r\n renderLightingUsage()\r\n\r\n const freezer = document.getElementById('Freezer')\r\n if (freezer) {\r\n var labelSmall = undefined\r\n var labelLarge = undefined\r\n if ($scope.FreezerParams.labels && $scope.FreezerParams.labels.length > 0) {\r\n if ($scope.FreezerParams.labels[0]) {\r\n labelSmall = $scope.FreezerParams.labels[0]\r\n }\r\n if ($scope.FreezerParams.labels[1]) {\r\n labelLarge = $scope.FreezerParams.labels[1]\r\n }\r\n }\r\n tcw.renderElement('Freezers', freezer, {\r\n onChange: $scope.onFreezerTypeChange,\r\n labelSmall: labelSmall,\r\n defaultValue: questionService.Freezer.freezers,\r\n labelLarge: labelLarge,\r\n color: $scope.FreezerParams.colors,\r\n title: $scope.FreezerParams.title\r\n })\r\n }\r\n\r\n const lightSlider = document.getElementById('LightSlider')\r\n if (lightSlider) {\r\n tcw.renderElement('LightSlider', lightSlider, {\r\n onChange: $scope.onLightSliderChange,\r\n defaultValue: questionService.LightSlider,\r\n palette: $scope.LightSliderParams.palette,\r\n title: $scope.LightSliderParams.title,\r\n lightingValueColor: $scope.LightSliderParams.lightingValueColor,\r\n maxValue: 20\r\n })\r\n }\r\n\r\n const heaterType = document.getElementById('HeaterType')\r\n if (heaterType) {\r\n tcw.renderElement('HeaterType', heaterType, {\r\n onChange: $scope.onHeaterTypeChange,\r\n heaterType: questionService.HeaterType,\r\n defaultValue: questionService.DefaultHeaterType,\r\n color: $scope.HeaterTypeParams.colors,\r\n title: $scope.HeaterTypeParams.title\r\n })\r\n }\r\n renderHeaterUsage()\r\n\r\n const washingMachineType = document.getElementById('WashingmachineType')\r\n if (washingMachineType) {\r\n tcw.renderElement('WashingMachineType', washingMachineType, {\r\n onChange: $scope.onWashingmachineTypeChange,\r\n washingMachineType: questionService.WashingmachineType,\r\n defaultValue: questionService.DefaultWashingmachineType,\r\n color: $scope.WashingmachineTypeParams.colors,\r\n title: $scope.WashingmachineTypeParams.title\r\n })\r\n }\r\n }, 300)\r\n\r\n function renderAirconditionerUsage() {\r\n const airconditionUage = document.getElementById('AirconditionerUsage')\r\n if (airconditionUage) {\r\n airconditionUage.innerHTML = ''\r\n var checkdefault =\r\n $filter('filter')(questionService.DaysOfWeek, { active: true }, true).length > 0\r\n ? true\r\n : false\r\n var daysOfWeekDefault = JSON.parse(JSON.stringify(questionService.DaysOfWeek))\r\n if (!checkdefault) {\r\n daysOfWeekDefault[0].active = true\r\n }\r\n var hoursTitle = undefined\r\n var temperatureTitle = undefined\r\n if (\r\n $scope.AirconditionerUsageParams.title &&\r\n $scope.AirconditionerUsageParams.title.length > 0\r\n ) {\r\n if ($scope.AirconditionerUsageParams.title[0]) {\r\n hoursTitle = $scope.AirconditionerUsageParams.title[0]\r\n }\r\n if ($scope.AirconditionerUsageParams.title[1]) {\r\n temperatureTitle = $scope.AirconditionerUsageParams.title[1]\r\n }\r\n }\r\n var tabColor = $scope.AirconditionerUsageParams.tabColor\r\n var hourSliderPalette = $scope.AirconditionerUsageParams.hourSliderPalette\r\n var temperaturePalette = $scope.AirconditionerUsageParams.temperaturePalette\r\n if (\r\n $scope.AirconditionerUsageParams.colors &&\r\n $scope.AirconditionerUsageParams.colors.length > 0\r\n ) {\r\n if ($scope.AirconditionerUsageParams.colors[0]) {\r\n tabColor = $scope.AirconditionerUsageParams.colors[0]\r\n }\r\n if ($scope.AirconditionerUsageParams.colors[1]) {\r\n hourSliderPalette = $scope.AirconditionerUsageParams.colors[1].split(',')\r\n }\r\n if ($scope.AirconditionerUsageParams.colors[2]) {\r\n temperaturePalette = $scope.AirconditionerUsageParams.colors[2].split(',')\r\n }\r\n }\r\n\r\n tcw.renderElement('AirconditionerUsage', airconditionUage, {\r\n onChange: $scope.onAirconditionerUsageChange,\r\n defaultValue: questionService.AirconditionerUsage,\r\n daysOfWeek: daysOfWeekDefault,\r\n temperaturePalette: temperaturePalette,\r\n hourSliderPalette: hourSliderPalette,\r\n tabColor: tabColor,\r\n minimumTemperature: 16,\r\n maximumTemperature: 32,\r\n hoursTitle: hoursTitle,\r\n temperatureTitle: temperatureTitle\r\n })\r\n }\r\n }\r\n\r\n function renderHeaterUsage() {\r\n const heaterUsage = document.getElementById('HeaterUsage')\r\n if (heaterUsage) {\r\n heaterUsage.innerHTML = ''\r\n\r\n var checkdefault =\r\n $filter('filter')(questionService.DaysOfWeek, { active: true }, true).length > 0\r\n ? true\r\n : false\r\n var daysOfWeekDefault = JSON.parse(JSON.stringify(questionService.DaysOfWeek))\r\n if (!checkdefault) {\r\n daysOfWeekDefault[0].active = true\r\n }\r\n var hoursTitle = undefined\r\n var heatersTitle = undefined\r\n if ($scope.HeaterUsageParams.title && $scope.HeaterUsageParams.title.length > 0) {\r\n if ($scope.HeaterUsageParams.title[0]) {\r\n hoursTitle = $scope.HeaterUsageParams.title[0]\r\n }\r\n if ($scope.HeaterUsageParams.title[1]) {\r\n heatersTitle = $scope.HeaterUsageParams.title[1]\r\n }\r\n }\r\n var tabColor = $scope.HeaterUsageParams.tabColor\r\n var hourSliderPalette = $scope.HeaterUsageParams.hourSliderPalette\r\n if ($scope.HeaterUsageParams.colors && $scope.HeaterUsageParams.colors.length > 0) {\r\n if ($scope.HeaterUsageParams.colors[0]) {\r\n tabColor = $scope.HeaterUsageParams.colors[0]\r\n }\r\n if ($scope.HeaterUsageParams.colors[1]) {\r\n hourSliderPalette = $scope.HeaterUsageParams.colors[1].split(',')\r\n }\r\n if ($scope.HeaterUsageParams.colors[2]) {\r\n lightingPalette = $scope.HeaterUsageParams.colors[2].split(',')\r\n }\r\n }\r\n\r\n tcw.renderElement('HeaterUsage', heaterUsage, {\r\n onChange: $scope.onHeaterUsageChange,\r\n daysOfWeek: daysOfWeekDefault,\r\n defaultValue: questionService.HeaterUsage,\r\n palette: $scope.HeaterUsageParams.colors,\r\n hoursTitle: hoursTitle,\r\n tabColor: tabColor,\r\n hourSliderPalette: hourSliderPalette\r\n })\r\n }\r\n }\r\n\r\n function renderLightingUsage() {\r\n const lightingUsage = document.getElementById('LightingUsage')\r\n if (lightingUsage) {\r\n document.getElementById('LightingUsage').innerHTML = ''\r\n var checkdefault =\r\n $filter('filter')(questionService.LightTypes, { active: true }, true).length > 0\r\n ? true\r\n : false\r\n if (checkdefault) {\r\n questionService.LightingUsage = questionService.LightTypes.reduce(function (\r\n currentConfig,\r\n light,\r\n index\r\n ) {\r\n currentConfig[index].active = light.active\r\n return currentConfig\r\n },\r\n questionService.LightingUsage)\r\n } else {\r\n $('#sec-LightingUsage').removeClass('fadeIn')\r\n $('#sec-LightingUsage').addClass('disableControl')\r\n questionService.LightingUsage = questionService.LightTypes.reduce(function (\r\n currentConfig,\r\n light,\r\n index\r\n ) {\r\n currentConfig[index].active = true\r\n currentConfig[index].numberOfLights = undefined\r\n currentConfig[index].hoursPerDay = undefined\r\n return currentConfig\r\n },\r\n questionService.LightingUsage)\r\n }\r\n var hoursTitle = undefined\r\n var lightsTitle = undefined\r\n if ($scope.LightingUsageParams.title && $scope.LightingUsageParams.title.length > 0) {\r\n if ($scope.LightingUsageParams.title[0]) {\r\n hoursTitle = $scope.LightingUsageParams.title[0]\r\n }\r\n if ($scope.LightingUsageParams.title[1]) {\r\n lightsTitle = $scope.LightingUsageParams.title[1]\r\n }\r\n }\r\n var tabColor = $scope.LightingUsageParams.tabColor\r\n var hourSliderPalette = $scope.LightingUsageParams.hourSliderPalette\r\n var lightingPalette = $scope.LightingUsageParams.lightingPalette\r\n if ($scope.LightingUsageParams.colors && $scope.LightingUsageParams.colors.length > 0) {\r\n if ($scope.LightingUsageParams.colors[0]) {\r\n tabColor = $scope.LightingUsageParams.colors[0]\r\n }\r\n if ($scope.LightingUsageParams.colors[1]) {\r\n hourSliderPalette = $scope.LightingUsageParams.colors[1].split(',')\r\n }\r\n if ($scope.LightingUsageParams.colors[2]) {\r\n lightingPalette = $scope.LightingUsageParams.colors[2].split(',')\r\n }\r\n }\r\n\r\n tcw.renderElement('LightingUsage', lightingUsage, {\r\n onChange: $scope.onLightingUsageChange,\r\n defaultValue: questionService.LightingUsage,\r\n palette: $scope.LightingUsageParams.colors,\r\n hoursTitle: hoursTitle,\r\n lightsTitle: lightsTitle,\r\n tabColor: tabColor,\r\n hourSliderPalette: hourSliderPalette,\r\n lightingPalette: lightingPalette,\r\n lightingValueColor: $scope.LightingUsageParams.lightingValueColor\r\n })\r\n }\r\n }\r\n\r\n $scope.onUsageSliderChange = function (values) {\r\n $timeout(function () {\r\n questionService.LastEnergyBill = values\r\n // QuestionService.trackTools();\r\n $scope.disableNext()\r\n if (!$scope.disableNextAverageSlider) {\r\n $scope.btnNextClick('sec-AverageSlider')\r\n }\r\n }, 100)\r\n }\r\n $scope.onHouseTypeChange = function (values) {\r\n $timeout(function () {\r\n questionService.HouseType = values\r\n // QuestionService.trackTools();\r\n $scope.disableNext()\r\n if (!$scope.disableNextHomeType) {\r\n $scope.btnNextClick('sec-HomeType')\r\n }\r\n }, 100)\r\n }\r\n $scope.onHouseholdSizeChange = function (values) {\r\n $timeout(function () {\r\n questionService.HouseholdSize = values\r\n //QuestionService.trackTools();\r\n $scope.disableNext()\r\n if (!$scope.disableNextHouseholdSize) {\r\n $scope.btnNextClick('sec-HouseholdSize')\r\n }\r\n }, 100)\r\n }\r\n $scope.onHomeSizeChange = function (values) {\r\n $timeout(function () {\r\n questionService.HomeSize = values\r\n // QuestionService.trackTools();\r\n $scope.disableNext()\r\n if (!$scope.disableNextHomeSize) {\r\n $scope.btnNextClick('sec-HomeSize')\r\n }\r\n }, 100)\r\n }\r\n $scope.onSuburbChange = function () {\r\n //QuestionService.trackTools();\r\n $scope.disableNext()\r\n if (!$scope.disableNextLocation) {\r\n $scope.btnNextClick('sec-Location')\r\n }\r\n }\r\n $scope.onTelevisionChange = function (values) {\r\n $timeout(function () {\r\n questionService.Television = values\r\n questionService.trackEnergyToolsAppliances('Television')\r\n $scope.disableNext()\r\n if (!$scope.disableNextTelevision) {\r\n $scope.btnNextClick('sec-Television')\r\n }\r\n questionService.calculateBill('Television')\r\n }, 100)\r\n }\r\n $scope.onConsoleChange = function (values) {\r\n $timeout(function () {\r\n questionService.Console = values\r\n questionService.trackEnergyToolsAppliances('Console')\r\n $scope.disableNext()\r\n if (!$scope.disableNextConsole) {\r\n $scope.btnNextClick('sec-Console')\r\n }\r\n questionService.calculateBill('Console')\r\n }, 100)\r\n }\r\n\r\n $scope.onPoolPumpChange = function (values) {\r\n $timeout(function () {\r\n questionService.PoolPump = values\r\n questionService.trackEnergyToolsAppliances('PoolPump')\r\n $scope.disableNext()\r\n if (!$scope.disableNextPoolPump) {\r\n $scope.btnNextClick('sec-PoolPump')\r\n }\r\n questionService.calculateBill('PoolPump')\r\n }, 100)\r\n }\r\n $scope.onFridgeChange = function (values) {\r\n $timeout(function () {\r\n questionService.Fridge = values\r\n questionService.trackEnergyToolsAppliances('Fridge')\r\n $scope.disableNext()\r\n if (!$scope.disableNextFridge) {\r\n $scope.btnNextClick('sec-Fridge')\r\n }\r\n questionService.calculateBill('Fridge')\r\n }, 100)\r\n }\r\n $scope.onAirconditionerTypeChange = function (values) {\r\n $timeout(function () {\r\n questionService.AirconditionerType = values.airconditionerType\r\n questionService.trackEnergyToolsAppliances('AirconditionerType')\r\n $scope.disableNext()\r\n if (!$scope.disableNextAirconditionerType) {\r\n $scope.btnNextClick('sec-AirconditionerType')\r\n }\r\n questionService.calculateBill('AirconditionerType')\r\n }, 100)\r\n }\r\n\r\n $scope.onDaysOfWeekChange = function (values) {\r\n $timeout(function () {\r\n questionService.DaysOfWeek = values.daysOfWeek\r\n questionService.trackEnergyToolsAppliances('DaysOfWeek')\r\n $scope.disableNext()\r\n if (!$scope.disableNextDaysOfWeek) {\r\n $scope.btnNextClick('sec-DaysOfWeek')\r\n }\r\n //QuestionService.calculateBill('DaysOfWeek');\r\n\r\n if (questionService.ApplianceName == 'Airconditioner') {\r\n renderAirconditionerUsage()\r\n }\r\n if (questionService.ApplianceName == 'Dishwasher') {\r\n questionService.calculateBill('Dishwasher')\r\n }\r\n if (questionService.ApplianceName == 'Heater') {\r\n renderHeaterUsage()\r\n }\r\n }, 100)\r\n }\r\n $scope.onAirconditionerUsageChange = function (values) {\r\n $timeout(function () {\r\n questionService.AirconditionerUsage = values\r\n questionService.trackEnergyToolsAppliances('AirconditionerUsage')\r\n $scope.disableNext()\r\n if (!$scope.disableNextAirconditionerUsage) {\r\n $scope.btnNextClick('sec-AirconditionerUsage')\r\n }\r\n questionService.calculateBill('AirconditionerUsage')\r\n }, 100)\r\n }\r\n $scope.onLightTypesChange = function (values) {\r\n $timeout(function () {\r\n questionService.LightTypes = values.lightings\r\n questionService.trackEnergyToolsAppliances('LightTypes')\r\n $scope.disableNext()\r\n if (!$scope.disableNextLightTypes) {\r\n $scope.btnNextClick('sec-LightTypes')\r\n }\r\n // QuestionService.calculateBill('LightTypes');\r\n renderLightingUsage()\r\n }, 100)\r\n }\r\n\r\n $scope.onLightingUsageChange = function (values) {\r\n $timeout(function () {\r\n questionService.LightingUsage = values\r\n questionService.trackEnergyToolsAppliances('LightingUsage')\r\n $scope.disableNext()\r\n if (!$scope.disableNextLightingUsage) {\r\n $scope.btnNextClick('sec-LightingUsage')\r\n }\r\n questionService.calculateBill('LightingUsage')\r\n }, 100)\r\n }\r\n $scope.onFreezerTypeChange = function (values) {\r\n $timeout(function () {\r\n questionService.Freezer = values\r\n questionService.trackEnergyToolsAppliances('Freezer')\r\n $scope.disableNext()\r\n if (!$scope.disableNextFreezer) {\r\n $scope.btnNextClick('sec-Freezer')\r\n }\r\n questionService.calculateBill('Freezer')\r\n }, 100)\r\n }\r\n\r\n $scope.onLightSliderChange = function (values) {\r\n $timeout(function () {\r\n questionService.LightSlider = values\r\n questionService.trackEnergyToolsAppliances('LightSlider')\r\n $scope.disableNext()\r\n if (!$scope.disableNextLightSlider) {\r\n $scope.btnNextClick('sec-LightSlider')\r\n }\r\n\r\n if (questionService.ApplianceName == 'Heater') {\r\n questionService.calculateBill('Heater')\r\n }\r\n if (questionService.ApplianceName == 'Dryer') {\r\n questionService.calculateBill('Dryer')\r\n }\r\n if (questionService.ApplianceName == 'Washingmachine') {\r\n questionService.calculateBill('Washingmachine')\r\n }\r\n }, 100)\r\n }\r\n $scope.onWashingmachineTypeChange = function (values) {\r\n $timeout(function () {\r\n questionService.WashingmachineType = values.washingMachineType\r\n questionService.trackEnergyToolsAppliances('WashingmachineType')\r\n $scope.disableNext()\r\n if (!$scope.disableNextWashingmachineType) {\r\n $scope.btnNextClick('sec-WashingmachineType')\r\n }\r\n questionService.calculateBill('Washingmachine')\r\n }, 100)\r\n }\r\n $scope.onHeaterTypeChange = function (values) {\r\n $timeout(function () {\r\n questionService.HeaterType = values.heaterType\r\n questionService.trackEnergyToolsAppliances('HeaterType')\r\n $scope.disableNext()\r\n if (!$scope.disableNextHeaterType) {\r\n $scope.btnNextClick('sec-HeaterType')\r\n }\r\n renderHeaterUsage()\r\n }, 100)\r\n }\r\n $scope.onHeaterUsageChange = function (values) {\r\n $timeout(function () {\r\n questionService.HeaterUsage = values\r\n questionService.trackEnergyToolsAppliances('HeaterUsage')\r\n $scope.disableNext()\r\n if (!$scope.disableNextHeaterUsage) {\r\n $scope.btnNextClick('sec-HeaterUsage')\r\n }\r\n questionService.calculateBill('Heater')\r\n }, 100)\r\n }\r\n $timeout(function () {\r\n $scope.modifyQuestion = false\r\n }, 1000)\r\n }\r\n\r\n renderTCWComponent()\r\n $scope.$on('modifyQuestion', function () {\r\n $scope.modifyQuestion = true\r\n renderTCWComponent()\r\n })\r\n $scope.calculateBill = function (label) {\r\n questionService.trackEnergyToolsComplete(label)\r\n questionService.calculateBill()\r\n $timeout(function () {\r\n if (questionService.SecResult) {\r\n questionService.ResultFirstBtnLabel = $('#firstButton').attr(\r\n 'sy-adobe-analytics-tool-interaction'\r\n )\r\n questionService.trackEnergyToolsResult()\r\n $scope.resultTracked = true\r\n }\r\n }, 2000)\r\n }\r\n }\r\n ])\r\n .directive('syQuestionParameters', [\r\n function syQuestionParameters() {\r\n return {\r\n restrict: 'A',\r\n scope: true,\r\n link: function ($scope, $element, attrs) {\r\n if (attrs.id === 'AverageSlider') {\r\n if (attrs.labels) {\r\n $scope.AverageSliderParams.labels = attrs.labels.split(',')\r\n }\r\n if (attrs.colors) {\r\n $scope.AverageSliderParams.colors = attrs.colors.split(',')\r\n }\r\n if (attrs.title) {\r\n $scope.AverageSliderParams.title = attrs.title\r\n }\r\n }\r\n if (attrs.id === 'HomeType') {\r\n if (attrs.labels) {\r\n $scope.HomeTypeParams.labels = attrs.labels.split(',')\r\n }\r\n if (attrs.colors) {\r\n $scope.HomeTypeParams.colors = attrs.colors.split(',')\r\n }\r\n if (attrs.title) {\r\n $scope.HomeTypeParams.title = attrs.title\r\n }\r\n }\r\n if (attrs.id === 'HomeSize') {\r\n if (attrs.labels) {\r\n $scope.HomeSizeParams.labels = attrs.labels.split(',')\r\n }\r\n if (attrs.colors) {\r\n $scope.HomeSizeParams.colors = attrs.colors.split(',')\r\n }\r\n if (attrs.title) {\r\n $scope.HomeSizeParams.title = attrs.title\r\n }\r\n }\r\n if (attrs.id === 'HouseholdSize') {\r\n if (attrs.labels) {\r\n $scope.HouseholdSizeParams.labels = attrs.labels.split(',')\r\n }\r\n if (attrs.colors) {\r\n $scope.HouseholdSizeParams.colors = attrs.colors.split(',')\r\n }\r\n if (attrs.title) {\r\n $scope.HouseholdSizeParams.title = attrs.title\r\n }\r\n }\r\n if (attrs.id === 'Television') {\r\n if (attrs.labels) {\r\n $scope.TelevisionParams.labels = attrs.labels.split(',')\r\n }\r\n if (attrs.colors) {\r\n $scope.TelevisionParams.colors = attrs.colors.split(',')\r\n }\r\n if (attrs.title) {\r\n $scope.TelevisionParams.title = attrs.title.split(',')\r\n }\r\n }\r\n if (attrs.id === 'Console') {\r\n if (attrs.labels) {\r\n $scope.ConsoleParams.labels = attrs.labels.split(',')\r\n }\r\n if (attrs.colors) {\r\n $scope.ConsoleParams.colors = attrs.colors.split(',')\r\n }\r\n if (attrs.title) {\r\n $scope.ConsoleParams.title = attrs.title.split(',')\r\n }\r\n }\r\n if (attrs.id === 'PoolPump') {\r\n if (attrs.labels) {\r\n $scope.PoolPumpParams.labels = attrs.labels.split(',')\r\n }\r\n if (attrs.colors) {\r\n $scope.PoolPumpParams.colors = attrs.colors.split(',')\r\n }\r\n if (attrs.title) {\r\n $scope.PoolPumpParams.title = attrs.title\r\n }\r\n }\r\n if (attrs.id === 'Fridge') {\r\n if (attrs.labels) {\r\n $scope.FridgeParams.labels = attrs.labels.split(',')\r\n }\r\n if (attrs.colors) {\r\n $scope.FridgeParams.colors = attrs.colors.split(',')\r\n }\r\n if (attrs.title) {\r\n $scope.FridgeParams.title = attrs.title\r\n }\r\n }\r\n if (attrs.id === 'AirconditionerType') {\r\n if (attrs.labels) {\r\n $scope.AirconditionerTypeParams.labels = attrs.labels.split(',')\r\n }\r\n if (attrs.colors) {\r\n $scope.AirconditionerTypeParams.colors = attrs.colors.split(',')\r\n }\r\n if (attrs.title) {\r\n $scope.AirconditionerTypeParams.title = attrs.title\r\n }\r\n }\r\n if (attrs.id === 'DaysOfWeek') {\r\n if (attrs.labels) {\r\n $scope.DaysOfWeekParams.labels = attrs.labels.split(',')\r\n }\r\n if (attrs.colors) {\r\n $scope.DaysOfWeekParams.colors = attrs.colors.split(',')\r\n }\r\n if (attrs.title) {\r\n $scope.DaysOfWeekParams.title = attrs.title\r\n }\r\n }\r\n if (attrs.id === 'AirconditionerUsage') {\r\n if (attrs.labels) {\r\n $scope.AirconditionerUsageParams.labels = attrs.labels.split(',')\r\n }\r\n if (attrs.colors) {\r\n $scope.AirconditionerUsageParams.colors = attrs.colors.split(',')\r\n }\r\n if (attrs.title) {\r\n $scope.AirconditionerUsageParams.title = attrs.title.split(',')\r\n }\r\n }\r\n if (attrs.id == 'LightTypes') {\r\n if (attrs.labels) {\r\n $scope.LightTypesParams.labels = attrs.labels.split(',')\r\n }\r\n if (attrs.colors) {\r\n $scope.LightTypesParams.colors = attrs.colors.split(',')\r\n }\r\n if (attrs.title) {\r\n $scope.LightTypesParams.title = attrs.title\r\n }\r\n }\r\n if (attrs.id === 'LightingUsage') {\r\n if (attrs.labels) {\r\n $scope.LightingUsageParams.labels = attrs.labels.split(',')\r\n }\r\n if (attrs.colors) {\r\n $scope.LightingUsageParams.colors = attrs.colors.split(',')\r\n }\r\n if (attrs.title) {\r\n $scope.LightingUsageParams.title = attrs.title.split(',')\r\n }\r\n }\r\n if (attrs.id === 'Freezer') {\r\n if (attrs.labels) {\r\n $scope.FreezerParams.labels = attrs.labels.split(',')\r\n }\r\n if (attrs.colors) {\r\n $scope.FreezerParams.colors = attrs.colors.split(',')\r\n }\r\n if (attrs.title) {\r\n $scope.FreezerParams.title = attrs.title.split(',')\r\n }\r\n }\r\n if (attrs.id === 'LightSlider') {\r\n if (attrs.labels) {\r\n $scope.LightSliderParams.labels = attrs.labels.split(',')\r\n }\r\n if (attrs.colors) {\r\n $scope.LightSliderParams.colors = attrs.colors.split(',')\r\n }\r\n if (attrs.title) {\r\n $scope.LightSliderParams.title = attrs.title.split(',')\r\n }\r\n }\r\n if (attrs.id === 'HeaterType') {\r\n if (attrs.labels) {\r\n $scope.HeaterTypeParams.labels = attrs.labels.split(',')\r\n }\r\n if (attrs.colors) {\r\n $scope.HeaterTypeParams.colors = attrs.colors.split(',')\r\n }\r\n if (attrs.title) {\r\n $scope.HeaterTypeParams.title = attrs.title.split(',')\r\n }\r\n }\r\n if (attrs.id === 'HeaterUsage') {\r\n if (attrs.labels) {\r\n $scope.HeaterUsageParams.labels = attrs.labels.split(',')\r\n }\r\n if (attrs.colors) {\r\n $scope.HeaterUsageParams.colors = attrs.colors.split(',')\r\n }\r\n if (attrs.title) {\r\n $scope.HeaterUsageParams.title = attrs.title.split(',')\r\n }\r\n }\r\n if (attrs.id === 'WashingmachineType') {\r\n if (attrs.labels) {\r\n $scope.WashingmachineTypeParams.labels = attrs.labels.split(',')\r\n }\r\n if (attrs.colors) {\r\n $scope.WashingmachineTypeParams.colors = attrs.colors.split(',')\r\n }\r\n if (attrs.title) {\r\n $scope.WashingmachineTypeParams.title = attrs.title.split(',')\r\n }\r\n }\r\n }\r\n }\r\n }\r\n ])\r\n .controller('tcwCompareController', [\r\n '$scope',\r\n 'questionService',\r\n 'tcwServiceApi',\r\n function tcwCompareController($scope, questionService, tcwServiceApi) {\r\n $scope.suburbAverageLabel = ''\r\n $scope.HouseholdsLabel = ''\r\n $scope.HouseholdsLabel = ''\r\n $scope.NegativeMessage = ''\r\n $scope.YourBillLabel = ''\r\n $scope.result = questionService\r\n var tariff\r\n var dailySupply\r\n $scope.Model = {}\r\n var calculate = function () {\r\n //Fetching the A1 tariffs - REQ0219527\r\n var planName = {\r\n PlanName: 'Home Plan (A1)'\r\n }\r\n tcwServiceApi.tcwService('GET', '/TCWApi/getSupplyCharge', planName).then(function (response) {\r\n tariff = response.data && response.data['A1 Tariff'] ? response.data['A1 Tariff'] : 28.8229\r\n dailySupply =\r\n response.data && response.data['Daily Supply'] ? response.data['Daily Supply'] : 103.3263\r\n var nSuburbArr = questionService.Suburb.split('-');\r\n var nSuburb = '';\r\n if (nSuburbArr.length > 1) {\r\n nSuburb = nSuburbArr[1].trim();\r\n }\r\n else {\r\n nSuburb = questionService.Suburb.trim();\r\n } \r\n var data = {\r\n bedrooms: questionService.HomeSize.Bedrooms,\r\n bathrooms: questionService.HomeSize.Bathrooms,\r\n suburb: nSuburb\r\n }\r\n tcwServiceApi.tcwService('GET', '/TCWApi/GetAverageDailyUnit', data).then(function (response) {\r\n questionService.SuburbAverage =\r\n response.data && response.data.suburbAverage ? response.data.suburbAverage : 0\r\n questionService.HouseholdAverage =\r\n response.data && response.data.householdAverage ? response.data.householdAverage : 0\r\n var similarHomeBill = Math.round(\r\n (questionService.HouseholdAverage * (tariff / 100) + dailySupply / 100) * 60\r\n )\r\n var suburbBill = Math.round(\r\n (questionService.SuburbAverage * (tariff / 100) + dailySupply / 100) * 60\r\n )\r\n questionService.BillDifference = Math.abs(similarHomeBill - questionService.LastEnergyBill).toFixed(2);\r\n if (document.getElementById('Emojis')) {\r\n document.getElementById('Emojis').innerHTML = ''\r\n }\r\n if (similarHomeBill > questionService.LastEnergyBill) {\r\n questionService.BillDifferenceStatus = 'Positive'\r\n tcw.renderElement('HappyEmoji', document.getElementById('Emojis'), {\r\n size: '100%',\r\n delay: 2000,\r\n bounceHeight: 20\r\n })\r\n } else if (similarHomeBill < questionService.LastEnergyBill) {\r\n questionService.BillDifferenceStatus = 'Negative'\r\n tcw.renderElement('SadEmoji', document.getElementById('Emojis'), {\r\n size: '100%',\r\n delay: 3000\r\n })\r\n } else {\r\n questionService.BillDifferenceStatus = 'Neutral'\r\n }\r\n const compareYourBill = document.getElementById('CompareYourBill')\r\n if (compareYourBill) {\r\n compareYourBill.innerHTML = ''\r\n }\r\n setTimeout(function () {\r\n tcw.renderElement('CompareYourBill', compareYourBill, {\r\n bill: questionService.LastEnergyBill,\r\n similar: similarHomeBill,\r\n average: suburbBill,\r\n averageLabel: $scope.suburbAverageLabel.replace('@Suburb', questionService.Suburb),\r\n similarLabel: $scope.HouseholdsLabel,\r\n billLabel: $scope.YourBillLabel,\r\n palette: ['#0B2D70', '#02607F', '#037DA6']\r\n })\r\n }, 200)\r\n tcwServiceApi.setCookieByName('TCWQuestion', questionService)\r\n })\r\n })\r\n }\r\n\r\n $scope.init = function (model) {\r\n $scope.Model = model\r\n var data = tcwServiceApi.getCookieByName('TCWQuestion')\r\n if (data) {\r\n if (\r\n data.LastEnergyBill <= 0 ||\r\n data.HomeSize.Bedrooms <= 0 ||\r\n data.HomeSize.Bathrooms <= 0 ||\r\n data.Suburb == ''\r\n ) {\r\n data.SecQuestion = true\r\n data.SecQuestionBtn = true\r\n data.SecResult = false\r\n } else {\r\n data.SecQuestion = false\r\n data.SecResult = true\r\n }\r\n questionService.setData(data)\r\n\r\n calculate()\r\n }\r\n questionService.ToolName = 'compare your bill'\r\n }\r\n $scope.$on('calculateBill', function () {\r\n calculate()\r\n questionService.SecQuestion = false\r\n questionService.SecResult = true\r\n tcwServiceApi.addUpdateEnergyToolProfile()\r\n })\r\n\r\n $scope.modifyQuestion = function () {\r\n questionService.SecQuestion = true\r\n questionService.SecQuestionBtn = true\r\n questionService.SecResult = false\r\n $scope.result = questionService\r\n questionService.modifyQuestion()\r\n }\r\n }\r\n ])\r\n .controller('tcwBreakdownController', [\r\n '$scope',\r\n '$timeout',\r\n 'questionService',\r\n 'tcwServiceApi',\r\n function tcwBreakdownController($scope, $timeout, questionService, tcwServiceApi) {\r\n setNavigationButtonTitle()\r\n setupHelptooltipToggle()\r\n\r\n $scope.Model = {}\r\n $scope.init = function (model) {\r\n $scope.Model = model\r\n var data = tcwServiceApi.getCookieByName('TCWQuestion')\r\n if (data) {\r\n if (data.LastEnergyBill <= 0) {\r\n data.SecQuestion = true\r\n data.SecQuestionBtn = true\r\n data.SecResult = false\r\n } else {\r\n data.SecQuestion = false\r\n data.SecResult = true\r\n }\r\n questionService.setData(data)\r\n calculate()\r\n }\r\n questionService.ToolName = 'breakdown your bill'\r\n }\r\n $scope.result = questionService\r\n $scope.showComponent = true\r\n var calculate = function () {\r\n const breakdownYourbill = document.getElementById('BreakdownYourBill')\r\n if (breakdownYourbill) {\r\n breakdownYourbill.innerHTML = ''\r\n }\r\n var Model = $scope.Model\r\n $scope.powerYouUse = Math.round((questionService.LastEnergyBill * Model.Percentage1) / 100)\r\n $scope.governmentPolicy = Math.round((questionService.LastEnergyBill * Model.Percentage2) / 100)\r\n $scope.retailer = Math.round((questionService.LastEnergyBill * Model.Percentage3) / 100)\r\n $scope.westernPower = Math.round((questionService.LastEnergyBill * Model.Percentage4) / 100)\r\n setTimeout(function () {\r\n tcw.renderElement('BreakDownYourBill', breakdownYourbill, {\r\n bill: questionService.LastEnergyBill,\r\n segments: [\r\n Number(Model.Percentage1),\r\n Number(Model.Percentage2),\r\n Number(Model.Percentage3),\r\n Number(Model.Percentage4)\r\n ],\r\n // Segments: [45, 5, 5, 45],\r\n palette: [Model.Color1Hex, Model.Color2Hex, Model.Color3Hex, Model.Color4Hex],\r\n onComplete: $scope.onBreakdownChange,\r\n titles: [\r\n Model.Percentage1 + '% ' + Model.Title1,\r\n Model.Percentage2 + '% ' + Model.Title2,\r\n Model.Percentage3 + '% ' + Model.Title3,\r\n Model.Percentage4 + '% ' + Model.Title4\r\n ],\r\n copy: [Model.Description1, Model.Description2, Model.Description3, Model.Description4]\r\n })\r\n }, 200)\r\n $scope.onBreakdownChange = function () {\r\n $timeout(function () {\r\n $scope.showComponent = false\r\n }, 100)\r\n }\r\n\r\n tcwServiceApi.setCookieByName('TCWQuestion', questionService)\r\n }\r\n $scope.$on('calculateBill', function () {\r\n calculate()\r\n questionService.SecQuestion = false\r\n questionService.SecResult = true\r\n tcwServiceApi.addUpdateEnergyToolProfile()\r\n })\r\n }\r\n ])\r\n .controller('tcwSolar', [\r\n '$scope',\r\n '$timeout',\r\n 'questionService',\r\n 'tcwServiceApi',\r\n '$filter',\r\n '$location',\r\n '$http',\r\n function tcwSolar($scope, $timeout, questionService, tcwServiceApi, $filter, $location, $http) {\r\n setupHelptooltipToggle()\r\n\r\n $scope.Model = {}\r\n $scope.result = questionService\r\n $scope.solarHouseholdData = {}\r\n $scope.systemSizeValues = []\r\n $scope.LGSystemSizeValues = []\r\n $scope.batterySavings = 0\r\n $scope.solarSavings = 0\r\n $scope.totalSavings = 0\r\n $scope.selectedHouseholdDataLG = []\r\n $scope.selectedHouseholdDataSolar = []\r\n this.resultEmail = ''\r\n $scope.totalCost = ''\r\n var self = this\r\n $scope.init = function (model) {\r\n $scope.Model = model\r\n var data = {\r\n systemType: ''\r\n }\r\n tcwServiceApi.tcwService('GET', '/TCWApi/getSolarHouseholdData', data).then(function (response) {\r\n $scope.solarHouseholdData = response.data\r\n angular.forEach($scope.solarHouseholdData, function (obj, key) {\r\n if (obj.SystemSize > 0 && obj.SystemType == 'Solar') {\r\n $scope.systemSizeValues.push(Number(obj.SystemSize))\r\n } else if (obj.SystemType == 'LG') {\r\n $scope.LGSystemSizeValues.push(Number(obj.SystemSize))\r\n }\r\n })\r\n var data = tcwServiceApi.getCookieByName('TCWQuestion')\r\n if (data) {\r\n if (data.HouseholdSize.Adults <= 0 && data.HouseholdSize.Children <= 0) {\r\n data.SecQuestion = true\r\n data.SecQuestionBtn = true\r\n data.SecResult = false\r\n } else {\r\n data.SecQuestion = false\r\n data.SecResult = true\r\n }\r\n questionService.setData(data)\r\n calculate()\r\n }\r\n questionService.ToolName = 'save with solar'\r\n })\r\n }\r\n\r\n $scope.showComponent = true\r\n var calculate = function () {\r\n var defaultSolarSize = 1.5\r\n var noOfPoeple = questionService.HouseholdSize.Adults + questionService.HouseholdSize.Children\r\n if (noOfPoeple >= 1 && noOfPoeple <= 2) {\r\n defaultSolarSize = 1.5\r\n } else if (noOfPoeple >= 3 && noOfPoeple <= 4) {\r\n defaultSolarSize = 3\r\n } else if (noOfPoeple >= 5) {\r\n defaultSolarSize = 5\r\n }\r\n\r\n $scope.solarCalculate = function (inputs) {\r\n var solarSize = inputs.solarSize\r\n var batterySize = inputs.batterySize\r\n var solarMin = 0,\r\n solarMax = 0,\r\n batteryMin = 0,\r\n batteryMax = 0\r\n var payback = ''\r\n var batterySavings = 0\r\n var solarSavings = 0\r\n var selectedHouseholdDataLG = []\r\n if (batterySize > 0) {\r\n if (solarSize < 5) {\r\n solarSize = 5\r\n }\r\n selectedHouseholdDataLG = $filter('filter')(\r\n $scope.solarHouseholdData,\r\n {\r\n SystemSize: batterySize.toString(),\r\n SystemType: 'LG'\r\n },\r\n true\r\n )[0]\r\n if (selectedHouseholdDataLG) {\r\n batteryMin = parseInt(\r\n selectedHouseholdDataLG.EstimatedPriceRange.split('-')[0]\r\n .replace('$', '')\r\n .replace(',', '')\r\n )\r\n batteryMax = parseInt(\r\n selectedHouseholdDataLG.EstimatedPriceRange.split('-')[1]\r\n .replace('$', '')\r\n .replace(',', '')\r\n )\r\n batterySavings = parseInt(\r\n selectedHouseholdDataLG.SavingsPerYear.replace('$', '').replace(',', '')\r\n )\r\n }\r\n } else {\r\n batterySavings = 0\r\n selectedHouseholdDataLG = []\r\n }\r\n var selectedHouseholdDataSolar = $filter('filter')(\r\n $scope.solarHouseholdData,\r\n {\r\n SystemSize: solarSize.toString(),\r\n SystemType: 'Solar'\r\n },\r\n true\r\n )[0]\r\n if (selectedHouseholdDataSolar) {\r\n solarMin = parseInt(\r\n selectedHouseholdDataSolar.EstimatedPriceRange.split('-')[0]\r\n .replace('$', '')\r\n .replace(',', '')\r\n )\r\n solarMax = parseInt(\r\n selectedHouseholdDataSolar.EstimatedPriceRange.split('-')[1]\r\n .replace('$', '')\r\n .replace(',', '')\r\n )\r\n payback =\r\n solarSize >= 5 && batterySize > 0\r\n ? selectedHouseholdDataSolar.LGPayback\r\n : selectedHouseholdDataSolar.Payback\r\n solarSavings = parseInt(\r\n selectedHouseholdDataSolar.SavingsPerYear.replace('$', '').replace(',', '')\r\n )\r\n }\r\n setTimeout(function () {\r\n $scope.$apply(function () {\r\n $scope.batterySavings = batterySavings\r\n $scope.solarSavings = solarSavings\r\n $scope.totalSavings = batterySavings + solarSavings\r\n $scope.totalCost =\r\n $filter('currency')(solarMin + batteryMin, '$', 0) +\r\n ' - ' +\r\n $filter('currency')(solarMax + batteryMax, '$', 0)\r\n $scope.selectedHouseholdDataLG = selectedHouseholdDataLG\r\n $scope.selectedHouseholdDataSolar = selectedHouseholdDataSolar\r\n })\r\n }, 100)\r\n\r\n return {\r\n totalMin: $filter('currency')(solarMin + batteryMin, '', 0),\r\n totalMax: $filter('currency')(solarMax + batteryMax, '', 0),\r\n solarMin: $filter('currency')(solarMin, '', 0),\r\n solarMax: $filter('currency')(solarMax, '', 0),\r\n batteryMin: $filter('currency')(batteryMin, '', 0),\r\n batteryMax: $filter('currency')(batteryMax, '', 0),\r\n payback: payback\r\n }\r\n }\r\n setTimeout(function () {\r\n if (document.getElementById('SolarBattery')) {\r\n document.getElementById('SolarBattery').innerHTML = ''\r\n tcw.renderElement('SolarBattery', document.getElementById('SolarBattery'), {\r\n calculateStats: $scope.solarCalculate,\r\n onChange: $scope.onSolarChange,\r\n solarSizes: $scope.systemSizeValues,\r\n solarSize: defaultSolarSize\r\n })\r\n }\r\n }, 200)\r\n\r\n $scope.onSolarChange = function (value) {\r\n $timeout(function () {\r\n questionService.ResultFirstBtnLabel = value.change.action + ' ' + value.change.type\r\n questionService.trackEnergyToolsResult('interaction')\r\n }, 100)\r\n }\r\n\r\n tcwServiceApi.setCookieByName('TCWQuestion', questionService)\r\n }\r\n $scope.$on('calculateBill', function () {\r\n calculate()\r\n questionService.SecQuestion = false\r\n questionService.SecResult = true\r\n tcwServiceApi.addUpdateEnergyToolProfile()\r\n })\r\n\r\n $scope.sendingEmail = false\r\n $scope.sendResultEmail = function () {\r\n if (self.resultEmail) {\r\n $scope.data = {\r\n EmailAddress: self.resultEmail,\r\n connectionAddress: questionService.Suburb,\r\n SavingsPerYear: $scope.solarSavings,\r\n KWSystem: $scope.selectedHouseholdDataSolar.SystemSize,\r\n PanelsNo: $scope.selectedHouseholdDataSolar.NoOfPanels,\r\n RoofSpace: $scope.selectedHouseholdDataSolar.RoofSpace,\r\n KWHSystemBattery: $scope.selectedHouseholdDataLG\r\n ? $scope.selectedHouseholdDataLG.SystemSize\r\n : '',\r\n BatteryEstimatedPriceRange: $scope.selectedHouseholdDataLG\r\n ? $scope.selectedHouseholdDataLG.EstimatedPriceRange\r\n : '',\r\n BatterySavingsPerYear: $scope.selectedHouseholdDataLG\r\n ? $scope.selectedHouseholdDataLG.SavingsPerYear\r\n : '',\r\n AirConHours: $scope.selectedHouseholdDataLG ? $scope.selectedHouseholdDataLG.AirConHours : '',\r\n totalCost: $scope.totalCost,\r\n totalSavings: $filter('currency')($scope.totalSavings, '$', 0),\r\n EstimatedPriceRange: $scope.selectedHouseholdDataSolar.EstimatedPriceRange\r\n }\r\n\r\n $scope.actionURL = '/SolarBatteryCalculator/sendResultEmail'\r\n\r\n var config = {\r\n headers: {\r\n 'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8;'\r\n }\r\n }\r\n\r\n var params = $scope.data\r\n params.siteUrl = $location.protocol() + '://' + $location.host()\r\n\r\n Object.keys(params).forEach(function (key) {\r\n if (params[key] == '' || params[key] == undefined) {\r\n delete params[key]\r\n }\r\n })\r\n\r\n var params = Object.keys(params)\r\n .map(function (k) {\r\n return encodeURIComponent(k) + '=' + encodeURIComponent(params[k])\r\n })\r\n .join('&')\r\n\r\n $scope.sendingEmail = true\r\n $scope.emailSent = false\r\n $http.post($scope.actionURL, params, config).then(\r\n function () {\r\n $scope.sendingEmail = false\r\n $scope.emailSent = true\r\n },\r\n function () {\r\n $scope.sendingEmail = false\r\n }\r\n )\r\n }\r\n }\r\n\r\n $scope.modifyQuestion = function () {\r\n questionService.SecQuestion = true\r\n questionService.SecQuestionBtn = true\r\n questionService.SecResult = false\r\n $scope.result = questionService\r\n questionService.modifyQuestion()\r\n }\r\n }\r\n ])\r\n .controller('tcwAppliance', [\r\n '$scope',\r\n 'questionService',\r\n 'tcwServiceApi',\r\n '$filter',\r\n 'tcwApplianceText',\r\n function tcwAppliance($scope, questionService, tcwServiceApi, $filter, tcwApplianceText) {\r\n handleStickyWrapper()\r\n\r\n $scope.Model = {}\r\n $scope.result = questionService\r\n $scope.applianceData = []\r\n $scope.resultBill = 0\r\n $scope.HeaderText = ''\r\n $scope.SubHeaderText = ''\r\n questionService.SecResult = false\r\n $scope.init = function (model) {\r\n $scope.Model = model\r\n var data = {\r\n applianceName: questionService.ApplianceName\r\n }\r\n tcwServiceApi.tcwService('GET', '/TCWApi/getApplianceData', data).then(function (response) {\r\n $scope.applianceData = response.data\r\n var data = tcwServiceApi.getCookieByName('TCWQuestion')\r\n if (data) {\r\n var valueAlreadyexists = checkValues(data)\r\n data.SecQuestion = true\r\n if (valueAlreadyexists) {\r\n data.SecQuestionBtn = false\r\n data.SecResult = true\r\n } else {\r\n data.SecQuestionBtn = true\r\n data.SecResult = false\r\n }\r\n questionService.setData(data)\r\n calculate()\r\n } else {\r\n questionService.SecQuestionBtn = true\r\n questionService.SecResult = false\r\n }\r\n questionService.trackEnergyToolsAppliances(tcwApplianceText.ListHeadertext, 'start')\r\n questionService.ToolName = 'reduce your bill'\r\n })\r\n }\r\n\r\n var checkValues = function (data) {\r\n if (questionService.ApplianceName === 'TV') {\r\n if (data.Television.televisions > 0 && data.TVAmount > 0) {\r\n return true\r\n }\r\n } else if (questionService.ApplianceName === 'Games console') {\r\n if (data.Console.consoles > 0 && data.ConsoleAmount > 0) {\r\n return true\r\n }\r\n } else if (questionService.ApplianceName === 'Poolpump') {\r\n if (data.PoolPump.value > 0 && data.PoolPumpAmount > 0) {\r\n return true\r\n }\r\n } else if (questionService.ApplianceName === 'Fridge') {\r\n if (\r\n (data.Fridge.fridges.Large > 0 ||\r\n data.Fridge.fridges.Medium > 0 ||\r\n data.Fridge.fridges.Small > 0) &&\r\n data.FridgeAmount > 0\r\n ) {\r\n return true\r\n }\r\n } else if (questionService.ApplianceName === 'Airconditioner') {\r\n if (\r\n data.AirconditionerType &&\r\n $filter('filter')(data.DaysOfWeek, { active: true }, true).length > 0 &&\r\n data.ACAmount > 0\r\n ) {\r\n return true\r\n }\r\n } else if (questionService.ApplianceName === 'Lighting') {\r\n if (\r\n $filter('filter')(data.LightTypes, { active: true }, true).length > 0 &&\r\n data.LightingAmount > 0\r\n ) {\r\n return true\r\n }\r\n } else if (questionService.ApplianceName === 'Freezer') {\r\n if (\r\n (data.Freezer.freezers.Large > 0 || data.Freezer.freezers.Small > 0) &&\r\n data.FreezerAmount > 0\r\n ) {\r\n return true\r\n }\r\n } else if (questionService.ApplianceName === 'Dishwasher') {\r\n if (\r\n $filter('filter')(data.DaysOfWeek, { active: true }, true).length > 0 &&\r\n data.DishwasherAmount > 0\r\n ) {\r\n return true\r\n }\r\n } else if (questionService.ApplianceName === 'Dryer') {\r\n if (data.LightSlider > 0 && data.DryerAmount > 0) {\r\n return true\r\n }\r\n } else if (questionService.ApplianceName === 'Heater') {\r\n if (\r\n data.HeaterType &&\r\n $filter('filter')(data.DaysOfWeek, { active: true }, true).length > 0 &&\r\n data.HeaterAmount > 0\r\n ) {\r\n return true\r\n }\r\n } else if (questionService.ApplianceName === 'Washingmachine') {\r\n if (data.WashingmachineType && data.LightSlider > 0 && data.WashingmachineAmount > 0) {\r\n return true\r\n }\r\n }\r\n\r\n return false\r\n }\r\n var calculate = function () {\r\n var HeaderText = ''\r\n var SubHeaderText = ''\r\n if (questionService.ApplianceName === 'TV' || questionService.ApplianceName === 'Games console') {\r\n var AppOn = $filter('filter')($scope.applianceData, { Type: 'On' }, true)[0]\r\n var AppOnCost = AppOn.CostPerBill,\r\n AppStandbyCost = 0.0\r\n var OffAtWall = false\r\n var noOfApp = 0\r\n if (questionService.ApplianceName === 'TV') {\r\n OffAtWall = questionService.Television.offAtWall\r\n noOfApp = questionService.Television.televisions\r\n if (noOfApp > 1) {\r\n HeaderText = tcwApplianceText.TelevisionHeaderText = $scope.Model.NegativeMessageText\r\n SubHeaderText = tcwApplianceText.TelevisionSubHeaderText =\r\n $scope.Model.NegativeMessageSubText\r\n } else if (noOfApp === 1) {\r\n HeaderText = tcwApplianceText.TelevisionHeaderText = $scope.Model.PositiveMessageText\r\n SubHeaderText = tcwApplianceText.TelevisionSubHeaderText =\r\n $scope.Model.PositiveMessageSubText\r\n } else {\r\n HeaderText = tcwApplianceText.TelevisionHeaderText = $scope.Model.Message3Text\r\n SubHeaderText = tcwApplianceText.TelevisionSubHeaderText = $scope.Model.Message3SubText\r\n }\r\n } else if (questionService.ApplianceName === 'Games console') {\r\n OffAtWall = questionService.Console.offAtWall\r\n noOfApp = questionService.Console.consoles\r\n if (!OffAtWall) {\r\n HeaderText = tcwApplianceText.ConsoleHeaderText = $scope.Model.NegativeMessageText\r\n SubHeaderText = tcwApplianceText.ConsoleSubHeaderText = $scope.Model.NegativeMessageSubText\r\n } else {\r\n HeaderText = tcwApplianceText.ConsoleHeaderText = $scope.Model.PositiveMessageText\r\n SubHeaderText = tcwApplianceText.ConsoleSubHeaderText = $scope.Model.PositiveMessageSubText\r\n }\r\n }\r\n\r\n if (!OffAtWall) {\r\n var AppStandby = $filter('filter')($scope.applianceData, { Type: 'Standby' }, true)[0]\r\n AppStandbyCost = AppStandby.CostPerBill\r\n }\r\n var totalCost = Number(noOfApp) * (Number(AppOnCost) + Number(AppStandbyCost))\r\n $scope.resultBill = Math.round(totalCost)\r\n questionService.DoYouSwitchitOff = OffAtWall ? 'Yes' : 'No'\r\n questionService.NoOfAppliance = noOfApp\r\n } else if (questionService.ApplianceName === 'Poolpump') {\r\n var PoolPumpData = $scope.applianceData[0]\r\n var noOfHours = (questionService.Hours = questionService.PoolPump.value)\r\n var totalCost =\r\n Number(PoolPumpData.CostPerHour) *\r\n Number(noOfHours) *\r\n Number(PoolPumpData.NoOfDaysPerWeek) *\r\n 8.66\r\n $scope.resultBill = Math.round(totalCost)\r\n HeaderText = tcwApplianceText.PoolPumpHeaderText = $scope.Model.PositiveMessageText\r\n SubHeaderText = tcwApplianceText.PoolPumpSubHeaderText = $scope.Model.PositiveMessageSubText\r\n } else if (questionService.ApplianceName === 'Fridge') {\r\n var LargeFridgeData = $filter('filter')($scope.applianceData, { Type: 'Large' })[0]\r\n var MediumFridgeData = $filter('filter')($scope.applianceData, { Type: 'Medium' })[0]\r\n var SmallFridgeData = $filter('filter')($scope.applianceData, { Type: 'Small' })[0]\r\n var noOfLargeFridge = parseInt(questionService.Fridge.fridges.Large)\r\n var noOfMediumFridge = parseInt(questionService.Fridge.fridges.Medium)\r\n var noOfSmallFridge = parseInt(questionService.Fridge.fridges.Small)\r\n var totalfridge = (questionService.NoOfAppliance =\r\n noOfLargeFridge + noOfMediumFridge + noOfSmallFridge)\r\n if (totalfridge > 1) {\r\n HeaderText = tcwApplianceText.FridgeHeaderText = $scope.Model.NegativeMessageText\r\n SubHeaderText = tcwApplianceText.FridgeSubHeaderText = $scope.Model.NegativeMessageSubText\r\n } else if (totalfridge == 1) {\r\n HeaderText = tcwApplianceText.FridgeHeaderText = $scope.Model.PositiveMessageText\r\n SubHeaderText = tcwApplianceText.FridgeSubHeaderText = $scope.Model.PositiveMessageSubText\r\n }\r\n var totalCost =\r\n Number(LargeFridgeData.CostPerBill) * noOfLargeFridge +\r\n Number(MediumFridgeData.CostPerBill) * noOfMediumFridge +\r\n Number(SmallFridgeData.CostPerBill) * noOfSmallFridge\r\n $scope.resultBill = Math.round(totalCost)\r\n } else if (questionService.ApplianceName === 'Airconditioner') {\r\n var NoOfWeekDays = 0\r\n var NoOfWeekends = 0\r\n var WeekdaysCost = 0\r\n var WeekendCost = 0\r\n var totalCost = 0\r\n var Days = ''\r\n var Hours = ''\r\n questionService.Temperature = questionService.AirconditionerUsage.temperature\r\n var AirconditionerData = $filter('filter')($scope.applianceData, {\r\n Type: questionService.AirconditionerType,\r\n Temperature:\r\n questionService.AirconditionerUsage.temperature > 24\r\n ? 24\r\n : questionService.AirconditionerUsage.temperature\r\n })[0]\r\n if (AirconditionerData) {\r\n angular.forEach(questionService.DaysOfWeek, function (DaysOfWeek, index) {\r\n if (index >= 0 && index <= 4 && DaysOfWeek.active) {\r\n NoOfWeekDays = NoOfWeekDays + 1\r\n Days = Days ? Days + ',' + DaysOfWeek.day : DaysOfWeek.day\r\n } else if ((index === 5 || index === 6) && DaysOfWeek.active) {\r\n NoOfWeekends = NoOfWeekends + 1\r\n Days = Days ? Days + ',' + DaysOfWeek.day : DaysOfWeek.day\r\n }\r\n })\r\n questionService.NoOfDays = NoOfWeekDays + NoOfWeekends\r\n questionService.Days = Days\r\n var noOfHoursWeekDays = questionService.AirconditionerUsage.hours[0].hoursPerDay\r\n var noOfHoursWeekends = questionService.AirconditionerUsage.hours[1].hoursPerDay\r\n noOfHoursWeekDays = noOfHoursWeekDays > 24 ? 24 : noOfHoursWeekDays\r\n noOfHoursWeekends = noOfHoursWeekends > 24 ? 24 : noOfHoursWeekends\r\n if (noOfHoursWeekDays) {\r\n var WeekdaysCost =\r\n Number(AirconditionerData.CostPerHour) *\r\n Number(noOfHoursWeekDays) *\r\n Number(NoOfWeekDays) *\r\n 8.66\r\n Hours = Hours ? Hours + ',' + noOfHoursWeekDays : noOfHoursWeekDays\r\n }\r\n if (noOfHoursWeekends) {\r\n var WeekendCost =\r\n Number(AirconditionerData.CostPerHour) *\r\n Number(noOfHoursWeekends) *\r\n Number(NoOfWeekends) *\r\n 8.66\r\n Hours = Hours ? Hours + ',' + noOfHoursWeekends : noOfHoursWeekDays\r\n }\r\n questionService.Hours = Hours\r\n totalCost = WeekdaysCost + WeekendCost\r\n }\r\n if (questionService.AirconditionerUsage.temperature >= 24) {\r\n HeaderText = tcwApplianceText.AirconditionerHeaderText = $scope.Model.PositiveMessageText\r\n SubHeaderText = tcwApplianceText.AirconditionerSubHeaderText =\r\n $scope.Model.PositiveMessageSubText\r\n } else {\r\n HeaderText = tcwApplianceText.AirconditionerHeaderText = $scope.Model.NegativeMessageText\r\n SubHeaderText = tcwApplianceText.AirconditionerSubHeaderText =\r\n $scope.Model.NegativeMessageSubText\r\n }\r\n questionService.ApplianceType = questionService.AirconditionerType\r\n $scope.resultBill = Math.round(totalCost)\r\n } else if (questionService.ApplianceName === 'Lighting') {\r\n var HalogenCost = 0\r\n var LEDCost = 0\r\n var FluorescentCost = 0\r\n var IncandescentCost = 0\r\n var totalCost = 0\r\n var activeHalogen = false\r\n var activeLED = false\r\n var activeFluorescent = false\r\n var activeIncandescent = false\r\n var ApplianceType = ''\r\n var Hours = ''\r\n var NoOfAppliances = ''\r\n if (\r\n $filter('filter')(questionService.LightTypes, { lightType: 'Halogen', active: true }).length > 0\r\n ) {\r\n var noOfHalogen = 0\r\n var HalogenHourPerDay = 0\r\n var HalogenData = $filter('filter')($scope.applianceData, { Type: 'Halogen' })[0]\r\n if (HalogenData) {\r\n activeHalogen = true\r\n var Halogenusage = $filter('filter')(questionService.LightingUsage, {\r\n lightType: 'Halogen'\r\n })[0]\r\n HalogenHourPerDay = Halogenusage.hoursPerDay ? Halogenusage.hoursPerDay : 0\r\n HalogenHourPerDay = HalogenHourPerDay > 24 ? 24 : HalogenHourPerDay\r\n noOfHalogen = Halogenusage.numberOfLights ? Halogenusage.numberOfLights : 0\r\n noOfHalogen = noOfHalogen > 50 ? 50 : noOfHalogen\r\n HalogenCost =\r\n Number(noOfHalogen) *\r\n (Number(HalogenData.CostPerHour) *\r\n Number(HalogenHourPerDay) *\r\n Number(HalogenData.NoOfDaysPerWeek) *\r\n 8.66)\r\n ApplianceType = ApplianceType ? ApplianceType + ',Halogen' : 'Halogen'\r\n Hours = Hours ? Hours + ',' + HalogenHourPerDay : HalogenHourPerDay\r\n NoOfAppliances = NoOfAppliances ? NoOfAppliances + ',' + noOfHalogen : noOfHalogen\r\n }\r\n }\r\n if ($filter('filter')(questionService.LightTypes, { lightType: 'LED', active: true }).length > 0) {\r\n var noOfLED = 0\r\n var LEDHourPerDay = 0\r\n var LEDData = $filter('filter')($scope.applianceData, { Type: 'LED' })[0]\r\n if (LEDData) {\r\n activeLED = true\r\n var LEDusage = $filter('filter')(questionService.LightingUsage, { lightType: 'LED' })[0]\r\n LEDHourPerDay = LEDusage.hoursPerDay ? LEDusage.hoursPerDay : 0\r\n LEDHourPerDay = LEDHourPerDay > 24 ? 24 : LEDHourPerDay\r\n noOfLED = LEDusage.numberOfLights ? LEDusage.numberOfLights : 0\r\n noOfLED = noOfLED > 50 ? 50 : noOfLED\r\n LEDCost =\r\n Number(noOfLED) *\r\n (Number(LEDData.CostPerHour) *\r\n Number(LEDHourPerDay) *\r\n Number(LEDData.NoOfDaysPerWeek) *\r\n 8.66)\r\n ApplianceType = ApplianceType ? ApplianceType + ',LED' : 'LED'\r\n Hours = Hours ? Hours + ',' + LEDHourPerDay : LEDHourPerDay\r\n NoOfAppliances = NoOfAppliances ? NoOfAppliances + ',' + noOfLED : noOfLED\r\n }\r\n }\r\n if (\r\n $filter('filter')(questionService.LightTypes, { lightType: 'Fluorescent', active: true })\r\n .length > 0\r\n ) {\r\n var noOfFluorescent = 0\r\n var FluorescentHourPerDay = 0\r\n var FluorescentData = $filter('filter')($scope.applianceData, { Type: 'Fluorescent' })[0]\r\n if (FluorescentData) {\r\n activeFluorescent = true\r\n var Fluorescentusage = $filter('filter')(questionService.LightingUsage, {\r\n lightType: 'Fluorescent'\r\n })[0]\r\n FluorescentHourPerDay = Fluorescentusage.hoursPerDay ? Fluorescentusage.hoursPerDay : 0\r\n FluorescentHourPerDay = FluorescentHourPerDay > 24 ? 24 : FluorescentHourPerDay\r\n noOfFluorescent = Fluorescentusage.numberOfLights ? Fluorescentusage.numberOfLights : 0\r\n noOfFluorescent = noOfFluorescent > 50 ? 50 : noOfFluorescent\r\n FluorescentCost =\r\n Number(noOfFluorescent) *\r\n (Number(FluorescentData.CostPerHour) *\r\n Number(FluorescentHourPerDay) *\r\n Number(FluorescentData.NoOfDaysPerWeek) *\r\n 8.66)\r\n ApplianceType = ApplianceType ? ApplianceType + ',Fluorescent' : 'Fluorescent'\r\n Hours = Hours ? Hours + ',' + FluorescentHourPerDay : FluorescentHourPerDay\r\n NoOfAppliances = NoOfAppliances ? NoOfAppliances + ',' + noOfFluorescent : noOfFluorescent\r\n }\r\n }\r\n if (\r\n $filter('filter')(questionService.LightTypes, { lightType: 'Incandescent', active: true })\r\n .length > 0\r\n ) {\r\n var noOfIncandescent = 0\r\n var IncandescentHourPerDay = 0\r\n var IncandescentData = $filter('filter')($scope.applianceData, { Type: 'Incandescent' })[0]\r\n if (IncandescentData) {\r\n activeIncandescent = true\r\n var Incandescentusage = $filter('filter')(questionService.LightingUsage, {\r\n lightType: 'Incandescent'\r\n })[0]\r\n IncandescentHourPerDay = Incandescentusage.hoursPerDay ? Incandescentusage.hoursPerDay : 0\r\n IncandescentHourPerDay = IncandescentHourPerDay > 24 ? 24 : IncandescentHourPerDay\r\n noOfIncandescent = Incandescentusage.numberOfLights ? Incandescentusage.numberOfLights : 0\r\n noOfIncandescent = noOfIncandescent > 50 ? 50 : noOfIncandescent\r\n IncandescentCost =\r\n Number(noOfIncandescent) *\r\n (Number(IncandescentData.CostPerHour) *\r\n Number(IncandescentHourPerDay) *\r\n Number(IncandescentData.NoOfDaysPerWeek) *\r\n 8.66)\r\n ApplianceType = ApplianceType ? ApplianceType + ',Incandescent' : 'Incandescent'\r\n Hours = Hours ? Hours + ',' + IncandescentHourPerDay : IncandescentHourPerDay\r\n NoOfAppliances = NoOfAppliances ? NoOfAppliances + ',' + noOfIncandescent : noOfIncandescent\r\n }\r\n }\r\n\r\n totalCost = HalogenCost + LEDCost + FluorescentCost + IncandescentCost\r\n questionService.ApplianceType = ApplianceType\r\n questionService.Hours = Hours\r\n questionService.NoOfAppliance = NoOfAppliances\r\n if (activeIncandescent) {\r\n HeaderText = tcwApplianceText.LightingHeaderText = $scope.Model.PositiveMessageText\r\n SubHeaderText = tcwApplianceText.LightingSubHeaderText = $scope.Model.PositiveMessageSubText\r\n } else if (activeHalogen && !activeIncandescent) {\r\n HeaderText = tcwApplianceText.LightingHeaderText = $scope.Model.NegativeMessageText\r\n SubHeaderText = tcwApplianceText.LightingSubHeaderText = $scope.Model.NegativeMessageSubText\r\n } else if (activeLED && !activeFluorescent) {\r\n HeaderText = tcwApplianceText.LightingHeaderText = $scope.Model.Message3Text\r\n SubHeaderText = tcwApplianceText.LightingSubHeaderText = $scope.Model.Message3SubText\r\n } else if (\r\n activeFluorescent ||\r\n (activeLED && activeFluorescent && !activeIncandescent && !activeHalogen)\r\n ) {\r\n HeaderText = tcwApplianceText.LightingHeaderText = $scope.Model.Message4Text\r\n SubHeaderText = tcwApplianceText.LightingSubHeaderText = $scope.Model.Message4SubText\r\n }\r\n $scope.resultBill = Math.round(totalCost)\r\n } else if (questionService.ApplianceName == 'Freezer') {\r\n var LargeFreezerData = $filter('filter')($scope.applianceData, { Type: 'Large' })[0]\r\n var SmallFreezerData = $filter('filter')($scope.applianceData, { Type: 'Small' })[0]\r\n var noOfLargeFreezer = parseInt(questionService.Freezer.freezers.Large)\r\n var noOfSmallFreezer = parseInt(questionService.Freezer.freezers.Small)\r\n var totalFreezer = (questionService.NoOfAppliance = noOfLargeFreezer + noOfSmallFreezer)\r\n if (totalFreezer > 1) {\r\n HeaderText = tcwApplianceText.FreezerHeaderText = $scope.Model.NegativeMessageText\r\n SubHeaderText = tcwApplianceText.FridgeSubHeaderText = $scope.Model.NegativeMessageSubText\r\n } else if (totalFreezer == 1) {\r\n HeaderText = tcwApplianceText.FreezerHeaderText = $scope.Model.PositiveMessageText\r\n SubHeaderText = tcwApplianceText.FridgeSubHeaderText = $scope.Model.PositiveMessageSubText\r\n }\r\n var totalCost =\r\n Number(LargeFreezerData.CostPerBill) * noOfLargeFreezer +\r\n Number(SmallFreezerData.CostPerBill) * noOfSmallFreezer\r\n $scope.resultBill = Math.round(totalCost)\r\n } else if (questionService.ApplianceName == 'Dishwasher') {\r\n var NoOfWeekDays = 0\r\n var NoOfWeekends = 0\r\n var Days = ''\r\n var DishwasherData = $scope.applianceData[0]\r\n angular.forEach(questionService.DaysOfWeek, function (DaysOfWeek, index) {\r\n if (index >= 0 && index <= 4 && DaysOfWeek.active) {\r\n NoOfWeekDays = NoOfWeekDays + 1\r\n Days = Days ? Days + ',' + DaysOfWeek.day : DaysOfWeek.day\r\n } else if ((index == 5 || index == 6) && DaysOfWeek.active) {\r\n NoOfWeekends = NoOfWeekends + 1\r\n Days = Days ? Days + ',' + DaysOfWeek.day : DaysOfWeek.day\r\n }\r\n })\r\n questionService.NoOfDays = NoOfWeekDays + NoOfWeekends\r\n questionService.Days = Days\r\n var totalCost =\r\n Number(DishwasherData.CostPerHour) *\r\n Number(DishwasherData.NoOfHrsPerDay) *\r\n Number(questionService.NoOfDays) *\r\n 8.66\r\n $scope.resultBill = Math.round(totalCost)\r\n HeaderText = tcwApplianceText.DishwasherHeaderText = $scope.Model.PositiveMessageText\r\n SubHeaderText = tcwApplianceText.DishwasherSubHeaderText = $scope.Model.PositiveMessageSubText\r\n } else if (questionService.ApplianceName === 'Dryer') {\r\n var dryerData = $scope.applianceData[0]\r\n var totalCost =\r\n Number(dryerData.CostPerHour) *\r\n Number(dryerData.NoOfHrsPerDay) *\r\n Number(questionService.LightSlider) *\r\n 8.66\r\n $scope.resultBill = Math.round(totalCost)\r\n HeaderText = tcwApplianceText.DryerHeaderText = $scope.Model.PositiveMessageText\r\n SubHeaderText = tcwApplianceText.DryerSubHeaderText = $scope.Model.PositiveMessageSubText\r\n } else if (questionService.ApplianceName === 'Heater') {\r\n var NoOfWeekDays = 0\r\n var NoOfWeekends = 0\r\n var WeekdaysCost = 0\r\n var WeekendCost = 0\r\n var totalCost = 0\r\n var Days = ''\r\n var Hours = ''\r\n questionService.Temperature = questionService.AirconditionerUsage.temperature\r\n var heaterData = $filter('filter')($scope.applianceData, { Type: questionService.HeaterType })[0]\r\n if (heaterData) {\r\n angular.forEach(questionService.DaysOfWeek, function (DaysOfWeek, index) {\r\n if (index >= 0 && index <= 4 && DaysOfWeek.active) {\r\n NoOfWeekDays = NoOfWeekDays + 1\r\n Days = Days ? Days + ',' + DaysOfWeek.day : DaysOfWeek.day\r\n } else if ((index == 5 || index == 6) && DaysOfWeek.active) {\r\n NoOfWeekends = NoOfWeekends + 1\r\n Days = Days ? Days + ',' + DaysOfWeek.day : DaysOfWeek.day\r\n }\r\n })\r\n questionService.NoOfDays = NoOfWeekDays + NoOfWeekends\r\n questionService.Days = Days\r\n var noOfHoursWeekDays = questionService.HeaterUsage.hours[0].hoursPerDay\r\n var noOfHoursWeekends = questionService.HeaterUsage.hours[1].hoursPerDay\r\n noOfHoursWeekDays = noOfHoursWeekDays > 24 ? 24 : noOfHoursWeekDays\r\n noOfHoursWeekends = noOfHoursWeekends > 24 ? 24 : noOfHoursWeekends\r\n if (noOfHoursWeekDays) {\r\n var WeekdaysCost =\r\n Number(heaterData.CostPerHour) * Number(noOfHoursWeekDays) * Number(NoOfWeekDays) * 8.66\r\n Hours = Hours ? Hours + ',' + noOfHoursWeekDays : noOfHoursWeekDays\r\n }\r\n if (noOfHoursWeekends) {\r\n var WeekendCost =\r\n Number(heaterData.CostPerHour) * Number(noOfHoursWeekends) * Number(NoOfWeekends) * 8.66\r\n Hours = Hours ? Hours + ',' + noOfHoursWeekends : noOfHoursWeekDays\r\n }\r\n questionService.Hours = Hours\r\n totalCost = WeekdaysCost + WeekendCost\r\n }\r\n if (questionService.NoOfDays > 3) {\r\n HeaderText = tcwApplianceText.HeaterHeaderText = $scope.Model.NegativeMessageText\r\n SubHeaderText = tcwApplianceText.HeaterSubHeaderText = $scope.Model.NegativeMessageSubText\r\n } else {\r\n HeaderText = tcwApplianceText.HeaterHeaderText = $scope.Model.PositiveMessageText\r\n SubHeaderText = tcwApplianceText.HeaterSubHeaderText = $scope.Model.PositiveMessageSubText\r\n }\r\n questionService.ApplianceType = questionService.HeaterType\r\n $scope.resultBill = Math.round(totalCost)\r\n } else if (questionService.ApplianceName === 'Washingmachine') {\r\n var WashingmachineData = $filter('filter')($scope.applianceData, {\r\n Type: questionService.WashingmachineType\r\n })[0]\r\n var totalCost = Number(WashingmachineData.CostPerHour) * Number(questionService.LightSlider) * 8.66\r\n $scope.resultBill = Math.round(totalCost)\r\n if (questionService.LightSlider > 4) {\r\n HeaderText = tcwApplianceText.WashingmachineHeaderText = $scope.Model.NegativeMessageText\r\n SubHeaderText = tcwApplianceText.WashingmachineSubHeaderText =\r\n $scope.Model.NegativeMessageSubText\r\n } else {\r\n HeaderText = tcwApplianceText.WashingmachineHeaderText = $scope.Model.PositiveMessageText\r\n SubHeaderText = tcwApplianceText.WashingmachineSubHeaderText =\r\n $scope.Model.PositiveMessageSubText\r\n }\r\n }\r\n\r\n $scope.HeaderText = HeaderText\r\n $scope.SubHeaderText = SubHeaderText\r\n questionService.Amount = $scope.resultBill\r\n }\r\n\r\n var setAmountForList = function () {\r\n if (questionService.ApplianceName == 'TV') {\r\n questionService.TVAmount = $scope.resultBill\r\n } else if (questionService.ApplianceName == 'Games console') {\r\n questionService.ConsoleAmount = $scope.resultBill\r\n } else if (questionService.ApplianceName == 'Poolpump') {\r\n questionService.PoolPumpAmount = $scope.resultBill\r\n } else if (questionService.ApplianceName == 'Fridge') {\r\n questionService.FridgeAmount = $scope.resultBill\r\n } else if (questionService.ApplianceName == 'Airconditioner') {\r\n questionService.ACAmount = $scope.resultBill\r\n } else if (questionService.ApplianceName == 'Lighting') {\r\n questionService.LightingAmount = $scope.resultBill\r\n } else if (questionService.ApplianceName == 'Freezer') {\r\n questionService.FreezerAmount = $scope.resultBill\r\n } else if (questionService.ApplianceName == 'Dishwasher') {\r\n questionService.DishwasherAmount = $scope.resultBill\r\n } else if (questionService.ApplianceName == 'Dryer') {\r\n questionService.DryerAmount = $scope.resultBill\r\n } else if (questionService.ApplianceName == 'Heater') {\r\n questionService.HeaterAmount = $scope.resultBill\r\n } else if (questionService.ApplianceName == 'Washingmachine') {\r\n questionService.WashingmachineAmount = $scope.resultBill\r\n }\r\n }\r\n\r\n $scope.$on('calculateBill', function (event, args) {\r\n calculate()\r\n if (!args) {\r\n questionService.SecQuestionBtn = false\r\n questionService.SecQuestion = true\r\n questionService.SecResult = true\r\n setAmountForList()\r\n tcwServiceApi.addUpdateEnergyToolProfile()\r\n tcwServiceApi.setCookieByName('TCWApplianceText', tcwApplianceText)\r\n }\r\n })\r\n }\r\n ])\r\n\r\n .controller('tcwApplianceList', [\r\n '$scope',\r\n 'questionService',\r\n 'tcwServiceApi',\r\n 'tcwApplianceText',\r\n function tcwApplianceList($scope, questionService, tcwServiceApi, tcwApplianceText) {\r\n setupHelptooltipToggle()\r\n setupApplicanceItemHover() // setup icon hover state.\r\n $scope.init = function (headertext) {\r\n tcwApplianceText.ListHeadertext = headertext\r\n var data = tcwServiceApi.getCookieByName('TCWQuestion')\r\n if (data) {\r\n questionService.setData(data)\r\n }\r\n var dataText = tcwServiceApi.getCookieByName('TCWApplianceText')\r\n if (dataText) {\r\n tcwApplianceText.setData(dataText)\r\n }\r\n questionService.ToolName = 'reduce your bill'\r\n }\r\n\r\n $scope.resultList = questionService\r\n $scope.resultText = tcwApplianceText\r\n $scope.checkAmount = function (id) {\r\n if (id == 'Television') {\r\n return $scope.resultList.TVAmount > 0\r\n } else if (id === 'Console') {\r\n return $scope.resultList.ConsoleAmount > 0\r\n } else if (id === 'PoolPump') {\r\n return $scope.resultList.PoolPumpAmount > 0\r\n } else if (id === 'Fridge') {\r\n return $scope.resultList.FridgeAmount > 0\r\n } else if (id === 'AC') {\r\n return $scope.resultList.ACAmount > 0\r\n } else if (id === 'Lighting') {\r\n return $scope.resultList.LightingAmount > 0\r\n } else if (id === 'Freezer') {\r\n return $scope.resultList.FreezerAmount > 0\r\n } else if (id === 'Dishwasher') {\r\n return $scope.resultList.DishwasherAmount > 0\r\n } else if (id === 'Dryer') {\r\n return $scope.resultList.DryerAmount > 0\r\n } else if (id === 'Heater') {\r\n return $scope.resultList.HeaterAmount > 0\r\n } else if (id === 'Washingmachine') {\r\n return $scope.resultList.WashingmachineAmount > 0\r\n }\r\n }\r\n $scope.resultAmount = function (id) {\r\n if (id == 'Television') {\r\n return $scope.resultList.TVAmount\r\n } else if (id === 'Console') {\r\n return $scope.resultList.ConsoleAmount\r\n } else if (id === 'PoolPump') {\r\n return $scope.resultList.PoolPumpAmount\r\n } else if (id === 'Fridge') {\r\n return $scope.resultList.FridgeAmount\r\n } else if (id === 'AC') {\r\n return $scope.resultList.ACAmount\r\n } else if (id === 'Lighting') {\r\n return $scope.resultList.LightingAmount\r\n } else if (id === 'Freezer') {\r\n return $scope.resultList.FreezerAmount\r\n } else if (id === 'Dishwasher') {\r\n return $scope.resultList.DishwasherAmount\r\n } else if (id === 'Dryer') {\r\n return $scope.resultList.DryerAmount\r\n } else if (id === 'Heater') {\r\n return $scope.resultList.HeaterAmount\r\n } else if (id === 'Washingmachine') {\r\n return $scope.resultList.WashingmachineAmount\r\n }\r\n }\r\n $scope.getHeader = function (id) {\r\n if (id == 'Television') {\r\n return $scope.resultText.TelevisionHeaderText\r\n } else if (id === 'Console') {\r\n return $scope.resultText.ConsoleHeaderText\r\n } else if (id === 'PoolPump') {\r\n return $scope.resultText.PoolPumpHeaderText\r\n } else if (id === 'Fridge') {\r\n return $scope.resultText.FridgeHeaderText\r\n } else if (id === 'AC') {\r\n return $scope.resultText.AirconditionerHeaderText\r\n } else if (id === 'Lighting') {\r\n return $scope.resultText.LightingHeaderText\r\n } else if (id === 'Freezer') {\r\n return $scope.resultText.FreezerHeaderText\r\n } else if (id === 'Dishwasher') {\r\n return $scope.resultText.DishwasherHeaderText\r\n } else if (id === 'Dryer') {\r\n return $scope.resultText.DryerHeaderText\r\n } else if (id === 'Heater') {\r\n return $scope.resultText.HeaterHeaderText\r\n } else if (id === 'Washingmachine') {\r\n return $scope.resultText.WashingmachineHeaderText\r\n }\r\n }\r\n $scope.getSubHeader = function (id) {\r\n if (id == 'Television') {\r\n return $scope.resultText.TelevisionSubHeaderText\r\n } else if (id === 'Console') {\r\n return $scope.resultText.ConsoleSubHeaderText\r\n } else if (id === 'PoolPump') {\r\n return $scope.resultText.PoolPumpSubHeaderText\r\n } else if (id === 'Fridge') {\r\n return $scope.resultText.FridgeSubHeaderText\r\n } else if (id === 'AC') {\r\n return $scope.resultText.AirconditionerSubHeaderText\r\n } else if (id === 'Lighting') {\r\n return $scope.resultText.LightingSubHeaderText\r\n } else if (id === 'Freezer') {\r\n return $scope.resultText.FreezerSubHeaderText\r\n } else if (id === 'Dishwasher') {\r\n return $scope.resultText.DishwasherSubHeaderText\r\n } else if (id === 'Dryer') {\r\n return $scope.resultText.DryerSubHeaderText\r\n } else if (id === 'Heater') {\r\n return $scope.resultText.HeaterSubHeaderText\r\n } else if (id === 'Washingmachine') {\r\n return $scope.resultText.WashingmachineSubHeaderText\r\n }\r\n }\r\n $scope.$on('$routeChangeStart', function ($event, next) {\r\n questionService.ApplianceName = next.$$route.name\r\n questionService.SecResult = false\r\n })\r\n }\r\n ])\r\n .controller('tipsController', [\r\n function tipsController() {\r\n initialiseSlider()\r\n }\r\n ])\r\n .directive('syTcwCompare', [\r\n function syTcwCompare() {\r\n return {\r\n restrict: 'A',\r\n scope: true,\r\n controller: 'tcwCompareController',\r\n controllerAs: 'tcwCompareController',\r\n link: function ($scope, $element, attrs) {\r\n if (attrs.sySuburbAverageLabel) {\r\n $scope.suburbAverageLabel = attrs.sySuburbAverageLabel\r\n }\r\n if (attrs.syHouseholdsLabel) {\r\n $scope.HouseholdsLabel = attrs.syHouseholdsLabel\r\n }\r\n if (attrs.syYourBillLabel) {\r\n $scope.YourBillLabel = attrs.syYourBillLabel\r\n }\r\n }\r\n }\r\n }\r\n ])\r\n .directive('syModuleId', [\r\n function syModuleId() {\r\n return {\r\n restrict: 'A',\r\n scope: true,\r\n link: function ($scope, $element, attrs) {\r\n $scope.disableNext(attrs.syModuleId)\r\n }\r\n }\r\n }\r\n ])\r\n .service('questionService', [\r\n '$rootScope',\r\n 'AdobeAnalyticsService',\r\n 'AdobeToolModel',\r\n function questionService($rootScope, AdobeAnalyticsService, AdobeToolModel) {\r\n var self = this\r\n this.SecQuestion = true\r\n this.SecQuestionBtn = true\r\n this.SecResult = false\r\n this.QuestionStepNumber = 0\r\n this.ResultFirstBtnLabel = ''\r\n this.LastEnergyBill = '0'\r\n this.HouseType = ''\r\n this.Bedrooms = 0\r\n this.Bathrooms = 0\r\n this.Adults = 0\r\n this.Children = 0\r\n this.HouseholdSize = {\r\n Adults: 0,\r\n Children: 0,\r\n value: []\r\n }\r\n this.HomeSize = {\r\n Bedrooms: 0,\r\n Bathrooms: 0,\r\n value: []\r\n }\r\n this.Suburb = ''\r\n this.HouseholdAverage = 0\r\n this.SuburbAverage = 0\r\n this.BillDifference = 0\r\n this.BillDifferenceStatus = ''\r\n this.ProfileID = ''\r\n this.ToolName = ''\r\n this.ApplianceName = ''\r\n this.Television = {\r\n offAtWall: false,\r\n televisions: 0\r\n }\r\n this.Console = {\r\n offAtWall: false,\r\n consoles: 0\r\n }\r\n this.PoolPump = {\r\n source: '',\r\n value: 0\r\n }\r\n this.Fridge = {\r\n change: { type: '', action: '' },\r\n fridges: { Small: 0, Medium: 0, Large: 0 }\r\n }\r\n this.AirconditionerType = ''\r\n this.DaysOfWeek = [\r\n {\r\n day: 'Mon',\r\n active: false\r\n },\r\n {\r\n day: 'Tues',\r\n active: false\r\n },\r\n {\r\n day: 'Wed',\r\n active: false\r\n },\r\n {\r\n day: 'Thurs',\r\n active: false\r\n },\r\n {\r\n day: 'Fri',\r\n active: false\r\n },\r\n {\r\n day: 'Sat',\r\n active: false\r\n },\r\n {\r\n day: 'Sun',\r\n active: false\r\n }\r\n ]\r\n this.AirconditionerUsage = {\r\n hours: [\r\n { days: 'Weekdays', hoursPerDay: undefined },\r\n {\r\n days: 'Weekends',\r\n hoursPerDay: undefined\r\n }\r\n ],\r\n temperature: undefined\r\n }\r\n this.LightTypes = [\r\n { lightType: 'Halogen', label: 'Halogen', active: false },\r\n {\r\n lightType: 'LED',\r\n label: 'LED',\r\n active: false\r\n },\r\n {\r\n lightType: 'Fluorescent',\r\n label: 'Fluorescent',\r\n active: false\r\n },\r\n {\r\n lightType: 'Incandescent',\r\n label: 'Incandescent',\r\n active: false\r\n }\r\n ]\r\n this.LightingUsage = [\r\n {\r\n lightType: 'Halogen',\r\n label: 'Halogen',\r\n active: true,\r\n hoursPerDay: undefined,\r\n numberOfLights: undefined\r\n },\r\n {\r\n lightType: 'LED',\r\n label: 'LED',\r\n active: true,\r\n hoursPerDay: undefined,\r\n numberOfLights: undefined\r\n },\r\n {\r\n lightType: 'Fluorescent',\r\n label: 'Fluorescent',\r\n active: true,\r\n hoursPerDay: undefined,\r\n numberOfLights: undefined\r\n },\r\n {\r\n lightType: 'Incandescent',\r\n label: 'Incandescent',\r\n active: true,\r\n hoursPerDay: undefined,\r\n numberOfLights: undefined\r\n }\r\n ]\r\n this.Freezer = {\r\n change: { type: '', action: '' },\r\n freezers: { Small: 0, Large: 0 }\r\n }\r\n this.LightSlider = 0\r\n this.DefaultHeaterType = [\r\n { heaterType: 'OilHeaterSmall', label: 'Small Oil Heater' },\r\n { heaterType: 'OilHeaterLarge', label: 'Large Oil Heater' },\r\n { heaterType: 'FanHeaterSmall', label: 'Small Fan Heater' },\r\n { heaterType: 'FanHeaterLarge', label: 'Large Fan Heater' }\r\n ]\r\n this.HeaterType = ''\r\n\r\n this.HeaterUsage = {\r\n hours: [\r\n { days: 'Weekdays', hoursPerDay: undefined },\r\n {\r\n days: 'Weekends',\r\n hoursPerDay: undefined\r\n }\r\n ]\r\n }\r\n\r\n this.DefaultWashingmachineType = [\r\n { washingMachineType: 'TopLoader', label: 'Top Loader' },\r\n { washingMachineType: 'FrontLoader', label: 'Front Loader' }\r\n ]\r\n\r\n this.WashingmachineType = ''\r\n\r\n this.TVAmount = 0\r\n this.ConsoleAmount = 0\r\n this.PoolPumpAmount = 0\r\n this.FridgeAmount = 0\r\n this.ACAmount = 0\r\n this.LightingAmount = 0\r\n this.FreezerAmount = 0\r\n this.DishwasherAmount = 0\r\n this.DryerAmount = 0\r\n this.HeaterAmount = 0\r\n this.WashingmachineAmount = 0\r\n this.Appliance = ''\r\n this.Hours = ''\r\n this.Days = ''\r\n this.Temperature = '0'\r\n this.Amount = '0'\r\n this.DoYouSwitchitOff = ''\r\n this.Options = ''\r\n this.Postcode = ''\r\n this.NoOfAppliance = 0\r\n this.NoOfDays = 0\r\n this.ApplianceType = 0\r\n\r\n this.setData = function (data) {\r\n self.SecQuestion = data.SecQuestion\r\n self.SecQuestionBtn = data.SecQuestionBtn\r\n self.SecResult = data.SecResult\r\n self.LastEnergyBill = data.LastEnergyBill\r\n self.HouseType = data.HouseType\r\n self.HouseholdSize = data.HouseholdSize\r\n self.HomeSize = data.HomeSize\r\n self.Suburb = data.Suburb\r\n self.HouseholdAverage = data.HouseholdAverage\r\n self.SuburbAverage = data.SuburbAverage\r\n self.BillDifference = data.BillDifference\r\n self.BillDifferenceStatus = data.BillDifferenceStatus\r\n self.ProfileID = data.ProfileID\r\n self.ToolName = data.ToolName\r\n self.Television = data.Television\r\n self.Console = data.Console\r\n self.PoolPump = data.PoolPump\r\n self.Fridge = data.Fridge\r\n self.AirconditionerType = data.AirconditionerType\r\n self.DaysOfWeek = data.DaysOfWeek\r\n self.AirconditionerUsage = data.AirconditionerUsage\r\n self.LightTypes = data.LightTypes\r\n self.LightingUsage = data.LightingUsage\r\n self.Freezer = data.Freezer\r\n self.HeaterType = data.HeaterType\r\n self.HeaterUsage = data.HeaterUsage\r\n self.WashingmachineType = data.WashingmachineType\r\n self.LightSlider = data.LightSlider\r\n self.TVAmount = data.TVAmount\r\n self.ConsoleAmount = data.ConsoleAmount\r\n self.PoolPumpAmount = data.PoolPumpAmount\r\n self.FridgeAmount = data.FridgeAmount\r\n self.ACAmount = data.ACAmount\r\n self.LightingAmount = data.LightingAmount\r\n self.FreezerAmount = data.FreezerAmount\r\n self.DishwasherAmount = data.DishwasherAmount\r\n self.DryerAmount = data.DryerAmount\r\n self.WashingmachineAmount = data.WashingmachineAmount\r\n self.HeaterAmount = data.HeaterAmount\r\n self.QuestionStepNumber = data.QuestionStepNumber\r\n }\r\n this.modifyQuestion = function () {\r\n $rootScope.$broadcast('modifyQuestion')\r\n }\r\n this.calculateBill = function (arg) {\r\n $rootScope.$broadcast('calculateBill', arg)\r\n }\r\n\r\n var trackedSteps = []\r\n var trackedAppSteps = []\r\n var isToolStart = false\r\n this.trackEnergyTools = function () {\r\n if (self.SecResult) {\r\n return\r\n }\r\n var stepNumber = self.QuestionStepNumber\r\n if (trackedSteps.indexOf(stepNumber) >= 0) {\r\n return\r\n }\r\n var stage = 'incomplete'\r\n var stepName = $('#step-' + self.QuestionStepNumber).attr('stepname')\r\n if (!isToolStart) {\r\n stage = 'start'\r\n isToolStart = true\r\n }\r\n AdobeToolModel.name = self.ToolName\r\n AdobeToolModel.stage = stage\r\n AdobeToolModel.step = stepNumber\r\n AdobeToolModel.stepName = stepName ? stepName.toLowerCase() : ''\r\n AdobeToolModel.category = self.ApplianceName.toLowerCase()\r\n AdobeToolModel.label = ''\r\n AdobeAnalyticsService.trackToolNavigation(AdobeToolModel)\r\n trackedSteps.push(stepNumber)\r\n }\r\n var appStepNumber = 0\r\n this.trackEnergyToolsAppliances = function (stepName, stage) {\r\n if (self.SecResult) {\r\n return\r\n }\r\n if (trackedAppSteps.indexOf(self.ApplianceName + '-' + stepName) >= 0) {\r\n return\r\n }\r\n stage = stage || 'incomplete'\r\n var stepNameText = ''\r\n if (stage == 'start') {\r\n appStepNumber = 1\r\n stepNameText = stepName || 'which appliances do you use most'\r\n } else {\r\n var headings = $('#' + stepName).find('h2.secondary-heading')\r\n stepNameText = headings && headings.length > 0 ? headings[0].innerText : stepName\r\n }\r\n AdobeToolModel.name = self.ToolName\r\n AdobeToolModel.stage = stage\r\n AdobeToolModel.step = appStepNumber\r\n AdobeToolModel.stepName = stepNameText.toLowerCase()\r\n AdobeToolModel.category = self.ApplianceName.toLowerCase()\r\n AdobeToolModel.label = ''\r\n AdobeAnalyticsService.trackToolNavigation(AdobeToolModel)\r\n trackedAppSteps.push(self.ApplianceName + '-' + stepName)\r\n appStepNumber = appStepNumber + 1\r\n }\r\n this.trackEnergyToolsComplete = function (stepName) {\r\n if (!self.ApplianceName) {\r\n if (!isToolStart) {\r\n return\r\n }\r\n }\r\n var stepNumber = self.QuestionStepNumber + 1\r\n AdobeToolModel.name = self.ToolName\r\n AdobeToolModel.stage = 'complete'\r\n AdobeToolModel.step = stepNumber ? stepNumber : ''\r\n AdobeToolModel.stepName = stepName ? stepName.toLowerCase() : ''\r\n AdobeToolModel.category = self.ApplianceName.toLowerCase()\r\n AdobeToolModel.label = ''\r\n AdobeAnalyticsService.trackToolNavigation(AdobeToolModel)\r\n }\r\n this.trackEnergyToolsResult = function (type) {\r\n AdobeToolModel.name = self.ToolName\r\n AdobeToolModel.stage = 'result'\r\n AdobeToolModel.step = $('#dvTcwQuestions').attr('totalSteps')\r\n AdobeToolModel.stepName = 'result'\r\n AdobeToolModel.label = self.ResultFirstBtnLabel ? self.ResultFirstBtnLabel.toLowerCase() : ''\r\n AdobeToolModel.category = self.ApplianceName.toLowerCase()\r\n if (type == 'interaction') {\r\n AdobeAnalyticsService.trackToolInteraction(AdobeToolModel)\r\n } else {\r\n AdobeAnalyticsService.trackToolNavigation(AdobeToolModel)\r\n }\r\n }\r\n }\r\n ])\r\n .service('tcwApplianceText', function tcwApplianceText() {\r\n var self = this\r\n this.TelevisionHeaderText = ''\r\n this.TelevisionSubHeaderText = ''\r\n this.ConsoleHeaderText = ''\r\n this.ConsoleSubHeaderText = ''\r\n this.PoolPumpHeaderText = ''\r\n this.PoolPumpSubHeaderText = ''\r\n this.FridgeHeaderText = ''\r\n this.FridgeSubHeaderText = ''\r\n this.AirconditionerHeaderText = ''\r\n this.AirconditionerSubHeaderText = ''\r\n this.LightingHeaderText = ''\r\n this.LightingSubHeaderText = ''\r\n this.FreezerHeaderText = ''\r\n this.FreezerSubHeaderText = ''\r\n this.DishwasherHeaderText = ''\r\n this.DishwasherSubHeaderText = ''\r\n this.DryerHeaderText = ''\r\n this.DryerSubHeaderText = ''\r\n this.HeaterHeaderText = ''\r\n this.HeaterSubHeaderText = ''\r\n this.WashingmachineHeaderText = ''\r\n this.WashingmachineSubHeaderText = ''\r\n this.HeaderText = ''\r\n this.SubHeaderText = ''\r\n this.ListHeadertext = ''\r\n\r\n this.setData = function (data) {\r\n self.HeaderText = data.HeaderText\r\n self.SubHeaderText = data.SubHeaderText\r\n self.TelevisionHeaderText = data.TelevisionHeaderText\r\n self.TelevisionSubHeaderText = data.TelevisionSubHeaderText\r\n self.ConsoleHeaderText = data.ConsoleHeaderText\r\n self.ConsoleSubHeaderText = data.ConsoleSubHeaderText\r\n self.PoolPumpHeaderText = data.PoolPumpHeaderText\r\n self.PoolPumpSubHeaderText = data.PoolPumpSubHeaderText\r\n self.FridgeHeaderText = data.FridgeHeaderText\r\n self.FridgeSubHeaderText = data.FridgeSubHeaderText\r\n self.AirconditionerHeaderText = data.AirconditionerHeaderText\r\n self.AirconditionerSubHeaderText = data.AirconditionerSubHeaderText\r\n self.LightingHeaderText = data.LightingHeaderText\r\n self.LightingSubHeaderText = data.LightingSubHeaderText\r\n self.FreezerHeaderText = data.FreezerHeaderText\r\n self.FreezerSubHeaderText = data.FreezerSubHeaderText\r\n self.DishwasherHeaderText = data.DishwasherHeaderText\r\n self.DishwasherSubHeaderText = data.DishwasherSubHeaderText\r\n self.DryerHeaderText = data.DryerHeaderText\r\n self.DryerSubHeaderText = data.DryerSubHeaderText\r\n self.WashingmachineHeaderText = data.WashingmachineHeaderText\r\n self.WashingmachineSubHeaderText = data.WashingmachineSubHeaderText\r\n self.HeaterHeaderText = data.HeaterHeaderText\r\n self.HeaterSubHeaderText = data.HeaterSubHeaderText\r\n self.ListHeadertext = data.ListHeadertext\r\n }\r\n })\r\n .service('tcwServiceApi', [\r\n '$q',\r\n '$http',\r\n 'questionService',\r\n function tcwServiceApi($q, $http, questionService) {\r\n var self = this\r\n this.tcwService = function (method, url, data) {\r\n var deferred = $q.defer()\r\n var params = ''\r\n if (method == 'GET') {\r\n params = data\r\n }\r\n $http({\r\n method: method,\r\n url: url,\r\n data: data,\r\n params: params\r\n }).then(\r\n function (response) {\r\n deferred.resolve(response)\r\n },\r\n function (response) {\r\n if (response.status === 404) {\r\n deferred.reject()\r\n } else {\r\n deferred.resolve(null)\r\n }\r\n }\r\n )\r\n return deferred.promise\r\n }\r\n this.setCookieByName = function (cookieName, resultData) {\r\n var value = angular.toJson(resultData)\r\n localStorage.setItem(cookieName, value)\r\n }\r\n\r\n this.getCookieByName = function (cookieName) {\r\n var data = localStorage.getItem(cookieName)\r\n var jsonData = angular.fromJson(data)\r\n return jsonData\r\n }\r\n this.addUpdateEnergyToolProfile = function () {\r\n questionService.Bedrooms = questionService.HomeSize.Bedrooms\r\n questionService.Bathrooms = questionService.HomeSize.Bathrooms\r\n questionService.Adults = questionService.HouseholdSize.Adults\r\n questionService.Children = questionService.HouseholdSize.Children\r\n questionService.Appliance = questionService.ApplianceName\r\n self.tcwService('POST', '/TCWApi/AddUpdateEnergyToolProfile', questionService).then(function (\r\n response\r\n ) {\r\n if (response && response.data) {\r\n questionService.ProfileID = response.data.ProfileID\r\n self.setCookieByName('TCWQuestion', questionService)\r\n }\r\n })\r\n }\r\n }\r\n ])\r\n\r\nfunction setNavigationButtonTitle() {\r\n setTimeout(function () {\r\n $('.breakdownyourbill-nav--prev').attr('title', 'Previous')\r\n $('.breakdownyourbill-nav--next').attr('title', 'Next')\r\n }, 3000)\r\n}\r\n\r\nfunction setupHelptooltipToggle() {\r\n $('#helpTipsClk').click(function () {\r\n const helpTipsBlock = $('.helpTipsBlock')\r\n if (!helpTipsBlock.hasClass('active')) {\r\n helpTipsBlock.addClass('active').show('slow')\r\n } else {\r\n helpTipsBlock.removeClass('active').hide('slow')\r\n }\r\n })\r\n\r\n $('#battery').hide()\r\n $('#RequestCallBack').on('click', function () {\r\n $('#battery').show()\r\n })\r\n\r\n $('.tcwHelpIcon1').click(function () {\r\n $('.helpTipsBlock2').hide()\r\n $('.helpTipsBlock1').slideToggle('slow')\r\n })\r\n $('.tcwHelpIcon2').click(function () {\r\n $('.helpTipsBlock1').hide()\r\n $('.helpTipsBlock2').slideToggle('slow')\r\n })\r\n}\r\n\r\nfunction initialiseSlider() {\r\n angular.element(document).ready(function () {\r\n setTimeout(function () {\r\n $('.responsive').slick({\r\n dots: true,\r\n infinite: false,\r\n speed: 300,\r\n slidesToShow: 4,\r\n slidesToScroll: 4,\r\n arrows: true,\r\n responsive: [\r\n {\r\n breakpoint: 1024,\r\n dots: true,\r\n settings: {\r\n slidesToShow: 3,\r\n dots: true,\r\n slidesToScroll: 3,\r\n infinite: true,\r\n arrows: true\r\n }\r\n },\r\n {\r\n breakpoint: 600,\r\n dots: true,\r\n settings: {\r\n dots: true,\r\n slidesToShow: 2,\r\n slidesToScroll: 2\r\n }\r\n },\r\n {\r\n breakpoint: 480,\r\n dots: true,\r\n settings: {\r\n dots: true,\r\n slidesToShow: 1,\r\n slidesToScroll: 1\r\n }\r\n }\r\n ]\r\n })\r\n }, 0)\r\n })\r\n}\r\n\r\nfunction setupApplicanceItemHover() {\r\n const applianceItem = $('.reduceList a.liApp')\r\n applianceItem.mouseover(function () {\r\n const backHoveImg = $(this).attr('backHoveImg')\r\n $(this).find('.iconBox').css('background-image', `url(${backHoveImg})`)\r\n })\r\n applianceItem.mouseleave(function () {\r\n const backImag = $(this).attr('backImag')\r\n $(this).find('.iconBox').css('background-image', `url(${backImag})`)\r\n })\r\n}\r\n\r\nfunction handleQuestions() {\r\n angular.element(document).ready(function () {\r\n setTimeout(function () {\r\n const sectionContainer = $('.section-container')\r\n sectionContainer.first().addClass('fadeIn').removeClass('disableControl')\r\n sectionContainer.find('input,.tile-button').not(':first').attr('disabled', true)\r\n\r\n const tcwProgressSteps = $('.tcwProgressSteps')\r\n if (tcwProgressSteps.offset()) {\r\n var distance = tcwProgressSteps.offset().top\r\n $(window).scroll(function () {\r\n var scroll = $(window).scrollTop()\r\n if (scroll <= distance) {\r\n tcwProgressSteps.removeClass('tcwStepsSticky')\r\n } else {\r\n tcwProgressSteps.addClass('tcwStepsSticky')\r\n }\r\n })\r\n }\r\n\r\n $('#btnShowResult').on('click', function () {\r\n var id = $('.compareComponent').find('div').attr('id')\r\n\r\n if (\r\n id.indexOf('Television') >= 0 ||\r\n id.indexOf('Console') >= 0 ||\r\n id.indexOf('PoolPump') >= 0 ||\r\n id.indexOf('Aircondition') >= 0 ||\r\n id.indexOf('Light') >= 0 ||\r\n id.indexOf('Dryer') >= 0 ||\r\n id.indexOf('Freezer') >= 0 ||\r\n id.indexOf('Heater') >= 0 ||\r\n id.indexOf('Washingmachine') >= 0\r\n ) {\r\n } else {\r\n $('html, body').animate({ scrollTop: 0 }, 1000)\r\n }\r\n })\r\n $('.tcwHelpIcon').click(function () {\r\n $('.helpTipsBlock').slideToggle('slow')\r\n })\r\n\r\n $.getJSON('/files/PostCodeSuburb.json', function (data) {\r\n autocomplete(data)\r\n })\r\n }, 0)\r\n })\r\n}\r\n\r\nfunction autocomplete(data) {\r\n let suburbControlField = $('.fieldSuburbControl')\r\n\r\n if (suburbControlField.length) {\r\n var autocompleteData = []\r\n $.each(data, function (index, item) {\r\n if (item.Suburbs.indexOf(',') > -1) {\r\n var subrubData = item.Suburbs.split(',')\r\n $.each(subrubData, function (index, suburb) {\r\n autocompleteData.push(item.PostCode + ' - ' + suburb)\r\n })\r\n } else {\r\n autocompleteData.push(item.PostCode + ' - ' + item.Suburbs)\r\n }\r\n })\r\n\r\n suburbControlField.autocomplete({\r\n minLength: 3,\r\n mustMatch: true,\r\n source: autocompleteData,\r\n focus: function (event, ui) {\r\n var input = suburbControlField\r\n input.val($.trim(ui.item.label.split('-')[1]))\r\n return false\r\n },\r\n select: function (event, ui) {\r\n var input = suburbControlField\r\n input.val($.trim(ui.item.label.split('-')[1]))\r\n },\r\n change: function (event, ui) {\r\n if (!ui.item) {\r\n var value = this.value\r\n var data = $.grep(autocompleteData, function (n, i) {\r\n return n.toLowerCase().indexOf(value.toLowerCase()) >= 0\r\n })\r\n if (data && data.length > 0) {\r\n this.value = $.trim(data[0].split('-')[1])\r\n } else {\r\n this.value = ''\r\n }\r\n var input = suburbControlField\r\n input.trigger('input') // Use for Chrome/Firefox/Edge\r\n input.trigger('change') // Use for Chrome/Firefox/Edge + IE11/\r\n }\r\n },\r\n messages: {\r\n noResults: '',\r\n results: function () {\r\n return ''\r\n }\r\n }\r\n })\r\n }\r\n}\r\n\r\nfunction handleStickyWrapper() {\r\n angular.element(document).ready(function () {\r\n let clickable = false\r\n let clicked = false\r\n\r\n setTimeout(function () {\r\n const stickyWrapper = $('.stickyWraper')\r\n if (stickyWrapper) {\r\n const grayWrap = $('.grayWrap')\r\n const costeCollepse = $('.costeCollepse')\r\n const stickyCosteTop = $('.stickyWraper h2').offset().top\r\n const stickyTip = $('.stickytips').offset().top + $('.stickytips').height()\r\n const windowElement = $(window)\r\n\r\n windowElement.on('scroll', function () {\r\n let scrollBottom = windowElement.scrollTop() + windowElement.height()\r\n\r\n if (windowElement.scrollTop() > stickyTip || scrollBottom < stickyCosteTop) {\r\n stickyWrapper.css({ position: 'fixed', bottom: '0px' })\r\n clickable = true\r\n if (!clicked) {\r\n grayWrap.show()\r\n }\r\n costeCollepse.show()\r\n } else {\r\n stickyWrapper.css({ position: 'absolute', bottom: '' })\r\n clickable = false\r\n grayWrap.hide()\r\n costeCollepse.hide()\r\n }\r\n })\r\n\r\n stickyWrapper.each(function () {\r\n const $accordian = $(this)\r\n $accordian.find('.tcw-Sticky-Header').on('click', function () {\r\n $(this).removeClass('open').addClass('close')\r\n $accordian.find('.grayWrap').slideUp()\r\n clicked = true\r\n if (clickable) {\r\n if (!$(this).next().is(':visible')) {\r\n $(this).removeClass('close').addClass('open')\r\n $(this).next().slideDown()\r\n clicked = false\r\n }\r\n }\r\n })\r\n })\r\n }\r\n }, 1000)\r\n })\r\n}\r\n\r\nangular.module('app').requires.push('syTCW');"],"names":["angular","module","config","$routeProvider","$locationProvider","html5Mode","when","name","templateUrl","controller","$scope","$timeout","questionService","$route","$filter","ApplianceName","current","trackStart","element","document","ready","setTimeout","sectionContainer","$","first","addClass","removeClass","find","not","attr","tcwProgressSteps","offset","distance","top","window","scroll","scrollTop","on","id","indexOf","animate","click","slideToggle","getJSON","data","suburbControlField","length","autocompleteData","each","index","item","Suburbs","subrubData","split","suburb","push","PostCode","autocomplete","minLength","mustMatch","source","focus","event","ui","val","trim","label","select","change","value","this","grep","n","i","toLowerCase","input","trigger","messages","noResults","results","disableNext","countActive","counthoursSel","countnumberOfLightsSel","isDisabled","disableNextAverageSlider","LastEnergyBill","disableNextHomeType","HouseType","disableNextHomeSize","HomeSize","Bedrooms","Bathrooms","disableNextHouseholdSize","HouseholdSize","Adults","Children","disableNextLocation","Suburb","disableNextTelevision","Television","televisions","disableNextConsole","Console","consoles","disableNextPoolPump","PoolPump","disableNextFridge","Fridge","fridges","Large","Medium","Small","disableNextAirconditionerType","AirconditionerType","disableNextDaysOfWeek","DaysOfWeek","active","disableNextAirconditionerUsage","AirconditionerUsage","temperature","disableNextLightTypes","LightTypes","disableNextLightingUsage","forEach","LightingUsage","obj","key","hoursPerDay","numberOfLights","disableNextFreezer","Freezer","freezers","disableNextLightSlider","LightSlider","disableNextHeaterType","HeaterType","disableNextHeaterUsage","HeaterUsage","hours","disableNextWashingmachineType","WashingmachineType","SecResult","resultTracked","ResultFirstBtnLabel","trackEnergyToolsResult","enableComponent","btnNextClick","addSteps","self","nextdiv","nextAll","removeAttr","stepId","Number","QuestionStepNumber","modifyQuestion","trackEnergyTools","dialPalette","tvColor","consoleColor","renderTCWComponent","renderAirconditionerUsage","airconditionUage","getElementById","innerHTML","checkdefault","daysOfWeekDefault","JSON","parse","stringify","hoursTitle","undefined","temperatureTitle","AirconditionerUsageParams","title","tabColor","hourSliderPalette","temperaturePalette","colors","tcw","renderElement","onChange","onAirconditionerUsageChange","defaultValue","daysOfWeek","minimumTemperature","maximumTemperature","renderHeaterUsage","heaterUsage","HeaterUsageParams","lightingPalette","onHeaterUsageChange","palette","renderLightingUsage","lightingUsage","reduce","currentConfig","light","lightsTitle","LightingUsageParams","onLightingUsageChange","lightingValueColor","appliance","applianceElement","hash","location","path","substring","classList","add","concat","question","avgSlider","onUsageSliderChange","scaleDomain","scaleRange","AverageSliderParams","homeType","onHouseTypeChange","labels","HomeTypeParams","homeSize","onHomeSizeChange","HomeSizeParams","houseHoldSize","onHouseholdSizeChange","HouseholdSizeParams","television","_$scope$TelevisionPar","TelevisionParams","monitorColor","monitorTextColor","offAtWallTitle","wallSwitchButtonColor","wallSwitchPlugColor","wallSwitchCordColor","onTelevisionChange","maxValue","console","ConsoleParams","onConsoleChange","poolPump","onPoolPumpChange","PoolPumpParams","fridge","labelSmall","labelMedium","labelLarge","FridgeParams","onFridgeChange","color","airconditionerType","onAirconditionerTypeChange","AirconditionerTypeParams","daysOfweek","onDaysOfWeekChange","DaysOfWeekParams","lightTypes","onLightTypesChange","LightTypesParams","freezer","FreezerParams","onFreezerTypeChange","lightSlider","onLightSliderChange","LightSliderParams","heaterType","onHeaterTypeChange","DefaultHeaterType","HeaterTypeParams","washingMachineType","onWashingmachineTypeChange","DefaultWashingmachineType","WashingmachineTypeParams","values","onSuburbChange","trackEnergyToolsAppliances","calculateBill","lightings","$on","trackEnergyToolsComplete","directive","restrict","scope","link","$element","attrs","tcwServiceApi","tariff","dailySupply","suburbAverageLabel","HouseholdsLabel","NegativeMessage","YourBillLabel","result","Model","calculate","tcwService","PlanName","then","response","nSuburbArr","nSuburb","bedrooms","bathrooms","SuburbAverage","suburbAverage","HouseholdAverage","householdAverage","similarHomeBill","Math","round","suburbBill","BillDifference","abs","toFixed","BillDifferenceStatus","size","delay","bounceHeight","compareYourBill","bill","similar","average","averageLabel","replace","similarLabel","billLabel","setCookieByName","init","model","getCookieByName","SecQuestion","SecQuestionBtn","setData","ToolName","addUpdateEnergyToolProfile","setupHelptooltipToggle","showComponent","breakdownYourbill","powerYouUse","Percentage1","governmentPolicy","Percentage2","retailer","Percentage3","westernPower","Percentage4","segments","Color1Hex","Color2Hex","Color3Hex","Color4Hex","onComplete","onBreakdownChange","titles","Title1","Title2","Title3","Title4","copy","Description1","Description2","Description3","Description4","$location","$http","solarHouseholdData","systemSizeValues","LGSystemSizeValues","batterySavings","solarSavings","totalSavings","selectedHouseholdDataLG","selectedHouseholdDataSolar","resultEmail","totalCost","systemType","SystemSize","SystemType","defaultSolarSize","noOfPoeple","solarCalculate","inputs","solarSize","batterySize","solarMin","solarMax","batteryMin","batteryMax","payback","toString","parseInt","EstimatedPriceRange","SavingsPerYear","LGPayback","Payback","$apply","totalMin","totalMax","calculateStats","onSolarChange","solarSizes","action","type","sendingEmail","sendResultEmail","EmailAddress","connectionAddress","KWSystem","PanelsNo","NoOfPanels","RoofSpace","KWHSystemBattery","BatteryEstimatedPriceRange","BatterySavingsPerYear","AirConHours","actionURL","params","siteUrl","protocol","host","Object","keys","map","k","encodeURIComponent","join","emailSent","post","headers","tcwApplianceText","clickable","clicked","stickyWrapper","grayWrap","costeCollepse","stickyCosteTop","stickyTip","height","windowElement","scrollBottom","css","position","bottom","show","hide","$accordian","slideUp","next","is","slideDown","applianceData","resultBill","HeaderText","SubHeaderText","applianceName","valueAlreadyexists","checkValues","ListHeadertext","TVAmount","ConsoleAmount","PoolPumpAmount","FridgeAmount","ACAmount","LightingAmount","FreezerAmount","DishwasherAmount","DryerAmount","HeaterAmount","WashingmachineAmount","AppOnCost","Type","CostPerBill","AppStandbyCost","OffAtWall","noOfApp","offAtWall","TelevisionHeaderText","NegativeMessageText","TelevisionSubHeaderText","NegativeMessageSubText","PositiveMessageText","PositiveMessageSubText","Message3Text","Message3SubText","ConsoleHeaderText","ConsoleSubHeaderText","DoYouSwitchitOff","NoOfAppliance","PoolPumpData","noOfHours","Hours","CostPerHour","NoOfDaysPerWeek","PoolPumpHeaderText","PoolPumpSubHeaderText","LargeFridgeData","MediumFridgeData","SmallFridgeData","noOfLargeFridge","noOfMediumFridge","noOfSmallFridge","totalfridge","FridgeHeaderText","FridgeSubHeaderText","NoOfWeekDays","NoOfWeekends","WeekdaysCost","WeekendCost","Days","Temperature","AirconditionerData","day","NoOfDays","noOfHoursWeekDays","noOfHoursWeekends","AirconditionerHeaderText","AirconditionerSubHeaderText","ApplianceType","HalogenCost","LEDCost","FluorescentCost","IncandescentCost","activeHalogen","activeLED","activeFluorescent","activeIncandescent","NoOfAppliances","lightType","noOfHalogen","HalogenHourPerDay","HalogenData","Halogenusage","noOfLED","LEDHourPerDay","LEDData","LEDusage","noOfFluorescent","FluorescentHourPerDay","FluorescentData","Fluorescentusage","noOfIncandescent","IncandescentHourPerDay","IncandescentData","Incandescentusage","LightingHeaderText","LightingSubHeaderText","Message4Text","Message4SubText","LargeFreezerData","SmallFreezerData","noOfLargeFreezer","noOfSmallFreezer","totalFreezer","FreezerHeaderText","DishwasherData","NoOfHrsPerDay","DishwasherHeaderText","DishwasherSubHeaderText","dryerData","DryerHeaderText","DryerSubHeaderText","heaterData","HeaterHeaderText","HeaterSubHeaderText","WashingmachineData","WashingmachineHeaderText","WashingmachineSubHeaderText","Amount","args","applianceItem","mouseover","backHoveImg","mouseleave","backImag","headertext","dataText","resultList","resultText","checkAmount","resultAmount","getHeader","getSubHeader","FreezerSubHeaderText","$event","$$route","slick","dots","infinite","speed","slidesToShow","slidesToScroll","arrows","responsive","breakpoint","settings","controllerAs","sySuburbAverageLabel","syHouseholdsLabel","syYourBillLabel","syModuleId","service","$rootScope","AdobeAnalyticsService","AdobeToolModel","ProfileID","days","Appliance","Options","Postcode","$broadcast","arg","trackedSteps","trackedAppSteps","isToolStart","stepNumber","stage","stepName","step","category","trackToolNavigation","appStepNumber","stepNameText","headings","innerText","trackToolInteraction","$q","method","url","deferred","defer","resolve","status","reject","promise","cookieName","resultData","toJson","localStorage","setItem","getItem","fromJson","helpTipsBlock","hasClass","requires"],"sourceRoot":""}