function TextualMapTypeControl() {
}
TextualMapTypeControl.prototype = new GControl();

TextualMapTypeControl.prototype.initialize = function(map) {
        var that = this; this.map = map;
        var container = document.createElement("div");
        var conentedorBotones = document.createElement("div");
        conentedorBotones.id = 'conentedorBotones';
        container.appendChild(conentedorBotones);
        var mapTypes = map.getMapTypes();
        for (var  n = 0 ; n < mapTypes.length ; n++ ) {
                var label = mapTypes[n].getName();
                //this.createButton(this,n,label);
                var botonTipo = this.createButton(this,n,label);
                botonTipo.innerHTML+=" ";  // This line for f*****g IE, else it willnot render the control

                conentedorBotones.appendChild(botonTipo);
        }
        GEvent.addListener(map, "zoomend", function(){zoomIndicador(map)});
        GEvent.addListener(map, "maptypechanged", function(o,n) {that.mapTypeChanged()});
        map.getContainer().appendChild(container);
return container;
}
TextualMapTypeControl.prototype.getDefaultPosition = function() {
return new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(500, 7));
}
TextualMapTypeControl.prototype.setMapType = function(n) {
        this.map.setMapType(this.map.getMapTypes()[n]);
}
TextualMapTypeControl.prototype.createButton = function(that,n,label){
        //alert(n+":"+label);
        var botonTipo = document.createElement('button');
        botonTipo.id = 'MMTC_'+n;
        label = label.replace(/ /g,'&nbsp;');
        botonTipo.appendChild(document.createTextNode(label));
        if(n == 0){
                botonTipo.setAttribute('class', 'on');
        }
        GEvent.addDomListener(botonTipo, "click", function() {that.setMapType(n)});
        return botonTipo;
}
TextualMapTypeControl.prototype.mapTypeChanged = function() {
        var mapTypes = this.map.getMapTypes();
        var currentMapType = this.map.getCurrentMapType();

        for (var n = 0; n < mapTypes.length ; n++ ) {
                var oCell = document.getElementById('MMTC_'+n); //Cell
                if (oCell) {
                        oCell.setAttribute('class', '');
                        if (currentMapType == mapTypes[n]) {
                                oCell.setAttribute('class', 'on');
                        }
                }
        }
        ajustaZoom(this.map);
}
function ajustaZoom(map){
        var mapaActualCant = map.getCurrentMapType().getMaximumResolution();
        escalonesMax = validValues.length;
        e = (escalonesMax-2);
        for(i=0;i<e;i++){
                if(i>mapaActualCant){
                        document.getElementById('Escalon_'+i).style.display = 'none';
                } else {
                        if(i<2){
                                document.getElementById('Escalon_'+i).style.display = 'none';
                        } else {
                                document.getElementById('Escalon_'+i).style.display = 'block';
                        }
                }
        }
}
function zoomIndicador(map){
        var zoom = map.getZoom();
        for(i=0;i<validValues.length;i++){
                if(i==zoom){
                        document.getElementById('Escalon_'+i).src = urlCSS+'img/map/escalon_on.png';
                } else {
                        document.getElementById('Escalon_'+i).src = urlCSS+'img/map/escalon.png';
                }
        }
}

function TextualZoomControl(MOptions) {
}
TextualZoomControl.prototype = new GControl();

