//zmienne
var miasto_daGrasso="";
var enterOFF=0;
var wartosc1;
var wysokosc_linii =15; //wysokosc linii na liscie podpowiedzi
var scroll= -2*wysokosc_linii;
var wynik;
var wykluczenia = new Array("Aleja,al","Aleje,al","arcybiskupa,abpa","admirała,adm","biskupa,bpa","błogosławionej,bł","błogoslawionego,bł","doktora,dr","generała,gen","hetmana,hetm","inżyniera,inż","architekta,arch","komandora,kmdr","kapitana,kpt","księdza,ks","marszałka,marsz","majora,mjr","plac,pl","pułkownika,płk","porucznika,por","podpułkownika,ppłk","podporucznika,ppor","profesora,prof","profesor,prof","imienia,im","rotmistsza,rtm","świętej,św","świętego,św","wzgórze,wzg","prymasa,prym","kardynała,kard","papieża,pap","prezydenta,prez","ulica ,","ul ,"); 
var klucze = new Array;
var zamienniki = new Array;
var wykluczenie;
for (x in wykluczenia)
 {
  wykluczenie=wykluczenia[x].split(",") 
  klucze[x]=wykluczenie[0];
  zamienniki[x]=wykluczenie[1];
 }
 
//wyrazenia regularne do przeczesywania tekstu, inne wewnatrz funkcji
if(navigator.appName=="Microsoft Internet Explorer"){
var reg1 = new RegExp('<SPAN class=red>', "gi");}
else {
var reg1 = new RegExp('<span class="red">', "gi");}
var reg2 = new RegExp("</span>", "gi");


//Kody znaków:
//cyfry 48-57
//literki 65-90
//backspace 8
//spacja 32
//-. 189-190
//' 222
//enter 13
//delete 46

//Funkcje
//Funkcja wyłapuje i zamienia "wykluczenia"
function wyklucz()
{//1
var spis="";
var reg6;
var reg8 = new RegExp(" ","g")
for (x in klucze)
 {//2
  reg6= new RegExp(klucze[x], "gi");
  var char_nr=wartosc1.search(reg6);	
  if(char_nr > -1)
	{//3
	 wartosc1=wartosc1.replace(reg6, zamienniki[x]);
	 //$("#szukaj").val(wartosc1);
	 //alert("Zamieniono "+klucze[x]+" na "+zamienniki[x]);
	 char_nr=-1;
	}//3		
  }//2
 }//1

//Funkcja opozniająca o 500ms wyszukiwanie w bazie ulic od momentu wpisania 
function szukacz(wartosc)
 {
  if(wartosc.length>1)
  setTimeout(function(){szukaj_sprawdz(wartosc);},350);
 }

//Funkcja sprawdza czy wartosc z inputa jest taka sama jak przekazana wartosc
function szukaj_sprawdz(wartosc)
 {
  if($("#szukaj").val()==wartosc)
  szukaj_go();
 }
function pl2en(ot){
	ot = ot.replace(/ó/g,"o");
	ot = ot.replace(/Ó/g,"O");
	ot = ot.replace(/ł/g,"l");
	ot = ot.replace(/Ł/g,"L");
	ot = ot.replace(/ń/g,"n");
	ot = ot.replace(/Ń/g,"N");
	ot = ot.replace(/ż/g,"z");
	ot = ot.replace(/Ż/g,"Z");
	ot = ot.replace(/ź/g,"z");
	ot = ot.replace(/Ź/g,"Z");
	ot = ot.replace(/ć/g,"c");
	ot = ot.replace(/Ć/g,"C");
	ot = ot.replace(/ę/g,"e");
	ot = ot.replace(/Ę/g,"E");
	ot = ot.replace(/ś/g,"s");
	ot = ot.replace(/Ś/g,"S");
	ot = ot.replace(/ą/g,"a");
	ot = ot.replace(/Ą/g,"A");
	return ot;
}
 //Funkcja szukania w tablicy
