﻿    var map;
    var geocoder;

	if (GBrowserIsCompatible()) {
      var gmarkers = [];
	  var secondgmarkers = [];
      var gicons = [];	

	  /* Definice rozmeru a typu ikon + stinu */
      var baseIcon = new GIcon(G_DEFAULT_ICON);
      baseIcon.iconAnchor = new GPoint(17,39);
      baseIcon.iconSize = new GSize(30,40);
      baseIcon.shadow = "/edee/content/sysutf/bgr/img/google-mapy/shadow.png";
      baseIcon.shadowSize = new GSize(53, 39);
      baseIcon.infoWindowAnchor = new GPoint(30, 40);
      baseIcon.infoShadowAnchor = new GPoint(18, 25);
      baseIcon.printImage = '/edee/content/sysutf/bgr/img/google-mapy/printImage.gif';
      baseIcon.mozPrintImage = '/edee/content/sysutf/bgr/img/google-mapy/mozPrintImage.gif';
      baseIcon.transparent = '/edee/content/sysutf/bgr/img/google-mapy/transparent.png';
      baseIcon.printShadow = '/edee/content/sysutf/bgr/img/google-mapy/printShadow.gif';
      baseIcon.imageMap = [29,0,29,1,29,2,29,3,29,4,29,5,29,6,29,7,29,8,29,9,29,10,29,11,29,12,29,13,29,14,29,15,29,16,29,17,29,18,29,19,29,20,29,21,29,22,29,23,29,24,29,25,29,26,29,27,29,28,29,29,17,30,17,31,18,32,18,33,18,34,18,35,18,36,18,37,18,38,18,39,17,39,17,38,16,37,16,36,15,35,15,34,14,33,14,32,13,31,13,30,0,29,0,28,0,27,0,26,0,25,0,24,0,23,0,22,0,21,0,20,0,19,0,18,0,17,0,16,0,15,0,14,0,13,0,12,0,11,0,10,0,9,0,8,0,7,0,6,0,5,0,4,0,3,0,2,0,1,0,0];

      gicons["klientcentra"] = new GIcon(baseIcon,"/edee/content/sysutf/bgr/img/google-mapy/infocentra.png");
	  
      // A function to create the marker and set up the event window
      function createMarker(point,name,html,url,category) {
        var marker = new GMarker(point,gicons[category]);
        // === Store the category and name info as a marker properties ===
        marker.mycategory = category;                                 
        marker.myname = name;
		marker.myurl = url;

		GEvent.addListener(marker, 'click', function(){ 
//			map.setCenter(point, 13);
			marker.openExtInfoWindow(map,
                                                 "simple_example_window",
                                                 html,
                                                 {beakOffset: 3}
                                             );
               		});		
        gmarkers.push(marker);
        return marker;

                GEvent.addListener(map, 'extinfowindowclose', function(){             
                        GLog.write("extinfowindowclose found"); });


      }	  
	
      var map = new GMap2(document.getElementById('map'));
      document.getElementById("map").style.backgroundImage = "url(/edee/content/sysutf/bgr/img/google-mapy/loader_white_big_1.gif)";
      map.addControl(new GLargeMapControl3D());
	  
      /* Inicializace a nastaveni zakl. parametru mapy */
      map.addMapType(G_PHYSICAL_MAP);
      var hierarchy = new GHierarchicalMapTypeControl();
      hierarchy.addRelationship(G_SATELLITE_MAP, G_HYBRID_MAP, null, true);
      map.addControl(hierarchy); 

      map.setCenter(new GLatLng(42.700883, 23.97000), 8);
      map.addControl(new GOverviewMapControl());
      map.addControl(new GScaleControl());
	  
	  /* *********************** */ 
	  	  	  
      // Read the data

        process_it = function(doc) {

        var jsonData = eval('(' + doc + ')');
          
        for (var i = 0; i < jsonData.markers.length; i++) {
          var point = new GLatLng(jsonData.markers[i].lat, jsonData.markers[i].lng);
          var address = jsonData.markers[i].address;
          var name = jsonData.markers[i].name;
          var info = jsonData.markers[i].info;
	  var url = jsonData.markers[i].url;

	  var openPo = jsonData.markers[i].openPo;
	  var endPo = jsonData.markers[i].endPo;
	  var openUt = jsonData.markers[i].openUt;
	  var endUt = jsonData.markers[i].endUt;
	  var openSt = jsonData.markers[i].openSt;
	  var endSt = jsonData.markers[i].endSt;
	  var openCt = jsonData.markers[i].openCt;
	  var endCt = jsonData.markers[i].endCt;
	  var openPa = jsonData.markers[i].openPa;
	  var endPa = jsonData.markers[i].endPa;
	  var openSo = jsonData.markers[i].openSo;
	  var endSo = jsonData.markers[i].endSo;
	  var openNe = jsonData.markers[i].openNe;
	  var endNe = jsonData.markers[i].endNe;
	  var category = jsonData.markers[i].category;


              var html = "<div class='close'><a onclick='map.closeExtInfoWindow();' href='javascript:;'><span>X<\/span><\/a><\/div><div class='moreinfo'><h3>"+name+"<\/h3><p>"+address+"</p>"+ ((openPo!= 'null' && openPo!='')? "<table class='no-border'><tr><th>По<\/th><td>"+openPo+" - "+endPo+"<\/td><\/tr><tr><th>Вт<\/th><td>"+openUt+" - "+endUt+"<\/td><\/tr><tr><th>Ср<\/th><td>"+openSt+" - "+endSt+"<\/td><\/tr><tr><th>Че<\/th><td>"+openCt+" - "+endCt+"<\/td><\/tr><tr><th>Пе<\/th><td>"+openPa+" - "+endPa+"<\/td><\/tr><\/table>":"")+""+ ((info!= 'null' && info!='')? "<p>"+info+"<br /><\/p>":"")+""+ ((url!= 'null' && url!='')? "<p><a href='/edee/content/pubutf/bgr"+url+"'>Повече информация<\/a><\/p>":"")+"<\/div><div class='zoom'><a class='zoomIn' href='javascript:zoomIn();'>Zoom in<\/a><span class='oddelovac'>|<\/span><a class='zoomOut' href='javascript:zoomOut();'>Zoom out<\/a><span class='oddelovac'>|<\/span><a class='center' href='javascript:map.setCenter(new GLatLng(42.700883, 23.97000), 8);javascript:map.closeExtInfoWindow();'>Default<\/a><\/div>";

//      map.setCenter(new GLatLng(43.333883, 23.78583), 8);
//      map.setCenter(new GLatLng(42.733883, 25.48583), 7);
      			

          var category = jsonData.markers[i].category;
          var marker = createMarker(point,name,html,url,category);  /* tvorba jednotlivych markeru (bodu) na mape */
          map.addOverlay(marker);
        }       
        show("klientcentra");
      }	  
        GDownloadUrl("/edee/content/sysutf/bgr/js/projects-data.json", process_it);
     
}
    else {
      alert("За съжаление, Google Maps API не са съвместими с този браузър.");
    }	  
	
	
    var orangeIcon = new GIcon();
    orangeIcon.image = "/edee/content/sysutf/bgr/img/google-mapy/vyhledavani-orange.png";
    orangeIcon.iconSize = new GSize(34, 37);
    orangeIcon.shadow = "/edee/content/sysutf/bgr/img/google-mapy/shadow-orange.png";       
    orangeIcon.shadowSize = new GSize(37, 37);
    orangeIcon.iconAnchor = new GPoint(13, 37); 	  
    orangeIcon.infoWindowAnchor = new GPoint(30, 40);	

   var geocoder;
   geocoder = new GClientGeocoder();

   function searchLocations() {
     var address = document.getElementById('addressInput').value;
     geocoder.getLatLng(address, function(latlng) {
       if (!latlng) {
         alert('Adresa ' + address + ' nebyla nalezena');
       } else {
         searchLocationsNear(latlng);

         showSidebar();
         map.closeExtInfoWindow();

         vyhledavani = jQuery('input[name=address]').val();
		  if( ! /, България$/.test(vyhledavani) ) {
			jQuery("input[name=address]").val( vyhledavani + ", България" )
		  }

	 }
     });
   }

   function searchLocationsNear(center) {
     var radius = document.getElementById('radiusSelect').value;
     var category = 'klientcentra';
     var searchUrl = '/edee/content/sysutf/bsh/cez/search_gen.html?center_lat=' + center.lat() + '&center_lng=' + center.lng() + '&radius=' + radius + '&category=' + category;
     GDownloadUrl(searchUrl, function(data) {
       var xml = GXml.parse(data);
       var markers = xml.documentElement.getElementsByTagName('marker');
       map.clearOverlays();
         hide("klientcentra");
	 jQuery("#klientcentrabox").removeAttr("checked");

       var sidebar = document.getElementById('sidebar');
       sidebar.innerHTML = '';
       if (markers.length == 0) {
         sidebar.innerHTML = '<p>Не са намерени резултати.</p>';
//         map.setCenter(new GLatLng(42.733883, 25.48583), 7);
//         map.setCenter(new GLatLng(43.333883, 23.78583), 8);
           map.setCenter(new GLatLng(42.700883, 23.97000), 8);
         return;
       }
       jQuery('div#closeSidebar').css('display','block');

       var bounds = new GLatLngBounds();
       for (var i = 0; i < markers.length; i++) {
         var name = markers[i].getAttribute('name');
         var address = markers[i].getAttribute('address');
         var url = markers[i].getAttribute('urlmarker');
         var info = markers[i].getAttribute('infomarker');

         var openPo = markers[i].getAttribute('openpo');
	 var endPo = markers[i].getAttribute('endpo');
	 var openUt = markers[i].getAttribute('openut');
	 var endUt = markers[i].getAttribute('endut');
	 var openSt = markers[i].getAttribute('openst');
	 var endSt = markers[i].getAttribute('endst');
	 var openCt = markers[i].getAttribute('openct');
	 var endCt = markers[i].getAttribute('endct');
	 var openPa = markers[i].getAttribute('openpa');
	 var endPa = markers[i].getAttribute('endpa');
	 var openSo = markers[i].getAttribute('openso');
	 var endSo = markers[i].getAttribute('endso');
	 var openNe = markers[i].getAttribute('openne');
	 var endNe = markers[i].getAttribute('endne');

	 var category = markers[i].getAttribute('category');

         var distance = parseFloat(markers[i].getAttribute('distance'));
         var markerOptions = { icon:orangeIcon };
         var point = new GLatLng(parseFloat(markers[i].getAttribute('lat')),
                                 parseFloat(markers[i].getAttribute('lng')));

         var marker = new GMarker(point, markerOptions);
         map.addOverlay(marker);

         var sidebarEntry = createSidebarEntry(marker, name, address, url, info, openPo, endPo, openUt, endUt, openSt, endSt, openCt, endCt, openPa, endPa, openSo, endSo, openNe, endNe, distance);
         sidebar.appendChild(sidebarEntry);
         bounds.extend(point);
       }
       map.setCenter(bounds.getCenter(), map.getBoundsZoomLevel(bounds));

      GEvent.addDomListener(marker, 'click', function(){ 
 

              var html = "<div class='close'><a onclick='map.closeExtInfoWindow();' href='javascript:;'><span>X<\/span><\/a><\/div><div class='moreinfo'><h3>"+name+"<\/h3><p>"+address+"</p>"+ ((openPo!= 'null' && openPo!='')? "<table class='no-border'><tr><th>По<\/th><td>"+openPo+" - "+endPo+"<\/td><\/tr><tr><th>Вт<\/th><td>"+openUt+" - "+endUt+"<\/td><\/tr><tr><th>Ср<\/th><td>"+openSt+" - "+endSt+"<\/td><\/tr><tr><th>Че<\/th><td>"+openCt+" - "+endCt+"<\/td><\/tr><tr><th>Пе<\/th><td>"+openPa+" - "+endPa+"<\/td><\/tr><\/table>":"")+""+ ((info!= 'null' && info!='')? "<p>"+info+"<br /><\/p>":"")+""+ ((url!= 'null' && url!='')? "<p><a href='/edee/content/pubutf/bgr"+url+"'>Повече информация<\/a><\/p>":"")+"<\/div><div class='zoom'><div id='zobacek'><\/div><a class='zoomIn' href='javascript:zoomInSearch();'>Zoom in<\/a><span class='oddelovac'>|<\/span><a class='zoomOut' href='javascript:zoomOutSearch();'>Zoom out<\/a><span class='oddelovac'>|<\/span><a class='center' href='javascript:map.setCenter(new GLatLng(42.700883, 23.97000), 8);javascript:map.closeExtInfoWindow();'>Default<\/a><\/div>";

              marker.openExtInfoWindow(map,
                                      "simple_example_window_search",
                                      html,
                                      {beakOffset: 3}
                                      );
      });

     });
   }  

	
      // == shows all markers of a particular category, and ensures the checkbox is checked ==
      function show(category) {
        for (var i=0; i<gmarkers.length; i++) {
          if (gmarkers[i].mycategory == category) {
            map.addOverlay(gmarkers[i]);
            gmarkers[i].show();
          }
        }
        // == check the checkbox ==
        document.getElementById(category+"box").checked = true;
      }

      // == hides all markers of a particular category, and ensures the checkbox is cleared ==
      function hide(category) {
        for (var i=0; i<gmarkers.length; i++) {
          if (gmarkers[i].mycategory == category) {
            gmarkers[i].hide();
          }
        }
        // == clear the checkbox ==
        document.getElementById(category+"box").checked = false;
        // == close the info window, in case its open on a marker that we just hid
        map.closeInfoWindow();
      }	  

      // == a checkbox has been clicked ==
      function boxclick(box,category) {
        if (box.checked) {
          show(category);
        } else {
          hide(category);
        }
      }	

    function createSidebarEntry(marker, name, address, url, info, openPo, endPo, openUt, endUt, openSt, endSt, openCt, endCt, openPa, endPa, openSo, endSo, openNe, endNe, distance) {
      var div = document.createElement('div');
      var html = '<h3 style="display: inline;">' + name + '</h3>&nbsp;(' + distance.toFixed(1) + '&nbsp;km)&nbsp;' + address;
      div.innerHTML = html;
      div.style.cursor = 'pointer';
      div.style.marginTop = '10px'; 
	  div.style.marginBottom = '5px'; 
	  div.style.display = 'block'; 
	  div.style.float = 'left'; 
//	  div.style.width = '175px'; 
      GEvent.addDomListener(div, 'click', function() {
        GEvent.trigger(marker, 'click');
      });

      GEvent.addDomListener(marker, 'click', function(){ 
 
              var html = "<div class='close'><a onclick='map.closeExtInfoWindow();' href='javascript:;'><span>X<\/span><\/a><\/div><div class='moreinfo'><h3>"+name+"<\/h3><p>"+address+"</p>"+ ((openPo!= 'null' && openPo!='')? "<table class='no-border'><tr><th>По<\/th><td>"+openPo+" - "+endPo+"<\/td><\/tr><tr><th>Вт<\/th><td>"+openUt+" - "+endUt+"<\/td><\/tr><tr><th>Ср<\/th><td>"+openSt+" - "+endSt+"<\/td><\/tr><tr><th>Че<\/th><td>"+openCt+" - "+endCt+"<\/td><\/tr><tr><th>Пе<\/th><td>"+openPa+" - "+endPa+"<\/td><\/tr><\/table>":"")+""+ ((info!= 'null' && info!='')? "<p>"+info+"<br /><\/p>":"")+""+ ((url!= 'null' && url!='')? "<p><a href='/edee/content/pubutf/bgr"+url+"'>Повече информация<\/a><\/p>":"")+"<\/div><div class='zoom'><div id='zobacek'><\/div><a class='zoomIn' href='javascript:zoomInSearch();'>Zoom in<\/a><span class='oddelovac'>|<\/span><a class='zoomOut' href='javascript:zoomOutSearch();'>Zoom out<\/a><span class='oddelovac'>|<\/span><a class='center' href='javascript:map.setCenter(new GLatLng(42.700883, 23.97000), 8);javascript:map.closeExtInfoWindow();'>Default<\/a><\/div>";

//              var html = "<div class='close'><a onclick='map.closeExtInfoWindow();' href='javascript:;'><span>X<\/span><\/a><\/div><div class='moreinfo'><h3>"+name+"<\/h3><p>"+address+"</p>"+ ((openPo!= 'null' && openPo!='')? "<table class='no-border'><tr><th>По<\/th><td>"+openPo+" - "+endPo+"<\/td><\/tr><tr><th>Вт<\/th><td>"+openUt+" - "+endUt+"<\/td><\/tr><tr><th>Ср<\/th><td>"+openSt+" - "+endSt+"<\/td><\/tr><tr><th>Че<\/th><td>"+openCt+" - "+endCt+"<\/td><\/tr><tr><th>Пе<\/th><td>"+openPa+" - "+endPa+"<\/td><\/tr><\/table>":"")+""+ ((info!= 'null' && info!='')? "<p>"+info+"<br /><\/p>":"")+"<\/div><div class='zoom'><div id='zobacek'><\/div><a class='zoomIn' href='javascript:zoomInSearch();'>Zoom in<\/a><span class='oddelovac'>|<\/span><a class='zoomOut' href='javascript:zoomOutSearch();'>Zoom out<\/a><span class='oddelovac'>|<\/span><a class='center' href='javascript:map.setCenter(new GLatLng(42.700883, 23.97000), 8);javascript:map.closeExtInfoWindow();'>Default<\/a><\/div>";

              marker.openExtInfoWindow(map,
                                      "simple_example_window_search",
                                      html,
                                      {beakOffset: 3}
                                      );
      });	

      GEvent.addDomListener(div, 'mouseover', function() {
        div.style.backgroundColor = '#fff';
      });
      GEvent.addDomListener(div, 'mouseout', function() {
        div.style.backgroundColor = '#F5F5F5';
      });
      return div;


    }

	



	
/* *********** Fce z info okna *********** */	
            
      function zoomIn() {	            /* funkce pro zoomovani a defaultni zobrazeni */
        map.setCenter();
        map.zoomIn();
          jQuery("div[id='simple_example_window_contents']").css("margin-top","2px");
          jQuery("div[id='simple_example_window_contents']").css("*margin-top","2px");
      }
      function zoomOut() {
        map.setCenter();
        map.zoomOut();
          jQuery("div[id='simple_example_window_contents']").css("margin-top","2px");
          jQuery("div[id='simple_example_window_contents']").css("*margin-top","2px");
      }

      function zoomInSearch() {	            /* funkce pro zoomovani a defaultni zobrazeni */
        map.setCenter();
        map.zoomIn();
          jQuery("div[id='simple_example_window_search_contents']").css("margin-top","-2px");
      }
      function zoomOutSearch() {
        map.setCenter();
        map.zoomOut();
           jQuery("div[id='simple_example_window_search_contents']").css("margin-top","-2px");
      }
