$(document).ready(function(){
	var search_timeout = undefined;

	//Search user
	$('#search').bind('keyup', function() {
		if($(this).val()=="") {
			$("#search_max_number_of_words_alert").hide();
		}
		
		var rule_max = $.validation.getRule("max_x_words");
		if(!rule_max.check($(this).val(), 3)) { //maximum 3 words
			//Remove characters which are part of excess words			
			$(this).val($.util.max_x_words($(this).val(), 3));
			$("#search_max_number_of_words_alert").show();
		}
		
		if(search_timeout != undefined) {
			clearTimeout(search_timeout);
		}
		var $this = this; // save reference to 'this' so we can use it in timeout function
		search_timeout = setTimeout(function() {
			search_timeout = undefined;
			
			$("#ajaxIcon").show("fast");
			
			$.ajax({
				type: "POST",
				url: "get_search_list.php",
				data: "id="+$("#search").val(),
				success: function(html){
					$("#search_result").html(html);
					
					var search_term=$("#search").val().replace(/\?/g, "").split(" "); //remove question marks
					
					//Remove empty elements from array
					var arguments=[];
					var j=0;
					for(var i=0;i<search_term.length;i++) {
						if(search_term[i]!="") {
							arguments[j]=search_term[i];
							j++;
						} 
					}
					
					if(arguments.length>0) $("#search_result").highlight(arguments);
					
					$("#ajaxIcon").hide("fast");
				}
			});
			
		}, 500);
	});
	
	//Search from bricksite backend
	if($('#search').val()!=undefined&&$('#search').val().length>0) showSearchResult($('#search').val());
	
	//Search logging
	$('#search').bind('blur', function() {
		$.ajax({
			type: "POST",
			url: "create_search_log_entry.php",
			data: "string="+$("#search").val()
		});
	});
	
	//Search admin
	$('#search_admin').bind('keyup', function() {
		var url_list_admin = "0";
		if($('input[name=search_admin_online_and_offline]').is(':checked')) { //search both online and offline
			url_list_admin = "1";
		} else { //only search online
			//do nothing
		}
		
		if(search_timeout != undefined) {
			clearTimeout(search_timeout);
		}
		var $this = this; // save reference to 'this' so we can use it in timeout function
		search_timeout = setTimeout(function() {
			search_timeout = undefined;
			
			$("#ajaxIcon").show("fast");
			
			$.ajax({
				type: "POST",
				url: "get_search_list_admin.php",
				data: "id="+$("#search_admin").val()+"&offline="+url_list_admin,
				success: function(html){
					$("#search_result").html(html);
					
					var search_term=$("#search_admin").val().split(" ");
					
					//Remove empty elements from array
					var arguments=[];
					var j=0;
					for(var i=0;i<search_term.length;i++) {
						if(search_term[i]!="") {
							arguments[j]=search_term[i];
							j++;
						}
					}
					
					if(arguments.length>0) $("#search_result").highlight(arguments);
					
					$("#ajaxIcon").hide("fast");
				}
			});
			
		}, 500);
	});
});

function showSearchResult(input) {
	$.ajax({
		type: "POST",
		url: "get_search_list.php",
		data: "id="+$("#search").val(),
		success: function(html){
			$("#search_result").html(html);
			var search_term=$("#search").val().split(" ");
			//Remove empty elements from array
			var arguments=[];
			var j=0;
			for(var i=0;i<search_term.length;i++) {
				if(search_term[i]!="") {
					arguments[j]=search_term[i];
					j++;
				}
			}
			if(arguments.length>0) $("#search_result").highlight(arguments);
			$("#ajaxIcon").hide("fast");
		}
	});
}
