var directions, infowindow, mlang, map, redIcon, greenIcon, directionsPanel, directionsService, imageg, imager, mark, lng, polyline;
var markersArray =	[];
function GMinitialize() {

	var mdiv =	document.getElementById("gmap");
	directionsPanel = document.getElementById("route_div");
	mlang =	mdiv.getAttribute("lang");
	lng =	(mlang == "de") ?	["Bitte geben Sie Straße und Ort an"] :	["Please indicate street and town"];
	var coords =	mdiv.title.split(",");
	var name =	document.getElementsByTagName("h1")[0].firstChild.innerHTML;
	var txt =	"<h1 style=\"text-align: left; color: #777; font-family: arial, helvetica, sans-serif; font-size: 12px;\">" + name + "</h1>"
	+	"<br><p style=\"text-align: left; color: #777; font-family: arial, helvetica, sans-serif; font-size: 12px;\">"
	+	mdiv.innerHTML + "</p>";
	mdiv.innerHTML =	"";
	mdiv.title =	"";
	var zooml =	(coords.length >= 4) ?	parseInt(coords[3]) :	13;
	
	var latlng = new google.maps.LatLng(coords[1], coords[0]);
    var myOptions = {
      zoom: zooml,
      center: latlng,
      mapTypeId: google.maps.MapTypeId.ROADMAP,
    };
    if ((coords.length == 5) && (coords[4] == "off")) {
		myOptions = {
      		zoom: zooml,
      		center: latlng,
      		mapTypeId: google.maps.MapTypeId.ROADMAP,
      		mapTypeControl: false,
    	};
    
	}
    map = new google.maps.Map(mdiv, myOptions);
	imager = new google.maps.MarkerImage("http://www.sorat-hotels.com/fileadmin/ge/Icon-Google-Map.png",
	  new google.maps.Size(68, 42),
      new google.maps.Point(0,0),
      new google.maps.Point(34, 41)
	);
  	imageg = new google.maps.MarkerImage("http://www.sorat-hotels.com/fileadmin/ge/Icon-Google-Map-Start.png",
	  new google.maps.Size(68, 42),
      new google.maps.Point(0,0),
      new google.maps.Point(34, 41)
	);
  	var image = new google.maps.MarkerImage("http://www.sorat-hotels.com/fileadmin/ge/Icon-Google-Map.png",
	  new google.maps.Size(68, 42),
      new google.maps.Point(0,0),
      new google.maps.Point(34, 41)
	);
  	mark = new google.maps.Marker({
      	position: latlng,
      	map: map,
      	icon: image
  	});
  	markersArray.push(mark);

	var infowindow = new google.maps.InfoWindow({
    	content: txt
	});

	google.maps.event.addListener(mark, 'click', function() {
  		infowindow.open(map, mark);
	});
	directionsService = new google.maps.DirectionsService();
	directions = new google.maps.DirectionsRenderer();
	directions.setMap(map);
	directions.setPanel(directionsPanel);
		
	mdiv.style.visibility =	"visible";
	// if (document.getElementById("from_street")) {
	// 	document.getElementById("from_street").focus();
	// }
	if (document.getElementById('qckrsv')) {
		qr_start();
	} else {
		pg_start();
	}
}
function route() {
	if (typeof pageTracker !== "undefined") {
		pageTracker._trackEvent('Google Route berechnen', document.getElementById("from_street").value + ", " + document.getElementById("from_loc").value + " - " + document.getElementById("to_street").value + ", " + document.getElementById("to_loc").value, location.href);
	}
	var strt =	document.getElementById("from_street").value + "," + document.getElementById("from_loc").value;
	var end =	document.getElementById("to_street").value + "," + document.getElementById("to_loc").value;
	var request =	{
		origin: strt,
		destination: end,
		travelMode: google.maps.DirectionsTravelMode.DRIVING
	};
	directionsService.route(request, function(response, status) {
    	if (status == google.maps.DirectionsStatus.OK) {
      		// directions.setDirections(response);
      		customPanel(response);
      		directionsPanel.style.marginBottom =	"16px";
    	} else {
    		directionsPanel.style.visibility =	"hidden";
			directionsPanel.innerHTML =	"<p style=\"color: #d00044; margin: 16px 0;\">" + lng[0] + "!</p>";
			directionsPanel.style.visibility =	"visible";
		}
  	});
}
function customPanel(response) {
	for (i in markersArray) {
      markersArray[i].setMap(null);
    }
	var lng =	(mlang == "de") ?	["Entfernung", "Fahrtdauer", "circa", "Ihre Reiseroute"] :	["Distance", "Driving time", "about", "Your travel route"];
	var geocode, point, rout, type, i, j, step;
	var html =	"";
	var route =	response.routes[0];
	polyline = new google.maps.Polyline({
		path: [],
		strokeColor: 'blue',
		strokeWeight: 3
	});
	var bounds = new google.maps.LatLngBounds();
	path = route.overview_path;
	for (i = 0; i < path.length; i++) {
		polyline.getPath().push(path[i]);
		bounds.extend(path[i]);
	}
	polyline.setMap(map);
	markersArray.push(polyline);
	map.fitBounds(bounds);
	for (i = 0; i < route.legs.length; i++) {
		rout = route.legs[i];
		html+=	"<h3 style=\"margin: 12px 0 0 0;\">" + lng[3] + "</h3>"
		+	"<p>" + rout.distance.text + ", " + rout.duration.text + "</p>"
		+	"<table class=\"gmt\" cellspacing=\"0\" style=\"margin: 12px 0 0 0;\">";
		html+=	waypoint(rout.start_location, imageg, rout.start_address);
		for (j = 0; j < rout.steps.length; j++) {
			step =	rout.steps[j];
			html+=	"<tr style=\"cursor: pointer;\" onclick=\"map.showMapBlowup(new GLatLng(" + step.start_location + "));\">"
			+	"<td><a href=\"javascript:void(0)-M\">" + step.instructions + "<\/a><\/td>"
			+	"<td style=\"text-align: right; width: 50px;\">" + step.distance.text + "<\/td><\/tr>"
		}
		geocode =	rout.end_location;
		point =	rout.end_location;
		html+=	waypoint(rout.end_location, imager, rout.end_address);
		html+=	"<\/table>"
		+	"<p style=\"font-size: 10px; margin: 0 0 0 0;\">" + response.routes[0].copyrights + "<\/p>";
	}
	directionsPanel.innerHTML =	html.replace(/<wbr\/>/g, '');
}
function waypoint(point, type, address) {
	var marker = new google.maps.Marker({
      	position: point,
      	map: map,
      	icon: type
  	});
  	markersArray.push(marker);
  	var url =	(type == imageg) ?	"http://www.sorat-hotels.com/fileadmin/ge/green50.gif" :	"http://www.sorat-hotels.com/fileadmin/ge/red50.gif";
	var html = "<tr style=\"cursor: pointer;\" onclick=\"map.showMapBlowup(new GLatLng(" + point.toUrlValue(6) + "));\"";
	html+=	(type == imager) ?	"" :	" class=\"rb1\"";
	html+=	">"
	+	"<td colspan=\"2\">"
	+	"<img src=\"" + url + "\" alt=\"\"> &nbsp; "
	+	address
	+	"<\/td><\/tr>";
	return html;
}
window.onload =	GMinitialize;
