/* ---------------------------------------------------- *
*    Initialize default google map with counties    *
* ---------------------------------------------------- */


//initialize map variable
var map;

//initialize google map with counties and set center and zoom level
function initialize() {
  if (GBrowserIsCompatible()) {
    map = new GMap2(document.getElementById("map_canvas"));
    //set center of the map and zoom level
    map.setCenter(new GLatLng(45.729044, 16.677246), 7);
    map.addControl(new GLargeMapControl());
    map.addControl(new GMapTypeControl());
    map.addMapType(G_NORMAL_MAP);
    map.setMapType(G_NORMAL_MAP);

    //enable mouse scroll zoom
    //map.enableScrollWheelZoom();

    //get markers for counties
    addMarkersFromXML();
    
  }
}

//get xml for the county markers
function addMarkersFromXML() {
  var batch = [];
  mgr = new MarkerManager(map);
  var request = GXmlHttp.create();

  var url = window.location.pathname;
  url = url.substring(1);
  url = url.split("/");

  if (url[url.length - 2] == 'saloni') {
    //get xml for markers for skoda saloons
    if (url[0] == "skoda") {
      request.open('GET', '/naslovna/SkodaCarSaloonsXML', true);
    } else if (url[0] == "audi") {
      request.open('GET', '/naslovna/AudiCarSaloonsXML', true);
    } else if (url[0] == "seat") {
      request.open('GET', '/naslovna/SeatCarSaloonsXML', true);
    } else if (url[0] == 'vw') {
      if (url[1] == 'osobna-vozila') {
        request.open('GET', '/naslovna/VWCarSaloonsXML', true);
      }
      else {
        request.open('GET', '/naslovna/VWCommercialCarSaloonsXML', true);
      }
    } else {
      request.open('GET', '/naslovna/AllCarSaloonsXML', true);
    }
  } else if (url[url.length - 2] == "servisi") {
    if (url[0] == "skoda") {
      request.open('GET', '/naslovna/SkodaCarServicesXML', true);
    } else if (url[0] == "audi") {
      request.open('GET', '/naslovna/AudiCarServicesXML', true);
    } else if (url[0] == "seat") {
      request.open('GET', '/naslovna/SeatCarServicesXML', true);
    } else if (url[0] == 'vw') {
      if (url[1] == 'osobna-vozila') {
        request.open('GET', '/naslovna/VWCarServicesXML', true);
      }
      else {
        request.open('GET', '/naslovna/VWCommercialCarServicesXML', true);
      }
    } else {
      request.open('GET', '/naslovna/AllCarServicesXML', true);
    }
  }


  request.onreadystatechange = function () {
      if (request.readyState == 4 && request.status == 200) {
          //parse xml
          var xmlDoc = request.responseXML;
          $(xmlDoc).find("marker").each(function () {
              //get marker id and name
              var name = $(this).find('name').text();
              var id = $(this).find('id').text();

              // create a new LatLng point for the marker
              var lat = $(this).find('lat').text();
              var lng = $(this).find('lng').text();
              var point = new GLatLng(parseFloat(lng), parseFloat(lat));

              //set marker id and name
              var nodeId = id;
              var nodeName = name;
             
              //create markers
              var marker = createMarker(point, nodeId, nodeName);
              map.addOverlay(marker);
              
              //batch.push(marker);
          });
          //mgr.addMarkers(batch, 7);
          //mgr.refresh();
          //map.addOverlay(batch);
      }
  }
  request.send(null);
}

//create markers for counties
function createMarker(point, nodeId, nodeName) {

  var azIcon = new GIcon(G_DEFAULT_ICON);
  azIcon.image = "http://www.autozubak.hr/media/img/icons/AZpin.png";
  var marker = new GMarker(point, { title: nodeName, icon:azIcon });
  
  GEvent.addListener(marker, "click", function () {

  	//get info for selected node
  	var url = window.location.pathname;
  	url = url.split("/");
  	url = url[1]; 
    displayContent(nodeId, url);
    
  });  
  return marker;
}

//displays content for selected saloon or car service
function displayContent(event, url) {
  var path = event;
  
  ajaxInProgress = false;

  if (ajaxInProgress == true) {
    return;
  }

  ajaxInProgress = true;

  $.ajax({
      url: '/naslovna/SaloonOrServiceContentAJAX',
      data: {
          source: path,
		  currentUrl: url
      },
      type: 'GET',
      timeout: '5000',
      beforeSend: function () {
          ajaxInProgress = true;
      },

      complete: function () {
          ajaxInProgress = false;
      },

      success: function (data) {
          ajaxInProgress = false;
          $('.container').html(data);
          //window.history.pushState(null, path, window.location.pathname + "?id=" + path);
          $(window).scrollTop(0);
      },

      error: function (XMLHttpRequest, textStatus, errorThrown) {
          ajaxInProgress = false;
      }
  });
  
}
