	function initXMLHTTPRequest()
	{
		var xRequest=null;
		try
		{
		  // Firefox, Opera 8.0+, Safari
		  xRequest=new XMLHttpRequest();
		}
		catch (e)
		{
		  // Internet Explorer
		  try
		  {
		    xRequest=new ActiveXObject("Msxml2.XMLHTTP");
		  }
		  catch (e)
		  {
		    try
		    {
		      xRequest=new ActiveXObject("Microsoft.XMLHTTP");
		    }
		    catch (e)
		    {
		      alert("Twoja przeglądarka nie obsługuje AJAX!");
		      return false;
		    }
		  }
		}
		return xRequest;
	}

	function ajaxChoose(val,field_name,val_org)
	{
		var podp = document.getElementById('podpowiedz');
		podp.style.visibility = 'hidden';
		if (val.id!='podpowiedz_zamknij')
		{
			if (field_name=='undefined')
			{
				field_name = 'szukaj';
			}

				var field = field_name.replace('_ajaxname','');
				var	el1=document.getElementById(field);
				if (el1)
				{
					el1.value = val_org;
				}
			var elem = document.getElementById(field_name);
			elem.value = val.innerHTML;
			var sel = document.getElementById('podpowiedz_'+possition);
			if (sel)
			{
				sel.style.backgroundColor="white";
			}
			possition=-1;
			elem.focus();
		}
		return false;
	}

	function trim(text)
	{
	  return text.replace(/^\s*/, "");
	}

	function ajaxCheckMiejsce()
	{
		element = document.getElementById("location_ajaxname");
		var miejsce = element.value;
		var text = miejsce;
		text = trim(text);
		if(text.length == 0 || element.value == 'Aby wyszukać wpisz co najmniej 3 znaki')
		{
			alert("Proszę wypełnić pole miejsce.");
			return false;
		}
		else
		{
			var req = initXMLHTTPRequest();
	        if (req)
	        {
				req.onreadystatechange=function(){
					var ready=req.readyState;
					if (ready==4)
					{
						var odp = req.responseText;
						if(odp == "1")
						{
							document.kalendarium_form.submit();
						}
						else
						{
							alert("Proszę wypełnić pole miejsce.");
						}
					}
				}
				req.open('GET','ajax/check_miejsce.php?miejsce='+miejsce,true);
				req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
				req.send();
		        return false;
	        }
		}
	}

	function ajaxGetObjects(value,path,field_name)
	{
		if (value.length>2)
		{
			var req = initXMLHTTPRequest();
	        if (req)
	        {
				req.onreadystatechange=function(){
					var ready=req.readyState;
					if (ready==4)
					{
						var odp = eval('(' + req.responseText + ')');
						var podp = document.getElementById('podpowiedz');
						podp.innerHTML = '';
						podp.style.visibility = 'hidden';
						var txt = '';
						var podp_pos = 0;
						if(odp == 'Brak')
						{
							txt += '<div id="podpowiedz_0" style="cursor:pointer; white-space: nowrap;">Brak podanego miejsca w bazie danych. Proszę o kontakt z redakcja@epoznan.pl</div>';
							podp_pos = 1;
							podp.style.height = '13px';
						}
						else
						{
							podp.style.height = ''+((odp.length+2)*12)+'px';
							txt += '<div id="podpowiedz_0" style="cursor:pointer; white-space: nowrap;">Wpisz nazwę miejsce i wybierz miejsce z naszych podpopowiedzi:</div>';
							for (i in odp)
							{
								if (odp[i][0])
								{
									var miasto = '';
									if (odp[i][1]!='')
									{
										miasto = ' ('+odp[i][1]+')';
									}
									var typ = '';

									if (!miasto && odp[i][0])
									{
										miasto = ' ('+odp[i][0]+')';
									}
									else
									{
										typ = odp[i][0];
									}
									var val_org = 0;
									if (odp[i][3])
									{
										val_org = odp[i][3];
									}
									txt += '<div id="podpowiedz_'+i+'" style="cursor:pointer; white-space: nowrap;" onclick="return ajaxChoose(this,\''+field_name+'\',\''+val_org+'\');">'+typ+' '+odp[i][2]+miasto+'</div>';
								}
							}
						}
						if (txt)
						{
							if(podp_pos == 0)
							{
								txt += '<div id="podpowiedz_zamknij" style="float:right;cursor:pointer;" onclick="return ajaxChoose(this,\''+field_name+'\',\''+val_org+'\');"><a href="#">zamknij</a></div>';
							}
							podp.innerHTML = txt;
							podp.style.visibility = 'visible';
							if(podp_pos == 1)
							{
								podp.style.left = '365px';
							}
						}
					}
				};
				var params = 'value='+encodeURIComponent(value);
				if (!path) path = 'ajax/get_objects.php';
				req.open('POST',path,true);
				req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
				req.send(params);
	        }
		} else
		{
			var podp = document.getElementById('podpowiedz');
			txt = '<div id="podpowiedz_0" style="cursor:pointer; white-space: nowrap;">Wpisz nazwę miejsce i wybierz miejsce z naszych podpopowiedzi:</div>';
			podp.innerHTML = txt;
			podp.style.visibility = 'visible';
			podp.style.height = '13px';
			podp.style.left = '800px';
			var field_org_pos = field_name.indexOf('_ajaxname',0);
			if (field_org_pos>0)
			{
				var	el1=document.getElementById(field_name.substr(0,field_org_pos));
				if (el1)
				{
					el1.value = '';
				}
			}
		}
	}

	function ajaxSzukaj(ev,value,path,field_name,not_key_navigation)
	{
		kc = ev.keyCode ? ev.keyCode : ev.which ? ev.which : ev.charCode;
		if (!field_name) field_name = 'szukaj';
		//kc = ev.keyCode;
		//alert(kc);

		clearTimeout(query);
		if (kc==27)
		{
			document.getElementById('podpowiedz').style.visibility = 'hidden';
			possition=-1;
		} else
		if (!not_key_navigation)
		{
			if (kc==40) //strzalka w dol
			{
				var podp = document.getElementById('podpowiedz');
				if (podp.style.visibility == 'hidden')
				{
					query = setTimeout(function(){ajaxGetObjects(value,path,field_name)},500);
					//podp.style.visibility = 'visible';
					possition=-1;
				} else
				{
					possition++;
					var pos = document.getElementById('podpowiedz_'+possition);
					if (pos)
					{
						if (possition-1 >= 0)
						{
							document.getElementById('podpowiedz_'+(possition-1)).style.backgroundColor="white";
						}
						pos.style.backgroundColor="grey";
					} else
					{
						possition--;
					}
				}
			} else if (kc==38) //strzalka w gore
			{
					possition--;
					if (possition<0)
					{
						document.getElementById('podpowiedz').style.visibility='hidden';
					}
					var pos = document.getElementById('podpowiedz_'+possition);
					if (pos)
					{
						var por_pre = document.getElementById('podpowiedz_'+(possition+1));
						if (por_pre)
						{
							por_pre.style.backgroundColor="white";
						}
						pos.style.backgroundColor="grey";
					} else
					{
						possition++;
					}
			} else if (kc==13) //enter
			{
				var pos = document.getElementById('podpowiedz_'+possition);
				//alert(pos);
				if (pos && document.getElementById('podpowiedz').style.visibility=='visible')
				{
					ajaxChoose(pos,field_name);
				} else
				{
					document.getElementById('podpowiedz').style.visibility='hidden';
					szukajNaGoogleMaps;
				}
			}
		}
		if ((kc!=40 && kc!=38 && kc!=13) && (kc>=48 && kc<=90) || ev.ctrlKey || kc==8 || kc==16 || kc==46)
		{
			query = setTimeout(function(){ajaxGetObjects(value,path,field_name)},500);
		} else
		{
			//alert(kc);
		}
	}



	function ScrollToElement(theElement)
	{
		var selectedPosX = 0;
	  	var selectedPosY = 0;
		while(theElement != null)
		{
	    	selectedPosX += theElement.offsetLeft;
	    	selectedPosY += theElement.offsetTop;
	    	theElement = theElement.offsetParent;
	  	}
		window.scrollTo(selectedPosX,selectedPosY);
	}

	function showSeekObject(k)
	{
		var overlay = seekOverlays[k];
		var opis_large = overlay.opis_large;
		overlay.openInfoWindowHtml(opis_large);
		selectedOverlay = k;
		var m = document.getElementById("map_korki");
		ScrollToElement(m);
		return false;
	}

	function szukajNaMapie()
	{
		var podp1 = document.getElementById('podpowiedz');
		if (podp1)
		{
			podp1.style.visibility="hidden";
		}
		if (window.map)
		{
			map.clearOverlays();
			seekOverlays = [];
			document.getElementById('kategoria').value = '-1';
			document.getElementById('wyniki_wyszukiwania2').innerHTML = '';
			var req1 = initXMLHTTPRequest();
	        if (req1)
	        {
				req1.onreadystatechange=function(){
					var ready=req1.readyState;
					if (ready==4)
					{
						var odp = eval('(' + req1.responseText + ')');
						for (i in odp)
						{
							var loc = odp[i][5].split(',');
							loc[0] = loc[0].replace(new RegExp("^[() ]+", "g"), "");
							loc[1] = loc[1].replace(new RegExp("[() ]+$", "g"), "");
							var pos_m = new GLatLng(loc[0],loc[1]);
							var op = odp[i][3];
							if (odp[i][2])
							{
								op = op + ' (' + odp[i][2] + ')'
							}
							if (odp[i][1])
							{
								op = odp[i][1] + ' ' + op;
							}
							var op_large = '<table><tr>';
							if (odp[i][6]=='1')
							{
								op_large = op_large + '<td style="vertical-align:top;"><img width="60" border="0" style="float: left; margin-right: 5px; margin-bottom: 5px;" alt="'+op+'" src="miejsca/photo/'+odp[i][0]+'_mini.jpg"/></td>';
							}
							op_large = op_large + '<td>' + op + '<br/>' + odp[i][4] + '<br />';
							if (odp[i][0])
							{
								op_large = op_large + '<a href="index.php?section=instytucje&subsection=miejsce&id='+odp[i][0]+'">zobacz więcej</a>';
							}
							op_large = op_large + '</td>';
							op_large = op_large + '</tr></table>';
							var ov = new GMarker(pos_m, {"title":op});
							ov.opis = op;
							ov.opis_large = op_large;
							map.addOverlay(ov);
							GEvent.addListener(ov, "click", function() {this.openInfoWindowHtml(this.opis_large);});
							seekOverlays.push(ov);
							ov.openInfoWindowHtml(op_large);
						}
						var wynik_wyszukiwania = '';
						for (k in seekOverlays)
						{
							wynik_wyszukiwania = wynik_wyszukiwania + '<a href="#" onclick="return showSeekObject('+k+');">'+seekOverlays[k].opis+'</a><br/>';
						}
						document.getElementById('wyniki_wyszukiwania').innerHTML=wynik_wyszukiwania;
					}
				};
				var value = document.getElementById('szukaj').value;
				if (value.length>2)
				{
					var params = 'value='+value;
					req1.open('POST','ajax/get_object_full.php',true);
					req1.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
					req1.send(params);
				} else
				{
					document.getElementById('wyniki_wyszukiwania').innerHTML = 'Proszę wpisać co najmniej 3 znaki w polu wyszukiwania.';
				}
	        }
		} else
		{
			 if(document.forms['szukaj_form'])
			 {
			 	document.forms['szukaj_form'].submit();
			 }
			//window.location.href="http://epoznan.pl/index.php?section=komunikacja";
		}
	}

	function pokazTyp()
	{
		var pokaz_sel = document.getElementById('kategoria');
		var typ = pokaz_sel.value;
		document.getElementById('szukaj').value='';;
		if (typ>0)
		{
			for (var i = 0; i < markersArray.length; i++)
		  	{
	      		markersArray[i].setMap(null);
 			}

			seekOverlays = [];
			document.getElementById('wyniki_wyszukiwania').innerHTML = '';
			var req2 = initXMLHTTPRequest();
	        if (req2)
	        {
				req2.onreadystatechange=function(){
					var ready=req2.readyState;
					if (ready==4)
					{
						var odp = eval('(' + req2.responseText + ')');
						var wynik2 = document.getElementById('wyniki_wyszukiwania2');
						wynik2.innerHTML = '';
						var i = 0;
						var len = parseInt(odp.length);
						for (i = 0; i < len; i++)
						{
							var loc = odp[i][3].split(',');
							loc[0] = loc[0].replace(new RegExp("^[() ]+", "g"), "");
							loc[1] = loc[1].replace(new RegExp("[() ]+$", "g"), "");
							var op = odp[i][1];
							var op_large = '<table><tr>';
							if (odp[i][4]=='1')
							{
								op_large = op_large + '<td style="vertical-align:top;"><img width="60" border="0" style="float: left; margin-right: 5px; margin-bottom: 5px;" alt="'+op+'" src="miejsca/photo/'+odp[i][0]+'_mini.jpg"/></td>';
							}
							op_large = op_large + '<td>' + op + '<br/>' + odp[i][2] + '<br />';
							if (odp[i][0])
							{
								op_large = op_large + '<a href="index.php?section=instytucje&subsection=miejsce&id='+odp[i][0]+'">zobacz więcej</a>';
							}
							op_large = op_large + '</td>';
							op_large = op_large + '</tr></table>';

							var ov = new google.maps.Marker();

							var pos_m = new google.maps.LatLng(loc[0], loc[1]);
							ov.setPosition(pos_m);
							ov.setMap(map);
							ov.op_large = op_large;
							ov.pos_m = pos_m;
							markersArray.push(ov);

							google.maps.event.addListener(ov, "click", function() {
								var infowindow = new google.maps.InfoWindow(
							    {	content: this.op_large,
							        size: new google.maps.Size(50,50),
							        position: this.pos_m
							    });
								infowindow.open(map,this);

							});
						}
					}
				}
			};
			var params = 'value='+typ;
			req2.open('POST','ajax/get_object_oftype.php',true);
			req2.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
			req2.send(params);
		}
		else
		{
			window.location = "index.php?section=komunikacja";
		}
	}

	function szukajNaGoogleMaps()
	{
		var wskaznik = new google.maps.Marker();
	    var dymek = new google.maps.InfoWindow();

		var el = document.getElementById('szukaj');
		var adres = '';
		if(el)
		{
			adres = 'Poznań, '+el.value;
		}

		if(adres != 'Poznań, ')
		{
			var geokoder = new google.maps.Geocoder();
			geokoder.geocode({address: adres}, function(wyniki, status)
			{
				if(status == google.maps.GeocoderStatus.OK)
				{
					for (var i = 0; i < markersArray.length; i++)
				  	{
			      		markersArray[i].setMap(null);
   					}

   					if(wyniki[0].geometry.location != '(52.406374, 16.925168100000064)')
					{
						map.setCenter(wyniki[0].geometry.location);
						wskaznik.setPosition(wyniki[0].geometry.location);
						wskaznik.setMap(map);
						markersArray.push(wskaznik);
						dymek.open(map, wskaznik); // dymek ze znalezionym adresem
						dymek.setContent('<strong>Poszukiwany adres</strong><br />'+adres);
					}
					else
					{
						var loc = document.getElementById("miejsce_lokalizacja");
						if(loc && loc.value != '')
						{
							loc = loc.value;
							loc = loc.split(',');
							var x = loc[0].replace("(","");
							var y = loc[1].replace(")","");

							var myLatLng = new google.maps.LatLng(x, y);
							wskaznik.setPosition(myLatLng);
							wskaznik.setMap(map);
							markersArray.push(wskaznik);
							dymek.open(map, wskaznik); // dymek ze znalezionym adresem
							dymek.setContent('<strong>Poszukiwany adres</strong><br />'+adres);
						}
						else
						{
							alert("Nie znalaziono podanego adresu!");
						}
					}
				}
				else
				{
					alert("Nie znalaziono podanego adresu!");
				}
			});
		}
	}
