var map;
var markers = [];
var zoomLVL = 5;
var Starter = new google.maps.LatLng('52.07000', '19.48000');

// MIASTA START
//Położenie miasta jeżeli "Miasto" ustawione + wybiera inwestycje
function getCity() {
	var cityValues = document.getElementById("Miasto").value;
	if (cityValues != parseInt(0) && cityValues.split(',') != undefined) {
		var city = cityValues.split(",");
		var id = parseFloat(city[0]);
		var lat = parseFloat(city[1]);
		var lng = parseFloat(city[2]);
		var latlng = new google.maps.LatLng(lat, lng);
		zoomLVL = 8;
		Starter = latlng;
		$(document).ready(function(){
			$.ajax({
				type: 'POST',
				url: '/bin/getInvestmentList.php',
				dataType: 'script',
				data: {
					id_city: id
				},
				success: function(data) {
					makeInvestments(data);
					makeMarkers(data);
				}
			});
		});
	} else {
		getCities();
		reset(1);
	}
	map.setZoom(zoomLVL);
	map.setCenter(Starter);
}

// Wybieramy miasta z bazy i wstawiamy markery 
function getCities() {
	zoomLVL = 5;
	Starter = new google.maps.LatLng('52.07000', '19.48000');
	$(document).ready(function(){
		$.ajax({
			type: 'POST',
			url: '/bin/getCities.php',
			dataType: 'script',
			data: {},
			success: function(data) {
				makeMarkers(data);
			}
		});
	});
	map.setZoom(zoomLVL);
	map.setCenter(Starter);
}
// MIASTA KONIEC

// INWESTYCJE START
//Położenie inwestycji jeżeli "Inwestycja" ustawiona + wybiera ...
function getInvestment() {
	var investmentValues = document.getElementById("Inwestycja").value;
	if (investmentValues != parseInt(0) && investmentValues.split(',') != undefined) {
		var investment = investmentValues.split(",");
		var id = parseFloat(investment[0]);
		var lat = parseFloat(investment[1]);
		var lng = parseFloat(investment[2]);
		Starter = new google.maps.LatLng(lat, lng);
		zoomLVL = 15;
		$(document).ready(function(){
			$.ajax({
				type: 'POST',
				url: '/bin/getFlatList.php',
				dataType: 'script',
				data: {
					id_investment: id
				},
				success: function(data) {
					makeFlat(data);
				}
			});
		});
	} else {
		reset(2);
	}
	map.setZoom(zoomLVL);
	map.setCenter(Starter);
}

