<!-- Begin
// <![CDATA[
// Ajax VWS update Script voor Weerstation Damwoude
// De basis voor dit Script komt van Saragota Weather http://saratoga-weather.org/

// -- begin instellingen --
var flashkleur = '#00CC00'; // Kleur tijdens update
var flashtijd  = '3000';    // Tijdsduur kleurverandering 3000= 3 sec
var maxupdates = 0; // Maximaal aantal updates (0 = onbeperkt)
var reloadTijd = 30000; // Controleer op update elke 30 seconden (1000 = 1 sec)
// -- einde instellingen --

// Browserdetectie voor een goede werking in alle browsers.
var ie4 = document.all;
var browser = navigator.appName;
var ie8 = false;
if (ie4 && /MSIE (\d+\.\d+);/.test(navigator.userAgent)){ //test voor MSIE x.x versie
var ieversion = new Number(RegExp.$1) // Reguliere expressies  gebruiken om, om te zetten naar versie nummer.
if (ieversion>= 8) {
ie4 = true; // true voor gebruik in combinatie met "X-UA-Compatible: IE=EmulateIE7" in php header anders false
ie8 = false; // als true instellen voor gebruik zonder "X-UA-Compatible: IE=EmulateIE7" in php header
}
}
var counterSecs = 0;  // Tellercomponent
var lastajaxtime = 'unknown'; // Resetfunctie bij real time update

function get_ajax_tags ( ) {
if (ie4 && browser != "Opera" && ! ie8) {
var elem = document.body.getElementsByTagName('span');
var lookfor = 'className';
} else {
var elem = document.getElementsByTagName('span');
var lookfor = 'class';
}
var arr = new Array();
for(i = 0,iarr = 0; i < elem.length; i++) {
att = elem[i].getAttribute(lookfor,0);
if(att == 'ajax') {
arr[iarr] = elem[i];
iarr++;
}
}

return arr;
}
// Resetfunctie ajaxupdate kleur
function reset_ajax_color( usecolor ) {
var elements = get_ajax_tags();
var numelements = elements.length;
for (var index = 0;index!= numelements;index++) {
var element = elements[index];
element.style.color = usecolor;
}
}

function set_ajax_obs( name, value ) {

var element = document.getElementById(name);
if (! element ) { return; } // V1.04 -- Niets doen wanneer er iets niet aanwezig is.
var lastobs = element.getAttribute("lastobs");
element.setAttribute("lastobs",value);
if (value != lastobs) {
element.style.color = flashkleur;
}
element.innerHTML =  value;
}
function set_ajax_uom( name, onoroff ) {

var element = document.getElementById(name);
if (! element ) { return; } 
if (onoroff) {
element.style.display = 'inline';
} else {
element.style.display = 'none';
}
}

// Teller fuctie
function ajax_countup() {
element = document.getElementById("ajaxteller");
if (element) {
element.innerHTML = counterSecs;
counterSecs++;
}
}

