PageSourceSearch

https://www.iweathernet.com/js/tools/summarywidget.js

js iweathernet.com collected 2026-10-02 06:43:12 UTC 27,984 bytes, 1 lines download raw bytes

1//load the template solution�//production���iWeatherNet.loadScript("/js/common/mustache.js");�iWeatherNet.loadScript("/js/common/jquery.csv.min.js");�iWeatherNet.loadScript("/js/tools/angulargauge.js");�iWeatherNet.loadScript("/js/common/deferreds.js");����//dev��/*�iWeatherNet.loadScript("../common/js/mustache.js");�iWeatherNet.loadScript("../common/js/jquery.csv.min.js");�iWeatherNet.loadScript("js/angulargauge.js");�iWeatherNet.loadScript("../common/js/deferreds.js");�debugenabled=true;�*/��var devkey='client_id=dBSN9JcljtWikpEDm597f&client_secret=ZIsGKXgBUbd9EiNyZcEx1OtiyuWQPujaGv1v4h3G';�var prodkey='client_id=dBSN9JcljtWikpEDm597f&client_secret=ZIsGKXgBUbd9EiNyZcEx1OtiyuWQPujaGv1v4h3G';��if (window.location.host.toLowerCase().indexOf("iweathernet.com")>-1){�	iWeatherNet.aerisKey=prodkey;�}�else�{�	iWeatherNet.aerisKey=devkey;�}���iWeatherNet.getAerisData=function(station){�	�	// STATION REQUIRES THE K�	var thisDeferred=new iWeatherNet.deferred("getAerisData",15);�	if (iWeatherNet.aerisDataBatch){thisDeferred.resolve();return thisDeferred;}�	var dt=iWeatherNet.ISOdateTime((new Date()).toISOString());�	�	var params={�		key:iWeatherNet.aerisKey,�		station:station,�		sort:"",�		/*limit:config.limit.toString(),*/�		r:parseInt(Math.random()*10000),�		dt:dt.thisTZ.prettyDate�	};�	�	�	�	/*var query1=Mustache.render("?p={{{station}}}&limit=20&plimit=2&from=-2hours",params);�	var query2=Mustache.render("?p={{{station}}}&limit=20&plimit=3&from=-24hours&to=2hours",params);�	*/�	�	var query3=Mustache.render("?p={{{station}}}&from={{{dt}}}",params); //normals from getAlamanac�	var query4=Mustache.render("?p={{{station}}}&from={{{dt}}}",params); //obs archive from getToday�	var query5=Mustache.render("?p={{{station}}}&from={{{dt}}}&plimit=50",params); //getTodayMinMax�	�	var url="https://api.aerisapi.com/batch/?" + iWeatherNet.aerisKey + "&requests=";�		url+="/normals" + encodeURIComponent(query3);�		url+=",/observations/archive" + encodeURIComponent(query4);�		url+=",/observations/recent" + encodeURIComponent(query5);�		�		�	//console.log(url);�	�	jQuery.ajax({�		url: url,�		dataType: "json",�		success: function(json) {�			condir(json);�			iWeatherNet.aerisDataBatch=json.response.responses;�			thisDeferred.resolve();�			�		}�	});��	return thisDeferred;�	�	�}������iWeatherNet.getAlmanac=function(config){�	conlog("getalmanac");�	//var thisDeferred=jQuery.Deferred();�	var thisDeferred=new iWeatherNet.deferred("getAlmanac",15);�	iWeatherNet.almanac={};�	//var wuURL="https://api.wunderground.com/api/11c52d3d4744bfd1/almanac/q/{{{station}}}.json";�	var dt=iWeatherNet.ISOdateTime((new Date()).toISOString());�	var params={�		key:iWeatherNet.aerisKey,�		station:config.location.station.toLowerCase(),�		sort:"",�		dt:dt.thisTZ.prettyDate�	};�	�	//this will get the normals�	var query2=Mustache.render("k{{{station}}}?{{{key}}}&from={{{dt}}}",params);�	var url="https://api.aerisapi.com/normals/" + query2;�	�	//getAlmanac is 0�	�	�	�	jQuery.when(iWeatherNet.getAerisData("k" + params.station)).done(�		function(){�		condir(data);�		var data=iWeatherNet.aerisDataBatch[0];�		�		iWeatherNet.almanac.location="k" + params.station;�		//iWeatherNet.almanac.recordHigh=responsedata.almanac.temp_high.record.F;�		//iWeatherNet.almanac.recordHighYear=responsedata.almanac.temp_high.recordyear;�		//iWeatherNet.almanac.recordLow=responsedata.almanac.temp_low.record.F;�		//iWeatherNet.almanac.recordLowYear=responsedata.almanac.temp_low.recordyear;�		iWeatherNet.almanac.normalHigh=data.response.periods[0].temp.maxF;�		iWeatherNet.almanac.normalLow=data.response.periods[0].temp.minF;
1�		jQuery("#" + config.spanNormalHigh).html(roundto(iWeatherNet.almanac.normalHigh,0) + "&deg;F");�		jQuery("#" + config.spanNormalLow).html(roundto(iWeatherNet.almanac.normalLow,0) + "&deg;F");�		jQuery("#" + config.spanLocation).html(iWeatherNet.almanac.location);�		thisDeferred.resolve();�		�	});�	�	�	//find how to get the records.�	�	�	��	return thisDeferred;�	��}�����iWeatherNet.getTableData=function(config){�/*�		{�			tablediv:"preciptable",�			attribute:"precip_in",�			location:{network:"TX_ASOS",�					station:"DFW"�			},�			totals:{showTotal:true,column:1 },�			precip:true�		}�*/��	//var thisDeferred=jQuery.Deferred();�	var thisDeferred=new iWeatherNet.deferred("getTableData",15);�	if (!config.totals){�		config.totals={showTotal:false}�	}��	//config.attribute is the item we're putting in the table�	var today=new Date();�	�	var iowaURL="https://mesonet.agron.iastate.edu/cgi-bin/request/daily.py?network={{{network}}}&stations={{{station}}}&year1={{{yearfrom}}}&month1={{{monthfrom}}}&day1={{{dayfrom}}}&year2={{{yearto}}}&month2={{{monthto}}}&day2={{{dayto}}}";��	var urlParameters={�		network:config.location.network,�		station:config.location.station,�		yearfrom:(today.getFullYear()-1).toString(),�		monthfrom:(today.getMonth()+1).toString(),�		dayfrom:"1",�		yearto:today.getFullYear().toString(),�		monthto:(today.getMonth()+1).toString(),�		dayto:today.getDate().toString()��	};��	if (!leapYear(urlParameters.yearfrom)&&urlParameters.monthfrom==2&&urlParameters.dayfrom==29){urlParameters.dayfrom=28}�	�	jQuery.ajax({�			url:Mustache.render(iowaURL,urlParameters),�			contentType:"text/plain",�			crossDomain:true,�			dataType:"text",�			success:function(responsedata,textstatus){�				var alldata=jQuery.csv.toObjects(responsedata);�				//condir(alldata);�				var th="<thead><tr><th></th><th>1</th><th>2</th><th>3</th><th>4</th><th>5</th><th>6</th><th>7</th><th>8</th><th>9</th><th>10</th><th>11</th><th>12</th><th>13</th><th>14</th><th>15</th><th>16</th><th>17</th><th>18</th><th>19</th><th>20</th><th>21</th><th>22</th><th>23</th><th>24</th><th>25</th><th>26</th><th>27</th><th>28</th><th>29</th><th>30</th><th>31</th></tr></thead>";�				//var allrows="<tr>";�				var allrows="";�				var rowdata="<td class={{{formatting}}}>{{{value}}}</td>";�				var lookbacktotal=[];�				var monthlyNormal=[];�				var month1=0;�				var daycounter=1;�				jQuery.each(alldata,function(x,oneDay){�					//use config.attribute to make the table�					�					var currentDataDate=new Date(oneDay.day.substr(0,4),oneDay.day.substr(5,2)-1,oneDay.day.substr(8,2));�					�					var thevalue=0;�					if (!isNaN(oneDay[config.attribute])&&parseFloat(oneDay[config.attribute])>0){�						thevalue=parseFloat(oneDay[config.attribute])�					}�					�					var values={value:thevalue.toFixed(2)}�					if (values.value!="0.00"){values.formatting="valNonZero";}else{values.formatting="valZero";}�					�					if (month1==currentDataDate.getMonth()+1){�						allrows+=Mustache.render(rowdata,values);�						lookbacktotal[currentDataDate.getMonth()]+=thevalue;�						if (config.precip){�							//need to total up only the first month, not the last month!�							�							//this is skipping one of the days!�							if (!monthlyNormal[currentDataDate.getMonth()+1]){monthlyNormal[currentDataDate.getMonth()+1]=0;}�							monthlyNormal[currentDataDate.getMonth()+1]+=parseFloat(oneDay.climo_precip_in);�						}�						daycounter++;�					}�					else�					{�						//conlog("daycounter=",daycounter);�						if (daycounter<31&&daycounter>1){�							for (var z=0;z<(31-daycounter);z++){�								allrows+="<td class='nodata'></td>";�							}�						}�						daycounter=1;�						allrows+="</tr><tr><td class='monthyearcell'>" + iWeatherNet.dateNames[currentDataDate.getMonth()] + "-" + (currentDataDate.getFullYear()-2000).toString() + "</td>";�						allrows+=Mustache.render(rowdata,values) + "";�						lookbacktotal[currentDataDate.getMonth()]=thevalue;�					}�					month1=currentDataDate.getMonth()+1;�					�				});�				�				if (daycounter<31&&daycounter>0){�					for (var z=0;z<(31-daycounter);z++){�						allrows+="<td class='nodata'></td>";�					}�				}�		�				allrows+="</tr>";�				/*conlog(allrows);�				condir(lookbacktotal);*/�				�				jQuery("#" + config.tablediv).html("<table>" + th + "<tbody>" + allrows + "</tbody></table>");�				�				if (config.totals.showTotal){�					var rowTotalArray=[];�					var tablerows=jQuery("#" + config.tablediv).find("table>tbody>tr");�					//start at row 1, cell 1�					jQuery(tablerows).each(function(x,e){�						//if (x<1){return} //skip the header row and the blank row that is after it�						var rowtotal=0;�						jQuery(e).children("TD").each(function(x,e1){�							//conlog(e1.innerHTML);�							if (!isNaN(e1.innerHTML)&&e1.innerHTML!=""){�								rowtotal+=parseFloat(e1.innerHTML);�							}�						});�						//conlog(rowtotal);�						rowTotalArray[x]=rowtotal;�					});�					//condir(rowTotalArray);�				�					//do the inserting as we have all the totals�					var titlerow=jQuery("#" + config.tablediv).find("table>thead>tr>th:eq(" + config.totals.column.toString() + ")").before("<th>Total</th>"); //Insert the total column �					jQuery.each(rowTotalArray,function(x,item){�						if (item){�							var rounded=Math.round(item*100)/100;�							var row=jQuery("#" + config.tablediv).find("table>tbody>tr:eq(" + x + ")>td:eq(" + config.totals.column.toString() + ")").before("<td class='totalcell'>" + rounded.toFixed(2) + "</td>");�						}�					�					});�				�				}�				�				//condir(monthlyNormal);�				thisDeferred.resolve();�			}//success:�	}); //ajax��	return thisDeferred;�}��iWeatherNet.dateNames=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];��iWeatherNet.getSummaryData=function(config){�	//var thisDeferred=jQuery.Deferred();�	var thisDeferred=new iWeatherNet.deferred("getSummaryData",15);�	var today=new Date();�	�	var iowaURL="https://mesonet.agron.iastate.edu/cgi-bin/request/daily.py?network={{{network}}}&stations={{{station}}}&year1={{{yearfrom}}}&month1={{{monthfrom}}}&day1={{{dayfrom}}}&year2={{{yearto}}}&month2={{{monthto}}}&day2={{{dayto}}}";��	var urlParameters={�		network:config.location.network,�		station:config.location.station,�		yearfrom:(today.getFullYear()-1).toString(),�		monthfrom:(today.getMonth()+1).toString(),�		dayfrom:today.getDate().toString(),�		yearto:today.getFullYear().toString(),�		monthto:(today.getMonth()+1).toString(),�		dayto:today.getDate().toString()��	};�	�	if (!leapYear(urlParameters.yearfrom)&&urlParameters.monthfrom==2&&urlParameters.dayfrom==29){urlParameters.dayfrom=28}�	�	�	//conlog(Mustache.render(iowaURL,urlParameters));�	var returnData={precipToday:0,precipThisMonth:0,precipThisYear:0,precip12Month:0,precipYesterday:0,tempMaxYear:-999,tempMaxYearDt:"",tempMinYear:999,tempMinYearDt:"",tempMinYesterday:-999,tempMaxYesterday:999};�	jQuery.ajax({�			url:Mustache.render(iowaURL,urlParameters),�			contentType:"text/plain",�			crossDomain:true,�			dataType:"text",�			success:function(responsedata,textstatus){�			try{�				var alldata=jQuery.csv.toObjects(responsedata);�				jQuery.each(alldata,function(x,oneDay){�					var currentDataDate=new Date(oneDay.day.substr(0,4),oneDay.day.substr(5,2)-1,oneDay.day.substr(8,2));�					/*�					Precipitation�					*/�					if (!isNaN(oneDay.precip_in)&&oneDay.precip_in>0){�						returnData.precip12Month+=parseFloat(oneDay.precip_in);�						if (currentDataDate.getFullYear()==today.getFullYear()){�							returnData.precipThisYear+=parseFloat(oneDay.precip_in);//annual total�						}�						if (currentDataDate.getFullYear()==today.getFullYear()&&currentDataDate.getMonth()==today.getMonth()){ //this month�							returnData.precipThisMonth+=parseFloat(oneDay.precip_in);�						}�					�						if (currentDataDate.getMonth()==today.getMonth()&&currentDataDate.getFullYear()==today.getFullYear()&&currentDataDate.getDate()==today.getDate()-1){ //yesterday�							returnData.precipYesterday+=parseFloat(oneDay.precip_in);�						}�					}�					/*�					Temperature�					*/�				�					//max�					if(!isNaN(oneDay.max_temp_f)&&returnData.tempMaxYear<oneDay.max_temp_f&&currentDataDate.getFullYear()==today.getFullYear()){�						returnData.tempMaxYear=parseFloat(oneDay.max_temp_f);returnData.tempMaxYearDt=currentDataDate�					}�					//min�					if(!isNaN(oneDay.min_temp_f)&&returnData.tempMinYear>oneDay.min_temp_f&&currentDataDate.getFullYear()==today.getFullYear()){�						returnData.tempMinYear=parseFloat(oneDay.min_temp_f);returnData.tempMinYearDt=currentDataDate�					}�					//var yesterday=new Date(new Date(today.getFullYear(),today.getMonth(),today.getDate())-1000*60*60*24);�					var yesterday=new Date(new Date(today.getFullYear(),today.getMonth(),today.getDate()-1));�					/*conlog(yesterday.valueOf());�					conlog(currentDataDate.valueOf());*/�					if(yesterday.valueOf()==currentDataDate.valueOf()){�						//conlog("date=yesterday");�						returnData.tempMaxYesterday=oneDay.max_temp_f;�						returnData.tempMinYesterday=oneDay.min_temp_f;�					}�				�				�				});�				�				iWeatherNet.minMaxData=returnData;�				�				/*thisDeferred.done(function(){iWeatherNet.getToday(config)});�				thisDeferred.resolve();*/�				�				jQuery.when(iWeatherNet.getToday(config)).done(function(){thisDeferred.resolve();});�				condir(returnData);�			}catch(E){�				console.dir(E);�			}�			}//success�		}//ajax�	);�	return thisDeferred;�}�//convert this to Aeris!!!�iWeatherNet.getToday=function(config){�	//var thisDeferred=jQuery.Deferred();�	var thisDeferred=new iWeatherNet.deferred("getToday",15);�	�	�	�	var dt=iWeatherNet.ISOdateTime((new Date()).toISOString());�	var params={�		key:iWeatherNet.aerisKey,�		station:config.location.station.toLowerCase(),�		sort:"",�		/*dt:"8/19/2016"*/�		dt:dt.thisTZ.prettyD
1ate�	};�	�	//this will get the normals�	var query2=Mustache.render("k{{{station}}}?{{{key}}}&from={{{dt}}}",params);�	var url="https://api.aerisapi.com/observations/archive/" + query2;�	�	//jQuery.getJSON(url,function(data){�		�	jQuery.when(iWeatherNet.getAerisData("k" + params.station)).done(�		function(){�		var data=iWeatherNet.aerisDataBatch[1];�		conlog("Aeris Archive");�		condir(data);�		//get precip today by adding them all up but only the observations at the 52nd or 53rd minute�		iWeatherNet.minMaxData.precipToday=0;�		jQuery.each(data.response.periods,function(x,item){�			var isoDateTime=iWeatherNet.ISOdateTime(item.ob.dateTimeISO);�			if (item.ob.precipIN>0&&isoDateTime.localTZ.minutes>=52&&isoDateTime.localTZ.minutes<=53){�				conlog(isoDateTime.localTZ.prettyTime);�				iWeatherNet.minMaxData.precipToday+=item.ob.precipIN;�			}�		});��		�		iWeatherNet.minMaxData.precipThisMonth+=iWeatherNet.minMaxData.precipToday;�		iWeatherNet.minMaxData.precipThisYear+=iWeatherNet.minMaxData.precipToday;�		iWeatherNet.minMaxData.precip12Month+=iWeatherNet.minMaxData.precipToday;�		�		conlog(iWeatherNet.minMaxData.precipToday);�		�		�		iWeatherNet.minMaxData.currentPressure=data.response.periods[data.response.periods.length-1].ob.pressureMB.toString() + "mb / " + data.response.periods[data.response.periods.length-1].ob.pressureIN.toString() + "in";�		�		//data.response.periods[data.response.periods.length-1].ob.pressureMB.toString()�		//data.response.periods[data.response.periods.length-1].ob.pressureIN.toString()�		�		jQuery.when(�			iWeatherNet.getTodayMinMax(config),�			iWeatherNet.getRecords(config)�		).done(function(){�			conlog("resolving getTodayMinMax");�			thisDeferred.resolve();�		});�		�		�	});�	�	return thisDeferred;�}��iWeatherNet.getTodayMinMax=function(config){�	//var thisDeferred=jQuery.Deferred();�	var thisDeferred=new iWeatherNet.deferred("getTodayMinMax",15);�	var url="https://api.aerisapi.com/observations/recent/K{{{station}}}?{{{key}}}&from=today&plimit=50";�	var test="hello";�	urlParameters={key:iWeatherNet.aerisKey,station:config.location.station};�	/*jQuery.ajax({�		url:Mustache.render(url,urlParameters),�		contentType:"text/plain",�		crossDomain:true,�		dataType:"json",�		success:*/�		�		jQuery.when(iWeatherNet.getAerisData("k" + config.location.station)).done(�		function(){�			var responsedata=iWeatherNet.aerisDataBatch[2];�			//condir(responsedata);�			try{�				var maxT=-9999;�				var minT=9999;�				iWeatherNet.gaugeData.tempF=responsedata.response.periods[0].ob.tempF;�				jQuery.each(responsedata.response.periods,function(x,obs){�					if (obs.ob.tempF>maxT){maxT=obs.ob.tempF;}�					if (obs.ob.tempF<minT){minT=obs.ob.tempF;}�					var d=iWeatherNet.ISOdateTime(obs.ob.dateTimeISO);�					//console.dir(d);�					if (obs.ob.tempMax6hrF&&(d.thisTZ.hours-6>=0)&&obs.ob.tempMax6hrF>maxT){maxT=obs.ob.tempMax6hrF}�					if (obs.ob.tempMin6hrF&&(d.thisTZ.hours-6>=0)&&obs.ob.tempMin6hrF<minT){minT=obs.ob.tempMin6hrF}�				�				});�				iWeatherNet.minMaxData.tempMaxToday=maxT;�				iWeatherNet.minMaxData.tempMinToday=minT;�				condir(iWeatherNet.minMaxData);�				�			}�			catch(E){condir(E);}�			//iWeatherNet.writeData(config);�			thisDeferred.resolve();�		}�	);�	return thisDeferred;�	�}��iWeatherNet.getTodayMinMaxWU=function(config){�	var thisDeferred=jQuery.Deferred();�	var url="https://api.aerisapi.com/observations/recent/K{{{station}}}?{{{key}}}&from=today&plimit=50";�	var url="https://api.wunderground.com/api/11c52d3d4744bfd1/history/pws:0/q/K{{{station}}}.json";�	�	urlParameters={station:config.location.station};�	jQuery.ajax({�		url:Mustache.render(url,urlParameters),�		contentType:"text/plain",�		crossDomain:true,�		dataType:"json",�		success:function(responsedata,textstatus){�			//condir(responsedata);�			try{�				var maxT=responsedata.history.dailysummary[0].maxtempi;�				var minT=responsedata.history.dailysummary[0].mintempi;�				�				iWeatherNet.minMaxData.tempMaxToday=maxT;�				iWeatherNet.minMaxData.tempMinToday=minT;�				condir(iWeatherNet.minMaxData);�			}�			catch(E){condir(E);}�			//iWeatherNet.writeData(config);�			thisDeferred.resolve();�		}�	}�	);�	return thisDeferred;�	�}�����iWeatherNet.getPrecip=function(config){�	//two periods: YTD and past 12 months�	condir(config);�	//var thisDeferred=jQuery.Deferred();�	var thisDeferred=new iWeatherNet.deferred("getPrecip",15);�	var url="https://data.rcc-acis.org/StnData";�	var postParameters={station:config.location.station,�		month:(new Date().getMonth()+1),�		day:(new Date().getDate()),�		year:(new Date().getFullYear()),�		yesterday:new Date(((new Date())-86400000))�		�		};�	�	�	var postdata={�		sid:(config.location.station + 'thr'),�        sdate: (postParameters.year-1).toString() + "-" + postParameters.month.toString() + "-" + postParameters.day.toString(),�        edate: postParameters.year.toString() + "-" + postParameters.month.toString() +  "-" + postParameters.day.toString(),�        elems: [{��            name: "snow",�            interval:"dly",�            duration: "dly",�            reduce:{reduce:"sum"},�            prec:3,�            smry:{reduce:"sum"},�            smry_only:1�        },�		{��            name: "pcpn",�            interval:"dly",�            duration: "dly",�            reduce:{reduce:"sum"},�            prec:3,�            smry:{reduce:"sum"},�            smry_only:1�        }�		�		],�        meta: ['name', 'state','sids','valid_daterange']�	};�	�	if (!leapYear(postParameters.year-1)&&postParameters.month==2&&postParameters.day==29){�		postdata.sdate=(postParameters.year-1).toString() + "-" + postParameters.month.toString() + "-28";�	}�	�	var postdata2=jQuery.extend({}, postdata);�	var postdatamonth=jQuery.extend({}, postdata);�	var postdatayesterday=jQuery.extend({}, postdata);�	postdata2.sdate=(postParameters.year).toString() + "-01-01";�	�	postdatamonth.sdate=(postParameters.year).toString() + "-" + (postParameters.month).toString() + "-01";�	postdatayesterday.sdate=(postParameters.yesterday.getFullYear()).toString() + "-" + (postParameters.yesterday.getMonth()+1).toString() + "-" + postParameters.yesterday.getDate().toString();�	postdatayesterday.edate=(postParameters.yesterday.getFullYear()).toString() + "-" + (postParameters.yesterday.getMonth()+1).toString() + "-" + postParameters.yesterday.getDate().toString();
1�	conlog(postdatayesterday.edate);�	�	jQuery.when(�		jQuery.ajax({�			url:url,�			data:{params: JSON.stringify(postdata)},�			contentType:"application/x-www-form-urlencoded",�			crossDomain:true,�			dataType:"json",�			method:"POST",�			success:function(responsedata,textstatus){�				condir(responsedata);�				//last 12 months�				iWeatherNet.minMaxData.snow12Month=responsedata.smry[0];�				//iWeatherNet.minMaxData.precip12Month=0;�			},�			error:function(xhr,status,errorthrown){�				conlog(status);�				conlog(errorthrown);�			}�			�		}),�		jQuery.ajax({��			url:url,�			data:{params: JSON.stringify(postdata2)},�			contentType:"application/x-www-form-urlencoded",�			crossDomain:true,�			dataType:"json",�			method:"POST",�			success:function(responsedata,textstatus){�				condir(responsedata);�				//current calender year�				iWeatherNet.minMaxData.snowThisYear=responsedata.smry[0];�				//iWeatherNet.minMaxData.precipThisYear=0;��				�				�			},�			error:function(xhr,status,errorthrown){�				conlog(status);�				conlog(errorthrown);��			}�			�		}),�		jQuery.ajax({�			url:url,�			data:{params: JSON.stringify(postdatamonth)},�			contentType:"application/x-www-form-urlencoded",�			crossDomain:true,�			dataType:"json",�			method:"POST",�			success:function(responsedata,textstatus){�				condir(responsedata);�				//last 12 months�				iWeatherNet.minMaxData.snowThisMonth=responsedata.smry[0];�				//iWeatherNet.minMaxData.precip12Month=0;�			},�			error:function(xhr,status,errorthrown){�				conlog(status);�				conlog(errorthrown);�			}�			�		}),�		jQuery.ajax({�			url:url,�			data:{params: JSON.stringify(postdatayesterday)},�			contentType:"application/x-www-form-urlencoded",�			crossDomain:true,�			dataType:"json",�			method:"POST",�			success:function(responsedata,textstatus){�				condir(responsedata);�				//last 12 months�				iWeatherNet.minMaxData.snowYesterday=responsedata.smry[0];�				//iWeatherNet.minMaxData.precip12Month=0;�			},�			error:function(xhr,status,errorthrown){�				conlog(status);�				conlog(errorthrown);�			}�			�		})�	).done(function(){�			conlog("precip deferred resolved");�			thisDeferred.resolve();�			�		}�	);������	return thisDeferred;������	�}����iWeatherNet.getRecords=function(config){�	//var thisDeferred=jQuery.Deferred();�	var thisDeferred=new iWeatherNet.deferred("getRecords",15);�	//var url="https://api.aerisapi.com/records/K{{{station}}}?{{{key}}}&from=1800/01/01&filter=prcp&radius=1mile&limit=100&query=mon:{{{month}}}:{{{month}}},day:{{{day}}}:{{{day}}}";�	var url="https://data.rcc-acis.org/StnData";�	�	var postParameters={station:config.location.station,�		month:(new Date().getMonth()+1),�		day:(new Date().getDate())�	};�	�	if (postParameters.month==2&&postParameters.day==29){postParameters.day=28}�	�	var postdata={�		sid:(config.location.station + 'thr'),�		sdate:'por',�		edate:'por',�		meta: ['name', 'state','sids','valid_daterange'],�		elems: [{�			name: 'maxt',�			interval: 'dly',�			duration: 'dly',�			smry: {reduce: 'max',add: 'date'},�			smry_only: 1,�			groupby: ['year',postParameters.month.toString() + "-" + postParameters.day.toString(),postParameters.month.toString() + "-" + postParameters.day.toString()]�		},�		{�			name: 'mint',�			interval: 'dly',�			duration: 'dly',�			smry: {reduce: 'min',add: 'date'},�			smry_only: 1,�			groupby: ['year',postParameters.month.toString() + "-" + postParameters.day.toString(),postParameters.month.toString() + "-" + postParameters.day.toString()]�		},�		{�			name: 'pcpn',�			interval: 'dly',�			duration: 'dly',�			smry: {reduce: 'max',add: 'date'},�			smry_only: 1,�			groupby: ['year',postParameters.month.toString() + "-" + postParameters.day.toString(),postParameters.month.toString() + "-" + postParameters.day.toString()]�		},�		{�			name: 'snow',�			interval: 'dly',�			duration: 'dly',�			smry: {reduce: 'max',add: 'date'},�			smry_only: 1,�			groupby: ['year',postParameters.month.toString() + "-" + postParameters.day.toString(),postParameters.month.toString() + "-" + postParameters.day.toString()]�		}�		]�	};�	�	/*�	�	�	{��            name: "snow",�            interval:"dly",�            duration: "dly",�            reduce:{reduce:"sum"},�            prec:3,�            smry:{reduce:"sum"},�            smry_only:1�        }�	�	�	*/�	�	jQuery.when(�	�		jQuery.ajax({�			/*url:Mustache.render(url,urlParameters),*/�			url:url,�			data:{params: JSON.stringify(postdata)},�			contentType:"application/x-www-form-urlencoded",�			/*contentType:"text/plain",*/�			crossDomain:true,�			dataType:"json",�			method:"POST",�			success:function(responsedata,textstatus){�				condir(responsedata);�				iWeatherNet.minMaxData.precipRecord=responsedata.smry[2][0][0] + "&quot; " + "(" + responsedata.smry[2][0][1].substring(0,4) + ")";�				iWeatherNet.minMaxData.snowRecord=responsedata.smry[3][0][0] + "&quot; " + "(" + responsedata.smry[3][0][1].substring(0,4) + ")";�				�				�				iWeatherNet.almanac.recordHigh=parseInt(responsedata.smry[0][0][0]);�				iWeatherNet.almanac.recordHighYear=responsedata.smry[0][0][1].substr(0,4);�				iWeatherNet.almanac.recordLow=parseInt(responsedata.smry[1][0][0]);�				iWeatherNet.almanac.recordLowYear=responsedata.smry[1][0][1].substr(0,4);�				conlog(roundto(iWeatherNet.almanac.recordHigh,0) + "&deg;F (" + iWeatherNet.almanac.recordHighYear.toString() + ")");�				�				condir(iWeatherNet.almanac);�				�				//thisDeferred.resolve();�			},�			error:function(xhr,status,errorthrown){�				conlog(status);�				conlog(errorthrown);�				//thisDeferred.resolve();�			}�			�		}),�		iWeatherNet.getPrecip(config)�	).done(function(){thisDeferred.resolve()});�		�	�	return thisDeferred;��}
1����iWeatherNet.writeData=function(config){�	conlog("writeData");�	condir(config);��	jQuery("#" + config.spanPrecipToday).html(roundto(iWeatherNet.minMaxData.precipToday,2));�	jQuery("#" + config.spanPrecipThisMonth).html(roundto(iWeatherNet.minMaxData.precipThisMonth,2));�	jQuery("#" + config.spanPrecipThisYear).html(roundto(iWeatherNet.minMaxData.precipThisYear,2));�	jQuery("#" + config.spanPrecip12Month).html(roundto(iWeatherNet.minMaxData.precip12Month,2));�	jQuery("#" + config.spanPrecipYesterday).html(roundto(iWeatherNet.minMaxData.precipYesterday,2));�	jQuery("#" + config.spanTempMaxYear).html(iWeatherNet.minMaxData.tempMaxYear + "&deg;F (" + iWeatherNet.minMaxData.tempMaxYearDt.toLocaleDateString() + ")" );�	jQuery("#" + config.spanTempMinYear).html(iWeatherNet.minMaxData.tempMinYear + "&deg;F (" + iWeatherNet.minMaxData.tempMinYearDt.toLocaleDateString() + ")" );�	�	jQuery("#" + config.spanLocation).html(config.location.station);�	jQuery("#" + config.spanTempYesterdayMin).html(iWeatherNet.minMaxData.tempMinYesterday + "&deg;F");�	jQuery("#" + config.spanTempYesterdayMax).html(iWeatherNet.minMaxData.tempMaxYesterday + "&deg;F");�	�	jQuery("#" + config.spanTempTodayMin).html(iWeatherNet.minMaxData.tempMinToday + "&deg;F");�	jQuery("#" + config.spanTempTodayMax).html(iWeatherNet.minMaxData.tempMaxToday + "&deg;F");�	jQuery("#" + config.spanPressure).html(iWeatherNet.minMaxData.currentPressure);�	jQuery("#" + config.spanPrecipRecord).html(iWeatherNet.minMaxData.precipRecord);�	jQuery("#" + config.spanSnowRecord).html(iWeatherNet.minMaxData.snowRecord);�	�	jQuery("#" + config.spanSnowThisYear).html(roundto(iWeatherNet.minMaxData.snowThisYear,2) + " in.");
1�	jQuery("#" + config.spanSnow12Month).html(roundto(iWeatherNet.minMaxData.snow12Month,2)+ " in.");�	jQuery("#" + config.spanSnowThisMonth).html(roundto(iWeatherNet.minMaxData.snowThisMonth,2) + " in.");�	jQuery("#" + config.spanSnowYesterday).html(roundto(iWeatherNet.minMaxData.snowYesterday,2)+ " in.");�	�	jQuery("#" + config.spanRecordHigh).html(roundto(iWeatherNet.almanac.recordHigh,0) + "&deg;F (" + iWeatherNet.almanac.recordHighYear.toString() + ")");�	jQuery("#" + config.spanRecordLow).html(roundto(iWeatherNet.almanac.recordLow,0) + "&deg;F (" + iWeatherNet.almanac.recordLowYear.toString() + ")");��	�	try{�		if (rendergauge){iWeatherNet.initializeGauge();}�	}�	catch(E){�		//do nothing�	}�	�}�function leapYear(year)�{�  return ((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0);�}����function roundto(n,p){�	if(isNaN(n)){return "0"}�	var t=n*Math.pow(10,p);�	t=Math.round(t)/Math.pow(10,p);�	return t.toString();�}��

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.