var area = [
  ['Modena, Italy',44.649449,10.899155,13,'<h4>Panini S.p.A.</h4><br />Viale Emilio Po 380<br />41126 Modena (Italy)'],
  ['St. Laurent du Var, France',43.701968,7.179725,11,'<h4>Panini France SA</h4><br />ZI secteur D<br />29 Allée des Géomètres<br />B.P. 62<br />06702 St Laurent du Var Cedex'],
  ['Torroella de Montgrì, Spain',42.03947,3.129182,10,'<h4>Panini España SA</h4><br />C/ Vallespí 20<br />E17257 Torroella de Montgrì<br />Girona'],
  ['Tunbridge Wells, United Kingdom',51.133014,0.253859,9,'<h4>Panini UK Ltd.</h4><br />Level 2<br />Brockbourne House<br />Mount Ephraim<br />Tunbridge Wells<br />Kent<br />TN4 8BS'],
  ['Wollerau, Switzerland',47.187602,8.706933,4,'<h4>Panini Suisse AG</h4><br />Sihleggstrasse 23<br />8832 Wollerau<br />Canton Schwyz'],
  ['Stuttgart, Germany', 48.772148,9.163772,12,'<h4>Panini Verlags GmbH</h4><br />Rotebühlstrasse 87<br />70178 Stuttgart'],
  ['Warsaw, Poland',52.201772,20.891055,2,'<h4>Panini S.P.A SA Przedstawicielstwo w Polsce</h4><br />ul. Warszawska 58c lok. 45<br />02-496 Warszawa'],
  ['Kozyatagi Kadikoy,Turkey',40.979718,29.092301,5,'<h4>Panini Medya Yayıncılık ve Ticaret A.Ş.</h4><br />Inonu Cad. Turaboglu Sok. No:4 Hamdiye Yazgan Is Merkezi<br />Kat:3 D:4<br />Kozyatagı- Kadikoy – İstanbul'],
  ['Irving TX, USA',32.82837,-97.030115,6,'<h4>Panini America, Inc.</h4><br />5325 FAA Blvd.<br />Suite 100<br />Irving, TX 75061'],
  ['Mexico City, Mexico',19.42487,-99.164899,7,'<h4>Panini Mexico SA</h4><br />Editorial Panini Mexico SA de CV<br />Amberes 4 Of.2001 Col Juarez<br />Del. Cuauhtemoc, C.P. 06600 Mexico, D.F.'],
  ['ñuñoa - Santiago, Chile',-33.450851,-70.625879,8,'<h4>Panini Chile</h4><br />Emilio Vaisse 744<br />Ñuñoa-Santiago'],
  ['Barueri - S. Paolo, Brazil',-23.499552,-46.827384,1,'<h4>Panini Brasil Ltda.</h4><br />Centro Empresarial Tamboré<br />Alameda Caiapós, 425<br />Barueri - SP - 06460-110'],
  ['Naarden, The Netherlands',52.307662,5.141218,14,'<h4>Panini Nederland B.V.</h4>Gooimeer 2-22<br />1411 DC NAARDEN<br />(The Netherlands)'],
  ['Moscow - Russian Federation',55.799683,37.607762,'<h4>LLC IZDATELSTVO PANINI RUS</h4><br />3, Polkovaya Street, bld. 4,<br />Moscow, 127018,<br />Russian Federation']
];

function setMarkers(map, locations,m) {
  var image = new google.maps.MarkerImage('/fileadmin/templates/paninigroup/img/point_map.png',
      new google.maps.Size(27, 26),
      new google.maps.Point(0,0),
      new google.maps.Point(0, 10));
  var shadow = new google.maps.MarkerImage('/fileadmin/templates/paninigroup/img/point_shadow.png',
      new google.maps.Size(27, 26),
      new google.maps.Point(0,0),
      new google.maps.Point(0,0));
  var shape = {
      coord: [1, 1, 1, 20,18, 20, 18 , 1],
      type: 'poly'
  };
  for (var i = 0; i < locations.length; i++) {
    var area = locations[i];
    var myLatLng = new google.maps.LatLng(area[1], area[2]);
    var marker = new google.maps.Marker({
        position: myLatLng,
        map: map,
        shadow: shadow,
        icon: image,
        shape: shape,
        title: area[0],
        zIndex: area[3]
    });
    m[i] = marker;
  }
}

var infobox = '';

$(document).ready(function(){
    var markers = [];
    var locID = $(document).getUrlParam("g");
    var directionsDisplay;
    var directionsService = new google.maps.DirectionsService();
    directionsDisplay = new google.maps.DirectionsRenderer();
    var latlng = new google.maps.LatLng(17.744502,-30.644538);
    var myOptions = {
      zoom: 2,
      center: latlng,
      disableDefaultUI: false,
      mapTypeId: google.maps.MapTypeId.HYBRID
    };
    var map = new google.maps.Map(document.getElementById("mappa"), myOptions);
    directionsDisplay.setMap(map);
    directionsDisplay.setPanel(document.getElementById("dirs"));
    setMarkers(map, area,markers);
    
    $(markers).each(function(i,marker){
        google.maps.event.addListener(marker, 'click', function(){
            map.setZoom(18);
            map.panTo(marker.position);
    	    infobox = new google.maps.InfoWindow;
    	    infobox.setContent(area[i][4]);
    	    infobox.open(map, marker);
            $('#to').val(marker.position);
            $('#dir-panel').slideDown("fast");
        });
    });
    
    $('#back').click(function(){
        map.setZoom(2);
        map.panTo(latlng);
        infobox.close();
        $("#dirs").empty();
        $('#dir-panel').slideUp("fast");
    });

    $('#go').click(function(){
        var start = $("#from").val();
        var end = $("#to").val();
        var request = {
            origin:start,
            destination:end,
            travelMode: google.maps.DirectionsTravelMode.DRIVING,
            unitSystem: google.maps.DirectionsUnitSystem.METRIC
        };
        directionsService.route(request, function(response, status) {
            if (status == google.maps.DirectionsStatus.OK) {
                directionsDisplay.setDirections(response);
            }
            else if (status == google.maps.DirectionsStatus.ZERO_RESULTS){
                directionsDisplay.setDirections(response);
            }
        });
    });
    if(locID != null){
        map.setZoom(18);
        map.panTo(markers[locID].position);
        $('#to').val(markers[locID].position);
        $('#dir-panel').slideDown("fast");
    }
});
