// JavaScript Document
	
var map = null;
var mgr = null;

var directionsPanel;
var directions;
var mapwaypoints = [];
var mappoints = [];
var maptrackpoints = [];
var maproutepoints= [];
var temparray=[];
var temparray2=[];
var trackmarkers =[];
var routemarkers =[];
var waypointmarkers =[];
var savetrackpoints = [];
var savewaypoints = [];
var saveroutepoints = [];
var TrackOverlay = new GPolyline();
var RouteOverlay = new GPolyline();
var mpl=0;
var wmpl=0;
var tmpl=0;
var select="Track";


var geoXml;
var req = null;


//MarkerManager Overlays GPS-touren.at

var batch_huetten = [];
var batch_gipfel = [];

//-----------------------------------

var boolShowDesc=0;
var boolShowPoints=0;
var boolShowAltitude=0;
var boolShowFiles=0;
var boolShowTour=0;
var boolShowDownload=0;
var boolShowworktools=1;
var booltransferpoint=0;
var boolShowSearch=1;
var boolShowGarmin=0;
var boolShowGarmindown=0;
var boolShowOverlayTrack=1;
var boolShowOverlayRoute=1;
var boolShowMarker=0;
var boolShowImpressum=0;
var boolShowUeber=0;
var boolShowHilfe=0;

var boolfilter=0;
var fototoggle=0;
var wikitoggle=0;

var fotooverlay=new GLayer("com.panoramio.all");
var wikioverlay= new GLayer("org.wikipedia.de"); 


var geocoder=null;

var icon_route = new GIcon();
icon_route.image = "http://gps-touren.at/Logos/google/icon_route.png";
icon_route.iconSize = new GSize(10, 10);
icon_route.iconAnchor = new GPoint(5, 5);
icon_route.infoWindowAnchor = new GPoint(5, 1); 

var icon_waypoint = new GIcon();
icon_waypoint.image = "http://gps-touren.at/Logos/google/icon_waypoint.png";
icon_waypoint.iconSize = new GSize(10, 10);
icon_waypoint.iconAnchor = new GPoint(5, 5);
icon_waypoint.infoWindowAnchor = new GPoint(5, 1); 


var icon_huette = new GIcon();
icon_huette.image = "http://gps-touren.at/Logos/icon_huetten.png";
icon_huette.iconSize = new GSize(20, 20);
icon_huette.iconAnchor = new GPoint(5, 5);
icon_huette.infoWindowAnchor = new GPoint(5, 1); 
                                          

var icon_gipfel = new GIcon();
icon_gipfel.image = "http://gps-touren.at/Logos/icon_gipfel.png";
icon_gipfel.iconSize = new GSize(20, 20);
icon_gipfel.iconAnchor = new GPoint(5, 5);
icon_gipfel.infoWindowAnchor = new GPoint(5, 1);
     
// We define the function first
function TextualZoomControl() {
}

// To "subclass" the GControl, we set the prototype object to
// an instance of the GControl object
TextualZoomControl.prototype = new GControl();

// Creates a one DIV for each of the buttons and places them in a container
// DIV which is returned as our control element. We add the control to
// to the map container and return the element for the map class to
// position properly.
TextualZoomControl.prototype.initialize = function(map) {
  var container = document.createElement("div");

  var zoomInDiv = document.createElement("div");
  this.setButtonStyle_(zoomInDiv);
  container.appendChild(zoomInDiv);
  zoomInDiv.appendChild(document.createTextNode("Zoom In"));
  GEvent.addDomListener(zoomInDiv, "click", function() {
    map.zoomIn();
  });

  var zoomOutDiv = document.createElement("div");
  this.setButtonStyle_(zoomOutDiv);
  container.appendChild(zoomOutDiv);
  zoomOutDiv.appendChild(document.createTextNode("Zoom Out"));
  GEvent.addDomListener(zoomOutDiv, "click", function() {
    map.zoomOut();
  });

  map.getContainer().appendChild(container);
  return container;
}

// By default, the control will appear in the top left corner of the
// map with 7 pixels of padding.
TextualZoomControl.prototype.getDefaultPosition = function() {
  return new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(350, 7));
}

// Sets the proper CSS for the given button element.
TextualZoomControl.prototype.setButtonStyle_ = function(button) {
  button.style.textDecoration = "underline";
  button.style.color = "white";
  button.style.backgroundColor = "#282828";
  button.style.font = "small Arial";
  button.style.border = "1px solid black";
  button.style.padding = "2px";
  button.style.marginBottom = "3px";
  button.style.textAlign = "center";
  button.style.width = "6em";
  button.style.cursor = "pointer";
} 


function load() {
        
  if (GBrowserIsCompatible()) {
	map = new GMap2(document.getElementById("map"));

  var mapTypeControl = new GMapTypeControl();
  //var mapTypeControl = new GMenuMapTypeControl(); 
  
  var topLeft = new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(10,10));
  //var topMiddle = new GControlPosition(G_ANCHOR_TOP_MIDDLE, new GSize(10,10));
  var bottomRight = new GControlPosition(G_ANCHOR_BOTTOM_RIGHT, new GSize(10,10));

	//map.addControl(new GSmallMapControl());
	//map.addControl(mapTypeControl, topRight);

	//map.addControl(new GMapTypeControl());
	map.addControl(mapTypeControl, topLeft);
	map.addControl(new TextualZoomControl());
	
	

  //--- OSM-Map "Mapnik" -----------------------------------------------------
        var copyosm1 = "&copy; OpenStreetMap: ";
        var copyosm2 = "<a href='http://www.openstreetmap.com' target='_blank'>License</a>";
        var osm = [new GTileLayer()];
        osm[0].getTileUrl = function(a,b) {
        return "http://tile.openstreetmap.org/" + b + "/" + a.x + "/" + a.y + ".png"; };
        osm[0].getCopyright = function(a,b) {
        return {prefix:copyosm1, copyrightTexts:[copyosm2]}; }
        G_OSM_MAP = new GMapType(osm, G_SATELLITE_MAP.getProjection(), "OS-Map", {
        minResolution:0,maxResolution:15});
        map.addMapType(G_OSM_MAP);
//--- OSM-Map "Mapnik" -----------------------------------------------------


  //--- "Cycle Map" -----------------------------------------------------
  /*
  var copycycle1 = "&copy; Cloudmade: ";
  var copycycle2 = "<a href='http://www.cloudmade.com' target='_blank'>";
  var cycle = [new GTileLayer()];
  cycle[0].getTileUrl = function(a,b) {
  return "http://andy.sandbox.cloudmade.com/tiles/cycle/" + b + "/" + a.x + "/" + a.y + ".png"; };
  cycle[0].getCopyright = function(a,b) {
  return {prefix:copycycle1, copyrightTexts:[copycycle2]}; }
  G_CYCLE_MAP = new GMapType(cycle, G_SATELLITE_MAP.getProjection(), "Cycle-Map", {
  shortName: "Cycle-Map", alt: "Cycle-Map von Cloudmade.com anzeigen",
  minResolution:0,maxResolution:17});
  map.addMapType(G_CYCLE_MAP);
  //--- "Cycle Map" -----------------------------------------------------
  */



	var ovcontrol = new GOverviewMapControl(new GSize(100,100)); 
	map.addControl(ovcontrol);
	map.addMapType(G_PHYSICAL_MAP); 
	var center = new GLatLng(47.56785,12.439821);
	map.setCenter(center, 9);
	map.setMapType(G_PHYSICAL_MAP);//G_HYBRID_MAP); 
	
	geocoder = new GClientGeocoder();
        
	initAllStats ();
	
  //map.addOverlay(geoXml);
  
  //GEvent.addListener(map, "click", function() {
  //alert("You clicked the map.");  		
  //});
  
  //Fadenkreuz einblenden
 //var fadenkreuz = new GLatLng(<?php print($lat_center.", ".$lon_center);	?>);
      
  fadenkreuz = new GScreenOverlay('bilder/Fadenkreuz.png',
  new GScreenPoint(0.49, 0.49, 'fraction', 'fraction'),  // screenXY  fraction/pixel
  new GScreenPoint(0, 0),  // overlayXY
  new GScreenSize(15, 15)  // size on screen
  );


  //MarkerMananager Overlays GPS-touren.at
  mgr_huetten = new MarkerManager(map);
  mgr_gipfel = new MarkerManager(map);
  //-------------------------------------
  
  GEvent.addListener(map, "click", function(marker,point) {
  if(select=="Route"){
    if(point){
    	
	   maproutepoints.push(new GLatLng(point.lat(),point.lng()));
	   saveroutepoints.push([point.lat(), point.lng()]);
	   //topoGetAltitude(point.lat(), point.lng(), function (altitude) {
	   //savetrackpoints.push([point.lat(), point.lng(), altitude]);
	   //} );
	   directions.clear();
     addrouteMarkers (icon_route);
	   //makePolyRoute (maproutepoints);
	   mpl++;
	   calcRoute ();

	   //tests();
      //info ();
     }
  }
  else if(select=="Track"){
    if(point){
    	
	   maptrackpoints.push(new GLatLng(point.lat(),point.lng()));
	   topoGetAltitude(point.lat(), point.lng(), function (altitude) {
	   savetrackpoints.push([point.lat(), point.lng(), altitude]);
	   } );
	   //directions.clear();
     addtrackMarkers (icon_route);
	   makePolyTrack (maptrackpoints);
	   tmpl++;
	   //calcRoute ();
	   //tests();
      //info ();
     }
  }
  else if (select=="Wegpunkt"){
  //alert("Hier kommt mal ein Wegpunkt");
    if(point){	
	   mapwaypoints.push(new GLatLng(point.lat(),point.lng()));
	   topoGetAltitude(point.lat(), point.lng(), function (altitude) {
	   savewaypoints.push([point.lat(), point.lng(), altitude, 'Wegpunkt '+(wmpl+1),'']);
     addwaypointMarkers (icon_waypoint);
	   wmpl++;
	   } );
	   
	  } 
  }
  });


  }
}

