var xmlhttp=[];
var xmlhttp1=[];
var xmlhttp2=[];
var xmlhttp3=[];
var xmlhttp4=[];
var noSupportXMLhttp="Your browser does not support XMLHTTP.";
var res2=[];
var doc=document;
var language=navigator.language;
var SelectId = '';
var StationId = '';
var StationName = '';
var showMAP = true;
var mArray=Array();
var map;
var InfoTip="Klicken Sie auf Detail für eine kleinere Kartenansicht!";
var MapZoom=10;
var DetailZoom=14;
var normalProj=G_NORMAL_MAP.getProjection();
var threshold=5;
var sidebar_html="";
var gmarkers=[];
var htmls=[];
var i=0;
var totalDistance=0.0;
var Icon=new GIcon();
Icon.iconSize=new GSize(32,32);
Icon.shadowSize=new GSize(56,32);
Icon.iconAnchor=new GPoint(16,32);
Icon.infoWindowAnchor=new GPoint(16,0);
var gIcons=new Array();
gIcons.push(new GIcon(Icon,"img/pal2/icon27.png",null,"img/pal2/icon27s.png"));
gIcons.push(new GIcon(Icon,"img/pal2/icon56.png",null,"img/pal2/icon56s.png"));
gIcons.push(new GIcon(Icon,"img/pal5/icon14.png",null,"img/pal5/icon14s.png"));
gIcons.push(new GIcon(Icon,"img/pal3/icon21.png",null,"img/pal3/icon21s.png"));
gIcons.push(new GIcon(Icon,"img/pal2/icon10.png",null,"img/pal2/icon10s.png"));
gIcons.push(new GIcon(Icon,"img/pal2/icon62.png",null,"img/pal2/icon62s.png"));
gIcons.push(new GIcon(Icon,"img/pal2/icon63.png",null,"img/pal2/icon63s.png"));
gIcons.push(new GIcon(Icon,"img/pal2/icon57.png",null,"img/pal2/icon57s.png"));
gIcons.push(new GIcon(Icon,"img/pal3/icon47.png",null,"img/pal3/icon47s.png"));
gIcons.push(new GIcon(Icon,"img/pal3/icon46.png",null,"img/pal3/icon46s.png"));
gIcons.push(new GIcon(Icon,"img/pal3/icon56.png",null,"img/pal3/icon56s.png"));
gIcons.push(new GIcon(Icon,"img/pal3/icon26.png",null,"img/pal3/icon26s.png"));
gIcons.push(new GIcon(Icon,"img/pal2/icon12.png",null,"img/pal2/icon122.png"));
function doLoad(centerPoint) {
	if(GBrowserIsCompatible()){
		map=new GMap2(doc.getElementById("map"),{draggableCursor:"crosshair"});
		map.enableDoubleClickZoom();
		map.enableContinuousZoom();
		map.setCenter(centerPoint,MapZoom,G_HYBRID_MAP);
		map.addControl(new GMapTypeControl());
		map.addControl(new GSmallMapControl());
		GEvent.addListener(map,"moveend",function(){
			var center=map.getCenter();
			var LatLon=center.toString();
			});
	}else{
		alert("Sorry, the Google Maps API is not compatible with this browser");
	}
}
function DEC2DMS(dec) {
	var deg=Math.floor(Math.abs(dec));
	var min=Math.floor((Math.abs(dec)-deg)*60);
	var sec=(Math.round((((Math.abs(dec)-deg)-(min/60))*60*60)*100)/100);deg=dec<0?deg*-1:deg;
	var dms=deg+'° '+min+'\' '+sec+'"';
	return dms;
}
function KM2SM(km) {
	var nM=1.85201;
	var nM=km/nM;
	return nM;
}
function addMarkers() {
	if(mArray.length){
		var bounds = new GLatLngBounds();
		for(n=0;n<mArray.length;n++ ){
			var mData=mArray[n].split('#');
			var point=new GLatLng(mData[0],mData[1]);bounds.extend(point);
			var marker=createMarker(point,mData[2],mData[3]);
			map.addOverlay(marker);
		}
		map.setCenter(bounds.getCenter(),map.getBoundsZoomLevel(bounds));
	}
	mArray=array();
}
function createMarker(point,name,html) {
	var marker = new GMarker(point);
	GEvent.addListener(marker,"click",function() {
		marker.openInfoWindowHtml(html);
		});
	return marker;
}
function addTabMarker() {
	map.clearOverlays();
	if (mArray.length) {
		var bounds=new GLatLngBounds();
		for (n=0;n<mArray.length;n++) {
			var mData = mArray[n].split('#');
      var point=new GLatLng(mData[0],mData[1]);
			bounds.extend(point);
			var mClickable=true;
			var icon=mData[5];
			var marker=createTabMarker(point,mData[2],mData[3],mData[4],gIcons[icon]);
			map.addOverlay(marker);
		}
		map.setCenter(point, MapZoom);
	}
}
function mapClick(marker, point){
	if (!marker) {
		oLat=doc.getElementById("lat");
		oLat.value=point.y;
		oLon=doc.getElementById("lon");
		oLon.value=point.x;
		oDesc=doc.getElementById("desc");
		oDesc.value='Neue Location';
	}
}
function getMouseCoords(mouseLatLng){
	var zoom=map.getZoom();
	var oStatusDiv=doc.getElementById("statusDiv");
	oStatusDiv.innerHTML='Mouse LatLng:'+mouseLatLng.y.toFixed(6)+', '+mouseLatLng.x.toFixed(6);
	var latDMS=DEC2DMS(mouseLatLng.y.toFixed(6));
	var lonDMS=DEC2DMS(mouseLatLng.x.toFixed(6));
	oStatusDiv.innerHTML='aktuelle Maus Position'+'<'+'br/>Breite: '+latDMS+' Länge:'+lonDMS+'<'+'br/>Zoom:'+zoom;
}
function loadStationMap(lat,lon,id,sname,typ){
	var west='';
	if(lon.indexOf('W')!=-1){
		west='-';
	}
	clat=lat.substr(0,lat.indexOf('°'))*1;
	clon=west+(lon.substr(0,lon.indexOf('°'))*1);
	var centerPoint=new GLatLng(clat,clon);
	doLoad(centerPoint);
	mArray.push(clat+'#'+clon+'#'+id+'#'+sname+'#'+typ+'#'+lat+'#'+lon+'#8');
	addTabMarker();
}
function createTabMarker(point,StationID,StationName,StationTyp, icon){
	var htmlInfo='';
	htmlInfo+='<'+'div id="tab1" class="bubble">';
	htmlInfo+='Station-Name: <'+'b>'+StationName+'<'+'/b><'+'br>';
	htmlInfo+='Station-Id: <'+'b>'+StationID+'<'+'/b><'+'br>';
	htmlInfo+='Station-Id: <'+'b>'+StationTyp+'<'+'/b><'+'br>';
	htmlInfo+='<'+'/div>';
	htmlInfo+='<'+'br/> '+'<'+'div id="tab1_1" class="bubble">'+InfoTip+'<'+'/div>';
	var htmlInfo2="";
	htmlInfo2+='Lat (Dec): '+point.y+'<'+'br/>';
	htmlInfo2+='Long (Dec): ' + point.x;htmlInfo2+='<'+'hr style="height:1px" />';
	htmlInfo2+='Lat (DMS): '+DEC2DMS(point.y)+'<'+'br/>';
	htmlInfo2+='Long (DMS): '+DEC2DMS(point.x);
	htmlInfo2+='<'+'hr style="height:1px" />';
	htmlInfo2+='URL: '+'<'+'a href="http://topozone.com/map.asp?lat='+point.y+'&lon='+point.x;htmlInfo2+='&s=200&size=m&layer=DRG100&datum=nad83" target="_blank" class="abubble">'+StationName+' at Topozone<'+'/a<'+'br />';
	var marker=new GMarker(point,{icon:icon,title:StationName});
	GEvent.addListener(marker,"click",function(){
		map.closeInfoWindow();
		var tab1=new GInfoWindowTab("Info",'<'+'div id="tabMarkerHTML" style="width:280px;">'+htmlInfo+'<'+'/div>');
		var tab2=new GInfoWindowTab("Detail",'<'+'div id="detailmap">'+'<'+'/div>');
		var tab3=new GInfoWindowTab("Other",'<'+'div id="tab3" class="bubble">'+htmlInfo2+'<'+'/div>');
		var infoTabs=[tab1,tab2,tab3];
		marker.openInfoWindowTabsHtml(infoTabs);
		var dMapDiv=doc.getElementById("detailmap");
		var detailmap=new GMap2(dMapDiv);detailmap.setCenter(point ,DetailZoom,G_HYBRID_MAP);
		var CopyrightDiv=dMapDiv.firstChild.nextSibling;
		var CopyrightImg=dMapDiv.firstChild.nextSibling.nextSibling;CopyrightDiv.style.display="none";
		CopyrightImg.style.display="none";
		});
	return marker;
}
/*MAP stuff end*/
/*TIDE stuff start*/
function msXMLHttpRequest() {
	var xmlhttp=null;
	var msxmlhttp=new Array('Msxml2.XMLHTTP.5.0','Msxml2.XMLHTTP.4.0','Msxml2.XMLHTTP.3.0','Msxml2.XMLHTTP','Microsoft.XMLHTTP');
	for(var i=0;i<msxmlhttp.length;i++){
		try{
			xmlhttp = new ActiveXObject(msxmlhttp[i]);
			}catch(e){
				xmlhttp=null;
			}
		}
		return xmlhttp;
}
function loadXMLDoc1(url) {
	xmlhttp=null;
	if(window.XMLHttpRequest) {
		xmlhttp=new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		//xmlhttp=msXMLHttpRequest();
		xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
	}
	if(xmlhttp!=null){
		xmlhttp.onreadystatechange=parseStations;
		xmlhttp.open("GET",url,true);
		xmlhttp.send(null);
	}else{
		alert(noSupportXMLhttp);
	}
}
function loadXMLDoc2(url) {
	xmlhttp2 = null;
	if (window.XMLHttpRequest) {
	  xmlhttp2 = new XMLHttpRequest();
	  } else if (window.ActiveXObject) {
	  xmlhttp2=new ActiveXObject("Microsoft.XMLHTTP");
	  }
	if (xmlhttp2!=null) {
	  xmlhttp2.onreadystatechange=parseTide;
	  xmlhttp2.open("GET",url,true);
	  xmlhttp2.send(null);
	} else {
	  alert(noSupportXMLhttp)
    }
}
function loadXMLDoc3(url){
	xmlhttp3=null;
	if(window.XMLHttpRequest){
		xmlhttp3=new XMLHttpRequest();
	}else if(window.ActiveXObject){
		xmlhttp3=new ActiveXObject("Microsoft.XMLHTTP");
	}
	if(xmlhttp3!=null){
		xmlhttp3.onreadystatechange=parseInfo;
		xmlhttp3.open("GET",url,true);
		xmlhttp3.send(null);
	}else{
		alert(noSupportXMLhttp);
	}
}
function add_element(obj, id, name){
	var new_opt=doc.createElement("option");
	new_opt.value=id;
	new_opt.text=name;
	obj.options.add(new_opt);
}