function szukaj_go()
 {//1
 wyklucz(); //najpierw sprawdza wykluczenia
 if(wartosc1.length < 2) return false;
  var wynik1="";
  var wynik2="";	
  var wynik1ulice=new Array;
  var wynik1id=new Array;			
  var wynik2ulice=new Array;
  var wynik2id=new Array;	
  var wynik1ulice_en=new Array;	
  var wynik1id_en=new Array;			
  var wynik2ulice_en=new Array;
  var wynik2id_en=new Array;	
  var wszystkieid=new Array;		
  var wszystkieulice=new Array;	
  var nr0=0;				
  var nr1=0;
  var nr2=0;	
  var nr1_en=0;
  var nr2_en=0;
  var brak_ulicy=0;		
  var wartosc1_en = pl2en(wartosc1);	
  var en=false;	
  var reg3= new RegExp(wartosc1, "i");	
  var reg4= new RegExp(wartosc1, "g");	
  var reg9= new RegExp(wartosc1_en, "i")
//  var reg7= new RegExp(wartosc1.charAt(0), "i");	  - potrzebne dla wyszukiwania po 1 literze						
	for (x in ulice)
	 {//2 
	 var ulica=ulice[x].split(",");
	 var ulica_en=ulice_en[x].split(",");
	 en=false;
//	 char_nr=ulica[1].search(reg7);
//	  if(char_nr==0)
//	   {//3	
//       wszystkieid[nr0]=ulica[0];
//	 	 wszystkieulice[nr0]=ulica[1];
//		 nr0++;
//      }//3
	 ulica1_lower = ulica[1].toLowerCase();
    char_nr=ulica1_lower.search(reg3);
	 if(char_nr<0){
	 ulica_en1_lower = ulica_en[1].toLowerCase();
    char_nr=ulica_en1_lower.search(reg9);
	 en=true;
	 }
	 //tworzenie tablicy z wynikami
    if(char_nr==0)
	   {//4	
		 if(en==false){
		 wynik1id[nr1]=ulica[0];
		 wynik1ulice[nr1]=ulica[1];
		 nr1++;
		 }
		 else{
       wynik1id_en[nr1_en]=ulica[0];
		 wynik1ulice_en[nr1_en]=ulica[1];
		 nr1_en++;
		 }
      }//4
	    else if(char_nr>0 && nr1==0 && nr1_en==0)
	   {//5
		 if(en==false){
	    wynik2id[nr2]=ulica[0];
		 wynik2ulice[nr2]=ulica[1];
		 nr2++;
		 }
		 else{
		 wynik2id_en[nr2_en]=ulica[0];
		 wynik2ulice_en[nr2_en]=ulica[1];
		 nr2_en++;
		 }
	   }//5		
    }//2
  //Kolorowanie	
  var wartosc2=wartosc1;	
  var char0 = wartosc2.charAt(0);
  var char1 = char0.toUpperCase();
  wartosc2=wartosc2.replace(char0,char1);
  var reg5= new RegExp(wartosc2, "g");	
  wynik1ulice=wynik1ulice.toString().replace(reg5,'<span class="red">'+wartosc2+"</span>");
  //wyniki do divow
  wynik1ulice=wynik1ulice.split(",");
  //wynik1ulice_en=wynik1ulice_en.split(",");
	for (x in wynik1ulice)
	{//6 
	 if(wynik1ulice[x]!="")
	  wynik1+="<div id='"+wynik1id[x]+"'>"+wynik1ulice[x]+"</div>";
	}//6
	for (x in wynik1ulice_en)
	{//6 
	 if(wynik1ulice_en[x]!="")
	  wynik1+="<div id='"+wynik1id_en[x]+"'>"+wynik1ulice_en[x]+"</div>";
	}//6
	if(nr1==0 && nr2>0)
	 {
	  wynik2ulice=wynik2ulice.toString().replace(reg4,'<span class="red">'+wartosc1+"</span>"); 	
     wynik2ulice=wynik2ulice.toString().replace(reg5,'<span class="red">'+wartosc2+"</span>");	
	  wynik2ulice=wynik2ulice.split(",");
	  for (x in wynik2ulice)	
	   {//7 
	    if(wynik2ulice[x]!="")
	    wynik2+="<div id='"+wynik2id[x]+"'>"+wynik2ulice[x]+"</div>"; 
	   }//7
	  for (x in wynik2ulice_en)	
	   {//7 
	    if(wynik2ulice_en[x]!="")
	    wynik2+="<div id='"+wynik2id_en[x]+"'>"+wynik2ulice_en[x]+"</div>";
	   }//7
	 }
	
  wynik=wynik1+wynik2;	
  if (wynik=="")
	{//8
	czy_spacja=wartosc1.search(" ");
	if(czy_spacja>-1)
	 {//9
	  var wartosc3 = new Array;
	  wartosc3 = wartosc1.split(" ");	  
	  for (y in wartosc3)
		{//10
		 if(wartosc3[y]=="") break;
		 reg3= new RegExp(wartosc3[y], "i");
		 for (x in ulice)
	    {//11
	     ulica=ulice[x].split(",");
        char_nr=ulica[1].search(reg3);
	     //tworzenie tablicy z wynikami
        if(char_nr==0)
	     {//12	
         wynik1id[nr1]=ulica[0];
		   wynik1ulice[nr1]=ulica[1];
		   nr1++;
        }//12
	     else if(char_nr>0)
	     {//13
	      wynik2id[nr2]=ulica[0];
		   wynik2ulice[nr2]=ulica[1];
		   nr2++;
	     }//13
       }//11
		 wartosc2=wartosc3[y];	
	    char0 = wartosc2.charAt(0);
  		 char1 = char0.toUpperCase();
  		 wartosc2=wartosc2.replace(char0,char1);
		 reg4= new RegExp(wartosc3[y], "g");		
       reg5= new RegExp(wartosc2, "g");	
       wynik1ulice=wynik1ulice.toString().replace(reg5,'<span class="red">'+wartosc2+"</span>");
       wynik2ulice=wynik2ulice.toString().replace(reg4,'<span class="red">'+wartosc3[y]+"</span>"); 	
       wynik2ulice=wynik2ulice.toString().replace(reg5,'<span class="red">'+wartosc2+"</span>");
       
		 //wyniki do divow
       wynik1ulice=wynik1ulice.split(",");
       wynik2ulice=wynik2ulice.split(",");
		 wynik1="";
		 wynik2="";
	    for (x in wynik1ulice)
	     {//14 
			if(wynik1ulice[x]!="")
	       wynik1+="<div id='"+wynik1id[x]+"'>"+wynik1ulice[x]+"</div>";
	     }//14
	    for (x in wynik2ulice)
	     {//15 
			if(wynik2ulice[x]!="")
	       wynik2+="<div id='"+wynik2id[x]+"'>"+wynik2ulice[x]+"</div>";
	     }//15
       wynik=wynik1+wynik2;	
		}//10
	 }//9
	if (wynik=="")
	 {//16
	  	brak_ulicy=1;
//	  for (x in wszystkieid)
//	  {//17
//	   wynik=wynik+"<div id='"+wszystkieid[x]+"'>"+wszystkieulice[x]+"</div>";
//	  }//17
    }//16
	}//8 		
   pokaz_podpowiedzi(wynik,brak_ulicy);		
 
 }//1
