var gmarkers = [];
var gicons = [];
var map = null;
var infowindow = new google.maps.InfoWindow(
  { 
    size: new google.maps.Size(150,50)
  });
gicons["red"] = new google.maps.MarkerImage("./mapIcons/marker_red.png",
      new google.maps.Size(20, 34),
      new google.maps.Point(0,0),
      new google.maps.Point(9, 34));
  var iconImage = new google.maps.MarkerImage('./mapIcons/marker_red.png',
      new google.maps.Size(20, 34),
      new google.maps.Point(0,0),
      new google.maps.Point(9, 34));
  var iconShadow = new google.maps.MarkerImage('./mapIcons/shadow50.png',
      new google.maps.Size(37, 34),
      new google.maps.Point(0,0),
      new google.maps.Point(9, 34));
  var iconShape = {
      coord: [9,0,6,1,4,2,2,4,0,8,0,12,1,14,2,16,5,19,7,23,8,26,9,30,9,34,11,34,11,30,12,26,13,24,14,21,16,18,18,16,20,12,20,8,18,4,16,2,15,1,13,0],
      type: 'poly'
  };
function getMarkerImage(iconColor) {
   if ((typeof(iconColor)=="undefined") || (iconColor==null)) { 
      iconColor = "red"; 
   }
   if (!gicons[iconColor]) {
      gicons[iconColor] = new google.maps.MarkerImage("./mapIcons/marker_"+ iconColor +".png",
      new google.maps.Size(20, 34),
      new google.maps.Point(0,0),
      new google.maps.Point(9, 34));
   } 
   return gicons[iconColor];
}
function category2color(category) {
   var color = "red";
   switch(category) {
     case "restaurantes": color = "blue";
                break;
     case "tapas":    color = "green";
                break;
     case "cafeterias":    color = "red_pale";
                break;
     case "heladerias":    color = "yellow_pale";
                break;
     case "freidurias":    color = "orange_pale";
                break;
     case "copas":    color = "purple";
                break;
     default:   color = "brown";
                break;
   }
   return color;
}
      gicons["restaurantes"] = getMarkerImage(category2color("restaurantes"));
      gicons["tapas"] = getMarkerImage(category2color("tapas"));
      gicons["copas"] = getMarkerImage(category2color("copas"));
      gicons["heladerias"] = getMarkerImage(category2color("heladerias"));
      gicons["freidurias"] = getMarkerImage(category2color("freidurias"));
      gicons["cafeterias"] = getMarkerImage(category2color("cafeterias"));
function createMarker(latlng,name,html,category) {
    var contentString = html;
    var marker = new google.maps.Marker({
        position: latlng,
        icon: gicons[category],
        shadow: iconShadow,
        map: map,
        title: name,
        zIndex: Math.round(latlng.lat()*-100000)<<5
        });
        marker.mycategory = category;                                 
        marker.myname = name;
        gmarkers.push(marker);
    google.maps.event.addListener(marker, 'mouseover', function() {
        infowindow.setContent(contentString); 
        infowindow.open(map,marker);
        });
    google.maps.event.addListener(marker, 'mouseout', function() {
        infowindow.close();
        });
    google.maps.event.addListener(marker, 'click', function() {
		 switch(marker.myname) {
		   case "Gotinga": window.open("http://www.porcadiz.com/gotinga.html");
					  break;
		   case "Gelati Famosi":    window.open("http://www.porcadiz.com/gelatifamosi.html");
					  break;
		   case "Freiduría Veedor":    window.open("http://www.porcadiz.com/freiduriaelveedor.html");
					  break;
		   case "Mesón Criollo":    window.open("http://www.porcadiz.com/mesoncriollo.html");
					  break;
		   case "Gente de Cadiz":    window.open("http://www.porcadiz.com/gentedecadiz.html");
					  break;
		   case "Mesón de las Americas":    window.open("http://www.porcadiz.com/mesondelasamericas.html");
					  break;
		   default:   color = "brown";
					  break;
		 }
        });
}
      function show(category) {
        for (var i=0; i<gmarkers.length; i++) {
          if (gmarkers[i].mycategory == category) {
            gmarkers[i].setVisible(true);
          }
        }
        document.getElementById(category+"box").checked = true;
      }
      function hide(category) {
        for (var i=0; i<gmarkers.length; i++) {
          if (gmarkers[i].mycategory == category) {
            gmarkers[i].setVisible(false);
          }
        }
        infowindow.close();
      }
      function boxclick(box,category) {
        for (var i=0; i<gmarkers.length; i++)
		{
          if (gmarkers[i].mycategory == category)
            if(gmarkers[i].visible == true)
			{
			  gmarkers[i].setVisible(false);
			  infowindow.close();
			}
			else
			  gmarkers[i].setVisible(true);
		  if (gmarkers[i].mycategory != category)
            if(gmarkers[i].visible == true)
			{
			  gmarkers[i].setVisible(false);
			  infowindow.close();
			}
		}
      }
  function initialize() {
    var myOptions = {
      zoom: 15,
      center: new google.maps.LatLng(36.531796,-6.298642),
      mapTypeControl: true,
      mapTypeControlOptions: {style: google.maps.MapTypeControlStyle.DROPDOWN_MENU, position: google.maps.ControlPosition.TOP_RIGHT},
      navigationControl: true,
      navigationControlOptions: {style: google.maps.NavigationControlStyle.SMALL, position: google.maps.ControlPosition.TOP_RIGHT},
      mapTypeId: google.maps.MapTypeId.ROADMAP 
    }
    map = new google.maps.Map(document.getElementById("map"), myOptions);
    google.maps.event.addListener(map, 'click', function() {
        infowindow.close();
        });
      downloadUrl("./js/list.xml", function(doc) {
  var xml = xmlParse(doc);
  var markers = xml.documentElement.getElementsByTagName("marker");
        for (var i = 0; i < markers.length; i++) {
          var lat = parseFloat(markers[i].getAttribute("lat"));
          var lng = parseFloat(markers[i].getAttribute("lng"));
          var point = new google.maps.LatLng(lng,lat);
          var address = markers[i].getAttribute("address");
          var name = markers[i].getAttribute("name");
          var tlf = markers[i].getAttribute("tlf");
          var html = "<h3><b>"+name+"<\/b><\/h3><p>"+address+"<br>"+tlf+"</p><p><b>Pulse sobre Globo para ver más información</b></p>";
          var category = markers[i].getAttribute("category");
          var marker = createMarker(point,name,html,category);
        }
        hide("restaurantes");
        hide("tapas");
        hide("copas");
        hide("heladerias");
        hide("freidurias");
        hide("cafeterias");
      });
    }

