function createMarker(point, image)
{
	var icon = new google.maps.Icon();
	icon.image = image[0];
	icon.iconSize = new google.maps.Size(image[1], image[2]);
	var subt = (image[2] / 100) * 9;
	subt = Math.ceil(subt);
	var anchor = image[2] - subt;
	icon.iconAnchor= new google.maps.Point(16, anchor);
	//{icon: icon, draggable: true}
	var marker = new google.maps.Marker(point,icon);
	return marker;

}


function createTextMarker(point, html, image)
{
	var icon = new google.maps.Icon();
	icon.image = image[0];
	icon.iconSize = new google.maps.Size(image[1], image[2]);
	var subt = (image[2] / 100) * 11;
	subt = Math.ceil(subt);
	var anchor = image[2] - subt;
	icon.iconAnchor= new google.maps.Point(10, anchor);
	var infoanchor = image[2] / 3;
	infoanchor = Math.floor(infoanchor);
	icon.infoWindowAnchor = new google.maps.Point(infoanchor, 2);
	var marker = new google.maps.Marker(point,icon);
	google.maps.Event.addListener(marker, "click", function() {marker.openInfoWindowHtml(html);});
	return marker;
}


function createLinkMarker(point, link, image)
{
	var icon = new google.maps.Icon();
	icon.image = image[0];
	icon.iconSize = new google.maps.Size(image[1], image[2]);
	var subt = (image[2] / 100) * 11;
	subt = Math.ceil(subt);
	var anchor = image[2] - subt;
	icon.iconAnchor= new google.maps.Point(10, anchor);
	var infoanchor = image[2] / 3;
	icon.infoWindowAnchor = new google.maps.Point(infoanchor, 2);
	var marker = new google.maps.Marker(point,icon);

	google.maps.Event.addListener(marker, "click", function() {
	  window.location.href = link;
	});
	return marker;
}


function createTabMarker(point, tabs, image)
{
	var icon = new google.maps.Icon();
	icon.image = image[0];
	icon.iconSize = new google.maps.Size(image[1], image[2]);
	var subt = (image[2] / 100) * 11;
	subt = Math.ceil(subt);
	var anchor = image[2] - subt;
	icon.iconAnchor= new google.maps.Point(10, anchor);
	var infoanchor = image[2] / 3;
	icon.infoWindowAnchor = new google.maps.Point(infoanchor, 2);
	var marker = new google.maps.Marker(point,icon);

	google.maps.Event.addListener(marker, "click", function() {
	  marker.openInfoWindowTabsHtml(tabs);
	});
	return marker;
}




function geoDataMessageBox(){
	// set message with geodata infos after moving map
	google.maps.Event.addListener(map, "moveend", function() {
	  var center = map.getCenter();
	  var centerlat = center.lat();
	  var centerlng = center.lng();
	  document.getElementById("message").innerHTML = center.toString();
	});
}



function getCenterLanLng(field){
	google.maps.Event.addListener(map, "moveend", function() {
	  var center = map.getCenter();
	  if(field == 'value'){
	  	document.getElementById("google_center_lat").value = center.lat();
	  	document.getElementById("google_center_lng").value = center.lng();
		}else if(field == 'innerHTML'){
	  	document.getElementById("google_center_lat").innerHTML = center.lat();
	  	document.getElementById("google_center_lng").innerHTML = center.lng();
	  }
	});
}


function geocodeAddress(address,typ,marker,zoom) {
	geocoder.getLatLng(
		address,
		function(point) {
			if (!point) {
				alert(address + " nicht gefunden");
			} else {
				var lat = point.lat();
				var lng = point.lng();
				map.setCenter(point,zoom);
				//document.getElementById('lat').value = lat;
				//document.getElementById('lng').value = lng;
				if(typ == "otherMarker"){
					marker = createOtherMarker(point,address,marker);
				}else if(typ == "marker"){
					marker = createMarker(point,marker);
				}else if(typ == "mapMarker"){
					marker = createMapMarker(point,marker);
				}
				map.addOverlay(marker);
			}
		}
	);
}


function getAdress()
{
	var adress = document.getElementById('adresse').value;
	return adress;
}

OverlayBox = function ( container )
{
	// Get the parent.
	var parent = container.parentNode;

	// Make the wrapper div.
	var wrapper = document.createElement( 'div' );
	wrapper.style.cssText = container.style.cssText;
	parent.insertBefore( wrapper, container );

	// Move the container into the wrapper.
	parent.removeChild( container );
	wrapper.appendChild( container );
	container.style.cssText = 'position: relative; width: 100%; height: 100%;';

	// Add the overlay div.
	this.overlay = document.createElement( 'div' );
	wrapper.appendChild( this.overlay );
	this.visibleStyle = 'position: relative; color: ' + OverlayBox.textColor + '; left: 125px; top: -55%; background-color: ' + OverlayBox.backgroundColor + '; width: 50%; text-align: center; margin-left: 0px; padding: 2em; border: 2px solid ' + OverlayBox.borderColor + '; z-index: 100; opacity: .95; filter: alpha(opacity=95);';
	this.invisibleStyle = 'display: none;';
	this.overlay.style.cssText = this.invisibleStyle;
};


OverlayBox.backgroundColor = '#FFFFFF';
OverlayBox.borderColor = '#464646';
OverlayBox.textColor = '#000000';


OverlayBox.prototype.Set = function ( message )
{
	this.overlay.innerHTML = message;
	this.overlay.style.cssText = this.visibleStyle;
};


OverlayBox.prototype.Clear = function ()
{
	this.overlay.style.cssText = this.invisibleStyle;
};


OverlayBox.SetBackgroundColor = function ( color )
{
	OverlayBox.backgroundColor = color;
};


OverlayBox.SetBorderColor = function ( color )
{
	OverlayBox.borderColor = color;
};