(function(){"use strict";var n=angular.module("forecast",[]),t=angular.module("research",[]),i=angular.module("allergy",[]),r=angular.module("shared",[]),u=angular.module("pollen",["ngCookies","ui.bootstrap","forecast","research","allergy","shared"]);window.app={views:{},ui:{},config:{},init:function(n){this.config=n}}})(),function(n,t){n.util={isBreakpoint:function(n){return t(".device-"+n).is(":visible")},prettifyUrl:function(n){return n.replace(/\s/g,"-")},createUrl:function(t,i){var r=n.config.siteBaseUrl,t=this.prettifyUrl(this.template(t,i)).toLowerCase();return r+t},createWebApiUrl:function(t,i){var r=n.config.webApiUrl,t=this.template(t,i);return r+t},createStaticUrl:function(t){return n.config.siteBaseUrl+t},template:function(n,t){var i=n,r=function(n,i){var u=i.replace(/^\s*/,"").replace(/\s*$/,"").split("."),r=t;for(var f in u)if(r=r[u[f]],r==undefined)return"";return r};return i.replace(/{([^{}]*)}/g,r)}}}(window.app||{},window.jQuery),function(){"use strict";var n=[],i=function(){var n=[];return typeof Highcharts.charts!="undefined"&&_.each(Highcharts.charts,function(t){t&&n.push(t)}),n},r=function(){n=[];var t=i();_.each(t,function(t){n.push({width:t.chartWidth,height:t.chartHeight});var i=$(t.renderTo);i.is(":visible")&&(i.hasClass("forecast-donut-chart")?t.setSize(125,125,!1):t.setSize(600,200,!1))})},u=function(){var t=i();_.each(t,function(t,i){t.setSize(n[i].width,n[i].height,!0);t.hasUserSize=!1})},t;window.matchMedia&&(t=window.matchMedia("print"),t.addListener&&t.addListener(function(n){n.matches?r():u()}));window.addEventListener("beforeprint",function(){r()});window.addEventListener("afterprint",function(){u()})}(),function(){"use strict";angular.module("pollen").factory("Unauthorized",["$q",function(n){return{responseError:function(t){if(t.status===401){window.location=app.util.createUrl("accounts/mylogin");return}return n.reject(t)}}}]).config(["$httpProvider",function(n){n.interceptors.push("Unauthorized")}])}(),function(){"use strict";var n=angular.module("shared");n.directive("loading",[function(){return{restrict:"A",transclude:!0,scope:{loading:"="},templateUrl:"/shared/loading.html",link:function(){}}}])}(),function(){"use strict";var n=angular.module("shared");n.directive("focusOn",function(){return function(n,t,i){n.$on(i.focusOn,function(){t[0].focus()})}})}(),function(){"use strict";var n=angular.module("shared");n.directive("typeaheadClear",[function(){return{restrict:"A",link:function(n,t,i){if(i.typeaheadClear=="true")t.on("blur",function(){t.val("");var r=i.typeaheadNoResults;r&&(n[r]=!1,n.$apply())})}}}])}(),function(){"use strict";var n=angular.module("shared");n.directive("navbarShrink",[function(){return{restrict:"C",link:function(n,t){$(window).scroll(function(){$(document).scrollTop()>50?t.addClass("shrink"):t.removeClass("shrink")})}}}])}(),function(){"use strict";var n=angular.module("shared");n.service("LocationService",["$cookies","currentLocation",function(n,t){var i="search";return{getCurrentLocation:function(){return t},setCurrentLocation:function(t){n.put(i,t,{path:"/"})}}}])}(),function(){"use strict";var n=angular.module("shared");n.service("MemberLocationService",["$cookies","LocationService",function(n,t){var i="member";return{getMemberLocation:function(){return n.get(i)},setMemberLocation:function(r){var u=moment(),f=u.add(6,"months").toDate();n.put(i,r,{expires:f,path:"/"});t.setCurrentLocation(r)}}}])}(),function(){"use strict";var n=angular.module("shared");n.service("LocationSearchService",["$http",function(n){return{searchLocations:function(t){return n.get(app.util.createWebApiUrl("LocationSearch?q="+t)).then(function(n){return n.data.Locations})}}}])}(),function(){"use strict";var n=angular.module("shared");n.controller("LocationSearchController",["$scope","LocationSearchService","LocationService",function(n,t,i){n.location=null;var r=function(n){var t=n.id,r;i.setCurrentLocation(t);r=window.location.href;window.location=r.indexOf("research")>=0?app.util.createUrl("research/"+t):app.util.createUrl("forecast/current/pollen/"+t)};n.getLocations=function(n){return t.searchLocations(n)};n.onLocationSelect=function(n){r(n)};n.verifyLocation=function(){var i=t.searchLocations(n.location).then(function(n){n.length>0&&r(n[0])})}}])}(),function(){"use strict";var n=angular.module("shared");n.service("AllergyOutlookService",["$cookies","$q","$http","LocationService","$rootScope","$timeout",function(n,t,i,r,u){var f="geo",e=function(t){var i=new Date,r=new Date(i.getFullYear(),i.getMonth()+6,i.getDate());n.put(f,t,{expires:r,path:"/"})};return{getAllergyOutlook:function(n){var f=t.defer(),n=r.getCurrentLocation(),o;return n?(o={zip:n},u.$broadcast("outlook.loading"),i.get(app.util.createWebApiUrl("forecast/outlook/{zip}",o)).success(function(n){f.resolve(n)}).finally(function(){u.$broadcast("outlook.loadingComplete")})):navigator.geolocation&&navigator.geolocation.getCurrentPosition(function(n){var t={lat:n.coords.latitude,lng:n.coords.longitude};sessionStorage.setItem("latitude",n.coords.latitude);sessionStorage.setItem("longitude",n.coords.longitude);u.$broadcast("outlook.loading");i.get(app.util.createWebApiUrl("forecast/outlook/{lat}/{lng}/",t)).success(function(n){n&&(e(n.ZIP),f.resolve(n))}).finally(function(){u.$broadcast("outlook.loadingComplete")})}),f.promise}}}])}(),function(){"use strict";var n=angular.module("shared");n.controller("AllergyOutlookController",["$scope","AllergyOutlookService",function(n,t){n.loading=!1;n.outlook=null;n.$on("outlook.loading",function(){n.loading=!0});n.$on("outlook.loadingComplete",function(){n.loading=!1});t.getAllergyOutlook().then(function(t){n.outlook=t});n.ForecastUrl=function(){return app.util.createUrl("forecast/current/pollen/"+n.outlook.ZIP)};n.FormattedSeason=function(){return n.outlook.Season==="None"?"No":n.outlook.Season}}])}(),function(){"use strict";var n=angular.module("shared");n.service("CheckboxListService",[function(){return{createCheckboxList:function(n,t){var i=1,r=[];return _.each(n,function(n,u){var f=(t&Math.pow(2,u))!=0;r.push({name:n,value:i,isSelected:f});i*=2}),r},getCheckboxListValue:function(n){var t=0,i=_.where(n,{isSelected:!0});return _.each(i,function(n){t+=1*n.value}),t}}}])}(),function(){"use strict";var n=angular.module("shared");n.service("SelectboxListService",[function(){return{createSelectboxList:function(n,t,i){var r=[],u;return _(i).times(function(){r.push("")}),t&&(u=t.split(","),_.each(r,function(n,t){u[t]&&(r[t]=u[t])})),r},getSelectboxListValue:function(n){var t="",i=_.filter(n,function(n){return n});return i.length>0&&(t=i.join()),t}}}])}(),function(){"use strict";angular.module("shared").service("AllergensDataService",[function(){return{getAllergens:function(){return[{PredominantPollen:"Acacia",CommonName:"Acacia",Genus:"Acacia"},{PredominantPollen:"Alder",CommonName:"Alder",Genus:"Alnus"},{PredominantPollen:"Ash",CommonName:"Ash",Genus:"Fraxinus"},{PredominantPollen:"Bald Cypress",CommonName:"Bald Cypress",Genus:"Taxodium"},{PredominantPollen:"Beech",CommonName:"Beech",Genus:"Fagus"},{PredominantPollen:"Birch",CommonName:"Birch",Genus:"Betula"},{PredominantPollen:"Cattail",CommonName:"Cattail",Genus:"Typha"},{PredominantPollen:"Cedar/Juniper",CommonName:"Juniper",Genus:"Juniperus"},{PredominantPollen:"Chenopods",CommonName:"Chenopods",Genus:"Chenopods"},{PredominantPollen:"Composites",CommonName:"Composites",Genus:"Composites"},{PredominantPollen:"Elm",CommonName:"Elm",Genus:"Ulmus"},{PredominantPollen:"Ephedra",CommonName:"Ephedra",Genus:"Ephedra"},{PredominantPollen:"Fir",CommonName:"Fir",Genus:"Abies"},{PredominantPollen:"Grass",CommonName:"Grasses",Genus:"Grasses"},{PredominantPollen:"Hackberry",CommonName:"Hackberry",Genus:"Celtis"},{PredominantPollen:"Hazelnut",CommonName:"Hazelnut",Genus:"Corylus"},{PredominantPollen:"Hemp",CommonName:"Hemp",Genus:"Cannabis"},{PredominantPollen:"Hickory/Pecan",CommonName:"Hickory",Genus:"Carya"},{PredominantPollen:"Lamb's Quarters",CommonName:"Goosefoot",Genus:"Chenopodium"},{PredominantPollen:"Linden",CommonName:"Linden",Genus:"Tilia"},{PredominantPollen:"Locust",CommonName:"Locust",Genus:"Robinia"},{PredominantPollen:"Maple",CommonName:"Maple",Genus:"Acer"},{PredominantPollen:"Mesquite",CommonName:"Mesquite",Genus:"Prosopis"},{PredominantPollen:"Mixed Trace",CommonName:"Mixed Trace",Genus:"Mixed Trace"},{PredominantPollen:"Mulberry",CommonName:"Mulberry",Genus:"Morus"},{PredominantPollen:"Myrtle/Bayberry",CommonName:"Bayberry",Genus:"Morella"},{PredominantPollen:"Nettle",CommonName:"Nettle",Genus:"Urtica"},{PredominantPollen:"Oak",CommonName:"Oak",Genus:"Quercus"},{PredominantPollen:"Olive",CommonName:"Olive",Genus:"Olea"},{PredominantPollen:"Osage Orange",CommonName:"Osage Orange",Genus:"Maclura"},{PredominantPollen:"Palm",CommonName:"Palm",Genus:"Phoenix"},{PredominantPollen:"Pellitory",CommonName:"Pellitory",Genus:"Parietaria"},{PredominantPollen:"Pigweed",CommonName:"Amaranth",Genus:"Amaranthus"},{PredominantPollen:"Pine",CommonName:"Pine",Genus:"Pinus"},{PredominantPollen:"Plantain",CommonName:"Plantain",Genus:"Plantago"},{PredominantPollen:"Poplar/Aspen/Cottonwood",CommonName:"Poplar",Genus:"Populus"},{PredominantPollen:"Poplar/Cottonwood",CommonName:"Poplar",Genus:"Populus"},{PredominantPollen:"Privet",CommonName:"Privet",Genus:"Ligustrum"},{PredominantPollen:"Ragweed",CommonName:"Ragweed",Genus:"Ambrosia"},{PredominantPollen:"Sagebrush/Sage",CommonName:"Sagebrush",Genus:"Artemisia"},{PredominantPollen:"Sorrel/Dock",CommonName:"Dock",Genus:"Rumex"},{PredominantPollen:"Sweetgum",CommonName:"SweetGum",Genus:"Liquidambar"},{PredominantPollen:"Sycamore",CommonName:"Sycamore",Genus:"Platanus"},{PredominantPollen:"Tree of Heaven",CommonName:"Tree of Heaven",Genus:"Ailanthus"},{PredominantPollen:"Walnut",CommonName:"Walnut",Genus:"Juglans"},{PredominantPollen:"Willow",CommonName:"Willow",Genus:"Salix"},{PredominantPollen:"Mold",CommonName:"Mold",Genus:"MOLD"}]}}}])}(),function(n,t){t.views.HealthTip={init:function(){var t=n("#health-tips-carousel");t.carousel({interval:!1,wrap:!1});this.carouselNormalization(t)},carouselNormalization:function(t){var i=t.find(".item"),r=[],u;if(i.length){function t(){i.each(function(){r.push(n(this).height())});u=Math.max.apply(null,r);i.each(function(){n(this).css("min-height",u+"px")})}t();n(window).on("resize orientationchange",function(){u=0;r.length=0;i.each(function(){n(this).css("min-height","0")});t()})}}}}(window.jQuery,window.app);app.ui.MultiCarousel=function(n){var t,r=function(){var n=t.find(".item");t.addClass("multi-carousel");u(n,$ns)},u=function(t,r){t.each(function(){var t=n(this),u=i(t.next(),t),f=i(u.next(),t);r==4&&i(f.next(),t)})},i=function(n,t){return n.length||(n=t.siblings(":first")),n.children(":first-child").clone().appendTo(t),n};return function(n,i=3){t=n;$ns=i;r()}}(window.jQuery)