// ========================================= PwSetUp.js ====================================

// Copyright ©2010 Internetverlag Terranautic Limited

function callPOIs(){
   //AutoMove = true;
   if ((SettWikipediaON) || (SettPanoramioON)) {  ExternOverlayClear();  }
   var Message = "<img src='http://localhost/grafik/gif/achtung1.gif' align='left'><font class=actext>"+TxtWarten+", "+TxtPoisKarte+"</font>";
   document.getElementById("GisMessage").innerHTML = Message;
   //Sid = Sid+1;
   GettCenter();
   GetIcParam('');
   if (TiTri) {
       TipsTricks();
       } else {
       TiTri=true;
       }
   }
   
function callPOIsX(){
   //Sid = Sid+1;
   if ((SettWikipediaON) || (SettPanoramioON)) {  ExternOverlayClear();  }
   GettCenter();
   GetIcParam('-NoEle');
   if (TiTri) {
       TipsTricks();
       }
   }

function MoveMessage() {
    T="javascript:PoiWalkFunc('xml','"+minX+";"+maxX+";"+minY+";"+maxY+";');";
    //var Extra1="&nbsp;<input type=button name=POIs value='PanoramioBilder' onclick='Panoramio();' class=actext></a>";
    //var Extra2="&nbsp;<input type=button name=Wiki value='Wikipedia' onclick='WikiPedia();' class=actext></a>";
    Extra1=Extra2='';
    var Message = "<img src='http://localhost/grafik/gif/achtung1.gif' align='left'><font class=btext>Um ein schnelleres Arbeiten zu gewährleisten blenden wir die POIs/OVIs beim verschieben und/oder zoomen nicht neu ein, dafür bitte jeweils diese Taste drücken:</font><br><input type=button name=POIs value='POIs in der Karte zeigen' onclick='callPOIs();' class=actext><input type=button name=POIs value='POIs für die Karte auswählen' onclick=\""+T+"\" class=actext>"+Extra1+Extra2;
    document.getElementById("GisMessage").innerHTML = Message;
    }

// Es wird ein Marker beweglichem Icon erzeugt
function createDragMarker(point) {
if (Gmarker) { 
    map.removeOverlay(Gmarker); 
    }
//var icon = new GIcon(baseIcon2);
//icon.image = "http://"+GrafikDomain+"/grafik/gis/move.png";
Gmarker = new GMarker(point,{draggable: true});

GEvent.addListener(Gmarker, "dragstart", function() {
  map.closeInfoWindow();
  });

GEvent.addListener(Gmarker, "dragend", function() {
  lat = Gmarker.getPoint().lat();
  lng = Gmarker.getPoint().lng();
  Ycc = parseFloat(lat);
  Xcc = parseFloat(lng);
  Ycc0 = parseFloat(lat);
  Xcc0 = parseFloat(lng);
  if (KooRundung == 'yes') {
      var Ycc0 = parseFloat(lat)*100000;
      var Xcc0 = parseFloat(lng)*100000;
      xi=parseInt(Xcc0);
      yi=parseInt(Ycc0);
      Ycc0 = parseInt(yi)/100000;
      Xcc0 = parseInt(xi)/100000;
      }
  PoiKooNS=Ycc0;
  PoiKooEW=Xcc0;
  AdressText=Ycc0+';'+Xcc0+';';
  //marker.openInfoWindowHtml("Ziel="+lat+"|"+lng);
  var Lxx=maxX-minX;
  var Lyy=maxY-minY;
  T='| '+Ycc0+' | '+Xcc0+' | B:'+Lxx+' | H:'+Lyy+' | Zoom:'+Zoom;
  document.getElementById("MapData").innerHTML = T;
  });
map.addOverlay(Gmarker);
};

// ENDE Marker mit beweglichem Icon erzeugt

