//---------------------------------------------START PRODUCT FILTERS//
function checkProductFilters()
{
	$('div.product_filter a').each(function()
	{
		$(this).unbind().bind('click',function()
		{
			if($(this).hasClass('more_filters'))
			{
				$(this).addClass('changing');
				
				$(this).prev('div').slideToggle('slow',function()
				{
					if($('a.changing').attr('title') == 'View More')
					{
						$('a.changing').attr('title','View Less').html('View Less').removeClass('changing');
					}
					else
					{
						$('a.changing').attr('title','View More').html('View More').removeClass('changing');
					}
				});
			}
			else
			{
				var filter_link 		= $(this).attr('href');
				var filter_link_array	= filter_link.split('/');
				
				filter_link_array		= filter_link_array[(filter_link_array.length - 3)];
				filter_link_array		= filter_link_array.replace('filter-','');
				
				if(filter_link_array.substr(0,7) == 'remove-')
				{
					$(this).attr('href',($(this).attr('href').replace('remove-','')));
					$(this).removeClass('active');
				}
				else
				{
					$(this).attr('href',($(this).attr('href').replace(filter_link_array,'remove-'+filter_link_array)));
					$(this).addClass('active');
				}
				
				$.ajax({
						async			: false,
						url				: filter_link,
						type			: "POST",
						data			: ({
												ajax			: 'true'
											}),
						success			: function(data)
						{
							$('div.products').html(data);
							
							var category_id = $('div.product_filter').attr('class').split(' ');
							
							if(category_id[2] != undefined)
							{
								category_id = category_id[2].replace('cat-','');
							}
							else
							{
								category_id = category_id[1].replace('cat-','');
							}
							
							$.ajax({
									async			: false,
									url				: _root+'productfilters/',
									type			: "POST",
									data			: ({
															category_id		: category_id,
															ajax			: 'true'
														}),
									success			: function(data)
									{
										data = data.split('~');
										
										if($('div.product_filter').hasClass('update'))
										{
											$('div.product_filter').replaceWith(data[0]);
											
											if(data[1] != undefined && data[2] != undefined)
											{
												$('div#breadcrumb ul li.filter').remove();
												$('div#breadcrumb ul').html($('div#breadcrumb ul').html()+data[1]);
												$('div.pagination select[name="page"]').html(data[2]);
											}
											else if($('div.pagination select[name="page"]').length > 0 && data[1] != undefined)
											{
												$('div.pagination select[name="page"]').html(data[1]);
											}
											
											checkProductFilters();
										}
										else
										{
											if(data[0] != undefined && data[1] != undefined)
											{
												$('div#breadcrumb ul li.filter').remove();
												$('div#breadcrumb ul').html($('div#breadcrumb ul').html()+data[0]);
												
												var pagination = data[1];
											}
											else if(data[0] != undefined)
											{
												var pagination = data[0];
											}
											
											if($('div.pagination select[name="page"]').length > 0)
											{
												$('div.pagination select[name="page"]').html(pagination);
											}
											else if($('div.pagination').length > 0)
											{
												var option_count = (pagination.split('</option>').length - 1);
												
												$('div.pagination p').remove();
												$('div.pagination a').remove();
												
												if(option_count > 1)
												{
													var page_url = $('div.pagination form').attr('action');
													
													if($('div.pagination a.next').length == 0)
													{
														$('div.pagination form').after('<p class="previous">Previous</p><a class="next" title="Next Page" href="'+page_url+'2/">Next Page</a>');
													}
													
													for(i = 1; i <= option_count; i++)
													{
														if(i == 1)
														{
															$('div.pagination a.next').before('<a class="active" href="'+page_url+i+'/" title="Page '+i+'">'+i+'</a>');
														}
														else
														{
															$('div.pagination a.next').before('<a href="'+page_url+i+'/" title="Page '+i+'">'+i+'</a>');
														}
													}
												}
											}
										}
									}
							});
							
							var products_div = $('div.products').offset();
							
							$('html, body').animate({ scrollTop: parseInt((products_div.top - 50)) }, 250);
							
							$.getScript(_root+'media/js/basket.js');
						}
				});
			}
			
			return false;
		});
	});
	
	$('div.product_filter div a.active').each(function()
	{
		$(this).parent().next('a.more_filters').click();
	});
}
//---------------------------------------------END PRODUCT FILTERS//

