22c22
< var isCollapsed = false;
---
> var isCollapsed = true;
32c32,33
< var apple_parser = new AppleParser ("http://www.apple.com/widgets/weatherParser.js");
---
> //var apple_parser = new AppleParser ("http://www.apple.com/widgets/weatherParser.js");
> var apple_parser = new AppleParser ("parser.js");
251a253,263
> 	
> 	// we need to remember at what time the results were last updated
> 	if (object.time != null && object.forecast[0] != null && object.forecast[0].date != null)
> 	{
> 		lastResults[0].hour = object.time.hour;
> 		lastResults[0].minute = object.time.minute;
> 		lastResults[0].gmtdiff = object.gmtdiff;
> 		lastResults[0].dayLightSavings = object.dayLightSavings;
> 		lastResults[0].date = object.forecast[0].date;
> 	}
> 	
300a313
> 	updateAge ();
520a534,593
> function updateAge ()
> {
> 	if (lastResults != null &&
> 		lastResults[0] != null &&
> 		lastResults[0].hour != null &&
> 		lastResults[0].minute != null &&
> 		lastResults[0].dayLightSavings != null &&
> 		lastResults[0].gmtdiff != null &&
> 		lastResults[0].date != null
> 	)
> 	{
> 		// this technique is based in part on recipe 2.11 from 
> 		// Danny Goodman's JavaScript & DHTML Cookbook
> 		var oneMinute = 1000 * 60;
> 		var oneHour = oneMinute * 60;
> 		
> 		var date = lastResults[0].date;
> 		var first = date.indexOf('/');
> 		var second = date.lastIndexOf('/');
> 		var month = parseInt(date.substring(0, first), 10);
> 		var day = parseInt(date.substring(first + 1, second), 10);
> 		var year = parseInt(date.substring(second + 1), 10);
> 
> 		var lastChecked = new Date(year, month - 1, day, lastResults[0].hour, lastResults[0].minute);
> 		var now = new Date();
> 				
> 		// debug code, goes to console when widget run from Dashboard
> 		// alert('GmtDiff: ' + lastResults[0].gmtdiff + ', daylightSavingsTime: ' + lastResults[0].dayLightSavings);
> 		
> 		var dstAdjust = lastResults[0].gmtdiff * 60 + lastResults[0].dayLightSavings * 60;
> 		var gmtAdjust = (now.getTimezoneOffset()*(-1) - dstAdjust) * oneMinute;
> 		var diff = now.getTime() - lastChecked.getTime() - gmtAdjust;
> 		
> 		var minutesAgo = Math.ceil(diff/oneMinute);
> 		var hoursAgo = Math.ceil(diff/oneHour);
> 		
> 		/* we test for negative numbers to catch system clocks that are just out of sync */
> 		if (minutesAgo <= 1)
> 		{
> 			document.getElementById('updatetime').innerText = minutesAgo + ' minute ago';
> 		}
> 		else if (minutesAgo < 60)
> 		{
> 			document.getElementById('updatetime').innerText = minutesAgo + ' minutes ago';
> 		}
> 		else if (hoursAgo == 1)
> 		{
> 			document.getElementById('updatetime').innerText = hoursAgo + ' hour ago';
> 		}
> 		else if (hoursAgo > 1)
> 		{
> 			document.getElementById('updatetime').innerText = hoursAgo + ' hours ago';
> 		}
> 	}
> 	else
> 	{
> 		document.getElementById('updatetime').innerText = '';
> 	}
> }
> 
787c860
< 		resizeAnimation.element.style.height = startingSize + "px";
---
> 		resizeAnimation.element.style.height = startingSize;
1099a1173
> 			document.getElementById('middle').style.height = (showLows ? 126 : 106) + "px";
1103,1112d1176
< 		else if (pref == "true")
< 		{
< 			needsToResize = true;
< 			isCollapsed = true;
< 		}
< 		
< 		if (!isCollapsed)
< 		{
< 			document.getElementById('middle').style.height = (showLows ? 126 : 106) + "px";
< 		}
1297a1362,1363
> 	updateAge ();
> 	

