document.observe("dom:loaded", function(event) {
	// !Cart Drawer Carousel
	$$('#shopping_cart_drawer .scroll_arrow').invoke('observe', 'dom:click', function(event) {
		var direction = '';
		if(this.hasClassName('left')) {
			direction = '-';
		}
		
		new Effect.Scroll($('shopping_cart_drawer').down('.drawer_scroller').identify(), {
			duration: 0.2,
			x: direction + '106',
			mode: 'relative'
		});
	});
	$$('#shopping_cart_drawer .drawer_content').invoke('observe', 'cart:refresh', function(event) {
		this.setStyle({
			width: 106 * cart.getItems().size() + 'px'
		});
	});
	
	// !Product Carousel
	if ($('shopScroller')) {
		var leftArrow = $('shopScroller').down('a.left');
		var rightArrow = $('shopScroller').down('a.right');
		var scroller = $('shopScroller').down('.scroller');
		var itemWidth = scroller.down('li').getWidth();

		if (typeof switchedSections != "undefined" && switchedSections) {
			deleteCookie("tabScroll", "/");
		}

		scroller.down('ul').setStyle({
			'width': scroller.down('ul').childElements().size() * itemWidth + 'px'
		});
		
		scroller.scrollLeft = getCookie("tabScroll") || 0;
		
		leftArrow.observe('click', function(event) {
			new Effect.Scroll(scroller, {
				duration: 0.2,
				x: -itemWidth,
				mode: 'relative'
			});

			deleteCookie("tabScroll", "/");
			if (scroller.scrollLeft - itemWidth > 0)
			{
				setCookie("tabScroll", scroller.scrollLeft - itemWidth, 30, "/");
			}
			else
			{
				setCookie("tabScroll", 0, 30, "/");
			}
			
			event.stop();
		});
		
		rightArrow.observe('click', function(event) {
			new Effect.Scroll(scroller, {
				duration: 0.2,
				x: itemWidth,
				mode: 'relative'
			});
			
			deleteCookie("tabScroll", "/");
			if (scroller.scrollLeft + itemWidth < scroller.scrollWidth - scroller.offsetWidth)
			{
				setCookie("tabScroll", scroller.scrollLeft + itemWidth, 30, "/");
			}
			else
			{
				setCookie("tabScroll", scroller.scrollWidth - scroller.offsetWidth, 30, "/");
			}
			
			event.stop();
		});
	}
});

function getCookie(name) {
	var start = document.cookie.indexOf(name + "=");
	var len = start + name.length + 1;
	if ((!start) && (name != document.cookie.substring(0, name.length))) {
		return null;
	}
	if (start == -1) return null;
	var end = document.cookie.indexOf(';', len);
	if (end == -1) end = document.cookie.length;
	return unescape(document.cookie.substring(len, end));
}



function setCookie(name, value, expires, path, domain, secure) {
	var today = new Date();
	today.setTime(today.getTime());
	if (expires) {
		expires = expires * 1000 * 60 * 60 * 24;
	}
	var expires_date = new Date(today.getTime() + (expires));
	document.cookie = name+'='+escape(value) +
		((expires) ? ';expires='+expires_date.toGMTString() : '') + //expires.toGMTString()
		((path) ? ';path=' + path : '') +
		((domain) ? ';domain=' + domain : '') +
		((secure) ? ';secure' : '');
}



function deleteCookie(name, path, domain) {
	if (getCookie(name)) document.cookie = name + '=' +
			((path) ? ';path=' + path : '') +
			((domain) ? ';domain=' + domain : '') +
			';expires=Thu, 01-Jan-1970 00:00:01 GMT';
}