$(document).ready(function() {

	$('.limit-search').hover(function() {
		$(this).addClass('hover');
		$('#'+$(this).attr('id')+'down').css('display', 'block');
	}, function() {
		$(this).removeClass('hover');
		$('#'+$(this).attr('id')+'down').css('display', 'none');
	});
    
    //settings for the price slider (part of the criteriar bar)
    $('#slider-range').slider({
    	range: true,
    	min: min_price,
    	max: max_price,
    	values: [default_min_price, default_max_price],
    	slide: function( event, ui ) {
    		$('#slide-min-price').text( ui.values[ 0 ] + ' DKK');
    		$('#slide-max-price').text( ui.values[ 1 ] + ' DKK');
    		$('#min_price').val( ui.values[ 0 ]);
    		$('#max_price').val( ui.values[ 1 ]);
		},
		change: function(event, ui) {
			update_catalog();	
		}
	});	
		
	$('#slide-min-price').text( $('#slider-range').slider('values', 0 ) + ' DKK');
	$('#slide-max-price').text( $('#slider-range').slider('values', 1 ) + ' DKK');
	$('#min_price').val( $('#slider-range').slider('values', 0));
	$('#max_price').val( $('#slider-range').slider('values', 1));
	
	//do not style checkboxes if IE 9
	if(navigator.userAgent.toLowerCase().indexOf('msie') == -1) {
    	//style checkboxes with a special skin
    	$('form#ui input').filter(':checkbox,:radio').checkbox();
    }
    
    //bind sort bar change to update the catalog products
	$('form#ui input, form#ui select').change(function(){
		update_catalog();
	});
    
    catalog_sizes();
	catalog_carousels();

});

/**
* Retrieve catalog producsts matching the sort criterias
*/
function update_catalog() {
	
	var data = $('form#ui').serialize().replace(/%5B%5D/g, '[]');
	var params = "?c_id="+$('#cat_id').val();
			
	$('#products').ajaxLoader();
	
	$.ajax({
		type: "GET",
		url: "/lib/requests/update_category.php"+params,
		data: data,
		success: function(response) {
			
			$('#products').html(response);
	
			catalog_carousels();
			catalog_sizes();
			
			$('img.lazy').asynchImageLoader({
            	offset:160
        	}).asynchImageLoader({
            	event: "focus"
        	});
        	
			$('#products').ajaxLoaderRemove();
					
		},
		error: function() {
			alert('An error occured during processing');
			$('#products').ajaxLoaderRemove();
		}
	});		
}

/**
* Make product sizes selectable
*/
function catalog_sizes() {

	$('.util-size').hover(function() {
		$(this).children('.product-sizes').css({"display":"block"});  
	 },
	 function() {
	 	$(this).children('.product-sizes').css({"display":"none"});
	});	
}

/**
* Create carousel of product pictures
*/
function catalog_carousels() {

	$(".product-image").each(function(i) {
    
    	var slide = $(this);
    	slide.find('.cycle').cycle({
           fx: 'fade',
           speed: 800,
           timeout: 0,
           next: slide.find('.rotate_right'),
           prev: slide.find('.rotate_left'),
           before: function(currSlideElement, nextSlideElement, options, forwardFlag) {
				
				if ($(nextSlideElement).attr("asrc")) {
					$(nextSlideElement).attr("src", $(nextSlideElement).attr("asrc"));
				}
           },
           after: function(currSlideElement, nextSlideElement, options, forwardFlag) {
               
				var caption = (options.currSlide + 1) + ' / ' + options.slideCount;
				slide.find('.caption').html(caption);
           }
       });
   });
   
   $('.product-image').has('.cycle').hover(function() {
		$(this).find('.imagerotator').css({"display":"block"});
	},
	function() {
		$(this).find('.imagerotator').css({"display":"none"});
	});
}