function makePolyRoute (pointarray) {

map.removeOverlay(RouteOverlay);	
RouteOverlay = new GPolyline(pointarray, "#FF0EAF", 5,1);
map.addOverlay(RouteOverlay); 

} 

function makePolyTrack (pointarray) {

map.removeOverlay(TrackOverlay);	
TrackOverlay = new GPolyline(pointarray, "#FF7E00", 5,1);
map.addOverlay(TrackOverlay); 

} 

function initAllStats () {
directionsPanel = document.getElementById("routedesc");
directions = new GDirections(map, directionsPanel);

       select="Track";
       document.getElementById('trackdiv').style.visibility='visible';
       document.getElementById('waypointdiv').style.visibility='hidden';
       document.getElementById('routediv').style.visibility='hidden';
       document.getElementById('downloadfilediv').style.visibility='hidden';
       document.getElementById('routepoints').style.visibility='hidden';
       document.getElementById('routedesc').style.visibility='hidden';
       document.getElementById('waypoints').style.visibility='hidden';
       document.getElementById('menuright1').style.visibility='visible';
       document.getElementById('startdiv').style.visibility='visible';
       document.changesel.methode.options[0].selected = true;

}

function hideall(){
       document.getElementById('trackgraph').style.visibility='hidden';
       document.getElementById('downloadfilediv').style.visibility='hidden';
       document.getElementById('openfilediv').style.visibility='hidden';
       document.getElementById('routedesc').style.visibility='hidden';
       document.getElementById('menuright1').style.visibility='hidden';
       document.getElementById('opentourdiv').style.visibility='hidden';
       document.getElementById('transferpointdiv').style.visibility='hidden';
       document.getElementById('filterdiv').style.visibility='hidden';
       document.getElementById('markerdiv').style.visibility='hidden';
       document.getElementById('impressumdiv').style.visibility='hidden';
       document.getElementById('ueberdiv').style.visibility='hidden';
       document.getElementById('hilfediv').style.visibility='hidden';
       document.getElementById('garmindiv').style.visibility='hidden';
       document.getElementById('garmindowndiv').style.visibility='hidden';
       document.getElementById('startdiv').style.visibility='hidden';

boolShowDesc=0;
boolShowPoints=0;
boolShowFiles=0;
boolShowDownload=0;
boolShowworktools=1;
booltransferpoint=0;
boolShowAltitude=0;
boolfilter=0;
boolShowGarmin=0;
boolShowGarmindown=0;
boolShowMarker=0;
boolShowImpressum=0;
boolShowUeber=0;
boolShowHilfe=0;



}

function calcRoute () {
  
  //directionsPanel = document.getElementById("route");
  //directions = new GDirections(map, directionsPanel);
  //directions.load("from: 47.584399,12.69401 to: 47.440163, 12.75186");
  //directions.clear();
  directions.clear();
  directions.loadFromWaypoints(maproutepoints);
  //tests();
  //map.removeOverlay(LineOverlay);
	
}

function showRouteDesc(){

       if (boolShowDesc==0){ 
         hideall();
         document.getElementById('routedesc').style.visibility='visible';
         document.getElementById('menuright1').style.visibility='visible';
         boolShowDesc=1;
       }
      else{
         document.getElementById('routedesc').style.visibility='hidden';
         document.getElementById('menuright1').style.visibility='hidden';
         boolShowDesc=0;
       }
}

function showRoutePoints(){

        var routestring=[];
         
         for(var i in routemarkers){
           routestring+='<img src="http://gps-touren.at/Logos/google/icon_route.png" width="10"> <span onclick="zoomToPoint('+parseInt(i)+',0)" style="cursor:pointer;text-decoration:underline;font-weight:bold;">Routenpunkt '+(parseInt(i)+1)+'</span><br>';                     
         }
         document.getElementById('routepoints').innerHTML=routestring;

    document.getElementById('ladezustand').style.visibility='hidden';      

}


function showTrackPoints(){

        var trackstring=[];
         
         for(var i in trackmarkers){
           trackstring+='<img src="http://gps-touren.at/Logos/google/icon_route.png" width="10"> <span onclick="zoomToTrackPoint('+parseInt(i)+',0)" style="cursor:pointer;text-decoration:underline;font-weight:bold;">Trackpunkt '+(parseInt(i)+1)+'</span><br>';                     
         }
         document.getElementById('trackpoints').innerHTML=trackstring;

    document.getElementById('ladezustand').style.visibility='hidden';      

}

function showWayPoints(){ 

        var waypointstring=[];
        //alert(wmpl);
        //alert(waypointmarkers.length);
        //alert(savewaypoints.length);
         
         for(i=0;i<waypointmarkers.length;i++){
           waypointstring+='<img src="http://gps-touren.at/Logos/google/icon_waypoint.png" width="10"> <span onclick="zoomToWayPoint('+parseInt(i)+',0)" style="cursor:pointer;text-decoration:underline;font-weight:bold;">'+savewaypoints[i][3]+'</span><br>';                     
         }
         document.getElementById('waypoints').innerHTML=waypointstring;

    document.getElementById('ladezustand').style.visibility='hidden';      

}

function zoomToPoint(markerNr,type){
   
   if(type==0){

         geocoder.getLocations(maproutepoints[markerNr], function(addresses) {
          if(addresses.Status.code != 200) {
            //alert("reverse geocoder failed to find an address for " + latlng.toUrlValue());
          }
          else {
            address = addresses.Placemark[0];
            var myHtml = address.address;
            var point=maproutepoints[markerNr];
            map.panTo(point);
     	      routemarkers[markerNr].openInfoWindowHtml("<b>Routenpunkt " + (parseInt(markerNr)+1) + "</b><br><br><strong>Lat:</strong>"+routemarkers[markerNr].getPoint().lat()+"<br><strong>Lon:</strong>"+routemarkers[markerNr].getPoint().lng()+"<br><br><strong>Nächstgelegene Adresse:</strong><br>"+myHtml+"<br><br><a href=\"#\" onclick=\"delPoint("+markerNr+")\">Diesen Punkt löschen</a><br><a href=\"#\" onclick=\"insertPoint(1,"+markerNr+")\">Einen Punkt nachher einfügen</a><br><a href=\"#\" onclick=\"insertPoint(0,"+markerNr+")\">Einen Punkt vorher einfügen</a>");  
   
          }
        });

     } 
  


}

function zoomToTrackPoint(markerNr,type){   
   if(type==0){
            var point=maptrackpoints[markerNr];
            var altitude=savetrackpoints[markerNr][2];
            map.panTo(point);
     	      trackmarkers[markerNr].openInfoWindowHtml("<b>Trackpunkt " + (parseInt(markerNr)+1) + "</b><br><br><strong>Lat:</strong>"+trackmarkers[markerNr].getPoint().lat()+"<br><strong>Lon:</strong>"+trackmarkers[markerNr].getPoint().lng()+"<br><strong>Höhe:</strong>"+altitude+"<br><br><a href=\"#\" onclick=\"deleteTrackpoints("+markerNr+")\">Trackpunkte ab diesem Punkt löschen</a><br><a href=\"#\" onclick=\"delTrackPoint("+markerNr+")\">Diesen Punkt löschen</a><br><a href=\"#\" onclick=\"insertTrackPoint(1,"+markerNr+")\">Einen Punkt nachher einfügen</a><br><a href=\"#\" onclick=\"insertTrackPoint(0,"+markerNr+")\">Einen Punkt vorher einfügen</a>");  
        
     } 
}

function zoomToWayPoint(markerNr,type){   
   if(type==0){
          geocoder.getLocations(mapwaypoints[markerNr], function(addresses) {
          if(addresses.Status.code != 200) {
            //alert("reverse geocoder failed to find an address for " + latlng.toUrlValue());
          }
          else {
            address = addresses.Placemark[0];
            var myHtml = address.address;
            myHtml=sonderzeichen(myHtml);
            var point=mapwaypoints[markerNr];
            var altitude=savewaypoints[markerNr][2];
            savewaypoints[markerNr][4]=myHtml;
            map.panTo(point);
     	      waypointmarkers[markerNr].openInfoWindowHtml("<b>"+savewaypoints[markerNr][3]+ "</b><br><br>Name ändern <form name=\"waypointchange\"><input type=\"text\" size=\"5\" name=\"newwaypointname\"><input type=\"button\" value=\"...\" onClick=\"waypointchangefun("+markerNr+");\"></form><br><br><strong>Lat:</strong>"+waypointmarkers[markerNr].getPoint().lat()+"<br><strong>Lon:</strong>"+waypointmarkers[markerNr].getPoint().lng()+"<br><strong>Höhe:</strong>"+altitude+"<br><br><strong>Nächstgelegene Adresse:</strong><br>"+myHtml+"<br><br><a href=\"#\" onclick=\"delWayPoint("+markerNr+")\">Diesen Punkt löschen</a>");  
            }
        });
     } 
}

function delRoute () {
    directions.clear();
}


function addrouteMarkers (ico){
routemarkers [mpl]= new GMarker(maproutepoints[mpl], {icon: ico,draggable: true});
dragMRoute (mpl);
map.addOverlay(routemarkers[mpl]);
showRoutePoints();
return;
} 

function addtrackMarkers (ico){
trackmarkers [tmpl]= new GMarker(maptrackpoints[tmpl], {icon: ico,draggable: true});
dragMTrack (tmpl);
map.addOverlay(trackmarkers[tmpl]);
showTrackPoints();
return;
} 

function addwaypointMarkers (ico){
waypointmarkers [wmpl]= new GMarker(mapwaypoints[wmpl], {icon: ico,draggable: true});
dragMWaypoint (wmpl);
map.addOverlay(waypointmarkers[wmpl]);
showWayPoints();
return;
} 


