var haMarketSelectModule = angular.module('haUpgradeFormMarketSelectModule', []); haMarketSelectModule.controller('haUpgradeFormMarketSelectController', function($scope,$http) { $scope.membership_level_annual = '0'; $scope.membership_level_monthly = '0'; $scope.marketsSelected = {}; $scope.market_type = ''; $scope.msa_1 = ''; $scope.msa_2 = ''; $scope.msa_3 = ''; $scope.state_1 = ''; $scope.state_2 = ''; $scope.state_3 = ''; $scope.region_1 = ''; $scope.region_2 = ''; $scope.region_3 = ''; $scope.state_filter_1 = ''; $scope.filter_msas_1 = {state: 'XX'}; $scope.state_filter_2 = ''; $scope.filter_msas_2 = {state: 'XX'}; $scope.state_filter_3 = ''; $scope.filter_msas_3 = {state: 'XX'}; $scope.marketsSelected = []; $scope.resetSelection = function() { console.log("resetSelection!"); $scope.marketsSelected = {}; $scope.market_type = 'USA'; $scope.msa_1 = ''; $scope.msa_2 = ''; $scope.msa_3 = ''; $scope.state_1 = ''; $scope.state_2 = ''; $scope.state_3 = ''; $scope.region_1 = ''; $scope.region_2 = ''; $scope.region_3 = ''; $scope.state_filter_1 = ''; $scope.filter_msas_1 = {state: 'XX'}; $scope.state_filter_2 = ''; $scope.filter_msas_2 = {state: 'XX'}; $scope.state_filter_3 = ''; $scope.filter_msas_3 = {state: 'XX'}; $scope.updateHiddenMarketFields(); } $scope.updateHiddenMarketFields = function() { console.log("Setting the hidden fields..."); for (var i = 1; i<=3; i++) { if (typeof $scope.marketsSelected['market_' + i] != 'undefined') { jQuery('#MarketLocation' + i).val($scope.marketsSelected['market_' + i].id); jQuery('#MarketLocation' + i + 'Name').val($scope.marketsSelected['market_' + i].name); } else { jQuery('#MarketLocation' + i).val(''); jQuery('#MarketLocation' + i + 'Name').val(''); } } updateOrderAndPaypalLinks(); updateOrderSummary(); this.saveContactSelection(); } $scope.saveContactSelection = function() { var fieldsToSave = {}; fieldsToSave['Email'] = customerEmail; fieldsToSave['form_type'] = 'upgrade'; fieldsToSave['market_type'] = $scope.market_type; fieldsToSave['market_count'] = 0; if ($scope.market_type == 'USA') { fieldsToSave['loc1'] = '440'; fieldsToSave['loc1name'] = 'USA'; } for (var i in $scope.marketsSelected) { fieldsToSave['market_count']++; fieldsToSave['loc' + fieldsToSave['market_count']] = $scope.marketsSelected[i].id; fieldsToSave['loc' + fieldsToSave['market_count'] + 'name'] = $scope.marketsSelected[i].name; } const query_params = new URLSearchParams(fieldsToSave).toString(); ha_httpGetRequest("https://www.housingalerts.com/o2/wp-content/themes/focusblog-housingalerts/savecontact-lite.php?" + query_params, function() {}); } $scope.isMarketSelected = function(marketId) { for (var i in $scope.marketsSelected) { if ($scope.marketsSelected[i].id == marketId) return true; } return false; } $scope.setMarket = function(fieldModelName) { $scope.market_type = 'USA'; if (fieldModelName.indexOf('state') > -1) $scope.market_type = 'State'; if (fieldModelName.indexOf('region') > -1) $scope.market_type = 'Region'; if ($scope.isMarketSelected($scope[fieldModelName])) { alert("This market is already selected"); $scope[fieldModelName] = ''; return 0; } var marketIndex = parseInt(fieldModelName.slice(-1)); var marketName = $scope.getMarketNameById($scope[fieldModelName]); $scope.marketsSelected['market_' + marketIndex] = { id: $scope[fieldModelName], name: marketName }; $scope.updateHiddenMarketFields(); // console.log(">>>" + $scope[fieldModelName] + ">>>" + marketIndex + ">>>" + marketName); } $scope.setMarketUSA = function(fieldModelName) { console.log('setMarketUSA'); $scope.market_type = 'USA'; $scope.marketsSelected['market_1'] = { id: '440', name: 'USA' }; $scope.marketsSelected['market_2'] = { id: '', name: '' }; $scope.marketsSelected['market_3'] = { id: '', name: '' }; $scope.updateHiddenMarketFields(); } $scope.getMarketNameById = function(marketId) { for (var i in $scope.msas) { if ($scope.msas[i].id == marketId) return $scope.msas[i].name; } for (var i in $scope.states) { if ($scope.states[i].id == marketId) return $scope.states[i].name_full; } for (var i in $scope.regions) { if ($scope.regions[i].id == marketId) return $scope.regions[i].name_full; } return "ERR_UKMN"; } $scope.updateSelectStateFilters = function() { $scope.filter_msas_1.state = $scope.state_filter_1; $scope.filter_msas_2.state = $scope.state_filter_2; $scope.filter_msas_3.state = $scope.state_filter_3; } $scope.addSelectionToMemberNotes = function(callback) { // var notes = '-----------UPGRADE----------\n'; var notes = 'PayPal Upgrade Selections:\n'; // notes += 'Market Type:' + $scope.market_type + '\n'; var market_count = 0; if ($scope.market_type == 'USA') { market_count = 1; } else { for (var i in $scope.marketsSelected) { market_count++; } } notes += 'HOUSINGALERTS PRO - ' + market_count + " " + $scope.market_type + '\n'; notes += 'Markets Selected: \n'; var market_count = 0; if ($scope.market_type == 'USA') { market_count = 1; notes += 'loc1: 440\n'; notes += 'loc1name: USA\n'; } else { for (var i in $scope.marketsSelected) { market_count++; notes += $scope.marketsSelected[i].name + ' '; notes += '[ msa_id_' + $scope.marketsSelected[i].id + ' ]\n'; } } // notes += 'Market Count:' + market_count + '\n'; // console.log(notes); const query_params = 'Email=' + customerEmail + '&action=addtonotes¬es_str=' + encodeURI(notes); ha_httpGetRequest("https://www.housingalerts.com/ifsapi?" + query_params, callback); } $scope.handlePayPalLinks = function() { jQuery('#paypal-link').click(function(e) { e.preventDefault(); var paypalURL = jQuery('#paypal-link').attr('href'); if (document.querySelector('form[name="Monthly"]').reportValidity()) { // Go to the PayPal destination URL $scope.addSelectionToMemberNotes(function() { console.log("NOTES ADDED! Going to PayPal"); window.location.href = paypalURL; }); } }); } $http.get('https://www.housingalerts.com/ext/tools/datafeed/?request=markets&option=msas').then(function(data) { data = data.data; //Angular 1.6.5 fix ( not needed with 1.4.something ) for (var key in data) { if ( typeof data[key].name != 'undefined') { var states_str = data[key].name.substring(data[key].name.indexOf(',')); data[key].state = states_str.replace("(MSAD)",""); } } $scope.msas = data; }); $http.get('https://www.housingalerts.com/ext/tools/datafeed/?request=markets&option=states').then(function(data) { data = data.data; //Angular 1.6.5 fix ( not needed with 1.4.something ) $scope.states = data; }); $http.get('https://www.housingalerts.com/ext/tools/datafeed/?request=markets&option=regions').then(function(data) { data = data.data; //Angular 1.6.5 fix ( not needed with 1.4.something ) $scope.regions = data; }); $scope.handlePayPalLinks(); $scope.$watch('[membership_level_monthly]', function() { if (jQuery("[ng-model=membership_level_monthly] :selected").attr('data-js-mkt-type') == 'USA') { $scope.setMarketUSA(); } }); $scope.$watch('[membership_level_annual]', function() { if (jQuery("[ng-model=membership_level_annual] :selected").attr('data-js-mkt-type') == 'USA') { $scope.setMarketUSA(); } }); }); //Bootstrap: // angular.element(document).ready(function() { // angular.bootstrap(document.getElementById("haMarketSelect"), ['haMarketSelectModule']); // });