function checkReadyState(obj) {
	switch (obj.readyState) {
    case 0 : // UNINITIALIZED
	// 0 = Verbindung noch nicht geöffnet ('open()' noch nicht aufgerufen)
	  break;
    case 1 : // LOADING
	// 1 = Noch keine Anfrage gesendet ('send()' noch nicht aufgerufen)
	  break;
    case 2 : // LOADED
	// 2 = Anfrage gesendet, Antwort-Header und Antwort-Status kann abgefragt werden.
		LoadingInfo(obj.readyState);
	  break;
    case 3 : // INTERACTIVE
	// 3 = Daten vom Server kommen nach und nach an. 'responseText' enthält die bislang vom Server gesendeten Daten.
      break;
    case 4 : // COMPLETED
	// 4 = Kommunikation mit dem Server ist abgeschlossen. Alle Daten sind angekommen (status = 200), wenn kein Fehler aufgetreten ist.
      //handleResponse(xmlHttp.status, xmlHttp.responseText);
		if (obj.status == 200) {
			// daten erfolgreich geladen: starte Verarbeitung
			LoadingInfo(obj.readyState);
			return true;
		} else {
			// fehler
			alert("Fehler beim Abrufen der XML Daten: "+obj.status);
		}
      break;
    default : ; // fehlerhafter Status
  }	
}

