$(document).ready(function(){
	
	/* for SUBCATEGORY_PAGE -- PAGING */
	var numberOfPages = $("#paging_total_pages").attr("pages");
	var initialPage = $("#paging_current_page").attr("pages");
	/* */
	
	$(".categories").each(function(){
		if($(this).hasClass("category-page")){
			var elementCount = 14;
		}
		else{
			var elementCount = 10;
		}
		if($(this).find(".scroll-container .category").length <= elementCount+1){
			$(this).find(".scroll-container").find("a.next").addClass("nextDisabled").removeClass("next");
		}
		else{
			$(this).find(".scroll-container .category:visible:gt("+elementCount+")").hide();
		}
		if($(this).find(".scroll-container .category:first:visible")){
			$(this).find(".scroll-container").find("a.previous").addClass("previousDisabled").removeClass("previous");
		}
	});
	/*
	$(".sub-categories-container .navigation").each( function(){
		var elementCount = 3;
		if($(this).find(".scroll-content .sub-category").length <= elementCount+1){
			$(this).find("a.next").addClass("nextDisabled").removeClass("next");
		}
		else{
			$(this).find(".scroll-content .sub-category.last").removeClass("last");
			$(this).find(".scroll-content .sub-category:visible:gt("+elementCount+")").hide();
			$(this).find(".scroll-content .sub-category:visible:last").addClass("last");
		}
		if($(this).find(".scroll-content .sub-category:first:visible")){
			$(this).find("a.previous").addClass("previousDisabled").removeClass("previous");
		}
	});
	*/
	$(".promo-box").each( function(){
		$(this).css("overflow", "hidden");
		if($(this).hasClass("wide")){
			elementCount = 3;
		}
		else{
			elementCount = 2;
		}
		if($(this).find(".slide-content .promo").length <= elementCount+1){
			$(this).find("a.next").addClass("nextDisabled").removeClass("next");
		}
		else{
			$(this).find(".slide-content .promo:visible:gt("+elementCount+")").hide();
		}
		if($(this).find(".slide-content .promo:first:visible")){
			$(this).find("a.previous").addClass("previousDisabled").removeClass("previous");
		}
	});
	/*
	$(".product-gallery").each( function(){
		$(this).css("overflow", "hidden");
		elementCount = 2;
		if($(this).find(".scroll-container a.product-thumb").length <= elementCount+1){
			$(this).find("a.next").addClass("nextDisabled").removeClass("next");
		}
		else{
			$(this).find(".scroll-container a.product-thumb:visible:gt("+elementCount+")").hide();
		}
		if($(this).find(".scroll-container a.product-thumb:first:visible")){
			$(this).find("a.previous").addClass("previousDisabled").removeClass("previous");
		}
	});
	*/
	$(".scroll-container").each( function(){
		var scrollHeight = $(this).height();
		$(this).css("height", scrollHeight);
		$(this).css("overflow", "hidden");
	});
	$(".scroll-content").each( function(){
		var scrollHeight = $(this).height();
		$(this).css("height", scrollHeight);
		$(this).css("overflow", "hidden");
	});
	
	/******* for SUBCATEGORY_PAGE -- PAGING *******/
    
	$(".scroll-bar").css("margin", "0px");
	
    if (initialPage == 1) {
		$(".scroll-bar").css("position", "relative").css("left", 0);
		$(".scroll-bar span:eq(0)").html("");
	}
	else{
		if(initialPage == numberOfPages){
			$(".scroll-bar span:last").html("");
		}
		$(".scroll-bar").css("position", "relative").css("left", (initialPage) * 499 / numberOfPages);
	}
    
    $(".scroll-bar").draggable({
	    axis: 'x',
	    containment: 'parent',
	    drag: function(event, ui) {
	        var sliderOffset = $(ui.helper).offset().left - $(".product-nav").offset().left;
			
	        var firstPage = Math.ceil(sliderOffset * (numberOfPages - 4) / 499 );
	        if ( firstPage >  (numberOfPages - 4) )
				firstPage = numberOfPages - 4;
			
			if ( firstPage <= 1 )
				$(".scroll-bar span:eq(0)").html("");
			else
				$(".scroll-bar span:eq(0)").html("...");
			
			if ( firstPage > numberOfPages - 5 )
				$(".scroll-bar span:eq(1)").html("");
			else
				$(".scroll-bar span:eq(1)").html("...");
			
            $(".scroll-links a").hide();
            if ( firstPage - 2 < 0 )
                $(".scroll-links a:lt(5)").show();
            else
                $(".scroll-links a:gt(" + (firstPage - 2) + "):lt(5)").show();
	    }
	});
	if (initialPage == numberOfPages) {
		$(".scroll-links a:lt(" + (initialPage - 5) + ")").hide();
		$(".scroll-links span:eq(1)").html("");
	}
	else {
		$(".scroll-links a:lt(" + (initialPage - 3) + ")").hide();
		if (initialPage == 1) {
			$(".scroll-links a:gt(" + (initialPage + 3) + ")").hide();
			$(".scroll-links span:eq(0)").html("");
		}
		else {
			$(".scroll-links a:gt(" + (initialPage + 2) + ")").hide();
		}
	}
	$(".scroll-bar").css("cursor", "e-resize").click( function () {  });
	
	/*****************/
});


