/* GORP GPS Online Routen Planer */
/* auf www.gpswandern.de         */
/* Google Maps Routinen          */
/* (c) 2007 Helmut Karger        */
/* 2009 Ergänzung OSM            */
var mmap;var rp065;var rp102 = new Array();var rp033=0;rp102[rp033]= new Array();var rp112 = new Array();rp112[rp033]= "Route1";var rp070 = new Array();rp070[rp033]= true;var rp088 = new Array();rp088[rp033]= "R";var rp055 = new Array();rp055[rp033]= 101;
var rp109= new Array();var rp063=-1;var rp066=-1;var rp076=false;
var rp052 = new GIcon(G_DEFAULT_ICON);rp052.image = "http://www.gpswandern.de/include/marker_gelb.png";rp052.shadow = "http://www.gpswandern.de/include/marker_schatten.png";rp052.iconSize = new GSize(16,28);rp052.shadowSize = new GSize(30,30);rp052.iconAnchor = new GPoint(8,28);rp052.infoWindowAnchor = new GPoint(12,4);
var rp086 = new GIcon(G_DEFAULT_ICON);rp086.image = "http://www.gpswandern.de/include/marker_rot.png";rp086.shadow = "http://www.gpswandern.de/include/marker_schatten.png";rp086.iconSize = new GSize(16,28);rp086.shadowSize = new GSize(30,30);rp086.iconAnchor = new GPoint(8,28);rp086.infoWindowAnchor = new GPoint(12,4);
var rp062 = new GIcon(G_DEFAULT_ICON);rp062.image = "http://www.gpswandern.de/include/marker_blau.png";rp062.shadow = "http://www.gpswandern.de/include/marker_schatten.png";rp062.iconSize = new GSize(16,28);rp062.shadowSize = new GSize(30,30);rp062.iconAnchor = new GPoint(8,28);rp062.infoWindowAnchor = new GPoint(12,4);
function rp010(rp054) {if (!rp054 || rp054.Status.code != 200) {document.getElementById('haddress').style.color='red';document.getElementById('haddress').innerHTML=rp002;} else {var rp099 = rp054.Placemark[0];if (rp099.Point.coordinates) {var rp068 = rp099.Point.coordinates[1];var rp069 = rp099.Point.coordinates[0];}if (rp099.AddressDetails.Accuracy) {var rp018 = rp099.AddressDetails.Accuracy;}rp101 = new GLatLng(rp068,rp069);mmap.setZoom(rp018+7);mmap.panTo(rp101);document.getElementById('haddress').style.color='blue';document.getElementById('haddress').innerHTML=rp007;}}
function showAddress(rp067) {rp065.getLocations(rp067, rp010);}
function neueroute() {if (rp102[rp102.length-1].length > 0) {for(var i=0;i<rp102[rp033].length;i++) {rp027(rp102[rp033][i]);}rp033=rp102.length;rp102[rp033]= new Array();document.RP.sel.options[rp033] =new Option(rp033+1, rp033, false, true);rp112[rp033]= "Route"+(rp033+1);document.getElementById("routename").value = rp112[rp033];rp070[rp033]= true;document.getElementById("autonum").checked = rp070[rp033];rp088[rp033]= rp088[rp033-1];rp055[rp033]= rp055[rp033-1]+100;document.getElementById("startnum").disabled = !rp070[rp033];document.getElementById("startnum").value = rp088[rp033]+rp055[rp033];} else {rp033=rp102.length-1;}rp072();}
function gpxspeichern() {if (rp102[0].length > 0) {document.getElementById("gpxinhalt").value=rp053();} else {document.getElementById('ausgabe').value = "Fehler: Keine Daten zum Speichern";return false;}}
function rp053() {var rp107 = "";var lat = 0;var lon = 0;var rp081 = 90;var rp082 = 180;var rp079 = -90;var rp080 = -180;for(var i=0;i<rp102.length;i++) {rp107 += '<rte>\r\n';rp107 += '  <name>'+rp112[i]+'</name>\r\n';for(var j=0;j<rp102[i].length;j++) {lat=rp102[i][j].getPoint().lat();lon=+rp102[i][j].getPoint().lng();if (lat<rp081) {rp081=lat};if (lat>rp079) {rp079=lat};if (lon<rp082) {rp082=lon};if (lon>rp080) {rp080=lon};rp107 += '  <rtept  lat="'+lat+'" lon="'+lon+'">\r\n';if (rp102[i][j].rp095.length>0) {rp107 += '    <ele>'+rp102[i][j].rp095+'</ele>\r\n';}rp107 += '    <name>'+rp061(i,j)+rp102[i][j].rp103+'</name>\r\n';if (rp102[i][j].rp097.length>0) {rp107 += '    <cmt>'+rp102[i][j].rp097+'</cmt>\r\n';}rp107 += '  </rtept>\r\n';}rp107 += '</rte>\r\n';}var metadata = '  <bounds minlat="'+rp081+'" minlon="'+rp082+'" maxlat="'+rp079+'" maxlon="'+rp080+'"/>\r\n';metadata += '</metadata>\r\n';rp107 = metadata+rp107;return rp107;}
function pf(rp118) {var rp119 = "";for(var i=0;i<rp118.length;i++) {if (isNaN(rp118.charAt(i))) {rp119 = rp119 + rp118.charAt(i);} else {return rp119;}}return rp119;}
function rp117(rp118, rp119) {var rp114 = rp118.slice(rp119.length);var z = parseInt(rp114);if (isNaN(z)) {return 0;} else {return z;}}
function selectroute(nummer) {for(var i=0;i<rp102[rp033].length;i++) {rp027(rp102[rp033][i]);}rp033=nummer;for(var i=0;i<rp102[rp033].length;i++) {rp050(rp102[rp033][i]);}document.getElementById("routename").value = rp112[rp033];document.getElementById("autonum").checked = rp070[rp033];document.getElementById("startnum").disabled = !rp070[rp033];document.getElementById("startnum").value = rp088[rp033]+rp055[rp033];rp072();}
function newname(rp118) {rp112[rp033] = rp118;}
function newautonum(rp096) {rp070[rp033] = rp096;document.getElementById("startnum").disabled = !rp070[rp033];}
function newstartnum(rp118) {rp088[rp033] = pf(rp118);rp055[rp033] = rp117(rp118, rp088[rp033]);document.getElementById("startnum").value = rp088[rp033]+String(rp055[rp033]);}
function rp021(rp015,rp100) {if (rp015) {} else {if (rp076) {rp017(rp100);} else {var point_id = rp102[rp033].length;rp102[rp033][point_id] = rp022(rp100, point_id, rp052);rp050(rp102[rp033][point_id]);rp064();}}document.getElementById('ausgabe').value = rp057;}
function rp022(rp100, id, icon) {var rp047 = new GMarker(rp100, {icon:icon, draggable: true});rp047.rp115 = id;rp047.rp103 = "";rp047.rp095 = "";rp047.rp097 = "";return rp047;}
function rp061(rt, id) {if (rp070[rt]) {return rp088[rt]+String(rp055[rt]+id);} else {return "";}}
function rp050(rp047) {mmap.addOverlay(rp047);rp047.enableDragging();GEvent.addListener(rp047,"dragend",function() {rp064();});GEvent.addListener(rp047,"dragstart",function() {mmap.closeInfoWindow();rp063=-1;});GEvent.addListener(rp047,"click",function() {this.openInfoWindowHtml("<table style='width:210px; table-layout:fixed;'>"+"<tr>"+"<td>"+rp089+"</td>"+"<td style='width:145px; overflow:hidden;'>"+"<table style='border-collapse:collapse;'>"+"<tr>"+"<td style='padding:0px;'>"+rp061(rp033, this.rp115)+"</td>"+"<td style='padding:0px;'>"+"<input type='text' id='suff' value='"+this.rp103+"' maxlength='10' />"+"</td>"+"</tr>"+"</table>"+"</td>"+"</tr>"+"<tr>"+"<td>"+rp073+"</td>"+"<td>"+"<input type='text' id='ele' value='"+this.rp095+"' maxlength='5' />"+"</td>"+"</tr>"+"<tr>"+"<td>"+rp056+"</td>"+"<td><input type='text' id='cmt' value='"+this.rp097+"' maxlength='80' />"+"</td>"+"</tr>"+"</table>"+"<input style='width:105px' type='button' value='"+rp028+"' onclick='mmap.closeInfoWindow()' />"+"<input style='width:105px' type='button' value='"+rp029+"' onclick='rp043()' />"+"<br />"+"<input style='width:210px' type='button' value='"+rp008+"' onclick='rp016()' />"+"<br />"+"<input style='width:210px' type='button' value='"+rp006+"' onclick='rp046()' />");rp063=this.rp115;rp011();});}
function rp043() {rp102[rp033][rp063].rp103 = document.getElementById("suff").value;rp102[rp033][rp063].rp095 = document.getElementById("ele").value;rp102[rp033][rp063].rp097 = document.getElementById("cmt").value;mmap.closeInfoWindow()}
function rp027(rp047) {GEvent.clearListeners(rp047, "dragend");GEvent.clearListeners(rp047, "dragstart");GEvent.clearListeners(rp047, "click");mmap.removeOverlay(rp047);}
function rp072() {var rp024 = 0;var rp023 = 0;for(var i=0;i<rp102.length;i++) {if (rp109[i]) {rp024 = rp024 + rp109[i].getLength();}}rp024 = Math.round(rp024/100)/10;if (rp109[rp033]) {rp023 = Math.round(rp109[rp033].getLength())/1000;}document.getElementById("laengenanzeige").innerHTML = rp041 + rp023 + "km &nbsp;-&nbsp;&nbsp;"+ rp013 + rp024 + "km";}
function rp064() {if (rp102[rp033].length>0) {var rp110=[];if (rp109[rp033]) {mmap.removeOverlay(rp109[rp033]);}for(var i=0;i<rp102[rp033].length;i++) {rp110.push(rp102[rp033][i].getPoint());}rp109[rp033] = new GPolyline(rp110,'#FF9F00', 4, 1);mmap.addOverlay(rp109[rp033]);}rp072();}
function rp016() {if (rp063 != -1) {mmap.closeInfoWindow();for(var i=0;i<rp102[rp033].length;i++) {rp027(rp102[rp033][i]);}rp102[rp033].splice(rp063,1);for(i=0;i<rp102[rp033].length;i++) {rp102[rp033][i].rp115 = i;rp050(rp102[rp033][i]);}rp064();}}
function rp046() {rp076=true;rp066=rp063;mmap.closeInfoWindow();var rp100=rp102[rp033][rp066].getPoint();var suff=rp102[rp033][rp066].rp103;var rp095=rp102[rp033][rp066].rp095;var rp097=rp102[rp033][rp066].rp097;rp027(rp102[rp033][rp066]);rp102[rp033][rp063]=rp022(rp100, rp066, rp086);rp102[rp033][rp063].rp103=suff;rp102[rp033][rp063].rp095=rp095;rp102[rp033][rp063].rp097=rp097;rp050(rp102[rp033][rp063]);if (rp066>0) {rp100=rp102[rp033][rp066-1].getPoint();suff=rp102[rp033][rp066-1].rp103;rp095=rp102[rp033][rp066-1].rp095;rp097=rp102[rp033][rp066-1].rp097;rp027(rp102[rp033][rp066-1]);rp102[rp033][rp066-1]=rp022(rp100, rp066-1, rp086);rp102[rp033][rp066-1].rp103=suff;rp102[rp033][rp066-1].rp095=rp095;rp102[rp033][rp066-1].rp097=rp097;rp050(rp102[rp033][rp066-1]);}document.getElementById('ausgabe').value = rp030;}
function rp011() {if (rp076) {var rp071=rp102[rp033][rp066].getPoint();var suff=rp102[rp033][rp066].rp103;var rp095=rp102[rp033][rp066].rp095;var rp097=rp102[rp033][rp066].rp097;rp027(rp102[rp033][rp066]);rp102[rp033][rp066]=rp022(rp071, rp066, rp052);rp102[rp033][rp066].rp103=suff;rp102[rp033][rp066].rp095=rp095;rp102[rp033][rp066].rp097=rp097;rp050(rp102[rp033][rp066]);if (rp066>0) {rp071=rp102[rp033][rp066-1].getPoint();suff=rp102[rp033][rp066-1].rp103;rp095=rp102[rp033][rp066-1].rp095;rp097=rp102[rp033][rp066-1].rp097;rp027(rp102[rp033][rp066-1]);rp102[rp033][rp066-1]=rp022(rp071, rp066-1, rp052);rp102[rp033][rp066-1].rp103=suff;rp102[rp033][rp066-1].rp095=rp095;rp102[rp033][rp066-1].rp097=rp097;rp050(rp102[rp033][rp066-1]);}rp076=false;rp066=-1;document.getElementById('ausgabe').value = rp057;}}
function rp017(rp100) {if (rp066 != -1) {var rp098=rp066;rp011();for(var i=0;i<rp102[rp033].length;i++) {rp027(rp102[rp033][i]);}var rp047 = new GMarker(rp100, {icon:rp052, draggable: true});rp047.rp103 = "";rp047.rp095 = "";rp047.rp097 = "";rp102[rp033].splice(rp098,0,rp047);for(i=0;i<rp102[rp033].length;i++) {rp102[rp033][i].rp115 = i;rp050(rp102[rp033][i]);}rp064();}}
function chkGPX () {var d = document.GPXForm.myfile.value;if ((d.length < 5) || (d.substring(d.length-4, d.length).toLowerCase() != ".gpx")) {document.getElementById('ausgabe').value = rp004;document.GPXForm.myfile.focus();return false;} else {document.getElementById('ausgabe').value = rp003;}}
function uploadDone(rp108) {if (rp108.substring(rp108.length-5, rp108.length) == "error") {document.getElementById('ausgabe').value = rp038;} else {document.getElementById('ausgabe').value = rp001;rp091(rp108);}}
function rp014(rp106) {var rp085 = rp106.documentElement.getElementsByTagName("bounds");if (rp085.length > 0) {var rp081 = parseFloat(rp085[0].getAttribute("minlat"));var rp082 = parseFloat(rp085[0].getAttribute("minlon"));var rp079 = parseFloat(rp085[0].getAttribute("maxlat"));var rp080 = parseFloat(rp085[0].getAttribute("maxlon"));} else {var rp081 = 90;var rp082 = 180;var rp079 = -90;var rp080 = -180;var rp093 = 0;var rp094 = 0;var rp042 = rp106.documentElement.getElementsByTagName("trkpt");if (rp042.length > 0) {for (var i = 0; i < rp042.length; i++) {rp093=parseFloat(rp042[i].getAttribute("lat"));rp094=parseFloat(rp042[i].getAttribute("lon"));if (rp093<rp081) {rp081=rp093};if (rp093>rp079) {rp079=rp093};if (rp094<rp082) {rp082=rp094};if (rp094>rp080) {rp080=rp094};}}var rp037 = rp106.documentElement.getElementsByTagName("rtept");if (rp037.length > 0) {for (var i = 0; i < rp037.length; i++) {rp093=parseFloat(rp037[i].getAttribute("lat"));rp094=parseFloat(rp037[i].getAttribute("lon"));if (rp093<rp081) {rp081=rp093};if (rp093>rp079) {rp079=rp093};if (rp094<rp082) {rp082=rp094};if (rp094>rp080) {rp080=rp094};}}var rp059 = rp106.documentElement.getElementsByTagName("wpt");if (rp059.length > 0) {for (var i = 0; i < rp059.length; i++) {rp093=parseFloat(rp059[i].getAttribute("lat"));rp094=parseFloat(rp059[i].getAttribute("lon"));if (rp093<rp081) {rp081=rp093};if (rp093>rp079) {rp079=rp093};if (rp094<rp082) {rp082=rp094};if (rp094>rp080) {rp080=rp094};}}}var rp078 = new GLatLng(((rp081+rp079)/2),((rp082+rp080)/2));var rp077 = new GLatLngBounds(new GLatLng(rp081,rp082),new GLatLng(rp079,rp080));var rp111 = mmap.getBoundsZoomLevel(rp077);mmap.setCenter(rp078, rp111);}
function rp048(rp106) {var rp025 = 200;var rp084 = rp106.documentElement.getElementsByTagName("rte");for (var j = 0; j < rp084.length; j++) {var rp037 = rp084[j].getElementsByTagName("rtept");if (rp037.length > 0) {neueroute();rp112[rp033] = rp084[j].getElementsByTagName("name")[0].firstChild.nodeValue;document.getElementById("routename").value = rp112[rp033];if (rp037.length > rp025) {document.getElementById('ausgabe').value = rp039+rp025+rp051;}for (var i = 0; (i < rp037.length); i++) {var rp100 = new GLatLng(parseFloat(rp037[i].getAttribute("lat")),parseFloat(rp037[i].getAttribute("lon")));rp102[rp033][i] = rp022(rp100, i, rp052);if (rp037[i].getElementsByTagName("name")[0]) {if (rp037[i].getElementsByTagName("name")[0].firstChild) {rp102[rp033][i].rp103 = rp037[i].getElementsByTagName("name")[0].firstChild.nodeValue;}}if (rp037[i].getElementsByTagName("ele")[0]) {if (rp037[i].getElementsByTagName("ele")[0].firstChild) {rp102[rp033][i].rp095 = rp037[i].getElementsByTagName("ele")[0].firstChild.nodeValue;}}if (rp037[i].getElementsByTagName("cmt")[0]) {if (rp037[i].getElementsByTagName("cmt")[0].firstChild) {rp102[rp033][i].rp097 = rp037[i].getElementsByTagName("cmt")[0].firstChild.nodeValue;}}if (i==0) {var rp113=pf(rp102[rp033][i].rp103);var rp116=rp117(rp102[rp033][i].rp103,rp113);rp088[rp033]=rp113;rp055[rp033]=rp116;rp070[rp033]=true;} else {if(rp070[rp033]) {rp113=pf(rp102[rp033][i].rp103);rp116=rp117(rp102[rp033][i].rp103,rp113);if (rp113+String(rp116)!=rp088[rp033]+String(rp055[rp033]+i)) {rp088[rp033]="R";rp055[rp033]=(rp033+1)*100+1;rp070[rp033]=false;}}}}rp064();if(rp070[rp033]) {for(var i=0;i<rp102[rp033].length;i++) {var rp075=rp088[rp033]+String(rp055[rp033]+i);rp102[rp033][i].rp103 = rp102[rp033][i].rp103.slice(rp075.length);}}}}selectroute(rp033);}
function rp049(rp106) {var rp026 = 2000;var rp104 = rp106.documentElement.getElementsByTagName("trk");for (var k = 0; k < rp104.length; k++) {var rp058 = rp104[k].getElementsByTagName("trkseg");for (var j = 0; j < rp058.length; j++) {var rp042 = rp058[j].getElementsByTagName("trkpt");if (rp042.length > 0) {if (rp042.length > rp026) {document.getElementById('ausgabe').value = rp040+rp026+rp051;}var rp083=Array();for (var i = 0; (i < rp042.length && i < rp026); i++) {var rp100 = new GLatLng(parseFloat(rp042[i].getAttribute("lat")),parseFloat(rp042[i].getAttribute("lon")));rp083.push(rp100);if (rp083.length==200 && i < rp042.length && i < rp026) {mmap.addOverlay(new GPolyline(rp083,"#ff00ff",4,1));rp083=Array();rp083.push(rp100);}}mmap.addOverlay(new GPolyline(rp083,"#ff00ff",4,1));}}}}
function rp012(rp100, rp105) {var rp047 = new GMarker(rp100, {icon:rp062});GEvent.addListener(rp047, "click", function() {rp047.openInfoWindowHtml(rp105);});return rp047;}
function rp019(rp106) {var rp090 = "";var rp059 = rp106.documentElement.getElementsByTagName("wpt");if (rp059.length > 0) {for (var i = 0; i < rp059.length; i++) {var rp100 = new GLatLng(parseFloat(rp059[i].getAttribute("lat")),parseFloat(rp059[i].getAttribute("lon")));rp090 = "<b>" +rp059[i].getElementsByTagName("name")[0].firstChild.nodeValue +"</b>";if (rp059[i].getElementsByTagName("desc")[0]) {rp090 = rp090 + "<br />" +rp059[i].getElementsByTagName("desc")[0].firstChild.nodeValue;}if (rp059[i].getElementsByTagName("cmt")[0]) {rp090 = rp090 + "<br />" +rp059[i].getElementsByTagName("cmt")[0].firstChild.nodeValue;}mmap.addOverlay(rp012(rp100, rp090));}}}
function rp091(url) {if (mmap) {var rp087 = GXmlHttp.create();rp087.open("GET", url, true);rp087.onreadystatechange = function() {if (rp087.readyState == 4) {var rp106 = rp087.responseXML;rp014(rp106);rp049(rp106);rp048(rp106);rp019(rp106);document.getElementById('ausgabe').value = rp057;}};rp087.send(null);} else {document.getElementById('ausgabe').value = rp009;}}
function initKarte() {if (!GBrowserIsCompatible()) {document.getElementById("Karte").innerHTML = rp031;} else {var rp092 = new GCopyrightCollection("<a href=\"http://www.openstreetmap.org/\">OpenStreetMap</a>");rp092.addCopyright(new GCopyright(1, new GLatLngBounds(new GLatLng(-90,-180), new GLatLng(90,180)), 0, " "));var rp032 = new GCopyrightCollection("<a href=\"http://www.opencyclemap.org/\">OpenCycleMap</a> - <a href=\"http://www.openstreetmap.org/\">OpenStreetMap</a>");rp032.addCopyright(new GCopyright(1, new GLatLngBounds(new GLatLng(-90,-180), new GLatLng(90,180)), 0, " "));var rp044     = new GTileLayer(rp092, 1, 17, {tileUrlTemplate: 'http://tile.openstreetmap.org/{Z}/{X}/{Y}.png'});var rp020 = new GTileLayer(rp032, 1, 17, {tileUrlTemplate: 'http://andy.sandbox.cloudmade.com/tiles/cycle/{Z}/{X}/{Y}.png'});var rp060   = new GMapType([rp044],  G_NORMAL_MAP.getProjection(), "OSM");var rp045 = new GMapType([rp020], G_NORMAL_MAP.getProjection(), "OSM Cycle");mmap = new GMap2(document.getElementById("Karte"), {draggableCursor: 'crosshair'});mmap.addMapType(G_PHYSICAL_MAP);mmap.addMapType(rp060);mmap.addMapType(rp045);mmap.addControl(new GLargeMapControl());mmap.addControl(new GMapTypeControl());mmap.setCenter(new GLatLng(48,11), 4, G_HYBRID_MAP);mmap.enableScrollWheelZoom();GEvent.addListener(mmap, "click", rp021);rp065 = new GClientGeocoder();document.getElementById('haddress').innerHTML=rp005;document.getElementById("routename").value = rp112[rp033];document.getElementById("autonum").checked = rp070[rp033];document.getElementById("startnum").disabled = !rp070[rp033];document.getElementById("startnum").value = rp088[rp033]+rp055[rp033];var rp035 = new GMarker(mmap.getCenter(), {icon:rp052});var rp036 = new GMarker(mmap.getCenter(), {icon:rp086});var rp034 = new GMarker(mmap.getCenter(), {icon:rp062});mmap.addOverlay(rp035);mmap.addOverlay(rp036);mmap.addOverlay(rp034);mmap.removeOverlay(rp035);mmap.removeOverlay(rp036);mmap.removeOverlay(rp034);document.getElementById('ausgabe').value = rp057;}}