// Budujemy listę inwestycji i wklejamy w SELECT'a
function makeInvestments(data) {
	var target = document.getElementById("Inwestycja");
	if (data.split(',') != undefined) {
		var innerData = data.split(';');
		var html = '';
		target.innerHTML = html;
		var i;
		html += "<option value=\"0\">-- wybierz --</option>\n";
		for (i = 0; i < innerData.length-1; i++) {
			var singleData = innerData[i].split(',');
			html += "<option value=\""+singleData[0]+","+singleData[4]+","+singleData[5]+","+singleData[2].replace(/\'/g,'')+"\"";
			if (parseInt(singleData[3]) == parseInt(1)) html += " selected=\"selected\"";
			html += ">"+singleData[1].replace(/\'/g,'')+"</option>\n";
		}
		target.innerHTML = html;
		$('#Inwestycja-button,#Inwestycja-menu').remove();
		$('select#Inwestycja').selectmenu({
				style: 'dropdown',
				open: function(e, data){
					var menu = $('ul#'+$(this).attr('id')+'-menu');
					menu.find('li:first-child.disabled').remove();
				}
		});

	}
}
//INWESTYCJE KONIEC

//POKOJE START
// Budujemy listę wg. ilości pokoi w inwestycji i wklejamy w SELECT'a
function makeFlat(data) {
	var target = document.getElementById("Pokoje");
	if (data.split(',') != undefined) {
		var innerData = data.split(',');
		var html = '';
		target.innerHTML = html;
		var i;
		html += "<option value=\"0\">-- wybierz --</option>\n";
		for (i = 0; i < innerData.length-1; i++) {
			html += "<option value=\""+innerData[i]+"\">"+innerData[i]+"</option>\n";
		}
		target.innerHTML = html;
		
		$('#Pokoje-button,#Pokoje-menu').remove();
		$('select#Pokoje').selectmenu({
				style: 'dropdown',
				open: function(e, data){
					var menu = $('ul#'+$(this).attr('id')+'-menu');
					menu.find('li:first-child.disabled').remove();
				}
		});
		
	}
}
//POKOJE KONIEC

//METRAŻE START
// Budujemy listę metraży i wklejamy w SELECT'a
function getFlatarea() {
	var inwestycja = document.getElementById("Inwestycja").value;
	if (inwestycja != parseInt(0) && inwestycja.split(',') != undefined) {
		var inwestycja_array = inwestycja.split(',');
	}
	var pokoje = document.getElementById("Pokoje").value;
	var target = document.getElementById("Metraz");
	if (pokoje != parseInt(0)) {
		$(document).ready(function(){
			$.ajax({
				type: 'POST',
				url: '/bin/getFlatareaList.php',
				dataType: 'script',
				data: {
					id_investment: inwestycja_array[0],
					pokoje: pokoje
				},
				success: function(data) {
					makeFlatarea(data);
				}
			});
		});
	} else {
		reset(3);
	}
}

function makeFlatarea(data) {
	var target = document.getElementById("Metraz");
	if (data.split(',') != undefined) {
		var innerData = data.split(',');
		var html = '';
		target.innerHTML = html;
		var i;
		html += "<option value=\"0\">-- wybierz --</option>\n";
		for (i = 0; i < innerData.length-1; i++) {
			html += "<option value=\""+innerData[i]+"\">"+innerData[i]+"</option>\n";
		}
		target.innerHTML = html;
		$('#Metraz-button,#Metraz-menu').remove();
		$('select#Metraz').selectmenu({
				style: 'dropdown',
				open: function(e, data){
					var menu = $('ul#'+$(this).attr('id')+'-menu');
					menu.find('li:first-child.disabled').remove();
				}
		});
	}
}
//METRAŻE KONIEC

function reset(data) {
	var Inwestycja = document.getElementById("Inwestycja");
	var Pokoje = document.getElementById("Pokoje");
	var Metraz = document.getElementById("Metraz");
	if (data == 1) {
		Inwestycja.innerHTML = "<option value=\"0\">-- wybierz --</option>\n";
		Pokoje.innerHTML = "<option value=\"0\">-- wybierz --</option>\n";
		Metraz.innerHTML = "<option value=\"0\">-- wybierz --</option>\n";
	} else if (data == 2) {
		Pokoje.innerHTML = "<option value=\"0\">-- wybierz --</option>\n";
		Metraz.innerHTML = "<option value=\"0\">-- wybierz --</option>\n";
	} else if (data == 2) {
		Metraz.innerHTML = "<option value=\"0\">-- wybierz --</option>\n";
	}
}

// GOOGLE MAPS START
// Inicjalizacja mapy
function initialize() {
	var myOptions = {
		disableDefaultUI: true,
		zoomControlOptions: {
			style: google.maps.ZoomControlStyle.SMALL
		},
		zoom: zoomLVL,
		center: Starter,
		mapTypeId: google.maps.MapTypeId.ROADMAP
	};
	map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
	//getCities();
	getCity();
	getInvestment();
}

//Inicjalizacja mapy dla widoku lokalizacja
function initialize2(lat, lng) {
	var data = new google.maps.LatLng(lat, lng);
	var myOptions = {
		disableDefaultUI: true,
		zoomControlOptions: {
			style: google.maps.ZoomControlStyle.SMALL
		},
		zoom: 17,
		center: data,
		mapTypeId: google.maps.MapTypeId.ROADMAP
	};
	map = new google.maps.Map(document.getElementById("lokalizacja"), myOptions);
	var marker = new google.maps.Marker( {
		title: '',
		position: data,
		draggable: false,
		raiseOnDrag: false,
		icon: image,
		shadow: shadow,
		shape: shape,
		map: map
	});
}

// Plik markera
var image = new google.maps.MarkerImage('/.templates/images/gmaps_marker.png',
		new google.maps.Size(21, 27), new google.maps.Point(0, 0),
		new google.maps.Point(11, 27));

// Cień markera
var shadow = new google.maps.MarkerImage('/.templates/images/gmaps_shadow.png',
		new google.maps.Size(39, 27), new google.maps.Point(0, 0),
		new google.maps.Point(11, 27));

// Klikalna powierzchnia
var shape = {
	coord: [ 20, 0, 20, 1, 20, 2, 20, 3, 20, 4, 20, 5, 20, 6, 20, 7, 20, 8,
			20, 9, 20, 10, 20, 11, 20, 12, 20, 13, 20, 14, 20, 15, 20, 16, 20,
			17, 20, 18, 20, 19, 20, 20, 19, 21, 13, 22, 11, 23, 11, 24, 11, 25,
			10, 26, 9, 26, 9, 25, 8, 24, 7, 23, 7, 22, 7, 21, 0, 20, 0, 19, 0,
			18, 0, 17, 0, 16, 0, 15, 0, 14, 0, 13, 0, 12, 0, 11, 0, 10, 0, 9,
			0, 8, 0, 7, 0, 6, 0, 5, 0, 4, 0, 3, 0, 2, 0, 1, 0, 0, 20, 0 ],
	type: 'poly'
};

// Kreacja markerów
function makeMarkers(data) {
	clearMarkers();
	var innerData = data.split(';');
	var i;
	for (i = 0; i < innerData.length-1; i++) {
		var singleData = innerData[i].split(',');
		var pozycja = new google.maps.LatLng(singleData[4], singleData[5]);
		markers[i] = new google.maps.Marker( {
			title: singleData[1].replace(/\'/g,''),
			position: pozycja,
			draggable: false,
			raiseOnDrag: false,
			icon: image,
			shadow: shadow,
			shape: shape,
			map: map
		});
		addListener(markers[i],singleData[6]);
		markers[i].setMap(map);
	}
}

// Czyszczenie markerów
function clearMarkers() {
	if (markers) {
		for (i in markers) {
			markers[i].setMap(null);
		}
		markers.length = 0;
	}
}

//GOOGLE MAPS
//AKCJE MARKERÓW START
function addListener(marker,data) {
	google.maps.event.addListener(marker, 'click', function() {
		var list = data.replace(/\'/g,'').split('-');
		var target = document.getElementById(list[0]);
		for (var j=0;j<target.options.length;j++) {
		    if (target.options[j].text.toString() == list[1].toString())
		        target.options[j].selected = true;
		}
		if (list[0] == 'Miasto') {
			getCity();
		}
		else if (list[0] == 'Inwestycja') {
			getInvestment();
		}
		$(".ui-selectmenu").remove();
		$('select').selectmenu({
			style: 'dropdown',
			open: function(e, data){
				var menu = $('ul#'+$(this).attr('id')+'-menu');
				menu.find('li:first-child.disabled').remove();
				}
		});
	});
}
//AKCJE MARKERÓW KONIEC
//GOOGLE MAPS

//GOOGLE MAPS KONIEC