function loadXMLDoc4(url) {
	xmlhttp4 = null;
	// code for Mozilla, etc.
	if (window.XMLHttpRequest) {
	  xmlhttp4 = new XMLHttpRequest();
	  } else if (window.ActiveXObject) { // code for IE 
	  xmlhttp4=new ActiveXObject("Microsoft.XMLHTTP")
	  }
	if (xmlhttp4!=null) {
	  xmlhttp4.onreadystatechange=parseInfo;
	  xmlhttp4.open("GET",url,true);
	  xmlhttp4.send(null);
	} else {
	  alert(noSupportXMLhttp)
    }
}

function showForm(name) {
	var output = '';
	doc.getElementById('StationInfo').innerHTML = output;
	output += '<' + 'h2>Tide@Date&nbsp;<' + '/h2>';
	output += '<' + 'hr />';
	output += '<' + 'p>';
	output += '<' + 'br />&nbsp;';
	output += 'Start: <' + 'input id="f1b" name="b" type="text" value="1967-04-12" /><' + 'br />';
	output += '&nbsp;Ende: <' + 'input id="f1e" name="e" type="text" value="1967-04-12" /><' + 'br />';
	output += '<' + 'hr />';
	output += '&nbsp;<' + 'span class="button" onclick="parseForm(\'' + escape(name) + '\')">berechnen<' + '/span>';
	output += '<' + 'br />&nbsp;';
	output += '<' + 'br />';
	output += 'Die eingesetzte Harmonics-Datei harmonics-dwf, rev. 2006-07-08.tcd, unterstützt die Jahre 1700 bis 2100. ';
	output += 'Das Programm welches im Hintergrund arbeitet liefert im moment jedoch nur Zeiten von 01.01.1970 - 01.01.2037 Unix Zeit. ';
	output += 'Ich werde das Programm so schnell als möglich anpassen. So bald die Umstellung auf die neue Programmversion erfolgte, ';
	output += 'werden die Zeiten in UTC/GMT bzw. Zulu Zeit angezeigt.<' + 'br/ >';
	output += '&nbsp;<' + 'br />Mondaufgang und Monduntergang wird nicht für die Zeit vor 1900 oder nach 2099 angezeigt.';
	output += '<' + 'br />&nbsp;';
	output += '<' + '/p>';
	output += '<' + 'hr />';
	output += '<' + 'span onclick="javascript:loadXMLDoc2(\'bin/predictions.php?Station=' + escape(name) + '\',' + SelectId + ');" class="button">Gezeiten anzeigen<' + '/span>';
	output += '<' + 'span onclick="javascript:loadXMLDoc3(\'src/locations/' + StationId + '.xml\',' + StationId + ');" class="button">Station Info<' + '/span>';
	output += '<' + 'span onclick="javascript:showForm(\'' + escape(StationName) + '\',' + StationId + ');" class="button">Gezeiten@Datum<' + '/span>';
	//doc.getElementById('tideDIV').innerHTML=output;
	doc.getElementById('StationInfo').innerHTML=output;
	if (output != "") {
		//doc.getElementById('tideDIV').style.visibility = "visible";
		doc.getElementById('StationInfo').style.visibility = "visible";
	} else {
		//doc.getElementById('tideDIV').style.visibility = "hidden";
		doc.getElementById('StationInfo').style.visibility = "hidden";
	}
}

