var sg_aktywna;
var sg_ids = new Array();
var sg_ilosc = 0;
var sg_poprzednia_wartosc;
var sg_timer;
var sg_pokaz_v = false;
var sg_wybrane_id = 0;
var sg_widoczne = false;
var sg_woj = 0;
var sg_nie_uzupelniaj = 1;
var sg_kategoria = 0;
var sg_submit_id;

function sg_zakoncz() {
	obj = document.getElementById("miejscowosc");
	if(!document.all)
		obj.removeEventListener("keyup", sg_key, false);
	else
		obj.detachEvent("onkeyup", sg_key);
	sg_submit(false);
	sg_pokaz(false);
}

function sg_wojewodztwo(nr, czysc)
{
	sg_woj = nr;
	if(czysc) {
		sg_wybrane_id = 0;
		document.getElementById('miejscowosc_id').value = 0;
		document.getElementById('miejscowosc').value = '';
	}
}

function sg_highlight(nr, aktywna)
{
	document.getElementById("sg_podpowiedz" + nr).className = aktywna ? "sg_hover" : "";
	document.getElementById("sg_podpowiedz" + nr).scrollIntoView(false);
	document.getElementById("sg_podpowiedz_woj" + nr).className = aktywna ? "sg_hover" : "";
	document.getElementById("sg_podpowiedz_woj" + nr).scrollIntoView(false);
}

function sg_submit(pokaz)
{
	if(document.getElementById("sg_submit"))
		sg_submit_id = document.getElementById("sg_submit");
	else
		sg_submit_id = document.getElementById("co_submit");

	sg_submit_id.disabled = pokaz ? true:false;
}

function sg_key(l)
{
	window.clearTimeout(sg_timer);
	sg_submit(true);
	switch(l.keyCode)
	{
		case 13:
			if(sg_widoczne) {
				sg_wybierz(sg_aktywna, sg_ids[sg_aktywna]);
				sg_submit(false);
			}
			break;
		case 27:
			sg_wybrane_id = 0;
			sg_poprzednia_wartosc = "";
			sg_pokaz(false);
			break;
		case 38:
			if(sg_wybrane_id > 0)
				break;
			if(sg_aktywna <= 0)
				break;
			sg_highlight(sg_aktywna, false);
			sg_aktywna--;
			sg_highlight(sg_aktywna, true);
			break;
		case 40:
			if(sg_wybrane_id > 0)
				break;
			if(sg_aktywna + 1 >= sg_ilosc)
				break;
			sg_highlight(sg_aktywna, false);
			sg_aktywna++;
			sg_highlight(sg_aktywna, true);
			break;
		default:
			sg_wybrane_id = 0;
			temp = document.getElementById("miejscowosc").value;
			if(sg_poprzednia_wartosc == temp)
				break;
			if(temp.length >= 3) {
				sg_timer = window.setTimeout(sg_pobierz, 100);//400
				return;
			} else {
				document.getElementById("miejscowosc_id").value = '';
				sg_pokaz(false);
				sg_submit(false);
			}
			break;
	}
	if((l.keyCode == 38 || l.keyCode == 40) && sg_wybrane_id == 0 && sg_pokaz_v == true)
	{
		l.returnValue = false;
		if(!document.all)
			l.preventDefault();
		return false;
	}
}

function sg_mouseover(nr)
{
	sg_highlight(sg_aktywna, false);
	sg_aktywna = nr;
	sg_highlight(sg_aktywna, true);
}

function sg_pobierz()
{
	sg_submit(true);
	sg_poprzednia_wartosc = document.getElementById("miejscowosc").value;
	if(sg_poprzednia_wartosc.length < 3 || sg_wybrane_id > 0)
		return;

	if(sg_kategoria == 0)
		var tmp_url = "/index/allcity";
	else
		var tmp_url = "/index/city";

	advAJAX.post({
		url : tmp_url,
		parameters : { name: sg_poprzednia_wartosc.replace(/-/," "), woj: sg_woj, kat: sg_kategoria },
		onInitialization : function(obj) { if(window.opera) obj.url += "/l/1"; },
		onSuccess : function(obj) { sg_wyswietl(obj.responseText) },
		onError : function(obj) { sg_pokaz(true); document.getElementById("sg_podpowiedzi").innerHTML = "Error"; }
	});
}

