var aktualnieZaznaczona = 0;
var niePrzekraczaj = 0;
var uspijMyszke = 0;
var ostatnioSzukane = new Array();
var lZn = 0; //liczbaZnalezionych
var ld = 5; //liczba danych dotyczących jednego rekordu
var wybrana = -1; //ostatnio wybrana z listy opcja (numerek)
var sFocus = 1; //focus on "search" input flag


function checkKeyCode(ev) {
	if (!sFocus) return; //focus not on the "search" input
	if ((ev.keyCode != 38) && (ev.keyCode != 40) && (ev.keyCode != 13)) { searchSuggest(); }
}

function getArrows(ev) {
  if (!sFocus) return; //focus not on the "search" input
  arrows=((ev.which)||(ev.keyCode));

  switch(arrows) {
   case 38:
     if (aktualnieZaznaczona > 1) {
       aktualnieZaznaczona -= 1;
       
       //removeClass(document.getElementById(idElementu), 'suggest_link');
       document.getElementById('pozycja' + (aktualnieZaznaczona)).className = 'suggest_link';
       document.getElementById('pozycja' + (aktualnieZaznaczona-1)).className = 'suggest_link_over';
       uspijMyszke = 1;
     }
     break;

   case 40:
     if (aktualnieZaznaczona < niePrzekraczaj) {
       aktualnieZaznaczona += 1;
       
       if (aktualnieZaznaczona > 1) {
          document.getElementById('pozycja' + (aktualnieZaznaczona-2)).className = 'suggest_link';
       }
       
       document.getElementById('pozycja' + (aktualnieZaznaczona-1)).className = 'suggest_link_over';
       uspijMyszke = 1;
     }
     break;

    case 13: //no i enter jeszcze
       setSearch(document.getElementById('pozycja' + (aktualnieZaznaczona-1)).innerHTML);
    break;

     
    default:
     aktualnieZaznaczona = 0;
    break;
  } 
}



function removeHTMLTags(strInputCode){
 		/* 
  			This line is optional, it replaces escaped brackets with real ones, 
  			i.e. < is replaced with < and > is replaced with >
 		*/	
 	 	strInputCode = strInputCode.replace(/&(lt|gt);/g, function (strMatch, p1){
 		 	return (p1 == "lt")? "<" : ">";
 		});
 		var strTagStrippedText = strInputCode.replace(/<\/?[^>]+(>|$)/g, "");
 		return strTagStrippedText;
   // Use the alert below if you want to show the input and the output text
   //		alert("Input code:\n" + strInputCode + "\n\nOutput text:\n" + strTagStrippedText);		
}



//Gets the browser specific XmlHttpRequest Object
function getXmlHttpRequestObject() {
    if (window.XMLHttpRequest) {
        return new XMLHttpRequest();
    } else if(window.ActiveXObject) {
        return new ActiveXObject("Microsoft.XMLHTTP");
    } else {
        alert("Your Browser Sucks!\nIt's about time to upgrade don't you think?");
    }
}

//Our XmlHttpRequest object to get the auto suggest
var searchReq = getXmlHttpRequestObject();

//Called from keyup on the search textbox.
//Starts the AJAX request.
function searchSuggest() {
    if (searchReq.readyState == 4 || searchReq.readyState == 0) {
        var str = document.getElementById('txtSearch').value;
		
        searchReq.open("GET", '/inc/searchSuggest.php?search=' + str, true);
        searchReq.onreadystatechange = handleSearchSuggest; 
        searchReq.send(null);
    }        
}

//Called when the AJAX response is returned.
function handleSearchSuggest() {
    zwinDropdowny();
    uspijMyszke = 1;
	
    if (searchReq.readyState == 4) {
        var ss = document.getElementById('search_suggest');
        ss.innerHTML = '';
        var str = searchReq.responseText.split("\n");
        niePrzekraczaj = str.length - 1;
		
		ostatnioSzukane.length = 0; //czyści tablicę
		lZn = (str.length - 1)/ld; //ilosc rekordów do wypisania
		
		
        for(i=0; i < lZn; i++) {
            //Build our element string.  This is cleaner using the DOM, but
            //IE doesn't support dynamically added attributes.
            var suggest = '<div onMouseOver="suggestOver(this, true);" ';
            suggest += 'onMouseOut="suggestOut(this);" ';
            suggest += 'onClick="setSearch(this.innerHTML);" ';
            suggest += 'class="suggest_link" id="pozycja' + (i) + '" acronym="' + str[ld*i] +'"><div class="dd1">' + str[ld*i] + '</div><div class="dd2">';
			/* ewentualne ikonki */
			if (str[ld*i+1] > lim_bialko) suggest += '<a class="ik ik_blk" title="xbial"></a>';
			if (str[ld*i+2] > lim_wegle) suggest += '<a class="ik ik_ch" title="xwegl"></a>';
			if (str[ld*i+3] > lim_tluszcz) suggest += '<a class="ik ik_fat" title="xtlus"></a>';
			
			suggest += '</div><div style="clear:both;"></div></div>';
            ss.innerHTML += suggest;
			
			ostatnioSzukane.push(str[ld*i], str[ld*i+1], str[ld*i+2], str[ld*i+3], str[ld*i+4]);
        }
		
		wybrana = -1;
		
		titleToNote.setup(1);
    }
}

//Mouse over function
function suggestOver(div_value, suggest) {
    if (suggest) { //obsługa centralnego dropdowna
		if (aktualnieZaznaczona>=1) {
			document.getElementById('pozycja' + (aktualnieZaznaczona-1)).className = 'suggest_link'; //jeśli wcześniej zaznaczona klawą, odznaczamy
		}
    }
	uspijMyszke = 1;
	
    div_value.className = 'suggest_link_over';
    
    /*var strn = div_value.id.split("ozycja");
    aktualnieZaznaczona = strn[1]; ok tylko po co */
}
 
//Mouse out function
function suggestOut(div_value) {
  if (uspijMyszke != 0) {
    div_value.className = 'suggest_link';
  }
}

//Click function
function setSearch(value) {
    var val = document.getElementById('txtSearch').value = removeHTMLTags(value);
    document.getElementById('search_suggest').innerHTML = '';
	
	//aktualnieZaznaczona = 1;
	for (i = 0; i < lZn; i++)
		if (ostatnioSzukane[ld*i] == val) { aktualnieZaznaczona = (wybrana = i) + 1; break; }
}
