var xmlHttp;var DestinationID;var FocusID;var tstart=getTimeNow();function hideURLbar(){setTimeout("window.scrollTo(0, 1)",0)}function getTimeNow(){var a=new Date();return a.getTime()}function get_cookie(a){var b=document.cookie.match('(^|;) ?'+a+'=([^;]*)(;|$)');if(b)return(unescape(b[2]));else return""}function createCookie(a,b,c){if(c){var d=new Date();d.setTime(d.getTime()+(c*24*60*60*1000));var e="; expires="+d.toGMTString()}else var e="";document.cookie=a+"="+b+e}function eraseCookie(a){createCookie(a,"",-1)}function MinutesToTimeStr(a){var b=Math.floor(a/60);var c=(a-b*60);var d="am";if(b>=12){d="pm";if(b>12)b-=12}if(c<10){c="0"+c}var e=b+":"+c+d;return e}function GetLocalTime(a){var b=new Array(7);b[0]="Sunday";b[1]="Monday";b[2]="Tuesday";b[3]="Wednesday";b[4]="Thursday";b[5]="Friday";b[6]="Saturday";var c=new Date();var d=c.getUTCHours();var e=c.getUTCMinutes();var f=c.getUTCDay();var g=d*60+e;g+=a;if(g<0){g+=1440;f=(f+6)%7}if(g>=1440){g-=1440;f=(f+1)%7}var h=b[f]+" "+MinutesToTimeStr(g);return h}function GetTimeAgo(a,b){var c=new Date();var d=c.getUTCHours();var e=c.getUTCMinutes();var f=c.getUTCDay();var g=d*60+e;g+=a;if(g<0){g+=1440;f=(f+6)%7}if(g>=1440){g-=1440;f=(f+1)%7}var h=(g-b);if(h<0){h+=1440}if((h>0)&&(h<=60)){var i=h+' mins ago'}else{i=MinutesToTimeStr(b)}return i}function UpdateTimes(a){var b,obsmins,x,y;var c=0;var d='tzoffset';var e='current-time';var f='obs-mins';var g='obs-obstime';while(true){x=document.getElementById(d+c);if((x==null)||(x.innerHTML==''))break;b=parseInt(x.innerHTML,10);y=document.getElementById(e);y.innerHTML=GetLocalTime(b);x=document.getElementById(f+c);if((x==null)||(x.innerHTML=='')){document.getElementById(g).innerHTML='';break}obsmins=parseInt(x.innerHTML,10);y=document.getElementById(g);y.innerHTML='Obs: '+GetTimeAgo(b,obsmins);c++}if(a>0){var h="UpdateTimes("+a+")";setTimeout(h,(a*1000))}if((getTimeNow()-tstart)>=595000){tstart=getTimeNow();UpdateObs()}}function UpdateObs(){xmlHttp=GetXmlHttpObject();if(xmlHttp==null){alert("Your browser does not support AJAX!");return}var a=get_cookie("cities");var b="owquery.php?format=json&type=foreobs&cityid="+a;xmlHttp.onreadystatechange=stateChangedObs;xmlHttp.open("GET",b,true);xmlHttp.send(null);var x=document.getElementById('obs-obstime');if(x.innerHTML!=''){x.innerHTML='Obs: Loading...'}}function MinsFromDatetime(a){var b=parseInt(a.substr(11,2),10);var c=parseInt(a.substr(14,2),10);return(b*60+c)}function ReformatField(a,b,c){if(b=='n/a'){return a+b}else{return a+b+c}}function DisplayField(a,b){document.getElementById(a).innerHTML=b}function getImage(a,b){var c=document.getElementById(a);var d=c.cloneNode(false);d.src=b;var e=c.parentNode;e.replaceChild(d,c);return false}function addRemoveClass(a,b,c){var d=document.getElementById(a);var e=d.className;if(c){if(e.indexOf(b)==-1){d.className=e+' '+b}}else{d.className=e.replace(' '+b,'')}}function refreshDiv(a){var b=a.cloneNode(true);var c=a.parentNode;c.replaceChild(b,a);return false}function stateChangedObs(){if(xmlHttp.readyState==4){var a=eval('('+xmlHttp.responseText+')');document.getElementById('city').innerHTML=a.forecast.cityname;document.getElementById('tzoffset0').innerHTML=a.forecast.tzoffsetmins;if(a.obs==null){document.getElementById('obs-mins0').innerHTML='';document.getElementById('obs-tmp').innerHTML='-';document.getElementById('obs-wind').innerHTML='Wind: n/a';document.getElementById('obs-humidity').innerHTML='Humidity: n/a';document.getElementById('obs-rainfall').innerHTML='Rainfall: n/a'}else{document.getElementById('obs-mins0').innerHTML=MinsFromDatetime(a.obs.obs_datetime);DisplayField('obs-tmp',ReformatField('',a.obs.temperature,'&deg;'));if(a.obs.wind_dir=='CALM'){a.obs.wind_avg_kmh='0'}DisplayField('obs-wind',ReformatField('Wind: ',a.obs.wind_dir,'')+' '+ReformatField('',a.obs.wind_avg_kmh,'km/h'));DisplayField('obs-humidity',ReformatField('Humidity: ',a.obs.rel_humidity,"%"));if(a.obs.rain_9am_mm<=0){if(a.obs.rain_9am_mm<0){a.obs.rain_9am_mm='Trace'}else{a.obs.rain_9am_mm='nil'}DisplayField('obs-rainfall','Rainfall: '+a.obs.rain_9am_mm)}else{DisplayField('obs-rainfall',ReformatField('Rainfall: ',a.obs.rain_9am_mm,"mm"))}}UpdateTimes(0);if(a.forecast.numdays>4){document.getElementById('main-box-footer').style.display='none';document.getElementById('main-box-footer-extendable').style.display='block'}else{document.getElementById('main-box-footer').style.display='block';document.getElementById('main-box-footer-extendable').style.display='none';document.getElementById('extend-forecast').style.display='none';document.getElementById('retract-forecast').style.display='none'}var b;var c;var d=1;while(d<=7){if(d>a.forecast.numdays){if(d>1){document.getElementById('fcst_'+d).style.display='none'}if(d==1){document.getElementById('obs-condition').innerHTML='Forecast unavailable'}else{document.getElementById('fcst_day'+d).innerHTML='-';document.getElementById('fcst_desc'+d).innerHTML='-'}DisplayField('fcst_min'+d,ReformatField('','-',''));DisplayField('fcst_max'+d,ReformatField('','-',''))}else{if(d>1){document.getElementById('fcst_'+d).style.display='block'}getImage('fcst_img'+d,'graphics/'+a.forecast[d].icon+'.png');b=a.forecast[d].desc;if(d==1){document.getElementById('obs-condition').innerHTML=b;addRemoveClass('obs-condition','marquee',(b.length>25));refreshDiv(document.getElementById('obs-condition'))}else{document.getElementById('fcst_day'+d).innerHTML=a.forecast[d].dayname;document.getElementById('fcst_desc'+d).innerHTML=b;addRemoveClass('fcst_desc'+d,'marquee',(b.length>25));refreshDiv(document.getElementById('fcst_desc'+d))}DisplayField('fcst_min'+d,ReformatField('',a.forecast[d].min,'&deg;'));DisplayField('fcst_max'+d,ReformatField('',a.forecast[d].max,'&deg;'))}d++}var e=(get_cookie('extended')=='1');if(a.forecast.numdays>4){ToggleExtended(e,false)}}}function ToggleExtended(a,b){var c;if(a){if(b){createCookie('extended','1',365)}document.getElementById('extend-forecast').style.display='none';document.getElementById('retract-forecast').style.display='block';for(c=5;c<=7;c++){if(document.getElementById('fcst_desc'+c).innerHTML.length>1){document.getElementById('fcst_'+c).style.display='block'}}}else{if(b){createCookie('extended','0',365)}document.getElementById('extend-forecast').style.display='block';document.getElementById('retract-forecast').style.display='none';for(c=5;c<=7;c++){document.getElementById('fcst_'+c).style.display='none'}}}function ReplaceCity(a,b){var c=b+"cities";var d=a;eraseCookie(c);createCookie(c,d,365);hideURLbar();UpdateObs()}function GetCitiesList(a,b,c){xmlHttp=GetXmlHttpObject();if(xmlHttp==null){alert("Your browser does not support AJAX!");return}DestinationID="OutputCityList";document.getElementById(DestinationID).innerHTML="Finding Cities...";FocusID="Cities";var d="wmofillcitieslist.php?countryid="+a+"&cookieprefix="+b+"&selfunction="+c;xmlHttp.onreadystatechange=stateChanged;xmlHttp.open("GET",d,true);xmlHttp.send(null)}function stateChanged(){if(xmlHttp.readyState==4){document.getElementById(DestinationID).innerHTML=xmlHttp.responseText;if(FocusID!=null){document.getElementById(FocusID).focus();document.getElementById(FocusID).select();window.location="#"+DestinationID}}}function GetXmlHttpObject(){var a=null;try{a=new XMLHttpRequest()}catch(e){try{a=new ActiveXObject("Msxml2.XMLHTTP")}catch(e){a=new ActiveXObject("Microsoft.XMLHTTP")}}return a}
