function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      if (oldonload) {
        oldonload();
      }
      func();
    }
  }
}
var requestObj=null;
function getWeather(){
  if(document.getElementById("WeatherCurrent")==null) return;
  requestObj=getXMLHttpRequestObj();
  if(requestObj==null) {
    document.getElementById("WeatherCurrent").innerHTML="Wetterdaten z.Z nicht verfügbar!";
    return;
  }
  var url='/www/internet/navioben/wetter/data.xml';
  requestObj.open('get', url ,true);
  requestObj.onreadystatechange = handleWeather;
  requestObj.send(null);
}

function handleWeather(){
  if(requestObj.readyState!=4) return;
  if(requestObj.status<200 || requestObj.status>299){
    document.getElementById("WeatherCurrent").innerHTML="Wetterdaten z.Z nicht verfügbar!";
    return;
  }
  var xml=requestObj.responseXML.getElementsByTagName("cc");
  if(xml==null || xml.length==0){
    document.getElementById("WeatherCurrent").innerHTML="Wetterdaten z.Z nicht verfügbar!";
    return;
  }
  temp=getXMLData(xml[0],"tmp",s);
  gtemp=getXMLData(xml[0],"flik",s);
  prog=getXMLData(xml[0],"t",s);
  icon=getXMLData(xml[0],"icon",s);
  icon = "" + icon + "_64.png";

  // Luftdruck
  var xml_bar = xml[0].getElementsByTagName("bar");
  pressure = getXMLData(xml_bar[0], "r", s);
  pressure_next = getXMLData(xml_bar[0], "d", s);
  if(weatherlang[pressure_next.toUpperCase()]!=undefined) pressure_next=weatherlang[pressure_next.toUpperCase()];

  // Wind
  var xml_wind = xml[0].getElementsByTagName("wind");
  wind = getXMLData(xml_wind[0], "s", s);
  winddir = getXMLData(xml_wind[0], "t", s);
  if(weatherlang[winddir.toUpperCase()]!=undefined) winddir=weatherlang[winddir.toUpperCase()];

  
  xml=requestObj.responseXML.getElementsByTagName("loc");
  ort=getXMLData(xml[0],"dnam",s);
  ort=ort.substring(0,ort.indexOf(","));
  sa=getXMLData(xml[0],"sunr",s);
  sa=""+sa.substring(0,sa.indexOf(" "));
  su=getXMLData(xml[0],"suns",s);
  su=""+(12+parseInt(su.substring(0,su.indexOf(":")),10))+":"+su.substring(su.indexOf(":")+1,su.indexOf(" "));
  if(weatherlang[prog.toUpperCase()]!=undefined) prog=weatherlang[prog.toUpperCase()];
  var s="<strong>Lage:</strong> "+prog+"<br>";
  s=s+"<strong>Temperatur:</strong> "+temp+"°C<br>";
  s=s+"<strong>gefühlt:</strong> "+gtemp+"°C<br>";
  s=s+"<strong>Wind:</strong> " + wind + "km/h &nbsp;" + winddir + "<br>";
  s=s+"<strong>Luftdruck:</strong> " + pressure + "mb &nbsp;" + pressure_next + "<br>";
  s=s+"<strong>Sonnenaufgang:</strong> " + sa;
  s=s+"<br><strong>Sonnenuntergang:</strong> " + su;
  document.getElementById("WeatherCurrent").innerHTML=s;
  var image = new Image(64,64);
  image.onload = function() {
		this.onload = null;
		var supported = /MSIE ((5\.5)|[6])/.test(navigator.userAgent) && navigator.platform == "Win32";
		if (supported) {
			var src = this.src;
			var blankSrc = "blank.gif";
			this.src = blankSrc;
			this.runtimeStyle.filter = "progid:DXImageTransform.Microsoft." + "AlphaImageLoader(src='" + src + "',sizingMethod='scale')";
		}
  }
  image.alt = prog;
  image.src = icon;
  //document.getElementById("WeatherIcon").innerHTML = "<img class='png' src='"+icon+"' align='right'>";
  document.getElementById("WeatherIcon").appendChild(image);

  // Voraussage
  var xml_forecast = requestObj.responseXML.getElementsByTagName("dayf");
  var xml_days = xml_forecast[0].getElementsByTagName("day");

  // Tag Heute
  hi = getXMLData(xml_days[0], "hi", s);
  low = getXMLData(xml_days[0], "low", s);
  sa=getXMLData(xml_days[0],"sunr",s);
  sa=""+sa.substring(0,sa.indexOf(" "));
  su=getXMLData(xml_days[0],"suns",s);
  su=""+(12+parseInt(su.substring(0,su.indexOf(":")),10))+":"+su.substring(su.indexOf(":")+1,su.indexOf(" "));

  var xml_tag = xml_days[0].getElementsByTagName("part");
  tag_icon = "" + getXMLData(xml_tag[0],"icon",s) + "_64.png";
  tag_lage = getXMLData(xml_tag[0],"t",s);
  if(weatherlang[tag_lage.toUpperCase()]!=undefined) tag_lage=weatherlang[tag_lage.toUpperCase()];

  nacht_icon = "" + getXMLData(xml_tag[1],"icon",s) + "_64.png";
  nacht_lage = getXMLData(xml_tag[1],"t",s);
  if(weatherlang[nacht_lage.toUpperCase()]!=undefined) nacht_lage=weatherlang[nacht_lage.toUpperCase()];

  s = "<strong>Temperaturen (max / min):</strong><br>" + hi + "°C / " + low + "°C<br><br>";
  s = s + "<strong>Tag:</strong> " + tag_lage + "<br>";
  s = s + "<strong>Nacht:</strong> " + nacht_lage + "<br><br>";
  s = s + "<strong>Sonnenaufgang:</strong> " + sa;
  s = s + "<br><strong>Sonnenuntergang:</strong> " + su;
  var image_today_day = new Image(64,64);
  image_today_day.onload = function() {
	this.onload = null;
		var supported = /MSIE ((5\.5)|[6])/.test(navigator.userAgent) && navigator.platform == "Win32";
		if (supported) {
			var src = this.src;
			var blankSrc = "blank.gif";
			this.src = blankSrc;
			this.runtimeStyle.filter = "progid:DXImageTransform.Microsoft." + "AlphaImageLoader(src='" + src + "',sizingMethod='scale')";
		}
  }
  image_today_day.alt = tag_lage;
  image_today_day.src = tag_icon;
//  document.getElementById("WeatherForecastToday_Icon").appendChild(image_today_day);
//  document.getElementById("WeatherForecastToday").innerHTML = s;

  // Tag Morgen
  hi = getXMLData(xml_days[1], "hi", s);
  low = getXMLData(xml_days[1], "low", s);
  sa=getXMLData(xml_days[1],"sunr",s);
  sa=""+sa.substring(0,sa.indexOf(" "));
  su=getXMLData(xml_days[1],"suns",s);
  su=""+(12+parseInt(su.substring(0,su.indexOf(":")),10))+":"+su.substring(su.indexOf(":")+1,su.indexOf(" "));

  var xml_tag = xml_days[1].getElementsByTagName("part");
  tag_icon = "" + getXMLData(xml_tag[0],"icon",s) + "_64.png";
  tag_lage = getXMLData(xml_tag[0],"t",s);
  if(weatherlang[tag_lage.toUpperCase()]!=undefined) tag_lage=weatherlang[tag_lage.toUpperCase()];

  nacht_icon = getXMLData(xml_tag[1],"icon",s) + "_64.png";
  nacht_lage = getXMLData(xml_tag[1],"t",s);
  if(weatherlang[nacht_lage.toUpperCase()]!=undefined) nacht_lage=weatherlang[nacht_lage.toUpperCase()];

  s = "<strong>Temperaturen (max / min):</strong><br>" + hi + "°C / " + low + "°C<br>";
  s = s + "<strong>Tag:</strong> " + tag_lage + "<br>";
  s = s + "<strong>Nacht:</strong> " + nacht_lage + "<br>";
  s = s + "<strong>Sonnenaufgang:</strong> " + sa;
  s = s + "<br><strong>Sonnenuntergang:</strong> " + su;
  var image_tomorrow_day = new Image(64,64);
  image_tomorrow_day.onload = function() {
	this.onload = null;
		var supported = /MSIE ((5\.5)|[6])/.test(navigator.userAgent) && navigator.platform == "Win32";
		if (supported) {
			var src = this.src;
			var blankSrc = "blank.gif";
			this.src = blankSrc;
			this.runtimeStyle.filter = "progid:DXImageTransform.Microsoft." + "AlphaImageLoader(src='" + src + "',sizingMethod='scale')";
		}
  }
  image_tomorrow_day.alt = tag_lage;
  image_tomorrow_day.src = tag_icon;
  document.getElementById("WeatherForecastTomorrow_Icon").appendChild(image_tomorrow_day);
  document.getElementById("WeatherForecastTomorrow").innerHTML = s;

}

