/**
 * funkce pro ovaladni mapy na strance reyzrvace kde se teprve vybiraji centra
 * vyuyiva google maps API v3
 * jde v podstate jen o nacteni markeru a pripadne info window
 * a dale je mozne zoomovat na jednotlive markery        
  */
   //tady si rozsirim mprototype objektu string o metodu umoynujici oriznuti bylych zanku
  String.prototype.trim = function() {
        return this.replace(/^\s+|\s+$/g,"");
    }
  //global variable
  var MarkersIcons={}
   MarkersIcons.normal="../obr/mapMarker.png"
   MarkersIcons.highlight="../obr/mapMarkerHiglight.png";
   var G;
   var Markers={}
   var FullView;
   var FullViewConst;
   var actZoomID=null;
 $(document).ready(initialize);
  //kdyz je DOM hotov tak muzu vytvorit mapu a dalsi veci
  function initialize(){
    //navazu udalosti na zoom ke konkretnimu ergo centru
    $('.mapDetail').bind('click',function(){
          var id=parseInt($(this).attr("ergID"));
          if(id!=window.actZoomID){
            window.actZoomID=id;
            var center=window.Markers['centr'+id].getPosition();
            window.map.setOptions({zoom:15,center:center})
            }
        })
      
  
  //inicializace mapy
    G=google.maps
     var lat=49.817492;
     var lng=15.472962;
     var zoom=6;
     var latlng = new google.maps.LatLng(lat,lng);
     var myOptions = {
      zoom: zoom,
      center: latlng,
      mapTypeId: google.maps.MapTypeId.ROADMAP,
      scaleControl: true,
      mapTypeControl:true,
      mapTypeControlOptions: {style: G.MapTypeControlStyle.DROPDOWN_MENU}     
      };
    
     window.map = new G.Map(document.getElementById("map_canvas"), myOptions);
     //pridam event listener na pohyb mapy
     google.maps.event.addListener(map,'center_changed',function(){
        window.actZoomID=null;
      })
      google.maps.event.addListener(map,'zoom_changed',function(){
        window.actZoomID=null;
      })
     //tady vytvorim markery pro centra z objektu window.ergoCentra ktery zaslu jako JSON ze serveru kdyz nacitam stranku
     if(window.ergoCentra){
        for(arg in window.ergoCentra){
            var ergoObj=window.ergoCentra[arg]
            var marker = new google.maps.Marker({
              position: new G.LatLng(window.ergoCentra[arg].lat,window.ergoCentra[arg].lng), 
              map: window.map, 
              icon:MarkersIcons.normal,
              title:window.ergoCentra[arg].nazev
              })
            addInfoWinToMarker(marker,ergoObj,arg);
            addMouseOnOutEvent(marker,arg)
            Markers[arg]=marker;
      }
    }
    
    //uz mam markery tak to muzu provazat s centry
     $('.centraOverview').bind('mouseover',function(){
            $(this).css('border','1px solid #7B7B7B');
            var mID=$(this).attr('id');
            window.Markers[mID].setIcon(MarkersIcons.highlight)
        })
    $('.centraOverview').bind('mouseout',function(){
              var mID=$(this).attr('id');
              if(!window.Markers[mID].active){
                  $(this).css('border','none');
                  window.Markers[mID].setIcon(MarkersIcons.normal)
              }
      })
    FullView=new FullViewControl(map,6,29,10);      
		}
		
	//navazani vytvoreni noveho inof window po kliknuti	
	function addInfoWinToMarker(marker,obj,argID){
	     window.clearCentraClickHighlight();
	     if(window.infowindow){
        window.infowindow.close()
        }
       window.infowindow = new google.maps.InfoWindow(
            { content: "<div class='GmapBubble'><b>"+obj.nazev+"</b><p>Adresa <br/><em>"+obj.adresa+"</em><br /><a href='http://"+obj.web+"'><img src='../obr/webpageLink.png'> Web</a></p></div>" 
            });
       google.maps.event.addListener(marker, 'click', function() {
        window.infowindow.open(window.map,marker);
        this.active=true;
        this.setIcon(MarkersIcons.highlight);
        $('#'+argID).css('border','1px solid #7B7B7B');
      })
    }	
  //navazana obsluha udalosti mouse over a out 
  function addMouseOnOutEvent(marker,argID){
      google.maps.event.addListener(marker, 'mouseover', function() {
          this.setIcon(MarkersIcons.highlight);
          $('#'+argID).css('border','1px solid #7B7B7B');
      });
       google.maps.event.addListener(marker, 'mouseout', function() {
        if(!this.active){
          this.setIcon(MarkersIcons.normal);
          $('#'+argID).css('border','none');
        }
      })
    }
  function clearCentraClickHighlight(){
        $(".centraOverview").css('border','none');
        for(arg in window.Markers){
            window.Markers[arg].setIcon(MarkersIcons.normal);
             window.Markers[arg].active=false;
          }
      }
                      