//<![CDATA[
 var xml_file;
 var map, actual;
 var info_fenster;
 var gmarkers = [];
 var arr_pcat = [];
 var arr_icon = [];
 var xpc_random =(1+Math.floor(Math.random()*14));

 ///////////////////////////////////////////////////////////
 var icons = [];
 

function fenster(){

var bounds = new GLatLngBounds();

var  latlng;

var ii = 0;
var nn = 0; // broj vidljivih markera

          for(var i= 0; i < gmarkers.length; i++) {
                  if (!gmarkers[i].isHidden()) {
                      latlng =  gmarkers[i].point;
                      bounds.extend(latlng);
                      ii = i;
                      nn = nn+1;
                     // alert(ii);
                  }
          }
                   if(nn > 1){
                       var zoom_bounds = map.getBoundsZoomLevel(bounds);
                       if(zoom_bounds > 12) {zoom_bounds = 12;}
                       map.setZoom(zoom_bounds);
                       map.setCenter(bounds.getCenter());
                    }

                   if(nn == 1){
                        latlng =  gmarkers[ii].point;
                        map.setZoom(12);
                        map.setCenter(latlng);
                    }

}


function addIcon(icon) { // Add icon attributes for all icons
 icon.shadow = "icons/shadow50.png";
 icon.iconSize = new GSize(28, 28);
 icon.shadowSize = new GSize(34, 31);
 icon.iconAnchor = new GPoint(7, 31);
 icon.infoWindowAnchor = new GPoint(19, 2);
 icon.infoShadowAnchor = new GPoint(18, 25);
}
//==============================
var hover = { // Hovering over the links
over: function(id) {
      // Set another background color for the link
      var hovered = document.getElementById(id);
      hovered.className = "focus";

      // Set another marker icon
      for(var i =0; i < gmarkers.length; i++) {
           if(gmarkers[i].id == id) {
               gmarkers[i].setImage("icons/white-dot.png");
           }
      }
 },

 out: function(id) {
  // Set the default link background
  var hovered = document.getElementById(id);
  hovered.className = "normal";

  // Set the default marker icon
  for(var i =0; i < gmarkers.length; i++) {
   if(gmarkers[i].id == id) {
       gmarkers[i].setImage(gmarkers[i].icon.image);
    }
  }
 }
};

var visible= { // Make a xpcat (un)visible
 show: function(xpcat) {
  // Show all markers of one xpcat

  for(var i= 0; i < gmarkers.length; i++) {
       if(gmarkers[i].xpcat == xpcat) {
          gmarkers[i].show();
       }
  }
   fenster();


   // Set the checkbox to true
   document.getElementById(xpcat).checked = true;
//   document.getElementById("img_info1").innerHTML = '';
   document.getElementById("f_profil1").innerHTML = '';
 },

 hide: function(xpcat) {
  // Hide all markers of one xpcat

  for(var i= 0; i < gmarkers.length; i++) {
   if(gmarkers[i].xpcat == xpcat) {
    gmarkers[i].hide();
   }
  }


  // Clear the checkbox of a hidden xpcat
  document.getElementById(xpcat).checked = false;
  map.closeInfoWindow();
//  document.getElementById("img_info1").innerHTML = '';
  document.getElementById("f_profil1").innerHTML = '';
    fenster();

 }
};



//===========================
// PRIKAZ TVRTKI TABELARICNO
//===========================
function makeSidebar() {
    var oldheader;
    var html = "";
    for(var i= 0; i < gmarkers.length; i++) {
        if(!gmarkers[i].isHidden()) {
            var header = gmarkers[i].xpcat;
            var ctheader = gmarkers[i].pcatname;

            header = header.replace(/^./, header.charAt(0).toUpperCase());
            if (oldheader != header) {
                html += "<br \/><b>"+ ctheader+"</b><br \/>";
            }
            html += '<a id="'+ gmarkers[i].id+'" href="javascript:Info('+i+')" onmouseover="hover.over(this.id)" onmouseout="hover.out(this.id)">&nbsp;&nbsp;' + gmarkers[i].firma + '<\/a><br \/>';
            oldheader = header;
        }
    }
    document.getElementById("sidebar").innerHTML = html;
}

function readXML2(wid,marker) {

    var generator = "xml_generator_2.php?wid="+wid;
    GDownloadUrl(generator, function(data) {
        /////////////////////////////////////////////////////////////////////////
        //  XML - za profil tvrtke i artikle
        ////////////////////////////////////////////////////////////////////////
        var xml = GXml.parse(data);
        var markers = xml.documentElement.getElementsByTagName("marker");
        for(var i = 0; i < markers.length; i++) {
             
            info_fenster = markers[i].getAttribute("info1");
            marker.openInfoWindowHtml(info_fenster);

            var f_profil1 = markers[i].getAttribute("f_profil1");
            document.getElementById("f_profil1").innerHTML = f_profil1;
        //  info_fenster ="";
      
        }
        makeSidebar();
    });
}