function dragMRoute (markerNr) {
	   
   GEvent.addListener(routemarkers[markerNr], "dragend", function() {
  	maproutepoints[markerNr]=routemarkers[markerNr].getPoint();
	  saveroutepoints[markerNr] = [routemarkers[markerNr].getPoint().lat(), routemarkers[markerNr].getPoint().lng()];
	  directions.clear();
    //makePolyRoute (maproutepoints);
    calcRoute();

	} );
	
    GEvent.addListener(routemarkers[markerNr], "click", function() {
	        var altitude=1000;//topoGetAltitude(markers[markerNr].getPoint().lat(), markers[markerNr].getPoint().lng(), function (altitude) { 
           geocoder.getLocations(maproutepoints[markerNr], function(addresses) {
          if(addresses.Status.code != 200) {
          }
          else {
            address = addresses.Placemark[0];
            var myHtml = address.address;
            var point=maproutepoints[markerNr];
            //map.setCenter(point, 13);
     	      routemarkers[markerNr].openInfoWindowHtml("<b>Routenpunkt " + (parseInt(markerNr)+1) + "</b><br><br><strong>Lat:</strong>"+routemarkers[markerNr].getPoint().lat()+"<br><strong>Lon:</strong>"+routemarkers[markerNr].getPoint().lng()+"<br><br><strong>Nächstgelegene Adresse:</strong><br>"+myHtml+"<br><br><span style=\"cursor:pointer;text-decoration:underline\" onclick=\"delPoint("+markerNr+")\">Diesen Punkt löschen</span><br><span style=\"cursor:pointer;text-decoration:underline\" onclick=\"insertPoint(1,"+markerNr+")\">Einen Punkt nachher einfügen</span><br><span style=\"cursor:pointer;text-decoration:underline\" onclick=\"insertPoint(0,"+markerNr+")\">Einen Punkt vorher einfügen</span>");  
   
          }
        });
	} );
	
		
		
}

function dragMTrack (markerNr) {
	   
   GEvent.addListener(trackmarkers[markerNr], "dragend", function() {
    
	topoGetAltitude(trackmarkers[markerNr].getPoint().lat(), trackmarkers[markerNr].getPoint().lng(), function (altitude) {
	savetrackpoints[markerNr] = [trackmarkers[markerNr].getPoint().lat(), trackmarkers[markerNr].getPoint().lng(), altitude];
	} );
	maptrackpoints[markerNr]=trackmarkers[markerNr].getPoint();
	//info ();
	  //directions.clear();
    makePolyTrack (maptrackpoints);
    //calcRoute ();
	} );
	
    GEvent.addListener(trackmarkers[markerNr], "click", function() {
	//markerNrneu=markerNr+1;
	var altitude=1000;//topoGetAltitude(markers[markerNr].getPoint().lat(), markers[markerNr].getPoint().lng(), function (altitude) { 
	altitude=savetrackpoints[markerNr][2];
  trackmarkers[markerNr].openInfoWindowHtml("<b>Trackpunkt " + (parseInt(markerNr)+1) + "</b><br><br><strong>Lat:</strong>"+trackmarkers[markerNr].getPoint().lat()+"<br><strong>Lon:</strong>"+trackmarkers[markerNr].getPoint().lng()+"<br><strong>Höhe:</strong>"+altitude+" m<br><br><a href=\"#\" onclick=\"deleteTrackpoints("+markerNr+")\">Trackpunkte ab diesem Punkt löschen</a><br><a href=\"#\" onclick=\"delTrackPoint("+markerNr+")\">Diesen Punkt löschen</a><br><a href=\"#\" onclick=\"insertTrackPoint(1,"+markerNr+")\">Einen Punkt nachher einfügen</a><br><a href=\"#\" onclick=\"insertTrackPoint(0,"+markerNr+")\">Einen Punkt vorher einfügen</a>");  

	} );
	
		
		
}

function dragMWaypoint (markerNr) {
	   
    GEvent.addListener(waypointmarkers[markerNr], "dragend", function() {
      topoGetAltitude(waypointmarkers[markerNr].getPoint().lat(), waypointmarkers[markerNr].getPoint().lng(), function (altitude) {
	    savewaypoints[markerNr] = [waypointmarkers[markerNr].getPoint().lat(),waypointmarkers[markerNr].getPoint().lng(), altitude, savewaypoints[markerNr][3], savewaypoints[markerNr][4]];
	    } );
    mapwaypoints[markerNr]=waypointmarkers[markerNr].getPoint();
	  } );
	
    GEvent.addListener(waypointmarkers[markerNr], "click", function() {
	        var altitude=1000;//topoGetAltitude(markers[markerNr].getPoint().lat(), markers[markerNr].getPoint().lng(), function (altitude) { 
           geocoder.getLocations(mapwaypoints[markerNr], function(addresses) {
          if(addresses.Status.code != 200) {
          }
          else {
            address = addresses.Placemark[0];
            var myHtml = address.address;
            myHtml=sonderzeichen(myHtml);
            savewaypoints[markerNr][4]=myHtml;
            var point=mapwaypoints[markerNr];
 	          var altitude=savewaypoints[markerNr][2];
           //map.setCenter(point, 13);
     	      waypointmarkers[markerNr].openInfoWindowHtml("<b>"+ savewaypoints[markerNr][3]+ "</b><br><br>Name ändern <form name=\"waypointchange\"><input type=\"text\" size=\"5\" name=\"newwaypointname\"><input type=\"button\" value=\"...\" onClick=\"waypointchangefun("+markerNr+");\"></form><br><br><strong>Lat:</strong>"+waypointmarkers[markerNr].getPoint().lat()+"<br><strong>Lon:</strong>"+waypointmarkers[markerNr].getPoint().lng()+"<br><strong>Höhe:</strong>"+altitude+"<br><br><strong>Nächstgelegene Adresse:</strong><br>"+myHtml+"<br><br><a href=\"#\" onclick=\"delWayPoint("+markerNr+")\">Diesen Punkt löschen</a>");  
   
          }
        });
	} );
	
		
		
}

function waypointchangefun(markerNr){
   var newname=document.waypointchange.newwaypointname.value;
   newname=sonderzeichen(newname);
 
   savewaypoints[markerNr][3] = newname;
   //alert("Name in "+newname+" geändert");
   waypointmarkers[markerNr].openInfoWindowHtml("<b>"+ savewaypoints[markerNr][3]+ "</b><br><br>Name ändern <form name=\"waypointchange\"><input type=\"text\" size=\"5\" name=\"newwaypointname\"><input type=\"button\" value=\"...\" onClick=\"waypointchangefun("+markerNr+");\"></form><br><br><strong>Lat:</strong>"+savewaypoints[markerNr][0]+"<br><strong>Lon:</strong>"+savewaypoints[markerNr][1]+"<br><strong>Höhe:</strong>"+savewaypoints[markerNr][2]+"<br><br><strong>Nächstgelegene Adresse:</strong><br>"+savewaypoints[markerNr][4]+"<br><br><a href=\"#\" onclick=\"delWayPoint("+markerNr+")\">Diesen Punkt löschen</a>");  
   showWayPoints();
}

function delPoint(index) {

for (var i in routemarkers){
  map.removeOverlay(routemarkers[i]);	    
}
var counti=0;   
    for(i=0;i<maproutepoints.length;i++){
      if (i!=index){
      temparray[counti]=maproutepoints[i];
      temparray2[counti]=saveroutepoints[i];
      counti++;
      }
    }
maproutepoints=[];
saveroutepoints=[];
routemarkers=[];
maproutepoints=temparray;
saveroutepoints=temparray2;
temparray=[];
temparray2=[];

for (var i in maproutepoints){
 routemarkers [i]= new GMarker(maproutepoints[i], {icon: icon_route,draggable: true});
 map.addOverlay(routemarkers[i]);
 dragMRoute (i);
}

mpl--;
//makePolyRoute (maproutepoints);
calcRoute();
showRoutePoints();
}

function delTrackPoint(index) {

for (var i in trackmarkers){
  map.removeOverlay(trackmarkers[i]);	    
}
var counti=0;   
    for(i=0;i<maptrackpoints.length;i++){
      if (i!=index){
      temparray[counti]=maptrackpoints[i];
      temparray2[counti]=savetrackpoints[i];
      counti++;
      }
    }
    
maptrackpoints=[];
savetrackpoints=[];
trackmarkers=[];
maptrackpoints=temparray;
savetrackpoints=temparray2;
temparray=[];
temparray2=[];

for (var i in maptrackpoints){
 trackmarkers [i]= new GMarker(maptrackpoints[i], {icon: icon_route,draggable: true});
 map.addOverlay(trackmarkers[i]);
 dragMTrack (i);
}

tmpl--;
makePolyTrack (maptrackpoints);
showTrackPoints();
}

function delWayPoint(index) {

for (var i in waypointmarkers){
  map.removeOverlay(waypointmarkers[i]);	    
}
var counti=0;   
    for(i=0;i<mapwaypoints.length;i++){
      if (i!=index){
      temparray[counti]=mapwaypoints[i];
      temparray2[counti]=savewaypoints[i];
      counti++;
      }
    }
mapwaypoints=[];
savewaypoints=[];
waypointmarkers=[];
mapwaypoints=temparray;
savewaypoints=temparray2;
temparray=[];
temparray2=[];

for (var i in mapwaypoints){
 waypointmarkers [i]= new GMarker(mapwaypoints[i], {icon: icon_waypoint,draggable: true});
 map.addOverlay(waypointmarkers[i]);
 dragMWaypoint (i);
}

wmpl--;
showWayPoints();
}