function showStation(form,islink) {
	var output = '';
	var docElemetId = doc.getElementById('StationInfo');
	var docElemetIdStyleVisibility = docElemetId.style.visibility;
	docElemetId.innerHTML = output;
	var response = xmlhttp.responseXML;
	/* add new station information */
	if (!islink) {
		if (form.elements["StationName"].selectedIndex != 0 ) {
			SelectId = form.elements["StationName"].selectedIndex-1;
		} else {
			SelectId = form.elements["StationName"].selectedIndex;
		}
	} else {
		SelectId = form;
	}
	var base = response.getElementsByTagName("location")[SelectId];
	StationName = base.getElementsByTagName("name")[0].firstChild.nodeValue;
	StationId = base.getElementsByTagName("id")[0].firstChild.nodeValue;
	var typ = base.getElementsByTagName("typ")[0].firstChild.nodeValue;
	var coord = base.getElementsByTagName("coord")[0].firstChild.nodeValue;
	var coords = coord.split(',');
	var lat = coords[0];
	var lon = coords[1];
	
	output += '<' + 'h2>' + StationName + '<' + '/h2>';
	output += '<' + 'div align="left"><' + 'p>Station-ID: ' + StationId + '<' + 'br/>';
	output += 'Stations-Typ: ' + typ + '<' + 'br/>';
	output += '<' + 'strong>Koordinaten<' + '/strong>' + '<' + 'br/>';
	output += 'Latitude / Breite: ' + lat + '<' + 'br/>';
	output += 'Longtitude / Länge: ' + lon + '<' + '/p>' + '<' + 'div>';
	output += '<img src="bin/img.php?Station=' + StationName + '&StationID=' + StationId + '" ';
	output += 'alt="TideWatch v 0.1 SeaFresh Prediction from Station: ' + StationName + '"';
	output += ' width="380" height="124" />';
	if(showMAP) {
		output += '<' + 'div id="map" style="width: 380px; height: 300px">' + '<' + '/div>';
	}
	output += '<' + 'span onclick="javascript:loadXMLDoc2(\'bin/predictions.php?Station=' + escape(StationName) + '\',' + SelectId + ');" class="button">Gezeiten anzeigen<' + '/span>';
	output += '<' + 'span onclick="javascript:loadXMLDoc3(\'src/locations/' + StationId + '.xml\',' + StationId + ');" class="button">Station Info<' + '/span>';
	output += '<' + 'span onclick="javascript:showForm(\'' + escape(StationName) + '\',' + StationId + ');" class="button">Gezeiten@Datum<' + '/span>';
	//output += '<' + 'span id="tideDIV" style="font-size: 10px;width: 380px;">&nbsp;' + '<' + '/span>';

	docElemetId.innerHTML = output;
	if (output != "") {
		docElemetIdStyleVisibility = "visible";
	} else {
		docElemetIdStyleVisibility = "hidden";
	}
	if(showMAP){
	/* add sation to map */
	loadStationMap(lat, lon, StationId, StationName, typ);
	}
}

