// JavaScript Document

/* -------------------------- SEARCH (FUNCTION CALLED TO GET RESULT) -------------------------- */
function getSearchResult ()
{
    
    var obj = $('.searchField');
	var strLen = $(obj).val().length;
	if(strLen >= 2)
	{
	    var searchAreas = "";
	    var pos = $('#labSearch').offset();

	    $('#labSearchAdvContent input:checked').each(
            function() {
                searchAreas += $(this).val() + ',';
            }
	    );
            searchAreas = searchAreas.substring(0, searchAreas.lastIndexOf(','));
            searchAreas = (searchAreas.length > 0) ? "&a=" + searchAreas : "";
            
	    $('#searchResult').css({top: pos.top + 65, left: pos.left - 10});

		var searchStr = $(obj).val();

		$.ajax({
		    type: "GET",
		    url: "/UnilabsTemplates/Functions/LabSearch_json.aspx",
		    dataType: "json",
		    data: "q=" + searchStr + "&epslanguage=" + lang + "&s=" + labSearchRoot + searchAreas,
		    queue: "searchResult",
		    cancelExisting: true,
		    //ifModified: true,
		    success: function(res) {

		        if (res.result.length > 0) {
		            $('#searchResult').show(300);
		            procesSearchResult(res);
		        }
		        else {
		            $('#searchResult').hide(300);
		        }
		    },
		    error: function() {
		        return false;
		    }
		});	
	}
	else
	{
		$('#searchResult').hide();
	}
}

/* -------------------------- SEARCH (FUNCTION TO PROCES THE RESPONS DATA) -------------------------- */
function procesSearchResult(res)
{
	var ajaxLoader			= $('.ajaxLoader');
	var src                 = $('.resultSection');
	var obj                 = $('.searchField');
	
	ajaxLoader.css({opacity: 1}).animate({opacity: 1}, 500).hide();

	$(src).empty();
	
	$(res.result).each(
		function() 
		{	
			var categorySection 	= $('<div class="categorySection"></div>');
			var category 			= $('<div class="category">'+this.category+'</div>');
			var categoryItems 		= $('<div class="categoryItems"></div>');
			
			var itemLen = $(this.items).size();
			$(this.items).each(
				function (index)
				{
				    var matches1 = [];
				    var matches2 = [];
				    var matches3 = [];
				    
				    var searchStr = $(obj).val();
				   
	                var regex = new RegExp('('+searchStr+')', "gi");
				    var header  = this.header;
				    var altheader = this.altheader;
				    var text    = this.text;
				    
				    header = header.replace(regex, function () {matches1.push(Array.prototype.slice.call(arguments, 1,2)); return '<span class="highlight">' + matches1[0] + '</span>';});
				    altheader = altheader.replace(regex, function () {matches2.push(Array.prototype.slice.call(arguments, 1,2)); return '<span class="highlight">' + matches2[0] + '</span>';});
				    text = text.replace(regex, function () {matches3.push(Array.prototype.slice.call(arguments, 1,2)); return '<span class="highlight">' + matches3[0] + '</span>';});
				    
				    
				    //header = header.replace(regex, '<span class="highlight">' + searchStr + '</span>');
				    //altheader = altheader.replace(regex, '<span class="highlight">' + searchStr + '</span>');
				    //text = text.replace(regex, '<span class="highlight">' + searchStr + '</span>');
				    
				    
					var categoryItem 		= $('<div class="categoryItem"><span class="categoryItemHeader"><span class="system">'+altheader+'</span> - <b>' + header + '</b></span><span class="categoryItemDesc">'+text+'</span><a class="readmore" href="'+this.link+'">'+this.linkText+'</a><div class="cb"></div></div>');
					$(categoryItems).append(categoryItem);
					 
					if(itemLen == index+1)
						$(categoryItem).addClass('last');
				}
			);
			
			$(categorySection).append(category).append(categoryItems);
			$(src).append(categorySection);
		}
	);
}



/* -------------------------- VIEW/HIDE SEASON SELECTOR BOX -------------------------- */

$(document).ready(
	function() 
	{
	    $('.searchField').focus(
		    function() 
		    {
		        if ($(this).val() == $(this).attr('alt'))
		            $(this).val('');   
		    }
		);
		
	    $('.searchField').bind('keyup', getSearchResult);
	    $('.searchField').blur(
		    function() 
		    {
		        if ($(this).val() != $(this).attr('alt')) 
		        {
		            //$(this).val($(this).attr('alt'));
		        }

		        $('#searchResult').animate({ opacity: 1 }, 1000, function() { $(this).hide(300); });
		    }
		 );

	    $(".labSearchAdvBtn").toggle(
		    function() 
		    {
		        $("#labSearchAdvContainer").show(300);    
		    },
            function() 
            {
                $("#labSearchAdvContainer").hide(300);
            }
        );

	    $('#labSearchAdvContent input.searchField').bind('change', getSearchResult);
	}
);