TextualZoomControl.prototype.initialize = function(map) {
  var container = document.createElement("div");

  var zoomInDiv = document.createElement("img");
  this.setButtonStyle_(zoomInDiv,'in');
  container.appendChild(zoomInDiv);
  GEvent.addDomListener(zoomInDiv, "click", function() {
    map.zoomIn();
  });
      /***************** ZOOOOOOOOOOOOOOOM *************************/
        validValues = [];
            var mapTypes = map.getMapTypes();
            for (var n = 0; n < mapTypes.length ; n++ ) {
                    maxRes = Math.max(mapTypes[n].getMaximumResolution());
            }
            for (var n = 0; n < maxRes+1 ; n++ ) {
                    validValues.push(n);
            }
            //alert(map.getCurrentMapType().getName());
            var escalonesMax = validValues.length;
            for(i=0;i<escalonesMax;i++){
                      var ecalonBtn = document.createElement("img");
                      e = (escalonesMax-i-1);
                      ecalonBtn.id = 'Escalon_'+e;
                      this.setEscalonStyle_(ecalonBtn,e, map);
                      container.appendChild(ecalonBtn);


            }
      /***************** ZOOOOOOOOOOOOOOOM *************************/
  var zoomOutDiv = document.createElement("img");
  this.setButtonStyle_(zoomOutDiv,'out');
  container.appendChild(zoomOutDiv);
  GEvent.addDomListener(zoomOutDiv, "click", function() {
    map.zoomOut();
  });

  map.getContainer().appendChild(container);
  return container;
}

TextualZoomControl.prototype.getDefaultPosition = function() {
  return new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(7, 7));
}

TextualZoomControl.prototype.setButtonStyle_ = function(button,tipo) {
  button.style.width = "29px";
      button.style.height = "22px";
  button.style.cursor = "pointer";
      button.src = urlCSS+'img/map/zoom_'+tipo+'.png';
      button.style.display = "block";
}
TextualZoomControl.prototype.setEscalonStyle_ = function(button,zoom,map) {
  button.style.width = "29px";
      button.style.height = "9px";
  button.style.cursor = "pointer";
      button.src = urlCSS+'img/map/escalon.png';
      button.style.display = "block";
      GEvent.addDomListener(button, "click", function() {map.setZoom(zoom)});
}


function initialize() {
  if (GBrowserIsCompatible()) {
    var map = new GMap2(document.getElementById("map_canvas"));
            /*map.addMapType(G_PHYSICAL_MAP);*/
    map.setCenter(new GLatLng(28.13535,-15.43301), 8);
    map.addControl(new TextualZoomControl());
            map.addControl(new TextualMapTypeControl());
            anyadirPuntos(map);
            map.checkResize();
            document.getElementById("map_canvas").style.visibility = 'hidden';
  }
}
var puntosDelMapa = new Array();
/*var puntosDelMapaCords = new Array();
var puntosDelMapaInfo = new Array();

puntosDelMapaCords[0] = '28.13535,-15.43301';
puntosDelMapaInfo[0] = '28.13535,-15.43301';
puntosDelMapaCords[1] = '40.46856,-3.78561';
puntosDelMapaInfo[1] = '40.46856,-3.78561';
puntosDelMapaCords[2] = '41.40921,2.13069';
puntosDelMapaInfo[2] = '41.40921,2.13069';
*/


var iconos = new Array;
for(i=0;i<puntosDelMapaCords.length; i++){
        var icon = new GIcon();
        icon.image = urlCSS+"img/map/marker_"+(i+1)+".png";
        icon.shadow = urlCSS+"img/map/sombra.png";
        icon.iconSize = new GSize(34, 36);
        icon.shadowSize = new GSize(56, 38);
        icon.iconAnchor = new GPoint(28, 36);
        icon.infoWindowAnchor = new GPoint(31, 8);
        iconos.push(icon);
};



function anyadirPuntos(map){
        var latlngbounds = new GLatLngBounds();
                        var indice = 0;
        for(keyVar in puntosDelMapaCords){
            var cords = puntosDelMapaCords[keyVar].split(",");
                            map.addOverlay(new GMarker(new GLatLng(cords[0],cords[1]), iconos[indice]));
            puntosDelMapa[keyVar]=new GLatLng(cords[0],cords[1]);
            latlngbounds.extend(puntosDelMapa[keyVar]);
                                indice++;
        }
        map.setCenter(latlngbounds.getCenter(),map.getBoundsZoomLevel(latlngbounds));
                        ajustaZoom(map);
}

initialize();