(function($){
	dsg.fn.searchResults = function(){
		
		var jAlert = $("#area-2 div.alert").hide();
		var jError = $j("#area-2 div.caution").hide();
		var jForm = $("#area-2 form");
		var jSubmits = jForm.find(".search-compare span").children();
		
		$(function(){
			jAlert.add(jError).appendTo("#global-container");
		});
		
		var alertTimeOut = 0;
		
		$("div.table-wrap td")
		.filter(".prd-description-features").each(function(){
			var jThis = $(this);
			var jPanels = jThis.find("> div:last > div").hide();
			
			var $tabs = jThis.find("> p:first a").click(function(e){
				e.preventDefault();
				var jElt = $($(this).attr("href"));
				$tabs.removeClass('active');
				
				if (jElt.is(":visible")){
					jPanels.hide();
				}
				else {
					jPanels.hide();
					jElt.show();
					$(this).addClass('active');
				}
			});
		})
		.end().filter(".prd-check").each(function(){
			var jCheck = $(this).find(":checkbox");
			var sCheck = jCheck.offset();
			
			jCheck.bind("update", function(){
				
				var checkedLength = jForm.find(":checkbox:checked").length;
				
				// Warning
				if (checkedLength > 3) {
					sCheck = jCheck.offset();
					jAlert
						.css({
							position:"absolute",
							top : (sCheck.top - 5) + "px",
							left : (sCheck.left + 30) + "px"
						})
						.fadeIn(200, function(){
							window.clearTimeout(alertTimeOut);
							alertTimeOut = window.setTimeout(function(){
								jAlert.fadeOut(200);
							},3000);
						});
					jCheck.removeAttr("checked");
				
				// Disable form
				} else if (checkedLength < 2) {
					jForm
						.addClass("disabled")
						.submit(function(e){
							e.preventDefault();
						});
					jSubmits.click(function(){
						var jSubmit = $(this);
						var sSubmit = jSubmit.offset();
						var sSubmitWidth = jSubmit.outerWidth();
						jError
							.css({position:"absolute", top : (sSubmit.top - 4) + "px", left : (sSubmit.left + sSubmitWidth + 10) + "px"})
							.fadeIn(200);
					});
				// Enable form
				} else {
					jError.hide();
					jForm.unbind("submit").removeClass("disabled");
					jSubmits.unbind("click");
					jCheck.parent().removeClass("checked");
				}
				
				if (jCheck.is(":checked")) {
					jCheck.parent().addClass("checked");
				}
				
				if (checkedLength < 4) {
					jCheck.parent()[((jCheck.is(":checked"))? "addClass" : "removeClass" )]("checked");
				}
				
			}).click(function(e){
				e.stopPropagation();
				jCheck.trigger("update");
			}).attr("tabindex","-1").trigger("update")
				
				.parent().click(function(e){
					jAlert.hide();
					if (jCheck.is(":checked")) {
						jCheck.removeAttr("checked");
					} else {
						jCheck.attr("checked", "checked");
					}
					
					jCheck.trigger("update");
					
				}).focus(function(){
					$(document).keyup(function(e){
						e.preventDefault();
						if (e.keyCode == 13 || e.keyCode == 32){
							jCheck.click().trigger("update");
						}
					})
				}).blur(function(){
					$(document).unbind("keyup");
				})
				.attr("tabindex","0");
		});
	};
	
	dsg.fn.searchCompare = function(){
		//
	};
	
	$(function(){
		$.hrefizer();
	});
	
})(jQuery);

//Unoptimized scripts made by dev, to clean and optimize

	//Delete an active criterion filter
	function delFilter(sFilterId) {
		oForm = document.getElementById('form-filter');
		document.getElementById('filter-id').value = sFilterId;
		oForm.submit();
	}
	
	//Set the start page number
	function setStartPage(iNbPage) {
		oForm = document.getElementById('form-startpage');
		document.getElementById('startpage').value = iNbPage;
		oForm.submit();
	}
	
	//Set order settings
	function setOrder(sOrderBy, sOrderDirection) {
		oForm = document.getElementById('form-order');
		document.getElementById('orderby').value = sOrderBy;
		document.getElementById('orderdirection').value = sOrderDirection;
		oForm.submit();
	}
	
	//Set the number of products to display per page
	function setNbProducts(iNbProd) {
		oForm = document.getElementById('form-nbproducts');
		document.getElementById('nbproducts').value = iNbProd;
		oForm.submit();
	}
	
	//Set the price range to use as filter
	function setPriceRange(oSelect) {
		sNewUrl = oSelect.options[oSelect.selectedIndex].value;
		if (sNewUrl != '') {
			window.location.replace(sNewUrl);
		}
	}
	
	//Set the brand to use as filter
	function setBrand(oSelect) {
		sNewUrl = oSelect.options[oSelect.selectedIndex].value;
		if (sNewUrl != '') {
			window.location.replace(sNewUrl);
		}
	}
	
	$j(function(){
		//Redirect user on change
		$j('#select-ucms, .select-criteria select, #select-more-brands, #select-price-range, .select-pagination,#search-sort-by').change(function(){
			$sUrl = $j(this).val();
			if ($j.trim($sUrl) != '') {
				window.location = $j(this).val();
			}
		});
	});