function insertPoint(where,index) {

if((index==maproutepoints.length-1) && where==1) return;
if(index==0 && where==0) return;

for (var i in routemarkers){
  map.removeOverlay(routemarkers[i]);	    
}

var counti=0;   


//Punkt nachher einfügen
if(where==1){
    for(i=0;i<=maproutepoints.length;i++){
      if (i!=(index+1)){
      temparray[i]=maproutepoints[counti];
      counti++;
      }
      //neuen Punkt einfügen
      else{
       var lat1=maproutepoints[i-1].lat();
       var lon1=maproutepoints[i-1].lng();
       var lat2=maproutepoints[i].lat();
       var lon2=maproutepoints[i].lng();
       temparray[i]=new GLatLng(lat1-(lat1-lat2)/2,lon1-(lon1-lon2)/2);
       temparray2[i] = [lat1-(lat1-lat2)/2, lon1-(lon1-lon2)/2];
      }
    }
}
else{
    for(i=0;i<=maproutepoints.length;i++){
      if (i!=(index)){
      temparray[i]=maproutepoints[counti];
      counti++;
      }
      //neuen Punkt einfügen
      else{
       var lat1=maproutepoints[i-1].lat();
       var lon1=maproutepoints[i-1].lng();
       var lat2=maproutepoints[i].lat();
       var lon2=maproutepoints[i].lng();
       temparray[i]=new GLatLng(lat1-(lat1-lat2)/2,lon1-(lon1-lon2)/2);
       temparray2[i] = [lat1-(lat1-lat2)/2, lon1-(lon1-lon2)/2];
      }
    }
}

maproutepoints=[];
saveroutepoints=[];
routemarkers=[];
maproutepoints=temparray;
saveroutepoints=temparray2;
temparray=[];
temparray2=[];

for (var i in maproutepoints){
 routemarkers [i]= new GMarker(maproutepoints[i], {icon: icon_route,draggable: true});
 map.addOverlay(routemarkers[i]);
 dragMRoute (i);
}

mpl++;
//makePolyRoute (maproutepoints);
calcRoute();
showRoutePoints();
}

function insertTrackPoint(where,index) {

var counth=0;

if((index==maptrackpoints.length-1) && where==1) return;
if(index==0 && where==0) return;

for (var i in trackmarkers){
  map.removeOverlay(trackmarkers[i]);	    
}

var counti=0;   


//Punkt nachher einfügen
if(where==1){
    for(i=0;i<=maptrackpoints.length;i++){
      if (i!=(index+1)){
      temparray[i]=maptrackpoints[counti];
      temparray2[i]=savetrackpoints[counti];
      counti++;
      }
      //neuen Punkt einfügen
      else{
       var lat1=maptrackpoints[i-1].lat();
       var lon1=maptrackpoints[i-1].lng();
       var lat2=maptrackpoints[i].lat();
       var lon2=maptrackpoints[i].lng();
       temparray[i]=new GLatLng(lat1-(lat1-lat2)/2,lon1-(lon1-lon2)/2);
       temparray2[i] = [lat1-(lat1-lat2)/2, lon1-(lon1-lon2)/2, 9999];
       
      }
    }
}
else{
    for(i=0;i<=maptrackpoints.length;i++){
      if (i!=(index)){
      temparray[i]=maptrackpoints[counti];
      temparray2[i]=savetrackpoints[counti];
      counti++;
      }
      //neuen Punkt einfügen
      else{
       var lat1=maptrackpoints[i-1].lat();
       var lon1=maptrackpoints[i-1].lng();
       var lat2=maptrackpoints[i].lat();
       var lon2=maptrackpoints[i].lng();
       temparray[i]=new GLatLng(lat1-(lat1-lat2)/2,lon1-(lon1-lon2)/2);
       temparray2[i] = [lat1-(lat1-lat2)/2, lon1-(lon1-lon2)/2, 9999];
       /*
       topoGetAltitude(lat1-(lat1-lat2)/2, lon1-(lon1-lon2)/2, function (altitude) {
      	temparray2[i] = [lat1-(lat1-lat2)/2, lon1-(lon1-lon2)/2, altitude];
	     } );*/
      }
    }
}

maptrackpoints=[];
savetrackpoints=[];
trackmarkers=[];
maptrackpoints=temparray;
savetrackpoints=temparray2;
temparray=[];
temparray2=[];

for (var i in maptrackpoints){
 trackmarkers [i]= new GMarker(maptrackpoints[i], {icon: icon_route,draggable: true});
 map.addOverlay(trackmarkers[i]);
 dragMTrack (i);
}

tmpl++;
makePolyTrack (maptrackpoints);
showTrackPoints();


 for(var i in savetrackpoints){
  if(savetrackpoints[i][2]==9999){
      counth=i
      topoGetAltitude(savetrackpoints[i][0], savetrackpoints[i][1], function (altitude) {
      savetrackpoints[counth][2]=altitude;
       } );
       
  }
 }
 //savetrackpoints[count][2]=count_alt;
}


function tests() {

//var dist1=directions.getDistance(); 
//document.routenfunktionen.numGeo.value=directions.getNumGeocodes(); 
//document.routenfunktionen.dist.value=Math.round(dist1.meters/1000)+" km";
//document.routenfunktionen.kmloutput.value=getKml();
//getKml(function(a){alert(a);})
var PolyRoute=directions.getPolyline();  
PolyRoute.getKml(function(b){document.download.xml.value=b;});
//var dist2=LineOverlay.getLength();
//document.routenfunktionen.distdirect.value=Math.round(dist2/1000)+ " km";

}


function changeselect (radioObj) {
//var radioLength = radioObj.length;
//for(var i = 0; i < radioLength; i++) {
		//if(radioObj[i].checked) {
		 hideall();
     if(radioObj=="Route"){
       select="Route";
       
       document.getElementById('trackdiv').style.visibility='hidden';
       document.getElementById('waypointdiv').style.visibility='hidden';
       document.getElementById('routediv').style.visibility='visible';
       document.getElementById('downloadfilediv').style.visibility='hidden';
       document.getElementById('routepoints').style.visibility='visible';
       document.getElementById('trackpoints').style.visibility='hidden';
       document.getElementById('waypoints').style.visibility='hidden';
       document.getElementById('menuright1').style.visibility='hidden';
       document.getElementById('routedesc').style.visibility='hidden';
       document.getElementById('openfilediv').style.visibility='hidden';
       document.getElementById('opentourdiv').style.visibility='hidden';
       document.getElementById('trackgraph').style.visibility='hidden';
       document.getElementById('transferpointdiv').style.visibility='hidden';
       document.changesel.methode.options[1].selected = true;
     }
		 else if(radioObj=="Wegpunkt"){
       select="Wegpunkt";
       document.getElementById('trackdiv').style.visibility='hidden';
       document.getElementById('waypointdiv').style.visibility='visible';
       document.getElementById('routediv').style.visibility='hidden';
       document.getElementById('downloadfilediv').style.visibility='hidden';
       document.getElementById('routepoints').style.visibility='hidden';
       document.getElementById('trackpoints').style.visibility='hidden';
       document.getElementById('waypoints').style.visibility='visible';
       document.getElementById('routedesc').style.visibility='hidden';
       document.getElementById('menuright1').style.visibility='hidden';
       document.getElementById('openfilediv').style.visibility='hidden';
       document.getElementById('opentourdiv').style.visibility='hidden';
       document.getElementById('trackgraph').style.visibility='hidden';
       document.getElementById('transferpointdiv').style.visibility='hidden';
       document.changesel.methode.options[2].selected = true;
     }
     else if(radioObj=="Track"){
       select="Track";
       document.getElementById('trackdiv').style.visibility='visible';
       document.getElementById('waypointdiv').style.visibility='hidden';
       document.getElementById('routediv').style.visibility='hidden';
       document.getElementById('downloadfilediv').style.visibility='hidden';
       document.getElementById('routepoints').style.visibility='hidden';
       document.getElementById('trackpoints').style.visibility='visible';
       document.getElementById('waypoints').style.visibility='hidden';
       document.getElementById('routedesc').style.visibility='hidden';
       document.getElementById('menuright1').style.visibility='hidden';
       document.getElementById('openfilediv').style.visibility='hidden';
       document.getElementById('opentourdiv').style.visibility='hidden';
       document.getElementById('trackgraph').style.visibility='hidden';
       document.getElementById('transferpointdiv').style.visibility='hidden';
       document.changesel.methode.options[0].selected = true;
     }       
		//}
	//}


}

function showAddress(address) {
      if (geocoder) {
        geocoder.getLatLng(
          address,
          function(point) {
            if (!point) {
              alert(address + " not found");
            } else {
              map.setCenter(point, 13);
              var marker= new GLatLng(point.lat(),point.lng());
              //var marker = new GMarker(point);
              //map.addOverlay(marker);
              map.openInfoWindowHtml(marker,address+'<br><br>Punkt hinzufügen zu:<br><span onclick="insertSearchAddress(\'Wegpunkt\','+point.lat()+','+point.lng()+')" style="cursor:pointer;text-decoration:underline">Wegpunkte</span><br><span onclick="insertSearchAddress(\'Track\','+point.lat()+','+point.lng()+')" style="cursor:pointer;text-decoration:underline">Track</span><br><span onclick="insertSearchAddress(\'Route\','+point.lat()+','+point.lng()+')" style="cursor:pointer;text-decoration:underline">Route</span>');
            }
          }
        );
      }
}


function insertSearchAddress(where,lat,lng){

if(where=='Route'){
     changeselect ('Route');

	   maproutepoints.push(new GLatLng(lat,lng));
	   saveroutepoints.push([lat, lng]);
	   directions.clear();
     addrouteMarkers (icon_route);
	   mpl++;
	   calcRoute ();


}
else if (where=='Track'){
     changeselect ('Track');
	   maptrackpoints.push(new GLatLng(lat,lng));
	   topoGetAltitude(lat, lng, function (altitude) {
	   savetrackpoints.push([lat, lng, altitude]);
	   } );
	   //directions.clear();
     addtrackMarkers (icon_route);
	   makePolyTrack (maptrackpoints);
	   tmpl++;


}
else if (where=='Wegpunkt'){
     changeselect ('Wegpunkt');
	   mapwaypoints.push(new GLatLng(lat,lng));

	   topoGetAltitude(lat, lng, function (altitude) {
	   savewaypoints.push([lat, lng, altitude, 'Wegpunkt '+(wmpl+1),'']);
     addwaypointMarkers (icon_waypoint);
	   wmpl++;
	  } );

}


}

function openfile(){

       if (boolShowFiles==0){ 
       hideall();
       document.getElementById('menuright1').style.visibility='visible';
       document.getElementById('openfilediv').style.visibility='visible';
       boolShowFiles=1;
       }
       else{
       hideall();
       boolShowFiles=0;
       }

}

function opentour(){

       if (boolShowTour==0){ 
       hideall();
       document.getElementById('menuright1').style.visibility='visible';
       document.getElementById('opentourdiv').style.visibility='visible';
       boolShowTour=1;
       }
       else{
       hideall();
       boolShowTour=0;
       }

}

