
var map;
var directionDisplay;
var directionsService = new google.maps.DirectionsService();

// POI icon  
var image = new google.maps.MarkerImage('http://service.citroen.de/mymodules/service.citroen.de/templates/bilder/marker_citroen_big.png',
	new google.maps.Size(30, 40),
	new google.maps.Point(0,0),
	new google.maps.Point(15, 40));
// Start icon  
var start = new google.maps.MarkerImage('http://service.citroen.de/mymodules/service.citroen.de/templates/bilder/marker_citroen_start_big.png',
	new google.maps.Size(30, 40),
	new google.maps.Point(0,0),
	new google.maps.Point(15, 40));
// The shadow image 
var shadow = new google.maps.MarkerImage('http://service.citroen.de/mymodules/service.citroen.de/templates/bilder/marker_citroen_shadow.png',
    new google.maps.Size(50, 40),
	new google.maps.Point(0,0),
	new google.maps.Point(18,40)); 

function initialize() { 
	var dirOptions = {
		polylineOptions: {strokeColor:'#dc002e'}
	};
	directionsDisplay = new google.maps.DirectionsRenderer(dirOptions);	
	
	var latlng     = $('Hdl_adresse').value.split(',');
	var lat        = parseFloat(latlng[0]);
	var lng        = parseFloat(latlng[1]);
	var mapOptions = {
		zoom: 9,
		center: new google.maps.LatLng(lat, lng),
    	disableDefaultUI: true,
		navigationControl: true,
		navigationControlOptions: {
			style: google.maps.NavigationControlStyle.SMALL,
			position: google.maps.ControlPosition.LEFT_CENTER
		},
		mapTypeId: google.maps.MapTypeId.ROADMAP
	};
	map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions);	
	directionsDisplay.setMap(map);
	directionsDisplay.setPanel(document.getElementById('planer_ausgabe'));
	setMarkers(map);  	
}


function setMarkers(myMap) {
  // Add markers to the map
  
	var locations = document.anfahrt.geocoords;
	for (var i = 0; i < locations.length; i++) {
		var latlng   = locations[i].value.split(',');
		var lat      = parseFloat(latlng[0]);
		var lng      = parseFloat(latlng[1]);
		var myTitle  = locations[i].title;
		var myLatLng = new google.maps.LatLng(lat, lng);
		var marker   = new google.maps.Marker({
			position: myLatLng,
			map: myMap,
			shadow: shadow,
			icon: image,
			title: myTitle
		});
	}
}


function  RoutenPlanung(fromAddress, toAddress) {	
	if(fromAddress.length && fromAddress != "Bitte Straße, PLZ und Ort eingeben"){
		var request = {
			origin: fromAddress,
			destination: toAddress,
			travelMode: google.maps.DirectionsTravelMode.DRIVING,
			region: 'de'			
		};
		directionsService.route(request, function(response, status) {
			if (status == google.maps.DirectionsStatus.OK) {
				directionsDisplay.setDirections(response);
				$('routing_form').hide();
				$('planer_ausgabe_zurueck').show();
				setMapHeight(360);	
				var endTitle = thisPoiDescr.replace(/§§/,myRoute.end_address);
				var myRoute = response.routes[0].legs[0];
				new google.maps.Marker({
					position: myRoute.start_location,
					map: map,
					icon: start,
					shadow: shadow,
					title: "Ihre Startadresse"
				});
				for (var i = 0; i < myRoute.steps.length; i++) {
					myRoute.steps[i].instructions = styleRouting(myRoute.steps[i].instructions);
				}
				myRoute.start_address = 'Ihre Startadresse: <span class="h3">' + myRoute.start_address + "</span>";
				myRoute.end_address = 'Ihr Ziel: ' + endTitle;
			}
			else {
				dirError = true;
				$('routing_info').update('Bitte überprüfen Sie Ihre Angaben:');
			}
		});
	}
	else{
		$('routing_info').update('Geben Sie bitte eine Adresse ein:');
	}
}

function makeMarker( position, icon, title ) {
	new google.maps.Marker({
		position: position,
		map: map,
		icon: icon,
		shadow: shadow,
		title: title
	});
}


function setMapHeight(height) {
	var myMarginTop = 0;
	if(height==198){
		myMarginTop = -60;
	}
	$("map_container").setStyle({					
		height: height+'px'
	});
	$("map_canvas").setStyle({
		marginTop: myMarginTop+'px'
	});
}


function styleRouting(stepDetails) {
	stepDetails = stepDetails.replace(/(L[0-9]{1,3}n?)/g,'<span class="strasse_L">$1</span>');
	stepDetails = stepDetails.replace(/(B[0-9]{1,3}n?)/g,'<span class="strasse_B">$1</span>');
	stepDetails = stepDetails.replace(/(A[0-9]{1,3}n?)/g,'<span class="strasse_A">$1</span>');
	return stepDetails;
}


function HaendlersucheRoutingSuche(bool) {
	if (bool == false) {
		$('routing_form').hide();
		$('planer_ausgabe').show();
		$('planer_ausgabe_zurueck').show();
	} else {
		$('routing_form').show();
		$('planer_ausgabe').hide();
		$('planer_ausgabe_zurueck').hide();
		if(document.anfahrt)HoleAdressenUndSetzteMitte();
	}
}

function  activateField(field) {
	if($(field).value == $(field).title) $(field).value = '';
	$(field).setStyle({ borderColor:'#c00',color:'#666'});
}

google.maps.event.addDomListener(window, 'load', initialize);
