var map,accoicon;
var startPointType, stopPointType, startLan, startLon, stopLan, stopLon,messages;
	 	
function LoadMap() {			
	
 	if (GBrowserIsCompatible()) {
       	map = new GMap2(document.getElementById("map"));
       	map.setCenter(new GLatLng(47.500412,12.297702), 10);
      	map.setMapType(G_NORMAL_MAP); 
       	map.addControl(new GLargeMapControl());
   		map.addControl(new GMapTypeControl());
   		
   		// Icons definieren
     	accoicon = new GIcon();
		accoicon.iconSize = new GSize(12, 12);
		accoicon.iconAnchor = new GPoint(5, 5);
		accoicon.image = "/de/images/vermieter/button_point_low.png";	
		accoicon.infoWindowAnchor = new GPoint(5, 5); 		     		
	
		// Punkt hinzufügen
		Addmarker();
		
		// Route
		var startPoint = new Array();
		var endPoint = new Array();
		var startPointType = null;
		var endPointType = null;
		var startPointText = null;
		var endPointText = null;
		
		// Listner für Route
		gdir = new GDirections(map, document.getElementById("route"));
		GEvent.addListener(gdir, "load", onGDirectionsLoad);
		GEvent.addListener(gdir, "error", handleErrors);
		
		// Messages 
		messages = new Array();
		messages['de'] = new Array();
		messages['en'] = new Array();
		
		messages['de']['start'] = "als Start";
		messages['de']['ziel'] = "als Ziel";
		messages['de']['routenplaner'] = "Routenplaner";
		messages['de']['error1'] = "Bitte wÃ¤hlen Sie erst einen Start und Endpunkt aus!";
		messages['de']['error2'] = "Einer der angegebenen Orte konnte nicht gefunden werden, bitte vergewissern Sie sich das die Adresse richtig geschrieben ist.";
		messages['de']['error3'] = "Bitte geben Sie eine gÃ¼ltige Adresse ein";
		messages['de']['error4'] = "Es trat ein unbekannter Fehler bei der internen Kommunikation auf, sollte dieser Fehler wiederholt auftreten wenden Sie sich bitte an uns.";
		
		messages['en']['start'] = "as start";
		messages['en']['ziel'] = "as destination";
		messages['en']['routenplaner'] = "routeplanner";
		messages['en']['error1'] = "Please select one start and destination point.";
		messages['en']['error2'] = "One of the entered addresses cannot be found, please be sure that the address is valid.";
		messages['en']['error3'] = "Please enter a valid address.";
		messages['en']['error4'] = "An unknown error occured. If the error appears several times, pleate contact us.";

		
	}

}

function Addinfomarker(feratelid, lat, lon, titel, html,strasse, plz, ort){
	
	// Marker
	var point = new GLatLng(lat,lon);
	var marker = new GMarker(point,{icon:accoicon,title:titel});
	map.addOverlay(marker); 
	map.setCenter(point, 14);	
	
	var start = 'class="start" href="javascript:SetAsStartPoint(\''+ titel +'\',\''+ strasse +'\',\''+ plz +'\',\''+ ort +'\',\'Österreich\',\''+ lat +'\',\''+ lon +'\');"';
	var stop = 'class="stop" href="javascript:SetAsStopPoint(\''+ titel +'\',\''+ strasse+'\',\''+ plz +'\',\''+ ort +'\',\'Österreich\',\''+ lat +'\',\''+ lon +'\');"';
	html = html.replace('*START*',start);
	html = html.replace('*STOP*',stop);
	
	marker.openInfoWindowHtml(html);
	
	// Infowindow
	GEvent.addListener(marker,'click',
		function(){marker.openInfoWindowHtml(html);});	

}		

// Startpunkt 
function SetAsStartPoint(titel,strasse,plz,ort,land,lat,lon)
{
	
	startPointType = 'point';
	startLat = lat;
	startLon = lon;
	
	var adresse = '<b>'+ titel +'</b>' ;
	if (strasse != '') {adresse = adresse + '<br/>' + strasse}
	if (ort != '') {adresse = adresse + '<br/>' + plz + ' ' + ort}
	
	document.getElementById('start_adressetext').innerHTML = adresse;
	document.getElementById('start_adressetext').style.display = 'block';
	document.getElementById('start_adresselink').style.display = 'block';
	document.getElementById('start_adresse').style.display = 'none';
	

}

// Endpunkt 
function SetAsStopPoint(titel,strasse,plz,ort, land, lat, lon)
{
	stopPointType = 'point';
	stopLat = lat;
	stopLon = lon;
	
	var adresse = '<b>'+ titel +'</b>' ;
	if (strasse != '') {adresse = adresse + '<br/>' + strasse}
	if (ort != '') {adresse = adresse + '<br/>' + plz + ' ' + ort}
	
	document.getElementById('stop_adressetext').innerHTML = adresse;
	document.getElementById('stop_adressetext').style.display = 'block';
	document.getElementById('stop_adresselink').style.display = 'block';
	document.getElementById('stop_adresse').style.display = 'none';
}

// Adresse einblenden 
function ShowAdress(typ)
{
	
	if (typ=='start'){startPointType='text';}
	if (typ=='stop'){stopPointType='text';}
	
	document.getElementById(typ + '_adressetext').style.display = 'none';
	document.getElementById(typ +'_adresselink').style.display = 'none';
	document.getElementById(typ +'_adresse').style.display = 'block';	

}

// Route berechnen 
function CalculateRoute() 
{

	from = document.getElementById('start_strasse').value + "," + document.getElementById('start_plz').value + ',' + document.getElementById('start_ort').value + ',' + document.getElementById('start_land').value;
	if (startPointType=='point') {from = startLat + "," + startLon;}
	
	to = document.getElementById('stop_strasse').value + "," + document.getElementById('stop_plz').value + ',' + document.getElementById('stop_ort').value + ',' + document.getElementById('stop_land').value;
	if (stopPointType=='point') {to = stopLat + "," + stopLon;}
	
	gdir.load("from: " + from + " to: " + to ,{ "locale": language });
 	
}

// Route errors
function handleErrors(){
   if (gdir.getStatus().code == G_GEO_UNKNOWN_ADDRESS)
	 alert(messages[language]['error2']);
   
   else if (gdir.getStatus().code == G_GEO_MISSING_QUERY)
	 alert(messages[language]['error3']);
	 
   else	alert(messages[language]['error4']);   
}

// Route loaded
function onGDirectionsLoad()
{ 
	//document.getElementById('block_category_titleopen').style.display="none";
	//document.getElementById('block_category_titleclosed').style.display="block";
	//document.getElementById('block_category_content').style.display="none";
	
}