//============================================================
// Create the markers and set up the event window - ZA TVRTKE
//============================================================
function createMarker(point, firma, xpcat, id, wid, pcatname) {
    var marker = new GMarker(point, icons[xpcat] );

    // Store xpcat, name, id and icon as marker properties
    marker.xpcat = xpcat;
    marker.pcatname = pcatname;

    marker.firma = firma;
    marker.id = id;
    marker.icon = icons[xpcat];
    marker.point = point;

    GEvent.addListener(marker, "click", function() {
        //marker.openInfoWindowHtml(html_info1);
        ////====////====////====
          
        readXML2(wid,marker);
    //   alert(info_fenster);
          
            

    });
    // Hovering over the markers
    GEvent.addListener(marker, "mouseover", function() {
        marker.setImage("icons/white-dot.png");
        var hovered = document.getElementById(id);
        if(hovered) {
            hovered.className = "focus";
            actual = hovered; // Store this element
        }
    });

    GEvent.addListener(marker, "mouseout", function() {
        marker.setImage(icons[xpcat].image);
        if(actual) {
            actual.className= "normal";
        }
    });

    gmarkers.push(marker);
    //     aString = gmarkers.toSource();
    //     alert(aString);

    return marker;
}

//===========================
// PRIKAZ POD-KATEGORIJA
//===========================


 function makeSidebarPcat() {

  var html = "";
  for(var i= 0; i < arr_pcat.length; i++) {
     var header = arr_pcat[i];
     html +=  header ;
  }
  document.getElementById("sidebarpcat").innerHTML = html;
 }

 function deleteSidebarPcat() {
    arr_pcat=[];
    gmarkers =[];
    makeSidebarPcat();
 }



// XML1- samo za marker-e i info prozor
function readXML1() {
     var Index=document.getElementById("zupanijaid").selectedIndex;
     var zupanijaval =  document.getElementById("zupanijaid").options[Index].value;
       //  alert(zupanijaval);
     var generator = "xml_generator_1.php?zup="+zupanijaval;
     GDownloadUrl(generator, function(data) {
    /////////////////////////////////////////////////////////////////////////
    //  XML - POD-KATEGORIJE
    ////////////////////////////////////////////////////////////////////////
         var geo = GXml.parse(data);
         var mgeo = geo.documentElement.getElementsByTagName("config");
         var zup_lat = mgeo[0].getAttribute("zup_lat");
         var zup_lng = mgeo[0].getAttribute("zup_lng");
         var zup_pov = mgeo[0].getAttribute("zup_pov");
   if(!zup_lat) {
       zup_lat= "44.12604225281769";
       zup_lng= "15.25177001953125";
       zup_pov= "7";
   }

    map.setCenter(new GLatLng(zup_lat,zup_lng), parseInt(zup_pov,10) );

    var xmla = GXml.parse(data);
    var pcat1 = xmla.documentElement.getElementsByTagName("pcat");

    for(var n = 0; n < pcat1.length; n++) {
        var x_pcat = pcat1[n].getAttribute("xpcat");

        var pcatname    = pcat1[n].getAttribute("pcatname");
 
        var icon  = pcat1[n].getAttribute("icon");
        arr_icon[n] = new GIcon();
        arr_icon[n].image= icon;
        addIcon(arr_icon[n]);
        icons[x_pcat]= arr_icon[n];


//        var check_yes = "checked";
//        if (n==5) check_yes = "checked";


        // ispis podkategorija u sidebar
        img1 = '<img style="font-size:medium" src="'+icon+'" width="28" height="28" alt="" \/>';


         var check = "";
         var xpc_nr = x_pcat.substring(3);  // ostane broj
       
         if (xpc_nr==xpc_random || xpc_nr==xpc_random+1 ) check = "checked";

         htmla = img1+'<input type="checkbox"  '+check+'  id="'+x_pcat+'" onclick="boxclick(this,id)"  \/>&nbsp;'+pcatname+'<br>';

        arr_pcat[n]= htmla;
       
//        visible.hide(x_pcat); // Show or hide the categories initially


        makeSidebarPcat();


   }

   /////////////////////////////////////////////////////////////////////////
   //     XML - ADRESE-FIRME
   /////////////////////////////////////////////////////////////////////////
   var xml = GXml.parse(data);
   var markers = xml.documentElement.getElementsByTagName("marker");
   pcatname    = "";
   for(var i = 0; i < markers.length; i++) {
            // Obtain the attribues of each marker
            var lat = parseFloat(markers[i].getAttribute("lat"));
            var lng = parseFloat(markers[i].getAttribute("lng"));

            var point = new GLatLng(lat,lng);
         //   var html_info1 = markers[i].getAttribute("info1");
            var wid = markers[i].getAttribute("wid");
            var id = markers[i].getAttribute("nr");
            var firma = markers[i].getAttribute("firma");
            var xpcat   = markers[i].getAttribute("xpcat");
            pcatname    = markers[i].getAttribute("pcatname");
            // Create the markers
            map.addOverlay(createMarker(point, firma, xpcat, id, wid, pcatname));

            xpc_nr = xpcat.substring(3);
            if (xpc_nr==xpc_random || xpc_nr==xpc_random+1 ) visible.show(xpcat); else  visible.hide(xpcat);



       }
        makeSidebar();
   });
}


 function boxclick(box, xpcat) {

  // Hide or show the xpcat of the clicked checkbox
  if(box.checked) { visible.show(xpcat);}
  else { visible.hide(xpcat); }

 // Rebuild the sidebar
    makeSidebar();
 }

 // Trigger the clicks from the sidebar to open the appropriate infowindow
 function Info(i) {
     GEvent.trigger(gmarkers[i],"click");
 }


 // Create the map
 function load() {

  if(GBrowserIsCompatible()) {
   map = new GMap2(document.getElementById("map"));
   map.addControl(new GLargeMapControl());
   map.addControl(new GMapTypeControl());
//   map.setCenter(new GLatLng(46.3121373869285,16.335371551513672), 14);
    deleteSidebarPcat();

   readXML1();
  }
  else {
      alert("Sorry, the Google Maps API is not compatible with this browser");
  }
 }

//]]>

