var geocoder;
var map;
var address;

// Karte initialisieren
function initialize() {
	// Neues Google Maps Objekt erzeugen
  map = new GMap2($('map'));
  map.enableContinuousZoom();
  map.enableScrollWheelZoom();
  //map.setMapType(map.getMapTypes()[2]);
 	map.addControl(new GSmallZoomControl());
  map.addControl(new GHierarchicalMapTypeControl());
  // Neues Geocoding Objekt erzeugen
  geocoder = new GClientGeocoder();
  $each($$('body'),function(e){
		e.addEvent('unload',GUnload());
	});
	
}

// Funktion addToMap() zur Positionsanzeige
function addToMap(response) {
	// Objekt abrufen
  place = response.Placemark[0];
	// Latitude und Longtitude abrufen
  point = new GLatLng(place.Point.coordinates[1], place.Point.coordinates[0]);
	// Karte auf ermittelte Koordinaten (Latitude und Longtitude) zentrieren und Zoom Level setzen (hier 13)
  map.setCenter(point, 12);
	// Ortsmarke bzw. "Stecknadel" erzeugen
  marker = new GMarker(point);
	// Ortsmarke bzw. Stecknadel auf Karte platzieren
  map.addOverlay(marker);
}
function showmap(el,newaddress){
	// Koordinaten anfordern und an Funktion addToMap() übergeben
  address=newaddress;
  $('mapwrap').setStyle('top',el.getPosition().y-100);
	$('mapwrap').setStyle('left',el.getPosition().x-300);
	$('mapwrap').fade(1);
  geocoder.getLocations(address, addToMap);
}
function emptyLoad(el){
	$each($$('body'),function(e){
		e.adopt(new Element('div',{id: 'result'}));
	});
	$('result').fade(0);
	$('result').setStyle('visibility','hidden');
	var draggableOptions = {
   	onStart:function(){
	    if(!Browser.Engine.trident){$('result').setOpacity(.5);}
	  },
	  onComplete:function(){
	     if(!Browser.Engine.trident){$('result').setOpacity(1);}   
	  }
	};
	$('result').makeDraggable(draggableOptions);
	var req1 = new Request.HTML({url:'index.php?event=ferideRoute', 
			onSuccess: function(html){
				$('result').adopt(html);
				var direction= new GDirections(map,$('overcontent'));
				direction.load('from: '+$('wohnort').value+' to: '+address);
				$('result').setStyle('top','5px');
				$('result').setStyle('left',el.getPosition().x-300);
				$('result').fade(1);
				$('closebox').removeEvent('click');
				$('closebox').addEvent('click',function(el){
					$('overlay').fade(0);
					return false;
				});
				
			},
			onFailure: function() {
				$('result').set('text', 'The request failed.');
			}
		});
		req1.send();
}

function route(el){
	emptyLoad(el);
}