function parseStations() {
	if(checkReadyState(xmlhttp)){
	var response = xmlhttp.responseXML;
	var select_obj = doc.forms[0].StationName;
	while(	select_obj.length > 0) {
		select_obj.remove(0);
	}
	add_element(select_obj, -1, 'Tidestation wählen -->');
	for(var i=0; i< response.getElementsByTagName("location").length; i++) {
		var base = response.getElementsByTagName("location")[i];
		var id = base.getElementsByTagName("id")[0].firstChild.nodeValue;
		var name = base.getElementsByTagName("name")[0].firstChild.nodeValue;
		var typ = base.getElementsByTagName("typ")[0].firstChild.nodeValue;
		var coord = base.getElementsByTagName("coord")[0].firstChild.nodeValue;
		add_element(select_obj, id, name);
	}
	select_obj.disabled = false;
	}
}

function parseTide() {
  if(checkReadyState(xmlhttp2))
  {
	var output='';
	//doc.getElementById('tideDIV').innerHTML=output;
	doc.getElementById('StationInfo').innerHTML=output;
	var res2=null;
	res2=xmlhttp2.responseXML;
	var name=res2.getElementsByTagName("station")[0].firstChild.nodeValue;
	var coords=res2.getElementsByTagName("coord")[0].firstChild.nodeValue.split(',');
	var lat=coords[0];
	var lon=coords[1];
	var software=res2.getElementsByTagName("software")[0].firstChild.nodeValue;
	output += '<' + 'h2>' + StationName + '<' + '/h2>';
	output += '<' + 'div align="left"><' + 'p>';
	output += '<' + 'strong>' + arrLangEvent[lang]['coord'] + '<' + '/strong>' + '<' + 'br/>';
	output += arrLangEvent[lang]['lat'] + ' ' + lat + '<' + 'br/>';
	output += arrLangEvent[lang]['lon'] + ' ' + lon + '<' + '/p>' + '<' + '/div>';
	output += '<' + 'hr/>';
	output += '<' + 'table border="0" width="100%" class="tide" cellspacing="0">';
	for ( var i = 0; i < res2.getElementsByTagName("tide").length; i++) {
		output += '<' + 'tr class="seperator">';
		{
	      try {
	        output += '<' + 'td>' + res2.getElementsByTagName("date")[i].firstChild.nodeValue + '<' + '/td>';
	        } catch (e) {
	        output += '<' + 'td>&nbsp;<' + '/td>';
	        }
	      }
		{
	      try {
	        output += '<' + 'td>' + res2.getElementsByTagName("time")[i].firstChild.nodeValue + '<' + '/td>';
	        } catch (e) {
	        output += '<' + 'td>&nbsp;<' + '/td>';
	        }
	      }
		{
	      try {
	        output += '<' + 'td>' + res2.getElementsByTagName("daytime")[i].firstChild.nodeValue + '<' + '/td>';
	        } catch (e) {
	        output += '<' + 'td>&nbsp;<' + '/td>';
	        }
	      }
		{
	      try {
	        output += '<' + 'td>' + res2.getElementsByTagName("timezone")[i].firstChild.nodeValue + '<' + '/td>';
	        } catch (e) {
	        output += '<' + 'td>&nbsp;<' + '/td>';
	        }
	      }
		{
	      try {
	        output += '<' + 'td>' + arrLangEvent[lang][res2.getElementsByTagName("events")[i].firstChild.nodeValue] + '<' + '/td>';
	        } catch (e) {
	        output += '<' + 'td>&nbsp;<' + '/td>';
	        }
	      }
		{
	      try {
	        output += '<' + 'td>' + res2.getElementsByTagName("tidalhigh")[i].firstChild.nodeValue + '<' + '/td>';
	        } catch (e) {
	        output += '<' + 'td>&nbsp;<' + '/td>';
	        }
	      }
		{
	      try {
	        output += '<' + 'td>' + arrLangEvent[lang][res2.getElementsByTagName("units")[i].firstChild.nodeValue] + '<' + '/td>';
	        } catch (e) {
	        output += '<' + 'td>&nbsp;<' + '/td>';
	        }
	      }
		{
		var xx = res2.getElementsByTagName("water")[i];
	      try {
	        output += '<' + 'td>' + arrLangEvent[lang][xx.firstChild.nodeValue] + '<' + '/td>';
	        } catch (e) {
	        output += '<' + 'td>&nbsp;<' + '/td>';
	        }
	      }
		output += '<' + '/tr>';
	}
	output += '<' + '/table>';
	output += '<' + 'hr/>';
	output += '<' + 'div class="version">' + 'Software Version: ' + software +  '<' + '/div>';
	output += '<' + 'hr/>';
	output += '<' + 'span onclick="javascript:loadXMLDoc2(\'bin/predictions.php?Station=' + escape(StationName) + '\',' + SelectId + ');" class="button">Gezeiten anzeigen<' + '/span>';
	output += '<' + 'span onclick="javascript:loadXMLDoc3(\'src/locations/' + StationId + '.xml\',' + StationId + ');" class="button">Station Info<' + '/span>';
	output += '<' + 'span onclick="javascript:showForm(\'' + escape(StationName) + '\',' + StationId + ');" class="button">Gezeiten@Datum<' + '/span>';
	//doc.getElementById('tideDIV').innerHTML=output;
	doc.getElementById('StationInfo').innerHTML=output;
	if (output != "") {
		//doc.getElementById('tideDIV').style.visibility="visible";
		doc.getElementById('StationInfo').style.visibility="visible";
	} else {
		//doc.getElementById('tideDIV').style.visibility="hidden";
		doc.getElementById('StationInfo').style.visibility="hidden";
	}
  }
}
function chkDate(chkObj) {
	var chkValue = chkObj.value;
	var tmp = /^(\d{4})-(\d{2})-(\d{2})$/;
	var Check = tmp.test(chkValue);
	if (Check == false) {
		chkObj.focus();
		return false;
	} else {
		return true;
	}
}
function parseForm(name){
	var objf1b=doc.getElementById("f1b");
	var objf1e=doc.getElementById("f1e");
	/*if(!chkDate(objf1b)) {
		var dfb=XtideDate(objf1b);
	} else if(!chkDate(objf1e)) {
		var dfe=XtideDate(objf1e);
	} else {
		var dfb=objf1b.value;
		var dfe=objf1e.value;
	}*/
	if(chkDate(objf1b) && chkDate(objf1e)) {
		var dfb=objf1b.value;
		var dfe=objf1e.value;
		loadXMLDoc2('bin/predictions.php?Station='+escape(StationName)+'&b='+dfb+'%2000:01&e='+dfe+'%2023:59');
	}
}

