current_highlight = 0;
total_result = 0;
result_link = new Array();

document.onclick = function() {
	document.getElementById("suggest_results").innerHTML = "";
	document.getElementById("suggest_results").style.display = "none";
}

function set_current_highlight(int) {
	current_highlight = int;
}

function clear_highlight() {
	for( i=1; i <= total_result; i++ ) {
		highlight_off(document.getElementById('result'+i));
	}
}

function move_highlight_up() {
	clear_highlight();
	current_highlight++;
	
	if( current_highlight >= total_result ) {
		current_highlight = total_result;
	}
	
	highlight_on(document.getElementById('result'+current_highlight));
}

function move_highlight_down() {
	clear_highlight();
	current_highlight--;
	if( current_highlight < 0 ) {
		current_highlight = 0;	
	}
	if( current_highlight == 0 ) {
		//document.getElementById('search_field').focus();
		
	} else {
		highlight_on(document.getElementById('result'+current_highlight));
	}
}

function highlight_on(div) {
	clear_highlight();
	div.className = "search_suggest_box_result_hover";
	//div.focus();
}

function highlight_off(div) {
	div.className = "search_suggest_box_result";
	//div.focus();
}

function find_key_pressed(e) {
	if (!e) {
		var e = window.event;
	}
	
	var code = e.keyCode;
	
	if( code == 40 ) {			// Key Down
		move_highlight_up();
	} else if( code == 38 ) {	// Key Up
		move_highlight_down();
	} else if( code == 37 ) {	// Key Left
		move_highlight_down();
	} else if( code == 39 ) {	// Key Right
		move_highlight_up();
	} else if( code == 27 ) {	// Key Escape
		document.getElementById("suggest_results").innerHTML = "";
		document.getElementById("suggest_results").style.display = "none";
	} else if( code == 13 ) {	// Key Enter
		if( result_link[current_highlight] == undefined ) {
			// Do Nothing As I Want To Submit The Form
		} else {
			window.location = result_link[current_highlight];
		}
	} else if( code == 113 ) {
		alert('DO IT LIVE!');
	} else {
		search_suggest(document.getElementById('search_field').value);	
	}
}

function search_suggest(query) {
	if( query != "" ) {
		var results = jQuery.ajax( {
			url: "/search_suggest.php",
			async: false,
			data: 'ajax_action=suggest_query&query='+query
		} ).responseText;
		
		
		if( results == "" ) {
			var outputText = "";
			total_result = 0;
			current_highlight = 0;
		} else {
			var resultSets = results.split("|");
			var outputText = "";
			var count = 0;
			
			for( var i in resultSets ) {
				if( i == parseInt(i) ) {
					var singleResult = resultSets[i].split("~");
					if( singleResult[0] != "" ) {
						count++;
						var url_safe_terms = singleResult[0].replace(" ", "+");
						// onmouseover=\"highlight_on(this);\" onmouseout=\"highlight_off(this);\"
						
						var link = "/products.php?action=search&keywords="+url_safe_terms
						
						result_link[count] = link;
						
						outputText += "<div id=\"result"+count+"\" onmouseover=\"set_current_highlight("+count+"); highlight_on(this);\" onmouseout=\"set_current_highlight(0); highlight_off(this);\" onclick=\"window.location='"+link+"'\" class=\"search_suggest_box_result\">"+
										"<span class=\"search_suggest_box_single_result_text\">" +
											"&nbsp;&nbsp;"+singleResult[0] + 
										"</span>" +
										"<span style=\"search_suggest_box_single_result_count\">" +
											"("+singleResult[1]+")"+
										"</span>" +
									"</div>";
					}
				}
			}
			total_result = count;
		}
	
		if( outputText != "" ) {
			document.getElementById("suggest_results").innerHTML = outputText;
			document.getElementById("suggest_results").style.display = "block";
		} else {
			document.getElementById("suggest_results").innerHTML = "";
			document.getElementById("suggest_results").style.display = "none";
		}
	} else {
		document.getElementById("suggest_results").innerHTML = "";
		document.getElementById("suggest_results").style.display = "none";
	}
}
