var map = null;
var geocoder = null;
var marker = null;
var result = null;
var mgr = null;

	function placeMark(address){
				result = 0;
				var tinyIcon = new GIcon();
				tinyIcon.image = "http://labs.google.com/ridefinder/images/mm_20_red.png";
				tinyIcon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
				tinyIcon.iconSize = new GSize(12, 20);
				tinyIcon.shadowSize = new GSize(22, 20);
				tinyIcon.iconAnchor = new GPoint(6, 20);
				tinyIcon.infoWindowAnchor = new GPoint(5, 1);
				
				geocoder = new GClientGeocoder();
				geocoder.getLatLng(
						address,
						function(point) {
							if (!point) {
								var arr = new Array();
								var str = '';
								arr = address.split(',');
								var len = arr.length;
								if(len>0){
									for(var i =0;i<len-2;i++){
										str+=arr[i]+",";
									}
									placeMark(str);
								}else{
									placeMark("Poland");
								}
								
							} else {
								map.setCenter(point, 13);
								marker = new GMarker(point, {draggable: true,icon:tinyIcon});
								$("#firm_longitude").val(marker.getPoint().x);
								$("#firm_latitude").val(marker.getPoint().y);
								GEvent.addListener(marker, "dragstart", function() {
										//map.closeInfoWindow();
										});
									 
									GEvent.addListener(marker, "dragend", function() {
										//marker.openInfoWindowHtml("więc to tutaj? ;>");
										
										$("#firm_longitude").val(marker.getPoint().x);
										$("#firm_latitude").val(marker.getPoint().y);
										});
								result++;
								map.addOverlay(marker);
							
								//marker.openInfoWindowHtml(address);
							}
						}
						
					);
			
				return result;
};

function placeMarkXY(longitude,latitude){
				
				var tinyIcon = new GIcon();
				tinyIcon.image = "http://labs.google.com/ridefinder/images/mm_20_red.png";
				tinyIcon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
				tinyIcon.iconSize = new GSize(12, 20);
				tinyIcon.shadowSize = new GSize(22, 20);
				tinyIcon.iconAnchor = new GPoint(6, 20);
				tinyIcon.infoWindowAnchor = new GPoint(5, 1);
				
				var point = new GPoint(latitude,longitude);
				map.setCenter(new google.maps.LatLng(latitude, longitude), 13);
				var marker = new GMarker(new google.maps.LatLng(latitude, longitude), {draggable: true,icon: tinyIcon});
				
				$("#firm_longitude").val(longitude);
				$("#firm_latitude").val(latitude);
			
				GEvent.addListener(marker, "dragstart", function() {
						//map.closeInfoWindow();
						});
					 
					GEvent.addListener(marker, "dragend", function() {
						//marker.openInfoWindowHtml("więc to tutaj? ;>");
						
						$("#firm_longitude").val(marker.getPoint().x);
						$("#firm_latitude").val(marker.getPoint().y);
						});
				map.addOverlay(marker);
				
								
					
			
};

function placeMarkToUpd(longitude,latitude){
				
				
				var point = new GPoint(latitude,longitude);
				map.setCenter(new google.maps.LatLng(latitude, longitude), 13);
				var marker = new GMarker(new google.maps.LatLng(latitude, longitude), {draggable: true});
				
				$("#firm_longitude").val(longitude);
				$("#firm_latitude").val(latitude);
			
				GEvent.addListener(marker, "dragstart", function() {
						//map.closeInfoWindow();
						});
					 
					GEvent.addListener(marker, "dragend", function() {
						//marker.openInfoWindowHtml("więc to tutaj? ;>");
						
						$("#firm_longitude").val(marker.getPoint().x);
						$("#firm_latitude").val(marker.getPoint().y);
						});
				map.addOverlay(marker);				
			
};



function placeMarkXYStat(longitude,latitude){
			
				
				var point = new GPoint(latitude,longitude);
				map.setCenter(new google.maps.LatLng(latitude, longitude), 13);
				var marker = new GMarker(new google.maps.LatLng(latitude, longitude));
				
			
				map.addOverlay(marker);
								
					
			
};

var bounds = null;
function placeFirmMark(longitude,latitude,name,link){
		
				var point = new GPoint(latitude,longitude);
				var marker = new GMarker(new google.maps.LatLng(latitude, longitude));
				
				//map.setCenter(new google.maps.LatLng(latitude, longitude), 13);	 
					GEvent.addListener(marker, "click", function() {
							marker.openInfoWindowHtml(name,{maxWidth:100});
							
						
						});
					
					

				map.addOverlay(marker);
				bounds.extend(marker.getPoint());
}


function findCity(address){
				
			map.setCenter(bounds.getCenter(),map.getBoundsZoomLevel(bounds));
			
				geocoder = new GClientGeocoder();
				geocoder.getLatLng(
						address,
						function(point) {
							if (!point) {
								
								
							} else {
								//map.setCenter(point, 10);
								
								$("#longitude").val(point.x);
								$("#latitude").val(point.y);
								
							
								//marker.openInfoWindowHtml(address);
							}
						}
						
					);
				//console.log(bounds.getCenter());
				if(bounds.getCenter().x ==180 && bounds.getCenter().y == 0){
					
				geocoder = new GClientGeocoder();
				geocoder.getLatLng(
						address,
						function(point) {
							if (!point) {
								var arr = new Array();
								var str = '';
								arr = address.split(',');
								var len = arr.length;
								if(len>0){
									for(var i =0;i<len-2;i++){
										str+=arr[i]+",";
									}
									findCity(str);
								}else{
									findCity("Poland");
								}
								
							} else {
								map.setCenter(point, 10);
								
								$("#longitude").val(point.x);
								$("#latitude").val(point.y);
								
							
								//marker.openInfoWindowHtml(address);
							}
						}
						
					);
				}
			
				 
				return result;
};


function placeMarkNoMap(address){
				result = 0;
				
				geocoder = new GClientGeocoder();
				geocoder.getLatLng(
						address,
						function(point) {
							if (!point) {
								var arr = new Array();
								var str = '';
								arr = address.split(',');
								var len = arr.length;
								if(len>0){
									for(var i =0;i<len-2;i++){
										str+=arr[i]+",";
									}
									placeMarkNoMap(str);
								}else{
									placeMarkNoMap("Poland");
								}
								
							} else {
								
								marker = new GMarker(point);
								$("#firm_longitude").val(marker.getPoint().x);
								$("#firm_latitude").val(marker.getPoint().y);
								$('#send').val('save');
								result++;
								
							}
						}
						
					);
			
				return result;
};



$(document).ready(function(){
		
	
		var m = $("#map")[0]; 
		map = new GMap2(m);
		 var customUI = map.getDefaultUI();
		 customUI.controls.menumaptypecontrol = true; // wylaczamy standardowy pasek zmiany maptype
		 customUI.controls.maptypecontrol = false; // wlaczamy wersje rozwijana
		 map.setUI(customUI);

		 map.enableContinuousZoom();
		 map.disableGoogleBar();
		//map.setCenter(new GLatLng(20,50), 13);
		//map.addControl(new GSmallMapControl());
		bounds = new GLatLngBounds();
		
	
});