$(".categories .scroll-container a.previous").live("click", function(){
	var container = $(this).siblings(".scroll-content");
	var children = "div.category";
	prevItemVertical(container,children);
	return false;
});
$(".categories .scroll-container a.next").live("click", function(){
	var container = $(this).siblings(".scroll-content");
	var children = "div.category";
	nextItemVertical(container, children);
	return false;
});
$(".navigation a.previous").live("click", function(){
	var container = $(this).siblings(".scroll-content");
	var children = "div.sub-category";
	container.find(children+".last").removeClass("last");
	prevItemVertical(container, children);
	return false;
});
$(".navigation a.next").live("click", function(){
	var container = $(this).siblings(".scroll-content");
	var children = "div.sub-category";
	container.find(children+".last").removeClass("last");
	nextItemVertical(container, children);
	return false;
});
$(".promo-box a.previous").live("click", function(){
	var container = $(this).siblings(".slide-content");
	var children = "div.promo";
	prevItemHorizontal(container, children);
	return false;
});
$(".promo-box a.next").live("click", function(){
	var container = $(this).siblings(".slide-content");
	var children = "div.promo";
	nextItemHorizontal(container, children);
	return false;
});

$(".product-gallery a.previous").live("click", function(){
	var container = $(this).siblings(".gallery-scroll");
	var children = "a.product-thumb";
	prevItemHorizontal(container, children);
	return false;
});
$(".product-gallery a.next").live("click", function(){
	var container = $(this).siblings(".gallery-scroll");
	var children = "a.product-thumb";
	nextItemHorizontal(container, children);
	return false;
});
$("a.previousDisabled").live("click", function(){
	return false;
});
$("a.nextDisabled").live("click", function(){
	return false;
});
function nextItemVertical(container,children){
	if (container.find(children+":hidden:last").length > 0) {
		var firstChild = container.find(children+":visible:first");
		var lastChild = container.find(children+":visible:last").next(children+":hidden");
		firstChild.slideUp("fast", function(){
			$(this).hide("fast", function(){
				if(container.siblings("a.previousDisabled").hasClass("previousDisabled")){
					container.siblings("a.previousDisabled").removeClass("previousDisabled").addClass("previous");
				}
			});
		});
		lastChild.slideUp("fast", function(){
			$(this).show("fast", function(){
				if(container.find(children+":visible:last").next(children+":hidden").length == 0){
					container.siblings("a.next").removeClass("next").addClass("nextDisabled");
				}
				container.find(children+":visible:last").addClass("last");
			});
		});
	}
}
function prevItemVertical(container, children){
	if (container.find(children+":visible").prev(children+":hidden").length != 0) {
		if (container.find(children+":hidden:last").length > 0) {
			var lastChild = container.find(children+":visible:last");
			var firstChild = container.find(children+":visible").prev(children+":hidden");
			lastChild.slideDown("fast", function(){
				$(this).hide("fast", function(){
					if(container.siblings("a.nextDisabled").hasClass("nextDisabled")){
						container.siblings("a.nextDisabled").removeClass("nextDisabled").addClass("next");
					}
				});
			});
			firstChild.slideDown("fast", function(){
				$(this).show("fast", function(){
					if(container.find(children+":visible:first").prev(children+":hidden").length == 0){
						container.siblings("a.previous").addClass("previousDisabled").removeClass("previous");
					}
					container.find(children+":visible:last").addClass("last");
				});
			});
			
		}
	}
}
function nextItemHorizontal(container,children){
	if (container.find(children+":hidden:last").length > 0) {
		var firstChild = container.find(children+":visible:first");
		var lastChild = container.find(children+":visible:last").next(children+":hidden");
		firstChild.hide("slide", { direction: "left" }, 300, function(){
			lastChild.show("slide", { direction: "right" }, 600, function(){
				if(container.siblings("a.previousDisabled").hasClass("previousDisabled")){
					container.siblings("a.previousDisabled").removeClass("previousDisabled").addClass("previous");
				}
				if(container.find(children+":visible:last").next(children+":hidden").length == 0){
					container.siblings("a.next").addClass("nextDisabled").removeClass("next");
				}
			});
		});
	}
}
function prevItemHorizontal(container, children){
	if (container.find(children+":visible").prev(children+":hidden").length != 0) {
		if (container.find(children+":hidden:last").length > 0) {
			var lastChild = container.find(children+":visible:last");
			var firstChild = container.find(children+":visible").prev(children+":hidden");
			lastChild.hide("slide", { direction : "right" }, 300, function(){
				firstChild.show("slide", { direction : "left"}, 600, function(){
					if(container.siblings("a.nextDisabled").hasClass("nextDisabled")){
						container.siblings("a.nextDisabled").removeClass("nextDisabled").addClass("next");
					}
					if(container.find(children+":visible:first").prev(children+":hidden").length == 0){
						container.siblings("a.previous").addClass("previousDisabled").removeClass("previous");
					}
				});
			});
		}
	}
}