function showHideSearch(){

       if (boolShowSearch==0){ 
       //hideall();
       document.getElementById('menutop1').style.visibility='visible';
       boolShowSearch=1;
       }
       else{
       //hideall();
       document.getElementById('menutop1').style.visibility='hidden';
       boolShowSearch=0;
       }

}

function showHideOverlay(which){
    if(which=='Track'){
       if (boolShowOverlayTrack==0){ 
       //hideall();
       TrackOverlay.show();
       boolShowOverlayTrack=1;
       }
       else{
       TrackOverlay.hide();//hideall();
       boolShowOverlayTrack=0;
       }
    }
    else if(which=='Route'){
       if (boolShowOverlayRoute==0){ 
       //hideall();
       RouteOverlay.show();
       boolShowOverlayRoute=1;
       }
       else{
       RouteOverlay.hide();//hideall();
       boolShowOverlayRoute=0;
       }
    
    
    }

}


function losedata(){
 var box=window.confirm("Es gehen alle nicht gespeicherten Daten verloren. Wollen sie fortfahren") // textangebe die mit der confirm-box ausgegeben wird. 
 if(box==true) return true;
 else return false;
}

function downloadfileselect(){

       if (boolShowDownload==0){ 
       hideall();
       document.getElementById('menuright1').style.visibility='visible';
       document.getElementById('downloadfilediv').style.visibility='visible';
       boolShowDownload=1;
       
       
       if(savetrackpoints.length>0) document.download.auswahl1.checked='TRUE';              
       if(saveroutepoints.length>0){
         document.download.auswahl2.checked='TRUE';
         document.download.auswahl3.checked='TRUE';
         var PolyRoute=directions.getPolyline();  
         PolyRoute.getKml(function(b){document.download.xmlroute.value=b;});       
       }
       
       if(savewaypoints.length>0) document.download.auswahl4.checked='TRUE';       
       
                document.getElementById('foundwaypoint').innerHTML="("+savewaypoints.length+")";
                document.getElementById('foundtrack').innerHTML="("+savetrackpoints.length+")";
                document.getElementById('foundroute').innerHTML="("+saveroutepoints.length+")";
                document.getElementById('foundroute2').innerHTML="("+saveroutepoints.length+")";

       }
       else{
       hideall();
       boolShowDownload=0;
       }

}

function downloadfile(){


  if(document.download.filetyp.options[document.download.filetyp.options.selectedIndex].value=="gpx"){
       var downloadstring='\<\?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><gpx version=\"1.1\" creator=\"GPS-Touren.at\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"http://www.topografix.com/GPX/1/1\">\n';

      
      if(savewaypoints.length>0  && document.download.auswahl4.checked){
          
           for(var i in savewaypoints){
            downloadstring+='<wpt lat="'+savewaypoints[i][0]+'" lon="'+savewaypoints[i][1]+'">\n';
            downloadstring+='<ele>'+savewaypoints[i][2]+'</ele>\n';
            downloadstring+='<name>'+savewaypoints[i][3]+'</name>\n';
            downloadstring+='<desc>'+savewaypoints[i][4]+'</desc>\n</wpt>\n';
            }
       
       }       

      if(saveroutepoints.length>0  && document.download.auswahl2.checked){
          downloadstring+='<rte>\<name>Route GPS-Touren</name>\n';
          
           for(var i in saveroutepoints){
           downloadstring+='<rtept lat="'+saveroutepoints[i][0]+'" lon="'+saveroutepoints[i][1]+'">\n';
           downloadstring+='<name>Routenpunkt'+i+'</name></rtept>\n';
          }
          downloadstring+='</rte>\n';
       
       }       
       
       if(savetrackpoints.length>0 && document.download.auswahl1.checked){
          downloadstring+='<trk><name>Track GPS-Touren.at</name><trkseg>\n';
          
           for(var i in savetrackpoints){
           downloadstring+='<trkpt lat="'+savetrackpoints[i][0]+'" lon="'+savetrackpoints[i][1]+'">\n';
           downloadstring+='<ele>'+savetrackpoints[i][2]+'</ele></trkpt>\n';
          }
          downloadstring+='</trkseg></trk>\n';
       }
                 
       
       //downloadstring+='</gpx>';       
       document.download.xml.value=downloadstring;
       document.download.submit();
  }
  
  if(document.download.filetyp.options[document.download.filetyp.options.selectedIndex].value=="kml"){
   var downloadstring='\<\?xml version=\"1.0\" encoding=\"UTF-8\"?><kml xmlns=\"http://earth.google.com/kml/2.1\"><Document><name>Paths</name><description></description><Style id=\"blueLineGreenPoly\"><LineStyle><color>7fff0000</color><width>4</width></LineStyle><PolyStyle><color>7f00ff00</color></PolyStyle></Style>';      
   
   /* Noch zu programmieren  */
      if(savewaypoints.length>0  && document.download.auswahl4.checked){
          downloadstring+='<Folder><name>Waypoints</name>\n';
           for(var i in savewaypoints){
            downloadstring+='<Placemark><visibility>0</visibility><styleUrl>#waypoint_4835</styleUrl><name>'+savewaypoints[i][3]+'</name><Point><coordinates>'+savewaypoints[i][1]+', '+savewaypoints[i][0]+', '+savewaypoints[i][2]+'</coordinates></Point></Placemark>\n';
          }
          downloadstring+='</Folder>';
       }       
       
      if(saveroutepoints.length>0  && document.download.auswahl2.checked){
          downloadstring+='<Folder><name>Routenpunkte</name>\n';
           for(var i in saveroutepoints){
            downloadstring+='<Placemark><visibility>0</visibility><styleUrl>#waypoint_4835</styleUrl><name>Routenpunkt'+i+'</name><Point><coordinates>'+saveroutepoints[i][1]+', '+saveroutepoints[i][0]+'</coordinates></Point></Placemark>\n';
          }
          downloadstring+='</Folder>';
       
       }
       
      if(saveroutepoints.length>0  && document.download.auswahl3.checked){
          downloadstring+=document.download.xmlroute.value;
       
       }

       
       
       
       if(savetrackpoints.length>0 && document.download.auswahl1.checked){
          downloadstring+='<Placemark><name>Track</name><description>Transparent green wall with yellow outlines</description><styleUrl>#blueLineGreenPoly</styleUrl><LineString><extrude>1</extrude><tessellate>1</tessellate><altitudeMode>clambToGround</altitudeMode><coordinates>\n';
          
          
           for(var i in savetrackpoints){
           downloadstring+=savetrackpoints[i][1]+', '+savetrackpoints[i][0]+', '+savetrackpoints[i][2]+'\n';
          }
          downloadstring+='</coordinates></LineString></Placemark>\n';
       }
                 
       
       downloadstring+='</Document>\n</kml>';       
       document.download.xml.value=downloadstring;
       document.download.submit();
   
  }

}

function addPanoramio(){
 if(fototoggle==0){
   map.addOverlay(fotooverlay);
   fototoggle=1;
 } 
 else{
   map.removeOverlay(fotooverlay);
   fototoggle=0;
 }
 return(fototoggle);
 
}

function addWiki(){
 if(wikitoggle==0){
   map.addOverlay(wikioverlay);
   wikitoggle=1;
 } 
 else{
   map.removeOverlay(wikioverlay);
   wikitoggle=0;
 }
 return(wikitoggle);
 
}

function showworktools(){

       if (boolShowworktools==0){ 
       //hideall();
       document.getElementById('menuleft2').style.visibility='visible';
       if(select=='Track'){
       document.getElementById('trackdiv').style.visibility='visible';
       document.getElementById('trackpoints').style.visibility='visible';
       }
       else if (select=='Route'){
       document.getElementById('routediv').style.visibility='visible';
       document.getElementById('routepoints').style.visibility='visible';
       
       }
       else if (select=='Wegpunkt'){
       document.getElementById('waypointdiv').style.visibility='visible';
       document.getElementById('waypoints').style.visibility='visible';
       
       
       }
       boolShowworktools=1;
       }
       else{
       //hideall();
       document.getElementById('menuleft2').style.visibility='hidden';
       document.getElementById('trackdiv').style.visibility='hidden';
       document.getElementById('routediv').style.visibility='hidden';
       document.getElementById('waypointdiv').style.visibility='hidden';
       document.getElementById('trackpoints').style.visibility='hidden';
       document.getElementById('routepoints').style.visibility='hidden';
       document.getElementById('waypoints').style.visibility='hidden';
       boolShowworktools=0;
       }


}

function transferpointselect(from){
       if (booltransferpoint==0){ 
         hideall();
         document.getElementById('menuright1').style.visibility='visible';
         document.getElementById('transferpointdiv').style.visibility='visible';
         booltransferpoint=1;
         
         if(from=="Track"){
         document.getElementById('transfertype').innerHTML="Track";
         document.transferpointform.hiddentype.value="Track";
         
         }
         else if(from=="Route"){
         document.getElementById('transfertype').innerHTML="Route";
         document.transferpointform.hiddentype.value="Route";
         
         
         }
         else if(from=="Wegpunkt"){
         document.getElementById('transfertype').innerHTML="Wegpunkte";
         document.transferpointform.hiddentype.value="Wegpunkte";
         
         
         }       
         
       }
       else{
       hideall();
       booltransferpoint=0;
       }


}

