google.load("jquery","1.3");
google.load("jqueryui","1.7");
google.load("maps", "2");
google.load("elements", "1", {packages : ["localsearch"]});

// Dear reader, apologies for this awful, awful code.
// Originally stolen from http://osmapp.appspot.com/, heavily modified since

var layerSettings = {
  'OpenStreetMap'  :  { 
      name : 'OpenStreetMap',
      tile : 'http://tile.openstreetmap.org/{Z}/{X}/{Y}.png'
    },
  };

var map;
var maptypes;
var overlays;


function my_init( param ) {

  var center;
  
  if ( param.lat && param.lng ) {
    center = new GLatLng( param.lat , param.lng );
  } else {
    var gcl = google.loader.ClientLocation;
    if (gcl && gcl.latitude && gcl.longitude) {
      center = new GLatLng(gcl.latitude, gcl.longitude);
    } else {
      center = new GLatLng(34.6891,33.0182);
    }
  }
  var zoom = param.z || 16;

  window.onload = function() {
    initLayers();
    initMap( center , zoom ); 
  }
}



function initMap( center ,zoom  ) {
  var mapOptions = {
    mapTypes : maptypes,
  };

  map = new GMap2(document.getElementById("map"),mapOptions);

  map.addControl(new GSmallMapControl());
  //var mapctrl = new GHierarchicalMapTypeControl();
  mapctrl = new GMenuMapTypeControl(false,true);
  //GSize controls how far from corner
  map.addControl(mapctrl, new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(21,135)));
  //map.addControl(new google.elements.LocalSearch());
  //map.addControl(new GNavLabelControl() , new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(10,25)));

  map.enableDoubleClickZoom();
  map.enableScrollWheelZoom();
  map.enableContinuousZoom();

  map.setCenter(center, zoom, maptypes[0]);
  map.addOverlay(overlays[0]);
  map.addOverlay(overlays[1]);
  map.addOverlay(overlays[2]);
  map.addOverlay(overlays[3]);
  map.addOverlay(overlays[4]);
  map.addOverlay(overlays[5]);
  map.addOverlay(overlays[6]);
  map.addOverlay(overlays[7]);
  map.addOverlay(overlays[8]);
}

function initLayers() {
  var proj = G_NORMAL_MAP.getProjection();

  maptypes = [
  	new GMapType(  G_HYBRID_MAP.getTileLayers() , proj , 'Híbrido' ),
        new GMapType(  G_NORMAL_MAP.getTileLayers() , proj , 'Normal' ),
        new GMapType(  G_SATELLITE_MAP.getTileLayers() , proj , 'Satélite' ),
        new GMapType(  G_PHYSICAL_MAP.getTileLayers() , proj , 'Terreno' )
          ];

  overlays = [
  	new GGeoXml("http://maps.google.com/maps/ms?ie=UTF8&hl=en&vps=1&jsv=250a&msa=0&output=nl&msid=114599019248289501987.0004881353a3835f825e0"),//sitios arquelógicos
  	new GGeoXml("http://maps.google.com/maps/ms?ie=UTF8&hl=en&vps=2&jsv=250a&msa=0&output=nl&msid=114599019248289501987.0004882324bcf9caac074"),//naturaleza
  	new GGeoXml("http://maps.google.com/maps/ms?ie=UTF8&hl=en&vps=3&jsv=250a&msa=0&output=nl&msid=114599019248289501987.00048823b24af6e4f9b39"),//ciudades y pueblos
	new GGeoXml("http://maps.google.com/maps/ms?ie=UTF8&hl=en&vps=4&jsv=250a&msa=0&output=nl&msid=114599019248289501987.0004882471614bbc8cf92"), //cenotes
	new GGeoXml("http://maps.google.com/maps/ms?ie=UTF8&hl=en&vps=5&jsv=250a&msa=0&output=nl&msid=114599019248289501987.0004882482043a99fce18"), //Starwood Luxory haciendas
	new GGeoXml("http://maps.google.com/maps/ms?ie=UTF8&hl=en&vps=6&jsv=250a&msa=0&output=nl&msid=114599019248289501987.000488c739939bef1b15d"), //haciendas privadas
	new GGeoXml("http://maps.google.com/maps/ms?ie=UTF8&hl=en&vps=7&jsv=250a&msa=0&output=nl&msid=114599019248289501987.000488c7ad228231d4b46"),//lugares catherwood
	new GGeoXml("http://maps.google.com/maps/ms?ie=UTF8&hl=en&vps=8&jsv=250a&msa=0&output=nl&msid=114599019248289501987.000489183af37297382cb"),//Haciendas
	new GGeoXml("http://maps.google.com/maps/ms?ie=UTF8&hl=en&vps=9&jsv=250a&msa=0&output=nl&msid=114599019248289501987.00048a2d3fed4e003793d"),//Talleres de la FHMM 
  ];

  addLayer( ' Sitios Arqueológicos', overlays[0]); 
  addLayer( ' Naturaleza y Reservas naturales', overlays[1]); 
  addLayer( ' Ciudades y Pueblos', overlays[2]); 
  addLayer( ' Cuevas y Cenotes', overlays[3]); 
  addLayer( ' Starwood Luxory Collection Haciendas', overlays[4]); 
  addLayer( ' Villas y Haciendas Privadas', overlays[5]); 
  addLayer( ' Lugares Catherwood Travels', overlays[6]); 
  addLayer( ' Haciendas', overlays[7]); 
  addLayer( ' Talleres de la FHMM', overlays[8]); 
  
  

function addLayer( name, layer ) {
  $('#overlays').append( $('<div style="padding-left:6px;"></div>').append(
        $('<label></label>').append(
        //$('<input type="checkbox" />').bind('click' , function() {
	//new and crazy!
        $('<input type="checkbox" checked />').bind('click' , function() {
          
	//end new and crazy!
          if ( $(this).attr('checked') ) {
            map.addOverlay( layer );
          }  else {
            map.removeOverlay( layer );
          }
        } )).append( name )  ) );
}

function getLayer( name , opacity ) {
  opacity = opacity || '1.0';
  var param = layerSettings[name];

  var copyright =  new GCopyright(1,
      new GLatLngBounds(new GLatLng(-180,-180),new GLatLng(180,180) ),0, 
      "<a target='_blank' href='http://openstreetmap.org'>OpenStreetMap</a>");
  var copyrightCollection = new GCopyrightCollection("");
  copyrightCollection.addCopyright(copyright);
  var tilelayer = new GTileLayer(copyrightCollection,1,18,{
      'opacity'         : opacity,
      'tileUrlTemplate' : param.tile,
      'isPng'           : true
      });
  return tilelayer;
}

    
}

window.unload = function() {
  GUnload();
}






