var NumberOfHintElements = 0; // Число элементов в текущем выпадающем списке подсказок 
var HintMenuPos = 0;          // Номер текущей подсвеченной строки в меню подсказок (0-некорректный)
var OldPattern = '';          // Старый шаблон (вызов ajax происходит если текущий не равен старому)

function putHint(src,resultid) {
	var tmp = src.indexOf('<P><HR><B>Queries</B>'); //две строки для отсечения 
	if( tmp != -1) src = src.substring(1,tmp-1);    //отладочной информации внизу
	
	$(resultid).innerHTML = unescape(src);// ЕДИНСТВЕННАЯ И ОСНОВНАЯ СТРОКА
	
	NumberOfHintElements = $('hintrows').value; // Получение количества строк в подсказке
	if(NumberOfHintElements > 15)
		{$S(resultid).overflow = 'auto'; $S(resultid).height = '320px';} //Если более 320px то автоматически включится скроллинг
	else
		{$S(resultid).overflow = 'visible';  $S(resultid).height = '20px';} //Если менее 15 подсказок то размер окна подстроиться под требуемый без скроллинга
	
	HintMenuPos = 0; //Номер подсвеченного элемента подсказки-меню ставим несуществующий
}

function HintOffset()
{
	var x = 0, y = 0;
	if (!agent('firefox'))
	{
		x = wLeft;
		y = wTop;
		if (agent('msie')) y = y + 20;
	}
	return {'x':x, 'y':y};
}

function ShowHints(f_input,f_hint){
	//получить Hint в innerHTML id=f_hint + высветить его ниже на 19 пикселей верх.лев. угла поля ввода f_input
	var pattern = $(f_input).value;
	if(pattern != '' && pattern != OldPattern)
	{
		OldPattern = pattern;
		ajaxRequest('/ajaxtype.cfm','filename=search/adv_ajax_reply.cfm&pattern='+encodeURIComponent(pattern),'POST',f_hint,putHint);
		var pos = abPos($(f_input));
		var oset = HintOffset();
		$S(f_hint).left = pos.X - oset.x;
		$S(f_hint).top = pos.Y+19 - oset.y; //Высота окна ввода 20px с бордюром в 1px
		$S(f_hint).display='block'; 
	}
	else if (pattern == '')
	{
		OldPattern = pattern;
		$S(f_hint).display='none';
	}
}

function SetInput(str){ // вставка текста под мышью в строку запроса (onmousedown в ответном ajax)
	OldPattern = str; //чтобы при вставке не было запроса
	HideHints('search_tips');
	$('search_input').value = str;
	$('search_input').focus();
}

function HideHints(id){
	$S(id).display = 'none';
	HintMenuPos = 0; //Номер подсвеченного элемента подсказки-меню ставим несуществующий
}

function SetHintRow(row){
		for( i = 1;i <= NumberOfHintElements; i++) $S('hintstring'+i).backgroundColor='#fbfbfb';
		$S('hintstring'+row).backgroundColor='#c0c0c0';
}

function SelectByKey(code){
	if($S('search_tips').display=='block') {
		if (code == 40 && NumberOfHintElements != 0){ //Down
			HintMenuPos++;
			if(HintMenuPos > NumberOfHintElements) HintMenuPos = 1;
			SetHintRow(HintMenuPos);
		}
		if (code == 38 && NumberOfHintElements != 0){ //Up
			HintMenuPos--;
			if(HintMenuPos <= 0) HintMenuPos = NumberOfHintElements;
			SetHintRow(HintMenuPos);
		}
		if (code == 13 && HintMenuPos != 0){ //Enter
			SetInput($('hint'+HintMenuPos).value);
		}
		if (code == 27){ //ESC
			HideHints('search_tips');
		}
	}	
}
function ShowSearch(n)
{
	if (n == 1)
	{
		$S('search_tags_div').display = 'none';
		$S('search_basic_div').display = 'block';
	}
	else
	{
		$S('search_basic_div').display = 'none';
		$S('search_tags_div').display = 'block';
	}
}