function transferpoints(){

 if(document.transferpointform.hiddentype.value=="Track"){
      document.getElementById('ladezustand').style.visibility='visible';      
      document.getElementById('ladezustand').innerHTML='Wandle Track um, bitte warten ...';      
 
   if(document.transferpointform.transferto.options[document.transferpointform.transferto.options.selectedIndex].value=="Wegpunkte"){
    /*
    savewaypoints=[];
    wmpl=0;
    
    for (var i in waypointmarkers){
     map.removeOverlay(waypointmarkers[i]);	    
    } */
    
    for (var i in trackmarkers){
     map.removeOverlay(trackmarkers[i]);	    
    }
    map.removeOverlay(TrackOverlay);
    
    for(i=0;i<maptrackpoints.length;i++){		
	   mapwaypoints.push(maptrackpoints[i]);
		 savewaypoints.push([savetrackpoints[i][0],savetrackpoints[i][1],savetrackpoints[i][2],'Wegpunkt '+(wmpl+1),'']);
     addwaypointMarkers (icon_waypoint);
		 wmpl++;
	  }
	  savetrackpoints=[];
    maptrackpoints=[];
    trackmarkers=[];
    tmpl=0;
    showTrackPoints();
    changeselect ('Wegpunkt');   
   }
   
   if(document.transferpointform.transferto.options[document.transferpointform.transferto.options.selectedIndex].value=="Route"){
   
    saveroutepoints=[];
    maproutepoints=[];
    routemarkers=[];
    mpl=0;
    
    for (var i in routemarkers){
     map.removeOverlay(routemarkers[i]);	    
    }
    
    for (var i in trackmarkers){
     map.removeOverlay(trackmarkers[i]);	    
    }
    map.removeOverlay(TrackOverlay);
    
    //for(var i in maptrackpoints){		
	   maproutepoints.push(maptrackpoints[0]);
		 saveroutepoints.push([savetrackpoints[0][0],savetrackpoints[0][1],savetrackpoints[0][2]]);
     addrouteMarkers (icon_route);
		 mpl++;
	   maproutepoints.push(maptrackpoints[Math.round((maptrackpoints.length-1)/2)]);
		 saveroutepoints.push([savetrackpoints[Math.round((maptrackpoints.length-1)/2)][0],savetrackpoints[Math.round((maptrackpoints.length-1)/2)][1],savetrackpoints[Math.round((maptrackpoints.length-1)/2)][2]]);
     addrouteMarkers (icon_route);
		 mpl++;
     maproutepoints.push(maptrackpoints[maptrackpoints.length-1]);
		 saveroutepoints.push([savetrackpoints[maptrackpoints.length-1][0],savetrackpoints[maptrackpoints.length-1][1],savetrackpoints[maptrackpoints.length-1][2]]);
     addrouteMarkers (icon_route);
		 mpl++;
	  //}
	  savetrackpoints=[];
    maptrackpoints=[];
    trackmarkers=[];
    tmpl=0;
    directions.clear();
    calcRoute ();

    showTrackPoints();
    showRoutePoints();
    changeselect ('Route');   
   }

 
 }
 if(document.transferpointform.hiddentype.value=="Route"){
     document.getElementById('ladezustand').style.visibility='visible';      
     document.getElementById('ladezustand').innerHTML='Wandle Route um, bitte warten ...';      

    if(document.transferpointform.transferto.options[document.transferpointform.transferto.options.selectedIndex].value=="Track"){
   
   
    for (var i in trackmarkers){
     map.removeOverlay(trackmarkers[i]);	    
    }
    for (var i in routemarkers){
     map.removeOverlay(routemarkers[i]);	    
    }

    savetrackpoints=[];
    maptrackpoints=[];
    trackmarkers=[];
    tmpl=0;
    showTrackPoints();
    
    /*
    for(var i in maproutepoints){		
	   maptrackpoints[i]=maproutepoints[i];
		 savetrackpoints.push([saveroutepoints[i][0],saveroutepoints[i][1],0]);
     addtrackMarkers (icon_route);
		 tmpl++;
	  }
	  saveroutepoints=[];
    maproutepoints=[];
    routemarkers=[];
    mpl=0;
     */
     
     var PolyRoute=directions.getPolyline();  
     PolyRoute.getKml(function(b){
     
       var coordstring=b.split("<coordinates>");
       //alert(coordstring[0]);
       //alert(coordstring[1]);
       var coord=coordstring[1].split("</coordinates>");
       
       //alert(coord[0]);
     
     var coordpoint=coord[0].split(" ");
     var routefac=3;
     for (i=0;i<coordpoint.length;i=i+routefac){
      var coordlatlon=coordpoint[i].split(",");
  	   maptrackpoints.push(new GLatLng(coordlatlon[1],coordlatlon[0]));
       savetrackpoints.push([parseFloat(coordlatlon[1]),parseFloat(coordlatlon[0]), 0]);
       addtrackMarkers (icon_route);
   		 tmpl++;

     
     }
     
     makePolyTrack (maptrackpoints);
	  
     });
    saveroutepoints=[];
    maproutepoints=[];
    routemarkers=[];
    mpl=0;
    directions.clear();
    
    showTrackPoints();
    
    showRoutePoints();
    changeselect ('Track'); 
    
      
   }
   
   if(document.transferpointform.transferto.options[document.transferpointform.transferto.options.selectedIndex].value=="Wegpunkte"){
   
    //savewaypoints=[];
    //mapwaypoints=[];
    //wmpl=0;
    /*
    for (var i in waypointmarkers){
     map.removeOverlay(waypointmarkers[i]);	    
    } */
    for (var i in routemarkers){
     map.removeOverlay(routemarkers[i]);	    
    }
    directions.clear();
    
    for(i=0;i<maproutepoints.length;i++){		
	   mapwaypoints.push(maproutepoints[i]);
		 savewaypoints.push([saveroutepoints[i][0],saveroutepoints[i][1],0,'Wegpunkt '+(wmpl+1),'']);
     addwaypointMarkers (icon_waypoint);
		 wmpl++;
	  }
	  saveroutepoints=[];
    maproutepoints=[];
    routemarkers=[];
    mpl=0;
    
    //showTrackPoints();
    showRoutePoints();
    changeselect ('Wegpunkt');   
   }

 
 
 }
if(document.transferpointform.hiddentype.value=="Wegpunkte"){
    document.getElementById('ladezustand').style.visibility='visible';      
    document.getElementById('ladezustand').innerHTML='Wandle Wegpunkte um, bitte warten ...';      

    if(document.transferpointform.transferto.options[document.transferpointform.transferto.options.selectedIndex].value=="Track"){
   
    for (var i in trackmarkers){
     map.removeOverlay(trackmarkers[i]);	    
    }
    for (var i in waypointmarkers){
     map.removeOverlay(waypointmarkers[i]);	    
    }

    savetrackpoints=[];
    maptrackpoints=[];
    trackmarkers=[];
    tmpl=0;
    
    
    for(var i in mapwaypoints){		
	   maptrackpoints[i]=mapwaypoints[i];
		 savetrackpoints.push([savewaypoints[i][0],savewaypoints[i][1],savewaypoints[i][2]]);
     addtrackMarkers (icon_route);
		 tmpl++;
	  }
	  savewaypoints=[];
    mapwaypoints=[];
    waypointmarkers=[];
    wmpl=0;
    
    //showTrackPoints();
    makePolyTrack (maptrackpoints);
	  showWayPoints();
    showRoutePoints();
    changeselect ('Track');   
   }
   
   if(document.transferpointform.transferto.options[document.transferpointform.transferto.options.selectedIndex].value=="Route"){
   
    for (var i in routemarkers){
     map.removeOverlay(routemarkers[i]);	    
    }
    
    for (var i in waypointmarkers){
     map.removeOverlay(waypointmarkers[i]);	    
    }

    saveroutepoints=[];
    maproutepoints=[];
    routemarkers=[];
    mpl=0;
    
    
    for(var i in mapwaypoints){		
	   maproutepoints[i]=mapwaypoints[i];
		 saveroutepoints.push([savewaypoints[i][0],savewaypoints[i][1],savewaypoints[i][2]]);
     addrouteMarkers (icon_route);
		 mpl++;
	  }
	  savewaypoints=[];
    mapwaypoints=[];
    waypointmarkers=[];
    wmpl=0;
    
    directions.clear();
    calcRoute ();
    
    showWayPoints();
    showRoutePoints();
    changeselect ('Route');   
   }
  

}


}

function filter(){

       if (boolfilter==0){ 
       hideall();
       document.getElementById('menuright1').style.visibility='visible';
       document.getElementById('filterdiv').style.visibility='visible';
       boolfilter=1;
       }
       else{
       hideall();
       boolfilter=0;
       }

}

function filterpoints(select){


 if(select==0){
    var maxdist=document.filterform.filterentf.options[document.filterform.filterentf.options.selectedIndex].value;
    var distges=0;
    var lat_akt=0;
    var lon_akt=0;
    var lat_old=0;
    var lon_old=0;
    
    //if(maxdist==10) alert("Maxdist passt");
    
    for (var i in trackmarkers){
     map.removeOverlay(trackmarkers[i]);	    
    }
    temparray=[];
    temparray2=[];
    temparray.push(maptrackpoints[0]);
    temparray2.push(savetrackpoints[0]);   
 		lat_old = savetrackpoints[0][0];
		lon_old = savetrackpoints[0][1];

 
    for (f=1;f<tmpl;f++) {  
   	 //if(f==1) hoehe[0] = savetrackpoints[f-1][2];
    lat_akt = savetrackpoints[f][0];
		lon_akt = savetrackpoints[f][1];
		//hoehe[f] = savetrackpoints[f][2]
		//lat_old = savetrackpoints[f-1][0];
		//lon_old = savetrackpoints[f-1][1];

		dist_lat=111324*Math.abs(lat_akt-lat_old);
	 	dist_lon=111324*Math.cos(((lat_old+lat_akt)/2)*3.14159/180)*Math.abs(lon_akt-lon_old);
		dist=Math.sqrt(Math.pow(dist_lat,2)+Math.pow(dist_lon,2));
		distges=distges+dist;
		//alert("Distges "+distges);
		
		if (distges>maxdist){
      temparray.push(maptrackpoints[f]);
      temparray2.push(savetrackpoints[f]);
   		lat_old = savetrackpoints[f][0];
  		lon_old = savetrackpoints[f][1];
      //alert ("Passt");
      distges=0;
    }
    
  }
  maptrackpoints=[];
  savetrackpoints=[];
  trackmarkers=[];
  maptrackpoints=temparray;
  savetrackpoints=temparray2;
  
  tmpl=0;
  //alert("Temp"+temparray.length);
  //alert("Map"+maptrackpoints.length);
 for (var i in maptrackpoints){
    trackmarkers [i]= new GMarker(maptrackpoints[i], {icon: icon_route,draggable: true});
    map.addOverlay(trackmarkers[i]);
    dragMTrack (i);
    tmpl++;
  }
  makePolyTrack (temparray);
  showTrackPoints();

  temparray=[];
  temparray2=[];
 
 
 }
 
 if(select==1){
     var maxpoints=document.filterform2.filterpunkte.value;
     var modfaktor=Math.round(0.5+maptrackpoints.length/maxpoints);
   
   if(maxpoints<maptrackpoints.length){  
     for (var i in trackmarkers){
      map.removeOverlay(trackmarkers[i]);	    
     } 
    
    var counti=0;   
    for(i=0;i<maptrackpoints.length;i=i+modfaktor){
      temparray[counti]=maptrackpoints[i];
      temparray2[counti]=savetrackpoints[i];
      counti++;
      }
    if(maptrackpoints.length % modfaktor != 0){
      temparray[counti]=maptrackpoints[maptrackpoints.length-1];
      temparray2[counti]=savetrackpoints[maptrackpoints.length-1];
    
    }
    
    maptrackpoints=[];
    savetrackpoints=[];
    trackmarkers=[];
    maptrackpoints=temparray;
    savetrackpoints=temparray2;
    temparray=[];
    temparray2=[];

    tmpl=0;
    for (var i in maptrackpoints){
      trackmarkers [i]= new GMarker(maptrackpoints[i], {icon: icon_route,draggable: true});
      map.addOverlay(trackmarkers[i]);
      dragMTrack (i);
      tmpl++;
    
    }


    makePolyTrack (maptrackpoints);
    showTrackPoints();
   }
  }

}		

