var BaseMap=Class.create({map:null,geocoder:null,route:null,getImageUrl:function(a){return"/images/"+a},getMap:function(){return this.map},initialize:function(d,c,a,b){if(google.maps.BrowserIsCompatible()){this.map=new google.maps.Map2(d,{});this.map.setCenter(new google.maps.LatLng(c,a),b);this.map.addControl(new google.maps.LargeMapControl3D());this.map.addControl(new google.maps.MapTypeControl());this.map.addControl(new google.maps.OverviewMapControl());this.map.addControl(new google.maps.ScaleControl());this.map.enableScrollWheelZoom();this.geocoder=new google.maps.ClientGeocoder();this.route=new myMapRoute(this)}else{alert("A böngészője nem kompatibilis a térképszolgáltatással. Használja a következő böngészők egyikét: FireFox, Internet Explorer, Chrome, Opera, Safari")}},createMarkerFromGeocode:function(c,e,g){var b;if(g){b=g}else{b=new google.maps.LatLng(c.Point.coordinates[1],c.Point.coordinates[0])}var d=c.ExtendedData.LatLonBox;var a=new google.maps.LatLng(d.south,d.west);var f=new google.maps.LatLng(d.north,d.east);d=new google.maps.LatLngBounds(a,f);return new myMapMarker(b,c.address,d,e).addToMap(this)},getRoute:function(){return this.route},save:function(){var a={map:this.getMapData(),route:this.route.getRouteData()};return a},load:function(a){if(a.map){this.setMapData(a.map)}if(a.route){this.route.setRouteData(a.route)}},getMapData:function(){var a=this.map.getBounds();return{sw_lat:a.getSouthWest().lat(),sw_lng:a.getSouthWest().lng(),ne_lat:a.getNorthEast().lat(),ne_lng:a.getNorthEast().lng()}},setMapData:function(c){var a=new google.maps.LatLngBounds(new google.maps.LatLng(c.sw_lat,c.sw_lng),new google.maps.LatLng(c.ne_lat,c.ne_lng));this.map.setCenter(a.getCenter(),this.map.getBoundsZoomLevel(a))},getMarkerImageUrl:function(b,c){if(c==null){c=".png"}var a="";switch(b){case MYMAP_MARKERTYPE_START:a=this.getImageUrl("marker_indulas");break;case MYMAP_MARKERTYPE_STOP:a=this.getImageUrl("marker_erkezes");break;case MYMAP_MARKERTYPE_WAYPOINT:a=this.getImageUrl("marker_erinto");break;case MYMAP_MARKERTYPE_FIND:a=this.getImageUrl("marker_kereses");break;default:a=this.getImageUrl("marker_pont");break}return a+c},setCenter:function(b,a){this.map.setCenter(new google.maps.LatLng(b,a))}});var MYMAP_LEFTPANEL_CLOSE=0;var MYMAP_LEFTPANEL_OPEN=1;var MYMAP_LEFTPANEL_SWITCH=3;var MYMAP_PAGE_ADDRESS=1;var MYMAP_PAGE_ROUTE=2;var MYMAP_PAGE_GPS=3;var MYMAP_PAGE_OBJECTS=4;var MYMAP_PAGE_HELP=5;var MYMAP_LP_WELCOME=0;var MYMAP_LP_FINDADDRESS=1;var MYMAP_LP_MULTIADDRESS=2;var MYMAP_LP_ROUTE=3;var MYMAP_LP_GPS=4;var MYMAP_LP_OBJECTS=5;var MYMAP_LP_HELP=6;var MYMAP_OBJECT_TYPE_MAXID=203;var MYMAP_STAT_CREATEROUTE=1;var MYMAP_STAT_CHANGEOBJTYPE=2;var MYMAP_STAT_GPSFIND=3;var MYMAP_STAT_PRINT=4;var MYMAP_STAT_FAVOURITES=5;var MYMAP_STAT_ADDRESSFIND=6;var MYMAP_STAT_LINK=7;var FOUNDADDRESS_FUNCT_SETSTART="start";var FOUNDADDRESS_FUNCT_SETSTOP="start";var FOUNDADDRESS_FUNCT_SETWAYPOINT="waypoint";var FOUNDADDRESS_FUNCT_ZOOM="zoom";var FOUNDADDRESS_FUNCT_CENTER="center";var myMap=Class.create(BaseMap,{iLeftPanelStatus:MYMAP_LEFTPANEL_OPEN,iLeftPanelContent:MYMAP_LP_WELCOME,bFullScreen:false,fullwin:null,ActivePage:1,foundMarker:null,pickerMarker:null,POIManager:null,initialize:function($super,d,c,a,b){$super(d,c,a,b);if(this.map){google.maps.Event.addListener(this.map,"click",this.onClickStart.bind(this));google.maps.Event.addListener(this.map,"dblclick",this.onDblClick.bind(this));google.maps.Event.addListener(this.map,"singlerightclick",this.onRightClick.bind(this))}this.getRoute().setPanels($("route_panel"),$("route_inputboxes"),$("route_startinput"),$("route_stopinput"));this.POIManager=new POIManager(this)},setPage:function(b,c){if($("addresspanel_address")==null){return}if(b==this.ActivePage&&!c){this.switchLeftPanel(MYMAP_LEFTPANEL_SWITCH)}else{this.ActivePage=b;for(var a=1;a<=MYMAP_PAGE_HELP;a++){if(b==a){$("tab"+a).removeClassName("mymap_tab");$("a_tab"+a).removeClassName("mymap_tab_link");$("tab"+a).addClassName("mymap_tab_selected");$("a_tab"+a).addClassName("mymap_tab_link_selected")}else{$("tab"+a).removeClassName("mymap_tab_selected");$("a_tab"+a).removeClassName("mymap_tab_link_selected");$("tab"+a).addClassName("mymap_tab");$("a_tab"+a).addClassName("mymap_tab_link")}}$("addresspanel_address").hide();$("addresspanel_route").hide();$("addresspanel_gps").hide();$("addresspanel_objects").hide();switch(b){case MYMAP_PAGE_ADDRESS:$("addresspanel_address").show();if(this.foundMarker){this.setLeftPanel(MYMAP_LP_FINDADDRESS)}else{this.setLeftPanel(MYMAP_LP_WELCOME)}break;case MYMAP_PAGE_ROUTE:$("addresspanel_route").show();this.setLeftPanel(MYMAP_LP_ROUTE);break;case MYMAP_PAGE_GPS:$("addresspanel_gps").show();this.setLeftPanel(MYMAP_LP_GPS);break;case MYMAP_PAGE_OBJECTS:this.setLeftPanel(MYMAP_LP_OBJECTS);break;case MYMAP_PAGE_HELP:this.setLeftPanel(MYMAP_LP_HELP);break}this.switchLeftPanel(MYMAP_LEFTPANEL_OPEN)}this.Resize()},onRouteLoaded:function(){this.setPage(MYMAP_PAGE_ROUTE,true)},setLeftPanel:function(a){$("lp_welcome").hide();$("lp_findaddress").hide();$("lp_multiaddress").hide();$("lp_route").hide();$("lp_gps").hide();$("lp_objects").hide();$("lp_help").hide();if(a==MYMAP_LP_WELCOME){$("lp_welcome").show();$("mymap_leftpanel_header_caption").update("")}if(a==MYMAP_LP_FINDADDRESS){$("lp_findaddress").show();$("mymap_leftpanel_header_caption").update("Címkeresés")}if(a==MYMAP_LP_MULTIADDRESS){$("lp_multiaddress").show();$("mymap_leftpanel_header_caption").update("Találati lista")}if(a==MYMAP_LP_ROUTE){$("lp_route").show();$("mymap_leftpanel_header_caption").update("Útvonaltervező")}if(a==MYMAP_LP_GPS){$("lp_gps").show();$("mymap_leftpanel_header_caption").update("Koordináták")}if(a==MYMAP_LP_OBJECTS){if($("objtree").innerHTML==""){$("objtree").innerHTML="Töltés...";new Ajax.Updater("objtree","/Index/generatepoitree",{method:"get",onComplete:this.GenerateObjTree})}$("lp_objects").show();$("mymap_leftpanel_header_caption").update("Kiemelt helyek")}this.iLeftPanelContent=a},GenerateObjTree:function(){ddtreemenu.createTree("myMap_ObjectTypes",false,0)},Resize:function(){var a,d=0;if(typeof(window.innerWidth)=="number"){a=window.innerWidth;d=window.innerHeight}else{if(document.documentElement&&(document.documentElement.clientWidth||document.documentElement.clientHeight)){a=document.documentElement.clientWidth;d=document.documentElement.clientHeight}else{if(document.body&&(document.body.clientWidth||document.body.clientHeight)){a=document.body.clientWidth;d=document.body.clientHeight}}}if(this.bFullScreen){$("mymap_mainpanel").style.marginTop="10px"}else{$("mymap_mainpanel").style.marginTop=""}d=d-Position.cumulativeOffset($("mymap_mainpanel"))[1]-$("mymap_footer").getHeight()-22;$("mymap_mainpanel").style.height=d+"px";var e;if(this.iLeftPanelStatus==MYMAP_LEFTPANEL_OPEN){$("mymap_leftpanel").show();e=335;$("mymap_switchbutton").style.left="320px";$("imgSwitchButton").src="http://mymap.hu/images/mymap/leftpanel_kapcsolo_ki.gif"}else{$("mymap_leftpanel").hide();e=17;$("mymap_switchbutton").style.left="3px";$("imgSwitchButton").src="http://mymap.hu/images/mymap/leftpanel_kapcsolo_be.gif"}$("mymap_leftpanel").style.height=d+"px";$("mymap_leftpanel_inner").style.height=(d-115)+"px";$("mymap_leftpanel_inner_content").style.height=(d-115)+"px";$("mymap_switchbutton").style.top=(d/2-5)+"px";if(this.map){var c=this.map.getCenter()}$("mymap_mappanel").style.height=d+"px";$("mymap_mappanel").style.left=e+"px";$("mymap_mappanel").style.width=(a-e-20)+"px";if(this.map){this.map.checkResize();var b=this.map.getCenter();this.map.setCenter(new google.maps.LatLng(c.lat()-(b.lat()-c.lat()),c.lng()-(b.lng()-c.lng())))}},switchLeftPanel:function(a){if(a==null||a==MYMAP_LEFTPANEL_SWITCH){a=1-this.iLeftPanelStatus}this.iLeftPanelStatus=a;this.Resize()},openAlert:function(a){Dialog.alert(a,{width:250,"class":"alphacube",recenterAuto:true})},openWindow:function(a,c){var b=new Window({"class":"dialog",title:c,top:99,left:400,width:500,height:500,url:a,minimizable:false,maximizable:false,showEffectOptions:{duration:1.5}});b.setZIndex(1000);b.show()},showAddress:function(a){if(this.geocoder){$("addresssearchinput").value=a;var b=this;this.geocoder.getLocations(a,function(c){switch(c.Status.code){case 200:b.showFindAddressBox(c.Placemark[0]);break;case 602:b.showFindAddressBox();break;default:b.openAlert("Hiba a keresés közben!");break}})}},showFindAddressBox:function(a){if(this.foundMarker){this.foundMarker.remove()}this.foundMarker=null;if(a){$("lp_findaddress_result").update("<span class='findaddress_address'>"+a.address+"</span>");$("lp_findaddress_noresultbox").hide();$("lp_findaddress_resultbox").show();this.foundMarker=this.createMarkerFromGeocode(a,MYMAP_MARKERTYPE_FIND);this.foundMarker.zoom();this.foundMarker.openInfoWindow();this.setGPSDataFromMarker(this.foundMarker)}else{$("lp_findaddress_resultbox").hide();$("lp_findaddress_noresultbox").show()}this.setPage(MYMAP_PAGE_ADDRESS,true)},FoundAddressFunctions:function(a){if(this.foundMarker==null){return}switch(a){case FOUNDADDRESS_FUNCT_SETSTOP:this.foundMarker.setStart();this.deleteFindAddress();break;case FOUNDADDRESS_FUNCT_SETSTART:this.foundMarker.setStop();this.deleteFindAddress();break;case FOUNDADDRESS_FUNCT_SETWAYPOINT:this.foundMarker.setWaypoint();this.deleteFindAddress();break;case FOUNDADDRESS_FUNCT_ZOOM:this.foundMarker.zoom();break;case FOUNDADDRESS_FUNCT_CENTER:this.foundMarker.center();break}},deleteFindAddress:function(){if(this.foundMarker){this.foundMarker.remove()}this.foundMarker=null;$("lp_findaddress_resultbox").update("");$("lp_findaddress_noresultbox").hide();if(this.iLeftPanelContent==MYMAP_LP_FINDADDRESS){this.setLeftPanel(MYMAP_LP_WELCOME)}},FullScreen:function(){if(this.bFullScreen){if(this.fullwin){this.fullwin.destroy();this.fullwin=null}$("mymap_toppanel").style.display="";this.bFullScreen=false;this.switchLeftPanel(MYMAP_LEFTPANEL_OPEN)}else{$("mymap_toppanel").style.display="none";this.fullwin=new Window({"class":"dialog",title:"myMap",top:50,right:30,width:300,height:30,resizable:false,closable:false,minimizable:false,maximizable:false,showEffectOptions:{duration:1.5}});this.fullwin.setZIndex(1000);this.fullwin.setHTMLContent('<div align="center"><input type="button" onclick="map.FullScreen()" value="Vissza a teljes képernyős módból" style="margin-top: 2px;"></div>');$(this.fullwin.getId()+"_row3").hide();$(this.fullwin.getId()+"_row2").style.borderBottom="1px solid gray";this.fullwin.show();this.bFullScreen=true;this.switchLeftPanel(MYMAP_LEFTPANEL_CLOSE)}this.Resize()},onClickStart:function(b,c,a){if(!this.clickTimeout){this.clickParameters={overlay:b,latlng:c,overlaylatlng:a};this.clickTimeout=setTimeout(this.onClick.bind(this),300)}},onDblClick:function(){if(this.clickTimeout){this.clickTimeout=null;clearTimeout(this.clickTimeout);this.clickParameters=null}},onRightClick:function(a,c,b){this.clickParameters={overlay:b,latlng:this.map.fromContainerPixelToLatLng(a),overlaylatlng:null};this.clickTimeout=1;this.onClick()},onClick:function(){if(!this.clickParameters||this.clickTimeout==null){return}this.clickTimeout=null;var a=this.clickParameters.overlay;var c=this.clickParameters.latlng;if(a==null&&this.geocoder){var b=this;this.geocoder.getLocations(c,function(d){switch(d.Status.code){case 200:b.createPickerMarker(d.Placemark[0],c);break;case 602:b.createPickerMarker(null,c);break;default:b.openAlert("Hiba a keresés közben!");break}})}},createPickerMarker:function(a,c,b){if(this.pickerMarker){this.pickerMarker.remove()}if(a){this.pickerMarker=this.createMarkerFromGeocode(a,MYMAP_MARKERTYPE_PICKER,c)}else{this.pickerMarker=new myMapMarker(c,(b?b:""),null,MYMAP_MARKERTYPE_PICKER).addToMap(this)}this.pickerMarker.openInfoWindow();this.setGPSDataFromMarker(this.pickerMarker);return this.pickerMarker},clearPicker:function(){this.pickerMarker=null},clearFound:function(){this.foundMarker=null},getMapData:function($super){var a=$super();return Object.extend(a,{found:(this.foundMarker?this.foundMarker.getMarkerData():null),picker:(this.pickerMarker?this.pickerMarker.getMarkerData():null)})},setMapData:function($super,a){$super(a);if(a.found){this.foundMarker=(new myMapMarker().setMarkerData(a.found).addToMap(this))}if(a.picker){this.pickerMarker=(new myMapMarker().setMarkerData(a.picker).addToMap(this))}},flighRoute:function(){this.route.flighRoute()},AddFavourites:function(){title="myMap.hu - Online Magyarországtérkép és útvonaltervező";url="http://mymap.hu";if(window.sidebar){window.sidebar.addPanel(title,url,"")}else{if(window.external){window.external.AddFavorite(url,title)}}this.stat(MYMAP_STAT_FAVOURITES)},contextHelp:function(){var a="/help.php#";switch(this.iLeftPanelContent){case MYMAP_LP_FINDADDRESS:a+="route"}this.openWindow(a,"Súgó")},stat:function(a){new Ajax.Request("stat.php",{method:"get",parameters:"t="+a})},Converter:{convertToDegree:function(a){var b=Math.floor(a);var c=Math.floor(60*(a-b));var d=Math.round(60*(60*(a-b)-c)*100)/100;if(d==60){d=0;c++;if(c==60){c=0;b++}}return{degree:b,min:c,sec:d}},convertFromDegree:function(c,a,b){return c+a/60+b/3600}},print:function(){window.open("/Index/print","print","width=600,height=800,scrollbars =1,left="+((screen.width-600)/2)+",top="+((screen.height-800)/2))},changeGPSmode:function(){var l,k;if($("GPS_search_coordX").visible()){var c=$("GPS_search_coordX").value.replace(",",".");var b=$("GPS_search_coordY").value.replace(",",".");l=parseFloat(c);k=parseFloat(b);if(!isNaN(l)){var f=this.Converter.convertToDegree(l);$("GPS_search_coordX_fok").value=f.degree;$("GPS_search_coordX_perc").value=f.min;$("GPS_search_coordX_mperc").value=f.sec}if(!isNaN(k)){var e=this.Converter.convertToDegree(k);$("GPS_search_coordY_fok").value=e.degree;$("GPS_search_coordY_perc").value=e.min;$("GPS_search_coordY_mperc").value=e.sec}$("GPS_search_coordX").hide();$("GPS_search_coordY").hide();$("GPS_search_Xblock").show();$("GPS_search_Yblock").show();$("GPS_search_dms").value="Fok"}else{var m=parseFloat($("GPS_search_coordX_fok").value.replace(",","."));var g=parseFloat($("GPS_search_coordX_perc").value.replace(",","."));var d=parseFloat($("GPS_search_coordX_mperc").value.replace(",","."));var h=parseFloat($("GPS_search_coordY_fok").value.replace(",","."));var a=parseFloat($("GPS_search_coordY_perc").value.replace(",","."));var j=parseFloat($("GPS_search_coordY_mperc").value.replace(",","."));if(isNaN(m)){m=0}if(isNaN(g)){g=0}if(isNaN(d)){d=0}if(isNaN(h)){h=0}if(isNaN(a)){a=0}if(isNaN(j)){j=0}if(!isNaN(m)&&!isNaN(g)&&!isNaN(d)&&!isNaN(h)&&!isNaN(a)&&!isNaN(j)){l=this.Converter.convertFromDegree(m,g,d);k=this.Converter.convertFromDegree(h,a,j);$("GPS_search_coordX").value=(l==0?"":l);$("GPS_search_coordY").value=(k==0?"":k)}$("GPS_search_Xblock").hide();$("GPS_search_Yblock").hide();$("GPS_search_coordX").show();$("GPS_search_coordY").show();$("GPS_search_dms").value="Fok/perc/mperc"}},searchGPS:function(){var g;var e;if($("GPS_search_coordX").visible()){var c=$("GPS_search_coordX").value.replace(",",".");var b=$("GPS_search_coordY").value.replace(",",".");g=parseFloat(c);e=parseFloat(b);if(isNaN(g)){g=0}if(isNaN(e)){e=0}}else{var k=parseFloat($("GPS_search_coordX_fok").value.replace(",","."));var f=parseFloat($("GPS_search_coordX_perc").value.replace(",","."));var d=parseFloat($("GPS_search_coordX_mperc").value.replace(",","."));var h=parseFloat($("GPS_search_coordY_fok").value.replace(",","."));var a=parseFloat($("GPS_search_coordY_perc").value.replace(",","."));var j=parseFloat($("GPS_search_coordY_mperc").value.replace(",","."));if(isNaN(k)){k=0}if(isNaN(f)){f=0}if(isNaN(d)){d=0}if(isNaN(h)){h=0}if(isNaN(a)){a=0}if(isNaN(j)){j=0}g=this.Converter.convertFromDegree(k,f,d);e=this.Converter.convertFromDegree(h,a,j)}this.onClickStart(null,new google.maps.LatLng(g,e),null);this.setCenter(g,e)},setGPSDataFromMarker:function(a){if(a!=null){this.setGPSData(a.getAddress(),a.getPosition(),a.getType())}},setGPSData:function(b,a,c){if($("GPS_address")==null){return}this.RefreshGPSData_new={address:b,position:a,type:c};if(this.RefreshGPSData_interval==null){this.RefreshGPSData_interval=window.setInterval(this.RefreshGPSData.bind(this),100)}},RefreshGPSData:function(){if(this.RefreshGPSData_new==this.RefreshGPSData_old){this.RefreshGPSData_i++;if(this.RefreshGPSData_i>10){clearInterval(this.RefreshGPSData_interval);this.RefreshGPSData_interval=null;this.RefreshGPSData_i=0}return}var c=this.RefreshGPSData_new;$("GPS_address").value=c.address;$("GPS_type").src=this.getMarkerImageUrl(c.type);var a=this.Converter.convertToDegree(c.position.lng());$("GPS_coordX").value=Math.round(c.position.lng()*10000000)/10000000;$("GPS_coordX_fok").value=a.degree;$("GPS_coordX_perc").value=a.min;$("GPS_coordX_mperc").value=a.sec;var e=this.Converter.convertToDegree(c.position.lat());$("GPS_coordY").value=Math.round(c.position.lat()*10000000)/10000000;$("GPS_coordY_fok").value=e.degree;$("GPS_coordY_perc").value=e.min;$("GPS_coordY_mperc").value=e.sec;if(!this.EOV_WGS){this.EOV_WGS=new EOV_WGS()}var b=this.EOV_WGS.wgs2eov(c.position.lat(),c.position.lng());if(b.dX>0&&b.dX<400000&&b.dY>400000&&b.dY<1000000){$("EOV_coordX").value=Math.round(b.dX);$("EOV_coordY").value=Math.round(b.dY)}else{$("EOV_coordX").value="-";$("EOV_coordY").value="-"}this.RefreshGPSData_old=c},getPOIManager:function(){return this.POIManager},changeObjectTypes:function(a){this.POIManager.changeObjectTypes(a)},changeAllType:function(a){this.POIManager.changeAllType(a)},changeObjectNum:function(a){this.POIManager.changeObjectNum(a)},addWebCams:function(){this.map.addOverlay(new GLayer("com.google.webcams"))}});var MYMAP_MARKERTYPE_START="start";var MYMAP_MARKERTYPE_STOP="stop";var MYMAP_MARKERTYPE_WAYPOINT="waypoint";var MYMAP_MARKERTYPE_FIND="find";var MYMAP_MARKERTYPE_PICKER="picker";var MYMAP_MARKERTYPE_DEFAULT="default";myMapMarker=Class.create({position:null,address:null,bound:null,type:MYMAP_MARKERTYPE_DEFAULT,myMap:null,map:null,marker:null,infoWindow:null,initialize:function(a,b,d,c){this.position=a;this.address=b;this.bound=d;this.type=c},addToMap:function(a){if(!a){return this}this.myMap=a;this.map=this.myMap.getMap();this.marker=this.createMarker();this.map.addOverlay(this.marker);return this},setType:function(a){if(this.type==a||this.marker==null){return}if(this.type==MYMAP_MARKERTYPE_PICKER){this.myMap.clearPicker()}if(this.type==MYMAP_MARKERTYPE_FIND){this.myMap.clearFound()}this.type=a;if(this.myMap){this.map.removeOverlay(this.marker);this.marker=this.createMarker();this.map.addOverlay(this.marker)}},getAddress:function(){return this.address},getPosition:function(){return this.position},getType:function(){return this.type},createMarker:function(){var b=(this.type==MYMAP_MARKERTYPE_FIND?false:true);imageurl=this.getImageUrl("");shadowurl=this.myMap.getImageUrl("marker_arnyek");var c=new google.maps.Icon();c.image=imageurl+".png";c.printImage=imageurl+".gif";c.iconSize=new google.maps.Size(24,40);c.iconAnchor=new google.maps.Point(14,40);c.infoWindowAnchor=new google.maps.Point(12,0);c.transparent=imageurl+".png";c.imageMap=[0,0,24,0,24,40,0,40];var a=new google.maps.Marker(this.position,{icon:c,bouncy:true,draggable:b});a.myMapMarker=this;google.maps.Event.addListener(a,"click",this.onClick.bind(this));google.maps.Event.addListener(a,"dragstart",this.onDragStart.bind(this));google.maps.Event.addListener(a,"dragend",this.onDragEnd.bind(this));google.maps.Event.addListener(a,"drag",this.onDrag.bind(this));return a},getImageUrl:function(a){return(this.myMap?this.myMap.getMarkerImageUrl(this.type,a):"")},onClick:function(){var a=this.map.getInfoWindow();if(a._owner==this.marker){if(a.isHidden()){this.openInfoWindow()}else{a.hide()}}else{this.openInfoWindow()}this.myMap.setGPSDataFromMarker(this)},openInfoWindow:function(){this.marker.openInfoWindow(this.generateContent());this.map.getInfoWindow()._owner=this.marker},generateContent:function(){var c=this.myMap.Converter.convertToDegree(this.position.lat());var a=this.myMap.Converter.convertToDegree(this.position.lng());var b=new Element("div").setStyle({width:"250px"}).insert(new Element("div").addClassName("myMap_LabelTitle").update(this.address)).insert(new Element("div").addClassName("myMap_LabelCoord").update("GPS: "+c.degree+"&deg;"+c.min+"&acute;"+c.sec+"&acute;&acute; ; "+a.degree+"&deg;"+a.min+"&acute;"+a.sec+"&acute;&acute;"));b.insert(this.generateMenu());return b},generateMenu:function(){hasRoute=true;menudiv=new Element("div");var f=new Element("table",{align:"center"}).setStyle({margin:"5px 2px"});var b=new Element("tbody");menudiv.insert(f.insert(b));f=b;var g=new Element("tr");f.insert(g);var d=new Element("td",{width:"120px"}).setStyle({borderRight:"1px solid gray"});g.insert(d);var a=new Element("img",{src:this.myMap.getImageUrl("doboz/doboz_indulas.gif")});d.insert(a);var h;if(hasRoute){h=new Element("a",{href:"javascript:void(0);"}).addClassName("MyMap_linkinherit")}else{h=new Element("span").addClassName("MyMap_disablelink")}h.onclick=this.setStart.bind(this);h.update(" Kezdőpont");d.insert(h);d.insert(new Element("br"));a=new Element("img",{src:this.myMap.getImageUrl("doboz/doboz_erkezes.gif")});d.insert(a);if(hasRoute){h=new Element("a",{href:"javascript:void(0);"}).addClassName("MyMap_linkinherit")}else{h=new Element("span").addClassname("MyMap_disablelink")}h.onclick=this.setStop.bind(this);h.update(" Végpont");d.insert(h);d.insert(new Element("br"));a=new Element("img",{src:this.myMap.getImageUrl("doboz/doboz_erinto.gif")});d.insert(a);if(hasRoute){h=new Element("a",{href:"javascript:void(0);"}).addClassName("MyMap_linkinherit")}else{h=new Element("span").addClassname("MyMap_disablelink")}h.onclick=this.setWaypoint.bind(this);h.update(" Érintőpont");d.insert(h);d.insert(new Element("br"));var c=new Element("td",{width:"120px"});g.insert(c);h=new Element("a",{href:"javascript:void(0);"}).addClassName("MyMap_linkinherit").update("Középpontba");h.onclick=this.center.bind(this);c.insert(h);c.insert(new Element("br"));h=new Element("a",{href:"javascript:void(0);"}).addClassName("MyMap_linkinherit").update("Ráközelítés");h.onclick=this.zoom.bind(this);c.insert(h);c.insert(new Element("br"));h=new Element("a",{href:"javascript:void(0);"}).addClassName("MyMap_linkinherit").update("Törlés");h.onclick=this.remove.bind(this);c.insert(h);c.insert(new Element("br"));return menudiv},center:function(){if(this.map){this.map.panTo(this.position)}},zoom:function(){if(this.map){if(this.bound){this.map.setCenter(this.position,this.map.getBoundsZoomLevel(this.bound))}else{this.map.setCenter(this.position,11)}}},isRouteMarker:function(){return(this.type==MYMAP_MARKERTYPE_START||this.type==MYMAP_MARKERTYPE_STOP||this.type==MYMAP_MARKERTYPE_WAYPOINT)},remove:function(){if(this.isRouteMarker()){this.myMap.getRoute().deleteMarker(this,true);this.myMap.getRoute().refresh();return}if(this.map){if(this.marker){this.map.removeOverlay(this.marker)}}this.marker=null;this.infoWindow=null;this.map=null},onDragStart:function(){this.map.getInfoWindow().hide()},onDragEnd:function(b){var a=this;this.myMap.geocoder.getLocations(b,function(c){switch(c.Status.code){case 200:a.update.bind(a,c.Placemark[0],b)();a.openInfoWindow();a.myMap.setGPSDataFromMarker(a);break;case 602:a.update.bind(a,b)();a.openInfoWindow();a.myMap.setGPSDataFromMarker(a);break;default:a.update.bind(a,b);break}})},onDrag:function(a){if(this.isRouteMarker()){this.myMap.getRoute().displayTemporalyRoute(this,a)}this.myMap.setGPSData("",a,this.type)},update:function(b,e){if(b){if(e){this.position=e}else{this.position=new google.maps.LatLng(b.Point.coordinates[1],b.Point.coordinates[0])}this.marker.setLatLng(this.position);this.address=b.address;var c=b.ExtendedData.LatLonBox;var a=new google.maps.LatLng(c.south,c.west);var d=new google.maps.LatLng(c.north,c.east);this.bound=new google.maps.LatLngBounds(a,d)}else{this.position=b;this.address="";this.bound=null}if(this.isRouteMarker()){this.myMap.getRoute().setAddress(this)}},setStart:function(){this.myMap.getRoute().addStart(this.address,this);this.myMap.setPage(MYMAP_PAGE_ROUTE,true)},setStop:function(){this.myMap.getRoute().addStop(this.address,this);this.myMap.setPage(MYMAP_PAGE_ROUTE,true)},setWaypoint:function(){this.myMap.getRoute().addWaypoint(this.address,this);this.myMap.setPage(MYMAP_PAGE_ROUTE,true)},getMarkerData:function(){return{lat:this.position.lat(),lng:this.position.lng(),a:this.address,sw_lat:this.bound.getSouthWest().lat(),sw_lng:this.bound.getSouthWest().lng(),ne_lat:this.bound.getNorthEast().lat(),ne_lng:this.bound.getNorthEast().lng(),t:this.type}},setMarkerData:function(a){this.position=new google.maps.LatLng(a.lat,a.lng);this.address=a.a;this.bound=new google.maps.LatLngBounds(new google.maps.LatLng(a.sw_lat,a.sw_lng),new google.maps.LatLng(a.ne_lat,a.ne_lng));this.type=a.t;return this}});myMapRoute=Class.create({myMap:null,waypoints:null,direction:null,polyline:null,options:{locale:"HU",travelMode:1,avoidHighways:false,getPolyline:true,getSteps:true},route_panel:null,inputbox_panel:null,startinput:null,stopinput:null,GENERATETYPE_PANEL:"panel",GENERATETYPE_INPUTBOX:"inputbox",initialize:function(a){this.myMap=a;this.direction=new google.maps.Directions();google.maps.Event.addListener(this.direction,"load",this.loadDirection.bind(this));google.maps.Event.addListener(this.direction,"error",this.errorDirection.bind(this));this.reset()},reset:function(){if(this.waypoints){this.waypoints.each(function(a){if(a.marker){a.marker.remove()}})}this.waypoints=new Array();this.waypoints[0]={address:"",marker:null};this.waypoints[1]={address:"",marker:null};this.refresh()},setPanels:function(a,c,b,d){this.route_panel=a;this.inputbox_panel=c;this.startinput=b;this.stopinput=d;this.refresh()},hasRoute:function(){return this.polyline!=null},getLastIndex:function(){return Math.max(this.waypoints.size()-1,0)},setWaypoint:function(c,b,a){if(b==""){return}this.waypoints[c].address=b;if(a){this.waypoints[c].marker=a;this.refresh()}else{var d=this;this.myMap.geocoder.getLocations(b,function(e){switch(e.Status.code){case 200:d.waypoints[c].marker=d.myMap.createMarkerFromGeocode(e.Placemark[0],MYMAP_MARKERTYPE_DEFAULT);d.refresh();break;case 602:break}})}},setAddress:function(b){var a=this.waypoints.detect(function(c){if(c.marker==b){c.address=b.getAddress();return true}return false});if(a!=null){this.refresh()}},addStart:function(b,a){if(this.waypoints[0].marker&&this.waypoints[0].marker==a){return}if(this.waypoints[0].marker){this.removeMarker(this.waypoints[0].marker)}this.deleteMarker(a,false);this.setWaypoint(0,b,a)},addStop:function(b,a){var c=this.getLastIndex();if(this.waypoints[c].marker&&this.waypoints[c].marker==a){return}if(this.waypoints[c].marker){this.removeMarker(this.waypoints[this.getLastIndex()].marker)}this.deleteMarker(a,false);this.setWaypoint(this.getLastIndex(),b,a)},addWaypoint:function(b,a){var c=this.waypoints.indexOf(this.waypoints.detect(function(e){return e.marker==a}));if(c>0&&c<this.getLastIndex()){return}var d=this.getLastIndex();if(this.waypoints[d].marker==null){this.addStop(b,a)}else{this.waypoints[d+1]=Object.clone(this.waypoints[d]);this.setWaypoint(d,b,a)}},deleteMarker:function(b,a){if(b==null){return}var c=this.waypoints.detect(function(e){return e.marker==b});var d=this.waypoints.indexOf(c);if(d==0&&this.waypoints.size()==2){this.waypoints[0]={address:"",marker:null}}else{this.waypoints=this.waypoints.without(c)}if(this.waypoints.size()==1){this.waypoints[1]={address:"",marker:null}}if(a){this.removeMarker(b)}},removeMarker:function(a){if(a){a.setType(MYMAP_MARKERTYPE_DEFAULT);a.remove()}},modifyWaypoint:function(c,b,a){var d=this.getLastIndex();switch(c){case 0:this.addStart(b,a);break;case d:this.addStop(b,a);break;default:this.removeMarker(this.waypoints[c].marker);this.setWaypoint(c,b,a);break}},changeOrder:function(b){var c=new Array();for(var a=0;a<b.size();a++){c[a]=this.waypoints[b[a]]}this.waypoints=c;this.refresh()},deleteWaypoint:function(a){if(this.waypoints[a]){this.deleteMarker(this.waypoints[a].marker,true);this.refresh()}},refresh:function(){var a;var c;var b=this.getLastIndex();for(a=0;a<this.waypoints.size();a++){c=this.waypoints[a];switch(a){case 0:if(c.marker){c.marker.setType(MYMAP_MARKERTYPE_START)}break;case b:if(c.marker){c.marker.setType(MYMAP_MARKERTYPE_STOP)}break;default:if(c.marker){c.marker.setType(MYMAP_MARKERTYPE_WAYPOINT)}break}}this.calculate()},calculate:function(){this.clearDirection();var b=new Array();var a=this.waypoints.size();for(i=0;i<a;i++){if(this.waypoints[i].marker==null){if(this.route_panel){if(a>2){this.route_panel.update("Az útvonalban néhány pont nincs megfelelően beállítva, ezért tervezés még nem lehetséges!")}else{this.route_panel.update("")}}this.refreshInputBoxes();return}else{b[i]=this.waypoints[i].marker.getPosition().toString()}}this.direction.loadFromWaypoints(b,this.options)},clearDirection:function(){this.direction.clear();if(this.polyline){this.myMap.getMap().removeOverlay(this.polyline)}this.polyline=null;if(this.route_panel){this.route_panel.update("")}if(this.tempDirectionInterval){clearInterval(this.tempDirectionInterval)}this.tempDirectionInterval=null;if(this.tempdirection){this.tempdirection.clear()}if(this.temppolyline){this.myMap.getMap().removeOverlay(this.temppolyline)}this.temppolyline=null},loadDirection:function(){this.polyline=this.direction.getPolyline();this.myMap.getMap().addOverlay(this.polyline);this.refreshInputBoxes();this.refreshPanel();if(this.myMap.onRouteLoaded){this.myMap.onRouteLoaded()}},errorDirection:function(){alert("Hiba az útvonaltervezés közben!")},changeTravelMode:function(a){this.options.travelMode=a;this.refresh()},changeAvoidHighways:function(a){this.options.avoidHighways=a;this.refresh()},getRouteData:function(){var a=new Array();this.waypoints.each(function(b){a.push({a:b.address,m:(b.marker?b.marker.getMarkerData():null)})});return{avoid:this.options.avoidHighways,wps:a}},setRouteData:function(b){this.options.avoidHighways=b.avoid;this.waypoints=new Array();var a=this;b.wps.each(function(c){a.waypoints.push({address:c.a,marker:(c.m?new myMapMarker().setMarkerData(c.m).addToMap(a.myMap):null)})});this.refresh()},displayTemporalyRoute:function(a,b){this.tempRouteData={marker:a,pos:b};if(!this.tempDirectionInterval){this.tempDirectionInterval=setInterval(this.calculateTemporalyRoute.bind(this),1000)}},calculateTemporalyRoute:function(){if(!this.tempdirection){this.tempdirection=new google.maps.Directions();google.maps.Event.addListener(this.tempdirection,"load",this.loadTempDirection.bind(this));google.maps.Event.addListener(this.tempdirection,this.errorTempDirection.bind(this))}if(this.tempRouteDataOld&&this.tempRouteDataOld==this.tempRouteData){return}this.tempRouteDataOld=this.tempRouteData;this.tempdirection.clear();if(this.temppolyline){this.myMap.getMap().removeOverlay(this.temppolyline)}this.temppolyline=null;var c=new Array();var b=this.waypoints.size();for(i=0;i<b;i++){if(this.waypoints[i].marker==null){return}else{if(this.waypoints[i].marker==this.tempRouteData.marker){c[i]=this.tempRouteData.pos.toString()}else{c[i]=this.waypoints[i].marker.getPosition().toString()}}}var a=Object.clone(this.options);a.getSteps=false;this.tempdirection.loadFromWaypoints(c,a)},loadTempDirection:function(){this.temppolyline=this.tempdirection.getPolyline();this.temppolyline.setStrokeStyle({color:"#ff0000"});this.myMap.getMap().addOverlay(this.temppolyline)},errorTempDirection:function(){},flighRoute:function(){if(this.polyline&&!this.flightInterval){this.routepoint=0;this.flightInterval=setInterval(this.flighRouteInterval.bind(this),200);this.myMap.getMap.setZoom(12)}},flighRouteInterval:function(){this.routepoint++;if(this.routepoint==this.polyline.getVertexCount()){clearInterval(this.flightInterval);this.routepoint=0;this.flightInterval=null}this.myMap.getMap().setCenter(this.polyline.getVertex(this.routepoint))},zoom:function(){if(!this.direction||!this.direction.getBounds()){return}var a=this.direction.getBounds();this.myMap.getMap().setCenter(a.getCenter(),this.myMap.getMap().getBoundsZoomLevel(a))},reverse:function(){this.waypoints.reverse();this.refresh()},refreshPanel:function(){if(!this.route_panel){return}var d=this.direction.getNumRoutes();if(d==0){this.route_panel.update("Nincs útvonal.");return}var c=new Element("div").addClassName("routelist");c.insert(new Element("div").addClassName("allsummary").insert(new Element("div").addClassName("allsummary_text").update("Teljes útvonal hossza:<br> <b>"+this.direction.getDistance().html+" ( kb. "+this.direction.getDuration().html+" )</b>")));c.insert(this.generateWaypointHTML(0));var a=0;for(var b=1;b<=d;b++){c.insert(this.generateRouteHTML(b,this.direction.getRoute(b-1),a));c.insert(this.generateWaypointHTML(b));a+=this.direction.getRoute(b-1).getNumSteps()}c.insert(new Element("div").update(this.direction.getCopyrightsHtml()));this.route_panel.update(c)},generateWaypointHTML:function(b){var a=this.waypoints[b].marker;var d=new Element("div").addClassName("waypoint cf");var c=new Element("img",{align:"absmiddle",src:a.getImageUrl()});c.onclick=function(){this.waypoints[b].marker.zoom()}.bind(this);d.insert(c);d.insert(new Element("div").update(a.getAddress()));return d},generateRouteHTML:function(e,b,a){var h=new Element("div").addClassName("toggle");h.onclick=function(){var j=$("route_"+e);if(j){j.toggle();if(j.visible()){this.removeClassName("hidden")}else{this.addClassName("hidden")}}};var d=new Element("div").addClassName("summary").insert(h).insert(new Element("div").addClassName("summary_text").update("Szakasz hossza: "+b.getDistance().html+" ( kb. "+b.getDuration().html+" )"));var c=new Element("tbody");for(var f=1;f<=b.getNumSteps();f++){c.insert(this.generateStepHTML(a+f,b.getStep(f-1)))}var g=new Element("div").addClassName("route").insert(d).insert(new Element("table",{id:"route_"+e}).insert(new Element("tbody").insert(c)));return g},generateStepHTML:function(b,d){var a=this.polyline.getVertex(d.getPolylineIndex());var c=new Element("tr").insert(new Element("td").addClassName("step_num").update(b+".")).insert(new Element("td").addClassName("step_text").update(d.getDescriptionHtml())).insert(new Element("td").addClassName("step_dist").update(d.getDistance().html));c.onclick=function(){this.myMap.getMap().setCenter(a);this.myMap.getMap().setZoom(15);this.myMap.getMap().openInfoWindow(a,"<div class='route_tooltip'>"+d.getDescriptionHtml()+"</div>")}.bind(this);return c},refreshInputBoxes:function(){if(!this.inputbox_panel){return}var d=new Element("ul",{id:"route_inputboxlist"});for(var e=0;e<this.waypoints.size();e++){d.insert(this.generateInputBox(e))}var a=new Element("input",this.options.avoidHighways?{type:"checkbox",id:"route_avoidHighways",checked:1}:{type:"checkbox",id:"route_avoidHighways"});var c=new Element("label",{"for":"route_avoidHighways"}).update("Fizetős utak elkerülése");var j=new Element("a",{href:"javascript:void(0);"}).update("Nagyítás az útvonalra");j.onclick=this.zoom.bind(this);var f=new Element("a",{href:"javascript:void(0);"}).update("Visszaút készítése");f.onclick=this.reverse.bind(this);var b=new Element("a",{href:"javascript:void(0);"}).update("Útvonal nyomtatása...");b.onclick=function(){this.myMap.print()}.bind(this);var h=new Element("a",{href:"javascript:void(0);"}).update("Útvonal törlése...");h.onclick=function(){if(window.confirm("Valóban törölni szeretnéd az útvonalat?")){this.reset()}}.bind(this);var k=new Element("div").addClassName("route_inputbox_options").insert(a).insert(c);if(this.hasRoute()){k.insert(new Element("br")).insert(j).insert(new Element("br")).insert(f).insert(new Element("br")).insert(b).insert(new Element("br")).insert(h)}this.inputbox_panel.update("<h3>Útvonal adatok</h3>").insert(d).insert(k);var g=this;a.onchange=function(){g.changeAvoidHighways(this.checked)};Sortable.create(d,{elements:$$("#route_inputboxlist .inputbox"),handles:$$("#route_inputboxlist .inputbox img.handle"),onUpdate:function(){this.changeOrder(Sortable.sequence(d))}.bind(this)});if(this.startinput){this.startinput.value=this.waypoints[0].address}if(this.stopinput){this.stopinput.value=this.waypoints[this.getLastIndex()].address}},generateInputBox:function(d){var b=this.waypoints[d];var e=new Element("input",{type:"text",value:b.address});var g=this;e.onchange=function(){g.modifyWaypoint(d,this.value,null)};var a=new Element("img",{align:"absmiddle",src:this.myMap.getImageUrl("ut_torles.gif"),title:"Útvonalpont törlése"}).addClassName("delete");a.onclick=function(){g.deleteWaypoint(d)}.bind(this);var c="";var f=this.getLastIndex();switch(d){case 0:c=this.myMap.getMarkerImageUrl(MYMAP_MARKERTYPE_START);break;case f:c=this.myMap.getMarkerImageUrl(MYMAP_MARKERTYPE_STOP);break;default:c=this.myMap.getMarkerImageUrl(MYMAP_MARKERTYPE_WAYPOINT)}return new Element("li",{id:"element_"+d}).addClassName("inputbox").insert(new Element("img",{align:"absmiddle",height:20,width:12,src:c}).addClassName("handle")).insert(e).insert(a)}});function EOV_WGS(){this.iugga=6378160;this.iuggb=6356774.516;this.iuggFI0=0.823213630524;this.iuggfi0=0.8224382088565;this.iuggFIK=0.8228248943093;this.iuggLAMBDAK=0.3324602953247;this.iuggfik=0.8220500776893;this.WGSa=6378137;this.WGSb=6356752.31414;this.DX=52.684;this.DY=-71.194;this.DZ=-13.975;this.kappa=0.0000010191;this.Ex=0.000001512618685062;this.Ey=5.153569430194e-7;this.Ez=0.000001807870216857;this.xy=new Array();this.fila=new Array();this.FILA=new Array();this.FILAWGS=new Array(2);this.XYZ=new Array(3);this.WGS84=new Array(3);this.eovH=new Array();this.wgsh=new Array();this.eovU=new Array();this.eovh=new Array();this.wgsU=new Array();this.wgsH=new Array();var a=this;this.wgs2eov=function(b,c){a.FILAWGS[1]=(c/180)*(Math.PI);a.FILAWGS[0]=(b/180)*(Math.PI);a.wgsH[0]=0;a.wgsU[0]=0;a.ELL_XYZ(a.FILAWGS,a.wgsH,a.wgsU,a.WGS84,6378137,6356752.31414);a.EUREF_HD72();a.XYZ_ELL(a.XYZ,a.FILA,a.eovh,6378160,6356774.516);a.iugg_FILA_fila();a.iugg_fila_xy(a.xy,a.fila);return{dX:a.xy[0],dY:a.xy[1]}};this.eov2wgs=function(c,b){a.xy[0]=b;a.xy[1]=c;a.eovH[0]=0;a.eovU[0]=-35.85;a.iugg_xy_fila();a.iugg_fila_FILA();a.ELL_XYZ(a.FILA,a.eovH,a.eovU,a.XYZ,6378160,6356774.516);a.HD72_EUREF();a.XYZ_ELL(a.WGS84,a.FILAWGS,a.wgsh,6378137,6356752.31414);var c=(a.FILAWGS[0]*180)/Math.PI;var b=(a.FILAWGS[1]*180)/Math.PI;return{dX:c,dY:b}};this.ELL_XYZ=function(j,g,f,e,h,c){var b=(h*h-c*c)/(h*h);var l=h/Math.sqrt(1-b*Math.sin(j[0])*Math.sin(j[0]));var k=g[0]+f[0];e[0]=(l+k)*Math.cos(j[0])*Math.cos(j[1]);e[1]=(l+k)*Math.cos(j[0])*Math.sin(j[1]);e[2]=(l*(1-b)+k)*Math.sin(j[0])};this.XYZ_ELL=function(m,f,e,g,c){var b=(g*g-c*c)/(g*g);var o=Math.sqrt(m[0]*m[0]+m[1]*m[1]);var n=g;var l=0.000001;e[0]=0;f[1]=Math.atan2(m[1],m[0]);var k;do{var j=m[2]/o;var h=1-(b*n)/(n+e[0]);f[0]=Math.atan2(j,h);n=g/Math.sqrt(1-b*Math.sin(f[0])*Math.sin(f[0]));e[0]=o/Math.cos(f[0])-n;k=(n*(1-b)+e[0])*Math.sin(f[0])-m[2];e[0]-=k}while(Math.abs(k)>l)};this.HD72_EUREF=function(){var b=new Array(3);var c=1.0000010191;b[0]=(a.XYZ[0]+a.XYZ[1]*0.000001807870216857)-a.XYZ[2]*5.153569430194e-7;b[1]=(a.XYZ[1]-a.XYZ[0]*0.000001807870216857)+a.XYZ[2]*0.000001512618685062;b[2]=(a.XYZ[2]+a.XYZ[0]*5.153569430194e-7)-a.XYZ[1]*0.000001512618685062;a.WGS84[0]=52.684+c*b[0];a.WGS84[1]=-71.194+c*b[1];a.WGS84[2]=-13.975+c*b[2]};this.EUREF_HD72=function(){var c=new Array(3);var b=new Array(3);var f=1.000000000005822;var e=1.0000010191;b[0]=a.WGS84[0]-52.684;b[1]=a.WGS84[1]+71.194;b[2]=a.WGS84[2]+13.975;c[0]=(1.000000000002288*b[0]-0.0000018078694373184586*b[1]+5.153596776376701e-7*b[2])/f;c[1]=(1.0000000000002656*b[1]+0.0000018078709963955414*b[0]-0.0000015126177533635316*b[2])/f;c[2]=(1.0000000000032685*b[2]-5.153542084011298e-7*b[0]+0.0000015126196167604682*b[1])/f;a.XYZ[0]=c[0]/e;a.XYZ[1]=c[1]/e;a.XYZ[2]=c[2]/e};this.sgomb_gauss=function(c,b){c[0]=Math.asin(Math.sin(b[0])*Math.cos(0.8220500776893)+Math.cos(b[0])*Math.cos(b[1])*Math.sin(0.8220500776893));c[1]=Math.asin((Math.cos(b[0])*Math.sin(b[1]))/Math.cos(c[0]))};this.gauss_sgomb=function(b){b[0]=Math.asin(Math.sin(a.fila[0])*Math.cos(0.8220500776893)-Math.cos(a.fila[0])*Math.cos(a.fila[1])*Math.sin(0.8220500776893));b[1]=Math.asin((Math.cos(a.fila[0])*Math.sin(a.fila[1]))/Math.cos(b[0]))};this.iugg_e=function(){return Math.sqrt(0.006694605356917796)};this.iugg_n=function(){return Math.sin(0.823213630524)/Math.sin(0.8224382088565)};this.iugg_k=function(){var k=3.141592653589793;var j=a.iugg_n();var h=a.iugg_e();k/=4;var g=Math.tan(0.41121910442825+k);var f=Math.tan(0.411606815262+k);var e=Math.pow(f,j);f=e;e=(1-h*Math.sin(0.823213630524))/(1+h*Math.sin(0.823213630524));var c=(j*h)/2;var b=Math.pow(e,c);e=b*f;return g/e};this.iugg_R=function(){var g=a.iugg_e();var f=Math.sqrt(1-g*g*Math.sin(0.823213630524)*Math.sin(0.823213630524));var e=6378160/f;f=40680924985600*Math.cos(0.823213630524)*Math.cos(0.823213630524)+40408582247267.03*Math.sin(0.823213630524)*Math.sin(0.823213630524);var c=Math.pow(f,1.5);var b=1.643858503175518e+27/c;return Math.sqrt(b*e)};this.iugg_FILA_fila=function(){var k=3.141592653589793;k/=4;var j=a.iugg_e();var h=a.iugg_n();var g=a.iugg_k();var f=a.FILA[0]/2+k;var e=Math.tan(f);var c=Math.pow(e,h);f=(1-j*Math.sin(a.FILA[0]))/(1+j*Math.sin(a.FILA[0]));e=(h*j)/2;var b=Math.pow(f,e);f=g*c*b;e=Math.atan(f);f=e-k;a.fila[0]=2*f;a.fila[1]=h*(a.FILA[1]-0.3324602953247)};this.iugg_fila_FILA=function(){var k=3.141592653589793;var j=648000/k;var h=(272342738332.96875*Math.cos(0.823213630524)*Math.cos(0.823213630524))/40408582247267.03;var g=Math.sqrt(1+h);var f=(3*h*Math.tan(0.823213630524))/(2*j);var e=((-1+Math.tan(0.823213630524)*Math.tan(0.823213630524))-h)+5*h*Math.tan(0.823213630524)*Math.tan(0.823213630524);var c=(0.5*h*e)/(g*j*j);var b=j*(a.fila[0]-0.8224382088565);h=(b*g-b*b*f)+b*b*b*c;h/=j;a.FILA[0]=0.823213630524+h;a.FILA[1]=0.3324602953247+a.fila[1]/a.iugg_n()};this.iugg_fila_xy=function(){var b=new Array(2);var g=3.141592653589793;var f=0.99993;g/=4;var e=a.iugg_R();a.gauss_sgomb(b);var c=g+b[0]/2;a.xy[0]=f*e*Math.log(Math.tan(c))+200000;a.xy[1]=f*e*b[1]+650000};this.iugg_xy_fila=function(){var e=new Array(2);var k=3.141592653589793;var j=0.99993;var h=a.iugg_R();var g=a.xy[0]-200000;var f=a.xy[1]-650000;k/=4;var c=g/(h*j);var b=Math.exp(c);c=Math.atan(b)-k;e[0]=2*c;e[1]=f/(h*j);a.sgomb_gauss(a.fila,e)}}var POIManager=Class.create({MYMAP_OBJECT_TYPE_MAXID:300,arrPOITypes:new Array(),arrPOIs:new Array(),MAX_POI_NUMBER:200,myMap:null,labellock:null,drawMenu:true,initialize:function(a){this.myMap=a;google.maps.Event.addListener(this.getMap(),"moveend",this.recalculatePois.bind(this))},getMyMap:function(){return this.myMap},getMap:function(){return this.myMap.getMap()},changeObjectTypes:function(a){var c=a.parentNode;var e=a.checked;if(c.className=="submenu"){var d=c.getElementsByTagName("ul")[0];var b=d.getElementsByTagName("input");for(i=0;i<b.length;i++){b[i].checked=e}}this.setPOITypes(this.getObjectTypes())},getObjectTypes:function(){var b=true;var a=new Array(this.MYMAP_OBJECT_TYPE_MAXID+1);for(i=1;i<=this.MYMAP_OBJECT_TYPE_MAXID;i++){var c=document.getElementById("myMapObjectType_"+i);if(c!=null){if(c.checked==true){a[i]=1}else{b=false}}}if(b){a=new Array();a[0]=1}return a},changeAllType:function(a){for(i=1;i<=this.MYMAP_OBJECT_TYPE_MAXID;i++){var b=document.getElementById("myMapObjectType_"+i);if(b!=null){b.checked=a}}this.setPOITypes(this.getObjectTypes())},changeObjectNum:function(){var a=$("max_poinum");var b=parseInt(a.value);if(isNaN(b)){b=100}if(b<10){b=10}if(b>200){b=200}a.value=b;this.setMaxPOINum(b)},setPOITypes:function(b){if(b==null){return}this.arrPOITypes=b;this.sTypes="";var a=0;for(a=0;a<this.arrPOITypes.length;a++){if(this.arrPOITypes[a]!=null){if(this.sTypes!=""){this.sTypes+="a"}this.sTypes+=a}}if(this.arrPOITypes[0]==null){for(a=0;a<this.arrPOIs.length;a++){if(this.arrPOIs[a]!=null){if(this.arrPOITypes[this.arrPOIs[a].getType()]==null){this.removePOI(this.arrPOIs[a],a)}}}}this.getPOIs()},setMaxPOINum:function(a){this.MAX_POI_NUMBER=a;this.removeAll();this.getPOIs()},getPOIs:function(){this.arrPOIs=this.arrPOIs.compact();if(this.arrPOIs.length>=this.MAX_POI_NUMBER){return}var data=this.getMap().getBounds();if(this.sTypes!=null&&this.sTypes!=""){var params="t="+this.sTypes+"&id="+this.getIDs()+"&minx="+data.getSouthWest().lng()+"&miny="+data.getSouthWest().lat()+"&maxx="+data.getNorthEast().lng()+"&maxy="+data.getNorthEast().lat()+"&maxnum="+this.MAX_POI_NUMBER;new Ajax.Request("/index/getpois",{method:"get",parameters:params,onSuccess:function(oReq){var data=eval("("+oReq.responseText+")");var p=null;for(var i=0;i<data.pois.length&&this.arrPOIs.length<this.MAX_POI_NUMBER;i++){p=data.pois[i];poi=this.addPOI(p.i,p.n,p.t,p.y,p.x)}}.bind(this)})}},addPOI:function(f,b,c,e,a){var d=new POI(f,b,c,e,a,this);d.draw();this.arrPOIs[this.arrPOIs.length]=d;return d},removePOI:function(b,a){b.remove();if(a==null){a=this.arrPOIs.indexOf(b)}if(a>-1){this.arrPOIs[a]=null}},getIDs:function(){var a="";var b;for(b=0;b<this.arrPOIs.length;b++){if(this.arrPOIs[b]!=null){a=a+this.arrPOIs[b].getID();if(b<this.arrPOIs.length-1){a=a+"a"}}}return a},removeAll:function(){this.arrPOIs.each(function(a){a.remove()});this.arrPOIs=new Array()},recalculatePois:function(){var a=this.getMap().getBounds().getSouthWest();var c=this.getMap().getBounds().getNorthEast();var d,e;for(var b=0;b<this.arrPOIs.length;b++){if(this.arrPOIs[b]!=null){d=this.arrPOIs[b];e=d.getPosition();if((e.lat()<a.lat()||e.lat()>c.lat()||e.lng()<a.lng()||e.lng()>c.lng())&&this.labellock!=d){if(!d.isLabelVisible()){d.remove();delete d;this.arrPOIs[b]=null}}}}this.getPOIs()},setLabelLock:function(a){this.labellock=a},getLabelLock:function(){return this.labellock},setDrawMenu:function(a){this.drawMenu=a}});var POI=Class.create({id:null,name:null,type:null,position:null,marker:null,POIManager:null,map:null,myMap:null,labellock:false,detaildiv:null,detailcontent:null,initialize:function(f,c,d,e,b,a){this.id=f;this.name=c;this.type=d;this.position=new google.maps.LatLng(e,b);this.POIManager=a;this.map=a.getMap();this.myMap=a.getMyMap()},getID:function(){return this.id},getName:function(){return this.name},getType:function(){return this.type},getPosition:function(){return this.position},draw:function(){if(this.marker==null){icon=this.getIcon();this.marker=new google.maps.Marker(this.position,{icon:icon});this.map.addOverlay(this.marker);google.maps.Event.addListener(this.marker,"mouseover",this.onMouseOver.bind(this));google.maps.Event.addListener(this.marker,"mouseout",this.onMouseOut.bind(this));google.maps.Event.addListener(this.marker,"click",this.onClick.bind(this));google.maps.Event.addListener(this.marker,"infowindowclose",this.onInfoWindowClose.bind(this))}},getIcon:function(){var a=new google.maps.Icon();a.image="/images/poi.gif";a.printImage="/images/poi.gif";a.iconSize=new google.maps.Size(16,16);a.iconAnchor=new google.maps.Point(8,8);a.infoWindowAnchor=new google.maps.Point(12,0);a.transparent="/images/poi.gif";a.imageMap=[0,0,16,0,16,16,0,16];return a},getLabelHeader:function(){var b=this.POIManager.getMyMap().Converter.convertToDegree(this.position.lat());var a=this.POIManager.getMyMap().Converter.convertToDegree(this.position.lng());return new Element("div").setStyle({width:"250px"}).insert(new Element("div").addClassName("myMap_LabelTitle").update(this.name)).insert(new Element("div").addClassName("myMap_LabelCoord").update("GPS: "+b.degree+"&deg;"+b.min+"&acute;"+b.sec+"&acute;&acute; ; "+a.degree+"&deg;"+a.min+"&acute;"+a.sec+"&acute;&acute;"))},showSimpleContent:function(){if(this.detaildiv==null){this.detaildiv=new Element("div").update("<br><i>A részletekért kattintson az ikonra!</i>");this.marker.openInfoWindow(this.getLabelHeader().insert(this.detaildiv))}},showDetailContent:function(){if(this.detaildiv){this.detaildiv.update(this.detailcontent).insert(this.generateMenu())}else{this.detaildiv=new Element("div").update(this.detailcontent);var a=this.getLabelHeader();a.insert(this.detaildiv);a.insert(this.generateMenu());this.marker.openInfoWindow(a);this.POIManager.setLabelLock(this)}this.map.updateInfoWindow()},remove:function(){if(this.marker){this.map.removeOverlay(this.marker)}},isLabelVisible:function(){return false},onMouseOver:function(){if(!this.POIManager.getLabelLock()){this.showSimpleContent()}},onMouseOut:function(){if(!this.POIManager.getLabelLock()){this.marker.closeInfoWindow()}},onInfoWindowClose:function(){this.detaildiv=null;this.POIManager.setLabelLock(null)},onClick:function(){if(this.POIManager.getLabelLock()==this){this.marker.closeInfoWindow();this.POIManager.setLabelLock(null)}else{if(this.detailcontent){this.showDetailContent()}else{new Ajax.Request("/index/getpoidetail",{method:"get",parameters:{id:this.id},onSuccess:function(a){this.detailcontent=a.responseText;this.showDetailContent()}.bind(this)})}this.POIManager.setLabelLock(this)}},generateMenu:function(){if(!this.POIManager.drawMenu){return new Element("div")}hasRoute=true;menudiv=new Element("div");var f=new Element("table",{align:"center"}).setStyle({margin:"5px 2px"});var b=new Element("tbody");menudiv.insert(f.insert(b));f=b;var g=new Element("tr");f.insert(g);var d=new Element("td",{width:"120px"}).setStyle({borderRight:"1px solid gray"});g.insert(d);var a=new Element("img",{src:this.myMap.getImageUrl("doboz/doboz_indulas.gif")});d.insert(a);var h;if(hasRoute){h=new Element("a",{href:"javascript:void(0);"}).addClassName("MyMap_linkinherit")}else{h=new Element("span").addClassName("MyMap_disablelink")}h.onclick=this.setStart.bind(this);h.update(" Kezdőpont");d.insert(h);d.insert(new Element("br"));a=new Element("img",{src:this.myMap.getImageUrl("doboz/doboz_erkezes.gif")});d.insert(a);if(hasRoute){h=new Element("a",{href:"javascript:void(0);"}).addClassName("MyMap_linkinherit")}else{h=new Element("span").addClassname("MyMap_disablelink")}h.onclick=this.setStop.bind(this);h.update(" Végpont");d.insert(h);d.insert(new Element("br"));a=new Element("img",{src:this.myMap.getImageUrl("doboz/doboz_erinto.gif")});d.insert(a);if(hasRoute){h=new Element("a",{href:"javascript:void(0);"}).addClassName("MyMap_linkinherit")}else{h=new Element("span").addClassname("MyMap_disablelink")}h.onclick=this.setWaypoint.bind(this);h.update(" Érintőpont");d.insert(h);d.insert(new Element("br"));var c=new Element("td",{width:"120px"});g.insert(c);h=new Element("a",{href:"javascript:void(0);"}).addClassName("MyMap_linkinherit").update("Középpontba");h.onclick=this.center.bind(this);c.insert(h);c.insert(new Element("br"));h=new Element("a",{href:"javascript:void(0);"}).addClassName("MyMap_linkinherit").update("Ráközelítés");h.onclick=this.zoom.bind(this);c.insert(h);return menudiv},setStart:function(){var a=new myMapMarker(this.position,this.name,null,MYMAP_MARKERTYPE_PICKER).addToMap(this.myMap);this.myMap.getRoute().addStart(this.name,a);this.myMap.setPage(MYMAP_PAGE_ROUTE,true);this.marker.closeInfoWindow()},setStop:function(){var a=new myMapMarker(this.position,this.name,null,MYMAP_MARKERTYPE_PICKER).addToMap(this.myMap);this.myMap.getRoute().addStop(this.name,a);this.myMap.setPage(MYMAP_PAGE_ROUTE,true);this.marker.closeInfoWindow()},setWaypoint:function(){var a=new myMapMarker(this.position,this.name,null,MYMAP_MARKERTYPE_PICKER).addToMap(this.myMap);this.myMap.getRoute().addWaypoint(this.name,a);this.myMap.setPage(MYMAP_PAGE_ROUTE,true);this.marker.closeInfoWindow()},center:function(){if(this.map){this.map.panTo(this.position)}},zoom:function(){if(this.map){this.map.setCenter(this.position,17)}}});