// Es wird ein Marker mit eigenem Icon erzeugt
function createIconMarker(lat, lon, IconName, text) {
  var IconFile="http://"+GrafikDomain+"/grafik/gis/" + IconName + ".png";
  if (IconName.search(/route/) == -1) {
      if (IconName.search(/ipo/) == -1) {
          var icon = new GIcon(baseIcon);
          } else {
          IconFile="http://"+GrafikDomain+"/grafik/gis1/" + IconName + ".png";
          if (IconName.search(/ipoi/) == -1) {
            var icon = new GIcon(baseIcon30);
            if (IconName.search(/ipo0/) == -1) {
              var icon = new GIcon(baseIcon31);
              if (IconName.search(/ipo1/) == -1) {
                var icon = new GIcon(baseIcon32);
                if (IconName.search(/ipo2/) == -1) {
                  var icon = new GIcon(baseIcon33);
                  }
                }
              }
            } else {
            var icon = new GIcon(baseIcon3);
            }
          }
      } else {
      if (IconName.search(/route-info/) == -1) {
          var icon = new GIcon(baseIcon1);
          } else {
          var icon = new GIcon(baseIcon2);
          }
      }
  icon.image = IconFile;
  var Gp=new GPoint(lat,lon);
  var marker = new GMarker(Gp, icon);
  GEvent.addListener(marker, "click", function() {
     URL=CGI+"=poiwalk3-showv5&ID="+text+"&RoutenID="+RoutenID+"&RouteCounter="+RouteCounter+"&PoiWalkVers=3&PwSession="+Session;
     SetIframeUrl(URL);
     if (SetBlowUp) {
         marker.showMapBlowup(17);
         //marker.showMapBlowup(3,{position: absolute,top: 0, left: 0});
         //marker.showMapBlowup(document.getElementById("Message"));
         }
     if (AutoClick) {
        //ZeigeKoordinaten(lon,lat);
        SettCursor(lon,lat);
        AdressText=lon+';'+lat+';'+IconName+';'+text;
        ClickPoiID=text;
        }
     });
  if (SETTshow) {
      GEvent.addListener(marker, "mouseover", function() {         
      //var TX=text+"/Route="+Route+"/Counter="+RouteCounter;
      //document.getElementById("Message").innerHTML = text;
      URL="http://poiwalk.com/cgi-bin/poiinfo.pl?"+Session+'/'+WomoStyle+'/'+LG+'/'+text;
      InfoBoxTemp(URL);
      });
     }
  map.addOverlay(marker);
  }
// ENDE Marker mit eigenem Icon erzeugt

// Es werden die Daten geladen
function GettCenter(){
	var bounds = map.getBounds();
	var southWest = bounds.getSouthWest();
	var northEast = bounds.getNorthEast();
	//var southWest = bounds.getSouthWest();
	//var northEast = bounds.getNorthEast();
    TRE="/D";
   Zoom = map.getZoom();
   //document.getElementById("Status").innerHTML = "Zoom="+Zoom;
   //*Zoom=17-Zoom;
   maxX = northEast.lng();
   maxY = northEast.lat();
   minX = southWest.lng();
   minY = southWest.lat();
   Xc=(maxX+minX)/2;
   Yc=(maxY+minY)/2;
   Xcd=(maxX-minX)/4;
   Ycd=(maxY-minY)/4;
   if ((Xcc < minX) || (Xcc > maxX) || (Ycc < minY) || (Ycc > maxY)) {
       Xcc = Xc;
       Ycc = Yc;
       }
   CCC=CCC+1;
   if (SETTprx) {
       T="x1="+minX+":x2="+maxX+"<br>y1="+minY+":y2="+maxY+"<br>Xcc="+Xcc+":Ycc="+Ycc;
       document.getElementById(MESS).innerHTML = "<small>"+T+"|Zoom="+Zoom+"|SETTgis="+SETTgis+"|"+CCC+"<small>";
       }
   //alert(T);
   //document.getElementById("Message").innerHTML = SystemMessage; 
   }
    
function Panoramio(){
    AutoMove = false;
    //map.clearOverlays();
    map.addOverlay(OvlPanoramio);
    SettPanoramioON=true
    SettPanoramio='-pano';
    }
function WikiPedia(){
    AutoMove = false;
    //map.clearOverlays();
    map.addOverlay(OvlWikiPedia);
    SettWikipediaON=true;
    SettWikipedia='-wiki';
    }
