$("#display-searchbox").hide();
var tempItems=[];
var clickInside=false;
var lastSearch='';

function showFullSearchResults(){
	location.href=baseAppUrl + "/search/searchAll?term=" + $("#searchbox").val();
}

function showAll(obj){
	$(".resultSection").show();
	var items = $('.resultFilters .rank-tab.active');
	items.removeClass('active');
	$(obj).addClass('active');
}

function searchFilter(obj,target){
	$(".resultSection").hide();
	var items = $('.resultFilters .rank-tab.active');
	items.removeClass('active');
	$(obj).addClass('active');
	$("." + target + "List").show();
}

function refreshResults(targetString, viewMode){
	if (lastSearch==targetString){
		$.ajax({
	        type: "POST",
	        url: baseAppUrl + "/search/searchRequest?term=" + targetString,
	        cache: false,
	        dataType: "json",
			beforeSend: function(){
				if(viewMode=="header"){
					$("#display-searchbox").html("<div class='centre'><img align='absmiddle' src='/img/loading-bar-evolution.gif' height='20'/></div>").show();
				}else if(viewMode=="fullView"){
					//fullview
				}
			},
	        success: function(response){
	        	parseAndShowResults(response, viewMode);
	        }
		});
	}
}

function parseAndShowResults(response, viewMode){
	if(response.status=="ok"){
		$("#display-searchbox").html(response.html).removeClass("invalid").removeClass("noresults");
		$("#display-searchbox").children(".searchResultItem").first().addClass("highligth-result");
		tempItems = $("#display-searchbox").children(".searchResultItem");	                		
	}else if(response.status=="noresult"){
		$("#display-searchbox").html(response.html).addClass("noresults");
	}else if(response.status=="error"){	                		
		$("#display-searchbox").html(response.html).addClass("invalid");
	}
}

$("#searchbox").keyup(
	debounce(function(event) {	
		if(((event.keyCode>=65) && (event.keyCode<=90)) || (event.keyCode==8)){		
		    if($(this).val()!='') {
		    	lastSearch=$(this).val();
		    	var thisSearch=lastSearch;
		    	setTimeout(function(){
		    		refreshResults(thisSearch, 'header');
		    	},800);
		    }else{
		    	$("#display-searchbox").hide();
		    	return false; 
		    }
		}else{
			if (!(event.keyCode>=37) && !(event.keyCode>=39)){
				$("#searchbox").val($("#searchbox").val().replace(/[^A-Za-z\s:]/g,''));			
			}
		}
	}, 125, false)
);

$("#searchbox").click(function(){
	$(this).removeClass("invalid");
	if( (!$("#display-searchbox").is(":visible")) && ($("#searchbox").val()!="") ){
		refreshResults($("#searchbox").val(), "header");
		clickInside=true;
	}
});

$("html").click(function(){
	if(!clickInside && $("#display-searchbox").is(":visible")){
		$("#display-searchbox").hide();		
	}
	if(clickInside){
		clickInside=false;
	}
	
	if(dropDown){
		$("ul.menu-dropdown").slideUp();
		dropDown=false;
	}
});

function selectSearchItem(type, id){
	if(type=="user"){
		location.href=baseAppUrl + "/users/" + id;
	}else if(type=="topic"){
		location.href=baseAppUrl + "/topics/" + id;
	}else if(type=="stock"){
//		$("#searchbox").val(id.toUpperCase());
		location.href=baseAppUrl + "/quotes/" + id;
	}
}

function itemMouseOver(elm){
	$(".highligth-result").removeClass("highligth-result");
	elm.addClass("highligth-result");	
}

$("#searchbox").keydown(function(event){
	var itemsCount = tempItems.length;
	if(event.keyCode==38){//arrow up
		for(var a=0;a<itemsCount;a++){
			if($(tempItems[a]).hasClass("highligth-result")){
				$(tempItems[a]).removeClass("highligth-result");
				if((a-1)<0){
					$(tempItems[itemsCount-1]).addClass("highligth-result");					
				}else{
					$(tempItems[a-1]).addClass("highligth-result");
				}				
				break;
			}
		}
	}else if(event.keyCode==40){//arrow down
		for(var a=0;a<itemsCount;a++){
			if($(tempItems[a]).hasClass("highligth-result")){
				$(tempItems[a]).removeClass("highligth-result");
				if((a+1)<itemsCount){
					$(tempItems[a+1]).addClass("highligth-result");
				}else{
					$(tempItems[0]).addClass("highligth-result");
				}
				break;
			}
		}			
	}else if(event.keyCode=='13'){
		if($("#display-searchbox").is(":visible")){
			$(".highligth-result").click();			
		}else{
	    	window.location.href=baseAppUrl+"/quotes/" + $(this).val();
//			showFullSearchResults();
		}
	}else if(event.keyCode=='27'){
		$("#display-searchbox").hide();
	}
});
