﻿var map = null;
var hyundaiMarkers = null;

function initMap(centerLatitude, centerLongitude,zoomLevel){
        var mapDiv=document.getElementById('map_canvas');
        if (centerLatitude == null)
        {
            centerLatitude = 51.60437164681676;            
        }
        if (centerLongitude == null)
        {            
            centerLongitude = 5.44921875;
        }
        if(mapDiv){
            map = new GMap2(mapDiv);    
            map.setCenter(new GLatLng(centerLatitude, centerLongitude), zoomLevel);
            map.addControl(new GSmallMapControl());
            map.addControl(new GMapTypeControl());
            map.setMapType(G_NORMAL_MAP);
                        
            var icon = new GIcon();                        
            icon.image = '/UI/images/marker.png';
            icon.iconSize = new GSize(40, 23);
            icon.iconAnchor = new GPoint(0, 0);
            icon.infoWindowAnchor = new GPoint(25, 7);
            opts = { 
              'icon': icon,
              'clickable': true
            };
        }
}

function initialize(latitude,longitude) {
      var mapDiv=document.getElementById('map_canvas');
      if (GBrowserIsCompatible()) { 
      if(latitude != '' && longitude != '')
      {  
        initMap(latitude, longitude,13);
        //marker
        if(mapDiv){
            var point = new GLatLng(latitude, longitude);
            var marker = new GMarker(point, opts);  
            map.addOverlay(marker); 
         }
       }      
     }    
}

function addMarker(latitude, longitude, dealerId, dealerInfo, selectedDealer, shouldReact) {
     var mapDiv=document.getElementById('map_canvas'); 
     var markerToBeShown;
     if(mapDiv){
        var point = new GLatLng(latitude, longitude);
        var marker = null; 

        if (selectedDealer != null)
        {
            if (selectedDealer == dealerId)
            {
                var iconOnClick = new GIcon();
                iconOnClick.image = '/UI/images/markerOnClick.png';
                iconOnClick.iconSize = new GSize(40, 23);
                iconOnClick.iconAnchor = new GPoint(0, 0);
                iconOnClick.infoWindowAnchor = new GPoint(25, 7);
                
                optsOnClick = { 
                  'icon': iconOnClick,
                  'clickable': true
                };
                
                marker = new GMarker(point, optsOnClick);  
                markerToBeShown = marker;
            }
            else
            {
                marker = new GMarker(point, opts); 
            }
        }
        else
        {
            marker = new GMarker(point, opts); 
        }        
        
        if(marker != null){
            hyundaiMarkers.push(marker);
        }
        if (shouldReact) 
        {
            GEvent.addListener(marker, "click", function() {;
                $.cookies.del('selectedDealerKind');                        
                $.cookies.set('selectedDealerKind', 'delerMap');
                getSetCookiePairValue('RequestsInfo', 'Dealer', '&', '=', dealerId);
                for(j=0; j<  hyundaiMarkers.length; j++){
                    var tempmarker = hyundaiMarkers[j];
                    if(tempmarker != null)
                    {
                        tempmarker.setImage('/UI/images/marker.png');
                    }
                }   
                marker.setImage('/UI/images/markerOnClick.png');
                marker.openInfoWindowHtml(dealerInfo);
              });
        } 
        
        map.addOverlay(marker);
        if(markerToBeShown != null){
            markerToBeShown.openInfoWindowHtml(dealerInfo);
        }
     } 
}

function addDealerMarker(latitude, longitude, dealerId, dealerInfo, selectedDealer, shouldReact) {
     var mapDiv=document.getElementById('map_canvas'); 
    
     if(mapDiv){
        var point = new GLatLng(latitude, longitude);
        var marker = null;
    
        marker = new GMarker(point, opts); 
              
        if (shouldReact) 
        {
            GEvent.addListener(marker, "click", function() {               
                 for(j=0; j<  hyundaiMarkers.length; j++){
                    var tempmarker = hyundaiMarkers[j];
                    if(tempmarker != null)
                    {
                        tempmarker.setImage('/UI/images/marker.png');
                    }
                }   
                marker.setImage('/UI/images/markerOnClick.png');
                marker.openInfoWindowHtml(dealerInfo);
                
              });
        } 
        
        map.addOverlay(marker);        
     } 
}