function parseInfo() {
  if(checkReadyState(xmlhttp3))
  {
	var output = '';
	var tRuleStart = '<' + 'tr class="seperator"><' + 'td width="150" valign="top">';
	var tRuleCenter = '<' + '/td><' +'td width="230">';
	var tRuleEnd = '<' + '/td>' + '<' + '/tr>';
	doc.getElementById('StationInfo').innerHTML = output;
	var res1 = xmlhttp3.responseXML;
	try {
	 	output += '<' + 'h2 align="center">' + res1.getElementsByTagName('name')[0].firstChild.nodeValue + '<' + '/h2>';
	} catch (e) {}
	output += '<' + 'div align="left">';
	output += '<' + 'table witdh="380" border="0" cellspacing="0">';
	output += '<' + 'tr class="seperator"><' + 'td colspan="2"><' + 'strong>Station Information<' + '/strong><' + '/td>' + '<' + '/tr>';
	for (var value in arrLang[lang]) {
    	if(value!='coordinates') {
			try {
				output += tRuleStart + arrLang[lang][value] + tRuleCenter + res1.getElementsByTagName(value)[0].firstChild.nodeValue + tRuleEnd;
			} catch(e) {}
		} else {
			try {
				var coord = res1.getElementsByTagName(value)[0].firstChild.nodeValue;
				var coords = coord.split(',');
				var lat = coords[0];
				var lon = coords[1];
				var cLang = arrLang[lang][value].split('#');
				var cLat = cLang[0];
				var cLon = cLang[1];
				output += tRuleStart + cLat + tRuleCenter + lat  + tRuleEnd;
				output += tRuleStart + cLon + tRuleCenter + lon  + tRuleEnd;
			} catch(e) {}
		}
	}
	output += '<' + '/table>';
	try {
		res1.getElementsByTagName('comments')[0].firstChild.nodeValue;
		output += '<' + 'p>' + '<' + 'strong>Comments<' + '/strong>' + '<' + 'br />';
		output += res1.getElementsByTagName('comments')[0].firstChild.nodeValue + '<' + '/p>';
		output += '<' + 'hr/>';
	} catch(e) {}
	try {
		output += '<' + 'br /> &nbsp;<' + 'div class="version">HarmonicFile: ' +  res1.getElementsByTagName('in_file')[0].firstChild.nodeValue + '<' + 'br/>';
		output += 'Software: ' + res1.getElementsByTagName('software')[0].firstChild.nodeValue +  '<' + 'div>';
	} catch(e) {}
		output += '<' + 'hr/>';
	output += '<' + 'span onclick="javascript:loadXMLDoc2(\'bin/predictions.php?Station=' + escape(StationName) + '\',' + SelectId + ');" class="button">Show Prediction<' + '/span>';
	output += '<' + 'span onclick="javascript:loadXMLDoc3(\'src/locations/' + StationId + '.xml\',' + StationId + ');" class="button">Station Info<' + '/span>';
	output += '<' + 'span onclick="javascript:showForm(\'' + escape(StationName) + '\',' + StationId + ');" class="button">Tide@Date<' + '/span>';
	//doc.getElementById('tideDIV').innerHTML = output;
	doc.getElementById('StationInfo').innerHTML = output;
	if (output != "") {
		//doc.getElementById('tideDIV').style.visibility = "visible";
		doc.getElementById('StationInfo').style.visibility = "visible";
	} else {
		//doc.getElementById('tideDIV').style.visibility = "hidden";
		doc.getElementById('StationInfo').style.visibility = "hidden";
	}
  }
}