// AJAX routine
function ajaxLoader(url) {
if (document.getElementById) {
var x = (window.ActiveXObject) ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest(url);
}
if (x) {
x.onreadystatechange = function() {
if (x.readyState == 4 && x.status == 200) {

//Tijdcontrole update en resetfunctie
var ajaxtime = x.responseText.split(',')[0];
set_ajax_obs("ajaxtime",ajaxtime);
 
if (lastajaxtime != ajaxtime) { 
counterSecs = 0; //reset tijd                   
lastajaxtime = ajaxtime; // onthoud deze tijd
}

//Tijd
set_ajax_obs("tijd",x.responseText.split(',')[0]);

//Datum
set_ajax_obs("datum",x.responseText.split(',')[1]);

//Temperatuur
set_ajax_obs("temp",x.responseText.split(',')[2]);

//Dauwpunt
set_ajax_obs("dauw",x.responseText.split(',')[3]);

//Relatieve luchtvochtigheid
set_ajax_obs("vocht",x.responseText.split(',')[4]);

//Barometer
set_ajax_obs("barometer",x.responseText.split(',')[5]);

//Barometertrend
var pressurerate = x.responseText.split(',')[6];
set_ajax_obs("barotrend",ajax_set_barotrend(pressurerate));

//Windrichting
var windrichtingen = x.responseText.split(',')[7];
set_ajax_obs("windrichting",ajax_get_richting(windrichtingen));

//Windsnelheid
set_ajax_obs("windsnelheid",x.responseText.split(',')[8]);

//Beaufortwaarde
var beaufort = x.responseText.split(',')[8];
set_ajax_obs("windkracht",ajax_get_beaufort(beaufort));

//Gevoelstemperatuur
set_ajax_obs("gevoelstemperatuur",x.responseText.split(',')[9]);

//Neerslag vandaag
set_ajax_obs("regenvd",x.responseText.split(',')[10]);

//Neerslagindicator
var neerslag = x.responseText.split(',')[11];
set_ajax_obs("neerslagindicator",ajax_get_paraplu(neerslag));

//Neerslag intensiteit
set_ajax_obs("regenvolume",x.responseText.split(',')[11]);

//Neerslag dit jaar
set_ajax_obs("regenjr",x.responseText.split(',')[12]); 

//Dampdruk
set_ajax_obs("dampdruk",x.responseText.split(',')[13]);

//Wolkbasis
set_ajax_obs("wolkbasis",x.responseText.split(',')[14]); 

//comfortlevel
var comfortlevel = x.responseText.split(',')[15];
set_ajax_obs("comfort",ajax_get_comfort(comfortlevel));

//Virtuele temperatuur
set_ajax_obs("virtemp",x.responseText.split(',')[16]);

//Maximum temperatuur
set_ajax_obs("maxtemp",x.responseText.split(',')[17]);

//Minimum temperatuur
set_ajax_obs("mintemp",x.responseText.split(',')[18]);

//Maximum gevoelstemperatuur
set_ajax_obs("maxgevoel",x.responseText.split(',')[19]);

//Minimum gevoelstemperatuur
set_ajax_obs("mingevoel",x.responseText.split(',')[20]);

//Maximum windsnelheid (10 min)
set_ajax_obs("maxwind",x.responseText.split(',')[21]);

//Maximum luchtvochtigheid
set_ajax_obs("maxvocht",x.responseText.split(',')[22]);

//Minimum luchtvochtigheid
set_ajax_obs("minvocht",x.responseText.split(',')[23]);

//Maximum dauwpunt
set_ajax_obs("maxdauw",x.responseText.split(',')[24]);

//Minimum dauwpunt
set_ajax_obs("mindauw",x.responseText.split(',')[25]);

//Maximum barometerstand
set_ajax_obs("maxbaro",x.responseText.split(',')[26]);

//Minimum barometerstand
set_ajax_obs("minbaro",x.responseText.split(',')[27]);

//Zonkracht (UV-index)
set_ajax_obs("zonkracht",x.responseText.split(',')[28]);

//Zonnestraling in Watt's
set_ajax_obs("zonnestraling",x.responseText.split(',')[29]);

//Bladnat
var bladnatstatus = x.responseText.split(',')[30];
set_ajax_obs("bladnat",ajax_get_bladnat(bladnatstatus));

//Gewasverdamping
set_ajax_obs("gewasverdamping",x.responseText.split(',')[31]);

//Temperatuur op 10 cm hoogte
set_ajax_obs("temp10cm",x.responseText.split(',')[32]);

//Maximum Zonkracht vandaag
set_ajax_obs("maxzonkracht",x.responseText.split(',')[33]); 

//Grond vochtspanning
set_ajax_obs("grondvochtspanning",x.responseText.split(',')[34]);

//Vorstgevaar
var vorstgevaar = x.responseText.split(',')[35];
set_ajax_obs("vorstwaarschuwing",ajax_get_vorstgevaar(vorstgevaar)); 

//Windgevaar
var windgevaar = x.responseText.split(',')[38];
set_ajax_obs("windwaarschuwing",ajax_get_windgevaar(windgevaar));

//Min. temperatuur op 10 cm hoogte
set_ajax_obs("mintemp10cm",x.responseText.split(',')[36]); 

//Neerslag afgelopen 24 uur
set_ajax_obs("regen24",x.responseText.split(',')[37]); 

//Windvlaag gemiddelde
set_ajax_obs("windvlaag",x.responseText.split(',')[38]);

//Windactueel
set_ajax_obs("windactueel",x.responseText.split(',')[39]);

//Neerslag deze maand
set_ajax_obs("regenmd",x.responseText.split(',')[40]);

//Bezig met laden tekst en indicator
set_ajax_obs("laden",('Temperatuur:<br>(op 150 cm)'));

//Indicator alt+7 (•)
element = document.getElementById("ajaxindicator");
if (element) { // Stel kleur indicator in als <span id="ajaxindicator" class="ajax">•</span> bestaat.
element.style.color = flashkleur;
}
}
}
// Hieronder worden bepaalde waarden omgezet of vertaald.
function ajax_set_barotrend(trend) {

if ((trend >= -0.21) && (trend <= 0.21)) { return("Stabiel"); }
if ((trend > 0.21) && (trend < 0.7)) { return("Stijgend"); }
if (trend >= 0.7) { return("Snel stijgend"); }
if ((trend < -0.21) && (trend > -0.7)) { return("Dalend"); }
if (trend <= -0.7) { return("Snel dalend"); }
return(trend);
}

// Beaufort waarde.
function ajax_get_beaufort ( wind ) {
if (wind  < 1 ) {return('Kracht 0 <img src="info.gif" name="info" style="cursor: pointer; vertical-align: middle;" alt="Windstil" title="Windstil" width=15 height=15 border=0>'); }
if (wind  < 6 ) {return('Kracht 1 <img src="info.gif" name="info" style="cursor: pointer; vertical-align: middle;" alt="Lichte koelte" title="Lichte koelte" width=15 height=15 border=0>'); }
if (wind  < 12 ) {return('Kracht 2 <img src="info.gif" name="info" style="cursor: pointer; vertical-align: middle;" alt="Zwakke wind" title="Zwakke wind" width=15 height=15 border=0>'); }
if (wind  < 20 ) {return('Kracht 3 <img src="info.gif" name="info" style="cursor: pointer; vertical-align: middle;" alt="Zwakke tot matige wind" title="Zwakke tot matige wind" width=15 height=15 border=0>'); }
if (wind  < 29 ) {return('Kracht 4 <img src="info.gif" name="info" style="cursor: pointer; vertical-align: middle;" alt="Matige wind" title="Matige wind" width=15 height=15 border=0>'); }
if (wind  < 39 ) {return('Kracht 5 <img src="info.gif" name="info" style="cursor: pointer; vertical-align: middle;" alt="Matige tot vrij krachtige wind" title="Matige tot vrij krachtige wind" width=15 height=15 border=0>'); }
if (wind  < 50 ) {return('Kracht 6 <img src="info.gif" name="info" style="cursor: pointer; vertical-align: middle;" alt="Krachtige wind" title="Krachtige wind" width=15 height=15 border=0>'); }
if (wind  < 62 ) {return('Kracht 7 <img src="info.gif" name="info" style="cursor: pointer; vertical-align: middle;" alt="Harde wind" title="Harde wind" width=15 height=15 border=0>'); }
if (wind  < 75 ) {return('Kracht 8 <img src="info.gif" name="info" style="cursor: pointer; vertical-align: middle;" alt="Stormachtige wind" title="Stormachtige wind" width=15 height=15 border=0>'); }
if (wind  < 89 ) {return('Kracht 9 <img src="info.gif" name="info" style="cursor: pointer; vertical-align: middle;" alt="Storm" title="Storm" width=15 height=15 border=0>'); }
if (wind  < 102 ) {return('Kracht 10 <img src="info.gif" name="info" style="cursor: pointer; vertical-align: middle;" alt="Zware storm" title="Zware storm" width=15 height=15 border=0>'); }
if (wind <= 117 ) {return('Kracht 11 <img src="info.gif" name="info" style="cursor: pointer; vertical-align: middle;" alt="Zeer zware storm" title="Zeer zware storm" width=15 height=15 border=0>'); }
if (wind > 117 ) {return('Kracht 12 <img src="info.gif" name="info" style="cursor: pointer; vertical-align: middle;" alt="Orkaan" title="Orkaan" width=15 height=15 border=0>'); }
return("?-unknown" + wind);
}

// Windrichting.
function ajax_get_richting ( windrichting ) {
if (windrichting == "N" ) {return('Noord'); }
if (windrichting == "NNE" ) {return('Noord Noord-Oost'); }
if (windrichting == "NE" ) {return('Noordoost'); }
if (windrichting == "ENE" ) {return('Oost Noord-Oost'); }
if (windrichting == "E" ) {return('Oost'); }
if (windrichting == "ESE" ) {return('Oost Zuid-Oost'); }
if (windrichting == "SE" ) {return('Zuidoost'); }
if (windrichting == "SSE" ) {return('Zuid Zuid-Oost'); }
if (windrichting == "S" ) {return('Zuid'); }
if (windrichting == "SSW" ) {return('Zuid Zuid-West'); }
if (windrichting == "SW" ) {return('Zuidwest'); }
if (windrichting == "WSW" ) {return('West Zuid-West'); }
if (windrichting == "W" ) {return('West'); }
if (windrichting == "WNW" ) {return('West Noord-West'); }
if (windrichting == "NW" ) {return('Noordwest'); }
if (windrichting == "NNW" ) {return('Noord Noord-West'); }
return("?-unknown" + windrichting);
}

// regenindicator ( paraplu ).
function ajax_get_paraplu (regen) {
if (regen < 0.2 ) {return(''); }
if (regen >= 0.2 ) {return('<img src="paraplu.gif" name="paraplu" style="cursor: pointer; vertical-align: middle;" alt="Neerslagindicator" title="Neerslagindicator" width="23" height="14" border="0">'); }
return(regen);
}

//comfort beleving
function ajax_get_comfort ( comfort ) {
if (comfort == "Extreme Cold" ) {return('Extreem koud'); }
if (comfort == "Uncomfortably Cold" ) {return('Onaangenaam koud'); }
if (comfort == "Cool" ) {return('Frisjes'); }
if (comfort == "Comfortable" ) {return('Aangenaam'); }
if (comfort == "Warm" ) {return('Warm'); }
if (comfort == "Uncomfortably Hot" ) {return('Onaangenaam warm'); }
if (comfort == "Extreme Hot" ) {return('Extreem warm'); }
return("?-unknown" + comfort);
}

// Vorstgevaar waarschuwingssysteem.
function ajax_get_vorstgevaar (vorst) {
if (vorst <= 0 ) {return('<object type="application/x-shockwave-flash"  data="gevaar.swf" width="51" height="47"><param name="wmode" value="transparent"><param name="play" value="true"><param name="movie" value="gevaar.swf"><param name="scale" value="exactfit"><param name="align" value="middle"><param name="menu" value="True"><param name="quality" value="high"></object>'); }
if (vorst > 0 ) {return(''); }
return(vorst);
}

// Harde wind waarschuwingssysteem.
function ajax_get_windgevaar (windalarm) {
if (windalarm > 49 ) {return(' <object type="application/x-shockwave-flash"  data="wind.swf" width="51" height="47"><param name="wmode" value="transparent"><param name="play" value="true"><param name="movie" value="wind.swf"><param name="scale" value="exactfit"><param name="align" value="middle"><param name="menu" value="True"><param name="quality" value="high"></object>'); }
if (windalarm <= 49 ) {return(''); }
return(windalarm);
}

// Bladnat.
function ajax_get_bladnat (bladnat) {
if (bladnat == 0) {return ('Droog');}
if (bladnat <= 5) {return ('Bijna droog');}
if (bladnat <= 10){return ('licht-vochtig');}
if (bladnat <= 15){return ('Vochtig/nat');}
return (bladnat);
}

x.open("GET", url, true);
x.setRequestHeader("Cache-Control", "no-cache");
x.send(null);
if ( (maxupdates == 0) || (updates < maxupdates-1)) // Maximum aantal updates 0 is onbeperkt.
{
setTimeout("ajaxLoader('update.csv?'+new Date())", reloadTijd); // Controleer op update elke 30 seconden
}

setTimeout("reset_ajax_color('')",flashtijd); // Verander weer terug naar standaard kleur
}
}
// einde ajaxLoader functie

// Tel de seconden na de update
window.setInterval("ajax_countup()", 1000); // Tel de seconden sinds de laatste update

// Ajax pagina loader
// ajaxLoader('update.csv?'+new Date().getTime());
// ]]>
// End -->

