var map=null;var mapParms={szXmlFile:null,xmlRoutes:null,arMapPort:null,bMapOpen:false,animTrhead:null,arLines:[],divToolTip:"toolTip",divMapId:"divMap",arIcon:[],arMarker:[],azGlobal:null,dOpacity:.3,szDir:"",divInfo:null,markFlag:null};function mapChoose(){mapParms.bMapOpen^=1;setCookie("_tramap",""+mapParms.bMapOpen);mapShow();}function mapShow(){var dvTog=_gel("divMapTog");if(_eh.mobile){dvTog.innerHTML="";return;}objMap=_gel(mapParms.divMapId);if(mapParms.bMapOpen){dvTog.innerHTML='<a href="javascript:mapChoose()">Karte schliessen</a>';initOpacity(objMap,0);setVisible(objMap,true);mapParms.animTrhead=new divAniResize(objMap,600,null,390,2);new divFade(objMap,600,1,true);setTimeout('mapBuild()',600);}else{dvTog.innerHTML='<img src="/imgt/new.png" style="position:absolute; margin-left:-40px" /> <a href="javascript:mapChoose()">Karte anzeigen</a>';if(objMap.style.visibility=='hidden')return;mapParms.animTrhead=new divAniResize(objMap,600,null,1,1);new divFade(objMap,600,-1,true);}}function mapDivInfo(overlay){this.overlay=overlay;}function mapBuild(){if(!map){map=new GMap2(_gel("divMap"));mapDivInfo.prototype=new GControl();mapDivInfo.prototype.initialize=function(map){this.map=map;mapParms.divInfo=document.createElement("div");mapParms.divInfo.innerHTML="<div>Warten ...</div>";map.getContainer().appendChild(mapParms.divInfo);return mapParms.divInfo;};mapDivInfo.prototype.getDefaultPosition=function(){return new GControlPosition(G_ANCHOR_TOP_RIGHT,new GSize(3,3));};map.setCenter(new GLatLng(44.73893,8.931885),5);map.addControl(new mapDivInfo());map.addControl(new GLargeMapControl());map.enableScrollWheelZoom();mapParms.arIcon[0]=new GIcon();mapParms.arIcon[0].image="/imgt/mg01.png";mapParms.arIcon[0].iconAnchor=new GPoint(4,14);mapParms.arIcon[1]=new GIcon();mapParms.arIcon[1].image="/imgt/fgreen.png";mapParms.arIcon[1].iconAnchor=new GPoint(5,33);mapParms.arIcon[2]=new GIcon();mapParms.arIcon[2].image="/imgt/fred2.png";mapParms.arIcon[2].iconAnchor=new GPoint(5,33);}}function mapUpdate(idHarb,szDir,idComp){if(idHarb)mapSet(idHarb,szDir,idComp);if(map){mapGetHarbours();}else{setTimeout('mapUpdate()',100);}}function mapSet(idPort,szDir,idComp){mapParms.szXmlFile="/xml/Routes_"+szLang+"_"+szDir+"_"+idComp;mapParms.szDir=szDir;if(szAgeCode.length)mapParms.szXmlFile+="_"+szAgeCode;mapParms.szXmlFile+=".xml";}if(GBrowserIsCompatible()&&!_eh.mobile){function mapInfoWrite(html){mapParms.divInfo.innerHTML=html;}function mapAutoZoom(){var thi=this;this.latMin=1000;this.latMax=-1000;this.lngMin=1000;this.lngMax=-1000;this.set=function(lan,lng){this.latMin=(lan<this.latMin)?lan:this.latMin;this.latMax=(lan>this.latMax)?lan:this.latMax;this.lngMin=(lng<this.lngMin)?lng:this.lngMin;this.lngMax=(lng>this.lngMax)?lng:this.lngMax;};this.setZoom=function(val){var bounds=new GLatLngBounds();var dif=this.latMax-this.latMin;bounds.extend(new GLatLng(this.latMin-(dif/18),this.lngMin-.01));bounds.extend(new GLatLng(this.latMax+(dif/18),this.lngMax+.01));var d=map.getBoundsZoomLevel(bounds);map.setZoom(d+val);map.setCenter(bounds.getCenter());};}function mapRemovePolylines(){for(var i=0;i<mapParms.arLines.length;i++)map.removeOverlay(mapParms.arLines[i]);}function mapLineDraw(psLine){var idPort=psLine.value;var ps=harbDestSearch(idPort,1);if(!ps)return;if(ps.fSel){psLine.setStrokeStyle({color:"#ff6000",weight:3,opacity:.8});}else{psLine.setStrokeStyle({color:"#000030",weight:3,opacity:mapParms.dOpacity});}}function mapRouteRedraw(idPort){for(var a=0;a<mapParms.arLines.length;a++){if(mapParms.arLines[a].value==idPort){mapLineDraw(mapParms.arLines[a]);break;}}}function mapGetHarbours(){mapParms.azGlobal=new mapAutoZoom();map.clearOverlays();if(!mapParms.szXmlFile){alert("szXmlFile non dichiarato");return;}GDownloadUrl(mapParms.szXmlFile+"?nc="+Math.random(),function(doc){mapParms.xmlRoutes=GXml.parse(doc);mapParms.arMapPort=mapParms.xmlRoutes.documentElement.getElementsByTagName("port");for(var i=0;i<mapParms.arMapPort.length;i++){var idPort=parseInt(mapParms.arMapPort[i].getAttribute("id"));var label=mapParms.arMapPort[i].getAttribute("name");var lat=parseFloat(mapParms.arMapPort[i].getAttribute("lat"));var lng=parseFloat(mapParms.arMapPort[i].getAttribute("lng"));mapParms.azGlobal.set(lat,lng);mapParms.arMarker.push(mapMarkerCreate(lat,lng,0,idPort));}var idHarb=parseInt(getValue("HARB"));mapHarbSet(idHarb);});}function mapHarbSet(idPort){var aZoom=new mapAutoZoom();if(!map)return;mapRemovePolylines();if(!idPort){mapFlagSet(0,0,0);mapParms.azGlobal.setZoom(0);return;}mapParms.arMarker=[];for(var i=0;i<mapParms.arMapPort.length;i++){var id=parseInt(mapParms.arMapPort[i].getAttribute("id"));if(id==idPort){var latStart=parseFloat(mapParms.arMapPort[i].getAttribute("lat"));var lngStart=parseFloat(mapParms.arMapPort[i].getAttribute("lng"));var arRoutes=mapParms.arMapPort[i].getElementsByTagName("route");mapFlagSet(latStart,lngStart,idPort);aZoom.set(latStart,lngStart);for(var j=0;j<arRoutes.length;j++){var idp=parseInt(arRoutes[j].getAttribute("id"));var lat=parseFloat(arRoutes[j].getAttribute("lat"));var lng=parseFloat(arRoutes[j].getAttribute("lng"));mapParms.arLines[j]=new GPolyline([new GLatLng(latStart,lngStart),new GLatLng(lat,lng)],"#000030",3,mapParms.dOpacity);mapParms.arLines[j].value=idp;GEvent.addListener(mapParms.arLines[j],'mouseover',function(point){this.setStrokeStyle({color:this.color,weight:4,opacity:.9});});GEvent.addListener(mapParms.arLines[j],'mouseout',function(point){mapLineDraw(this);});GEvent.addListener(mapParms.arLines[j],'click',function(point){Cs(this.value);});aZoom.set(lat,lng);map.addOverlay(mapParms.arLines[j]);}aZoom.setZoom(0);break;}}}function mapFlagSet(latStart,lngStart,idPort){var html="";if(_eh.markFlag)map.removeOverlay(_eh.markFlag);if(idPort)_eh.markFlag=mapMarkerCreate(latStart,lngStart,(mapParms.szDir=='A')?1:2,idPort);else _eh.markFlag=null;if(idPort){html='<div class="mapInfo">';if(mapParms.szDir=='A'){html+='<img src="/imgt/fgreen.png" style="position:absolute; height:16px" /><div style="margin-left:26px; margin-right:2px; text-align:right">Reiseziel'}else{html+='<img src="/imgt/fred2.png" style="position:absolute; height:16px" /><div style="margin-left:26px; margin-right:2px;  text-align:right">Abfahrt von'}html+="<br /><b>"+harbDesc(idPort)+"</b>";html+='</div>';html+='</div>';};mapInfoWrite(html);}function mapMarkerCreate(lat,lng,tipo,idPort){var opt={};opt.icon=mapParms.arIcon[tipo];opt.draggable=false;var marker=new GMarker(new GLatLng(lat,lng),opt);switch(tipo){case 0:opt.clickable=true;opt.dragCrossMove=true;GEvent.addListener(marker,"click",function(){mapHarbSet(idPort);setValue("HARB",idPort);setValue("_HARB",idPort);harbBoxQuery();});break;}map.addOverlay(marker);return marker;}}