// XMLHttpRequestObject erzeugen wenn möglich
function getXMLHttpRequestObj() {
  var resObject = null;
  try {
    resObject = new ActiveXObject("Microsoft.XMLHTTP");
  }
  catch (Error) {
    try {
      resObject = new ActiveXObject("MSXML2.XMLHTTP");
    }
    catch (Error) {
      try {
        resObject = new XMLHttpRequest();
      }
      catch (Error) { }
    }
  }
  return resObject;
};

function getXMLData(source,tag,type){
  var value="";
  var xdata=source.getElementsByTagName(tag)[0];
  if(xdata && xdata.hasChildNodes()){
    value=xdata.firstChild.data;
  }
  if(type=="i" && value.length>0 && !isNaN(value)) return parseInt(value,10);
  else if(type=="i") return 0;
  if(type=="f" && value.length>0 && !isNaN(value)) return parseFloat(value,10);
  else if(type=="f") return 0.0;
  if ( type=="b" &&  (value=="true" || value=="1" || value=="j") ) return true;
  else if (type=="b") return false;
  return value;
};

addLoadEvent(function(){getWeather()});

var weatherlang={
"AM CLOUDS / PM SUN":"Vormittags wolkig später sonnig",
"AM LIGHT RAIN":"vormittags leichter Regen",
"AM LIGHT SNOW":"vormittags leichter Schneefall",
"AM RAIN / SNOW SHOWERS":"vormittags Regen- u. Schneeschauer",
"AM RAIN / SNOW SHOWERS / WIND":"vorm. Regen-, Schneeschauer,windig",
"AM SNOW SHOWERS":"vormittags Schneeschauer",
"AM SNOW SHOWERS / WIND":"vormittags Schneeschauer, windig",
"AM SHOWERS":"vormittags Schauer",
"AM T-STORMS":"vormittags Gewitter",
"AM":"vormittags",
"AND":"und",
"AT":"mit",
"CALM":"windstill",
"CET":"MEZ",
"CLEAR":"heiter",
"CLEARING":"aufklarend ",
"CLOUDS":"wolkig",
"CLOUDS EARLY / CLEARING LATE":"wolkig, später aufklarend",
"CLOUDY":"wolkig ",
"CLOUDY AND WINDY":"wolkig und stürmisch",
"CLOUDY / WIND":"bewölkt und stürmisch",
"DRIZZLE":"Nieselregen",
"E":"Ost",
"ENE":"OstNordOst",
"ESE":"OstSüdOst",
"EXTREME":"extrem stark",
"FAIR":"heiter",
"FAIR AND WINDY":"Heiter und windig",
"FALLING":"fallend ",
"FEW SHOWERS":"etwas Schauer",
"FEW SNOW SHOWERS":"einige Schneeschauer",
"FEW SNOW SHOWERS / WIND":"einige Schneeschauer, windig",
"FIRST QUARTER":"zunehmender Halbmond",
"FOG":"Nebel",
"FOG LATE":"später Nebel",
"FREEZING RAIN":"Eisregen",
"FRIDAY":"Freitag",
"FULL":"Vollmond",
"FULL MOON":"Vollmond",
"GERMANY":"Deutschland",
"HAZE":"dunstig",
"HEAVY T-STORM AND WINDY":"schwere Gewitter, stürmisch",
"HIGH":"hoch",
"ICE CRYSTALS":"Eiskristalle",
"ICE EARLY":"anfangs Eisglätte",
"ISOLATED T-STORMS":"örtlich Gewitter",
"ISOLATED":"örtlich ",
"LAST QUARTER":"abnehmender Halbmond",
"LIGHT DRIZZLE":"leichter Nieselregen",
"LIGHT FREEZING DRIZZLE":"leichter Nieselregen, überfrierend",
"LIGHT RAIN AND WINDY":"leichter Regen, stürmisch",
"LIGHT RAIN / WIND":"leichter Regen, windig",
"LIGHT RAIN EARLY":"anfangs leichter Regen",
"LIGHT RAIN LATE":"später leichter Regen",
"LIGHT RAIN SHOWER":"leichte Schauer ",
"LIGHT RAIN SHOWER AND WINDY":"leichte Regenschauer, stürmisch",
"LIGHT RAIN":"leichter Regen",
"LIGHT SNOW":"leichter Schneefall",
"LIGHT SNOW EARLY":"anfangs leichter Schneefall",
"LIGHT SNOW LATE":"später leichter Schneefall",
"LIGHT SNOW SHOWER":"leichter Schneeschauer",
"LIGHT SNOW SHOWERS":"leichte Schneeschauer",
"LIGHT SNOW AND WINDY":"leichter Schneefall, stürmisch",
"LIGHT SNOW / WIND":"leichter Schneefall, stürmisch",
"LIGHT SNOW / FOG":"leichter Schneefall, neblig",
"LOW":"niedrig",
"MIST":"Nebel ",
"MIST AND WINDY":"Nebel und windig",
"MODERATE":"mäßig",
"MONDAY":"Montag",
"MOSTLY CLEAR":"überwiegend heiter",
"MOSTLY CLOUDY AND WINDY":"ÜBERWIEGEND BEWÖLKT, STÜRMISCH",
"MOSTLY CLOUDY / WIND":"überwiegend bewölkt, stürmisch",
"MOSTLY CLOUDY":"überwiegend bewölkt",
"MOSTLY SUNNY":"überwiegend sonnig",
"MOSTLY":"überwiegend",
"N":"Nord",
"N/A":" ",
"NE":"NordOst",
"NEW MOON":"Neumond",
"NEW":"Neumond",
"NNE":"NordNordOst",
"NNW":"NordNordWest",
"NW":"NordWest",
"OVERCAST":"bedeckt",
"PARTLY CLOUDY AND WINDY":"teilweise bewölkt und stürmisch",
"PARTLY CLOUDY / WIND":"teils bewölkt und stürmisch",
"PARTLY CLOUDY":"teils wolkig",
"PARTLY":"teils",
"PATCHES OF FOG":"vereinzelt Nebel",
"PM LIGHT RAIN":"nachmittags leichter Regen",
"PM LIGHT RAIN / WIND":"nachmittags leichter Regen / windig",
"PM LIGHT SNOW":"nachmittags leichter Schneefall",
"PM RAIN / SNOW SHOWERS":"nachmittags Regen- u. Schneeschauer",
"PM RAIN / SNOW SHOWERS / WIND":"nachmittags Regen- u. Schneeschauer / windig",
"PM SHOWERS":"nachmittags Schauer",
"PM SNOW SHOWERS":"nachmittags Schneeschauer",
"PM SNOW SHOWERS / WIND":"nachmittags Schneeschauer / windig",
"PM T-STORMS":"nachmittags Gewitter",
"PM":"nachmittags",
"RAIN":"Regen",
"RAIN / FREEZING RAIN":"Regen, später gefrierend",
"RAIN / SNOW":"Regen / Schnee",
"RAIN / SNOW SHOWERS":"Regen- und Schneeschauer",
"RAIN / THUNDER":"Regen / Gewitter",
"RAIN / WIND":"Regen, stürmisch",
"RAIN / WINDY":"Regen, stürmisch",
"RAIN / SNOW SHOWERS EARLY":"anfangs Schnee- und Regenschauer",
"RAIN / SNOW SHOWERS LATE":"später Schnee- und Regenschauer",
"RAIN / SNOW SHOWERS / WIND":"Regen- Schneeschauer, stürmisch",
"RAIN / SNOW SHOWERS / WIND EARLY":"Regen- Schneeschauer, stürmisch",
"RAIN / SNOW / WIND":"stürmisch, Regen und Schnee",
"RAIN AND SNOW":"Regen und Schnee",
"RAIN AND WINDY":"Regen, stürmisch",
"RAIN LATE":"später Regen",
"RAIN SHOWER":"Regenschauer",
"RAIN TO SNOW":"Regen, in Schnee übergehend",
"RISING":"steigend",
"S":"Süd",
"SATURDAY":"Samstag",
"SCATTERED SHOWERS / WIND":"vereinzelt Schauer, stürmisch",
"SCATTERED SHOWERS":"vereinzelt Schauer",
"SCATTERED SNOW SHOWERS":"vereinzelt Schneeschauer",
"SCATTERED SNOW SHOWERS / WIND":"vereinzelt Schneeschauer, stürmisch",
"SCATTERED T-STORMS":"vereinzelte Gewitter",
"SCATTERED":"vereinzelt",
"SE":"SüdOst",
"SHOWER":"Schauer",
"SHOWERS / WIND":"Schauer, stürmisch",
"SHOWERS EARLY":"anfangs Schauer",
"SHOWERS IN THE VICINITY":"im Verlauf Schauer",
"SHOWERS LATE":"später Schauer",
"SHOWERS":"Schauer",
"SNOW":"Schnee",
"SNOW AND WINDY":"Schnee, stürmisch",
"SNOW AND FOG":"Schnee, neblig",
"SNOW EARLY":"anfangs Schneefall",
"SNOW SHOWERS":"Schneeschauer",
"SNOW SHOWER":"Schneeschauer",
"SNOW SHOWERS EARLY":"anfangs Schneeschauer",
"SNOW SHOWERS LATE":"später Schneeschauer",
"SNOW SHOWERS / WIND":"Schneeschauer, stürmisch",
"SNOW SHOWERS / WIND LATE":"Schneeschauer, später stürmisch",
"SNOW SHOWER / WIND":"Schneeschauer, stürmisch",
"SNOW TO WINTRY MIX":"Schnee, später Schneeregen",
"SSE":"SüdSüdOst",
"SSW":"SüdSüdWest",
"STEADY":"beständig",
"SUNDAY":"Sonntag",
"SUNNY":"sonnig",
"SW":"SüdWest",
"THE":"der",
"THIRD QUARTER":"abnehmender Halbmond",
"THUNDER":"Gewitter",
"THURSDAY":"Donnerstag",
"T-SHOWERS":"tropische Schauer",
"T-STORM":"Gewitter",
"T-STORM AND WINDY":"Gewitter, stürmisch",
"T-STORMS":"Gewitter",
"T-STORMS EARLY":"anfangs Gewitter",
"TUESDAY":"Dienstag",
"UNLIMITED":"unbegrenzt",
"UNKNOWN PRECIP":"Niederschlag",
"VAR":"versch. Richtungen",
"VERY HIGH":"Sehr hoch",
"W":"West",
"WANING CRESCENT":"abnehmende Sichel",
"WANING GIBBOUS":"abnehmender 3/4 Mond",
"WANING HALF, LAST QUARTER":"abnehmender Viertelmond",
"WAXING CRESCENT":"zunehmende Sichel",
"WAXING GIBBOUS":"zunehmender 3/4 Mond",
"WAXING HALF, FIRST QUARTER":"zunehmender Viertelmond",
"WEDNESDAY":"Mittwoch",
"WINTRY MIX":"Schneeregen",
"WINTRY MIX / WIND":"Schneeregen, stürmisch",
"WNW":"WestNordWest",
"WSW":"WestSüdWest",
"THUNDER IN THE VICINITY":"Gewitter im Umland"
}
