/**
 * @author Edo
 */

function OnSearchSlideUpTimeOut()
{
	resultSet.style.visibility = "hidden";
}

function OnSearchTypeTimeout(event)
{
	resultSet.style.visibility = "visible";
	resultDiv.slideDown("slow");	
	resultDiv.addClass("ac_loading");
	
	try
	{
		$.getJSON(baseLink + "search.php?js=true&query=" + searchInput.value + callbackAttr, 
		function(JSON)
		{
			/*if(status != "success")
			{
				resultSet.style.visibility = "hidden";
				resultDiv.style.display = "none";
				return;	
			}*/
			var htmlResult = "<ul>";
			var count = 0;
	
			$.each(JSON.results, 
			function(i, result)
			{
				var newsAddon = "";
				if(result.news == "1")
					newsAddon = "&news=1";
				htmlResult += "<li class=\"\"><a href=\"search.html?query=" + result.subject + newsAddon + "\">" + result.subject + "</a></li>";

				count++;
				if(count > 10)
					return false;
		  	});;
			htmlResult += "<li onclick=\"OnSearchAutoCompleteClose\">Close this</li>";
			htmlResult += "</ul>";
			resultDiv.removeClass("ac_loading");
			if(count == 0)
				resultDiv.empty();
			else
			{
				resultDiv.empty();
				resultDiv.html(htmlResult);
			}
		});
	}
	catch(ex)
	{
		resultSet.style.visibility = "hidden";
		return;			
	}
	
	if(resultSet.innerText !== "")
	{
		/*resultSet.style.visibility = "visible";
		resultDiv.slideDown("slow");*/
	}
	else
	{
		resultSet.style.visibility = "hidden";
		resultDiv.style.display = "none";
	}
}

function OnSearchBlurTimeout(event)
{
	resultDiv.slideUp("slow");
}

var delayedSearchType;
function OnSearchType(event)
{
	clearTimeout(delayedSearchType);
	var value = this.value;
    if (value.length >= 3) 
	{
        delayedSearchType = setTimeout(OnSearchTypeTimeout, 100);
    }
	else
	{
		resultSet.style.visibility = "hidden";
		resultSet.style.display = "none";
	}
}

var delayedSearchBlur;
function OnSearchBlur(event)
{
	clearTimeout(delayedSearchBlur);
	var value = this.value;
    if (value.length >= 3) 
	{
        delayedSearchBlur = setTimeout(OnSearchBlurTimeout, 100);
    }
	else
	{	
		resultSet.style.visibility = "hidden";
		resultSet.style.display = "none";	
	}
}

function OnSearchAutoCompleteClose(event)
{
	resultSet.style.visibility = "hidden";
	resultSet.style.display = "none";
	return false;
}

function OnSearchButtonClick(event)
{
	var searchText = searchInput.value;
    if(searchText == "")
	{
		return false;
	}
	var news = $.jqURL.get("news");
	if(news != undefined)
		location.href = "search.html?query=" + searchText + "&news=1";
	else
		location.href = "search.html?query=" + searchText;
	return false;
}

var searchInput;
var resultSet;
var resultDiv;
function SearchOnPageLoad()
{
	$("#search").keyup(OnSearchType);
	$("#search").blur(OnSearchBlur);
	searchInput = document.getElementById("search");
	resultSet = document.getElementById("ac_results");
	resultDiv = $("#ac_results");
}

//Search.html
function SearchLoading()
{
	return "<p align=center><br /><br /><img src=\"./images/loading3.gif\"/></p>";
}

function SearchOnQuery()
{
	var contentDiv = $("#searchContent");
	contentDiv.text("");
	var query = $.jqURL.get("query");
	if(query == undefined)
		location.href = "index.html";
		
	var newsL = "";		
	var news = $.jqURL.get("news");
	if(news != undefined)
		newsL = "&news=1";
	
	$.getJSON(baseLink + "search.php?query=" + query + newsL + callbackAttr, 
	function(JSON)
	{
		var htmlResult = "<h2 class=\"title\">Search Results</h2>";
		htmlResult += "  <ul>";
		var count = -1;
		contentDiv.empty();
		contentDiv.html(SearchLoading());
		//contentDiv.addClass("content_loading");
		$.each(JSON.results, 
		function(i, result)
		{
			htmlResult += "    <li>";
			if(news != undefined)
				htmlResult += "      <a href=\"index.html?nid=" + result.id + "\">" + result.subject + "</a>";
			else
				htmlResult += "      <a href=\"blog.html?u=" + result.username + "&pid=" + result.id + "\">" + result.subject + "</a>";
			htmlResult += "    </li>";
			count++;
			if(count > 10)
				return false;
	  	});
		htmlResult += "  </ul>";		
			
		//contentDiv.removeClass("content_loading");
		if(count == -1)
			contentDiv.empty();
		else
		{
			contentDiv.empty();
			contentDiv.html(htmlResult);
		}
	});	
}

function SearchOnAfterLoad()
{
	$(document).ready(
	function()
	{
		//Load Search Results
		SearchOnQuery();
		//Analytics
		Analytics();		
		//Login
		CheckLogin();		
	});
}