﻿
var glMark = new Array();
var htmls = new Array();
var map;
var custIcon = new Array();
function loadGoogle(cntryID,deactivateMouseScrolling) { 
      if (GBrowserIsCompatible()) { 
        map = new GMap2(document.getElementById("map")); 
        map.addControl(new GMapTypeControl()); 
        map.addControl(new GScaleControl()); 
        map.addMapType(G_PHYSICAL_MAP); 
        map.enableDoubleClickZoom();
        map.enableScrollWheelZoom();
        
        if(deactivateMouseScrolling != undefined)
        {
            if(deactivateMouseScrolling)
            {
                map.disableScrollWheelZoom();
            }
        }
        
        var mw = "100%";
        var mh = "600px";
        try {
            mh = document.getElementById('map').style.height;
            mw = document.getElementById('map').style.width;
            if ((mw.indexOf("%") < 0 && mw.replace("px","") < 350) || mh.indexOf("%") < 0 && mh.replace("px","") < 350) {
                map.addControl(new GOverviewMapControl(new GSize(80,80))); 
                map.addControl(new GSmallMapControl()); 
            } else {
                map.addControl(new GLargeMapControl()); 
                map.addControl(new GOverviewMapControl(new GSize(150,150))); 
            }
        } catch(e) {}
        map.setCenter(new GLatLng(glStartLat, glStartLon), glStartZoomLevel, G_PHYSICAL_MAP); 
        
        //var overview = document.getElementById("map_overview"); 
        //document.getElementById("map").appendChild(overview); 
        
        //Custom Icons 
        custIcon[0] = new GIcon(); 
        custIcon[0].image = "images/googleEnd.png"; 
        custIcon[0].shadow = "http://www.google.com/mapfiles/shadow50.png"; 
        custIcon[0].iconSize = new GSize(21, 31); 
        custIcon[0].shadowSize = new GSize(52, 29); 
        custIcon[0].iconAnchor = new GPoint(9, 34); 
        custIcon[0].infoWindowAnchor = new GPoint(9, 2); 
        custIcon[0].infoShadowAnchor = new GPoint(18, 25); 
        custIcon[0].transparent = "http://www.google.com/intl/en_ALL/mapfiles/markerTransparent.png"; 
        custIcon[0].printImage = "images/googleEnd.png"; 
        custIcon[0].mozPrintImage = "images/googleEnd.png";  
        
        custIcon[1] = new GIcon(); 
        custIcon[1].image = "images/googleBlau.png"; 
        custIcon[1].shadow = "http://www.google.com/mapfiles/shadow50.png"; 
        custIcon[1].iconSize = new GSize(21, 31); 
        custIcon[1].shadowSize = new GSize(52, 29); 
        custIcon[1].iconAnchor = new GPoint(9, 34); 
        custIcon[1].infoWindowAnchor = new GPoint(9, 2); 
        custIcon[1].infoShadowAnchor = new GPoint(18, 25); 
        custIcon[1].transparent = "http://www.google.com/intl/en_ALL/mapfiles/markerTransparent.png"; 
        custIcon[1].printImage = "images/googleBlau.png"; 
        custIcon[1].mozPrintImage = "images/googleBlau.png";  
        
        writePoints(cntryID);      
      }      
    } 

 // This function picks up the click and opens the corresponding info window 
      function myclick(i) { 
        if (gmarkers[i]) gmarkers[i].openInfoWindowHtml(htmls[i]); 
      } 
      
        function writePoints(cntryID) { 
              
              var bounds = new GLatLngBounds(); 
              var request = GXmlHttp.create(); 
              var detailSite = "";
                
              if(noDetailSite!=undefined)
              {
                  if(noDetailSite=="true")
                  {
                    detailSite="&nodetailsite=1";
                  }
              } 
               
              var sMapUrl = "module/companies/googlemapsxml.aspx?menueid="+iMenueId+"&aid="+iAktionId+"&lng="+sLng+"&abFirma="+iComId+detailSite;
              if(cntryID != undefined) sMapUrl += "&cntryID=" + cntryID;

              request.open("GET", sMapUrl, true); 
              request.onreadystatechange = function() { 
                if (request.readyState == 4) { 
                
                  var xmlDoc = request.responseXML; 
                                    
                  // obtain the array of markers and loop through it 
                  
                  var markers = xmlDoc.documentElement.getElementsByTagName("marker"); 
                  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 mid = parseFloat(markers[i].getAttribute("id")); 
                    var point = new GLatLng(lat,lng); 
                    
                    htmls[mid] = markers[i].getAttribute("html"); 
                    var label = "";
                    
                    var icon = "0";
                    try {
                        icon = markers[i].getAttribute("icon"); 
                    } catch (e) {
                        icon = "0";               
                    }
                    
                    // create the marker 
                    var sIcon = null;
                    if (icon != "0") {
                        sIcon = custIcon[1];                        
                        sIcon.image = icon;
                        sIcon.printImage = icon;
                        sIcon.mozPrintImage = icon;
                    } else {
                        sIcon = custIcon[parseFloat(icon)];
                    }
                    glMark[mid] = createMarker(point,label,htmls[mid],sIcon); 
                    map.addOverlay(glMark[mid]); 
                    bounds.extend(point); 
                  } 
                  
                } 
              } 
              request.send(null); 
            } 

 function createMarker(point,name,html,icontype) {
        var marker = new GMarker(point,icontype);
        GEvent.addListener(marker, "click", function() {
          marker.openInfoWindowHtml(html);
          window.setTimeout(function() {
              map.panTo(point);
            }, 400);
        });
        // save the info we need to use later for the sidebar
        return marker;
   }


function setHover(id,name) {
	if (glMark[id]) {
	    
	    glMark[id].openInfoWindow(htmls[id]);
	    map.removeOverlay(glMark[id]); 
	    map.addOverlay(glMark[id]); 
	    window.setTimeout(function() { map.panTo(glMark[id].getPoint())}, 400);
	}
}