function ShowTagListe(FF) {
   if (POIstart == false) {  return; }
	var request = GXmlHttp.create();
   var Url = "/cgi-bin/womo/xml5.pl?"+Session+","+Sid+","+SidX+",LI,-,"+Xnumm+","+maxX+","+minX+","+maxY+","+minY+","+FF+GisFF+"-Gis"+SETTgis+"-RO"+SETTroute+"-SH"+SETTshow+"-SR"+ShowRoute+"-,"+RoutenID+","+MapB;
   //document.getElementById("GisMessage").innerHTML = Url;
   var xxA=0;
   var yyA=0;
	request.open("GET",Url, true);
   AutoMove = false;
   //alert("FAKOR:("+XFxs+")("+XFys+")");
	request.onreadystatechange = function() {
   SavePos=0;
  	if (request.readyState == 4) {
    	var xmlDoc = request.responseXML;
        var Message = "<img src='http://localhost/grafik/gif/achtung1.gif' align='left'><font class=actext>Bitte warten, POIs für die Karte werden dargestellt</font>";
        document.getElementById("GisMessage").innerHTML = Message;
   		var points = xmlDoc.documentElement.getElementsByTagName("point");
        MxP=points.length;
        map.clearOverlays();
        //map.clearMarkers();
        //createDragMarker(new GLatLng(Ycc,Xcc));
	    	for (var i = 0; i < MxP-1; i++) {
            var xx=parseFloat(points[i].getAttribute("lng"));
            var yy=parseFloat(points[i].getAttribute("lat"));
            var IconName = points[i].getAttribute("img");
            var text = points[i].getAttribute("txt");
            if (IconName) {
                createIconMarker(xx,yy,IconName,text);
                }
            if (points[i].getAttribute("poly")) {
              var color='#'+points[i].getAttribute("poly");
              var XS=xxA;
              var YS=yyA;
              if (points[i].getAttribute("lng0")) {
                  XS=parseFloat(points[i].getAttribute("lng0"));
                  YS=parseFloat(points[i].getAttribute("lat0"));
                  }
              var polyline = new GPolyline( [
                new GLatLng(YS,XS),
                new GLatLng(yy,xx)
                ], color, 5);
              map.addOverlay(polyline);
              }
            if (points[i].getAttribute("street")) {
              var streetPoly=points[i].getAttribute("street");
              var PolyColor='#FF0000';
              var PolyWidth=3;
              //if (streetPoly == 'POI') {
              //    PolyColor='#00FFFF';
              //    PolyWidth=2;
              //    }
              var XS=xxA;
              var YS=yyA;
              if (points[i].getAttribute("lng0")) {
                  XS=parseFloat(points[i].getAttribute("lng0"));
                  YS=parseFloat(points[i].getAttribute("lat0"));
                  }
              DrawDirection(YS,XS,yy,xx,PolyColor,PolyWidth);
              }
            xxA=xx;
            yyA=yy;
    	    }
        //callCurser();
        //savePosition();
        if (ShowTon != 'On') { TR='';  }
        var Extra1='';
        var Extra2='';
        if (ShowPanoramio) { Extra1="&nbsp;&nbsp;&nbsp;<a href='javascript:Panoramio();' class=actext>Bilder von Panoramio</a>&nbsp;&nbsp;&nbsp;"; }
        if (ShowWikipedia) { Extra2="<a href='javascript:WikiPedia();' class=actext>WikiPedia</a>&nbsp;&nbsp;&nbsp;"; }
        var Message = points[MxP-1].getAttribute("txt");
        if ((Message == '41') || (Message == '42')) {
            Message = '<font class=errtext>SYSTEMFEHLER '+Message+' - PoiWalk muss abgebrochen werden</font>'+TR;
            } else {
            Message = Message+'<br>'+Extra1+Extra2+'<br>'+TR;
            }
        document.getElementById("GisMessage").innerHTML = Message;
        TR='';
        createDragMarker(new GLatLng(Ycc,Xcc));
        if (SettWikipedia) {
            WikiPedia();
            }
        if (SettPanoramio) {
            Panoramio();
            }
        //callCurser();
  	     }
     }
   request.send(null);
   if (BlowUp) {
       var ct = new parent.GLatLng(BlowUpY,BlowUpX);
       map.showMapBlowup(ct,19);
       BlowUp=false;
       //alert('BlowUp'+BlowUpX+'/'+BlowUpY);
       }
   if (CenterCursor) {
       Ycc=Yc;
       Xcc=Xc;
       PoiKooNS=Ycc;
       PoiKooEW=Xcc;
       }
   if (Gmarker) { 
      map.removeOverlay(Gmarker); 
      }
   createDragMarker(new GLatLng(Ycc,Xcc));
   CenterCursor=false;
   }

function SpeiSetting() {
   var ChartType=map.getCurrentMapType();
   var Chart='L';
   if (ChartType == G_SATELLITE_MAP) { Chart='S';  }
   if (ChartType == G_HYBRID_MAP)    { Chart='H';  }
   if (ChartType == G_PHYSICAL_MAP)  { Chart='P';  }
   URL=CGI+"=poiwalk3-settings&D="+p1x+";"+p1y+";"+p1cx+";"+p1cy+";"+p1zoom+";"+Chart;
   InfoBoxTemp(URL);
   }
