function newcityhelper(kod,miasto,helper,ev)
{
		document.getElementById(miasto).style.border="1px #BDBDBD solid";
		
		var charCode = (ev.which) ? ev.which : ev.keyCode
		// strzalka w dol - 40
		if (charCode=='40'){
			  test=$(helper).getElements('tr')
			  var ktory=99999;
			  for (i=0; i<test.length; i++) {
				if (test[i].hasClass('zaznaczonydwa')) {
				  ktory=i;
				}
				}
				if (ktory == '99999'){
				test[0].addClass('zaznaczonydwa');          
			  } else {
				test[ktory].removeClass('zaznaczonydwa');          
				test[ktory+1].addClass('zaznaczonydwa');          
			  }
			  return false;
		}


		// strzalka w gore - 38
        if (charCode=='38'){
          test=$(helper).getElements('tr')
          var ktory=99999;
          for (i=0; i<test.length; i++) {
            if (test[i].hasClass('zaznaczonydwa')) {
              ktory=i;
            }
        	}
        	if (ktory == '99999'){
        	  ile=test.length-1
            test[ile].addClass('zaznaczonydwa');          
          } else {
            test[ktory].removeClass('zaznaczonydwa');          
            test[ktory-1].addClass('zaznaczonydwa');          
          }
          return false;
        }
	   
		if (charCode=='9'){
			return false;
		}

		if (charCode=='13'){
			// klikniecie enter
			test=$(helper).getElements('tr')
			var ktory=99999;
			for (i=0; i<test.length; i++) {
				if (test[i].hasClass('zaznaczonydwa')) {
				ktory=i;
				}
			}
			document.getElementById(kod).value=test[ktory].getProperty('rel');
			document.getElementById(miasto).value=test[ktory].getProperty('title');
			document.getElementById(helper).innerHTML=''; 
			document.getElementById(helper).style.visibility='hidden';
			return false;
		}
		
		var fraza = $(miasto).getProperty('value');
		if ( fraza.length == 0)
		{
				var out='';
				$(helper).innerHTML=out;
		}
		if ( fraza.length >= 3)
		{		
			var ile=0;
			var test;
			var out="<table cellpadding='0' cellspacing='0'>";
			var re = new RegExp('\\b(' + fraza + ')', 'gi');
			for (i=0; i<miasta.length; i++)
			{
				if ( miasta[i]['0'].match(re) ){
					out=out+"<tr style='cursor: pointer; text-align: left;' rel='"+miasta[i]['0']+"' title='"+miasta[i]['1']+"' onmouseover=\"this.style.backgroundColor='#eaeaea'\" onmouseout=\"this.style.backgroundColor='#fff'\" onclick=\" document.getElementById('"+kod+"').value='"+miasta[i]['0']+"'; document.getElementById('"+miasto+"').value='"+miasta[i]['1']+"'; document.getElementById('"+helper+"').innerHTML=''; document.getElementById('"+helper+"').style.visibility='hidden'; \" ><td>"+miasta[i]['0']+"</td><td>"+miasta[i]['1']+"</td><td>"+miasta[i]['2']+"</td></tr>";
					test=miasta[i]['0'];
					ile++;
				}
			}
			for (i=0; i<miasta.length; i++)
			{
				if ( miasta[i]['1'].match(re) ){
					if (test != miasta[i]['0']){
					out=out+"<tr style='cursor: pointer; text-align: left;' rel='"+miasta[i]['0']+"' title='"+miasta[i]['1']+"' onmouseover=\"this.style.backgroundColor='#eaeaea'\" onmouseout=\"this.style.backgroundColor='#fff'\" onclick=\" document.getElementById('"+kod+"').value='"+miasta[i]['0']+"'; document.getElementById('"+miasto+"').value='"+miasta[i]['1']+"'; document.getElementById('"+helper+"').innerHTML=''; document.getElementById('"+helper+"').style.visibility='hidden'; \" ><td>"+miasta[i]['0']+"</td><td>"+miasta[i]['1']+"</td><td>"+miasta[i]['2']+"</td></tr>";
					ile++;
					}
					test=miasta[i]['0'];
				}
			}
			var re = new RegExp('(' + fraza + ')', 'g');
			for (i=0; i<miasta.length; i++)
			{
				if ( miasta[i]['1'].match(re) ){
					if (test != miasta[i]['0']){
					out=out+"<tr style='cursor: pointer; text-align: left;' rel='"+miasta[i]['0']+"' title='"+miasta[i]['1']+"' onmouseover=\"this.style.backgroundColor='#eaeaea'\" onmouseout=\"this.style.backgroundColor='#fff'\" onclick=\" document.getElementById('"+kod+"').value='"+miasta[i]['0']+"'; document.getElementById('"+miasto+"').value='"+miasta[i]['1']+"'; document.getElementById('"+helper+"').innerHTML=''; document.getElementById('"+helper+"').style.visibility='hidden'; \" ><td>"+miasta[i]['0']+"</td><td>"+miasta[i]['1']+"</td><td>"+miasta[i]['2']+"</td></tr>";
					ile++;
					}
				}
			}
			out=out+'</table>';
			document.getElementById(helper).style.visibility='visible';
			$(helper).innerHTML=out;
			
			if (ile == 0){
				document.getElementById(miasto).style.border="1px red solid";
				document.getElementById(helper).style.visibility='hidden';
			}
		}
}

function sleep(milliseconds) {
  var start = new Date().getTime();
  for (var i = 0; i < 1e7; i++) {
    if ((new Date().getTime() - start) > milliseconds){
      break;
    }
  }
}

function newcityhelperendengine(kod,miasto,helper){
		v=$(helper).getStyle('visibility')
		if (v='visible'){
			test=$(helper).getElements('tr')
			var ktory=0;
			for (i=0; i<test.length; i++) {
				if (test[i].hasClass('zaznaczonydwa')) {
				ktory=i;
				}
			}
			document.getElementById(kod).value=test[ktory].getProperty('rel');
			document.getElementById(miasto).value=test[ktory].getProperty('title');
			document.getElementById(helper).innerHTML=''; 
			document.getElementById(helper).style.visibility='hidden';
		}
			return false;

}
function newcityhelperend(kod,miasto,helper,ev){
	setTimeout("newcityhelperendengine('"+kod+"','"+miasto+"','"+helper+"')", 200);
}

