{"version":3,"sources":["app-ed88144204.js"],"names":["toastrConfig","toastr","options","timeOut","positionClass","angular","module","constant","config","logger","$log","error","message","data","title","overrideOptions","service","showToasts","info","success","warn","warning","clear","remove","factory","$inject","ToolsController","$scope","common","calculateMonthly","loanamount","mortgage","downpayment","rate","term","months","monthlytax","p","i","n","monthlybill","Math","pow","loans","value","description","$watch","controller","HomeController","listingsservice","init","getListings","params","search","setLoadingIndicator","then","listings","getListingImages","matrixid","matrixuniqueid","console","log","listing","images","val","showLoadingIndicator","dailylisting","AboutController","ngMeta","setMetaInfo","setTitle","setTag","utilities","$filter","HttpService","odbcToNGDate","odbcdate","format","date","Date","$http","$q","sendRequest","url","method","undefined","request","_hostName","handleSuccess","handleError","post","response","isObject","reject","httpProgress","restrict","httpProgressController","templateUrl","directive","appController","$rootScope","adminID","_AdminID","currentYear","getFullYear","showCarousel","pagetitle","app","run","$routeProvider","$locationProvider","ngMetaProvider","when","meta","otherwise","redirectTo","html5Mode","$location","$on","event","current","previous","hasOwnProperty","$$route","document","body","scrollTop","documentElement","utility","apipath","getSingleListing","getListingPropertyTypes","getBedrooms","getBathrooms","getPriceRange","mailservice","sendContactUs","core","appTitle","version","$mdThemingProvider","definePalette","50","100","200","300","400","500","600","700","800","900","A100","A200","A400","A700","contrastDefaultColor","theme","primaryPalette","$routeParams","navigateToLink","link","location","href","routeTo","path","buildstring","island","bedrooms","bathrooms","sqft","lotsize","arrString","sqft1","lotsize1","push","join","arrayLength","myarray","length","buildMapSource","latitude","longitude","key","mapString","isStringDefined","mystring","isNotDefined","listToArray","myList","myArray","split","buildaddress","address","city","state","zipcode","openPhotoSwipe","pswpElement","querySelectorAll","items","history","backButtonHideEnabled","forEach","item","obj","src","IMAGEPATH","w","h","this","gallery","PhotoSwipe","PhotoSwipeUI_Default","ListingsController","$mdDialog","$mdMedia","$timeout","getFilterItems","refreshSlider","$broadcast","showtoastr","filterListings","resetSearch","propertytypecombinedcode","bedstotal","bathstotal","minprice","searchdefaults","maxprice","results","slider","min","floor","max","MAXPRICE","ceil","viewdetails","ev","customFullscreen","show","DialogController","controllerAs","targetEvent","locals","clickOutsideToClose","hasPrice","price","hasVideo","step","hideLimitLabels","translate","ListingDetailController","getListing","streetaddressconcat","setListing","currentprice","originalestimate","copy","addressstring","streetaddress","stateorprovince","newtitle","STREETADDRESSCONCAT","newlisting","BATHSTOTAL","BEDSTOTAL","CITY","countyorparish","COUNTYORPARISH","CURRENTPRICE","DAILYLISTING","doe","DOE","garage","GARAGE","garagedescription","GARAGEDESCRIPTION","id","ID","ISLAND","listagentfullname","LISTAGENTFULLNAME","listofficename","LISTOFFICENAME","listprice","LISTPRICE","lotsqft","LOTSQFT","MATRIXUNIQUEID","mls","MLS","mlsnumber","MLSNUMBER","postalcode","POSTALCODE","propertysubtypecode","PROPERTYSUBTYPECODE","propertysubtypeicon","PROPERTYSUBTYPEICON","propertysubtypelabel","PROPERTYSUBTYPELABEL","propertytypecode","PROPERTYTYPECODE","propertytypeicon","PROPERTYTYPEICON","propertytypelabel","PROPERTYTYPELABEL","publicremarks","PUBLICREMARKS","sqfttotal","SQFTTOTAL","STATEORPROVINCE","status","STATUS","STREETADDRESS","streetname","STREETNAME","streetnumber","STREETNUMBER","yearbuilt","YEARBUILT","mainimage","MAINIMAGE","annualtax","ANNUALTAX","MONTHLYTAX","IMAGES","garageattributes","GARAGEATTRIBUTES","roomcount","ROOMCOUNT","housefaces","HOUSEFACES","houseviewsattributes","HOUSEVIEWSATTRIBUTES","energyattributes","ENERGYATTRIBUTES","virtualtour","VIRTUALTOUR","heatingattributes","HEATINGATTRIBUTES","parcelnumber","PARCELNUMBER","numparcels","NUMPARCELS","zoningattributes","ZONINGATTRIBUTES","lotattributes","LOTATTRIBUTES","listingkey","googleMapsKey","map","marker","mortgageestimatedisclaimer","filter","input","decimals","$","ready","tooltip","ContactController","vcRecaptchaService","$anchorScroll","setResponse","mailModel","grecaptcharesponse","reload","widgetId","mailStatus","parseInt","getKey","model","setWidgetId","getMailStatus","statusid","name","phone","email"],"mappings":"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","file":"app-ed88144204.js","sourcesContent":["(function() {\r\n 'use strict';\r\n\r\n angular.module('Logger', [])\r\n\r\n // Angular Constants\r\n // toastr is actually set in toastr.js as window.toastr\r\n // making globally available here.\r\n .constant('toastr', toastr)\r\n\r\n .config(toastrConfig);\r\n\r\n /* @ngInject */\r\n function toastrConfig(toastr) {\r\n toastr.options.timeOut = 8000;\r\n toastr.options.positionClass = 'toast-top-right';\r\n }\r\n\r\n})();\r\n\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('Logger')\r\n .factory('logger', logger);\r\n\r\n logger.$inject = ['$log', 'toastr'];\r\n\r\n function logger($log, toastr) {\r\n var service = {\r\n\r\n // turn off the toasts programmatically.\r\n showToasts: true,\r\n\r\n error : error,\r\n info : info,\r\n success : success,\r\n warn : warn,\r\n clear : clear,\r\n remove : remove\r\n\r\n };\r\n\r\n return service;\r\n /////////////////////\r\n\r\n function error(message, data, title, overrideOptions) {\r\n if(service.showToasts){\r\n toastr.error(message, title, overrideOptions);\r\n }\r\n $log.error('Error: ' + message, data);\r\n }\r\n\r\n function info(message, data, title, overrideOptions) {\r\n if(service.showToasts){\r\n toastr.info(message, title, overrideOptions);\r\n }\r\n $log.info('Info: ' + message, data);\r\n }\r\n\r\n function success(message, data, title, overrideOptions) {\r\n if(service.showToasts){\r\n toastr.success(message, title, overrideOptions);\r\n }\r\n $log.info('Success: ' + message, data);\r\n }\r\n\r\n function warn(message, data, title, overrideOptions) {\r\n if(service.showToasts){\r\n toastr.warning(message, title, overrideOptions);\r\n }\r\n $log.warn('Warning: ' + message, data);\r\n }\r\n\r\n function clear(){\r\n toastr.clear();\r\n }\r\n\r\n function remove(){\r\n toastr.remove();\r\n }\r\n\r\n }\r\n}());\r\n\n(function(){\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('app.home',[\r\n \r\n ])\r\n \r\n .config([function(){\r\n\r\n\r\n\r\n }]);\r\n\r\n})();\r\n\r\n\n\r\n\r\n(function(){\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('app.home')\r\n .controller('ToolsController',ToolsController);\r\n \r\n ToolsController.$inject = ['$scope','common'];\r\n\r\n\r\n //Tools Controller\r\n\tfunction ToolsController($scope,common){\r\n\t $scope.common = common;\r\n\t\t$scope.calculateMonthly = calculateMonthly;\r\n\t\t\r\n\t\t//Variables\r\n\t\t$scope.mortgage = {loanamount:200000, rate:0.035, downpayment:40000, months:30,monthlybill:0,monthlytax:0};\r\n\t\t$scope.loans = [\r\n {value:10,description: '10 Year'}\r\n ,{value:15,description: '15 Year'}\r\n ,{value:20,description: '20 Year'}\r\n ,{value:25,description: '25 Year'}\r\n ,{value:30,description: '30 Year'} \r\n ];\r\n\r\n\t\t//Watch Change on Mortgage Details\r\n $scope.$watch('mortgage', $scope.calculateMonthly,true);\r\n\r\n\t\t//Monthly Mortgage Calculator\r\n function calculateMonthly(){\r\n var loanamount = $scope.mortgage.loanamount || 0;\r\n var downpayment = $scope.mortgage.downpayment || 0;\r\n var rate = $scope.mortgage.rate || 0;\r\n var term = $scope.mortgage.months || 0;\r\n var monthlytax = $scope.mortgage.monthlytax || 0;\r\n var p = (loanamount - downpayment); //principle / initial amount borrowed\r\n var i = (rate*100) / 100 / 12; //monthly interest rate\r\n var n = term * 12; //number of payments months\r\n\r\n //console.log('MORTGAGE',$scope.mortgage);\r\n $scope.mortgage.monthlybill = ((p * i * (Math.pow(1 + i, n)) / (Math.pow(1 + i, n) - 1)) + monthlytax) || 0;\r\n }\r\n\r\n\t};\r\n\r\n})();\n\r\n\r\n(function(){\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('app.home')\r\n .controller('HomeController',HomeController);\r\n \r\n HomeController.$inject = ['$scope','common','listingsservice'];\r\n\r\n\r\n //Tools Controller\r\n function HomeController($scope,common,listingsservice){\r\n \r\n //METHODS\r\n $scope.init = init;\r\n $scope.getListings = getListings;\r\n $scope.setLoadingIndicator = setLoadingIndicator;\r\n $scope.getListingImages = getListingImages;\r\n \r\n //VARIABLES\r\n $scope.common = common;\r\n $scope.listings = [];\r\n $scope.showLoadingIndicator = 0;\r\n $scope.search = {dailylisting: 1};\r\n \r\n //Module Init Function\r\n $scope.init();\r\n function init(){\r\n $scope.getListings();\r\n }\r\n \r\n //Search for Listings\r\n function getListings(){\r\n var params = $scope.search;\r\n setLoadingIndicator(1);\r\n listingsservice.getListings(params).then(\r\n function(data){\r\n //Set Listings\r\n $scope.listings = data.listings;\r\n setLoadingIndicator(0);\r\n }\r\n );\r\n }\r\n\r\n //Get Listing Images\r\n function getListingImages(matrixid){\r\n var params = {matrixuniqueid:matrixid};\r\n listingsservice.getListingImages(params).then(\r\n function(data){\r\n console.log('images',data);\r\n //Set Listing Object\r\n $scope.listing.images = data;\r\n }\r\n );\r\n }\r\n\r\n //Set Loading Indicator\r\n function setLoadingIndicator(val){\r\n $scope.showLoadingIndicator = val;\r\n } \r\n };\r\n\r\n})();\r\n\r\n\r\n\r\n\n\r\n(function(){\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('app.home')\r\n .controller('AboutController',AboutController);\r\n \r\n AboutController.$inject = ['$scope','common','ngMeta'];\r\n\r\n\r\n //About Controller\r\n\tfunction AboutController($scope,common,ngMeta){\r\n\t //METHODS\r\n $scope.common = common;\r\n $scope.init = init;\r\n $scope.setMetaInfo = setMetaInfo;\r\n\r\n //Module Init\r\n $scope.init();\r\n function init(){\r\n //$scope.setMetaInfo();\r\n }\r\n\r\n //Set Meta title and description\r\n function setMetaInfo(){\r\n ngMeta.setTitle('About Ely');\r\n ngMeta.setTag('description','White Pine County offeres scenic views from the great oudoors while providing residents with a strong feeling of community.');\r\n }\r\n\r\n\t};\r\n\t\r\n\r\n})();\r\n\r\n\r\n\r\n\n(function(){\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('Utilities', [])\r\n .factory('utility', utilities)\r\n .factory('HttpService',HttpService)\r\n .directive('httpProgress',httpProgress);\r\n\r\n utilities.$inject = ['$log','$filter','HttpService'];\r\n\r\n function utilities($log,$filter,HttpService) {\r\n\r\n $log.log('Js Utilities has loaded.');\r\n\r\n var factory = {\r\n odbcToNGDate : odbcToNGDate,\r\n HttpService : HttpService\r\n };\r\n\r\n return factory;\r\n\r\n \r\n // convert sql odbc datetime to angular date\r\n function odbcToNGDate(odbcdate,format){\r\n var format = format || 'longDate'; // 'shortDate'\r\n var date = new Date(odbcdate);\r\n return $filter('date')(date,format);\r\n }\r\n\r\n }\r\n\r\n HttpService.$inject = ['$http','$q','$log','logger'];\r\n\r\n function HttpService($http,$q,$log,logger){\r\n var factory = {\r\n sendRequest: sendRequest,\r\n post: post\r\n };\r\n return factory;\r\n\r\n //Send HTTP Request\r\n function sendRequest(url,params,method){\r\n if(method == undefined)\r\n method=\"GET\";\r\n else\r\n method=\"POST\";\r\n \r\n\r\n var request = $http({\r\n method: method,\r\n url: _hostName + url,\r\n data: params\r\n });\r\n return(request.then(handleSuccess,handleError));\r\n }\r\n\r\n //Send HTTP Request\r\n function post(url,params,method){\r\n if(method == undefined)\r\n method=\"GET\";\r\n else\r\n method=\"POST\";\r\n \r\n\r\n var request = $http({\r\n method: method,\r\n url: _hostName + url,\r\n params: params\r\n });\r\n return(request.then(handleSuccess,handleError));\r\n }\r\n\r\n //Error Handler\r\n function handleError(response) {\r\n if (!angular.isObject( response.data ) || ! response.data.message){\r\n logger.error(\"An unknown error occurred.\");\r\n return($q.reject(\"An unknown error occurred.\"));\r\n }\r\n logger.error(response.data.message, {}, 'Request Error', {timeOut: 10000,positionClass:'toast-bottom-right'});\r\n return($q.reject(response.data.message));\r\n }\r\n\r\n //Success Handler\r\n function handleSuccess(response){\r\n return response.data;\r\n }\r\n }\r\n\r\n function httpProgress(){\r\n return {\r\n restrict: 'E',\r\n controller: httpProgressController,\r\n templateUrl: '/assets/js/Utilities/http-progress.html'\r\n };\r\n }\r\n\r\n function httpProgressController($scope){\r\n \r\n }\r\n\r\n})();\r\n\n(function(){\r\n\r\n 'use strict';\r\n\r\n //Create Module\r\n var app = angular.module('app',['app.core','app.listings','app.contact','app.home']);\r\n app.controller('appController',appController);\r\n \r\n appController.$inject = ['$scope','$log','common','$rootScope','logger'];\r\n\r\n app.run(function(ngMeta){\r\n ngMeta.init();\r\n console.log('ngmeta loaded');\r\n });\r\n\r\n function appController($scope,$log,common,$rootScope,logger){\r\n $scope.common = common;\r\n $scope.adminID = ((_AdminID == '')?undefined:_AdminID);\r\n $scope.currentYear = new Date();\r\n $scope.currentYear = $scope.currentYear.getFullYear();\r\n\r\n //Show Carousel if on Home Page\r\n $scope.showCarousel = function(){\r\n if($rootScope.pagetitle == 'Real Estate Professionals | Klaas Realty')\r\n return true;\r\n else\r\n return false;\r\n } \r\n \r\n }\r\n \r\n //Header Custom Directive\r\n app.directive(\"dirnavigation\",function(){\r\n return{\r\n restrict: 'E'\r\n ,templateUrl: '/src/app/_partials/navigation.html'\r\n\r\n };\r\n });\r\n\r\n //Photoswipe Custom Directive\r\n app.directive(\"photoswipe\",function(){\r\n return{\r\n restrict: 'E'\r\n ,templateUrl: '/src/app/_partials/photoswipe.html'\r\n };\r\n });\r\n\r\n})();\r\n\n(function(){\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('app.core',[\r\n // Angular Modules\r\n 'ngRoute',\r\n 'ngCookies',\r\n 'ngAnimate',\r\n 'vcRecaptcha',\r\n 'ngMaterial',\r\n 'uiGmapgoogle-maps',\r\n 'ui.bootstrap',\r\n 'ui.utils.masks',\r\n 'angular.filter',\r\n 'rzSlider',\r\n 'Logger',\r\n 'ngMeta',\r\n \r\n /*\r\n ** This host app requires 'ngMaterial'\r\n ** Since 'psomas.theme' (below) already includes\r\n ** 'ngMaterial' we do not need to include it again.\r\n */\r\n\r\n // Other 3rd-party\r\n //'Logger',\r\n\r\n // Utilities\r\n 'Utilities'\r\n ])\r\n})();\r\n\r\n\n(function(){\r\n 'use strict';\r\n\r\n angular\r\n .module('app.core')\r\n .config(['$routeProvider','$locationProvider','ngMetaProvider',function($routeProvider,$locationProvider,ngMetaProvider){\r\n\r\n $routeProvider\r\n .when('/', {\r\n templateUrl: '/src/app/home/home.html'\r\n ,controller: 'HomeController'\r\n ,meta: {\r\n title: 'Real Estate Professionals | Klaas Realty'\r\n ,description: 'Offering professional real estate services in the White Pine County area. We are experts in residential, commercial, and land sales.'\r\n ,url: 'http://www.klaasrealty.net/'\r\n }\r\n })\r\n .when('/aboutely', {\r\n templateUrl: '/src/app/home/about.html'\r\n ,controller: 'AboutController'\r\n ,meta: {\r\n title: \"Klaas Realty | What's great about White Pine County?\"\r\n ,description: \"White Pine County offeres scenic views from the great oudoors while providing residents with a strong feeling of community.\"\r\n ,url: \"http://www.klaasrealty.net/aboutely\"\r\n }\r\n })\r\n .when('/tools', {\r\n templateUrl: '/src/app/home/tools.html'\r\n ,controller: 'ToolsController'\r\n ,meta: {\r\n title: 'Klaas Realty | What can I afford?'\r\n ,description: 'Our affordibility calculators can help you plan for your next real estate purchase.'\r\n ,url: 'http://www.klaasrealty.net/tools'\r\n }\r\n })\r\n .when('/contact', {\r\n templateUrl: '/src/app/contact/contact.html'\r\n ,controller: 'ContactController'\r\n ,meta: {\r\n title: \" Klaas Realty | Contact us today for your real estate needs.\"\r\n ,description: \"Use our contact form to send us an email or you can view other contact related information.\"\r\n ,url: \"http://www.klaasrealty.net/contact\"\r\n }\r\n })\r\n .when('/listings', {\r\n templateUrl: '/src/app/listings/listings.html'\r\n ,controller: 'ListingsController'\r\n ,meta: {\r\n title: \"Klaas Realty | Browse White Pine Couty listings.\"\r\n ,description: \"Klaas Realty has new listings for sale! View listing details, photos, and virtual tours.\"\r\n ,url: \"http://www.klaasrealty.net/listings\"\r\n }\r\n })\r\n .when('/listing/:listingkey', {\r\n templateUrl: '/src/app/listings/listingdetail.html'\r\n ,controller: 'ListingDetailController'\r\n ,meta: {\r\n title: \"\" //Loaded from controller\r\n ,description: \"\" //Loaded from controller\r\n ,url: \"\" //Loaded from controller\r\n }\r\n })\r\n .otherwise({redirectTo:'/'});\r\n\r\n $locationProvider.html5Mode(true);\r\n //$locationProvider.hashPrefix('!');\r\n }])\r\n\r\n //Set Page Title based on route value\r\n angular.module('app').run(['$location', '$rootScope', function($location, $rootScope) {\r\n $rootScope.$on('$routeChangeSuccess', function (event, current, previous){\r\n if (current.hasOwnProperty('$$route')){\r\n $rootScope.pagetitle = current.$$route.meta.title;\r\n }\r\n document.body.scrollTop = document.documentElement.scrollTop = 0;\r\n });\r\n }]);\r\n})();\r\n\r\n\n(function() {\r\n 'use strict';\r\n\r\n angular\r\n .module('app.core')\r\n .factory('listingsservice',listingsservice)\r\n .factory('mailservice',mailservice);\r\n\r\n \r\n //********************************************************\r\n //LISTINGS Service\r\n //********************************************************\r\n listingsservice.$inject = ['utility'];\r\n mailservice.$inject = ['utility'];\r\n\r\n var apipath = '/rest/realtyapi';\r\n\r\n function listingsservice(utility) {\r\n var service = {\r\n getListings: getListings\r\n ,getSingleListing: getSingleListing\r\n ,getListingImages: getListingImages\r\n ,getListingPropertyTypes: getListingPropertyTypes\r\n ,getBedrooms: getBedrooms\r\n ,getBathrooms: getBathrooms\r\n ,getPriceRange: getPriceRange \r\n };\r\n return service;\r\n\r\n //Get Listings\r\n function getListings(params){\r\n return utility.HttpService.sendRequest(apipath + '/listings/get/listings/',params,'post');\r\n } \r\n\r\n //Get Single Listing\r\n function getSingleListing(params){\r\n return utility.HttpService.sendRequest(apipath + '/listings/get/listings/single',params,'post');\r\n } \r\n\r\n //Get Listing Images\r\n function getListingImages(params){\r\n return utility.HttpService.sendRequest(apipath + '/listings/get/listing/images/',params,'post');\r\n } \r\n\r\n //Get List of Property Types\r\n function getListingPropertyTypes(){\r\n return utility.HttpService.sendRequest(apipath + '/listings/get/listing/propertytypes');\r\n } \r\n \r\n //Get Max Bedrooms\r\n function getBedrooms(){\r\n return utility.HttpService.sendRequest(apipath + '/listings/get/range/bedrooms');\r\n } \r\n\r\n //Get Max Bathrooms\r\n function getBathrooms(){\r\n return utility.HttpService.sendRequest(apipath + '/listings/get/range/bathrooms');\r\n } \r\n\r\n //Get Price Range\r\n function getPriceRange(){\r\n return utility.HttpService.sendRequest(apipath + '/listings/get/range/price');\r\n }\r\n\r\n }\r\n\r\n function mailservice(utility) {\r\n var service = {\r\n sendContactUs: sendContactUs\r\n };\r\n return service;\r\n\r\n //Contact Us\r\n function sendContactUs(params){\r\n return utility.HttpService.sendRequest(apipath + '/mail/contactus',params,'post');\r\n } \r\n }\r\n\r\n \r\n\r\n})();\n(function(){\r\n\r\n 'use strict';\r\n\r\n var core = angular.module('app.core');\r\n\r\n var config = {\r\n appTitle: 'Klaas Realty',\r\n version: '2.0'\r\n };\r\n\r\n core.value('config', config);\r\n\r\n core.config(function($mdThemingProvider){\r\n\t\t$mdThemingProvider.definePalette('KlaasRealtyPalette', {\r\n\t\t\t'50': '#FFFFFF',\r\n\t\t '100': '#C5CAE9',\r\n\t\t '200': '#254eb6',\r\n\t\t '300': '#2145a0',\r\n\t\t '400': '#1c3c8b',\r\n\t\t '500': '#183376',\r\n\t\t '600': '#142a61',\r\n\t\t '700': '#0f214c',\r\n\t\t '800': '#0b1836',\r\n\t\t '900': '#070e21',\r\n\t\t 'A100': '#4c75db',\r\n\t\t 'A200': '#6286df',\r\n\t\t 'A400': '#7796e3',\r\n\t\t 'A700': '#02050c',\r\n\t\t 'contrastDefaultColor': 'light'\r\n\t\t});\r\n\r\n\t$mdThemingProvider.theme('default').primaryPalette('KlaasRealtyPalette')\r\n\t});\r\n\r\n // TODO: look up how to use .value .constant .config etc.\r\n\r\n})();\r\n\n(function(){\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('app.core')\r\n .factory('common', common);\r\n \r\n common.$inject = ['$log','$http','$location','$q','$routeParams','$filter','logger']; \r\n\r\n function common($log,$http,$location,$q,$routeParams,$filter,logger){\r\n $log.log('App.Core Common has loaded.');\r\n\r\n var factory = {\r\n navigateToLink: navigateToLink,\r\n routeTo: routeTo,\r\n buildstring: buildstring,\r\n buildaddress: buildaddress,\r\n arrayLength: arrayLength,\r\n listToArray: listToArray,\r\n isStringDefined: isStringDefined,\r\n isNotDefined: isNotDefined,\r\n buildMapSource: buildMapSource,\r\n openPhotoSwipe: openPhotoSwipe,\r\n logger : logger,\r\n $log : $log,\r\n $http : $http,\r\n $q : $q,\r\n $location : $location,\r\n $routeParams : $routeParams\r\n }\r\n return factory;\r\n\r\n //Navigate to Link\r\n function navigateToLink(link){\r\n document.location.href = link;\r\n }; \r\n\r\n //Navigate to Route\r\n function routeTo(path,params){\r\n if(params !== undefined){\r\n $location.path(path).search(params);\r\n }else{\r\n $location.path(path);\r\n }\r\n }; \r\n\r\n //Builds Property Details String\r\n function buildstring(island,bedrooms,bathrooms,sqft,lotsize){\r\n var arrString = [];\r\n var sqft1 = $filter('number')(sqft,0);\r\n var lotsize1 = $filter('number')(lotsize,0);\r\n \r\n if(bedrooms > 0)\r\n arrString.push(bedrooms+' Bedrooms')\r\n \r\n if(bathrooms > 0)\r\n arrString.push(bathrooms+' Bathrooms')\r\n\r\n if(island==0 && sqft > 0)\r\n arrString.push(sqft1+' sq ft')\r\n\r\n if(island==1 && lotsize > 0)\r\n arrString.push(lotsize1+' sq ft');\r\n\r\n return arrString.join(', ');\r\n }\r\n\r\n //Check to see if listing has images\r\n function arrayLength(myarray){\r\n if(myarray.length > 0){\r\n return true;\r\n }else{\r\n return false;\r\n }\r\n };\r\n\r\n //Build Map Embed Source\r\n function buildMapSource(latitude,longitude,key){\r\n var mapString = 'https://www.google.com/maps/embed/v1/place?key=';\r\n mapString = mapString + key;\r\n mapString = mapString + '&q=';\r\n mapString = mapString + latitude + ',' + longitude;\r\n return mapString;\r\n }\r\n\r\n //Function to Check undefined\r\n function isStringDefined(mystring){\r\n if(mystring === undefined || mystring.length < 1){\r\n return false;\r\n }else{\r\n return true;\r\n }\r\n }\r\n\r\n function isNotDefined(mystring){\r\n if(mystring === undefined || mystring.length < 1){\r\n return true;\r\n }else{\r\n return false;\r\n }\r\n }\r\n\r\n //List TO Array Function\r\n function listToArray(myList){\r\n var myArray = [];\r\n myArray = myList.split(',');\r\n return myArray;\r\n }\r\n\r\n //Build Address String\r\n function buildaddress(address,city,state,zipcode){\r\n var arrString = [];\r\n\r\n if(address !== undefined)\r\n arrString.push(address);\r\n\r\n if(city !== undefined)\r\n arrString.push(city);\r\n\r\n if(state !== undefined)\r\n arrString.push(state);\r\n\r\n if(zipcode !== undefined && zipcode != '')\r\n arrString.push(zipcode);\r\n\r\n return arrString.join(', ');\r\n }\r\n\r\n //Open PhotoSwipe\r\n function openPhotoSwipe(images){\r\n var pswpElement = document.querySelectorAll('.pswp')[0];\r\n var items = [];\r\n\r\n //Options to Eclude history | Messes with AngularRoute if enabled\r\n var options = {\r\n history: false,\r\n backButtonHideEnabled: false\r\n };\r\n\r\n //Populate Photo Slider\r\n angular.forEach(images,function(item){\r\n var obj = {};\r\n obj.src = item.IMAGEPATH;\r\n obj.w = 800;\r\n obj.h = 600;\r\n this.push(obj)\r\n },items);\r\n \r\n var gallery = new PhotoSwipe(pswpElement, PhotoSwipeUI_Default, items,options);\r\n gallery.init();\r\n };\r\n\r\n };\r\n\r\n})();\r\n\n(function(){\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('app.listings',[\r\n \r\n ])\r\n \r\n .config([function(){\r\n\r\n\r\n\r\n }]);\r\n\r\n})();\r\n\r\n\n\r\n(function(){\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('app.listings')\r\n .controller('ListingsController',ListingsController);\r\n \r\n ListingsController.$inject = ['$http','$scope','common','$filter','$mdDialog','$mdMedia','listingsservice','$timeout'];\r\n\r\n //Listings Controller\r\n function ListingsController($http,$scope,common,$filter,$mdDialog,$mdMedia,listingsservice,$timeout){\r\n console.log('Listings controller has been called');\r\n \r\n //METHODS\r\n $scope.common = common;\r\n $scope.init = init;\r\n $scope.getListings = getListings;\r\n $scope.filterListings = filterListings;\r\n $scope.resetSearch = resetSearch; \r\n $scope.getFilterItems = getFilterItems;\r\n $scope.viewdetails = viewdetails;\r\n $scope.hasPrice = hasPrice;\r\n $scope.hasVideo = hasVideo;\r\n $scope.setLoadingIndicator = setLoadingIndicator;\r\n\r\n //VARIABLES\r\n $scope.listings = [];\r\n $scope.showLoadingIndicator = 0;\r\n $scope.listing = {}; \r\n $scope.search = {propertytypecombinedcode:'',bedstotal:'',bathstotal:'',minprice:0,maxprice: 10000000};\r\n\r\n //Search Default Model\r\n $scope.searchdefaults = {\r\n propertytypecombinedcode: []\r\n ,bedrooms: []\r\n ,bathrooms: []\r\n ,slider: {\r\n min: 0\r\n ,max: 1000\r\n ,options: {\r\n floor: 0\r\n ,ceil: 100000\r\n ,step: 25000\r\n ,hideLimitLabels:true\r\n ,translate: function(value) {\r\n return '$' + value;\r\n }\r\n }\r\n }\r\n };\r\n \r\n //Init Function\r\n $scope.init();\r\n function init(){\r\n getListings();\r\n getFilterItems(); \r\n }\r\n \r\n //Renders Price Slider\r\n function refreshSlider(){\r\n $timeout(function () {\r\n $scope.$broadcast('rzSliderForceRender');\r\n });\r\n };\r\n\r\n //Search for Listings\r\n function getListings(showtoastr){\r\n var params = $scope.search;\r\n console.log(params);\r\n setLoadingIndicator(1);\r\n listingsservice.getListings(params).then(\r\n function(data){\r\n\r\n //console.log(data.listings,'ASD');\r\n //Set Listings\r\n $scope.listings = data.listings;\r\n\r\n //Hide Loading Bar\r\n setLoadingIndicator(0);\r\n\r\n //Search Message\r\n common.logger.success(data.listings.length+' listings found matching your search criteria.','','Search Complete');\r\n }\r\n );\r\n }\r\n\r\n //Get Listing Images\r\n function getListingImages(matrixid){\r\n var params = {matrixuniqueid:matrixid};\r\n listingsservice.getListingImages(params).then(\r\n function(data){\r\n console.log('images',data);\r\n //Set Listing Object\r\n $scope.listing.images = data;\r\n }\r\n );\r\n }\r\n\r\n //Search For Listings\r\n function filterListings(){\r\n getListings(1);\r\n }\r\n\r\n //Reset Search Form and Get Lsitings\r\n function resetSearch(){\r\n $scope.search = {propertytypecombinedcode:'',bedstotal:'',bathstotal:'',minprice: $scope.searchdefaults.minprice,maxprice: $scope.searchdefaults.maxprice}\r\n getListings();\r\n }\r\n\r\n //Get Filter Values\r\n function getFilterItems(){\r\n //Get Use Codes\r\n listingsservice.getListingPropertyTypes().then(\r\n function(results){\r\n $scope.searchdefaults.propertytypecombinedcode = results;\r\n console.log('HERE',results);\r\n }\r\n );\r\n\r\n //Get Use Codes\r\n listingsservice.getBedrooms().then(\r\n function(results){\r\n $scope.searchdefaults.bedrooms = results;\r\n }\r\n );\r\n\r\n //Get Use Codes\r\n listingsservice.getBathrooms().then(\r\n function(results){\r\n $scope.searchdefaults.bathrooms = results;\r\n }\r\n );\r\n\r\n //Get Price Range\r\n listingsservice.getPriceRange().then(\r\n function(results){\r\n $scope.searchdefaults.slider.min = 0;\r\n $scope.searchdefaults.slider.options.floor = 0;\r\n $scope.search.minprice = 0;\r\n $scope.searchdefaults.slider.max = results[0].MAXPRICE;\r\n $scope.searchdefaults.slider.options.ceil = results[0].MAXPRICE;\r\n $scope.search.maxprice = results[0].MAXPRICE;\r\n refreshSlider();\r\n }\r\n );\r\n //console.log($scope.searchdefaults);\r\n }\r\n\r\n //View Video\r\n function viewdetails(ev,listing) {\r\n var useFullScreen = ($mdMedia('sm') || $mdMedia('xs')) && $scope.customFullscreen;\r\n $scope.listing = {};\r\n $scope.listing = listing;\r\n\r\n $mdDialog.show({\r\n controller: DialogController,\r\n controllerAs: 'ctrl',\r\n templateUrl: '/app/_partials/video.html',\r\n targetEvent: ev,\r\n locals:{\r\n listing: listing\r\n },\r\n clickOutsideToClose:true\r\n }) \r\n };\r\n\r\n //Check to see if listing has images\r\n function hasPrice(price){\r\n if(price > 0){\r\n return true;\r\n }else{\r\n return false;\r\n }\r\n };\r\n\r\n //Check to see if listing has video\r\n function hasVideo(url){\r\n if(url.length > 0){\r\n return false;\r\n }else{\r\n return true;\r\n }\r\n };\r\n\r\n //Set Loading Indicator\r\n function setLoadingIndicator(val){\r\n $scope.showLoadingIndicator = val;\r\n } \r\n\r\n };\r\n\r\n})();\r\n\r\n\r\n\n\r\n\r\n(function(){\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('app.listings')\r\n .controller('ListingDetailController',ListingDetailController)\r\n .filter('percentage', ['$filter', function ($filter) {\r\n return function (input, decimals) {\r\n return $filter('number')(input * 100, 2) + ' %';\r\n };\r\n }]);\r\n ListingDetailController.$inject = ['$scope','common','$filter','listingsservice','$mdDialog','$mdMedia','$rootScope','ngMeta'];\r\n \r\n\r\n \r\n\r\n\r\n //Listings Detail Controller\r\n function ListingDetailController($scope,common,$filter,listingsservice,$mdDialog,$mdMedia,$rootScope,ngMeta){\r\n \r\n //METHODS\r\n $scope.common = common;\r\n $scope.init = init;\r\n $scope.getListing = getListing;\r\n $scope.setListing = setListing;\r\n $scope.getListingImages = getListingImages;\r\n $scope.calculateMonthly = calculateMonthly;\r\n\r\n //Variables\r\n $scope.listing = {};\r\n $scope.streetaddressconcat = common.$routeParams.listingkey;\r\n $scope.googleMapsKey = 'AIzaSyBNI2Q5s1ffsmbjyR7m5Zx5QWtHrHpA3vM';\r\n //$scope.googleMapURL = 'https://www.google.com/maps/embed/v1/place?key=AIzaSyBNI2Q5s1ffsmbjyR7m5Zx5QWtHrHpA3vM&q=Space+Needle,Seattle+WA';\r\n $scope.map = {};\r\n $scope.marker = {};\r\n $scope.mortgageestimatedisclaimer = \"Estimate based on 20% down, 30 year term, 3.5% interest, and good credit.\";\r\n $scope.originalestimate = 0;\r\n $scope.mortgage = {loanamount:100000, rate:0.035, downpayment:0, months:30,monthlybill:0,monthlytax:0};\r\n\r\n $scope.loans = [\r\n {value:10,description: '10 Year'}\r\n ,{value:15,description: '15 Year'}\r\n ,{value:20,description: '20 Year'}\r\n ,{value:25,description: '25 Year'}\r\n ,{value:30,description: '30 Year'} \r\n ];\r\n\r\n //Watch Change on Mortgage Details\r\n $scope.$watch('mortgage', $scope.calculateMonthly,true);\r\n\r\n //Get Listings\r\n $scope.init();\r\n function init(){\r\n $scope.getListing();\r\n } \r\n\r\n //Search for Listings\r\n function getListing(){ \r\n //Get Listing by StreetAddressConcat\r\n var params = {streetaddressconcat: $scope.streetaddressconcat};\r\n listingsservice.getSingleListing(params).then(\r\n function(listing){\r\n //console.log(\"listings\",listing[0]);\r\n\r\n //Set Listing Object\r\n $scope.listing = setListing(listing[0]);\r\n\r\n //Set Loan Amount\r\n $scope.mortgage.loanamount = $scope.listing.currentprice;\r\n $scope.mortgage.downpayment = $scope.listing.currentprice * 0.20;\r\n $scope.mortgage.monthlytax = $scope.listing.monthlytax;\r\n $scope.calculateMonthly();\r\n\r\n $scope.originalestimate = angular.copy($scope.mortgage.monthlybill);\r\n\r\n //NG-META\r\n var addressstring = $scope.listing.streetaddress + ' ' + $scope.listing.city + ', ' + $scope.listing.stateorprovince;\r\n var newtitle = \"Klaas Realty | \" + addressstring;\r\n ngMeta.setTitle(newtitle);\r\n ngMeta.setTag('description','View listing details, photos, and video walk throughs for '+addressstring);\r\n ngMeta.setTag('url','http://www.klaasrealty.net/listing/'+$scope.listing.STREETADDRESSCONCAT); \r\n\r\n //$scope.googleMapURL = common.buildMapSource($scope.listing.latitude,$scope.listing.longitude,$scope.googleMapsKey); \r\n //Map Attributes\r\n //setMapOptions($scope.listing.latitude,$scope.listing.longitude); \r\n }\r\n );\r\n }\r\n\r\n //Get Listing Images\r\n function getListingImages(matrixid){\r\n var params = {matrixuniqueid:matrixid};\r\n listingsservice.getListingImages(params).then(\r\n function(data){\r\n //Set Listing Object\r\n $scope.listing.images = data;\r\n }\r\n );\r\n }\r\n\r\n //Set Listing Object\r\n function setListing(listing){\r\n var newlisting = {};\r\n newlisting.bathstotal=listing.BATHSTOTAL;\r\n newlisting.bedstotal=listing.BEDSTOTAL;\r\n newlisting.city=listing.CITY;\r\n newlisting.countyorparish=listing.COUNTYORPARISH;\r\n newlisting.currentprice=listing.CURRENTPRICE;\r\n newlisting.dailylisting=listing.DAILYLISTING;\r\n newlisting.doe=listing.DOE;\r\n newlisting.garage=listing.GARAGE;\r\n newlisting.garagedescription=listing.GARAGEDESCRIPTION;\r\n newlisting.id=listing.ID;\r\n newlisting.island=listing.ISLAND;\r\n newlisting.listagentfullname=listing.LISTAGENTFULLNAME;\r\n newlisting.listofficename = listing.LISTOFFICENAME;\r\n newlisting.listprice=listing.LISTPRICE;\r\n newlisting.lotsqft=listing.LOTSQFT;\r\n newlisting.matrixuniqueid=listing.MATRIXUNIQUEID;\r\n newlisting.mls=listing.MLS;\r\n newlisting.mlsnumber=listing.MLSNUMBER;\r\n newlisting.postalcode=listing.POSTALCODE;\r\n newlisting.propertysubtypecode=listing.PROPERTYSUBTYPECODE;\r\n newlisting.propertysubtypeicon=listing.PROPERTYSUBTYPEICON;\r\n newlisting.propertysubtypelabel=listing.PROPERTYSUBTYPELABEL;\r\n newlisting.propertytypecode=listing.PROPERTYTYPECODE;\r\n newlisting.propertytypeicon=listing.PROPERTYTYPEICON;\r\n newlisting.propertytypelabel=listing.PROPERTYTYPELABEL;\r\n newlisting.publicremarks=listing.PUBLICREMARKS;\r\n newlisting.sqfttotal=listing.SQFTTOTAL;\r\n newlisting.stateorprovince=listing.STATEORPROVINCE;\r\n newlisting.status=listing.STATUS;\r\n newlisting.streetaddress=listing.STREETADDRESS;\r\n newlisting.streetaddressconcat=listing.STREETADDRESSCONCAT;\r\n newlisting.streetname=listing.STREETNAME;\r\n newlisting.streetnumber=listing.STREETNUMBER;\r\n newlisting.yearbuilt=listing.YEARBUILT;\r\n newlisting.mainimage=listing.MAINIMAGE;\r\n newlisting.annualtax=listing.ANNUALTAX;\r\n newlisting.monthlytax=listing.MONTHLYTAX; \r\n newlisting.images = listing.IMAGES;\r\n newlisting.garageattributes = listing.GARAGEATTRIBUTES;\r\n newlisting.roomcount = listing.ROOMCOUNT;\r\n newlisting.housefaces = listing.HOUSEFACES;\r\n newlisting.houseviewsattributes = listing.HOUSEVIEWSATTRIBUTES;\r\n newlisting.energyattributes = listing.ENERGYATTRIBUTES;\r\n newlisting.virtualtour = listing.VIRTUALTOUR;\r\n newlisting.heatingattributes = listing.HEATINGATTRIBUTES;\r\n newlisting.parcelnumber = listing.PARCELNUMBER;\r\n newlisting.numparcels = listing.NUMPARCELS;\r\n newlisting.zoningattributes = listing.ZONINGATTRIBUTES;\r\n newlisting.lotattributes = listing.LOTATTRIBUTES;\r\n\r\n //newlisting.videourl = data[0].VIDEOURL;\r\n return newlisting;\r\n }\r\n\r\n //Initialize Map\r\n function initMap(){\r\n var map = new google.maps.Map(document.getElementById('map'), {\r\n center: {lat: -34.397, lng: 150.644},\r\n zoom: 8\r\n });\r\n }\r\n\r\n //Monthly Mortgage Calculator\r\n function calculateMonthly(){\r\n var loanamount = $scope.mortgage.loanamount || 0;\r\n var downpayment = $scope.mortgage.downpayment || 0;\r\n var rate = $scope.mortgage.rate || 0;\r\n var term = $scope.mortgage.months || 0;\r\n var monthlytax = $scope.mortgage.monthlytax || 0;\r\n var p = (loanamount - downpayment); //principle / initial amount borrowed\r\n var i = (rate*100) / 100 / 12; //monthly interest rate\r\n var n = term * 12; //number of payments months\r\n\r\n //console.log('MORTGAGE',$scope.mortgage);\r\n $scope.mortgage.monthlybill = ((p * i * (Math.pow(1 + i, n)) / (Math.pow(1 + i, n) - 1)) + monthlytax) || 0;\r\n }\r\n\r\n //Set Map Options\r\n function setMapOptions(lat,lon){\r\n //THIS PREVENTS GOOGLE MAPS FROM OVERRIDING WEBSITE FONT\r\n var head = document.getElementsByTagName('head')[0];\r\n // Save the original method\r\n var insertBefore = head.insertBefore;\r\n\r\n // Replace it!\r\n head.insertBefore = function (newElement, referenceElement) {\r\n if(newElement.href && newElement.href.indexOf('https://fonts.googleapis.com/css?family=Roboto') === 0){\r\n //console.info('Prevented Roboto from loading!');\r\n return;\r\n }\r\n insertBefore.call(head, newElement, referenceElement);\r\n };\r\n //END: THIS PREVENTS GOOGLE MAPS FROM OVERRIDING WEBSITE FONT\r\n\r\n\r\n $scope.map = {center: { latitude: lat, longitude: lon }, zoom: 17, options: {scrollwheel: false}};\r\n $scope.marker = {id: 0, coords: {latitude: lat,longitude: lon}};\r\n $scope.marker.options = {\r\n draggable: true,\r\n labelContent: \"lat: \" + lat + ' ' + 'lon: ' + lon,\r\n labelAnchor: \"100 0\",\r\n labelClass: \"marker-labels\"\r\n }\r\n }\r\n\r\n };\r\n\r\n})();\r\n\r\n$(document).ready(function(){\r\n $('[data-toggle=\"tooltip\"]').tooltip(); \r\n});\n(function(){\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('app.contact',[\r\n \r\n ])\r\n \r\n .config([function(){\r\n\r\n\r\n\r\n }]);\r\n\r\n})();\r\n\r\n\n\r\n(function(){\r\n\r\n 'use strict';\r\n\r\n angular\r\n .module('app.contact')\r\n .controller('ContactController',ContactController);\r\n \r\n ContactController.$inject = ['$scope','$http','vcRecaptchaService','$location','$anchorScroll','common','ngMeta','mailservice'];\r\n\r\n\r\n //About Controller\r\n function ContactController($scope,$http,vcRecaptchaService,$location,$anchorScroll,common,ngMeta,mailservice){\r\n //METHODS\r\n $scope.common = common;\r\n $scope.init = init;\r\n $scope.setResponse = setResponse;\r\n $scope.setWidgetId = setWidgetId;\r\n $scope.getMailStatus = getMailStatus;\r\n \r\n $scope.sendContactUs = sendContactUs;\r\n $scope.getKey = getKey;\r\n $scope.setMetaInfo = setMetaInfo;\r\n\r\n //VARIABLES\r\n //$scope.mailModel = {name: 'Robert', phone: '714.882.9214', email: 'robertklaas@gmail.com', message: 'body',grecaptcharesponse: ''};\r\n $scope.mailModel = {name: '', phone: '', email: '', message: '',grecaptcharesponse: ''};\r\n $scope.response = null;\r\n $scope.widgetId = null;\r\n $scope.model = {key: '6Lf_zAITAAAAACVUfZctex02vyVj4XmqEFbO9Lgz'};\r\n $scope.mailStatus = 0;\r\n\r\n //Module Init\r\n $scope.init();\r\n function init(){\r\n //$scope.setMetaInfo();\r\n }\r\n\r\n //Set Meta title and description\r\n function setMetaInfo(){\r\n ngMeta.setTitle('Contact Us');\r\n ngMeta.setTag('description','Use our contact form to send us an email or you can view other contact related information.');\r\n }\r\n\r\n //Set Recaptcha Response to Model\r\n function setResponse(response){\r\n //console.log('Response Returned');\r\n $scope.mailModel.grecaptcharesponse = response;\r\n };\r\n\r\n //Send Contact Us Mail\r\n function sendContactUs(){\r\n var params = $scope.mailModel;\r\n mailservice.sendContactUs(params).then(\r\n function(data){\r\n //Clear out NoCaptcha and Empty Form\r\n vcRecaptchaService.reload($scope.widgetId); //CLEAR OUT RECAPTCHA\r\n $scope.mailStatus = parseInt(data);\r\n //console.log('ms' + $scope.mailStatus);\r\n }\r\n );\r\n }\r\n\r\n //Return Recaptcha Key\r\n function getKey(){\r\n return $scope.model.key;\r\n }\r\n\r\n //Set Widgit ID in scope\r\n function setWidgetId(widgetId){\r\n //console.info('Created widget ID: %s', widgetId);\r\n $scope.widgetId = widgetId;\r\n };\r\n\r\n //Return Mail Status\r\n function getMailStatus(statusid){\r\n if(statusid === $scope.mailStatus){\r\n return true\r\n }else{\r\n return false\r\n }\r\n }\r\n };\r\n})();\r\n\r\n\r\n"]}