/*
function parseForm(name) {
	var output = '';
	document.getElementById('tideDIV').style.visibility;
	document.getElementById('tideDIV').innerHTML = output;
	output += '<' + 'h3>Service not available!<' + '/h3>';
	output += '<' + 'p>Still in Development at the moment.<' + 'br />';
	output += 'Please visit the page later time again.<' + 'br />';
	output += '&nbsp;<' + 'br/>Kind Regards<' + 'br />';
	output += 'Torsten Weiler<' + '/p>';
	doc.getElementById('tideDIV').innerHTML = output;
	if (output != "") {
		doc.getElementById('tideDIV').style.visibility = "visible";
	} else {
		doc.getElementById('tideDIV').style.visibility = "hidden";
	}
}
*/

/*
* TIDE stuff end
*/

// obsolet
function LoadingInfo(handleState) {
	var LoadInfo = '';
	var docElementId = doc.getElementById('LoadInfo');
	LoadInfo += '<' + 'img src="img/load1.gif" width="30" height="10" alt="load data" />';
	docElementId.innerHTML = LoadInfo;
	if (LoadInfo != "" && handleState != 4) {
		docElementId.style.visibility = "visible";
	} else if (
		handleState == 4) {
			docElementId.style.visibility = "hidden";
	} else {
		docElementId.style.visibility = "hidden";
	}
}

