$(function()
{
	var gutters, a, gutter, closed, className, ret;
	// gutters are open by default
	
	$('.gutterbutton').click(function(e)
	{
		if (window.ItemMan && ItemMan.isEditing()) return;
		toggleGutter(this.parentNode);
	});
	
	gutters = $('.gutter');
	for (a = 0; a < gutters.length; a++)
	{
		gutter = gutters.get(a);
		
		className = ' ' + gutter.className + ' ';
		ret = /\s+gutterSize(\d+)\s+/.exec(className);
		gutter._size = ret ? ret[1] : '200';
		ret = /\s+gutterMinSize(\d+)\s+/.exec(className);
		gutter._minSize = ret ? ret[1] : '1';
		gutter._verticalGutter = /\s+gutterVertical\s+/.test(className);
		
		gutter.style.overflow = "hidden"; // needed for jquery
		
		if (gutter.getAttribute('id'))
		{
			closed = readCookie("gutter_" + gutter.getAttribute('id')) == "1";
			
			if (gutter._verticalGutter)
				gutter.style.height = (closed ? gutter._minSize : gutter._size) + "px";
			else
				gutter.style.width = (closed ? gutter._minSize : gutter._size) + "px";
			
			if (closed != gutter._closed)
			{
				if (closed)
					classAppend(gutter, 'gutterClosed');
				
				gutter._closed = closed;
			}
		}
	}
	
	function toggleGutter(gutter)
	{
		var id;
		id = gutter.getAttribute('id');
		if (gutter._closed)
		{
			gutter._closed = false;
			if (id)
				createCookie("gutter_" + id, "0", 1);
			
			classRemove(gutter, 'gutterClosed');
			
			if (gutter._verticalGutter)
			{
				$(gutter).animate({
					height: gutter._size + "px"
				}, 500, "swing");
			}
			else
			{
				$(gutter).animate({
					width: gutter._size + "px"
				}, 500, "swing");
			}
		}
		else
		{
			gutter._closed = true;
			if (id)
				createCookie("gutter_" + id, "1", 1);
			
			classAppend(gutter, 'gutterClosed');
			if (gutter._verticalGutter)
			{
				$(gutter).animate({
					height: gutter._minSize + "px"
				}, 500, "swing");
			}
			else
			{
				$(gutter).animate({
					width: gutter._minSize + "px"
				}, 500, "swing");
			}
			
		}
	}
});
