$(document).ready(function()
{

	$('<div id="mask"></div>').appendTo('body').css('opacity', 0);

	$('#product_ranges_dd .nav_dd_small:first').css({overflowY:'scroll',overflowX:'hidden',height:200});


	// show full list for now
	//if($('#ps_subheaders').height() > 200){ $('#ps_subheaders').css({overflowY:'scroll',overflowX:'hidden',height:200}); }


	$("#filter_form :checkbox[class=si]").click(function() {
      $("#filter_form").submit();
	});


	$('#quick_finder').click(function()
	{

		if(!$('.dd:animated').length)
		{

			if($('#quick_finder_box').is(':visible'))
			{
				// hide
				$('#quick_finder_box').slideUp(function()
				{
					$('#quick_finder').children().find('img').attr('src', '/img/quick_finder_arrow.gif');
				
				});
			}
			else
			{
				if($('.dd:visible').length)
				{
					$('.dd:visible').slideUp(function()
					{
						$('.nav_sp_preview').removeClass('nav_sp_preview').parents('li').removeClass('nav_li_preview');
						setTimeout(function(){ $('#quick_finder').click() },100);
					});
				}
				else
				{

					if(!$('#quick_finder').data('loaded'))
					{
						/* load it */
						$(this).data('loaded', true);
			
						$('#quick_finder_box').show();
			
						var qf_inner = $('#qf_inner').addClass('loading');
			
						qf_inner.load('/ajax/',{what:'qf'}, function()
						{
							qf_inner.removeClass('loading').css({opacity:0,height:'auto'}).animate({opacity:1},1000);
						});
			
					}
					else
					{
						//$('.nav_sp_preview').removeClass('nav_sp_preview').parents('li').removeClass('nav_li_preview');
						$('#quick_finder_box').slideDown(function()
						{
							$('#quick_finder').children().find('img').attr('src', '/img/quick_finder_arrow_up.gif');
						
						});
					}
					
				}
				
			}
		}
		
		return false;
	
	});


	// quickfinder tool
	$('#qf_all :checkbox').live('change', function()
	{
		// check or uncheck all checkboxes of this type

		var bxs = $('#qf_buttons li.' + $(this).parent().attr('class').replace(/_all/, '') + ' :checkbox');

		if($(this).attr('checked'))
		{
			bxs.attr('checked', true);
		}
		else
		{
			bxs.removeAttr('checked');
		}

		

		$.qf_update();
		
	});



	$('#qf_buttons :checkbox').live('change', function()
	{
		$.qf_update();
	})



	$.qf_update = function()
	{
		// get total matching products
		var pdx_count = $('#qf_product_count');

		try
		{
			theRequest.abort();
		}
		catch(drop){}

		$('#qf_product_count').addClass('loading');
		var bxs = $('#qf_buttons :checked:checked');


		if(!bxs.length)
		{
			// set original total back
			pdx_count.removeClass('loading').find('span').text(pdx_count.find('span').attr('class'));
			return;
		}

		var data = 'what=qf_total&';

		// get checked boxes
		bxs.each(function(i,e)
		{
			data += $(e).attr('name') + '=' + $(e).val() + '&';
		});

		//console.log(data);

		theRequest = $.ajax({
			url:'/ajax/',
			type:'post',
			dataType:'json',
			data:data,
			success:function(d)
			{
				pdx_count.removeClass('loading').find('span').text(d.total);
			}
		});

	};


	// product ranges
	$('#pr_toggle').click(function()
	{

		// slide others up.
		// remove classes
		// slide this down

		if($('.dd:animated').length){ return false; }

		if($('#product_ranges_dd:visible').length)
		{
			// already visible. hide

			$('#product_ranges_dd').slideUp(function()
			{
				$('.nav_sp_preview').removeClass('nav_sp_preview').parents('li').removeClass('nav_li_preview');
			});

		}
		else if($('.dd:visible').length)
		{
			$('.dd:visible').slideUp(function()
			{
				$('.nav_sp_preview').removeClass('nav_sp_preview').parents('li').removeClass('nav_li_preview');
				setTimeout(function(){ $('#pr_toggle').click() }, 100);
			});
		}
		else
		{
			$('#quick_finder').children().find('img').attr('src', '/img/quick_finder_arrow.gif');
			$('#product_ranges_dd').slideDown();
			$('#pr_toggle').addClass('nav_sp_preview').parents('li').addClass('nav_li_preview');
		}

		return false;
	
	});

	// categories
	$('#cat_toggle').click(function()
	{
		// slide others up.
		// remove classes
		// slide this down

		if($('.dd:animated').length){ return false; }

		if($('#categories_dd:visible').length)
		{
			// already visible. hide

			$('#categories_dd').slideUp(function()
			{
				$('.nav_sp_preview').removeClass('nav_sp_preview').parents('li').removeClass('nav_li_preview');
			});

		}
		else if($('.dd:visible').length)
		{
			$('.dd:visible').slideUp(function()
			{
				$('.nav_sp_preview').removeClass('nav_sp_preview').parents('li').removeClass('nav_li_preview');
				setTimeout(function(){ $('#cat_toggle').click() }, 100);
			});
		}
		else
		{
			$('#quick_finder').children().find('img').attr('src', '/img/quick_finder_arrow.gif');
			$('#categories_dd').slideDown();
			$('#cat_toggle').addClass('nav_sp_preview').parents('li').addClass('nav_li_preview');
		}

		return false;
	
	});


	// dealer login
	$('#dl_toggle').live('click',function()
	{
		var ht = $(document).height();
		var wd = $(document).width();
	
		$('#mask').css({'height': ht, 'width': wd});
	
		if(!$('#dealer_login_box').is(':animated'))
		{
			if($('#dealer_login_box').height() < 10)
			{
			
				$('.dd:visible').fadeOut(function()
				{
					$('#quick_finder').children().find('img').attr('src', '/img/quick_finder_arrow.gif');
					$('#pr_toggle').removeClass('nav_sp_preview').parents('li').removeClass('nav_li_preview');
					$('#cat_toggle').removeClass('nav_sp_preview').parents('li').removeClass('nav_li_preview');
				});
				
				$('#mask').show().fadeTo(300, 0.4);
				$('#dealer_login_box').animate({
					height: 180
				}, 500, function()
				{
					$('#dl_toggle').find('img').attr('src', '/img/dealer_up.gif');
				
				});
			}
			else
			{
				$('#mask').fadeTo('fast', 0, function()
				{
					$(this).hide();
				});
				$('#dealer_login_box').animate({
					height: 0
				}, 500, function()
				{
					$('#dl_toggle').find('img').attr('src', '/img/dealer_down.gif');
				});
			
			}
		}
		
		return false;
	
	});


	// show all links onload
	$('.pss_all').show().find(':checkbox').change(function()
	{
		var bxs = $(this).closest('div').next().find(':checkbox');
		if($(this).is(':checked'))
		{
			bxs.attr('checked',true);
		}
		else
		{
			bxs.removeAttr('checked');
		}
		$("#filter_form").submit();
	});
	
	$('#ps_selector_container .pss_list').each(function(i,e)
	{
		var show = false;
		var self = $(e);
		if(!self.find(':checkbox:not(:checked)').length)
		{
			// no unchecked boxes. check all and add to remove list at top
			var bx = self.prev().find(':checkbox').attr('checked',true);
			
			// add All to remove list
			$('<li><a href="#" rel="'+bx.attr('id')+'">remove</a><span>'+self.prev().find('.pss_title').text()+'s All</span></li>').appendTo($('#filter_list')).find('a').click(function()
			{
				$(this).closest('li').slideUp();
				$('#'+$(this).attr('rel')).removeAttr('checked').change();
				$('#ps_reset').click();
				return false;
			});
			show = true;
		}
		else
		{
			// add individual items to remove list at top
			self.find(':checkbox:checked').each(function(i2,e2)
			{
				// add to remove list
				$('<li><a href="#" rel="'+$(e2).attr('id')+'">remove</a><span>'+$(e2).next().text()+'</span></li>').appendTo($('#filter_list')).find('a').click(function()
				{
					$(this).closest('li').slideUp();
					$('#'+$(this).attr('rel')).removeAttr('checked');//.change();
					$('#ps_reset').click();
					return false;
				});
				show = true;
			});

		}

		if(show)
		{
			$('#filter_list').show();
		}

		$(e).prev().find('.pss_title').wrap('<a href="#"/>').parent().click(function()
		{
			var self = $(this);
			self.closest('div').next().slideToggle();
			var img = self.find('img:eq(0)');
			if(img.attr('src').match(/expand/))
			{
				img.attr('src', img.attr('src').replace(/expand/, 'collapse'));
			}
			else
			{
				img.attr('src', img.attr('src').replace(/collapse/, 'expand'));
			}

			return false;
		});

	});


	$('.pss_list :checkbox').change(function()
	{
		if(!$(this).closest('.pss_list').find(':checkbox').not(':checked').length)
		{
			$(this).closest('.pss_list').prev().find(':checkbox').attr('checked', true);
		}
		else
		{
			$(this).closest('.pss_list').prev().find(':checkbox').attr('checked', false);
		}
	});

	
	$('#prb_thumbs a:not(.prb_thumbs_selected)').fadeTo(1, 0.6, function()
	{
		$('#prb_thumbs').fadeIn();
	});
	
	
	
	$('.prb_button').click(function()
	{
		if(!$(this).hasClass('prb_thumbs_selected'))
		{
			var image = $(this).attr('href');
			
			// Change images
			$('.prb_images:visible').fadeOut();
			$('#prb_'+image).fadeIn();
			
			// Change button selected state 
			$(this).fadeTo(1, 1);
			$('.prb_thumbs_selected').fadeTo(1, 0.6);
			$('.prb_button').removeClass('prb_thumbs_selected');
			$(this).addClass('prb_thumbs_selected');
			
			
			
			
			
		}
		return false;
		
	});


	// Product Selector
	
	$('#ps_reset a').click(function()
	{
		//$('#product_selector input:checkbox').removeAttr('checked');
		//return false;
	});
	
	// Product details tabs 
	
	var tabContainers = $('div#tabs > div');
	tabContainers.hide().filter(':first').show();
	
	$('ul.tabNavigation a').click(function () 
	{
		tabContainers.hide();
		tabContainers.filter(this.hash).show();
		$('ul.tabNavigation a').removeClass('selected');
		$(this).addClass('selected');
		
		return false;
		
	});
	
	if($('a.iv_image').length)
	{
		$("a.iv_image").fancybox(
		{
		'overlayOpacity'	:	0.6,
		'overlayColor'		:	'#000'
		});
	}

	$('#pd_image, #pd_image_buttons').hover(function()
	{
		$('#magnify').show();
	
	}, function()
	{
		$('#magnify').hide();
	});


	$('#slider_left, #slider_right').mousedown(function(ev)
	{
		var self = $(this);

		$(document).mousemove(function(ev)
		{

			if(self.is('#slider_left') && parseInt(self.css('left')) > (parseInt($('#slider_right').css('left')) - 6))
			{
				self.css({left:(parseInt($('#slider_right').css('left')) - 8)});
			}
			else
			{
				self.css({left:(ev.pageX - $('#ps_price_range').offset().left - 20)});
			}


			return false;

		}).mouseup(function()
		{
			// low > high?
			

			$(document).unbind('mouseup').unbind('mousemove');

			return false;
		});

		return false;

	});



	/* quick search - hjb dec 2010 */
	$('#searchform').submit(function(){return false;}).find('input:text').keyup(function()
	{
		var self = $(this);
		if(self.val().length < 3)
		{
			$('#suggestions').fadeOut(); // Hide the suggestions box
		}
		else 
		{
			qs_results(self.val(), 0);
		}
	});

	$('a.qs_next, a.qs_prev').live('click', function()
	{
		qs_results($('#searchform input:text').val(), parseInt($(this).attr('rel')));
		return false;
	});

	


	var qs_results = function(txt, start)
	{
		$.post("/ajax/", {what:'search', q: txt, start:start}, function(data)
		{ // Do an AJAX call
			$('#suggestions').fadeIn(); // Show the suggestions box
			$('#suggestions').html(data); // Fill the suggestions box
		});
	}



});