//Pyta czy dodać ulice, poprawić błąd czy wyswietlic podpowiedzi
function pokaz_podpowiedzi(wynik,brak_ulicy)
{
if(brak_ulicy==1)
{
$("#id_ulica").val(0);
var char_at_1 = wartosc1.charAt(0).toUpperCase();
var pytanie_brak_ulicy="<div id='sprawdz_pisownie' style='line-height: 40px; font-weight: bold;'>Popraw pisownię</div><div id='brak_ulicy' style='line-height: 40px; font-weight: bold;'>Powiadom o nowej ulicy</div>";
$("#wyniki1").html(pytanie_brak_ulicy);
$("#wyniki1>div").mouseenter(function(){
		  $("#wyniki1>div").removeClass("selected");
        $(this).addClass("selected");
		  $(this).click(function(){
		  wybor_id=	$(this).attr("id");
		  if(wybor_id=="sprawdz_pisownie")	
		   {
			 $("#wyniki1").html("");
			 $("#wyniki1").hide();
			 $("#szukaj").val("");
			 $("#szukaj").focus();
			}
		  else if(wybor_id=="brak_ulicy")
			{
			 $("#wyniki1").html("");
			 $("#wyniki1").hide();
			 $("#szukaj").val("");
			 zapytaj_nowa_ulica();
			}	
		})	
	 });
	 $("#wyniki1").show("slow");
}
else
{
wypisz_podpowiedzi(wynik);
}
}
//Pokazuje w pojawiającym się divie podpowiedzi
function wypisz_podpowiedzi(wynik)
{
$("#wyniki1").html(wynik);
$("#id_ulica").val($("#wyniki1>div").eq(0).attr("id"));
if($("#szukaj").val()!="")
{$("#wyniki1").show("slow");}
else
{$("#wyniki1").hide("slow");}
$("#wyniki1").css("border","solid 1px");
//ustawia obsluge myszka
$("#wyniki1>div").mouseenter(function(){
		  $("#wyniki1>div").removeClass("selected");
        $(this).addClass("selected");
		  $(this).click(function(){
		  wybor=	$(this).html();
		  wybor=wybor.replace(reg1,"");
		  wybor=wybor.replace(reg2,"");		
		  $("#szukaj").val(wybor);	
		  $("#szukaj").focus();	
		  $("#id_ulica").val($(this).attr("id"));	
		  $("#wyniki1>div").removeClass("selected");	
  		  $("#wyniki1").hide("slow");
			})	
	 });
} 
//funkcja odpalana jako pierwsza odpala wszystkie inne funkcje, sprawdza jaki klawisz zostal wcisniety
function press(a,e)
{//1 funkcji
//jeżeli kropka to podmianka na spacje
if(e.keyCode==190)
 {//2
  a.value=a.value.replace("."," ");	
  $("#szukaj").focus();	
 }//2
//jeżeli "znak" odpala wyszukiwanie i pokazuje wyniki
 if(e.keyCode==8 || e.keyCode==32 || e.keyCode==46 || e.keyCode==222 ||(e.keyCode>47 && e.keyCode<58)||(e.keyCode>64 && e.keyCode<91)||(e.keyCode>188 && e.keyCode<191))
  {//3
   wartosc1=a.value;
   if(wartosc1!=""){szukacz(wartosc1);}
   else 
    {//4
	  document.getElementById("wyniki1").style.display = "none";
	 }//4
   }//3
 //strzalka w dol
 else if(e.keyCode==40&&$("#szukaj").val()!="")
 {//1
  $("#wyniki1").show("slow"); 
  if($("div").is(".selected"))
	{//2
	 scroll=scroll+wysokosc_linii;
	 $("div.selected").next().addClass("selected");
	 $("div.selected").prev().removeClass("selected");
	 wybor=$("div.selected").html();
	 wybor=wybor.replace(reg1,"");
	 wybor=wybor.replace(reg2,"");
	 $("#szukaj").val(wybor);
	 $("#szukaj").focus();
    $("#wyniki1").scrollTop(scroll);
	}//2
  else
	{//3
	 $("#wyniki1>div").eq(0).addClass("selected");
	 wybor=$("div.selected").html();
	 wybor_id=$("div.selected").attr("id");
	 if(wybor_id!="sprawdz_pisownie" || wybor_id!="brak_ulicy")
	      {
	 		 wybor=wybor.replace(reg1,"");
	 		 wybor=wybor.replace(reg2,"");
	 		 $("#szukaj").val(wybor);
	 		 $("#szukaj").focus();
			} 
	}//3
 }//1
 
//strzalka w gore
else if(e.keyCode==38)
 {//1
  if($("div.selected").is(":first-child"))
	{//2
	 $("#wyniki1>div").eq(0).removeClass("selected");
	 $("#szukaj").val(wartosc1);
	}//2
  if($("div").is(".selected"))
	{//3
	 $("div.selected").prev().addClass("selected");
	 $("div.selected").next().removeClass("selected");
	 wybor=$("div.selected").html();
	 wybor_id=$("div.selected").attr("id");
	}//3
 }//1
//enter
else if(e.keyCode==13&&enterOFF!=1)
 {//1
  var wyniki_display = document.getElementById("wyniki1").style.display;	
  if($("div").is(".selected"))
	{//2	
    wybor=$("div.selected").html();
    wybor=wybor.replace(reg1,"");
    wybor=wybor.replace(reg2,"");
	 wybor_id=$("div.selected").attr("id");
	 if(wybor_id=="sprawdz_pisownie")	
	  {
		$("#wyniki1").html("");
		$("#wyniki1").hide();
		$("#szukaj").val("");
		$("#szukaj").focus();
	  }
	 else if(wybor_id=="brak_ulicy")
	  {
		$("#wyniki1").html("");
		$("#wyniki1").hide();
		$("#szukaj").val("");
		$("#szukaj").focus();
		zapytaj_nowa_ulica();
	  }	
	 else
	  {		
      $("#szukaj").val(wybor);
      $("#id_ulica").val($("div.selected").attr("id"));		
      $("#wyniki1>div").removeClass("selected");	
		$("#wyniki1").hide("slow");	
  		test_ulicy($('#id_ulica').val());	
	  }
	}//2
  else if(wartosc1!=""&&$("#id_ulica").val()==0) szukaj_go();
  else if(wartosc1!=""&&wyniki_display=="none" ) $("#wyniki1").show("slow");		
  else if(wartosc1!=""&&$("#id_ulica").val()>0) {test_ulicy($('#id_ulica').val());};	
 }//1
}//1
function test_ulicy(id_ulica,daGrasso)
{//1
if(daGrasso==1)
 {
  enterOFF = 1;
  $.get("http://www.szama.pl/step0b-test_ulicy2.php?id_ulica="+id_ulica, function(data){//2 
	   var odp2=data.search('2');
		var odp1=data.search('1');
		if(odp2>-1)
      {//3
		   $("input[name='ulica_wybrana']").attr('readonly','readonly');
		   $('#dalej1').hide();
			$("#wyniki1").hide("slow");	
       	$('#wpisz_nr_domu').show();
	   }//3
		else if(odp1>-1)
		{//4		 
		 document.location.replace('http://www.szama.pl/step0do2.php?id_ulica='+id_ulica+"&miasto="+miasto_daGrasso);
		}//4
		else
		{
		 usun_div();
		 alert("Niestety żadna restauracja DaGrasso nie obsługuje twojego adresu.");
		}
  });//2
 }
else
 {
  $.get("http://www.szama.pl/step0b-test_ulicy.php?id_ulica="+id_ulica, function(data){//2
		if(data=="true")
      {//3
       createDiv(id_ulica);	
	   }//3
		else
		{//4
		 document.getElementById('wybor_ulicy').submit();
		}//4
  });//2
 } 
}//1 funkcji

