	
	// -- Tout Carousel Class:
	iona.tout_carousel = function(dom){
		var _ = {};

		var perPage = 4;
		var pageWidth = 940;
		var totalTouts, currentPage, totalPages, slider;
				
        var init = function(){
            resort();
			resortActives();
			if(dom.hasClass("detail-page-carousel"))
				perPage = 6;
			totalTouts = dom.find("div.tout").length;
			totalPages = Math.ceil(totalTouts / perPage);
			currentPage = 1;
			slider = dom.find("div.touts-full-wrapper");
			activateArrows();
			addHoverBorder();
		};

		var resortActives = function(){
			var actives = dom.find("div.tout.active");
			var first, element;
			for(var i=0; i<actives.length; i++){
				element = $(actives[i]);
				first = dom.find("div.tout").not(".active");
				if(first.length > 0){
					element.remove();
					element.insertBefore(first[0]);
				}
			}
		};

        var resort = function(){
            var elements = [];
            var d = dom.find("[carousel_weight]");
            if(d.length < 2)
                return;
            for(var i=0; i<d.length; i++)
                elements.push($(d[i]));
            elements.sort(function(a,b){
                var aWeight = parseInt(a.attr("carousel_weight"), 10);
                var bWeight = parseInt(b.attr("carousel_weight"), 10);
                return bWeight - aWeight;
            });
            var p = $(elements[0]).parent();
            p.empty();
            for(i=0; i<elements.length; i++)
                p.append(elements[i]);
        };

		var addHoverBorder = function(){
			dom.find('a.thumb').append(["",
			"<div class='hover_border'>",
			"	<img src='/static/images/tout_hover_bg.png' />",
			"</div>",
			""].join(''));
		};
		
		var activateArrows = function(){
			if(totalPages < 2)
				dom.find("div.arrow-buttons").hide();
			dom.find("a.next-arrow").click(function(){
				showPage(currentPage + 1);
				return false;
			});
			dom.find("a.previous-arrow").click(function(){
				showPage(currentPage - 1);
				return false;
			});
		};
		
		var showPage = function(page){
			// -- make the carousel cyclical:
			if(page < 1)
				page = totalPages;
			if(page > totalPages)
				page = 1;
			currentPage = page;
			slider.stop().animate({'left':-1*pageWidth*(page-1)}, 500);
		};
		
		init();
		return _;
	};


	// -- Tout Carousel Factory Class:
	iona.tout_carousel_factory = (function(){
		var _ = {};
		var init = function(){
			var tout_carousels = $("div.carousel-tout-section");
			if(tout_carousels.length == 0)
				return;
			for(var i=0; i<tout_carousels.length; i++)
				iona.tout_carousel($(tout_carousels[i]));
		};
				
		init();
		return _;
	})();

