// hide the results box
function hideResultBox() {
	$('#suggested_search').hide();
}

function clearResultBox() {
	hideResultBox();
	$('#search_field').val("");
	$('#search_field_clear_btn').hide();
}
// shows the results box
function showResultBox() {
	var str = $('#search_field').val();
	if( str.length > 0 && str != search_field_tekst_string ) {
		$('#suggested_search').show().css("border","1px solid #c1c1c1").css("border-top","0");
	}
}

$(document).ready(function() {
	$(document).click(function(){
		var str2 = $('#search_field').val();
		if( str2.length == 0 ) {
			$('#search_field').val(search_field_tekst_string);
			$('#search_field').css('color','#969696');
			$('#search_field_clear_btn').hide();
		}
		$('#suggested_search').hide();
	});
	
	$('#suggested_search, #search_left_menu').click(function(e){
		e.stopPropagation();
	});
	resetClasses();
});


// handles key event
function handleKey(e) {
	var key =  (window.event) ? event.keyCode : e.keyCode;

	switch(key){
		case 27: // escape
			hideResultBox();
			return true;
			break;
		case 38: // up arrow
			moveSelection('up');
			return true;
			break;
		case 40: // down arrow
			moveSelection('down');
			return true;
			break;
		default:
			showResult();
			return true;
	}
}

// move down
function moveSelection(dir) {
	var active_elm;
	var over_active = false;
	active_elm = $('#suggested_search a.over');
	
	$.each( $('#suggested_search a'), function(i, e) {
		if( $(e).attr("class") == "over" ) {
			over_active = true;
		}
	});
	
	if(dir == "up") {
		if(active_elm.prev('#suggested_search a').length > 0) {
			active_elm.removeClass();
			active_elm.prev('#suggested_search a').removeClass().addClass("over");
		}
	} else if(dir == "down") {
		if( !over_active ) {
			$('#suggested_search a:first').removeClass().addClass("over");
		}
		if(active_elm.next('#suggested_search a').length > 0) {
			active_elm.removeClass();
			active_elm.next('#suggested_search a').removeClass().addClass("over");
		}
	}
	
	$.each( $('#suggested_search a'), function(i, e) {
		if( $(e).attr("class") == "over" ) {
			$('#search_field').val( $(this).find('.search-name').html().replace(/(<.*?>)/ig,"") );
		}
	});
}

// reset class
function resetClasses() {
	$.each( $('#suggested_search a'), function(i, e) {
		$(e).hover(
			function() {
				$('#suggested_search a').removeClass();
				$(e).removeClass().addClass("over");
			},
			function() {
				$(e).removeClass();
			}
		)
	});
}

// show result
function showResult() {
	var str = $('#search_field').val();
	if( str.length > 0 && str != search_field_tekst_string ) {
		var response;
		var search_term;
		if (str.length < 2) {
			hideResultBox();
			return;
		}
		$('#search_field_clear_btn').show();
		
		// create request
		if (window.XMLHttpRequest) {
			// code for IE7+, Firefox, Chrome, Opera, Safari
			xmlhttp = new XMLHttpRequest();
		} else {
			// code for IE6, IE5
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		}

		xmlhttp.onreadystatechange=function() {
			if (xmlhttp.readyState == 4 && xmlhttp.status == 200 && str.length > 1) {
				response = xmlhttp.responseText;
				
				if( response != "" ) {
					$('#suggested_search').html( response );
					showResultBox();
				} else {
					hideResultBox();
				}
				resetClasses();
			}
		}

		// do the request
		xmlhttp.open("GET",datasource_location+str,true);
		xmlhttp.send();
	}
}

function submitSearch(sOrig_search_term) {
	$("#search_field").val(sOrig_search_term);
	$("#suggested_search_yn").val("Y");
	$("#search_left_menu").submit();
}

//<![CDATA[
function clear_search(input_field) {
	if (input_field.value == search_field_tekst_string) {
		input_field.value = '';
		input_field.style.color = '#000';	
	}
}

function check_search_query(form) {
	var min_chars = 2;
	var input_elements = form.getElementsByTagName('input');
	for(var i=0; i<input_elements.length; i++){
		if(input_elements[i].type == 'text'){
			var textfield = input_elements[i];
			if( textfield.value.length < min_chars || textfield.value == search_field_tekst_string ){
				return false;
			}else{
				form.submit();
			}
		}
	}
}
//]]>
