/* modal window */
var modalWindow;
var markerPocz;
var markerDoc;
var clickedPixel;
var clickedAdr;

function pokazAdresLatLng(adres, lat, lng, typ, modalWindow)
{
	var point = new GLatLng(lat, lng);
	var marker = createMarker(point, adres, adres, typ);
	map.addOverlay(marker);
	map.panTo(point);
	if (modalWindow == 0)
	{
		if (markerPoczatkowy != null)
			map.removeOverlay(markerPoczatkowy);
		markerPoczatkowy = marker;
	} else
	{
		if (markerDocelowy != null)
			map.removeOverlay(markerDocelowy);
		markerDocelowy = marker;
	}

	return marker;
}

$(document).ready(function() {

	autocompleteInit();


	//============== widget godzina ===============
	$("#godzina").timeEntry({
		spinnerImage: 'gfx/timeentry/kiedy_switcher.gif',
		spinnerSize: [26, 26, 8]
	});

	//============== widget data ===============
	$("#data").dateEntry({
		dateFormat: 'dmy-',
		spinnerImage: 'gfx/timeentry/kiedy_switcher.gif',
		spinnerSize: [26, 26, 8]
	});

	//============== dropdowny - srodki komunikacji ===========
	$("#autobusy_dropdown").hide();
	$("#autobusy_container").hover( function() {
		$("#autobusy_dropdown").slideDown("fast");
	}, function() {
		$("#autobusy_dropdown").slideUp("fast");
	});

	$("#tramwaje_dropdown").hide();
	$("#tramwaje_container").hover( function() {
		$("#tramwaje_dropdown").slideDown("fast");
	}, function() {
		$("#tramwaje_dropdown").slideUp("fast");
	});

	//============== checkbox'y autobusow ==================
	// wlaczanie/wylaczanie checkbox'ow autobusow
	$("#autobusy_container > .title > label > input").click( function() {
		if($(this).attr("checked")) {
			//alert("1");
			$("#autobusy_dropdown > ul > li > label > input").attr("checked","checked");
		} else {
			//alert("0");
			$("#autobusy_dropdown > ul > li > label > input").removeAttr("checked");
		}
	});

	// sprawdz czy jakis autobus jest wybrany
	$("#autobusy_dropdown > ul > li > label > input").click( function() {
		if(($("#autobusy_dropdown > ul > li > label > input:checked").length) > 0) {
			//alert("1");
			$("#autobusy_container > .title > label > input").attr("checked","checked");
		} else {
			//alert("0");
			$("#autobusy_container > .title > label > input").removeAttr("checked");
		}
	});

	//============== checkbox'y tramwajow ==================
	// wlaczanie/wylaczanie checkbox'ow tramwajow
	$("#tramwaje_container > .title > label > input").click( function() {
		if($(this).attr("checked")) {
			//alert("1");
			$("#tramwaje_dropdown > ul > li > label > input").attr("checked","checked");
		} else {
			//alert("0");
			$("#tramwaje_dropdown > ul > li > label > input").removeAttr("checked");
		}
	});

	// sprawdz czy jakis tramwaj jest wybrany
	$("#tramwaje_dropdown > ul > li > label > input").click( function() {
		if(($("#tramwaje_dropdown > ul > li > label > input:checked").length) > 0) {
			//alert("1");
			$("#tramwaje_container > .title > label > input").attr("checked","checked");
		} else {
			//alert("0");
			$("#tramwaje_container > .title > label > input").removeAttr("checked");
		}
	});

	//============== panel zaawansowane =================
	var toggleState;
	var firstTimer = true;
	if($.cookie("kmAdvPanelToggleState")) {
		toggleState = $.cookie("kmAdvPanelToggleState");
		//alert("cookie is set to: "+toggleState);
	} else {
		toggleState = 0;
		//alert("no cookie");
	}

	changeVisibility();
	firstTimer = false;

	$("#advanced_tab > a").click( function() {
		toggleState = (toggleState == 0) ? 1 : 0;
		changeVisibility();
		var date = new Date();
		date.setTime(date.getTime() + (30 * 24 * 60 * 60 * 1000));
		$.cookie("kmAdvPanelToggleState",toggleState, { path:'/', expires: date });
		return false;
	});

	function changeVisibility() {
		if (toggleState == 1) {
			firstTimer ? $("#advanced_panel").show() : $("#advanced_panel").slideDown("fast");
			$("#advanced_tab").removeClass("open");
			$("#advanced_tab").addClass("close");
		} else {
			firstTimer ? $("#advanced_panel").hide() : $("#advanced_panel").slideUp("fast");
			$("#advanced_tab").removeClass("close");
			$("#advanced_tab").addClass("open");
		}
	}

	//============== widget zamian pol ==============
	var tmpImg = "<img src='gfx/button_switch.gif' alt='<>'/>";
	var tmpA = "<a id='switch_fields' href='#'>" + tmpImg + "</a>";
	$("#main_panel").append(tmpA);
	$("#switch_fields").attr("title", loc_wyszuk_zamien);
	$("#switch_fields").click(function()
	{
		if ($("#stopListFrom"))
		{
			var val = $("#stopListFrom").val();
			$("#stopListFrom").replaceWith("<input type='text' name='p.poczatek' value='" + val + "' class='text' tabindex='1' id='stopFrom'/>");

		}
		if ($("#stopListTo"))
		{
			var val = $("#stopListTo").val();
			$("#stopListTo").replaceWith("<input type='text' name='p.koniec' value='" + val + "' class='text' tabindex='2' id='stopTo'/>");
		}

		var tmp = $("#stopFrom").val();
		$("#stopFrom").val($("#stopTo").val());
		$("#stopTo").val(tmp);
		oznaczPrzyst($("#stopFrom").val(), 0);
		oznaczPrzyst($("#stopTo").val(), 1);

		return false;
	});

	// TODO: mozna by zrobic refresh samych ikon poczatku i konca,
	// zeby po zmianie pol pokazywaly wlasciwe mijsca na mapie

	var showStops = $("#show_stops_check").attr("checked");
	if ($.cookie("kmAdvShowStops") == 'true')
		$("#show_stops_check").attr("checked", "checked");

	//================= zaladuj mape p =================
	loadMaps(onMapLoaded, showStops);


});