function updateTopo(){

         //Array aufteilen mit Limit 280 und einzeln topoGetAltitudes aufrufen
          //var limit=280;  
          //var full=Math.floor(sizeof(savetrackpoints)/limit);
          //var rest=sizeof(savetrackpoints)%limit;
          //var topoget=[];
          //var data_array=[];
          var data_array = new Array(6);
          var alti_array = new Array(6);
          
          for(i=0;i<6;i++)
          {
            data_array [i] = new Array(4);
          }
            for(i=0; i<6; i++) {
              data_array [i][0] = savetrackpoints[i][0];
              data_array [i][1] = savetrackpoints[i][1];
              data_array [i][2] = function( altitude, context) {
               context=altitude;};
              data_array [i][3] = alti_array[i];
            }

            topoGetAltitudes( data_array, 10000);            
           
            for(i=0; i<6; i++) {
            alert(alti_array[i]);
            }
              
         //ENDE Array aufteilen mit Limit 280 und einzeln topoGetAltitudes aufrufen

}

function garmin(){


       if (boolShowGarmin==0){ 
       hideall();
       document.getElementById('menuright1').style.visibility='visible';
       document.getElementById('garmindiv').style.visibility='visible';
       boolShowGarmin=1;

       var downloadstring='\<\?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><gpx version=\"1.1\" creator=\"GPS-Touren.at\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"http://www.topografix.com/GPX/1/1\">\n';

      
      if(savewaypoints.length>0){
          
           for(var i in savewaypoints){
            downloadstring+='<wpt lat="'+savewaypoints[i][0]+'" lon="'+savewaypoints[i][1]+'">\n';
            downloadstring+='<ele>'+savewaypoints[i][2]+'</ele>\n';
            downloadstring+='<name>'+savewaypoints[i][3]+'</name>\n';
            downloadstring+='<desc>'+savewaypoints[i][4]+'</desc>\n</wpt>\n';
          }
       
       }       

      if(saveroutepoints.length>0){
          downloadstring+='<rte>\<name>Route GPS-Touren</name>\n';
          
           for(var i in saveroutepoints){
           downloadstring+='<rtept lat="'+saveroutepoints[i][0]+'" lon="'+saveroutepoints[i][1]+'">\n';
           downloadstring+='<name>Routenpunkt'+i+'</name></rtept>\n';
          }
          downloadstring+='</rte>\n';
       
       }       
       
       if(savetrackpoints.length>0){
          downloadstring+='<trk><name>Track GPS-Touren.at</name><trkseg>\n';
          
           for(var i in savetrackpoints){
           downloadstring+='<trkpt lat="'+savetrackpoints[i][0]+'" lon="'+savetrackpoints[i][1]+'">\n';
           downloadstring+='<ele>'+savetrackpoints[i][2]+'</ele></trkpt>\n';
          }
          downloadstring+='</trkseg></trk>\n';
       }
                 
       
       downloadstring+='</gpx>';       
       document.garminupload.dataString.value=downloadstring;
       
       
       }
       else{
       hideall();
       boolShowGarmin=0;
       }
}

function garmindown(){


       if (boolShowGarmindown==0){ 
       hideall();
       document.getElementById('menuright1').style.visibility='visible';
       document.getElementById('garmindowndiv').style.visibility='visible';
       boolShowGarmindown=1;
       
       
       }
       else{
       hideall();
       boolShowGarmindown=0;
       }
}

function openmarker(){


       if (boolShowMarker==0){ 
       hideall();
       document.getElementById('menuright1').style.visibility='visible';
       document.getElementById('markerdiv').style.visibility='visible';
       boolShowMarker=1;
       
       
       }
       else{
       hideall();
       boolShowMarker=0;
       }
}

function impressum(){


       if (boolShowImpressum==0){ 
       hideall();
       document.getElementById('menuright1').style.visibility='visible';
       document.getElementById('impressumdiv').style.visibility='visible';
       boolShowImpressum=1;
       
       
       }
       else{
       hideall();
       boolShowImpressum=0;
       }
}

function ueber(){


       if (boolShowUeber==0){ 
       hideall();
       document.getElementById('menuright1').style.visibility='visible';
       document.getElementById('ueberdiv').style.visibility='visible';
       boolShowUeber=1;
       
       
       }
       else{
       hideall();
       boolShowUeber=0;
       }
}

function hilfe(){


       if (boolShowHilfe==0){ 
       hideall();
       document.getElementById('menuright1').style.visibility='visible';
       document.getElementById('hilfediv').style.visibility='visible';
       boolShowHilfe=1;
       
       
       }
       else{
       hideall();
       boolShowHilfe=0;
       }
}