//---------------------------------------------START QUICK FIND//
function checkQuickFindFields()
{
	var quick_find_fields	= new Array();
	var count				= 0;
	
	$('form.quick_find select').each(function()
	{
		quick_find_fields[count] = new Array($(this).prev('label').html(),$(this).attr('name'),$(this).val(),$(this).attr('tabindex'));
		
		count++;
	});
	
	if($('body#quick_find').length > 0)
	{
		if(!$('form.quick_find').hasClass('updated'))
		{
			$('form.quick_find').addClass('updated');
			
			updateQuickFindFields($('form.quick_find select').eq(0).attr('name'),$('form.quick_find select').eq(0).val(),quick_find_fields);
		}
	}
	
	$('form.quick_find select').each(function()
	{
		$(this).unbind().bind('change',function()
		{
			updateQuickFindFields($(this).attr('name'),$(this).val(),quick_find_fields);
		});
	});
}

function updateQuickFindFields(field_name,field_value,quick_find_fields)
{
	$.ajax({
			async			: false,
			url				: _root+'quickfind/',
			type			: "POST",
			data			: ({
									field_name		: field_name,
									field_value		: field_value,
									all_values		: quick_find_fields,
									ajax			: 'true'
								}),
			success			: function(data)
			{
				$('form.quick_find ol').html(data);
				
				checkQuickFindFields();
			}
	});
}
//---------------------------------------------END QUICK FIND//

//---------------------------------------------START ADVANCED SEARCH//
function checkAdvancedSearchFields()
{
	var advanced_search_fields	= new Array();
	var count				= 0;
	
	$('form.advanced_search input').each(function()
	{
		advanced_search_fields[count] = new Array($(this).prev('label').html(),$(this).attr('name'),$(this).val(),$(this).attr('tabindex'));
		
		count++;
	});
	
	$('form.advanced_search select').each(function()
	{
		advanced_search_fields[count] = new Array($(this).prev('label').html(),$(this).attr('name'),$(this).val(),$(this).attr('tabindex'));
		
		count++;
	});
	
	if($('body#advanced_search').length > 0)
	{
		if(!$('form.advanced_search').hasClass('updated'))
		{
			$('form.advanced_search').addClass('updated');
			
			updateAdvancedSearchFields(advanced_search_fields[0][1],advanced_search_fields[0][2],advanced_search_fields);
		}
	}
	
	$('form.advanced_search select').each(function()
	{
		$(this).unbind().bind('change',function()
		{
			updateAdvancedSearchFields($(this).attr('name'),$(this).val(),advanced_search_fields);
		});
	});
}

function updateAdvancedSearchFields(field_name,field_value,advanced_search_fields,populate_post)
{
	$.ajax({
			async			: false,
			url				: _root+'advancedsearch/',
			type			: "POST",
			data			: ({
									field_name		: field_name,
									field_value		: field_value,
									all_values		: advanced_search_fields,
									ajax			: 'true'
								}),
			success			: function(data)
			{
				$('form.advanced_search ol').html(data);
				
				checkAdvancedSearchFields();
			}
	});
}
//---------------------------------------------END QUICK FIND//

$(document).ready(function()
{
	//---------------------------------------------START FILTERS//
	if($('div.product_filter').length > 0)
	{
		checkProductFilters();
	}
	//---------------------------------------------END FILTERS//
	
	//---------------------------------------------START QUICK FIND//
	if($('form.quick_find').length > 0)
	{
		checkQuickFindFields();
	}
	//---------------------------------------------END QUICK FIND//
	
	//---------------------------------------------START ADVANCED SEARCH//
	if($('form.advanced_search').length > 0)
	{
		checkAdvancedSearchFields();
	}
	//---------------------------------------------END QUICK FIND//
});