function EndRequestHandler(sender, args) { 
   if (args.get_error() == undefined) {
        initMapAndSetMarkers(true);
        removeMainGradientDivs();
   }
   else
   {
       alert("There was an error" + args.get_error().message);
   }
}

function getOneDealerMap(latitude,longitude,dealerId)
{              
     var mapPanel = document.getElementById(document.getElementById('mapPanelIdHolder').value);
     mapPanel.style.display = 'block';
     initMap(latitude,longitude,13);
     var mapDiv=document.getElementById('map_canvas');
     if(mapDiv){
        addMarker(latitude, longitude, dealerId, null, null, false);
        removeMainGradientDivs();
     }
}

function initMapAndSetMarkers(shouldCenter)
{
   var mapDiv=document.getElementById('map_canvas');
    
   var _latitude = $("#" + hdnLatitude).attr("value");
   var _longitude = $("#" + hdnLongitude).attr("value");
   var _dealer = $("#" + hdnDealer).attr("value");
   var _dealerInfo = $("#" + hdnDealerInfo).attr("value");
  
   var _latitude_array = _latitude.split(';');
   var _longitude_array = _longitude.split(';');
   var _dealer_array = _dealer.split(';');
   var _dealer_info_array = unescape(_dealerInfo).split(';');
   var selectedDealer = getSetCookiePairValue('RequestsInfo', 'Dealer', '&', '=', null); 
   var centerLatitude = null; 
   var centerLongitude = null;

   hyundaiMarkers = new Array(_latitude_array.length);
   if (shouldCenter)
   {
       for(i=0;i<_latitude_array.length-1;i++) {               
            if (_dealer_array[i] == selectedDealer)
            {
               centerLatitude = _latitude_array[i]; 
               centerLongitude = _longitude_array[i];        
            }    
       }
       /* if still null then take the first dealer and center it*/
       if (centerLatitude == null && centerLongitude == null && (_latitude != ''))   
       {
            centerLatitude = _latitude_array[0]; 
            centerLongitude = _longitude_array[0];  
       }
   }
   else if (map != null)
   {
        var mapCenter = map.getCenter();
        centerLatitude = mapCenter.lat();
        centerLongitude = mapCenter.lng();
   }
   
   if (GBrowserIsCompatible()) {   

    initMap(centerLatitude, centerLongitude,7);
     if(mapDiv){
       var dealerInfo = '';
       for(i=0;i<_latitude_array.length-1;i++) {            
        if(_dealer_info_array.length > i){
           dealerInfoData = _dealer_info_array[i];
        }
        addMarker(_latitude_array[i], _longitude_array[i], _dealer_array[i], dealerInfoData, selectedDealer, true);
       }
     }
    }
}


function initMapAndSetDealerMarkers(shouldCenter)
{ 
   var mapDiv=document.getElementById('map_canvas');
   
   var _latitude = $("#" + hdnLatitude).attr("value");
   var _longitude = $("#" + hdnLongitude).attr("value");
   var _dealer = $("#" + hdnDealer).attr("value");
   var _dealerInfo = $("#" + hdnDealerInfo).attr("value");
  
   var _latitude_array = _latitude.split(';');
   var _longitude_array = _longitude.split(';');
   var _dealer_array = _dealer.split(';');
   var _dealer_info_array = unescape(_dealerInfo).split(';');
   
   var centerLatitude = null; 
   var centerLongitude = null;
   var selectedDealer = null;
   hyundaiMarkers = new Array(_latitude_array.length);
   if (shouldCenter)
   {
       /* take the first dealer and center it*/
       if (centerLatitude == null && centerLongitude == null && (_latitude != ''))   
       {
            centerLatitude = _latitude_array[0]; 
            centerLongitude = _longitude_array[0];  
       }
   }
   else if (map != null)
   {
        var mapCenter = map.getCenter();
        centerLatitude = mapCenter.lat();
        centerLongitude = mapCenter.lng();
   }
   
   if (GBrowserIsCompatible()) {   

    initMap(centerLatitude, centerLongitude,7);
     if(mapDiv){
       var dealerInfo = '';
       for(i=0;i<_latitude_array.length-1;i++) {            
        if(_dealer_info_array.length > i){
           dealerInfoData = _dealer_info_array[i];
        }
        addDealerMarker(_latitude_array[i], _longitude_array[i], _dealer_array[i], dealerInfoData, selectedDealer, true);
       }
     }
    }
}


