/*
05/08/2010
Licencja na użytek prywatny i komercyjny. Wymaga pozostawiania poniższych danych o autorze i pochodzeniu skryptu.
Autor: Labsta.com Laboratorium Designu
Skrypt pochodzi ze strony http://websta.pl - Blog o grafice i projektowaniu stron
Dokumentacja: http://websta.pl/download/google-maps-jquery-plugin-do-wstawiania-map-google-na-strone
*/

/* opcje
			pozycjas: --- szerokość geograficzna
			pozycjad: ---długość geograficzna
			
			zoom: --- powiększenie mapy cyfry od 1 (domyślnie 18)
			nawigacja: --- tak/nie - menu nawigacyjne na mapie
			typ:  --- rodzaj mapy: mapa, teren, satelita, hybryda
			
			chmurka: --- otwarta/zamknieta - stan chmurki po wczytaniu mapy (domyślnie zamknięta), bez markera zawsze otwarta
			opis: --- zawartość chmurki - kod html
			szerokosc: --- maksymalna szerokośc chmurk
			
			tytul: --- tytuł markera po najechaniu (tak jak title przy linku)
			marker: --- tak/nie pokazanie markera
*/

(function($) {
	
	$.fn.mapsta = function(options) {
		
		var defaults = {
			pozycjas: '',
			pozycjad: '',
			zoom: 18,
			nawigacja: 'tak',
			typ: 'mapa',
			opis: '',
			chmurka: 'zamknieta',
			szerokosc: '',
			tytul: '',
			marker: 'tak'
		},
		
		settings = $.extend({}, defaults, options); 
		
		
		
		
		/* nawigacja mnavi */
		switch (settings.nawigacja) {
			case 'tak' :
				mnavi = false;
			break;
			
			case 'nie' :
				mnavi = true;
			break;
		}
		
		/* typ mapy mtyp */
		switch (settings.typ) {
			case 'mapa' :
				mtyp = google.maps.MapTypeId.ROADMAP;
			break;
			
			case 'teren' :
				mtyp = google.maps.MapTypeId.TERRAIN;
			break;
			
			case 'satelita' :
				mtyp = google.maps.MapTypeId.SATELLITE;
			break;
			
			case 'hybryda' :
				mtyp = google.maps.MapTypeId.HYBRID;
			break;
		}
		
		
		var mpozycja = new google.maps.LatLng(settings.pozycjas, settings.pozycjad);
		var ustawienia = {   
						center: mpozycja,
						zoom: settings.zoom,   
						disableDefaultUI: mnavi,
						mapTypeId: mtyp  ,
						mapTypeControl: false
					}; 
		var mapa = new google.maps.Map($(this).get(0), ustawienia);
	
		if(settings.marker == 'tak'){
			var marker = new google.maps.Marker({
					position: mpozycja,
					map: mapa,
					title: settings.tytul
			});
		}	
		
		if(settings.opis.length > 0){
			
			
			var contentString = settings.opis;
			
			var infowindow = new google.maps.InfoWindow({
				position: mapa.getCenter(),
				content: contentString,
				maxWidth: settings.szerokosc
			});
			
			if(settings.marker == 'tak'){
				if(settings.chmurka == 'zamknieta'){
					google.maps.event.addListener(marker, 'click', function() {
						infowindow.open(mapa,marker);
					});
				}else if(settings.chmurka == 'otwarta'){
					
					infowindow.open(mapa,marker);
					google.maps.event.addListener(marker, 'click', function() {
						infowindow.open(mapa,marker);
					});
					
				}
				
				google.maps.event.addListener(mapa, 'click', function() {
					infowindow.close();
				});
				
			}else{
				infowindow.open(mapa);
			}
			
			
		}
			
			
	} 
	
})(jQuery);
