/** 
* Go to location
*/
function GoToLocation(map,element) {
	google.maps.event.clearListeners(map,'click');
	element = document.getElementById(element);
	var width = (window.innerWidth - 150)/12;
	var str = "<div id='inputFieldBOX' class='inputFieldBOX'>";
	str += '<div id="open" onclick="minimize(&#34;inputFieldBOX&#34;,this)" class="minimize"></div>';
	str += "<h2>Go to <input type='text' size='"+ Math.min(width,30) +"' id='SearchLocation' onblur='getLocation(this.value,map)' />";
	str += "</h2><br/>";
	str += "<h2 onclick='document.getElementById(&#34;inputField&#34;).innerHTML=&#34;&#34;'>[close]</h2>";
	str += "</div>";
	element.innerHTML = str;
}

function getLocation(addressSearch,map) {
	var geocoder = new google.maps.Geocoder();
	if (geocoder) {
      geocoder.geocode({address: addressSearch}, function(results, status) {
      		if (status == google.maps.GeocoderStatus.OK) {
      			if (results[0]) {
      				var pos = results[0].geometry.location;
      				tempMarker(pos);
      				map.setCenter(pos);
      				map.setZoom(16);
      				mapZoom = 16;
      				document.getElementById("inputField").innerHTML = "";
      			} else {
      				alert("No location found."); 
      			}
      		} 
      });
   }
}
/**
* zoom area to fit the screen...
*/
function zoomBounds(map) {
	google.maps.event.clearListeners(map,'click');
	document.getElementById("inputField").innerHTML = "";
	var firstCorner = "";
	var marker;
	google.maps.event.addListener(map,"click",function(event) {
			if (firstCorner =="") {
				firstCorner = event.latLng;
				marker = tempMarker(event.latLng);
			} else {
				var latlng = event.latLng;
				var sw = new  google.maps.LatLng( Math.min( latlng.lat(),firstCorner.lat()) , Math.min( latlng.lng(),firstCorner.lng()) );
				var ne =  new google.maps.LatLng( Math.max( latlng.lat(),firstCorner.lat()) , Math.max( latlng.lng(),firstCorner.lng()) );
				var Bound = new google.maps.LatLngBounds(sw,ne);
				map.fitBounds(Bound);
				window.mapZoom = map.getZoom();
				firstCorner = "";
				marker.setMap(null);
			}
	});
}
/**Map
* SHOW LOCATION
*/
function zoomLocation(map){
	document.getElementById("inputField").innerHTML = "";
	if (typeof navigator.geolocation != 'undefined') { 
		navigator.geolocation.getCurrentPosition(setPosition,noPosition,{maximumAge:10000});
	} 
}
function setPosition(position) {
	mapZoom = 16;
	var lat = position.coords.latitude;
	var lng = position.coords.longitude;
	var mapCenter= new google.maps.LatLng(lat,lng);
	map.setCenter(mapCenter);
	map.setZoom(mapZoom);
	tempMarker(mapCenter);
}
function noPosition() {
	alert("no GeoPosition!");
}
/** 
* resize map
*/ 
function fitMap() {
	if (document.getElementById('map').style.height != "100%"){
		document.getElementById('map').style.height = "100%";	
		document.getElementById('bottom').style.top = "100%";
		google.maps.event.trigger(map, 'resize');
	} else {
		var height = ColorSelect.getHeight();
		document.getElementById('map').style.height = height + "px";
		document.getElementById('bottom').style.top = height + "px";
		google.maps.event.trigger(map, 'resize');
	}
}

/**
* hide / show objects
*/
function OnOff() {
   document.getElementById("inputField").innerHTML = "";
	google.maps.event.clearListeners(map,'click');
	for (var i = mapObjekts.length-1; i >= 0;i--){ // maybe needs rework...
		mapObjekts[i].setMap(map);
	}
	google.maps.event.addListener(map,'click',function(event, Overlay) {
			if(Overlay) {
				Overlay.del();
			}
			document.getElementById("inputField").innerHTML = "";
	});	
}

/**
* MULTIEDIT
*/
function MULTIEDIT() {
	document.getElementById("inputField").innerHTML = "";
	google.maps.event.clearListeners(map,'click');
		var firstCorner = "";
	var marker;
	google.maps.event.addListener(map,"click",function(event) {
			if (firstCorner =="") {
				firstCorner = event.latLng;
				marker = tempMarker(event.latLng);
			} else {
				var latlng = event.latLng;
				var sw = new  google.maps.LatLng( Math.min( latlng.lat(),firstCorner.lat()) , Math.min( latlng.lng(),firstCorner.lng()) );
				var ne =  new google.maps.LatLng( Math.max( latlng.lat(),firstCorner.lat()) , Math.max( latlng.lng(),firstCorner.lng()) );
				var Bound = new google.maps.LatLngBounds(sw,ne);

				
				
				for (var i = mapObjekts.length-1; i >= 0;i--){ // maybe needs rework...
					var coords = mapObjekts[i].getPath()
					var title = mapObjekts[i].getKMLTitle();
					for (var j = coords.getLength()-1; j >= 0;j--){
					  latlng = coords.getAt(j);
					  if (Bound.contains(latlng)) {
					  		j = -1;
					  		if (title.search(/marker/i) != -1){
					  			recreateMarker(mapObjekts[i],null,map);
					  		} else if (title.search(/polygon/i) != -1) {
					  		  recreatePolygon(mapObjekts[i],null,map);
					  		} else if (title.search(/polyline/i) != -1) {
					  		  recreatePolyline(mapObjekts[i],null,map);
					  		}
					  }
					}
				}
				
				firstCorner = "";
				marker.setMap(null);
			}
	});
}





