function Carousel(args) {
	args = mergeObjects(args, {
		step: 10,
		rate: 25,
		tabs: 'carousel-tabs',
		btnLeft: 'scroll-l',
		btnRight: 'scroll-r'
	});

	var tabs = $(args.tabs);
	var btnLeft = $(args.btnLeft);
	var btnRight = $(args.btnRight);
	var curPos, maxPos, dir, timer, activeTab, activeItems;

	function setScrollState() {
		setClass(btnLeft,  'inactive', curPos <= 0);
		setClass(btnRight, 'inactive', curPos >= maxPos);
	}

	function scrollStep() {
		curPos += args.step * dir;
		curPos = Math.max(0, Math.min(curPos, maxPos));
		activeItems.style.left = -curPos + 'px';
		setScrollState();
	}

	// direction: -1 = left, 0 = stop, 1 = right
	function scrollItems(direction, trackElement) {
		dir = direction;
		clearInterval(timer);
		if (direction) {
			timer = setInterval(scrollStep, args.rate);
			if (trackElement && trackElement.value) {
				var img = document.createElement('img');
				img.className = 'tracking';
				img.src = '//community.webshots.com/misc/empty?' + trackElement.value + '&' + Math.random();
				document.body.appendChild(img).parentNode.removeChild(img);
			}
		}
	}

	function setTab(e, a) {
		if (!a) {
			for (a = e.srcElement || e.target; a && a.tagName != 'A'; a = a.parentNode);
			if (!a) return;
			haltEvent(e);

			delClass(activeTab, 'active');
			delClass(activeItems.parentNode.parentNode, 'active');
		}

		var ul = $(a.hash.slice(1)).getElementsByTagName('ul')[0];
		ul.style.left = '';
		activeTab = a.parentNode;
		activeItems = ul;
		addClass(activeTab, 'active');
		addClass(activeItems.parentNode.parentNode, 'active');

		var w = ul.offsetLeft * 2;
		for (var items = ul.getElementsByTagName('li'), i = items.length; i--;) {
			w += items[i].offsetWidth;
		}
		ul.style.width = w + 'px';

		curPos = 0;
		maxPos = Math.max(0, w - ul.parentNode.offsetWidth);
		setScrollState();
	}

	function init() {
		setTab(null, tabs.getElementsByTagName('a')[0]);

		addEvent(tabs, 'click', setTab);
		addEvent(btnLeft,  'mouseup', function() { scrollItems(0, btnLeft) });
		addEvent(btnRight, 'mouseup', function() { scrollItems(0, btnRight) });
		addEvent(btnLeft,  'mousedown', function() { scrollItems(-1, btnLeft) });
		addEvent(btnRight, 'mousedown', function() { scrollItems( 1, btnRight) });
	}

	init();
}

/* duracell travel 11/2 - 11/18 
if (document.body.id == 'travel' && !isPremium()) {
	var div = $('carousel');
	if (div) {
		addClass(div, 'duracell');
		var a = div.appendChild(document.createElement('a'));
		a.className = 'duracell';
		a.target = '_blank';
		a.href = 'http://adlog.com.com/adlog/c/r=7807&s=765755&t=-1&o=1:&h=cn&p=2&b=1&l=en_US&&site=1/http://www.dlblairsweeps.com/j8145/entry.form';
		a.innerHTML = '<img src="http://adlog.com.com/adlog/i/r=7807&s=765755&t=-1&o=1:&h=cn&p=2&b=1&l=en_US&&site=1/http://i.i.com.com/cnwk.1d/Ads/common/dotclear.gif" height="1" width="1" border="0" alt="">';
	}
}*/