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



var layerSettings = {
  'Mapnik'  :  { 
      name : 'Mapnik',
      tile : 'http://tile.openstreetmap.org/{Z}/{X}/{Y}.png'
    },
  'Osmarender' : {
      name : 'Osmarender',
      tile : 'http://tah.openstreetmap.org/Tiles/tile/{Z}/{X}/{Y}.png'
    },
  'CycleMap' : {
      name : 'CycleMap',
      tile : 'http://andy.sandbox.cloudmade.com/tiles/cycle/{Z}/{X}/{Y}.png'
    },
  'CloudMade' : {
      name : 'CloudMade',
      tile : 'http://tile.cloudmade.com/856f4ad82e4650aebe68a4d8f6ab1026/1/256/{Z}/{X}/{Y}.png'
    },
  'Maplint' : {
      name : 'Maplint',
      tile : 'http://tah.openstreetmap.org/Tiles/maplint/{Z}/{X}/{Y}.png'
    }
  };
var map;
var maptypes;
var overlayes;


//初期化
function 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 || 14;

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



//地図初期化
function initMap( center ,zoom  ) {
  var mapOptions = {
    mapTypes : maptypes,
    googleBarOptions : {
      style : "new",
      adsOptions: {
        //client: "partner-pub-4192210462335745",
        client: "pub-4192210462335745",
        channel: "7558603064",
        adsafe: "high"
          //language: "ja"
      }
    } 
  };

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

  map.addControl(new GLargeMapControl3D(), new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(10,55)) );
  //var mapctrl = new GHierarchicalMapTypeControl();
  mapctrl = new GMenuMapTypeControl(false,true);
  map.addControl(mapctrl, new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(10,105)));
  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();

  //ad
  var adsManager = new GAdsManager(map, "ca-pub-4192210462335745",
      {
      　maxAdsOnMap: 3,
      　channel: "075478949"
      　//minZoomLevel:1 
      });
  adsManager.enable();

  map.setCenter(center, zoom, maptypes[0]);
  
  GEvent.addListener(map, "moveend", function() {
    document.getElementById("permalink").href = getPermalink();
    });

}

function initLayers() {
  var proj = G_NORMAL_MAP.getProjection();
  maptypes = [
    new GMapType( [ getLayer('Mapnik' )] , G_NORMAL_MAP.getProjection() , 'Mapnik' ),
        new GMapType( [ getLayer('Osmarender' )] , G_NORMAL_MAP.getProjection() , 'Osmarender' ),
        new GMapType( [ getLayer('CycleMap')] , G_NORMAL_MAP.getProjection() , 'CycleMap' ),
        new GMapType( [ getLayer('CloudMade')] , G_NORMAL_MAP.getProjection() , 'CloudMade' ),
        new GMapType(  G_NORMAL_MAP.getTileLayers() , proj , 'GoogleMap' ),
        new GMapType(  G_SATELLITE_MAP.getTileLayers() , proj , 'GoogleSatellite' )
          ];




  addLayer( 'OSM', new GTileLayerOverlay( getLayer( 'Mapnik',0.7) ) );
/*
var maplay = G_NORMAL_MAP.getTileLayers()[0];
maplay.getOpacity = function() { return 0.5 };
addLayer( 'GoogleMap', new GTileLayerOverlay( maplay ));
*/
var label = G_HYBRID_MAP.getTileLayers()[1];
addLayer( 'GoogleLabel', new GTileLayerOverlay( label ) );
addLayer( 'Maplint', new GTileLayerOverlay( getLayer( 'Maplint',1.0) ) );

function addLayer( name, layer ) {
  $('#overlays').append( $('<div style="padding-left:6px;"></div>').append(
        $('<label></label>').append(
        $('<input type="checkbox" />').bind('click' , function() {
          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;
}

    
}

function getPermalink() {
    return 'http://osm.clapps.net/?ll=' + map.getCenter().toUrlValue() + '&z=' + map.getZoom();
}

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