function beforeSubmit(form)
{
//	var all = true;
//	$("input[name^='p.srKom[']").each(function()
//	{
//		var value = $(this).attr("checked");
//		alert($(this).attr("name") + " " + value);
//		if (value == false || value == undefined)
//		{
//			all = false;
//		}
//	});
//	if (all == true)
//	{
//		$("input[name^='p.srKom[']").each(function()
//		{
//			if ($(this).attr("name") != 'p.srKom[0]' && $(this).attr("name") != 'p.srKom[10]')
//				$(this).remove();
//		});
//		$("input[name='p.srKomWszystkie']").val("true");
//	}
	return true;
}

function onMapLoaded()
{
		// === create the context menu div ===
		var ctxM = document.createElement("div");
		var submenu = subMenu();
		var cmark;
		GEvent.addListener(map, "singlerightclick", function(pixel,tile)
		{
			var point = map.fromContainerPixelToLatLng(pixel);

			// loader
			var x = pixel.x;
			var y = pixel.y;
			if (x > map.getSize().width - 200) { x = map.getSize().width - 200 }
			if (y > map.getSize().height - 250) { y = map.getSize().height - 250 }
			var pos = new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(x,y));
			ctxM.innerHTML = "<div id='ctx_menu'><ul class='ac_results'><li><img src='gfx/autocomplete_loading.gif'/></li></ul></div>";
			ctxM.style.visibility = "visible";
			submenu.style.visibility = "hidden";
			map.getContainer().appendChild(ctxM);
			pos.apply(ctxM);

			$.get("GMAdres",{lat:point.lat(), lng:point.lng()}, function(data)
			{
				if (cmark)
					map.removeOverlay(cmark);
				cmark = createMarker(point, "", "", TYPMARK_WSKAZNIK);
				map.addOverlay(cmark);
				var adrs = data.getElementsByTagName("p");
				if (adrs.length > 0)
				{
					clickedAdr = new Array();
					for (var i = 0; i < 5 && i < adrs.length; i++)
					{
						var adr = adrs[i].firstChild.nodeValue;
						clickedAdr.push(adr);
					}

					html = "<div id='ctx_menu'><ul class='ac_results'>";
					html += "<li style='font-size:11px;'>" + loc_najblizszeAdresy + "</li>";
					for (var j =0 ; j < clickedAdr.length; j++)
					{
						var typ = adrs[j].getAttribute("typ");
						var img = getIcon(typ);
						html += "<li style='font-size:11px;' rel='" + j + "' class='ac_event'>"
								+ img + "&#160;<strong>" + clickedAdr[j] + "</strong></li>";
					}
					html+="</ul></div>";
					ctxM.innerHTML = html;
					clickedPixel = pixel;
					//loaderElem.style.visibility = "hidden";
					$("#ctx_menu ul li.ac_event").hover(function() {
						if (ctxM.style.visibility=="hidden")
							return;
						$("#ctx_menu ul li").removeClass("ac_over");
						$(this).addClass("ac_over");

						var val = $(this).attr("rel");
						var width = $("#ctx_menu").width();
						if (x + width + 130 > map.getSize().width)
							xx = map.getSize().width - 130;
						else
							xx = x + width;
						var subPos = new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(xx, y + 30 + val*25));
						submenu.style.visibility = "visible";
						submenu.selected_item = val;
						subPos.apply(submenu);

					});
					$("#ctx_submenu ul li.ac_event").hover(function() {
						$("#ctx_submenu ul li").removeClass("ac_over");
						$(this).addClass("ac_over");
					});
					$("#ctx_submenu ul li.ac_event").click(function() {
						if (ctxM.style.visibility=="hidden")
							return;

						ctxM.style.visibility="hidden";
						submenu.style.visibility="hidden";

						var type = $(this).attr("rel");
						var point = map.fromContainerPixelToLatLng(clickedPixel);

						if (type == "poczatek")
						{
							oznaczPrzyst(clickedAdr[submenu.selected_item], 0);
							aktualnyMarker = null;
							jakoPoczatkowy(clickedAdr[submenu.selected_item]);
						}
						else
						{
							oznaczPrzyst(clickedAdr[submenu.selected_item], 1);
							aktualnyMarker = null;
							jakoDocelowy(clickedAdr[submenu.selected_item]);
						}
						//createCtxMenu(ctxM)
						if (cmark)
							map.removeOverlay(cmark);
					});
				}
			});
		});

		GEvent.addListener(map, "click", function()
		{
				ctxM.style.visibility="hidden";
				submenu.style.visibility="hidden";
				if (cmark)
					map.removeOverlay(cmark);
		});

		checkPieszeSelect();
		$("#piesze_select").change(function(){
			checkPieszeSelect();
		});
}

function checkPieszeSelect()
{
	if ($("#piesze_select").val() == 0)
		$("#maxWalk").removeAttr("disabled");
	else
		$("#maxWalk").attr("disabled", "disabled");
}


function subMenu()
{
	var ctxM = document.createElement("div");
	var html = "<div id='ctx_submenu'><ul class='ac_results'>";
	html += "<li class='ac_event' rel='poczatek'><img src='gfx/ico_tabh_poczatek.gif'></img><span>" + loc_oznaczJakoPoczatkowy + "</span></li>" +
	"<li class='ac_event' rel='koniec'><img src='gfx/ico_tabh_koniec.gif'></img><span>" + loc_oznaczJakoDocelowy 	+ "</span></li>" +
	"</ul></div>";
	ctxM.innerHTML = html;
	ctxM.style.zIndex = "1";
	ctxM.style.visibility = "hidden";
	map.getContainer().appendChild(ctxM);
	return ctxM;
}