function GisUnload() {
   SpeiSetting();
   var request = GXmlHttp.create();
   var Url = "/cgi-bin/womo/xml5.pl?"+Session+","+Sid+","+SidX+",UNLOAD,1"+pwd+"01,";
   request.open('GET', Url, true);
   request.send(null);
   //GUnload();
   }
    
function GetIcList() {
    var request = GXmlHttp.create();
    var Url = "/cgi-bin/womo/xml5.pl?"+Session+","+Sid+","+SidX+",ICX,4"+pwd+"32,"+Xnumm;
    request.open('GET', Url, true);
	request.onreadystatechange = function() {
     if (request.readyState == 4) {
        var xmlDoc = request.responseXML;
   	    var points = xmlDoc.documentElement.getElementsByTagName("data");
        Xnumm = points[0].getAttribute("Xnum");
        XFxs = parseFloat(points[0].getAttribute("XFx"));
        XFys = parseFloat(points[0].getAttribute("XFy"));
        //alert("ICX="+SidX);
        INIT=1;
        POIstart=true;
        callPOIs();
        }
     }
	request.send(null);
   }
   
function GetIcParam(FF) {
    ShowTagListe(FF);
    AutoMove = false;
    if (RoutenListe == true) {
       SetIframeR(CGI+'=womowalk1&RoutenID='+RoutenID);
       RoutenListe = false;
       }
    if (GoogleStreet == false) {
      if (NextDirectionsFrom) {
        var From=NextDirectionsFrom;
        NextDirectionsFrom='';
        setNextDirections1(From,NextDirectionsTo,NextDirectionsLocale,NextDirectionsLfdNr,NextDirectionsPw);
        } else {
        if (NextDirectionsFrom1) {
          var From1=NextDirectionsFrom1;
          NextDirectionsFrom1='';
          setDirections(From1,NextDirectionsTo1,NextDirectionsLocale1,NextDirectionsLfdNr1,NextDirectionsPw1);
          }
        }
      }
   }

function ExternOverlayClear() {
    if (SettPanoramioON) {  
        map.removeOverlay(OvlPanoramio);  
        SettPanoramioON=false;
        }
    if (SettWikipediaON) {  
        map.removeOverlay(OvlWikiPedia);
        SettWikipediaON=false;
        }
    }

function callCurserClear() {
    GettCenter();
    //GetIcParam('-NoEle');
    map.clearOverlays();
    createDragMarker(new GLatLng(Ycc,Xcc));
    //savePosition();
    MoveMessage();
    }

function callCurser() {
   Ycc=(minY+maxY)/2;   
   Xcc=(minX+maxX)/2;   
   PoiKooNS=Ycc;
   PoiKooEW=Xcc;   
   map.removeOverlay(Gmarker);
   createDragMarker(new GLatLng(Ycc,Xcc));
   }

function DeleteCursor()
  {
  map.removeOverlay(Gmarker);
  }    	

function ShowExtraTagListe(TAG) {
	var request = GXmlHttp.create();
   var Url = "/cgi-bin/womo/xml5.pl?"+Session+","+Sid+","+SidX+",LIX,"+TAG+","+Xnumm+","+maxX+","+minX+","+maxY+","+minY+","+GisFF;
	request.open("GET",Url, true);
   //alert("FAKOR:("+XFxs+")("+XFys+")");
	request.onreadystatechange = function() {
   SavePos=0;
  	if (request.readyState == 4) {
    	var xmlDoc = request.responseXML;
   		var points = xmlDoc.documentElement.getElementsByTagName("point");
        MxP=points.length;
	    	for (var i = 0; i < MxP-1; i++) {
            var xx=parseFloat(points[i].getAttribute("lng"));
            var yy=parseFloat(points[i].getAttribute("lat"));
            //  lng-XFys    lat-XFxs;
      	    var point = new GPoint(xx,yy);
            var icon = new GIcon(baseIcon);
            var IconName = points[i].getAttribute("img");
            var text = points[i].getAttribute("txt");
            createIconMarker(xx,yy,IconName,text);
    	    }
        var Message = points[MxP-1].getAttribute("txt");
        //document.getElementById("GisMessage").innerHTML = Message;
        //savexPosition();
  	     }
     }
   request.send(null);
   }

// ENDE ==================================== PwSetUp.js ====================================

