var JQ = {}; // Global variable accessible to all 

$(document).ready(function()
{		
	$("#ajax").val('1'); // prevent back-button bug
	
	// user editing form
	$(".trayhead").click(function () 
	{
		intraydiv = $('#intray_' + $(this).attr('id'));
		arrow = $('#arrowimg_' + $(this).attr('id'));
		
		if ($(intraydiv).is(":hidden")) 
		{
			arrow.attr('src', 'images/open_trayarrow.gif');
			$(intraydiv).slideDown("fast");			
			//$(link).html('hide');
		}
		else 
		{
			arrow.attr('src', 'images/closed_trayarrow.gif');
			$(intraydiv).slideUp("fast");			
			//$(link).html('show');
		}
		
		return false;
	});
	
	// user editing button submit
	$(".searchsubmit").click(function() 
	{
		submitSearch();
		
		return false;
	});
	
	// Form element which requires a full page refresh
	$(".fullrefresh_click").click(function() 
	{
		$("#ajax").val('0');
		$("#searchref").val(Math.floor(Math.random() * 65536));
		$("#searchform").submit();		
	});
	
	// Form element which requires a full page refresh
	$(".siteselect_change").change(function() 
	{
		if($("#siteselect").val() != '')
		{
			var site = $("#siteselect").val();
			$("#siteselect").val(JQ.siteurl);
			var newurl = site + 'search';
			
			if($("#country").val() != '')
				newurl += '?country=' + $("#country").val();
			document.location = newurl;
		}
	});
	
	// Form element which requires a full page refresh
	$(".fullrefresh_change").change(function() 
	{
		$("#ajax").val('0');
		$("#lat").val('');
		$("#lon").val('');
		$("#searchref").val(Math.floor(Math.random() * 65536));
		$("#searchform").submit();		
	});
	
	// Form element which requires a search div refresh
	$(".searchrefresh_change").change(function() 
	{
		if($(this).attr('id') == 'city' || $(this).attr('id') == 'postcode')
		{
			$("#lat").val('');
			$("#lon").val('');	
		}
		
		if($(this).attr('id') == 'city' && $('#postcode').length > 0)
			$("#postcode").val('');
		else if($(this).attr('id') == 'postcode' && $('#city').length > 0)
			$("#city").val('');
		
		submitSearch();
	});
	
	// Form element which requires a search div refresh
	$(".searchrefresh_click").click(function() 
	{
		submitSearch();
	});
	
	// Changing the sort box refreshes the search and affects the visibility of includestandarddiv
	$(".sort_change").change(function() 
	{
		$("#includestandard").attr('checked', false);
		submitSearch();
	});
	
		
	function submitSearch()
	{
		if($("#sort").val() == "")
			$("#includestandarddiv").css("visibility", "hidden");
		else
			$("#includestandarddiv").css("visibility", "visible");
		
		var myform = $("#searchform");
		var action = myform.attr('action');
		var formdata = myform.serialize();

		$("#waitingdiv").css("visibility", "visible");
		$("#searchresults").fadeOut("fast");	
			
		$.get(action, formdata, function(data) 
		{
			$("#waitingdiv").css("visibility", "hidden");
			$("#searchresults").html(data);	
			$("#searchresults").fadeIn("fast");
			$("#start").val('0');
		});	
	}
	
	// This is called when a results page selector link is clicked
	JQ.resultPageClick = function(page)
	{
		$("#start").val(page);
		submitSearch();	
	};
	
	// This is called when a location-choice selector link is clicked
	JQ.locationChoiceClick = function(lat, lon)
	{
		$("#lat").val(lat);
		$("#lon").val(lon);
		submitSearch();	
	};
});
