var geography = "state"; var logging=false; var checkDMA=false; var noData = " "; function showElements(e){ els = e.split(","); els.forEach(function(el,i){ if(el.startsWith(".")){ celm = document.getElementsByClassName(el.substring(1)); for(var i=0; i0){ //e.addEventListener(transitionEvent, finishHide); opacity(e, 0); // Off screen items immediate regarless of transition setTimeout(function(){displayNone(e);}, (td*1000)+1); } else if(td==0 || co==0){ opacity(e, 0); // Off screen items immediate regarless of transition displayNone(e); } else { opacity(e, 0); } } } function getOpacityTrans(e){ var cst = window.getComputedStyle(e).transition; //console.log(cst, e); if(cst!=null && cst!=''){ var td = cst; if(td.indexOf('opacity')!=-1){ td = (td.substr(td.indexOf('opacity')+7)).trim(); td = td.substr(0, td.indexOf(' ')); td = parseFloat(td.replace(/[^\d.-]/g, '')); } else if(td.indexOf('all')!=-1){ td = (td.substr(td.indexOf('all')+3)).trim(); td = td.substr(0, td.indexOf(' ')); td = parseFloat(td.replace(/[^\d.-]/g, '')); } else { td = 0; } } else { td = 0; } return td; } function getOpacity(e){ return window.getComputedStyle(e).opacity; } function displayNone(e){ e.style.display='none'; } function opacity(e, o){ if(e){ //console.log($(e).css('opacity'), parseFloat(o)); if($(e).css('opacity') != parseFloat(o)){ //console.log($(e).css('opacity'), parseFloat(o)); $(e).css('opacity', o); } } } const labels = {"localA-cUS":[{"text":"Buffalo","state":"NY","country":"US","lat":"42.88645","lng":"-78.87837"},{"text":"Jamestown","state":"NY","country":"US","lat":"42.097","lng":"-79.23533"},{"text":"Batavia","state":"NY","country":"US","lat":"42.99812","lng":"-78.18752"},{"text":"Niagara Falls","state":"NY","country":"US","lat":"43.0945","lng":"-79.05671"},{"text":"Olean","state":"NY","country":"US","lat":"42.076969","lng":"-78.429871"},{"text":"Wellsville","state":"NY","country":"US","lat":"42.120689","lng":"-77.94606"},{"text":"Coudersport","state":"PA","country":"US","lat":"41.774788","lng":"-78.020561"},{"text":"Warsaw","state":"NY","country":"US","lat":"42.740219","lng":"-78.132591"},{"text":"Bradford","state":"PA","country":"US","lat":"41.964439","lng":"-78.626266"}],"state01":[{"text":"Birmingham","state":"AL","country":"US","lat":"33.52066","lng":"-86.80249"},{"text":"Huntsville","state":"AL","country":"US","lat":"34.7304","lng":"-86.58594"},{"text":"Mobile","state":"AL","country":"US","lat":"30.69436","lng":"-88.04305"},{"text":"Tuscaloosa","state":"AL","country":"US","lat":"33.20984","lng":"-87.56917"},{"text":"Meridian","state":"MS","country":"US","lat":"32.36431","lng":"-88.70366"},{"text":"Columbus","state":"GA","country":"US","lat":"32.46098","lng":"-84.98771"},{"text":"Decatur","state":"AL","country":"US","lat":"34.60593","lng":"-86.98334"},{"text":"Gadsden","state":"AL","country":"US","lat":"34.01434","lng":"-86.00639"}],"state02":[{"text":"Anchorage","state":"AK","country":"US","lat":"61.21806","lng":"-149.90028"},{"text":"Fairbanks","state":"AK","country":"US","lat":"64.83778","lng":"-147.71639"}],"state04":[{"text":"Flagstaff","state":"AZ","country":"US","lat":"35.19807","lng":"-111.65127"},{"text":"Phoenix","state":"AZ","country":"US","lat":"33.44838","lng":"-112.07404"},{"text":"Tucson","state":"AZ","country":"US","lat":"32.22174","lng":"-110.92648"}],"state05":[{"text":"Fayetteville","state":"AR","country":"US","lat":"36.06258","lng":"-94.15743"},{"text":"Fort Smith","state":"AR","country":"US","lat":"35.38592","lng":"-94.39855"},{"text":"Little Rock","state":"AR","country":"US","lat":"34.74648","lng":"-92.28959"},{"text":"Jonesboro","state":"AR","country":"US","lat":"35.8423","lng":"-90.70428"},{"text":"Memphis","state":"TN","country":"US","lat":"35.14953","lng":"-90.04898"},{"text":"Greenville","state":"MS","country":"US","lat":"33.40898","lng":"-91.05978"}],"state06":[{"text":"Eureka","state":"CA","country":"US","lat":"40.80207","lng":"-124.16367"},{"text":"Fresno","state":"CA","country":"US","lat":"36.74773","lng":"-119.77237"},{"text":"Los Angeles","state":"CA","country":"US","lat":"34.05223","lng":"-118.24368"},{"text":"Sacramento","state":"CA","country":"US","lat":"38.58157","lng":"-121.4944"},{"text":"San Diego","state":"CA","country":"US","lat":"32.71571","lng":"-117.16472"},{"text":"San Francisco","state":"CA","country":"US","lat":"37.77493","lng":"-122.41942"}],"state12":[{"text":"Fort Myers","state":"FL","country":"US","lat":"26.62168","lng":"-81.84059"},{"text":"Jacksonville","state":"FL","country":"US","lat":"30.33218","lng":"-81.65565"},{"text":"Miami","state":"FL","country":"US","lat":"25.77427","lng":"-80.19366"},{"text":"Orlando","state":"FL","country":"US","lat":"28.53834","lng":"-81.37924"},{"text":"Pensacola","state":"FL","country":"US","lat":"30.42131","lng":"-87.21691"},{"text":"Tampa","state":"FL","country":"US","lat":"27.94752","lng":"-82.45843"},{"text":"West Palm Beach","state":"FL","country":"US","lat":"26.71534","lng":"-80.05337"},{"text":"Tallahassee","state":"FL","country":"US","lat":"30.43826","lng":"-84.28073"},{"text":"Panama City","state":"FL","country":"US","lat":"30.15946","lng":"-85.65983"}],"state13":[{"text":"Atlanta","state":"GA","country":"US","lat":"33.749","lng":"-84.38798"},{"text":"Augusta","state":"GA","country":"US","lat":"33.47097","lng":"-81.97484"},{"text":"Macon","state":"GA","country":"US","lat":"32.84069","lng":"-83.6324"},{"text":"Savannah","state":"GA","country":"US","lat":"32.08354","lng":"-81.09983"},{"text":"Valdosta","state":"GA","country":"US","lat":"30.83334","lng":"-83.28032"},{"text":"Dothan","state":"AL","country":"US","lat":"31.22323","lng":"-85.39049"}],"state15":[{"text":"Honolulu","state":"HI","country":"US","lat":"21.30694","lng":"-157.85833"}],"state26":[{"text":"Detroit","state":"MI","country":"US","lat":"42.33143","lng":"-83.04575"},{"text":"Grand Rapids","state":"MI","country":"US","lat":"42.96336","lng":"-85.66809"},{"text":"Kalamazoo","state":"MI","country":"US","lat":"42.29171","lng":"-85.58723"},{"text":"Marquette","state":"MI","country":"US","lat":"46.54354","lng":"-87.39542"},{"text":"Traverse City","state":"MI","country":"US","lat":"44.76306","lng":"-85.62063"}],"state37":[{"text":"Charlotte","state":"NC","country":"US","lat":"35.22709","lng":"-80.84313"},{"text":"Elizabeth City","state":"NC","country":"US","lat":"36.2946","lng":"-76.25105"},{"text":"Fayetteville","state":"NC","country":"US","lat":"35.05266","lng":"-78.87836"},{"text":"Greensboro","state":"NC","country":"US","lat":"36.07264","lng":"-79.79198"},{"text":"Greenville","state":"NC","country":"US","lat":"35.61266","lng":"-77.36635"},{"text":"Raleigh","state":"NC","country":"US","lat":"35.7721","lng":"-78.63861"},{"text":"Wilmington","state":"NC","country":"US","lat":"34.22573","lng":"-77.94471"},{"text":"Johnson City","state":"TN","country":"US","lat":"36.31344","lng":"-82.35347"},{"text":"Danville","state":"VA","country":"US","lat":"36.58597","lng":"-79.39502"},{"text":"Norfolk","state":"VA","country":"US","lat":"36.84681","lng":"-76.28522"}],"state45":[{"text":"Savannah","state":"GA","country":"US","lat":"32.08354","lng":"-81.09983"},{"text":"Laurinburg","state":"NC","country":"US","lat":"34.77405","lng":"-79.46282"},{"text":"Charleston","state":"SC","country":"US","lat":"32.77657","lng":"-79.93092"},{"text":"Columbia","state":"SC","country":"US","lat":"34.00071","lng":"-81.03481"},{"text":"Florence","state":"SC","country":"US","lat":"34.19543","lng":"-79.76256"},{"text":"Greenville","state":"SC","country":"US","lat":"34.85262","lng":"-82.39401"},{"text":"Myrtle Beach","state":"SC","country":"US","lat":"33.68906","lng":"-78.88669"}],"state51":[{"text":"Washington","state":"DC","country":"US","lat":"38.89511","lng":"-77.03637"},{"text":"Lexington","state":"KY","country":"US","lat":"37.98869","lng":"-84.47772"},{"text":"Danville","state":"VA","country":"US","lat":"36.58597","lng":"-79.39502"},{"text":"Harrisonburg","state":"VA","country":"US","lat":"38.44957","lng":"-78.86892"},{"text":"Norfolk","state":"VA","country":"US","lat":"36.84681","lng":"-76.28522"},{"text":"Richmond","state":"VA","country":"US","lat":"37.55376","lng":"-77.46026"},{"text":"Roanoke","state":"VA","country":"US","lat":"37.27097","lng":"-79.94143"}],"state42":[{"text":"Erie","state":"PA","country":"US","lat":"42.12922","lng":"-80.08506"},{"text":"Pittsburgh","state":"PA","country":"US","lat":"40.44062","lng":"-79.99589"},{"text":"Allentown","state":"PA","country":"US","lat":"40.60843","lng":"-75.49018"},{"text":"Philadelphia","state":"PA","country":"US","lat":"39.95233","lng":"-75.16379"},{"text":"Scranton","state":"PA","country":"US","lat":"41.40916","lng":"-75.6649"},{"text":"Williamsport","state":"PA","country":"US","lat":"41.24119","lng":"-77.00108"},{"text":"Binghamton","state":"NY","country":"US","lat":"42.09869","lng":"-75.91797"},{"text":"Cumberland","state":"MD","country":"US","lat":"39.65287","lng":"-78.76252"},{"text":"Newark","state":"NJ","country":"US","lat":"40.73566","lng":"-74.17237"}],"state54":[{"text":"Parkersburg","state":"WV","country":"US","lat":"39.26674","lng":"-81.56151"},{"text":"Charleston","state":"WV","country":"US","lat":"38.34982","lng":"-81.63262"},{"text":"Harrisonburg","state":"VA","country":"US","lat":"38.44957","lng":"-78.86892"},{"text":"Wheeling","state":"WV","country":"US","lat":"40.06396","lng":"-80.72091"}],"state39":[{"text":"Youngstown","state":"OH","country":"US","lat":"41.09978","lng":"-80.64952"},{"text":"Toledo","state":"OH","country":"US","lat":"41.66394","lng":"-83.55521"},{"text":"Cincinnati","state":"OH","country":"US","lat":"39.12711","lng":"-84.51439"},{"text":"Columbus","state":"OH","country":"US","lat":"39.96118","lng":"-82.99879"},{"text":"Dayton","state":"OH","country":"US","lat":"39.75895","lng":"-84.19161"},{"text":"Akron","state":"OH","country":"US","lat":"41.08144","lng":"-81.51901"},{"text":"Fort Wayne","state":"IN","country":"US","lat":"41.1306","lng":"-85.12886"},{"text":"Parkersburg","state":"WV","country":"US","lat":"39.26674","lng":"-81.56151"},{"text":"Wheeling","state":"WV","country":"US","lat":"40.06396","lng":"-80.72091"},{"text":"Pittsburgh","state":"PA","country":"US","lat":"40.44062","lng":"-79.99589"},{"text":"Erie","state":"PA","country":"US","lat":"42.12922","lng":"-80.08506"},{"text":"Cleveland","state":"OH","country":"US","lat":"41.4995","lng":"-81.69541"}],"state21":[{"text":"Bowling Green","state":"KY","country":"US","lat":"36.99032","lng":"-86.4436"},{"text":"Lexington","state":"KY","country":"US","lat":"37.98869","lng":"-84.47772"},{"text":"Louisville","state":"KY","country":"US","lat":"38.25424","lng":"-85.75941"},{"text":"Cincinnati","state":"OH","country":"US","lat":"39.12711","lng":"-84.51439"},{"text":"Huntington","state":"WV","country":"US","lat":"38.41925","lng":"-82.44515"},{"text":"Springfield","state":"MO","country":"US","lat":"37.21533","lng":"-93.29824"}],"state18":[{"text":"Evansville","state":"IN","country":"US","lat":"37.97476","lng":"-87.55585"},{"text":"Fort Wayne","state":"IN","country":"US","lat":"41.1306","lng":"-85.12886"},{"text":"Gary","state":"IN","country":"US","lat":"41.59337","lng":"-87.34643"},{"text":"Indianapolis","state":"IN","country":"US","lat":"39.76838","lng":"-86.15804"},{"text":"Terre Haute","state":"IN","country":"US","lat":"39.4667","lng":"-87.41391"},{"text":"South Bend","state":"IN","country":"US","lat":"41.68338","lng":"-86.25001"},{"text":"Columbus","state":"IN","country":"US","lat":"39.20144","lng":"-85.92138"},{"text":"Cincinnati","state":"OH","country":"US","lat":"39.12711","lng":"-84.51439"},{"text":"Louisville","state":"KY","country":"US","lat":"38.25424","lng":"-85.75941"}],"state17":[{"text":"Chicago","state":"IL","country":"US","lat":"41.85003","lng":"-87.65005"},{"text":"Peoria","state":"IL","country":"US","lat":"40.69365","lng":"-89.58899"},{"text":"Springfield","state":"IL","country":"US","lat":"39.80172","lng":"-89.64371"},{"text":"Dubuque","state":"IA","country":"US","lat":"42.50056","lng":"-90.66457"},{"text":"Terre Haute","state":"IN","country":"US","lat":"39.4667","lng":"-87.41391"},{"text":"Rockford","state":"IL","country":"US","lat":"42.27113","lng":"-89.094"},{"text":"St. Louis","state":"MO","country":"US","lat":"38.62727","lng":"-90.19789"}],"state55":[{"text":"Madison","state":"WI","country":"US","lat":"43.07305","lng":"-89.40123"},{"text":"Milwaukee","state":"WI","country":"US","lat":"43.0389","lng":"-87.90647"},{"text":"La Crosse","state":"WI","country":"US","lat":"43.80136","lng":"-91.23958"},{"text":"Green Bay","state":"WI","country":"US","lat":"44.51916","lng":"-88.01983"},{"text":"Eau Claire","state":"WI","country":"US","lat":"44.81135","lng":"-91.49849"},{"text":"Minneapolis","state":"MN","country":"US","lat":"44.97997","lng":"-93.26384"},{"text":"Dubuque","state":"IA","country":"US","lat":"42.50056","lng":"-90.66457"},{"text":"Superior","state":"WI","country":"US","lat":"46.72077","lng":"-92.10408"}],"state27":[{"text":"Saint Cloud","state":"MN","country":"US","lat":"45.5608","lng":"-94.16249"},{"text":"Minneapolis","state":"MN","country":"US","lat":"44.97997","lng":"-93.26384"},{"text":"Mankato","state":"MN","country":"US","lat":"44.15906","lng":"-94.00915"},{"text":"Watertown","state":"SD","country":"US","lat":"44.89941","lng":"-97.11507"},{"text":"Sioux Falls","state":"SD","country":"US","lat":"43.54997","lng":"-96.70033"},{"text":"Fargo","state":"ND","country":"US","lat":"46.87719","lng":"-96.7898"},{"text":"Grand Forks","state":"ND","country":"US","lat":"47.92526","lng":"-97.03285"},{"text":"Duluth","state":"MN","country":"US","lat":"46.78327","lng":"-92.10658"}],"state38":[{"text":"Minot","state":"ND","country":"US","lat":"48.23251","lng":"-101.29627"},{"text":"Fargo","state":"ND","country":"US","lat":"46.87719","lng":"-96.7898"},{"text":"Grand Forks","state":"ND","country":"US","lat":"47.92526","lng":"-97.03285"},{"text":"Bismarck","state":"ND","country":"US","lat":"46.80833","lng":"-100.78374"}],"state46":[{"text":"Watertown","state":"SD","country":"US","lat":"44.89941","lng":"-97.11507"},{"text":"Aberdeen","state":"SD","country":"US","lat":"45.4647","lng":"-98.48648"},{"text":"Sioux Falls","state":"SD","country":"US","lat":"43.54997","lng":"-96.70033"},{"text":"Rapid City","state":"SD","country":"US","lat":"44.08054","lng":"-103.23101"}],"state31":[{"text":"Lincoln","state":"NE","country":"US","lat":"40.8","lng":"-96.66696"},{"text":"Omaha","state":"NE","country":"US","lat":"41.25626","lng":"-95.94043"},{"text":"North Platte","state":"NE","country":"US","lat":"41.12389","lng":"-100.76542"},{"text":"Sioux City","state":"IA","country":"US","lat":"42.49999","lng":"-96.40031"},{"text":"Boulder City","state":"NV","country":"US","lat":"35.97859","lng":"-114.83249"},{"text":"Las Vegas","state":"NV","country":"US","lat":"36.17497","lng":"-115.13722"}],"state20":[{"text":"Kansas City","state":"KS","country":"US","lat":"39.11417","lng":"-94.62746"},{"text":"Garden City","state":"KS","country":"US","lat":"37.97169","lng":"-100.87266"},{"text":"Topeka","state":"KS","country":"US","lat":"39.04833","lng":"-95.67804"},{"text":"Wichita","state":"KS","country":"US","lat":"37.69224","lng":"-97.33754"},{"text":"Shreveport","state":"LA","country":"US","lat":"32.52515","lng":"-93.75018"},{"text":"New Orleans","state":"LA","country":"US","lat":"29.95465","lng":"-90.07507"},{"text":"Baton Rouge","state":"LA","country":"US","lat":"30.44332","lng":"-91.18747"},{"text":"Houston","state":"TX","country":"US","lat":"29.76328","lng":"-95.36327"},{"text":"Jackson","state":"MS","country":"US","lat":"32.29876","lng":"-90.18481"}],"state40":[{"text":"Oklahoma City","state":"OK","country":"US","lat":"35.46756","lng":"-97.51643"},{"text":"Tulsa","state":"OK","country":"US","lat":"36.15398","lng":"-95.99277"},{"text":"Lawton","state":"OK","country":"US","lat":"34.60869","lng":"-98.39033"},{"text":"Wichita Falls","state":"TX","country":"US","lat":"33.91371","lng":"-98.49339"}],"state48":[{"text":"Amarillo","state":"TX","country":"US","lat":"35.222","lng":"-101.8313"},{"text":"Abilene","state":"TX","country":"US","lat":"32.44874","lng":"-99.73314"},{"text":"Corpus Christi","state":"TX","country":"US","lat":"27.80058","lng":"-97.39638"},{"text":"Dallas","state":"TX","country":"US","lat":"32.78306","lng":"-96.80667"},{"text":"Houston","state":"TX","country":"US","lat":"29.76328","lng":"-95.36327"},{"text":"Austin","state":"TX","country":"US","lat":"30.26715","lng":"-97.74306"},{"text":"San Antonio","state":"TX","country":"US","lat":"29.42412","lng":"-98.49363"},{"text":"Midland","state":"TX","country":"US","lat":"31.99735","lng":"-102.07791"},{"text":"Shreveport","state":"LA","country":"US","lat":"32.52515","lng":"-93.75018"},{"text":"Waco","state":"TX","country":"US","lat":"31.54933","lng":"-97.14667"}],"state28":[{"text":"Jackson","state":"MS","country":"US","lat":"32.29876","lng":"-90.18481"},{"text":"Greenville","state":"MS","country":"US","lat":"33.40898","lng":"-91.05978"},{"text":"Meridian","state":"MS","country":"US","lat":"32.36431","lng":"-88.70366"},{"text":"Hattiesburg","state":"MS","country":"US","lat":"31.32712","lng":"-89.29034"},{"text":"Tupelo","state":"MS","country":"US","lat":"34.25807","lng":"-88.70464"},{"text":"Mobile","state":"AL","country":"US","lat":"30.69436","lng":"-88.04305"}],"state29":[{"text":"Columbia","state":"MO","country":"US","lat":"38.95171","lng":"-92.33407"},{"text":"Kansas City","state":"MO","country":"US","lat":"39.09973","lng":"-94.57857"},{"text":"Springfield","state":"MO","country":"US","lat":"37.21533","lng":"-93.29824"},{"text":"St. Louis","state":"MO","country":"US","lat":"38.62727","lng":"-90.19789"},{"text":"Poplar Bluff","state":"MO","country":"US","lat":"36.757","lng":"-90.39289"},{"text":"La Crosse","state":"WI","country":"US","lat":"43.80136","lng":"-91.23958"}],"state19":[{"text":"Des Moines","state":"IA","country":"US","lat":"41.60054","lng":"-93.60911"},{"text":"Cedar Rapids","state":"IA","country":"US","lat":"42.00833","lng":"-91.64407"},{"text":"Sioux City","state":"IA","country":"US","lat":"42.49999","lng":"-96.40031"},{"text":"Dubuque","state":"IA","country":"US","lat":"42.50056","lng":"-90.66457"},{"text":"Omaha","state":"NE","country":"US","lat":"41.25626","lng":"-95.94043"},{"text":"Davenport","state":"IA","country":"US","lat":"41.52364","lng":"-90.57764"}],"state30":[{"text":"Billings","state":"MT","country":"US","lat":"45.78329","lng":"-108.50069"},{"text":"Great Falls","state":"MT","country":"US","lat":"47.50024","lng":"-111.30081"},{"text":"Missoula","state":"MT","country":"US","lat":"46.87215","lng":"-113.994"},{"text":"Butte","state":"MT","country":"US","lat":"46.00382","lng":"-112.53474"}],"state22":[{"text":"New Orleans","state":"LA","country":"US","lat":"29.95465","lng":"-90.07507"},{"text":"Shreveport","state":"LA","country":"US","lat":"32.52515","lng":"-93.75018"},{"text":"Baton Rouge","state":"LA","country":"US","lat":"30.44332","lng":"-91.18747"}],"state24":[{"text":"Baltimore","state":"MD","country":"US","lat":"39.29038","lng":"-76.61219"},{"text":"Hagerstown","state":"MD","country":"US","lat":"39.64176","lng":"-77.71999"},{"text":"Frederick","state":"MD","country":"US","lat":"39.41427","lng":"-77.41054"},{"text":"Elkton","state":"MD","country":"US","lat":"39.60678","lng":"-75.83327"}],"state10":[{"text":"Dover","state":"DE","country":"US","lat":"39.15817","lng":"-75.52437"},{"text":"Newark","state":"DE","country":"US","lat":"39.68372","lng":"-75.74966"},{"text":"Wilmington","state":"DE","country":"US","lat":"39.74595","lng":"-75.54659"}],"state34":[{"text":"Atlantic City","state":"NJ","country":"US","lat":"39.36415","lng":"-74.42306"},{"text":"Newark","state":"NJ","country":"US","lat":"40.73566","lng":"-74.17237"},{"text":"Vineland","state":"NJ","country":"US","lat":"39.48623","lng":"-75.02573"},{"text":"Trenton","state":"NJ","country":"US","lat":"40.21705","lng":"-74.74294"},{"text":"New Brunswick","state":"NJ","country":"US","lat":"40.48622","lng":"-74.45182"}],"state36":[{"text":"Albany","state":"NY","country":"US","lat":"42.65258","lng":"-73.75623"},{"text":"Buffalo","state":"NY","country":"US","lat":"42.88645","lng":"-78.87837"},{"text":"New York City","state":"NY","country":"US","lat":"40.71427","lng":"-74.00597"},{"text":"Syracuse","state":"NY","country":"US","lat":"43.04812","lng":"-76.14742"},{"text":"Rochester","state":"NY","country":"US","lat":"43.15478","lng":"-77.61556"},{"text":"Erie","state":"PA","country":"US","lat":"42.12922","lng":"-80.08506"},{"text":"Binghamton","state":"NY","country":"US","lat":"42.09869","lng":"-75.91797"},{"text":"Plattsburgh","state":"NY","country":"US","lat":"44.69949","lng":"-73.45291"}],"state50":[{"text":"Burlington","state":"VT","country":"US","lat":"44.47588","lng":"-73.21207"},{"text":"Rutland","state":"VT","country":"US","lat":"43.61062","lng":"-72.97261"},{"text":"Plattsburgh","state":"NY","country":"US","lat":"44.69949","lng":"-73.45291"}],"state33":[{"text":"Dover","state":"NH","country":"US","lat":"43.19786","lng":"-70.87367"},{"text":"Keene","state":"NH","country":"US","lat":"42.93369","lng":"-72.27814"}],"state23":[{"text":"Portland","state":"ME","country":"US","lat":"43.65737","lng":"-70.2589"},{"text":"Bangor","state":"ME","country":"US","lat":"44.80118","lng":"-68.77781"}],"state56":[{"text":"Casper","state":"WY","country":"US","lat":"42.86663","lng":"-106.31308"},{"text":"Cheyenne","state":"WY","country":"US","lat":"41.13998","lng":"-104.82025"},{"text":"Gillette","state":"WY","country":"US","lat":"44.29109","lng":"-105.50222"}],"state16":[{"text":"Boise","state":"ID","country":"US","lat":"43.6135","lng":"-116.20345"},{"text":"Moscow","state":"ID","country":"US","lat":"46.73239","lng":"-117.00017"},{"text":"Pocatello","state":"ID","country":"US","lat":"42.8713","lng":"-112.44553"},{"text":"Idaho Falls","state":"ID","country":"US","lat":"43.46658","lng":"-112.03414"},{"text":"Twin Falls","state":"ID","country":"US","lat":"42.56297","lng":"-114.46087"}],"state53":[{"text":"Spokane","state":"WA","country":"US","lat":"47.65966","lng":"-117.42908"},{"text":"Seattle","state":"WA","country":"US","lat":"47.60621","lng":"-122.33207"},{"text":"Yakima","state":"WA","country":"US","lat":"46.60207","lng":"-120.5059"},{"text":"Portland","state":"OR","country":"US","lat":"45.52345","lng":"-122.67621"}],"state41":[{"text":"Portland","state":"OR","country":"US","lat":"45.52345","lng":"-122.67621"},{"text":"Bend","state":"OR","country":"US","lat":"44.05817","lng":"-121.31531"},{"text":"Eugene","state":"OR","country":"US","lat":"44.05207","lng":"-123.08675"},{"text":"Roseburg","state":"OR","country":"US","lat":"43.2165","lng":"-123.34174"}],"state49":[{"text":"Salt Lake City","state":"UT","country":"US","lat":"40.76078","lng":"-111.89105"},{"text":"Saint George","state":"UT","country":"US","lat":"37.10415","lng":"-113.58412"},{"text":"Grand Junction","state":"CO","country":"US","lat":"39.06387","lng":"-108.55065"}],"state08":[{"text":"Boulder","state":"CO","country":"US","lat":"40.01499","lng":"-105.27055"},{"text":"Colorado Springs","state":"CO","country":"US","lat":"38.83388","lng":"-104.82136"},{"text":"Grand Junction","state":"CO","country":"US","lat":"39.06387","lng":"-108.55065"},{"text":"Denver","state":"CO","country":"US","lat":"39.73915","lng":"-104.9847"}],"state32":[{"text":"Las Vegas","state":"NV","country":"US","lat":"36.17497","lng":"-115.13722"},{"text":"Reno","state":"NV","country":"US","lat":"39.52963","lng":"-119.8138"}],"state35":[{"text":"Albuquerque","state":"NM","country":"US","lat":"35.08449","lng":"-106.65114"},{"text":"Santa Fe","state":"NM","country":"US","lat":"35.68698","lng":"-105.9378"},{"text":"Farmington","state":"NM","country":"US","lat":"36.72806","lng":"-108.21869"},{"text":"Las Cruces","state":"NM","country":"US","lat":"32.31232","lng":"-106.77834"},{"text":"Alamogordo","state":"NM","country":"US","lat":"32.89953","lng":"-105.96027"}],"state25":[{"text":"Boston","state":"MA","country":"US","lat":"42.35843","lng":"-71.05977"},{"text":"Springfield","state":"MA","country":"US","lat":"42.10148","lng":"-72.58981"},{"text":"Worcester","state":"MA","country":"US","lat":"42.26259","lng":"-71.80229"},{"text":"Pittsfield","state":"MA","country":"US","lat":"42.45008","lng":"-73.24538"}],"state44":[{"text":"Providence","state":"RI","country":"US","lat":"41.82399","lng":"-71.41283"},{"text":"Hartford","state":"CT","country":"US","lat":"41.76371","lng":"-72.68509"}],"state47":[{"text":"Chattanooga","state":"TN","country":"US","lat":"35.04563","lng":"-85.30968"},{"text":"Memphis","state":"TN","country":"US","lat":"35.14953","lng":"-90.04898"},{"text":"Nashville","state":"TN","country":"US","lat":"36.16589","lng":"-86.78444"},{"text":"Knoxville","state":"TN","country":"US","lat":"35.96064","lng":"-83.92074"}],"state09":[{"text":"Hartford","state":"CT","country":"US","lat":"41.76371","lng":"-72.68509"},{"text":"New Haven","state":"CT","country":"US","lat":"41.30815","lng":"-72.92816"}]}; var dataType = "covid"; var startItem = 'POSITIVE'; var homeState = '36'; var local = {}; local = {"A":{"llz":[42.3367, -77.9196, 9.021335],"name":"Western New York","fips":["36063","36073","36029","36037","36121","36013","36009","36003","42083","42105"]},"order": ["A","36"]}; var clickedFIPS = ['00']; var category = "POSITIVE"; getCategory(); var dataRange = "CUMULATIVE"; getDataRange(); var isPer = false; getPerStatus(); const titles = {'covid':{'title':'Coronavirus','subTitle':{'POSITIVE':'Cumulative
Totals','POSITIVEPER':'Cumulative
Per |PER| People','POSITIVENEW':'New
Totals','POSITIVENEWPER':'New
Per |PER| People','POSITIVE7DAYAVG':'7-Day Average
Totals','POSITIVE7DAYAVGPER':'7-Day Average
Per |PER| People','POSITIVE14DAYAVG':'14-Day Average
Totals','POSITIVE14DAYAVGPER':'14-Day Average
Per |PER| People','DEATHS':'Cumulative
Totals','DEATHSPER':'Cumulative
Per |PER| People','DEATHSNEW':'New
Totals','DEATHSNEWPER':'New
Per |PER| People','DEATHS7DAYAVG':'7-Day Average
Totals','DEATHS7DAYAVGPER':'7-Day Average
Per |PER| People','DEATHS14DAYAVG':'14-Day Average
Totals','DEATHS14DAYAVGPER':'14-Day Average
Per |PER| People','VACCINE1ST':'Cumulative
Totals','VACCINE1STPER':'Cumulative
Percentage of People','VACCINE1STNEW':'New
Totals','VACCINE1STNEWPER':'New
Percentage of People','VACCINE1ST7DAYAVG':'7-Day Average
Totals','VACCINE1ST7DAYAVGPER':'7-Day Average
Percentage of People','VACCINE1ST14DAYAVG':'14-Day Average
Totals','VACCINE1ST14DAYAVGPER':'14-Day Average
Percentage of People','VACCINATED':'Cumulative
Totals','VACCINATEDPER':'Cumulative
Percentage of People','VACCINATEDNEW':'New
Totals','VACCINATEDNEWPER':'New
Percentage of People','VACCINATED7DAYAVG':'7-Day Average
Totals','VACCINATED7DAYAVGPER':'7-Day Average
Percentage of People','VACCINATED14DAYAVG':'14-Day Average
Totals','VACCINATED14DAYAVGPER':'14-Day Average
Percentage of People','VACCINEADMIN':'Cumulative
Totals','VACCINEADMINPER':'Cumulative
Percentage of People','VACCINEADMINNEW':'New
Totals','VACCINEADMINNEWPER':'New
Percentage of People','VACCINEADMIN7DAYAVG':'7-Day Average
Totals','VACCINEADMIN7DAYAVGPER':'7-Day Averag
Percentage of People','VACCINEADMIN14DAYAVG':'14-Day Average
Totals','VACCINEADMIN14DAYAVGPER':'14-Day Average
Percentage of People'},'category':{'POSITIVE':'Cases','DEATHS':'Deaths','VACCINE1ST':'Vaccine First Dose','VACCINATED':'Fully Vaccinated','VACCINEADMIN':'Vaccines Administered',}}}; var currentColor = 'white'; getColorItem(); var statesLL = {}; statesLL['01']='32.6224, -86.5707, 7.96567'; statesLL['02']='64.4030, -168.0261, 4.79877'; statesLL['04']='34.2624, -111.3904, 7.6469368'; statesLL['05']='34.7693, -92.7027, 8.3014'; statesLL['06']='37.4803, -119.2259, 6.8785'; statesLL['08']='39.0061, -105.7534, 8.06693'; statesLL['09']='41.5567, -72.7255, 9.65209'; statesLL['10']='39.1399, -75.4842, 9.63816'; statesLL['11']='38.8795, -77.0499, 11.58572'; statesLL['12']='27.8851, -83.4145, 7.61'; statesLL['13']='32.6845, -83.6463, 8.01'; statesLL['15']='20.0820, -159.5457, 7.578907'; statesLL['16']='45.5759, -114.6571, 7.126119'; statesLL['17']='39.7858, -89.1130, 7.6125483'; statesLL['18']='39.7792, -86.4101, 8.08123'; statesLL['19']='41.9270, -93.5623, 8.36722'; statesLL['20']='38.5087, -98.2457, 8.34567'; statesLL['21']='37.6701, -85.6153, 8.39012'; statesLL['22']='31.0253, -91.8512, 8.211446'; statesLL['23']='45.2134, -70.2136, 7.80993'; statesLL['24']='38.8020, -77.2977, 9.16986'; statesLL['25']='42.0472, -71.6362, 9.28817'; statesLL['26']='44.9984, -86.8898, 7.26999'; statesLL['27']='46.4824, -93.4745, 7.35719'; statesLL['28']='32.6121, -89.5433, 7.935669'; statesLL['29']='38.3293, -92.5520, 7.949439'; statesLL['30']='46.7032, -110.0338, 7.69311'; statesLL['31']='41.4361, -99.7518, 8.18579'; statesLL['32']='38.6098, -116.4536, 7.279369'; statesLL['33']='43.9581, -71.5783, 8.5737919'; statesLL['34']='40.1382, -74.6761, 8.78559'; statesLL['35']='34.2116, -106.1550, 7.6769368'; statesLL['36']='42.7499, -75.4834, 7.8299389'; statesLL['37']='35.2840, -79.9335, 8.1997709'; statesLL['38']='47.4311, -100.3350, 8.21567'; statesLL['39']='40.1595, -82.7029, 8.252619'; statesLL['40']='35.3132, -98.6743, 8.20567'; statesLL['41']='44.1636, -120.4049, 7.8232'; statesLL['42']='41.0025, -77.6472, 8.6726219'; statesLL['44']='41.5711, -71.5742, 10.05199'; statesLL['45']='33.6210, -80.9204, 8.53'; statesLL['46']='44.2381, -100.2116, 8.1658'; statesLL['47']='35.5710, -85.9434, 8.240129'; statesLL['48']='31.2682, -99.0293, 6.849'; statesLL['49']='39.4136, -111.6310, 7.72319'; statesLL['50']='43.8503, -72.5127, 8.753789'; statesLL['51']='38.0366, -79.7349, 8.36'; statesLL['53']='47.2837, -120.2819, 8.0613979'; statesLL['54']='38.9026, -80.5402, 8.28'; statesLL['55']='44.7494, -89.9826, 7.75999'; statesLL['56']='43.0084, -107.6583, 7.958729'; var stateData = {}; var stateDataVaccine = {}; var days = {}; var daysVaccine = {}; var data = {}; var dataVaccine = {}; var elementsShown = []; elementsShown["covidPOSITIVE"] = ["covidSUBTITLEdata", "covidGEOGRAPHYdata", "covidDataBkg", "covidDataText", "covidCasesHighlight", "covidPOSITIVE"];elementsShown["covidPOSITIVENEW"] = ["covidSUBTITLEdata", "covidGEOGRAPHYdata", "covidDataBkg", "covidDataText", "covidCasesHighlight", "covidPOSITIVENEW"];elementsShown["covidPOSITIVE7"] = ["covidSUBTITLEdata", "covidGEOGRAPHYdata", "covidDataBkg", "covidDataText", "covidCasesHighlight", "covidPOSITIVE7DAYAVG"];elementsShown["covidPOSITIVE14"] = ["covidSUBTITLEdata", "covidGEOGRAPHYdata", "covidDataBkg", "covidDataText", "covidCasesHighlight", "covidPOSITIVE14DAYAVG"];elementsShown["covidPOSITIVEPER"] = ["covidSUBTITLEdata", "covidGEOGRAPHYdata", "covidDataBkg", "covidDataText", "covidCasesHighlight", "covidPOSITIVEPER"];elementsShown["covidPOSITIVENEWPER"] = ["covidSUBTITLEdata", "covidGEOGRAPHYdata", "covidDataBkg", "covidDataText", "covidCasesHighlight", "covidPOSITIVENEWPER"];elementsShown["covidPOSITIVE7PER"] = ["covidSUBTITLEdata", "covidGEOGRAPHYdata", "covidDataBkg", "covidDataText", "covidCasesHighlight", "covidPOSITIVE7DAYAVGPER"];elementsShown["covidPOSITIVE14PER"] = ["covidSUBTITLEdata", "covidGEOGRAPHYdata", "covidDataBkg", "covidDataText", "covidCasesHighlight", "covidPOSITIVE14DAYAVGPER"];elementsShown["covidDEATHS"] = ["covidSUBTITLEdata", "covidGEOGRAPHYdata", "covidDataBkg", "covidDataText", "covidDeathsHighlight", "covidDEATHS"];elementsShown["covidDEATHSNEW"] = ["covidSUBTITLEdata", "covidGEOGRAPHYdata", "covidDataBkg", "covidDataText", "covidDeathsHighlight", "covidDEATHSNEW"];elementsShown["covidDEATHS7"] = ["covidSUBTITLEdata", "covidGEOGRAPHYdata", "covidDataBkg", "covidDataText", "covidDeathsHighlight", "covidDEATHS7DAYAVG"];elementsShown["covidDEATHS14"] = ["covidSUBTITLEdata", "covidGEOGRAPHYdata", "covidDataBkg", "covidDataText", "covidDeathsHighlight", "covidDEATHS14DAYAVG"];elementsShown["covidDEATHSPER"] = ["covidSUBTITLEdata", "covidGEOGRAPHYdata", "covidDataBkg", "covidDataText", "covidDeathsHighlight", "covidDEATHSPER"];elementsShown["covidDEATHSNEWPER"] = ["covidSUBTITLEdata", "covidGEOGRAPHYdata", "covidDataBkg", "covidDataText", "covidDeathsHighlight", "covidDEATHSNEWPER"];elementsShown["covidDEATHS7PER"] = ["covidSUBTITLEdata", "covidGEOGRAPHYdata", "covidDataBkg", "covidDataText", "covidDeathsHighlight", "covidDEATHS7DAYAVGPER"];elementsShown["covidDEATHS14PER"] = ["covidSUBTITLEdata", "covidGEOGRAPHYdata", "covidDataBkg", "covidDataText", "covidDeathsHighlight", "covidDEATHS14DAYAVGPER"];elementsShown["covidVACCINE1ST"] = ["covidSUBTITLEdata", "covidGEOGRAPHYdata", "covidDataBkg", "covidDataText", "covidVaccine1stHighlight", "covidVACCINE1ST"];elementsShown["covidVACCINE1STNEW"] = ["covidSUBTITLEdata", "covidGEOGRAPHYdata", "covidDataBkg", "covidDataText", "covidVaccine1stHighlight", "covidVACCINE1STNEW"];elementsShown["covidVACCINE1ST7"] = ["covidSUBTITLEdata", "covidGEOGRAPHYdata", "covidDataBkg", "covidDataText", "covidVaccine1stHighlight", "covidVACCINE1ST7DAYAVG"];elementsShown["covidVACCINE1ST14"] = ["covidSUBTITLEdata", "covidGEOGRAPHYdata", "covidDataBkg", "covidDataText", "covidVaccine1stHighlight", "covidVACCINE1ST14DAYAVG"];elementsShown["covidVACCINE1STPER"] = ["covidSUBTITLEdata", "covidGEOGRAPHYdata", "covidDataBkg", "covidDataText", "covidVaccine1stHighlight", "covidVACCINE1STPER"];elementsShown["covidVACCINE1STNEWPER"] = ["covidSUBTITLEdata", "covidGEOGRAPHYdata", "covidDataBkg", "covidDataText", "covidCasesHighlight", "covidPOSITIVENEW"];elementsShown["covidVACCINE1ST7PER"] = ["covidSUBTITLEdata", "covidGEOGRAPHYdata", "covidDataBkg", "covidDataText", "covidCasesHighlight", "covidPOSITIVE7DAYAVG"];elementsShown["covidVACCINE1ST14PER"] = ["covidSUBTITLEdata", "covidGEOGRAPHYdata", "covidDataBkg", "covidDataText", "covidCasesHighlight", "covidPOSITIVE14DAYAVGPER"];elementsShown["covidVACCINATED"] = ["covidSUBTITLEdata", "covidGEOGRAPHYdata", "covidDataBkg", "covidDataText", "covidVaccinatedHighlight", "covidVACCINATED"];elementsShown["covidVACCINATEDNEW"] = ["covidSUBTITLEdata", "covidGEOGRAPHYdata", "covidDataBkg", "covidDataText", "covidVaccinatedHighlight", "covidVACCINATEDNEW"];elementsShown["covidVACCINATED7"] = ["covidSUBTITLEdata", "covidGEOGRAPHYdata", "covidDataBkg", "covidDataText", "covidVaccinatedHighlight", "covidVACCINATED7DAYAVG"];elementsShown["covidVACCINATED14"] = ["covidSUBTITLEdata", "covidGEOGRAPHYdata", "covidDataBkg", "covidDataText", "covidVaccinatedHighlight", "covidVACCINATED14DAYAVG"];elementsShown["covidVACCINATEDPER"] = ["covidSUBTITLEdata", "covidGEOGRAPHYdata", "covidDataBkg", "covidDataText", "covidVaccinatedHighlight", "covidVACCINATEDPER"];elementsShown["covidVACCINATED1STNEWPER"] = ["covidSUBTITLEdata", "covidGEOGRAPHYdata", "covidDataBkg", "covidDataText", "covidCasesHighlight", "covidPOSITIVENEWPER"];elementsShown["covidVACCINATED1ST7PER"] = ["covidSUBTITLEdata", "covidGEOGRAPHYdata", "covidDataBkg", "covidDataText", "covidCasesHighlight", "covidPOSITIVE7DAYAVG"];elementsShown["covidVACCINATED1ST14PER"] = ["covidSUBTITLEdata", "covidGEOGRAPHYdata", "covidDataBkg", "covidDataText", "covidCasesHighlight", "covidPOSITIVE14DAYAVGPER"];elementsShown["covidVACCINEADMIN"] = ["covidSUBTITLEdata", "covidGEOGRAPHYdata", "covidDataBkg", "covidDataText", "covidVaccineAdminHighlight", "covidVACCINEADMIN"];elementsShown["covidVACCINEADMINNEW"] = ["covidSUBTITLEdata", "covidGEOGRAPHYdata", "covidDataBkg", "covidDataText", "covidVaccineAdminHighlight", "covidVACCINEADMINNEW"];elementsShown["covidVACCINEADMIN7"] = ["covidSUBTITLEdata", "covidGEOGRAPHYdata", "covidDataBkg", "covidDataText", "covidVaccineAdminHighlight", "covidVACCINEADMIN7DAYAVG"];elementsShown["covidVACCINEADMIN14"] = ["covidSUBTITLEdata", "covidGEOGRAPHYdata", "covidDataBkg", "covidDataText", "covidVaccineAdminHighlight", "covidVACCINEADMIN14DAYAVG"];elementsShown["covidVACCINEADMINPER"] = ["covidSUBTITLEdata", "covidGEOGRAPHYdata", "covidDataBkg", "covidDataText", "covidVaccineAdminHighlight", "covidVACCINEADMINPER"];elementsShown["covidVACCINEADMINNEWPER"] = ["covidSUBTITLEdata", "covidGEOGRAPHYdata", "covidDataBkg", "covidDataText", "covidCasesHighlight", "covidPOSITIVENEWPER"];elementsShown["covidVACCINEADMIN7PER"] = ["covidSUBTITLEdata", "covidGEOGRAPHYdata", "covidDataBkg", "covidDataText", "covidCasesHighlight", "covidPOSITIVE7DAYAVG"];elementsShown["covidVACCINEADMIN14PER"] = ["covidSUBTITLEdata", "covidGEOGRAPHYdata", "covidDataBkg", "covidDataText", "covidCasesHighlight", "covidPOSITIVE14DAYAVGPER"];var stationColors = {}; stationColors['POSITIVE']={"points":["0","501","1501","3001","6001","12001","30001"],"colors":["rgb(242, 200, 200)","rgb(231, 167, 167)","rgb(220, 133, 133)","rgb(209, 100, 100)","rgb(197, 67, 67)","rgb(186, 33, 33)","rgb(175, 0, 0)"],"highlightColor":"rgb(255, 255, 255)","borderColor":"rgb(0, 0, 0)","greatLakesColor":"rgb(0, 91, 191)"};stationColors['POSITIVEPER']={"points":["0","101","4001","7001","9001","10001","11001"],"colors":["rgb(242, 200, 200)","rgb(231, 167, 167)","rgb(220, 133, 133)","rgb(209, 100, 100)","rgb(197, 67, 67)","rgb(186, 33, 33)","rgb(175, 0, 0)"],"highlightColor":"rgb(255, 255, 255)","borderColor":"rgb(0, 0, 0)","greatLakesColor":"rgb(0, 91, 191)","per":"100000"};stationColors['POSITIVE7']={"points":["0","3","6","9","12","15","18"],"colors":["rgb(242, 200, 200)","rgb(231, 167, 167)","rgb(220, 133, 133)","rgb(209, 100, 100)","rgb(197, 67, 67)","rgb(186, 33, 33)","rgb(175, 0, 0)"],"highlightColor":"rgb(255, 255, 255)","borderColor":"rgb(0, 0, 0)","greatLakesColor":"rgb(0, 91, 191)"};stationColors['POSITIVE7PER']={"points":["0","5","9","13","17","21","25"],"colors":["rgb(242, 200, 200)","rgb(231, 167, 167)","rgb(220, 133, 133)","rgb(209, 100, 100)","rgb(197, 67, 67)","rgb(186, 33, 33)","rgb(175, 0, 0)"],"highlightColor":"rgb(255, 255, 255)","borderColor":"rgb(0, 0, 0)","greatLakesColor":"rgb(0, 91, 191)","per":"100000"};stationColors['DEATHS']={"points":["0","11","41","61","81","101","121","131"],"colors":["rgb(230, 230, 230)","rgb(204, 204, 204)","rgb(179, 179, 179)","rgb(153, 153, 153)","rgb(127, 127, 127)","rgb(101, 101, 101)","rgb(76, 76, 76)","rgb(50, 50, 50)"],"highlightColor":"rgb(255, 255, 255)","borderColor":"rgb(0, 0, 0)","greatLakesColor":"rgb(0, 91, 191)"};stationColors['DEATHSPER']={"points":["0","21","41","61","81","101","121","141"],"colors":["rgb(230, 230, 230)","rgb(207, 207, 207)","rgb(184, 184, 184)","rgb(161, 161, 161)","rgb(139, 139, 139)","rgb(116, 116, 116)","rgb(93, 93, 93)","rgb(70, 70, 70)"],"highlightColor":"rgb(255, 255, 255)","borderColor":"rgb(0, 0, 0)","greatLakesColor":"rgb(0, 91, 191)","per":"100000"};stationColors['DEATHS7']={"points":["0","1","3","5","7"],"colors":["rgb(230, 230, 230)","rgb(190, 190, 190)","rgb(150, 150, 150)","rgb(110, 110, 110)","rgb(70, 70, 70)"],"highlightColor":"rgb(255, 255, 255)","borderColor":"rgb(0, 0, 0)","greatLakesColor":"rgb(0, 91, 191)"};stationColors['DEATHS7PER']={"points":["0","1","3","5","7","8"],"colors":["rgb(230, 230, 230)","rgb(198, 198, 198)","rgb(166, 166, 166)","rgb(134, 134, 134)","rgb(102, 102, 102)","rgb(70, 70, 70)"],"highlightColor":"rgb(255, 255, 255)","borderColor":"rgb(0, 0, 0)","greatLakesColor":"rgb(0, 91, 191)","per":"100000"};stationColors['VACCINE1ST']={"points":["0","301","2001","5001","10001","15001","40001","200001"],"colors":["rgb(221, 234, 222)","rgb(192, 216, 194)","rgb(162, 197, 165)","rgb(133, 179, 137)","rgb(104, 160, 109)","rgb(75, 142, 81)","rgb(45, 123, 52)","rgb(16, 105, 24)"],"highlightColor":"rgb(255, 255, 255)","borderColor":"rgb(0, 0, 0)","greatLakesColor":"rgb(0, 91, 191)"};stationColors['VACCINE1STPER']={"points":["0","29","31","33","35","37","39","41"],"colors":["rgb(255, 255, 255)","rgb(221, 234, 222)","rgb(187, 212, 189)","rgb(153, 191, 156)","rgb(118, 169, 123)","rgb(84, 148, 90)","rgb(50, 126, 57)","rgb(16, 105, 24)"],"highlightColor":"rgb(255, 255, 255)","borderColor":"rgb(0, 0, 0)","greatLakesColor":"rgb(0, 91, 191)"};stationColors['VACCINE1ST7']={"points":["0","11","101","201","301","401","601","901"],"colors":["rgb(221, 234, 222)","rgb(192, 216, 194)","rgb(162, 197, 165)","rgb(133, 179, 137)","rgb(104, 160, 109)","rgb(75, 142, 81)","rgb(45, 123, 52)","rgb(16, 105, 24)"],"highlightColor":"rgb(255, 255, 255)","borderColor":"rgb(0, 0, 0)","greatLakesColor":"rgb(0, 91, 191)"};stationColors['VACCINE1ST7PER']={"points":["0"],"colors":["rgb(255, 255, 255)"],"highlightColor":"rgb(255, 255, 255)","borderColor":"rgb(0, 0, 0)","greatLakesColor":"rgb(0, 91, 191)"};stationColors['VACCINATED']={"points":["0","3501","5001","6501","8001","10001","14001","20001"],"colors":["rgb(221, 234, 222)","rgb(192, 216, 194)","rgb(162, 197, 165)","rgb(133, 179, 137)","rgb(104, 160, 109)","rgb(75, 142, 81)","rgb(45, 123, 52)","rgb(16, 105, 24)"],"highlightColor":"rgb(255, 255, 255)","borderColor":"rgb(0, 0, 0)","greatLakesColor":"rgb(0, 91, 191)"};stationColors['VACCINATEDPER']={"points":["0","18","20","22","24","26","28","30"],"colors":["rgb(255, 255, 255)","rgb(221, 234, 222)","rgb(187, 212, 189)","rgb(153, 191, 156)","rgb(118, 169, 123)","rgb(84, 148, 90)","rgb(50, 126, 57)","rgb(16, 105, 24)"],"highlightColor":"rgb(255, 255, 255)","borderColor":"rgb(0, 0, 0)","greatLakesColor":"rgb(0, 91, 191)"};stationColors['VACCINATED7']={"points":["0","201","501","1201","2001","3001","4001","5001"],"colors":["rgb(221, 234, 222)","rgb(192, 216, 194)","rgb(162, 197, 165)","rgb(133, 179, 137)","rgb(104, 160, 109)","rgb(75, 142, 81)","rgb(45, 123, 52)","rgb(16, 105, 24)"],"highlightColor":"rgb(255, 255, 255)","borderColor":"rgb(0, 0, 0)","greatLakesColor":"rgb(0, 91, 191)"};stationColors['VACCINATED7PER']={"points":["0"],"colors":["rgb(255, 255, 255)"],"highlightColor":"rgb(255, 255, 255)","borderColor":"rgb(0, 0, 0)","greatLakesColor":"rgb(0, 91, 191)"};stationColors['VACCINEADMIN']={"points":["0","1001","2501","4001","6001","8001","12001","60001"],"colors":["rgb(221, 234, 222)","rgb(192, 216, 194)","rgb(162, 197, 165)","rgb(133, 179, 137)","rgb(104, 160, 109)","rgb(75, 142, 81)","rgb(45, 123, 52)","rgb(16, 105, 24)"],"highlightColor":"rgb(255, 255, 255)","borderColor":"rgb(0, 0, 0)","greatLakesColor":"rgb(0, 91, 191)"};stationColors['VACCINEADMINPER']={"points":["0","11","14","17","20","23","26","29"],"colors":["rgb(221, 234, 222)","rgb(192, 216, 194)","rgb(162, 197, 165)","rgb(133, 179, 137)","rgb(104, 160, 109)","rgb(75, 142, 81)","rgb(45, 123, 52)","rgb(16, 105, 24)"],"highlightColor":"rgb(255, 255, 255)","borderColor":"rgb(0, 0, 0)","greatLakesColor":"rgb(0, 91, 191)"};stationColors['VACCINEADMIN7']={"points":["0","51","201","301","401","501","901","2001"],"colors":["rgb(221, 234, 222)","rgb(192, 216, 194)","rgb(162, 197, 165)","rgb(133, 179, 137)","rgb(104, 160, 109)","rgb(75, 142, 81)","rgb(45, 123, 52)","rgb(16, 105, 24)"],"highlightColor":"rgb(255, 255, 255)","borderColor":"rgb(0, 0, 0)","greatLakesColor":"rgb(0, 91, 191)"};stationColors['VACCINEADMIN7PER']={"points":["0"],"colors":["rgb(255, 255, 255)"],"highlightColor":"rgb(255, 255, 255)","borderColor":"rgb(0, 0, 0)","greatLakesColor":"rgb(0, 91, 191)"};stationColors['WIDTHS']={"highlight":10,"state":2,"county":1};if(!stationColors['WIDTHS']){ stationColors['WIDTHS'] = {'highlight':4, 'state':2, 'county':1}; } var clines = {}; var states_ALL = ['01','02','04','05','06','08','09','10','11','12','13','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','36','37','38','39','40','41','42','44','45','46','47','48','49','50','51','53','54','55','56']; //var loading = ['document']; var loading = []; function loadCounties(c, w){ $.each(c, function(ci, cv){ if(cv=="02"){ cv = "02counties-health"; } if(cv=="15"){ cv = "15counties-health"; } if(cv=="17"){ cv = "17counties-health"; } if(cv=="26"){ cv = "26counties-health"; } if(cv=="29"){ cv = "29counties-health"; } if(cv=="31"){ cv = "31counties-health"; } if(cv=="49"){ cv = "49counties-health"; } loading.push(cv); $.ajax({ type: "GET", url: '../../magisMapdata/counties/'+cv+'.geojson.js', success: function() { removeFromLoading(cv, c, w); }, dataType: "script", cache: true }); }); } function removeFromLoading(v, c, w){ removeFromArray(loading, v); if(loading.length==0 && c.length>1){ getData(c, w); } else if(c.length==1) { getData(c, w); } } function removeFromArray(a, v){ const index = a.indexOf(v); if (index > -1) { a.splice(index, 1); } return a; } var dataLoading = []; function getData(f, w){ f = f.join(); if(w!="i"){ dataLoading.push(f); } $.getJSON("includes/getDigital.php?s="+f, function(out){ if(w!="i"){ dataLoading = removeFromArray(dataLoading,f); } var plotFIPS = []; $.each(out, function(i, v){ if(v['data']){ $.each(v['data'], function(ii, vv){ data[ii] = JSON.parse(vv); }); } if(v['dataVaccine']){ $.each(v['dataVaccine'], function(ii, vv){ dataVaccine[ii] = JSON.parse(vv); }); } if(v['stateData']){ plotFIPS.push(i); if(v['stateData']['data']){ stateData[i] = JSON.parse(v['stateData']['data']); } if(v['stateData']['dataVaccine']){ stateDataVaccine[i] = JSON.parse(v['stateData']['dataVaccine']); } if(v['stateData']['days']){ days[i] = JSON.parse(v['stateData']['days']); } if(v['stateData']['daysVaccine']){ daysVaccine[i] = JSON.parse(v['stateData']['daysVaccine']); } } }); if(w=='l' || w=='i'){ plotGeoJSON(plotFIPS, w); if(w=='i'){ loadUS(); } } else { plotGeoJSON(plotFIPS, w); } }); } function loadGL(){ var style = { weight: stationColors['WIDTHS']['state'], color: 'black', /*borderColor,*/ opacity: 1, fillColor: 'green', fillOpacity: 0 }; $.getJSON( "../../magisMapdata/greatlakes/greatlakes.json", function( gl ) { eachState['99'] = (L.geoJSON(gl, { style: style, pane: mapStatesPane, renderer: mapStatesRenderer, interactive: false, className: 'GL' }).addTo(mapMain)); }); } var cUS; function loadUS(){ var style = { weight: stationColors['WIDTHS']['state'], color: 'black', /*borderColor,*/ opacity: 1, fillColor: 'white', fillOpacity: 0 }; $.ajax({ type: "GET", url: '../../magisMapdata/states/cUS.geojson.js',dataType: "script",cache: true,success: function() { $.each(geojson, function(gkey, gvalue){ var stateFIPS = gvalue.properties.STATE; eachState[stateFIPS] = (L.geoJSON(gvalue, { style: style, pane: mapStatesPane, renderer: mapStatesRenderer, interactive: false, className: 'cUS-'+stateFIPS }).addTo(mapMain)) }); $.ajax({ type: "GET", url: '../../magisMapdata/states/AK.geojson.js',dataType: "script",cache: true,success: function() { $.each(geojson, function(gkey, gvalue){ var stateFIPS = gvalue.properties.STATE; eachState[stateFIPS] = (L.geoJSON(gvalue, { style: style, pane: mapStatesPane, renderer: mapStatesRenderer, interactive: false, className: 'AK-'+stateFIPS }).addTo(mapMain)) }); $.ajax({ type: "GET", url: '../../magisMapdata/states/HI.geojson.js',dataType: "script",cache: true,success: function() { $.each(geojson, function(gkey, gvalue){ var stateFIPS = gvalue.properties.STATE; eachState[stateFIPS] = (L.geoJSON(gvalue, { style: style, pane: mapStatesPane, renderer: mapStatesRenderer, interactive: false, className: 'HI-'+stateFIPS }).addTo(mapMain)) }); loadGL(); loadRest(); }}); }}); }}); } function loadRest(w){ var statesToLoad = []; $.each(statesLL, function(si, sv){ if(si<60 && !clines[si]){ statesToLoad.push(si); } }); loadCounties(statesToLoad, w); /* $.each(statesToLoad, function(i, v){ if(statesToLoad.length-1==i){ loadCounties([v], w); } else { loadCounties([v], null); } });*/ } var mt = {}; var mg = {}; var mz = {}; mt['cUS']=parseFloat(37.7);mg['cUS']=parseFloat(-96);mz['cUS']=parseFloat(5.5);mt['AK']=parseFloat(62.9400);mg['AK']=parseFloat(-155.3933);mz['AK']=parseFloat(5);mt['HI']=parseFloat(20.5723);mg['HI']=parseFloat(-157.4988);mz['HI']=parseFloat(8.677); var mapMain; var mapMainPane; var mapMainRenderer; var regionsmapMain; var mapStatesPane; var mapStatesRenderer; var eachCounty = {}; var eachState = {}; function plotGeoJSON(f, w){ $.each(clines, function(eCi, eCv){ if(f.indexOf(eCi)>-1){ var p, r, m, o; //if(w=="l"){ p = mapMainPane; r = mapMainRenderer; m = mapMain; o = eachCounty; c = "mapMainCounties"; //} else { //p = mapStatePane; //r = mapStateRenderer; //m = mapState; //o = eachStateCounty; //c = "mapStateCounties"; //} if(eCv['features']){ eCv = eCv['features']; } //console.log(o); o = (doPlotGeoJSONcounties(eCv, o, p, r, c, m)); } }); if(w=="i" || dataLoading.length==0){ setTimeout(function(){ updatePage(); if(w=="i"){ updateLabels(); } },1); } } var popup; var scaleX; var scaleY; var offsetX; var offsetY; var latlng; var pageScale; function doPlotGeoJSONcounties(g, o, p, r, c, m){ $.each(g, function(gkey, gvalue){ var stateFIPS = gvalue.properties.STATE; var countyFIPS = gvalue.properties.COUNTY; if(!o[stateFIPS+countyFIPS]){ var style = { weight: stationColors['WIDTHS']['county'], color: 'black', /*borderColor,*/ opacity: 1, fillColor: 'white', fillOpacity: 1 }; o[stateFIPS+countyFIPS] = (L.geoJSON(gvalue, { style: style, pane: p, renderer: r, interactive: true, className: c + ' ' + c + stateFIPS+countyFIPS }).addTo(m)); $(o[stateFIPS+countyFIPS]).attr('data-name', gvalue.properties.NAME); if(gvalue.properties.LSAD){ $(o[stateFIPS+countyFIPS]).attr('data-lsad', gvalue.properties.LSAD); } else { $(o[stateFIPS+countyFIPS]).attr('data-lsad', 'unk'); } o[stateFIPS+countyFIPS].on("click", function(e) { clickedCounty = stateFIPS+countyFIPS; if(clickedState.indexOf(clickedCounty)==-1 && clickedState.indexOf(stateFIPS)==-1){ var z = statesLL[stateFIPS].split(','); labelZoomLevel = z[2].trim(); $("#mapSelector" ).val(stateFIPS); showDataForSelector(); updateLabels(); } var newX = (((e.originalEvent.clientX+window.pageXOffset)*scaleX)-(offsetX*pageScale))/pageScale; var newY = (((e.originalEvent.clientY+window.pageYOffset)*scaleY)-(offsetY*pageScale))/pageScale; var p = L.point([ (newX), (newY) ]); latlng = mapMain.containerPointToLatLng(p); showPopup(); //popup.isOpen(); //mapMain.closePopup(); /* if(data[stateFIPS+countyFIPS]){ const n = $(o[stateFIPS+countyFIPS]).attr('data-name') + ' ' + $(o[stateFIPS+countyFIPS]).attr('data-lsad'); showData(n, data[stateFIPS+countyFIPS], dataVaccine[stateFIPS+countyFIPS]); updateClickedFIPS([stateFIPS+countyFIPS]); updateElements(); } if(logging==true){ console.log("FIPS: "+stateFIPS+countyFIPS); } */ }).on("mousemove", function(e){ //var p = L.point([e.originalEvent.clientX,e.originalEvent.clientY]) //var latlng = mymap.containerPointToLatLng(p); //$("#covidMAPhover").css({top: p.y ,left: p.x}).show(); }); } else { } }); return o; } //(d['POSITIVE'] / population) * getPer('POSITIVEPER') function showPopup(){ var subTitle = getSubtitle(); var shown = getShown().replace("covid", "").replace("7", "_7DAYAVG").replace("14", "_14DAYAVG"); var per = getShownPer()+'PER'; var population = 0; if(shown.indexOf('VACC')==-1){ population = data[clickedCounty]['POPULATION']; } else { population = dataVaccine[clickedCounty]['POPULATION']; } var txt = "
" + substitute($(eachCounty[clickedCounty]).attr('data-name') + ' ' + $(eachCounty[clickedCounty]).attr('data-lsad')) + "
" + titles[dataType]['category'][category] + "
"+ "
" + (titles[dataType]['subTitle'][subTitle].replace('|PER|', getPer(per).toLocaleString())).replace("
", " ") + "
"+ "
"; if(shown.indexOf('VACC')==-1){ if(shown.indexOf('PER')==-1){ if(typeof data[clickedCounty][shown] !== "undefined"){ txt += Math.round(data[clickedCounty][shown]).toLocaleString(); } else { txt += "No Data"; } } else { shown = shown.replace("PER", ""); if(data[clickedCounty][shown]){ txt += Math.round((data[clickedCounty][shown] / population) * getPer(per)).toLocaleString(); } else { txt += "No Data"; } } } else { if(shown.indexOf('PER')==-1){ if(dataVaccine[clickedCounty][shown]){ txt += Math.round(dataVaccine[clickedCounty][shown]).toLocaleString(); } else { txt += "No Data"; } } else { shown = shown.replace("PER", ""); if(dataVaccine[clickedCounty][shown]){ //txt += (Math.round((dataVaccine[clickedCounty][shown] / population) * getPer(per)).toLocaleString())+"%"; txt += ((dataVaccine[clickedCounty][shown] / population) * getPer(per)).toFixed(0).toLocaleString()+"%"; } else { txt += "No Data"; } } } txt += "
" var epoch = 0; if(shown.indexOf('VACC')==-1){ epoch = data[clickedCounty]['DATE']; } else { epoch = dataVaccine[clickedCounty]['DATE']; } var date = new Date(epoch); var datetxt = (date.getUTCMonth() + 1) + '-' + date.getUTCDate() + '-' + date.getUTCFullYear(); txt += "
Data Updated " + datetxt + "
"; popup.setLatLng(latlng).setContent(txt).openOn(mapMain); } function doPlotGeoJSONstates(g, o, p, r, c, m){ $.each(g, function(gkey, gvalue){ var stateFIPS = gvalue.properties.STATE; if(!o[stateFIPS]){ gvalue.properties.style = { weight: stationColors['WIDTHS']['state'], color: 'black', /*borderColor,*/ opacity: 0, fillColor: 'black', fillOpacity: 0 }; o[stateFIPS] = (L.geoJSON(gvalue, { style: gvalue.properties.style, pane: p, renderer: r, interactive: true, className: c + ' ' + c + stateFIPS }).addTo(m)); o[stateFIPS].on("click", function() { if(logging!=true){ //console.log("FIPS: "+stateFIPS, "zooming", zooming); } /* zoomState([stateFIPS]); updateElements(); */ }); } else { } }); return o; } function selectorChange(){ labelsShown = ""; updateLabelZoomLevel(); moveView(); showDataForSelector(); updateLabels(); mapMain.closePopup(); } function updateLabelZoomLevel(){ var selected = $("#mapSelector" ).val(); if(statesLL[selected]){ var z = statesLL[selected].split(','); labelZoomLevel = z[2].trim(); } else { labelZoomLevel = local[selected]['llz'][2]; } } var days7 = true; var days14 = true; function checkVaccDays(){ if(category.indexOf("VACC")!=-1){ var selected = $("#mapSelector" ).val(); if(local[selected]){ days7 = true; days14 = true; $.each(clickedState, function(i,v){ selected = v.substring(0, 2); if(daysVaccine[selected][category] < 8){ days7 = false; days14 = false; return false; } else if(daysVaccine[selected][category] < 15){ days14 = false; } }); } else { if(daysVaccine[selected][category] < 8){ days7 = false; days14 = false; } else if(daysVaccine[selected][category] < 15){ days7 = true; days14 = false; } else { days7 = true; days14 = true; } } } else { days7 = true; days14 = true; } if(category.indexOf("VACC")!=-1){ if(days7 == true){ showChoices('.covidDataRangeText7Day', '.covid7DAYAVG'); } else { hideChoices('.covidDataRangeText7Day', '.covid7DAYAVG'); if(dataRange!='CUMULATIVE'){ covidSelectorDataRange('CUMULATIVE'); } } if(days14 == true){ showChoices('.covidDataRangeText14Day', '.covid14DAYAVG'); } else { hideChoices('.covidDataRangeText14Day', '.covid14DAYAVG'); if(days7==true){ if(dataRange!='CUMULATIVE' && dataRange!='7DAYAVG'){ covidSelectorDataRange('7DAYAVG'); } } else { if(dataRange!='CUMULATIVE'){ covidSelectorDataRange('CUMULATIVE'); } } } } } function moveView(i){ var selected = $("#mapSelector" ).val(); if(local[selected]){ var cllz = (local[selected]['llz']); var t = cllz[0]; var g = cllz[1]; var z = cllz[2]; } else { var cllz = statesLL[selected].split(","); var t = parseFloat(cllz[0].trim()); var g = parseFloat(cllz[1].trim()); var z = parseFloat(cllz[2].trim()); } if(i){ mapMain.setView([t, g], z); } else { mapMain.flyTo([t, g], z, {animate:true,duration:1,easeLinearity: .25}); } } function updateClickedFIPS(f){ $.each(clickedFIPS, function(cFi, cFv){ if(eachState[cFv]){ eachState[cFv].setStyle({weight: stationColors['WIDTHS']['county'], color: getBorder()}); } if(eachCounty[cFv]){ eachCounty[cFv].setStyle({weight: stationColors['WIDTHS']['county'], color: getBorder()}); } }); $.each(f, function(fi, fv){ if(eachState[fv]){ var o = eachState; } else { var o = eachCounty; } if(o[fv]){ o[fv].setStyle({opacity: 1, weight: stationColors['WIDTHS']['highlight'], color: getHighlight()}); o[fv].bringToFront(); if(checkDMA==true){ o[fv].setStyle({fillColor: getHighlight()}); } } }); clickedFIPS = f; } function showDataForSelector(){ var selected = $("#mapSelector" ).val(); if(isNaN(selected.substring(0,1))==true){ localData(selected); } else { var d,dv; if(stateData[selected]){ d = stateData[selected]; } if(stateDataVaccine[selected]){ dv = stateDataVaccine[selected]; } if(d){ clickedState = selected; showData("", d, dv); updateClickedFIPS([selected]); } } } var clickedState = []; var clickedCounty = "0"; function localData(el){ e = local[el]; var f = []; $.each(e['fips'], function(fi, fv){ if(f.indexOf(fv.substring(0,2))==-1){ f.push(fv.substring(0,2)); } }); clickedState = e['fips']; //updateClickableStates(f); if(stateData[f[0]]){ var keys = ["POPULATION", "POSITIVE", "POSITIVE_NEW", "POSITIVE_14DAYTOTAL", "POSITIVE_14DAYAVG", "POSITIVE_7DAYTOTAL", "POSITIVE_7DAYAVG", "DEATHS", "DEATHS_NEW", "DEATHS_14DAYTOTAL", "DEATHS_14DAYAVG", "DEATHS_7DAYTOTAL", "DEATHS_7DAYAVG", "NEGATIVE", "NEGATIVE_NEW", "NEGATIVE_14DAYTOTAL", "NEGATIVE_14DAYAVG", "NEGATIVE_7DAYTOTAL", "NEGATIVE_7DAYAVG"]; var localData = {}; $.each(keys, function(ki, kv){ localData[kv] = 0; }); $.each(e['fips'], function(fi, fv){ $.each(keys, function(ki, kv){ if(kv.indexOf('AVG')==-1){ if(data[fv]){ localData[kv] += +parseFloat(data[fv][kv]); } } }); }); $.each(keys, function(ki, kv){ if(kv.indexOf('AVG')>-1){ var days = parseInt(kv.substring(kv.indexOf("_")+1).replace("DAYAVG", "")); localData[kv] = Math.round(localData[kv.replace('AVG', 'TOTAL')]/days); } }); var keys = ["POPULATION", "VACCINE1ST", "VACCINE1ST_NEW", "VACCINE1ST_14DAYTOTAL", "VACCINE1ST_14DAYAVG", "VACCINE1ST_7DAYTOTAL", "VACCINE1ST_7DAYAVG", "VACCINATED", "VACCINATED_NEW", "VACCINATED_14DAYTOTAL", "VACCINATED_14DAYAVG", "VACCINATED_7DAYTOTAL", "VACCINATED_7DAYAVG", "VACCINEADMIN", "VACCINEADMIN_NEW", "VACCINEADMIN_14DAYTOTAL", "VACCINEADMIN_14DAYAVG", "VACCINEADMIN_7DAYTOTAL", "VACCINEADMIN_7DAYAVG"]; var localDataVaccine = {}; $.each(keys, function(ki, kv){ }); $.each(e['fips'], function(fi, fv){ $.each(keys, function(ki, kv){ if(kv.indexOf('AVG')==-1){ if(dataVaccine[fv]){ if(dataVaccine[fv][kv]){ if(!localDataVaccine[kv]){ localDataVaccine[kv] = 0; } localDataVaccine[kv] += +parseFloat(dataVaccine[fv][kv]); } } } }); }); $.each(keys, function(ki, kv){ if(kv.indexOf('AVG')>-1){ var days = parseInt(kv.substring(kv.indexOf("_")+1).replace("DAYAVG", "")); localDataVaccine[kv] = Math.round(localDataVaccine[kv.replace('AVG', 'TOTAL')]/days); } }); showData("", localData, localDataVaccine); updateClickedFIPS(e['fips']); /* $('.allLabels').css('opacity', 0); clearLabels(); setTimeout(function(){ showLabels('local'+el); }, 1000); */ } } var deathsGood = false; var vaccine1stGood = false; var vaccinatedGood = false; var vaccineAdminGood = false; var geography = "unknown"; function showData(n, d, dv){ var out; var population = d['POPULATION']; //console.log(out); $('.covidGEOGRAPHYdata').html(substitute(n)); population = d['POPULATION']; $('.covidPOSITIVEdata').html((Math.round(d['POSITIVE'])).toLocaleString()); $('.covidPOSITIVENEWdata').html((Math.round(d['POSITIVE_NEW'])).toLocaleString()); $('.covidPOSITIVE7DAYAVGdata').html((Math.round(d['POSITIVE_7DAYAVG'])).toLocaleString()); $('.covidPOSITIVE14DAYAVGdata').html((Math.round(d['POSITIVE_14DAYAVG'])).toLocaleString()); $('.covidPOSITIVEPERdata').html((Math.round((d['POSITIVE'] / population) * getPer('POSITIVEPER'))).toLocaleString()); $('.covidPOSITIVENEWPERdata').html((Math.round((d['POSITIVE_NEW'] / population) * getPer('POSITIVE7PER'))).toLocaleString()); $('.covidPOSITIVE7DAYAVGPERdata').html((Math.round((d['POSITIVE_7DAYAVG'] / population) * getPer('POSITIVE7PER'))).toLocaleString()); $('.covidPOSITIVE14DAYAVGPERdata').html((Math.round((d['POSITIVE_14DAYAVG'] / population) * getPer('POSITIVE7PER'))).toLocaleString()); if(typeof d['DEATHS'] !== "undefined"){ deathsGood = true; $('.covidDEATHSdata').html((Math.round(d['DEATHS'])).toLocaleString()); $('.covidDEATHSNEWdata').html((Math.round(d['DEATHS_NEW'])).toLocaleString()); $('.covidDEATHS7DAYAVGdata').html((Math.round(d['DEATHS_7DAYAVG'])).toLocaleString()); $('.covidDEATHS14DAYAVGdata').html((Math.round(d['DEATHS_14DAYAVG'])).toLocaleString()); $('.covidDEATHSPERdata').html((Math.round((d['DEATHS'] / population) * getPer('DEATHSPER'))).toLocaleString()); $('.covidDEATHSNEWPERdata').html((Math.round((d['DEATHS_NEW'] / population) * getPer('DEATHS7PER'))).toLocaleString()); $('.covidDEATHS7DAYAVGPERdata').html((Math.round((d['DEATHS_7DAYAVG'] / population) * getPer('DEATHS7PER'))).toLocaleString()); $('.covidDEATHS14DAYAVGPERdata').html((Math.round((d['DEATHS_14DAYAVG'] / population) * getPer('DEATHS7PER'))).toLocaleString()); } else { deathsGood = false; } if(dv){ if(typeof dv['VACCINE1ST'] !== 'undefined' && $('.covidVACCINE1STdata').length>0){ vaccine1stGood = true; } else { vaccine1stGood = false; } if(typeof dv['VACCINATED'] !== 'undefined' && $('.covidVACCINATEDdata').length>0){ vaccinatedGood = true; } else { vaccinatedGood = false; } if(typeof dv['VACCINEADMIN'] !== 'undefined' && $('.covidVACCINEADMINdata').length>0){ if(isPer!=false && category.indexOf("VACCIN")>-1 && vaccine1stGood==false & vaccinatedGood==false){ covidSelectorMetric(false); } vaccineAdminGood = true; } else { vaccineAdminGood = false; } if(geography=="national" && dv['POPULATION-VACCINE1ST']){ population = dv['POPULATION-VACCINE1ST']; } else { population = dv['POPULATION']; } $('.covidVACCINE1STdata').html(exists(dv['VACCINE1ST'])); $('.covidVACCINE1STNEWdata').html(exists(dv['VACCINE1ST_NEW'])); $('.covidVACCINE1ST7DAYAVGdata').html(exists(dv['VACCINE1ST_7DAYAVG'])); $('.covidVACCINE1ST14DAYAVGdata').html(exists(dv['VACCINE1ST_14DAYAVG'])); $('.covidVACCINE1STPERdata').html(exists(dv['VACCINE1ST'], population, 100, "%")); $('.covidVACCINE1STNEWPERdata').html(exists(dv['VACCINE1ST_NEW'], population, 100, "%")); $('.covidVACCINE1ST7DAYAVGPERdata').html(exists(dv['VACCINE1ST_7DAYAVG'], population, 100, "%")); $('.covidVACCINE1ST14DAYAVGPERdata').html(exists(dv['VACCINE1ST_14DAYAVG'], population, 100, "%")); if(geography=="national" && dv['POPULATION-VACCINATED']){ population = dv['POPULATION-VACCINATED']; } else { population = dv['POPULATION']; } $('.covidVACCINATEDdata').html(exists(dv['VACCINATED'])); $('.covidVACCINATEDNEWdata').html(exists(dv['VACCINATED_NEW'])); $('.covidVACCINATED7DAYAVGdata').html(exists(dv['VACCINATED_7DAYAVG'])); $('.covidVACCINATED14DAYAVGdata').html(exists(dv['VACCINATED_14DAYAVG'])); $('.covidVACCINATEDPERdata').html(exists(dv['VACCINATED'], population, 100, "%")); $('.covidVACCINATEDNEWPERdata').html(exists(dv['VACCINATED_NEW'], population, 100, "%")); $('.covidVACCINATED7DAYAVGPERdata').html(exists(dv['VACCINATED_7DAYAVG'], population, 100, "%")); $('.covidVACCINATED14DAYAVGPERdata').html(exists(dv['VACCINATED_14DAYAVG'], population, 100, "%")); if(geography=="national" && dv['POPULATION-VACCINEADMIN']){ population = dv['POPULATION-VACCINEADMIN']; } else { population = dv['POPULATION']; } $('.covidVACCINEADMINdata').html(exists(dv['VACCINEADMIN'])); $('.covidVACCINEADMINNEWdata').html(exists(dv['VACCINEADMIN_NEW'])); $('.covidVACCINEADMIN7DAYAVGdata').html(exists(dv['VACCINEADMIN_7DAYAVG'])); $('.covidVACCINEADMIN14DAYAVGdata').html(exists(dv['VACCINEADMIN_14DAYAVG'])); $('.covidVACCINEADMINPERdata').html(exists(dv['VACCINEADMIN'], population, 100, "%")); $('.covidVACCINEADMINNEWPERdata').html(exists(dv['VACCINEADMIN_NEW'], population, 100, "%")); $('.covidVACCINEADMIN7DAYAVGPERdata').html(exists(dv['VACCINEADMIN_7DAYAVG'], population, 100, "%")); $('.covidVACCINEADMIN14DAYAVGPERdata').html(exists(dv['VACCINEADMIN_14DAYAVG'], population, 100, "%")); } else { vaccine1stGood = false; vaccinatedGood = false; vaccineAdminGood = false; } if(category.indexOf('DEATHS')>-1 && deathsGood==false){ covidSelectorCategory('POSITIVE'); } if(vaccine1stGood == false && vaccinatedGood == false && vaccineAdminGood == false){ if(category.indexOf('VACCIN')>-1){ covidSelectorCategory('POSITIVE'); } } else if(category=="VACCINE1ST" && vaccine1stGood == false){ if(vaccinatedGood == true && $('.covidVACCINEATEDdata').length>0){ covidSelectorCategory('VACCINATED'); } else if(vaccineAdminGood == true && $('.covidVACCINEADMINdata').length>0){ covidSelectorCategory('VACCINEADMIN'); } else { covidSelectorCategory('POSITIVE'); } } else if(category=="VACCINATED" && vaccinatedGood == false){ if(vaccine1stGood == true && $('.covidVACCINE1STdata').length>0){ covidSelectorCategory('VACCINE1ST'); } else if(vaccineAdminGood == true && $('.covidVACCINEADMINdata').length>0){ covidSelectorCategory('VACCINEADMIN'); } else { covidSelectorCategory('POSITIVE'); } } else if(category=="VACCINEADMIN" && vaccineAdminGood == false){ if(vaccine1stGood == true && $('.covidVACCINE1STdata').length>0){ covidSelectorCategory('VACCINE1ST'); } else if(vaccinatedGood == true && $('.covidVACCINATEDdata').length>0){ covidSelectorCategory('VACCINATED'); } else { covidSelectorCategory('POSITIVE'); } } if(category.indexOf('DEATHS')>-1 && deathsGood == false){ $('.covidDATA,.covidTRENDcategories').each(function(i,v){ var cls = $(this).attr('class'); if(cls.toUpperCase().indexOf('DEATHS') > -1){ $(this).css('opacity', 0); } }); } if(vaccine1stGood == false){ $('.covidDATA,.covidTRENDcategories').each(function(i,v){ var cls = $(this).attr('class'); if(cls.toUpperCase().indexOf('VACCINE1ST') > -1){ $(this).css('opacity', 0); } }); } if(vaccinatedGood == false){ $('.covidDATA,.covidTRENDcategories').each(function(i,v){ var cls = $(this).attr('class'); if(cls.toUpperCase().indexOf('VACCINATED') > -1){ $(this).css('opacity', 0); } }); } if(vaccineAdminGood == false){ $('.covidDATA,.covidTRENDcategories').each(function(i,v){ var cls = $(this).attr('class'); if(cls.toUpperCase().indexOf('VACCINEADMIN') > -1){ $(this).css('opacity', 0); } }); } updateChoices(); } function exists(e, p, m, a){ if(typeof e != 'undefined'){ if(p && m && a){ return (Math.round((e / p) * m)).toLocaleString()+a; } else { return (Math.round(e)).toLocaleString(); } } else { return noData; } } var zooming = false; function zoomState(f){ if(zooming == false){ zooming = true; geography = "state"; homeState = f[0]; updateClickableStates(f); if(stateData[f[0]]){ showData(stateData[f[0]]["state"], stateData[f[0]], stateDataVaccine[f[0]]); updateClickedFIPS([f[0]]); } if(f[0]!='02' && f[0]!='15'){ var zoomCoords = statesLL[f[0]].split(","); mapcUS.flyToCSS([zoomCoords[0],zoomCoords[1]],parseFloat(zoomCoords[2].trim()),{animate:true,duration:1,ease: 'ease-in-out'}); $('#AK').removeClass('AKon').addClass('AKoff'); $('#HI').removeClass('HIon').addClass('HIoff'); } else if(f[0]=='02'){ hideElements('#cUS', true); $('#AK').removeClass('AKon').addClass('AKfull'); $('#HI').removeClass('HIon').addClass('HIoff'); setTimeout(function(){zooming = false;}, 1000); } else if(f[0]=='15'){ hideElements('#cUS', true); $('#AK').removeClass('AKon').addClass('AKoff'); $('#HI').removeClass('HIon').addClass('HIfull'); setTimeout(function(){zooming = false;}, 1000); } $('.allLabels').css('opacity', 0); clearLabels(); setTimeout(function(){ showLabels('state'+f[0]); }, 1000); hideElements('#small', true); hideElements('.navState', true); showElements('.navNational'); showElements('.navLocal'); } } function clearLabels(){ $('.allLabels').css('opacity', 0); setTimeout(function(){ $('.allLabels').parent().remove(); },250+1); } var localCurrent = ""; function getLocal(e){ var tmp; $.each($(e).attr('class').split(' '), function(ci, cv){ if(cv.indexOf('mapSelectorMap') > -1 && cv.replace('mapSelectorMap', '').length > 0){ tmp = cv.replace('mapSelectorMap', ''); return false; } }); if(local[tmp]){ zoomLocal(tmp); } } function zoomLocal(el){ if(zooming == false){ e = local[el]; zooming = true; geography = "local"; const f = []; $.each(e['fips'], function(fi, fv){ if(f.indexOf(fv.substring(0,2))==-1){ f.push(fv.substring(0,2)); } }); homeState = f[0]; updateClickableStates(f); if(stateData[f[0]]){ var keys = ["POPULATION", "POSITIVE", "POSITIVE_NEW", "POSITIVE_14DAYTOTAL", "POSITIVE_14DAYAVG", "POSITIVE_7DAYTOTAL", "POSITIVE_7DAYAVG", "DEATHS", "DEATHS_NEW", "DEATHS_14DAYTOTAL", "DEATHS_14DAYAVG", "DEATHS_7DAYTOTAL", "DEATHS_7DAYAVG", "NEGATIVE", "NEGATIVE_NEW", "NEGATIVE_14DAYTOTAL", "NEGATIVE_14DAYAVG", "NEGATIVE_7DAYTOTAL", "NEGATIVE_7DAYAVG"]; var localData = {}; $.each(keys, function(ki, kv){ localData[kv] = 0; }); $.each(e['fips'], function(fi, fv){ $.each(keys, function(ki, kv){ if(kv.indexOf('AVG')==-1){ if(data[fv]){ localData[kv] += +parseFloat(data[fv][kv]); } } }); }); $.each(keys, function(ki, kv){ if(kv.indexOf('AVG')>-1){ var days = parseInt(kv.substring(kv.indexOf("_")+1).replace("DAYAVG", "")); localData[kv] = Math.round(localData[kv.replace('AVG', 'TOTAL')]/days); } }); var keys = ["POPULATION", "VACCINE1ST", "VACCINE1ST_NEW", "VACCINE1ST_14DAYTOTAL", "VACCINE1ST_14DAYAVG", "VACCINE1ST_7DAYTOTAL", "VACCINE1ST_7DAYAVG", "VACCINATED", "VACCINATED_NEW", "VACCINATED_14DAYTOTAL", "VACCINATED_14DAYAVG", "VACCINATED_7DAYTOTAL", "VACCINATED_7DAYAVG", "VACCINEADMIN", "VACCINEADMIN_NEW", "VACCINEADMIN_14DAYTOTAL", "VACCINEADMIN_14DAYAVG", "VACCINEADMIN_7DAYTOTAL", "VACCINEADMIN_7DAYAVG"]; var localDataVaccine = {}; $.each(keys, function(ki, kv){ }); $.each(e['fips'], function(fi, fv){ $.each(keys, function(ki, kv){ if(kv.indexOf('AVG')==-1){ if(dataVaccine[fv]){ if(dataVaccine[fv][kv]){ if(!localDataVaccine[kv]){ localDataVaccine[kv] = 0; } localDataVaccine[kv] += +parseFloat(dataVaccine[fv][kv]); } } } }); }); $.each(keys, function(ki, kv){ if(kv.indexOf('AVG')>-1){ var days = parseInt(kv.substring(kv.indexOf("_")+1).replace("DAYAVG", "")); localDataVaccine[kv] = Math.round(localDataVaccine[kv.replace('AVG', 'TOTAL')]/days); } }); showData(e['name'], localData, localDataVaccine); updateClickedFIPS(e['fips']); } if(f[0]!='02' && f[0]!='15'){ var zoomCoords = e['llz']; showElements('#cUS'); mapcUS.flyToCSS([zoomCoords[0],zoomCoords[1]],zoomCoords[2],{animate:true,duration:1,ease: 'ease-in-out'}); $('#AK').removeClass('AKon').removeClass('AKfull').addClass('AKoff'); $('#HI').removeClass('HIon').removeClass('HIfull').addClass('HIoff'); } else if(f[0]=='02'){ hideElements('#cUS', true); $('#AK').removeClass('AKon').removeClass('AKoff').addClass('AKfull'); $('#HI').removeClass('HIon').removeClass('HIfull').addClass('HIoff'); } else if(f[0]=='15'){ hideElements('#cUS', true); $('#AK').removeClass('AKon').removeClass('AKfull').addClass('AKoff'); $('#HI').removeClass('HIon').removeClass('HIoff').addClass('HIfull'); } clearLabels(); setTimeout(function(){ showLabels('local'+el); }, 1000); hideElements('#small', true); } } var labelsShown = ""; var labelZoomLevel = 0; function zoomEnd(){ var newZoomLevel = mapMain.getZoom(); if((labelZoomLevel-newZoomLevel)>.5){ clearLabels(); } else { if($('.allLabels').length==0 && labelsShown!=""){ showLabels(labelsShown); } } } function getCategory(){ if(startItem.indexOf("POSITIVE")> -1){ category = "POSITIVE"; } else if(startItem.indexOf("DEATHS")> -1){ category = "DEATHS"; } else if(startItem.indexOf("VACCINE1ST")> -1){ category = "VACCINE1ST"; } else if(startItem.indexOf("VACCINATED")> -1){ category = "VACCINATED"; } else if(startItem.indexOf("VACCINEADMIN")> -1){ category = "VACCINEADMIN"; } } function getDataRange(){ if(startItem.indexOf("7")> -1){ dataRange = "7DAYAVG"; } else if(startItem.indexOf("14")> -1){ dataRange = "14DAYAVG"; } else if(startItem.indexOf("NEW")> -1){ dataRange = "NEW"; } else { dataRange = "CUMULATIVE"; } } function getPerStatus(){ if(startItem.indexOf("PER")> -1){ isPer = true; } else { isPer = false; } } function getColorItem(){ currentColor = ""; if(category=="POSITIVE"){ currentColor += "POSITIVE"; } else if(category=="DEATHS"){ currentColor += "DEATHS"; } else if(category=="VACCINE1ST"){ currentColor += "VACCINE1ST"; } else if(category=="VACCINATED"){ currentColor += "VACCINATED"; } else if(category=="VACCINEADMIN"){ currentColor += "VACCINEADMIN"; } if(dataRange=="7DAYAVG"){ currentColor += "7"; } else if(dataRange=="14DAYAVG"){ currentColor += "7"; } else if(dataRange=="NEW"){ currentColor += "7"; } if(isPer==true){ currentColor += "PER"; } } function getCurrentItem(){ var currentItem = category; if(dataRange!="CUMULATIVE"){ currentItem += "_"+dataRange; } if(isPer==true){ currentItem += "PER"; } return currentItem; } function updatePage(){ getColorItem(); updateElements(); colorMap(); } function colorMap(){ var currentItem = getCurrentItem(); var statesNotUsed = states_ALL.map((x) => x); var rgb; rgb = (getHighlight()).replace("rgb(", "").replace(")", "").split(','); updateColorFromBlack('.covidHighlight', rgb); rgb = (getCasesColor()).replace("rgb(", "").replace(")", "").split(','); updateColorFromBlack('.covidCasesColor', rgb); rgb = (getDeathsColor()).replace("rgb(", "").replace(")", "").split(','); updateColorFromBlack('.covidDeathsColor', rgb); rgb = (getVaccine1stColor()).replace("rgb(", "").replace(")", "").split(','); updateColorFromBlack('.covidVaccine1stColor', rgb); rgb = (getVaccinatedColor()).replace("rgb(", "").replace(")", "").split(','); updateColorFromBlack('.covidVaccinatedColor', rgb); rgb = (getVaccineAdminColor()).replace("rgb(", "").replace(")", "").split(','); updateColorFromBlack('.covidVaccineAdminColor', rgb); var mapData = []; if(category=="POSITIVE" || category=="DEATHS"){ mapData = data; } else if(category=="VACCINE1ST" || category=="VACCINATED" || category=="VACCINEADMIN"){ mapData = dataVaccine; } var usedCounties = []; $.each(mapData, function(di, dv){ var countyID = dv['FIPS'].toString(); if(statesNotUsed.indexOf(countyID.substring(0, 2))!=-1 && dv[category]){ removeFromArray(statesNotUsed, countyID.substr(0, 2)); } if(eachCounty[countyID]){ if(currentItem.indexOf('PER')>-1){ var n = (dv[currentItem.replace('PER', '')]/getPop(dv))*getPer(currentColor); } else { var n = dv[currentItem]; } // Set County style var countyStyle = { fillColor: getColor(Math.round(n)), opacity: 1, fillOpacity: 1 }; if(category=="VACCINE1ST" && dataRange=="7DAYAVG" && daysVaccine[countyID.substring(0, 2)]['VACCINE1ST']<8){ countyStyle['fillColor'] = 'rgb(255,255,255)'; } else if(category=="VACCINE1ST" && dataRange=="14DAYAVG" && daysVaccine[countyID.substring(0, 2)]['VACCINE1ST']<15){ countyStyle['fillColor'] = 'rgb(255,255,255)'; } else if(category=="VACCINATED" && dataRange=="7DAYAVG" && daysVaccine[countyID.substring(0, 2)]['VACCINATED']<8){ countyStyle['fillColor'] = 'rgb(255,255,255)'; } else if(category=="VACCINATED" && dataRange=="14DAYAVG" && daysVaccine[countyID.substring(0, 2)]['VACCINATED']<15){ countyStyle['fillColor'] = 'rgb(255,255,255)'; } else if(category=="VACCINEADMIN" && dataRange=="7DAYAVG" && daysVaccine[countyID.substring(0, 2)]['VACCINEADMIN']<8){ countyStyle['fillColor'] = 'rgb(255,255,255)'; } else if(category=="VACCINEADMIN" && dataRange=="14DAYAVG" && daysVaccine[countyID.substring(0, 2)]['VACCINEADMIN']<15){ countyStyle['fillColor'] = 'rgb(255,255,255)'; } eachCounty[countyID].setStyle(countyStyle); usedCounties.push(countyID); } }); //if(usedCounties.length != Object.keys(eachCounty).length){ //console.log("EXTRA"); //} $.each(eachCounty, function(ci, cv){ if(usedCounties.indexOf(ci)==-1){ // Set County style for missing data counties var countyStyle = { fillColor: 'rgb(255,255,255)' }; eachCounty[ci].setStyle(countyStyle); } if(clickedFIPS.indexOf(ci)==-1){ eachCounty[ci].setStyle({weight: stationColors['WIDTHS']['county'], color: getBorder()}); } else { eachCounty[ci].setStyle({weight: stationColors['WIDTHS']['highlight'], color: getHighlight()}); } }); $.each(eachState, function(si, sv){ var fO = 0; if(geography=="state" || geography=="local"){ if(clickedState.indexOf(si)==-1){ fO = 0.6; } } if(statesNotUsed.indexOf(si)!=-1){ fO = 0.6; } if(si=='99'){ eachState[si].setStyle({opacity: 1, fillColor: getGreatLakes(), fillOpacity: 1, weight: stationColors['WIDTHS']['state'], color: getBorder()}); } else if(clickedFIPS.indexOf(si)==-1){ eachState[si].setStyle({opacity: 1, fillOpacity: fO, weight: stationColors['WIDTHS']['state'], color: getBorder()}); } else { eachState[si].setStyle({opacity: 1, fillOpacity: fO, weight: stationColors['WIDTHS']['highlight'], color: getHighlight()}); } }); showDataForSelector(); } function updateColorFromBlack(e, rgb){ var color, solver, result, prev; color = new Color(rgb[0], rgb[1], rgb[2]); solver = new Solver(color); result = solver.solve()['filter']; if($(e)[0]){ if($(e)[0].getAttribute('data-rgb')!=rgb){ $(e).css('filter', result).attr('data-rgb', rgb); } } } function getPer(c){ if(stationColors[c]){ if(stationColors[c]['per']){ return parseInt(stationColors[c]['per']); } else { return 100; } } else { return 100; } } function getBorder(){ if(stationColors[currentColor]){ return stationColors[currentColor]['borderColor']; } else { return "rgb(255,255,255)"; } } function getGreatLakes(){ if(stationColors[currentColor]){ if(stationColors[currentColor]['greatLakesColor']){ return stationColors[currentColor]['greatLakesColor']; } else { return "rgb(0,255,255)"; } } else { return "rgb(255,255,255)"; } } function getHighlight(){ if(stationColors[currentColor]){ return stationColors[currentColor]['highlightColor']; } else { return "rgb(255,255,255)"; } } function getCasesColor(){ const c = stationColors[currentColor.replace("DEATHS", "POSITIVE").replace("NEGATIVE", "POSITIVE").replace("VACCINE1ST", "POSITIVE").replace("VACCINATED", "POSITIVE").replace("VACCINEADMIN", "POSITIVE")]['colors']; return c[c.length-1]; } function getDeathsColor(){ const c = stationColors[currentColor.replace("POSITIVE", "DEATHS").replace("NEGATIVE", "DEATHS").replace("VACCINE1ST", "DEATHS").replace("VACCINATED", "DEATHS").replace("VACCINEADMIN", "DEATHS")]['colors']; return c[c.length-1]; } function getVaccine1stColor(){ var tmpColor = currentColor.replace("POSITIVE", "VACCINE1ST").replace("DEATHS", "VACCINE1ST").replace("NEGATIVE", "VACCINE1ST").replace("VACCINATED", "VACCINE1ST").replace("VACCINEADMIN", "VACCINE1ST"); if(stationColors[tmpColor]){ const c = stationColors[tmpColor]['colors']; return c[c.length-1]; } else { return "rgb(255,255,255)"; } } function getVaccinatedColor(){ var tmpColor = currentColor.replace("POSITIVE", "VACCINATED").replace("DEATHS", "VACCINATED").replace("NEGATIVE", "VACCINATED").replace("VACCINE1ST", "VACCINATED").replace("VACCINEADMIN", "VACCINATED"); if(stationColors[tmpColor]){ const c = stationColors[tmpColor]['colors']; return c[c.length-1]; } else { return "rgb(255,255,255)"; } } function getVaccineAdminColor(){ var tmpColor = currentColor.replace("POSITIVE", "VACCINEADMIN").replace("DEATHS", "VACCINEADMIN").replace("NEGATIVE", "VACCINEADMIN").replace("VACCINE1ST", "VACCINEADMIN").replace("VACCINATED", "VACCINEADMIN"); if(stationColors[tmpColor]){ const c = stationColors[tmpColor]['colors']; return c[c.length-1]; } else { return "rgb(255,255,255)"; } } function getPop(dv){ if(dv['POPULATION']){ return dv['POPULATION']; } else { return 0; } } function getColor(n){ var p; if(stationColors[currentColor]){ p = stationColors[currentColor]['points']; } else { p = [0]; } var dpi = -1; $.each(p, function(pi, pv){ if(pi==0 && n < pv){ return false; } else if(n>=pv){ dpi = pi; } else { return false; } }); if(dpi>-1){ if(stationColors[currentColor]){ return stationColors[currentColor]['colors'][dpi]; } else { return "rgb(255,255,255)"; } } else { return "rgb(255,255,255)"; } } L.Layer.prototype.setInteractive = function (interactive) { if (this.getLayers) { this.getLayers().forEach(layer => { layer.setInteractive(interactive); }); return; } if (!this._path) { return; } this.options.interactive = interactive; if (interactive) { L.DomUtil.addClass(this._path, 'leaflet-interactive'); } else { L.DomUtil.removeClass(this._path, 'leaflet-interactive'); } }; function updateElements(){ $('.changing').each(function(){ if($(this).hasClass("common")==true || $(this).hasClass("covidCommon")==true){ $(this).css('opacity', 1); } else { var cls = $(this).attr('class'); if(cls.indexOf(dataType+category)!=-1 || cls.indexOf(dataType+dataRange)!=-1){ $(this).css('opacity', 1); } else { if((isPer==true && cls.indexOf(dataType+"PER")!=-1) || (isPer==false && cls.indexOf(dataType+"TOTAL")!=-1)){ $(this).css('opacity', 1); } else { $(this).css('opacity', 0); } } } }) var subTitle = getSubtitle(); $('.covidTITLEdata').html(titles[dataType]['title']); $('.covidSUBTITLEdata').html(titles[dataType]['subTitle'][subTitle].replace('|PER|', getPer(getShownPer()+'PER').toLocaleString())); var shown = getShown(); if(elementsShown[shown]){ const shownData = elementsShown[shown]; $('.covidDATA').each(function(ei, ev){ var found = false; $.each(shownData, function(sDi, sDv){ if(sDv.toUpperCase().indexOf('DEATHS') > -1){ if(deathsGood==true){ $('.'+sDv).css('opacity', 1); } } else if(sDv.toUpperCase().indexOf('VACCIN') > -1){ if(sDv.toUpperCase().indexOf('VACCINE1ST') > -1 && vaccine1stGood == true){ $('.'+sDv).css('opacity', 1); } else if(sDv.toUpperCase().indexOf('VACCINATED') > -1 && vaccinatedGood == true){ $('.'+sDv).css('opacity', 1); } else if(sDv.toUpperCase().indexOf('VACCINEADMIN') > -1 && vaccineAdminGood == true){ $('.'+sDv).css('opacity', 1); } } else { $('.'+sDv).css('opacity', 1); } if($(ev).hasClass(sDv)){ found = true; return false; } }); if(found==false){ $(ev).css('opacity', 0); } }); } else { //console.log(shown+' NOT FOUND'); } if(geography=="national"){ $('.covidGEOGRAPHYdata').html(substitute("U.S. Map")); } if(popup.isOpen()){ showPopup(); } } function getShown(){ var shown = dataType+category; var per = category; if(dataRange=="7DAYAVG"){ shown += "7"; per += "7"; } else if(dataRange=="14DAYAVG"){ shown += "14"; per += "7";; } else if(dataRange=="NEW"){ shown += "NEW"; per += "7"; } else { } if(isPer==true){ shown += "PER"; } return shown; } function getShownPer(){ var per = category; if(dataRange=="7DAYAVG"){ per += "7"; } else if(dataRange=="14DAYAVG"){ per += "7";; } else if(dataRange=="NEW"){ per += "7"; } else { } return per; } function getSubtitle(){ var subTitle = category; if(dataRange=="7DAYAVG"){ subTitle += dataRange; } else if(dataRange=="14DAYAVG"){ subTitle += dataRange; } else if(dataRange=="NEW"){ subTitle += dataRange; } else { } if(isPer==true){ subTitle += "PER"; } return subTitle; } function substitute(v){ $.each({'County':'County'}, function(si, sv){ v = v.replace(si, sv); }); v = v.replace('City City', 'City'); v = v.replace('Chicago City', 'Chicago'); return v; } function covidSelectorCategory(c){ category = c; updatePage(); } function covidSelectorDataRange(d){ dataRange = d; checkCategory(); updatePage(); } function covidSelectorMetric(d){ isPer = d; checkCategory(); updatePage(); } function checkCategory(){ if(category.indexOf("VACCIN")>-1 && isPer!=false && dataRange!="CUMULATIVE"){ covidSelectorCategory('POSITIVE'); } else if(category.indexOf("DEATHS")>-1 && deathsGood==false){ covidSelectorCategory('POSITIVE'); } else { if(isPer!=false && category=="VACCINEADMIN"){ if(vaccine1stGood==true){ covidSelectorCategory('VACCINE1ST'); } else if(vaccinatedGood==true){ covidSelectorCategory('VACCINATED'); } else { covidSelectorCategory('POSITIVE'); } } } } function updateChoices(){ if(category.indexOf("DEATHS")>-1 && deathsGood == false){ hideChoices('.covidCategoryTextDeaths', '.covidDEATHS'); } if(category.indexOf("VACCINEADMIN")>-1){ hideChoices('.covidMetricTextPer', '.covidPER'); } else if((category=="VACCINE1ST" || category=="VACCINATED") && dataRange!="CUMULATIVE"){ hideChoices('.covidMetricTextPer', '.covidPER'); } else { showChoices('.covidMetricTextPer', '.covidPER'); } if((category.indexOf("VACCINE1ST")>-1 || category.indexOf("VACCINATED")>-1) && isPer==true){ hideChoices('.covidDataRangeTextNew', '.covidNEW'); hideChoices('.covidDataRangeText7Day', '.covid7DAYAVG'); hideChoices('.covidDataRangeText14Day', '.covid14DAYAVG'); } else { showChoices('.covidDataRangeTextNew', '.covidNEW'); showChoices('.covidDataRangeText7Day', '.covid7DAYAVG'); showChoices('.covidDataRangeText14Day', '.covid14DAYAVG'); } if(isPer==true || vaccineAdminGood==false){ hideChoices('.covidCategoryTextVaccineAdmin', '.covidVACCINEADMIN'); } else { showChoices('.covidCategoryTextVaccineAdmin', '.covidVACCINEADMIN'); } if((dataRange!="CUMULATIVE" && isPer==true) || vaccine1stGood==false){ hideChoices('.covidCategoryTextVaccine1st', '.covidVACCINE1ST'); } else { showChoices('.covidCategoryTextVaccine1st', '.covidVACCINE1ST'); } if((dataRange!="CUMULATIVE" && isPer==true) || vaccinatedGood==false){ hideChoices('.covidCategoryTextVaccinated', '.covidVACCINATED'); } else { showChoices('.covidCategoryTextVaccinated', '.covidVACCINATED'); } checkVaccDays(); } function showChoices(e1, e2){ $(e1).css('opacity', 1); $(e2).css('pointer-events', 'all'); } function hideChoices(e1, e2){ $(e1).css('opacity', 0); $(e2).css('pointer-events', 'none'); } class Color { constructor(r, g, b) { this.set(r, g, b); } toString() { return `rgb(${Math.round(this.r)}, ${Math.round(this.g)}, ${Math.round(this.b)})`; } set(r, g, b) { this.r = this.clamp(r); this.g = this.clamp(g); this.b = this.clamp(b); } hueRotate(angle = 0) { angle = angle / 180 * Math.PI; const sin = Math.sin(angle); const cos = Math.cos(angle); this.multiply([ 0.213 + cos * 0.787 - sin * 0.213, 0.715 - cos * 0.715 - sin * 0.715, 0.072 - cos * 0.072 + sin * 0.928, 0.213 - cos * 0.213 + sin * 0.143, 0.715 + cos * 0.285 + sin * 0.140, 0.072 - cos * 0.072 - sin * 0.283, 0.213 - cos * 0.213 - sin * 0.787, 0.715 - cos * 0.715 + sin * 0.715, 0.072 + cos * 0.928 + sin * 0.072, ]); } grayscale(value = 1) { this.multiply([ 0.2126 + 0.7874 * (1 - value), 0.7152 - 0.7152 * (1 - value), 0.0722 - 0.0722 * (1 - value), 0.2126 - 0.2126 * (1 - value), 0.7152 + 0.2848 * (1 - value), 0.0722 - 0.0722 * (1 - value), 0.2126 - 0.2126 * (1 - value), 0.7152 - 0.7152 * (1 - value), 0.0722 + 0.9278 * (1 - value), ]); } sepia(value = 1) { this.multiply([ 0.393 + 0.607 * (1 - value), 0.769 - 0.769 * (1 - value), 0.189 - 0.189 * (1 - value), 0.349 - 0.349 * (1 - value), 0.686 + 0.314 * (1 - value), 0.168 - 0.168 * (1 - value), 0.272 - 0.272 * (1 - value), 0.534 - 0.534 * (1 - value), 0.131 + 0.869 * (1 - value), ]); } saturate(value = 1) { this.multiply([ 0.213 + 0.787 * value, 0.715 - 0.715 * value, 0.072 - 0.072 * value, 0.213 - 0.213 * value, 0.715 + 0.285 * value, 0.072 - 0.072 * value, 0.213 - 0.213 * value, 0.715 - 0.715 * value, 0.072 + 0.928 * value, ]); } multiply(matrix) { const newR = this.clamp(this.r * matrix[0] + this.g * matrix[1] + this.b * matrix[2]); const newG = this.clamp(this.r * matrix[3] + this.g * matrix[4] + this.b * matrix[5]); const newB = this.clamp(this.r * matrix[6] + this.g * matrix[7] + this.b * matrix[8]); this.r = newR; this.g = newG; this.b = newB; } brightness(value = 1) { this.linear(value); } contrast(value = 1) { this.linear(value, -(0.5 * value) + 0.5); } linear(slope = 1, intercept = 0) { this.r = this.clamp(this.r * slope + intercept * 255); this.g = this.clamp(this.g * slope + intercept * 255); this.b = this.clamp(this.b * slope + intercept * 255); } invert(value = 1) { this.r = this.clamp((value + this.r / 255 * (1 - 2 * value)) * 255); this.g = this.clamp((value + this.g / 255 * (1 - 2 * value)) * 255); this.b = this.clamp((value + this.b / 255 * (1 - 2 * value)) * 255); } hsl() { // Code taken from https://stackoverflow.com/a/9493060/2688027, licensed under CC BY-SA. const r = this.r / 255; const g = this.g / 255; const b = this.b / 255; const max = Math.max(r, g, b); const min = Math.min(r, g, b); let h, s, l = (max + min) / 2; if (max === min) { h = s = 0; } else { const d = max - min; s = l > 0.5 ? d / (2 - max - min) : d / (max + min); switch (max) { case r: h = (g - b) / d + (g < b ? 6 : 0); break; case g: h = (b - r) / d + 2; break; case b: h = (r - g) / d + 4; break; } h /= 6; } return { h: h * 100, s: s * 100, l: l * 100, }; } clamp(value) { if (value > 255) { value = 255; } else if (value < 0) { value = 0; } return value; } } class Solver { constructor(target, baseColor) { this.target = target; this.targetHSL = target.hsl(); this.reusedColor = new Color(0, 0, 0); } solve() { const result = this.solveNarrow(this.solveWide()); return { values: result.values, loss: result.loss, filter: this.css(result.values), }; } solveWide() { const A = 5; const c = 15; const a = [60, 180, 18000, 600, 1.2, 1.2]; let best = { loss: Infinity }; for (let i = 0; best.loss > 25 && i < 3; i++) { const initial = [50, 20, 3750, 50, 100, 100]; const result = this.spsa(A, a, c, initial, 1000); if (result.loss < best.loss) { best = result; } } return best; } solveNarrow(wide) { const A = wide.loss; const c = 2; const A1 = A + 1; const a = [0.25 * A1, 0.25 * A1, A1, 0.25 * A1, 0.2 * A1, 0.2 * A1]; return this.spsa(A, a, c, wide.values, 500); } spsa(A, a, c, values, iters) { const alpha = 1; const gamma = 0.16666666666666666; let best = null; let bestLoss = Infinity; const deltas = new Array(6); const highArgs = new Array(6); const lowArgs = new Array(6); for (let k = 0; k < iters; k++) { const ck = c / Math.pow(k + 1, gamma); for (let i = 0; i < 6; i++) { deltas[i] = Math.random() > 0.5 ? 1 : -1; highArgs[i] = values[i] + ck * deltas[i]; lowArgs[i] = values[i] - ck * deltas[i]; } const lossDiff = this.loss(highArgs) - this.loss(lowArgs); for (let i = 0; i < 6; i++) { const g = lossDiff / (2 * ck) * deltas[i]; const ak = a[i] / Math.pow(A + k + 1, alpha); values[i] = fix(values[i] - ak * g, i); } const loss = this.loss(values); if (loss < bestLoss) { best = values.slice(0); bestLoss = loss; } } return { values: best, loss: bestLoss }; function fix(value, idx) { let max = 100; if (idx === 2 /* saturate */) { max = 7500; } else if (idx === 4 /* brightness */ || idx === 5 /* contrast */) { max = 200; } if (idx === 3 /* hue-rotate */) { if (value > max) { value %= max; } else if (value < 0) { value = max + value % max; } } else if (value < 0) { value = 0; } else if (value > max) { value = max; } return value; } } loss(filters) { // Argument is array of percentages. const color = this.reusedColor; color.set(0, 0, 0); color.invert(filters[0] / 100); color.sepia(filters[1] / 100); color.saturate(filters[2] / 100); color.hueRotate(filters[3] * 3.6); color.brightness(filters[4] / 100); color.contrast(filters[5] / 100); const colorHSL = color.hsl(); return ( Math.abs(color.r - this.target.r) + Math.abs(color.g - this.target.g) + Math.abs(color.b - this.target.b) + Math.abs(colorHSL.h - this.targetHSL.h) + Math.abs(colorHSL.s - this.targetHSL.s) + Math.abs(colorHSL.l - this.targetHSL.l) ); } css(filters) { function fmt(idx, multiplier = 1) { return Math.round(filters[idx] * multiplier); } return `invert(${fmt(0)}%) sepia(${fmt(1)}%) saturate(${fmt(2)}%) hue-rotate(${fmt(3, 3.6)}deg) brightness(${fmt(4)}%) contrast(${fmt(5)}%)`; } } $(document).on('ready', function(){ $('#mapSelector').append($('