function sg_pokaz(widoczne)
{
	sg_widoczne = widoczne;
	document.getElementById("sg_span_podpowiedz").style.marginLeft = widoczne ? "0" : "-2000px";
	document.getElementById("sg_podpowiedzi").style.marginLeft = widoczne ? "0" : "-2000px";
}

function sg_przygotuj(kategoria)
{
	sg_nie_uzupelniaj = 1;
	if(kategoria)
		sg_kategoria = kategoria;

	obj = document.getElementById("miejscowosc");
	if(!document.all)
		obj.addEventListener("keyup", sg_key, false);
	else
		obj.attachEvent("onkeyup", sg_key);
	obj.onblur = function() {
		sg_submit(false);
	};
	sg_pokaz(false);
}

function sg_wybierz(nr, id)
{
	document.getElementById("miejscowosc_id").value = sg_wybrane_id = id;
	document.getElementById("miejscowosc").value = document.getElementById("sg_podpowiedz" + nr).innerHTML;
	document.getElementById("sg_podpowiedzi").innerHTML = '';
	sg_pokaz(false);
	sg_submit(false);
	window.setTimeout(function() { document.getElementById("miejscowosc").focus(); }, 50);//100
}

function sg_wyswietl(s)
{
	s = s.substring(6, s.lastIndexOf('<'));
	if(s.length == 0) {
		document.getElementById("miejscowosc_id").value = '';
		document.getElementById("sg_podpowiedzi").innerHTML = '<b style="width:100%;background-color:#ffffff;">Brak pasującej miejscowości</b>';
		document.getElementById("sg_podpowiedzi").style.height = "17px";
		document.getElementById("sg_podpowiedzi").style.padding = "3px";
		document.getElementById("sg_podpowiedzi").style.width = "250px";
		sg_submit(true);
		sg_pokaz(true);
		window.setTimeout(function() { document.getElementById("miejscowosc").focus() }, 50);//100
		return;
	}
	s = s.split("\n");
	if(sg_nie_uzupelniaj == 0 && s.length == 5)
	{
		document.getElementById("miejscowosc_id").value = s[0];
		sg_submit(false);
		with(document.getElementById("sg_podpowiedzi").style)
		{
			height = "auto";
			width = "auto";
			overflow = "visible";
		}
		document.getElementById("miejscowosc").value = s[1];
		sg_pokaz(false);
		window.setTimeout(function() { document.getElementById("miejscowosc").focus() }, 50);//100
		return;
	}
	sg_ilosc = s.length / 5;
	ret = "";
	document.getElementById("miejscowosc_id").value = '';
	for(i = 0;i < sg_ilosc;i++) {
		pow = '';
		if(s[i * 5 + 4] == 0)
			pow = ' (' + s[i * 5 + 2] + ')';
		ret += '<div style="float:left;width:250px;"><a id="sg_podpowiedz' + i + '" href="#" onmousedown="sg_wybierz(' + i + ', ' + s[i * 5] + ');sg_pobierz();sg_submit(false);" onclick="sg_wybierz(' + i + ', ' + s[i * 5] + ')" onmouseover="sg_mouseover(' + i + ')" style="font-weight:bold;">' + s[i * 5 + 1] + '</a> <a id="sg_podpowiedz_woj' 	+ i + '" href="#" onmousedown="sg_wybierz(' + i + ', ' + s[i * 5] + ');sg_pobierz();sg_submit(false);" onclick="sg_wybierz(' + i + ', ' + s[i * 5] + ')" onmouseover="sg_mouseover(' + i + ')">' + s[i * 5 + 3] + pow + '</a></div>';
		sg_ids[i] = s[i * 5];
	}
	temp = document.getElementById("sg_podpowiedzi");
	temp.innerHTML = ret;
	sg_aktywna = 0;
	with(temp.style)
	{
		if(sg_ilosc > 10)
		{
			height = "250px";
			width = "270px";
			overflow = "auto";
		}
		else
		{
			height = "auto";
			width = "270px";
			overflow = "visible";
		}
	}
	sg_pokaz(true);
	sg_highlight(0, true);
}