$(document).ready(function(){	
	var map;
	var geo;
	var info;
	
	if($("#map").length){
		var lat = 51.919438;
		var lng = 19.145136;
		
		var lat = 52.2274612;
		var lng = 15.2559103;
		
		var lat = 51.9356214;
		var lng = 15.5061862;
		
		var zoom = 10;
		var marker = new Array();
						
		var defaultLocation = new google.maps.LatLng(lat, lng);   
		var mapOptions = {
			zoom: zoom,
			center: defaultLocation,
			mapTypeId: google.maps.MapTypeId.TERRAIN,
			mapTypeControl: true,
			navigationControl: true,
			zoomControl: true,
    		scaleControl: true,
			//navigationControlOptions: {
				//style: google.maps.NavigationControlStyle.SMALL
			//},
		};  
		map = new google.maps.Map($("#map").get(0), mapOptions);
		geo = new google.maps.Geocoder();
		info = new google.maps.InfoWindow();
		var icon_size = new google.maps.Size(21,31);
		var icon_start = new google.maps.Point(0,0);
		var icon_handle = new google.maps.Point(5,33);  
		var icon = new google.maps.MarkerImage("http://www.straz.zgora.pl/IMAGES/icons/event.png",icon_size,icon_start,icon_handle);
		//
		map.setZoom(zoom);
		for(var i=0; i<events_array.length; i++){
			if( events_array[i][2] && events_array[i][3] ){
				var marker_position = new google.maps.LatLng(events_array[i][2], events_array[i][3]);
				googleMap_addMarker( events_array[i][0], marker_position, {title: events_array[i][4], draggable: false, icon: icon});
			}else if( events_array[i][1] ){
				googleMap_setPoint( events_array[i][1], events_array[i][0], events_array[i][4], {title: events_array[i][4], draggable: false, icon: icon}, true );
			}
			
		}
		
		
	}
	
	function googleMap_getStage( address ) { 
		geo.geocode( { 'address': address}, 
			function(results, status) {
			if (status == google.maps.GeocoderStatus.OK) {
				var latlngString = String(results[0].geometry.location);
				latlngString = latlngString.replace('(','');
				latlngString = latlngString.replace(')','');
				latlngString = latlngString.replace(' ','');
									
				var latlngStr = latlngString.split(",",2);
				var lat = parseFloat(latlngStr[0]);
				var lng = parseFloat(latlngStr[1]);
				
				var point = new google.maps.LatLng(lat,lng);
				if( point ) map.setCenter(point);
				map.setZoom(8);
				
			} else {
				return '';
			}
		});		
	}
	
	function googleMap_setPoint( address, marker_id, city, marker_options, savepoint ) { 
		
	
		geo.geocode( { 'address': address}, 
			function(results, status) {
			if (status == google.maps.GeocoderStatus.OK) {
				var latlngString = String(results[0].geometry.location);
				latlngString = latlngString.replace('(','');
				latlngString = latlngString.replace(')','');
				latlngString = latlngString.replace(' ','');
									
				var latlngStr = latlngString.split(",",2);
				var lat = parseFloat(latlngStr[0]);
				var lng = parseFloat(latlngStr[1]);
				
				/*if( savepoint == true ){
					$.ajax({
						type: "GET",
						url: "/Admin/CORE/core.ajax.sellpoint.php",
						data: "askType=set-sellpoint&id="+marker_id+'&lat='+lat+'&lng='+lng,
						dataType: "xml",
						success: function(xml){ },
						error: function(){}
					});
				}*/
				var marker_position = new google.maps.LatLng(lat,lng);
				if( marker_position ) googleMap_addMarker( marker_id, marker_position, marker_options );
			}else if(status == google.maps.GeocoderStatus.ZERO_RESULTS){
				
				geo.geocode( { 'address': city}, 
				function(results, status) {
					if (status == google.maps.GeocoderStatus.OK) {
						var latlngString = String(results[0].geometry.location);
						latlngString = latlngString.replace('(','');
						latlngString = latlngString.replace(')','');
						latlngString = latlngString.replace(' ','');
											
						var latlngStr = latlngString.split(",",2);
						var lat = parseFloat(latlngStr[0]);
						var lng = parseFloat(latlngStr[1]);
	
						var marker_position = new google.maps.LatLng(lat,lng);
						if( marker_position ) googleMap_addMarker( marker_id, marker_position, marker_options );
					}
				});
				
			}else if(status == google.maps.GeocoderStatus.OVER_QUERY_LIMIT){
				
			} else {
				return '';
			}
		});		
	}
		  
	function googleMap_addMarker( marker_id, marker_position, marker_options ){
		info.close();
		marker_options.position = marker_position;
		marker_options.map = map; // obiekt mapa jest obiektem globalnym!   
		if(!marker[marker_id]){
			marker[marker_id] = new google.maps.Marker(marker_options);
				
				google.maps.event.addListener(marker[marker_id],'click',function(){   
					
					info.setContent( events_info_array[marker_id] );     
					info.setPosition(marker[marker_id].getPosition());     
					info.open(map, marker[marker_id]);  		 
				});
				
		}else{
			marker[marker_id].setPosition( marker_position );
		}
	}
	
	$('ol.map-points li').click(function(){
		var event_id = $(this).attr('id');
		if(marker[event_id]){

			var latlngString = String(marker[event_id].getPosition());
			latlngString = latlngString.replace('(','');
			latlngString = latlngString.replace(')','');
			latlngString = latlngString.replace(' ','');
								
			var latlngStr = latlngString.split(",",2);
			var lat = parseFloat(latlngStr[0]);
			var lng = parseFloat(latlngStr[1]);
			
			var point = new google.maps.LatLng(lat,lng);
			if( point ) map.setCenter(point);
			map.setZoom(13);
			
			info.close();
			info.setContent( events_info_array[event_id] );     
			info.setPosition(marker[event_id].getPosition());     
			info.open(map, marker[event_id]);  
		}else{
			sell_point_num = 0;
			for(var i=0;i<events_array.length;i++){
				if(events_array[i][0] == event_id){ sell_point_num = i; break; }
			}
			googleMap_setPoint( events_array[sell_point_num][1], event_id, {title: events_array[sell_point_num][4], draggable: false, icon: icon}, true );	
		}
	});

});