function zatwierdz_nr_budynku(val)
{//1
if($('#nr_budynek1').val()!="")
 {//2
  //$('#pytanie').hide();
  $('#nr_budynek').val($('#nr_budynek1').val());
  $('#pytanie').html("<div class=\"wyrozniony_napis5\" style=\"border: 1px solid #FFFFFF; width: 200px; background-color: #dddddd; padding-left:15px; padding-right:15px; padding-top:15px; padding-bottom:15px;\"><br>Proszę czekać...<br><br></div>");
  document.getElementById('wybor_ulicy').submit();
 }//2
else
 {//3
  alert("Musisz podać numer budynku")
 }//3
}//1

function key_up_nr_budynku(a,e)
//potwierdz na enterze - wyłaczone na prosbe
{//1
// if(e.keyCode==13)
// {//2
//  zatwierdz_nr_budynku()
// }//2

//maska - nr domu + tylko jenda literka, zabron literke lub zero na poczatku
spr_az= -1; 
spr_zero = -1;
spr_az = a.value.search(/[a-z]/gi);
spr_zero = a.value.search(/[0]/gi);
if(spr_az == 0){
a.value='';
alert('Nr domu nie może zaczynać się od litery');
}
else if(spr_az > 0){
var test_val=a.value.slice(spr_az+1);
if(test_val)alert('Prosimy tylko nr domu np. 10 lub 10a');
a.value=a.value.slice(0,spr_az+1);
}
else if(spr_zero == 0){
a.value='';
alert('Nr domu nie może zaczynać się od zera');}
else
a.value=a.value.replace(/[^0-9 a-z A-Z -]/g, '');
}//1

