$(window).load(function(){
	$(".carouselContainer .carousel").find(".slidesRow").width($(".carouselContainer .carousel").find("ul:last-child").position().left + $(".carouselContainer .carousel").find("ul:last-child").width());
	setCarousel($(".carouselContainer .carousel"));
});

function setCarousel(thisCarousel){
		//set slider
		thisCarousel.find(".slider").slider({
			animate: true,
			min:0,
			max: thisCarousel.find(".slidesRow").width() - thisCarousel.width() ,
			stop: function (event, ui) {
				$("ul.topCarouselMenu li").removeClass();
				thisCarousel.find(".slidesRow").animate({'left' : ui.value * -1}, 500);
			},
			slide: function (event, ui) {
				thisCarousel.find(".slidesRow").css('left', ui.value * -1);
			},
			change: function (event, ui) {
				thisCarousel.find(".slidesRow").animate({'left' : ui.value * -1}, 500);
			}
		});
		
		//set carousel next button
		thisCarousel.find(".nextBtn").click(function () { 
			var sliderWindowRightBoundary = - thisCarousel.find(".slidesRow").position().left + thisCarousel.width();
			var lastSlideVisible = thisCarousel.find(".slidesRow").find('li').filter(function(index) {
				var liLeftBoundary = $(this).position().left;
				var liRightBoundary = liLeftBoundary + $(this).width();
				return (liLeftBoundary <= sliderWindowRightBoundary) && (sliderWindowRightBoundary <= liRightBoundary);
			});
			$("ul.topCarouselMenu li").removeClass();
			thisCarousel.find(".slider").slider('value' , lastSlideVisible.position().left);
			return false;
	    });
		
		//set carousel previous button
		thisCarousel.find(".prevBtn").click(function () { 
			var sliderWindowLeftBoundary = - thisCarousel.find(".slidesRow").position().left;
			var firstSlideVisible = thisCarousel.find(".slidesRow").find('li').filter(function(index) {
				var liLeftBoundary = $(this).position().left;
				var liRightBoundary = liLeftBoundary + $(this).width();
				return (liLeftBoundary <= sliderWindowLeftBoundary) && (sliderWindowLeftBoundary <= liRightBoundary);
			});
			$("ul.topCarouselMenu li").removeClass();
			thisCarousel.find(".slider").slider('value' , firstSlideVisible.position().left + firstSlideVisible.width() - thisCarousel.width());
			return false;
	    });
		
		//set category links in carousel
		$("ul.topCarouselMenu li a").click(function () {
			var categoryIndex = $("ul.topCarouselMenu li a").index(this);
			$("ul.topCarouselMenu li").removeClass();
			if (categoryIndex == 0) {
				$(this).parent().addClass("selectedFirst");
			} else {
				$(this).parent().addClass("selected");
			}
			thisCarousel.find(".slider").slider('value' , thisCarousel.find("ul:eq(" + categoryIndex + ")").position().left );
			return false;
		});

}


