
//var geocoder = null;
var map = null;
var mgr = null;
var markers = [];
var cmarkers = [];
//var allmarkers = [];
var bounds = null;
var cbounds = null;
  


        //google map integralas
        function initialize_map() {
          if (!document.getElementById("map_canvas")) {
                return false;
          }
          if (GBrowserIsCompatible()) {
            map = new GMap2(document.getElementById("map_canvas"));
            bounds = new GLatLngBounds();
            cbounds = new GLatLngBounds();

            map.enableContinuousZoom();
            var map_height=parseInt(document.getElementById("map_canvas").style.height);
            if (map_height>290) {
                map.addControl(new GLargeMapControl());
            } else {
                map.addControl(new GSmallMapControl());
            }
            
            //map.addControl(new GMapTypeControl());

             
            //kozeppont beallitasa
            var point = new GLatLng(46.980186, 19.073317);
            map.setCenter(point, 6);

           // események regisztrálása
            GEvent.addListener(map, "click", onMapClick);

            //geocoder = new GClientGeocoder();

            //map.enableScrollWheelZoom(); 

  
            //animalas
            /*
            window.setTimeout(function() {
                  map.panTo(new GLatLng(37.4569, -122.1569));
            }, 1000);
            */
            if (window.showpointsinit) {
                showpointsinit();
            }
          }
        }

       // Térképre kattintás
       function onMapClick(marker, point) {
         if (marker && marker.openInfoWindowHtml) {
                if ((marker.infoWindowHTML)&&(marker.infoWindowHTML.length>0)) {
                   marker.openInfoWindowHtml(marker.infoWindowHTML);
                }
         }
       }

       function addpoint(lat, lng, un, up, uc, ui) {
            var point = new GLatLng(lat, lng);
            var marker;
            var iconBlue = new GIcon(); 
                iconBlue.image = 'http://labs.google.com/ridefinder/images/mm_20_blue.png';
                iconBlue.shadow = 'http://labs.google.com/ridefinder/images/mm_20_shadow.png';
                iconBlue.iconSize = new GSize(12, 20);
                iconBlue.shadowSize = new GSize(22, 20);
                iconBlue.iconAnchor = new GPoint(6, 20);
                iconBlue.infoWindowAnchor = new GPoint(5, 1);
            var iconRed = new GIcon(); 
                iconRed.image = 'http://labs.google.com/ridefinder/images/mm_20_red.png';       
                iconRed.shadow = 'http://labs.google.com/ridefinder/images/mm_20_shadow.png';
                iconRed.iconSize = new GSize(12, 20);
                iconRed.shadowSize = new GSize(22, 20);
                iconRed.iconAnchor = new GPoint(6, 20);
                iconRed.infoWindowAnchor = new GPoint(5, 1);

            var markopts = {
                title: un,
                icon: iconRed
            };

            marker = new GMarker(point, markopts);
            bounds.extend(point);
        
            var i='';
            var info='';
            if (up) {i='<img src="'+up+'" align="right">';}
            if ((un!='')||(uc!='')||(i!='')) {
                info='<div class=bubi>'+i+'<b>'+un+'</b><br>'+uc+'</div>';
            }
            marker.infoWindowHTML=info;
            marker.id='i'+ui;
            markers.push(marker);
            //allmarkers.push(marker);
       }

       function addpointcity(lat, lng, un, up, uc) {
            var point = new GLatLng(lat, lng);
            var marker;
            var iconBlue = new GIcon(); 
                iconBlue.image = 'http://labs.google.com/ridefinder/images/mm_20_blue.png';
                iconBlue.shadow = 'http://labs.google.com/ridefinder/images/mm_20_shadow.png';
                iconBlue.iconSize = new GSize(12, 20);
                iconBlue.shadowSize = new GSize(22, 20);
                iconBlue.iconAnchor = new GPoint(6, 20);
                iconBlue.infoWindowAnchor = new GPoint(5, 1);
            var iconRed = new GIcon(); 
                iconRed.image = 'http://labs.google.com/ridefinder/images/mm_20_red.png';       
                iconRed.shadow = 'http://labs.google.com/ridefinder/images/mm_20_shadow.png';
                iconRed.iconSize = new GSize(12, 20);
                iconRed.shadowSize = new GSize(22, 20);
                iconRed.iconAnchor = new GPoint(6, 20);
                iconRed.infoWindowAnchor = new GPoint(5, 1);

            var markopts = {
                title: un,
                icon: iconBlue
            };


            marker = new GMarker(point, markopts);
            cbounds.extend(point);
        
            var i='';
            if (up) {i='<img src="'+up+'" align="right">';}
            var info='<div class=bubi>'+i+'<b>'+un+'</b><br>'+uc+'</div>';
            marker.infoWindowHTML=info;
            //marker.id='i'+ui;
            cmarkers.push(marker);
            //allmarkers.push(marker);
       }

       function zoomfit()
       {
            var mousePoint;
            var zl=map.getZoom();
            var newzoom = map.getBoundsZoomLevel(bounds);
            newcenter = bounds.getCenter();
            if (newzoom>zl) {
                    map.zoomIn(newcenter,0,1);
            } else if (newzoom<zl) {
                    map.zoomOut(newcenter,0,1);
            } else {
                    map.panTo(newcenter);
            }
                       
            //map.setCenter (newcenter,newzoom);
       }


       function fcenterfit()
       {
            newcenter = bounds.getCenter();
            map.panTo(newcenter);                
       }

       function fzoomfit_na(zl_out)
       {
                    var newzoom = map.getBoundsZoomLevel(bounds)-zl_out;
                    var newcenter = bounds.getCenter();
                    map.setCenter (newcenter,newzoom);
       }

       function fzoomfit()
       {
            var mousePoint;
            var zl=map.getZoom();
            var newzoom = map.getBoundsZoomLevel(bounds);
            newcenter = bounds.getCenter();
            if (newzoom>zl) {
                    map.zoomIn(newcenter,0,1);
            }
            if (newzoom<zl) {
                    map.zoomOut(newcenter,0,1);
            }
           
            if (newzoom!=zl) {
                //map.setCenter (newcenter,newzoom);
                window.setTimeout("fzoomfit()", 1000);
            } else {                
                window.setTimeout("fcenterfit()", 10);
            }
            
            
            //map.setCenter (newcenter,newzoom);
       }

       function zoomto(lat, lng, level)
       {
            var mousePoint;
            var zl=map.getZoom();
            var newzoom = level;
            var newcenter = new GLatLng(lat, lng);
            var oldcenter = map.getCenter();
            map.disableInfoWindow();
            map.enableInfoWindow();
            map.enableInfoWindow();
                //alert(newcenter);
                //alert(oldcenter);
            if ((newcenter.lng()!=oldcenter.lng())||(newcenter.lat()!=oldcenter.lat())) {
                map.panTo(newcenter);
                window.setTimeout("zoomto("+lat+", "+lng+", "+level+")", 500);
                return false;
            }
            if (newzoom>zl) {
                    map.zoomIn(newcenter,0,1);
            }
            if (newzoom<zl) {
                    map.zoomOut(newcenter,0,1);
            }
           
            if (newzoom!=zl) {
                //map.setCenter (newcenter,newzoom);
                window.setTimeout("zoomto("+lat+", "+lng+", "+level+")", 400);
            }                       
            //map.setCenter (newcenter,newzoom);
       }

       function clearmarkerarr() {
                markers = [];
                cmarkers = [];
       }

       function showpoints() {
            if (!mgr) {mgr = new GMarkerManager(map); }
            if (cmarkers.length>0) {
                mgr.addMarkers(cmarkers, 0, 9);        
                mgr.addMarkers(markers, 10);        
            } else {
                mgr.addMarkers(markers, 0);        
            }
            mgr.refresh();
            //alert(mgr.getMarkerCount(0));
       }

      function clickmarker(index) {
                GEvent.trigger(markers[index], "click");
      }

      function showinfo(id) {                                                                              
        /*
        for (i=0;i<allmarkers.length;i++) {
                if (allmarkers[i].id==id) {
                        //map.setCenter (allmarkers[i].getPoint());
                        map.panTo(allmarkers[i].getPoint());
                        //map.zoomIn(allmarkers[i].getPoint(),0,1);
                        //map.zoomIn(allmarkers[i].getPoint(),0,1);
                        window.setTimeout('clickmarker('+i+');', 100);
                        //GEvent.trigger(allmarkers[i], "click");
                        return false;
                }
        }
        */
      }

      addevent(window,"load",initialize_map);
      //addevent(window,"unload",GUnload);
