//jquery functions for modern browsers


//you must include jquery-1.3.2.min.js before including this file

///////////////
//jquery onload functions
///////////////


$(document).ready
	(
	function()
		{
		
		//switch classnames to minimise product search widget
		$("#sbox").removeClass().toggleClass('minimised');
		$("#productSearch_input").hide();
		$("#go_button").hide();
		
		//initiate global vars to keep track of mouse location and focus
		window.searchfocused=false;
		window.suggestfocused=false;
		window.overProductSearch=false;
		
		//add event listeners//
		
		//mouseover listener for sbox to grow
		$("#sbox").bind('mouseover',sboxGrow);
		
		//mouseout listener to shrink sbox
		$("#sbox").bind('mouseout',sboxShrink);
		
		
		//when clicking on graphical search box make sure input element is focused
		$("#sbox").click
			(
			function()
				{
				if(window.searchfocused==false)
					{
					//focus object
					$("#productSearch_input").focus().select();
					
					}
				
				//class switch
				$(this).removeClass().toggleClass('focused');
				
				//make sure necessary elements shown
				$("#productSearch_input").show();
				
				//global var for remembering object is focused
				window.searchfocused=true;
				window.overProductSearch=true;
				}
			)
		
		$("#productSearch_input").blur
			(
			function()
				{
				//model field is blurred
				
				//if not hovering over productsearch or browsing through autosuggest
				if(window.overProductSearch==false && window.suggestfocused==false)
					{
					//className switch
					$("#sbox").removeClass().toggleClass('minimised');
					$(this).hide();
					$("#go_button").hide();
					
					//empty and hide
					$(this).attr('value','');
					$("#productSuggest").fadeOut(500,function()
						{
						$("#productSuggest").attr('value','');
						});
					
					//remember hidden
					window.searchfocused=false;
					
					//reassign mouseover listener
					$("#sbox").bind('mouseover',sboxGrow);
					}
				}
			)

		//product search keyup AJAX listener
		$("#productSearch_input").keyup
			(
			function()
				{
				//function for getting product suggestion
				
				//whats the user typing?
				var pS=$(this).attr("value");
				
				//call PHP suggest script and load the autocomplete div
				$("#productSuggest").load("/scripts/ajax/productsearch_suggest.php", {searchstring: pS}, function()
					{
					//if productSearch has loaded any suggestions, fade them in
					var suggest_count  = $(".suggest").size();
					if(suggest_count > 0)
						{
						$("#productSuggest").fadeIn(200);
						}
					else
						{
						$("#productSuggest").fadeOut(200);
						}
					
					});
				
				}
			)
		
		//when tabbing to autocomplete, don't hide sbox, also tab when pressing down
		$("#productSearch_input").keydown
			(
			function(event)
				{
				//catch tab key
				if(event.keyCode==9)
					{
					//set global var to prevent hiding sbox
					window.suggestfocused=true;
					}
				}
			)
		}
	)

//for jquery onload
function sboxGrow()
	{
	//grow sbox when hovering
	//function is assigned and removed as a listener depending on certain other events
	
	if(window.searchfocused==false)
		{
		//className switch, remove all old then add new
		$("#sbox").removeClass().toggleClass('full');
		$("#productSearch_input").show();
		//$("#go_button").show();
		}
	window.overProductSearch=true;
	}

//for jquery onload
function sboxShrink()
	{
	//shrink sbox, but only if searchbox not selected
	
	if(window.searchfocused==false && window.suggestfocused==false)
		{
		//className switch
		$("#sbox").removeClass().toggleClass('minimised');
		$("#productSearch_input").hide();
		$("#go_button").hide();
		
		//blur text field
		$("#productSearch_input").blur();
		
		//reassign mouseover listener if required
		$("#sbox").bind('mouseover',sboxGrow);
		}
	window.overProductSearch=false;

	}