function XtideDate(chkObj) {
	var chkValue = chkObj.value;
	var tmp0 = /[\.,;:\/\\]([0-9])/
	var tmp1 = /^(\d{1,2})-(\d{1,2})-(\d{4})$/
	var tmp2 = /^([0-2][0-9]|3[0-1]|[1-9])\\.(0[0-9]|1[0-2]|[1-9])\\.(1[7-9][0-9][0-9]||2[0-1][0-9][0-9])$/
	var chkDate = tmp0.exec(chkValue);
	var repValue = chkValue.replace(tmp0, '-').replace(tmp0, '-');
	if(chkDate) {
		for (var i = 0; i < chkDate.length; ++i) {
			//repValue+=chkDate[i].replace(tmp0, '-');
    		alert("Test: " + repValue);
		}
	}
	alert(repValue);
	//var d = tmp1.exec(chkValue);
	//var Xd = d[1];
	//var Xm = d[3];
	//var Xy = d[5];
	//var XtD = Xy+'-'+Xm+'-'+Xd;
	//var chkZ = 1;
	if((chkValue.charAt(4) != "-")||(chkValue.charAt(7) != "-")) {
		}
		for(i=0;i<10;i++){
			if((chkValue.charAt(i) < 0) || (chkValue.charAt(i) > 9)){
				chkZ = -1;
			}
		}
/*		if(chkZ == -1) {
			alert("Bitte geben Sie das Datum in der Form YYYY-MM-TT (z.B.: 2002-23-07) ein!");
			chkObj.focus();
			return false;
		}*/
	//alert(XtD);
	//return XtD;
}