function loadXMLDoc(sportart,id)
{
if (window.XMLHttpRequest)
  {
  xhttp=new XMLHttpRequest();
  }
else
  {
  xhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xhttp.open("GET",'dateiabfrage.php?sportart='+sportart+'&id='+id,false);
xhttp.send();
//alert(xhttp.responseText);
string1=xhttp.responseText.replace("\n","");

return((new DOMParser()).parseFromString(string1, "text/xml"));

} 

function openxml(sportart,id){

 //var teststring='<trk><name>Palfelhorn</name><trkseg><trkpt lat="47.532448" lon="12.814801"><ele>1146.757370</ele></trkpt><trkpt lat="47.532381" lon="12.816491"><ele>1172.535211</ele></trkpt><trkpt lat="47.531953" lon="12.817500"><ele>1160.000000</ele></trkpt><trkpt lat="47.531346" lon="12.818259"><ele>1180.145985</ele></trkpt></trkseg></trk>';
    
    document.getElementById('ladezustand').style.visibility='visible';      
    document.getElementById('ladezustand').innerHTML='Lade Track, bitte warten ...';      
    var string1='';
    var countele=0;
    //xmlDoc=loadXMLDoc('www.gps-touren.at/GPS-Daten/bergtouren/192/Wandergolf_StMartin.gpx');
    xmlDoc=loadXMLDoc(sportart,id);
    //xmlDoc=loadXMLDoc("temp/books.xml");
    //alert("XML document loaded into an XML DOM Object.");
    //alert(xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue + "<br />");
    //alert(xmlDoc);
    var root_trk=xmlDoc.getElementsByTagName("trk");
    var root_trkseg=root_trk[0].getElementsByTagName("trkseg");
    var root_trkpts=root_trkseg[0].getElementsByTagName("trkpt");
    
    
    for (var i in trackmarkers){
     map.removeOverlay(trackmarkers[i]);	    
    }
    map.removeOverlay(TrackOverlay);
    
    savetrackpoints=[];
    maptrackpoints=[];
    trackmarkers=[];
    tmpl=0;
    showTrackPoints();
    
    var modfaktor=1;
    var laenge=root_trkpts.length;
    if(laenge>500) var modfaktor=Math.round(laenge/500);

    for(i=0;i<laenge;i=i+modfaktor){
    var root_pts_lat=parseFloat(root_trkpts[i].getAttribute("lat")); 
    var root_pts_lon=parseFloat(root_trkpts[i].getAttribute("lon")); 
    
    var root_pts_ele=0;
    root_pts_ele=Math.round(parseInt(root_trkpts[i].getElementsByTagName("ele")[0].childNodes[0].nodeValue));
    
  
    
 	   maptrackpoints.push(new GLatLng(root_pts_lat,root_pts_lon));
	   savetrackpoints.push([root_pts_lat, root_pts_lon, root_pts_ele]);
     addtrackMarkers (icon_route);
		 tmpl++;
	   
    }
    
    map.setCenter(maptrackpoints[0],13);
    
    //showTrackPoints();
    makePolyTrack (maptrackpoints);
    showRoutePoints();
    changeselect ('Track');   
    document.getElementById('ladezustand').style.visibility='hidden';      
    

}



function loaddatafromgarmin(savetrackpoints_garmin){

    document.getElementById('ladezustand').style.visibility='visible';      
    document.getElementById('ladezustand').innerHTML='Lade Track, bitte warten ...';      

    for (var i in trackmarkers){
     map.removeOverlay(trackmarkers[i]);	    
    }
    map.removeOverlay(TrackOverlay);
    
    savetrackpoints=[];
    maptrackpoints=[];
    trackmarkers=[];
    tmpl=0;
    showTrackPoints();
    
    savetrackpoints=savetrackpoints_garmin
    
    for(i=0;i<savetrackpoints_garmin.length;i++){
    
 	   maptrackpoints.push(new GLatLng(savetrackpoints_garmin[i][0],savetrackpoints_garmin[i][1]));
	   addtrackMarkers (icon_route);
		 tmpl++;
	   
    }
    
    map.setCenter(maptrackpoints[0],13);
    
    //showTrackPoints();
    makePolyTrack (maptrackpoints);
    showRoutePoints();
    changeselect ('Track');   

    document.getElementById('ladezustand').style.visibility='hidden';      

}

function loaddatafromfile(savetrackpoints_file,maptrackpoints_file,savewaypoints_file){

    document.getElementById('ladezustand').style.visibility='visible';      
    document.getElementById('ladezustand').innerHTML='Lade Track, bitte warten ...';      

    for (var i in trackmarkers){
     map.removeOverlay(trackmarkers[i]);	    
    }
    map.removeOverlay(TrackOverlay);
    
    savetrackpoints=[];
    maptrackpoints=[];
    trackmarkers=[];
    tmpl=0;
    showTrackPoints();
        
    savetrackpoints=savetrackpoints_file;
    maptrackpoints=maptrackpoints_file;    
    
    for(i=0;i<savetrackpoints_file.length;i++){
    	   addtrackMarkers (icon_route);
		     tmpl++;	   
    }
    
    map.setCenter(maptrackpoints[0],13);
    
    //showTrackPoints();
    makePolyTrack (maptrackpoints);
    showRoutePoints();
    changeselect ('Track');   

    document.getElementById('ladezustand').style.visibility='hidden';      

   //Lade Wegpunkte falls vorhanden
   if(savewaypoints_file.length>0){
   
		savewaypoints=savewaypoints_file;
		
    for(i=0;i<savewaypoints.length;i++){
    mapwaypoints.push(new GLatLng(savewaypoints[i][0],savewaypoints[i][1]));
		addwaypointMarkers (icon_waypoint);
	  wmpl++;
	  }
   
   
   }

}


function reverseTrack(){

     for (var i in trackmarkers){
      map.removeOverlay(trackmarkers[i]);	    
     } 
    
    trackmarkers=[];
    maptrackpoints=maptrackpoints.reverse();
    savetrackpoints=savetrackpoints.reverse();
    
    tmpl=0;
    for (var i in maptrackpoints){
      trackmarkers [i]= new GMarker(maptrackpoints[i], {icon: icon_route,draggable: true});
      map.addOverlay(trackmarkers[i]);
      dragMTrack (i);
      tmpl++;
    
    }

    makePolyTrack (maptrackpoints);
    showTrackPoints();
}

function deleteTrackpoints(index){

for (var i in trackmarkers){
  map.removeOverlay(trackmarkers[i]);	    
}

tmpl=0;   

    for(i=0;i<(index+1);i++){
      temparray[i]=maptrackpoints[i];
      temparray2[i]=savetrackpoints[i];
      tmpl++;
    }
    
maptrackpoints=[];
savetrackpoints=[];
trackmarkers=[];
maptrackpoints=temparray;
savetrackpoints=temparray2;
temparray=[];
temparray2=[];

for (i=0;i<maptrackpoints.length;i++){
 trackmarkers [i]= new GMarker(maptrackpoints[i], {icon: icon_route,draggable: true});
 map.addOverlay(trackmarkers[i]);
 dragMTrack (i);
}
makePolyTrack (maptrackpoints);
showTrackPoints();


}

//-----------------------------------------------------------------------------------------


function hol_touren() {  
                 //erstellen des requests
                try{
                    req = new XMLHttpRequest();
                }
                catch (e){
                    try{
                        req = new ActiveXObject("Msxml2.XMLHTTP");
                    } 
                    catch (e){
                        try{
                            req = new ActiveXObject("Microsoft.XMLHTTP");
                        } 
                        catch (failed){
                            req = null;
                        }
                    }  
                }

                if (req == null)
                      alert("Error creating request object!");
                  
                  //anfrage erstellen (GET, url ist localhost,
                  //request ist asynchron      
                  var sportart=document.tourausdatenbank.sportart.options[document.tourausdatenbank.sportart.options.selectedIndex].value;
                  var url = 'tourenabfrage.php?sportart='+sportart;

                  req.open("GET", url, true);

                //Beim abschliessen des request wird diese Funktion ausgeführt
                req.onreadystatechange = zeige_touren;
  
                  req.setRequestHeader("Content-Type",
                                      "application/x-www-form-urlencoded");
                req.send(null);

}

function zeige_touren( originalRequest ) {

document.getElementById('tourenanzeige').innerHTML = req.responseText;

}

function toogle_overlays(data){


if(data=='huetten'){
 if (document.markerform.huetten.checked) hol_daten_aus_datenbank('huetten');
 else{
   mgr_huetten.clearMarkers(); 
   batch_huetten=[];
 }
}
else if(data=='gipfel'){
 if (document.markerform.gipfel.checked) hol_daten_aus_datenbank('gipfel');
 else{
  mgr_gipfel.clearMarkers(); 
  batch_gipfel=[];
 }
}

}

function hol_daten_aus_datenbank(data) {  
                
                
                var bounds = map.getBounds();
                var southWest = bounds.getSouthWest();
                var northEast = bounds.getNorthEast();

                //alert(northEast.lng()+" - "+northEast.lat());
                 //erstellen des requests
                try{
                    req = new XMLHttpRequest();
                }
                catch (e){
                    try{
                        req = new ActiveXObject("Msxml2.XMLHTTP");
                    } 
                    catch (e){
                        try{
                            req = new ActiveXObject("Microsoft.XMLHTTP");
                        } 
                        catch (failed){
                            req = null;
                        }
                    }  
                }

                if (req == null)
                      alert("Error creating request object!");
                  
                  //anfrage erstellen (GET, url ist localhost,
                  //request ist asynchron      
                  var url = 'datenbankabfrage.php?data='+data+'&east='+northEast.lng()+'&west='+southWest.lng()+'&south='+southWest.lat()+'&north='+northEast.lat();

                  req.open("GET", url, true);

                //Beim abschliessen des request wird diese Funktion ausgeführt
                if(data=='huetten') req.onreadystatechange = erstelle_overlay_huetten;
                else if (data=='gipfel') req.onreadystatechange = erstelle_overlay_gipfel;
                
                  req.setRequestHeader("Content-Type",
                                      "application/x-www-form-urlencoded");
                req.send(null);

}

function erstelle_overlay_huetten(originalRequest) {

 var string=req.responseText; 
 var huetten=string.split(";");
 document.markerform.huetten.checked=true; 
 mgr_huetten.clearMarkers();
 
  for(i=0;i<huetten.length;i++){
    var huette=huetten[i].split(",");
    batch_huetten.push(new GMarker(new GLatLng(parseFloat(huette[1]),parseFloat(huette[2])), {title: huette[0], icon: icon_huette}));
  }
  mgr_huetten.addMarkers(batch_huetten, 8);
  mgr_huetten.refresh();
}

function erstelle_overlay_gipfel(originalRequest) {

  var string=req.responseText;
  var gipfel=string.split(";");
  document.markerform.gipfel.checked=true;
 
  mgr_gipfel.clearMarkers();
 
  for(i=0;i<gipfel.length;i++){
    var gip=gipfel[i].split(",");
    batch_gipfel.push(new GMarker(new GLatLng(parseFloat(gip[1]),parseFloat(gip[2])), {title: gip[0], icon: icon_gipfel}));
  }
  mgr_gipfel.addMarkers(batch_gipfel, 8);
  mgr_gipfel.refresh(); 
 
}

function hol_overlay(sportart,id) {

                //erstellen des requests
                try{
                    req = new XMLHttpRequest();
                }
                catch (e){
                    try{
                        req = new ActiveXObject("Msxml2.XMLHTTP");
                    } 
                    catch (e){
                        try{
                            req = new ActiveXObject("Microsoft.XMLHTTP");
                        } 
                        catch (failed){
                            req = null;
                        }
                    }  
                }

                if (req == null)
                      alert("Error creating request object!");
                  
                  //anfrage erstellen (GET, url ist localhost,
                  //request ist asynchron      
                  //var sportart=document.tourausdatenbank.sportart.options[document.tourausdatenbank.sportart.options.selectedIndex].value;
                  var url = 'overlayabfrage.php?sportart='+sportart+'&id='+id;

                  req.open("GET", url, true);

                //Beim abschliessen des request wird diese Funktion ausgeführt
                req.onreadystatechange = tour_overlay;
  
                  req.setRequestHeader("Content-Type",
                                      "application/x-www-form-urlencoded");
                req.send(null);

}

function tour_overlay( originalRequest ) {
if(geoXml) map.removeOverlay(geoXml);

var string1=req.responseText;
string1=string1.replace("\n","");
string='http://www.gps-touren.at/'+string1;
//string='http://www.gps-touren.at/GPS-Daten/kml/mtbtouren/1/25U-Achbergrunde.kml';

//alert(string);
geoXml = new GGeoXml(string);
map.addOverlay(geoXml);
}

//-----------------------------------------------------------------------------------------


function sonderzeichen(str)
{
   var replace = new Array("ä", "ö", "ü", "Ä", "Ö", "Ü", "ß");
   var by = new Array("ae", "oe", "ue", "Ae", "Oe", "Ue", "ss");
   
    for (var i=0; i<replace.length; i++) {
      str = str.replace(replace[i], by[i]);
    } 
   
   return str;
}


/*  -----------------------Sonderfunktionen ----------------------------------

function sonderzeichen($s)
{
   $zuers = array("&", "ä", "ö", "ü", "Ä", "Ö", "Ü", "ß", "<", ">", "€", "", "¹", "²", "³");
   $ersetz = array("&amp;", "&auml;", "&ouml;", "&uuml;", "&Auml;", "&Ouml;", "&Uuml;", "&szlig;", "&lt;", "&gt;", "&euro;", "¹", "&#178", "³");
   $s = $s.replace($zuers, $ersetz, $s);

   return $s;
}





 -----------------------Sonderfunktionen ----------------------------------
*/



