function createRequest()
{
	var request = null;
	
	try
	{
		request = new XMLHttpRequest();
	}
	catch (trymicrosoft)
	{
		try
		{
			request = new ActiveXObject("Msxm12.HMLHTTP");
		}
		catch (othermicrosoft)
		{
			try
			{
				request = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (failed)
			{
				request = null;
			}
		}
	}
	
	if (request == null)
	{
		alert("Twoja przeglądarka nie obsługuje technologii AJAX!\n\nŚciągnij najnowszą wersje przeglądarki i ciesz się pełną funkcjonalnością strony.");
	}
	else
	{
		return request;
	}
}

function sendRequest(url)
{
	url = url + "&nic=" + new Date().getTime();
	request = createRequest();
	request.onreadystatechange = responseFunction;
	request.open("GET", url, true);
	request.send(null);
}

function responseFunction()
{
	if (request.readyState == 4)
	{
		if (request.status == 200)
		{
			var miasta = request.responseText;
			
			var miasta = miasta.split("][");
			var lista = document.getElementById("miasta");
			
			removeAllOptions(lista);
			addCities(lista, miasta);
		}
		else
		{
			alert("Error! Request status is "+ request.status);
		}
	}
}

function removeAllOptions(select)
{
	if (select != null && select.hasChildNodes())
	{
		var childs = select.childNodes.length;
		
		for (i = 0; i < childs; i++)
		{
			select.removeChild(select.firstChild);			
		}
	}
}

function addCities(select, cities)
{
	for (i = 0; i < cities.length; i=i+2)
	{
		opt = document.createElement("option");
		opt.appendChild(document.createTextNode(cities[i+1]));
		opt.setAttribute("value", cities[i]);
		select.insertBefore(opt, select.firstChild);
	}
	
	var opt = document.createElement("option");
	opt.appendChild(document.createTextNode("wszystkie"));
	opt.setAttribute("value", "all");
	opt.setAttribute("selected", "selected");
	select.insertBefore(opt, select.firstChild);
}

function getCities(CATALOG)
{
	var lista = document.getElementById("wojewodztwa");
	var miasta = document.getElementById("miasta");
	var id = lista.options[lista.selectedIndex].value;
	
	if (id=="all")
	{
		removeAllOptions(miasta);
		defaultCities();
	}
	else
	{
		sendRequest(CATALOG +'getcities.php?woj='+ id);
	}
}

function defaultCities()
{
	var miasta = document.getElementById("miasta");
	
	var opt = document.createElement("option");
	opt.appendChild(document.createTextNode("Wybierz województwo"));
	opt.setAttribute("value", "all");
	opt.setAttribute("selected", "selected");
	miasta.appendChild(opt);
}
