Search  = new function(){
	this.reloadSearchResults = function(){
		searchPage = 1;
		var filterBrands = Search.getBrandsSelected();
		var filterPriceRange = Search.getPricesSelected();
		var filterShops = Search.getStoresSelected();
		var searchQuery = $('#searchentry').val();
		var sortConditions = $('#searchSortBy').val().split('-');
		
		$('#searchResults').fadeOut('slow', function(){
			$.get(
				'loadonce.php', 
				{
					'filterBrands[]':filterBrands, 
					'filterPriceRange':filterPriceRange, 
					'filterShops[]':filterShops,
					'searchentry':searchQuery,
					'sortField':sortConditions[0],
					'sortDirection':sortConditions[1]
				},
				function(response){
					$('#searchResults').fadeIn('fast');
					$('#searchResults').html(response);
				}
			);
		});
	}
	
	this.loadMoreResults = function(start, totalFound){
		var filterBrands = Search.getBrandsSelected();
		var filterPriceRange = Search.getPricesSelected();
		var filterShops = Search.getStoresSelected();
		var searchQuery = $('#searchentry').val();
		var sortConditions = $('#searchSortBy').val().split('-');
		
		$.get(
			'loadmore.php', 
			{
				'filterBrands[]':filterBrands, 
				'filterPriceRange':filterPriceRange, 
				'filterShops[]':filterShops,
				'searchentry':searchQuery,
				'start':start,
				'sortField':sortConditions[0],
				'sortDirection':sortConditions[1],
				'totalFound':totalFound
			},
			function(response){
				$('#updates').append(response);
			}
		);		
	}
	
	this.getBrandsSelected = function(){
		var res = [];
		$('#brandsList input[type="checkbox"], #brandsMoreList input[type="checkbox"]').each(function(){
			if ($(this).attr('checked') == 'checked') {
				res.push($(this).val());
			}
		});
		return res;
	}
	
	this.getPricesSelected = function(){
		return $('#priceRange').val();
	}	
	
	this.getStoresSelected = function(){
		var res = [];
		$('#storesList input[type="checkbox"], #storesListMore input[type="checkbox"]').each(function(){
			if ($(this).attr('checked') == 'checked') {
				res.push($(this).val());
			}
		});
		return res;
	}		
}

$(document).ready(function(){
	$( "#slider-range" ).bind('slidechange', function(){
		Search.reloadSearchResults();
	});
	
	$('#brandsList input[type="checkbox"], #brandsMoreList input[type="checkbox"], #storesList input[type="checkbox"], #storesListMore input[type="checkbox"]')
	.bind('change', function(){
		Search.reloadSearchResults();
	});
	
	$('#searchSortBy').bind('change', function(){Search.reloadSearchResults();});
	
	$( "#searchentry" ).autocomplete({
        source: "autosuggest.php",
        minLength: 2,
        select: function( event, ui ) {
            $( "#searchentry" ).val(ui.item.value);
            $('#topSearchForm').submit();
        }
    });	
});