function createDiv(id_ulica)
    {//1
        var divTag = document.createElement("div");
       
        divTag.id = "pytanie";
       
        divTag.setAttribute("align","center");
       
        divTag.style.margin = "0px auto";
       
        divTag.className ="dynamicDiv";
		  	
			$('#box_ulicy').hide();	
			$('#szare_tlo').hide();

    
	     if(id_ulica>0 && !document.getElementById('telefon_input'))
			{
		  	 for (x in ulice)	
	 		  {//2
	 		   var ulica=ulice[x].split(",");
	 		   char_nr=ulica[0].search(id_ulica);
	  		   if(char_nr==0)
	   	   {//3	
       	    var nazwa_ulicy=ulica[1];
      	   }//3
	 		  }//2
        divTag.innerHTML = "<div style=\"border: 1px solid #FFFFFF; width: 260px; background-color: #dddddd; padding-left:30px; padding-right:30px; padding-top:30px; padding-bottom:25px;\"><div class=\"wyrozniony_napis4b\">Prosimy o podanie nr budynku</div><br><div class=\"wyrozniony_napis7\">Podany numer  pozwoli przydzielić<br> właściwe restauracje</div><br><div style=\"height:30px;\"><div class=\"block to_left\" style=\"padding-top:2px; padding-right:8px; text-align:right; width: 140px;\"><input size=\"3\" type=\"text\" id=\"nr_budynek1\" onkeyup=\"key_up_nr_budynku(this,event)\"></div><div class=\"block to_left\" style=\"width: 80px; text-align:left;\"><input type=\"image\" src=\"grafika_v2/klawisze/klawisz_ok.png\" onClick=\"zatwierdz_nr_budynku()\" value=\"OK\"></div></div></div>";
		  $("body").prepend(divTag);	
		  $("#nr_budynek1").focus();	
         }
		  else if(id_ulica==0)
		   {
			 divTag.innerHTML = "<p style=\"border: 2px solid #000000; width: 300px; background-color: #ffffff; padding:10px; text-align: right;\"><br>Nowa ulica: <input size=\"20\" type=\"text\" id=\"nowa_ulica\"><br>Miasto: <input size=\"20\" type=\"text\" id=\"nowa_ulica_miasto\"><br><input type=\"button\" onClick=\"mail_nowa_ulica();$('#szukaj').focus();\" value=\"OK\"><br><br></p>";
			 $("body").prepend(divTag);
		    $("#nowa_ulica").focus();	
			}	
        
		  
    }//1
function usun_div()
{
var div_child = document.getElementById("pytanie");
var div_parent = div_child.parentNode;
div_parent.removeChild(div_child);
//$(":input").attr("disabled","");
}	

function mail_nowa_ulica()
 {
  var ulica=$("#nowa_ulica").val();
  var miasto=$("#nowa_ulica_miasto").val();
  $.post("ulice_nowa_email.php", { ulica: ulica, miasto: miasto }, function(data){
  document.getElementById('pytanie').style.display="none";
  });
 }
function zapytaj_nowa_ulica()
 {
  createDiv(0);
 }