﻿   
 
   
    var map;
    var mgr;
    var icons = {};
    var allmarkers = [];
     var lsc=null;
     
     
     var slider;

    function load() {
      if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById("map"));
        slider=document.getElementById("sidebar");
        if(largemap)  map.addControl(new GLargeMapControl());
        if(overview)  map.addControl(new GOverviewMapControl());
        if(scale)  map.addControl(new GScaleControl());
        // map.setMapType(G_SATELLITE_MAP);
         if(maptype) map.addControl(new GMapTypeControl());
        if(search)
        {
        lsc = new google.maps.LocalSearch({suppressZoomToBounds : true});
        map.addControl(lsc);
        }
        map.setCenter(new GLatLng(startlat, startlng), startlevel);
        map.enableDoubleClickZoom();
        mgr = new MarkerManager(map, {trackMarkers:true});
        window.setTimeout(setupOfficeMarkers, 0);
      }
    }

    function getIcon(image) {
      var icon = null;
      //alert(image);
      if (image) {
        if (icons[image]) {
          icon = icons[image];
        } else {
          
          icon = new GIcon(G_DEFAULT_ICON);
          //alert(iconData["2"]);
          iconurl=iconData[image][0];
          //alert(iconurl);
          if (iconurl!="")
            {
                icon.image =iconurl;
                icon.shadow=iconurl;
                var size = iconData[image][1];
                icon.iconSize = new GSize(size.width, size.height);
                icon.shadowSize = new GSize(size.width, size.height);
                icons[image] = icon;
             }
             else
             {
                 return getIcon1();
             }
         }
      }else
             {
                 return getIcon1();
             }
      return icon;
    }
    
    
    function getIcon1() {
     icon = new GIcon(G_DEFAULT_ICON);
     if(iconimage!="")
     {
     icon.image =iconimage;
     icon.shadow=iconimage;
     }
     if(iconwidth>0&&iconheight>0)
     {
     icon.iconSize = new GSize(iconwidth, iconheight);
     icon.shadowSize = new GSize(iconwidth, iconheight);
     }
     //icon.image = "http://www.zldnn.com/images/edit.gif";
     //icon.iconSize = new GSize(20, 20);
     //icon.shadow= "http://www.zldnn.com/images/edit.gif";
     //icon.shadowSize = new GSize(20, 20);
     return icon;
    }

    function setupOfficeMarkers() {
      allmarkers.length = 0;
      for (var i in officeLayer) {
        var layer = officeLayer[i];
        var markers = [];
        for (var j in layer["places"]) {
          var place = layer["places"][j];
          var icon = getIcon(place["icon"]);
                  
          var title = place["name"];
          var desc = place["desc"];
          var posn = new GLatLng(place["posn"][0], place["posn"][1]);
          var marker = createMarker(posn,title,desc,icon); 
          markers.push(marker);
         
          allmarkers.push(marker);
         
        }
        mgr.addMarkers(markers, layer["zoom"][0], layer["zoom"][1]);
      }
      mgr.refresh();
      addtosidebar();
    }
  
    function createMarker(posn, title,desc, icon) {
      var marker = new GMarker(posn, {title: title, icon: icon, draggable:false });
	  GEvent.addListener(marker, "click", function() {   marker.openInfoWindowHtml(desc);  });  

      return marker;
    }

    function addtosidebar()
    {
      if (slider!=null)
          {
          for (var i in allmarkers)
          {
          var mk=allmarkers[i];
             var label = createElem("sidebar-entry", mk.getTitle(), "a");
             label.href = "#";
             label.style.display = "block";
             label.marker=mk;
             mk.label=label;
             label.onclick = function(){GEvent.trigger(this.marker,'click'); return false};//x-browser
             label.onfocus = function(){GEvent.trigger(this.marker,'click'); return false};
             slider.appendChild(label);
             GEvent.addListener(mk,'click',function(){this.label.focus(); return false});
           }
          }
    }
   function createElem(opt_className, opt_html, opt_tagName) {
  var tag = opt_tagName||"div";
  var elem = document.createElement(tag);
  if (opt_html) elem.innerHTML = opt_html;
  if (opt_className) elem.className = opt_className;
  return elem;
}