jQuery(document).ready(function($) {

	/** Slide toggle */
	$(".slide-toggle .toggling").hover(
		function(){$(this).addClass("pointer");},
		function(){$(this).removeClass("pointer");}
	);

	$(".slide-toggle .toggling").click(function(){
		$(this).next().slideToggle("fast");
	});

	$(".slide-toggle .toggling").toggle(
		function(){$(this).addClass("expanded");},
		function(){$(this).removeClass("expanded");}
	);


	/** Change products per page */
	$(".inp_nb_of_products_per_page").change(function(){
		$("#sort_settings_form").submit();
	});


	/** Open link in new Window */
	$("a[rel='external']").click(function(e) {
		e.preventDefault();
		window.open($(this).attr("href"));
	});


	$("#sidebar_search_button").parent().parent().submit(function() {
		$.catcomplete("disable");
	});

	$.widget("custom.catcomplete", $.ui.autocomplete, {
		_renderMenu: function(ul, items) {
			var self = this;
			var currentCategory = "";

			$.each(items, function(index, item) {
				if (item.category != currentCategory) {
					ul.append("<li class='ui-autocomplete-category'>" + item.category + "</li>");
					currentCategory = item.category;
				}

				self._renderItem(ul, item);
			});
		}
	});

	$(function() {
		var cache = {};
		$("#sidebar_search_terms").catcomplete({
			minLength : 2,
			select    : function(event, ui) {
				if (ui.item.href) {
					window.location = ui.item.href;
				} else {
					$("#sidebar_search_terms").val(ui.item.label);
					return false;
				}
			},
			source    : function(request, response) {
				if (request.term in cache) {
					response(cache[request.term]);

					return;
				}

				$.ajax({
					type     : "POST",
					url      : "/ajax/search",
					data     : request,
					dataType : "json",					
					success  : function(data) {
						cache[request.term] = data;
						response(data);
					}
				});
			}
		});
	});
});
