// Start position for the map (hardcoded here for simplicity,
// but maybe you want to get from URL params)
var lat=48.14692
var lon=11.54689
var zoom=15

var map; //complex object of type OpenLayers.Map

function addPointToList(list, lon, lat) {
	var testVar = new OpenLayers.LonLat(lat, lon).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject());
	list.push(new OpenLayers.Geometry.Point(testVar.lon, testVar.lat));
}

//Initialise the 'map' object
function onloadhelper() {
	if(!document.getElementById("map")) {
		return;
	}
	
	
	map = new OpenLayers.Map ("map", {
		controls:[
			new OpenLayers.Control.Navigation(),
			new OpenLayers.Control.PanZoomBar(),
			new OpenLayers.Control.LayerSwitcher()],
			maxExtent: new OpenLayers.Bounds(-20037508.34,-20037508.34,20037508.34,20037508.34),
			maxResolution: 156543.0399,
			numZoomLevels: 18,
			units: 'm',
			projection: new OpenLayers.Projection("EPSG:900913"),
			displayProjection: new OpenLayers.Projection("EPSG:4326")
	} );
	
	var layer_style = OpenLayers.Util.extend({}, OpenLayers.Feature.Vector.style['default']);
	
	
	layerCycleMap = new OpenLayers.Layer.OSM.CycleMap("Fahradkarte");
	map.addLayer(layerCycleMap);
	layerMapnik = new OpenLayers.Layer.OSM.Mapnik("Stra&szlig;enkarte");
	map.addLayer(layerMapnik);
	
	layerMarkers = new OpenLayers.Layer.Markers("Wegmarken");
	map.addLayer(layerMarkers);
	vectorLayer = new OpenLayers.Layer.Vector("Fu&szlig;wege", {style: layer_style});
	map.addLayer(vectorLayer);
			
			
			
	// center	
	var lonLat = new OpenLayers.LonLat(lon, lat).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject());
	map.setCenter (lonLat, zoom);

	// add marker
	var size = new OpenLayers.Size(21,25);
	var offset = new OpenLayers.Pixel(-(size.w/2), -size.h);
	var icon = new OpenLayers.Icon('/openlayers/marker.png',size,offset);
	layerMarkers.addMarker(new OpenLayers.Marker(lonLat,icon));
	
	
	
	var styleU = {
		strokeColor: "RGB(0, 115, 255)",
		strokeWidth: 5,
		pointRadius: 6,
		strokeOpacity: 0.6,
		pointerEvents: "visiblePainted"
	};
	
	var styleS = {
		strokeColor: "RGB(0, 255, 60)",
		strokeWidth: 5,
		pointRadius: 6,
		strokeOpacity: 0.6,
		pointerEvents: "visiblePainted"
	};
	
	var styleT = {
		strokeColor: "RGB(255, 34, 0)",
		strokeWidth: 5,
		pointRadius: 6,
		strokeOpacity: 0.6,
		pointerEvents: "visiblePainted"
	};
	
	
	
	var pointListU = [];
	
	addPointToList(pointListU, 48.149639, 11.547000);
	addPointToList(pointListU, 48.149725, 11.546650);
	addPointToList(pointListU, 48.148749, 11.545592);
	addPointToList(pointListU, 48.148525, 11.546699);
	addPointToList(pointListU, 48.1479,   11.546545);
	addPointToList(pointListU, lat,       lon);
	
	var lineU = new OpenLayers.Feature.Vector(new OpenLayers.Geometry.LineString(pointListU),null, styleU);	
	
	
	var pointListS = [];
	
	addPointToList(pointListS, 48.141993, 11.548551);
	addPointToList(pointListS, 48.14354,  11.548777);
	addPointToList(pointListS, 48.146278, 11.549533);
	addPointToList(pointListS, lat,       lon);
	
	var lineS = new OpenLayers.Feature.Vector(new OpenLayers.Geometry.LineString(pointListS), null, styleS);
	
	
	var pointListT = [];
	
	addPointToList(pointListT, 48.144173, 11.545774);
	addPointToList(pointListT, 48.144241, 11.545502);
	addPointToList(pointListT, 48.146901, 11.546749);
	addPointToList(pointListT, lat,       lon);
	
	var lineT = new OpenLayers.Feature.Vector(new OpenLayers.Geometry.LineString(pointListT), null, styleT);
	
	
	vectorLayer.addFeatures([lineU, lineS, lineT]);
}
