
Effect.BlindRight = function(element)
{
	element = $(element);
	var elementDimensions = element.getDimensions();
	return new Effect.Scale(element, 100, Object.extend(
	{
		scaleContent: false,
		scaleY: false,
		scaleFrom: 0,
		scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width},
		restoreAfterFinish: true,
		afterSetup: function(effect)
		{
			effect.element.makeClipping().setStyle({width: '0px'}).show();
		},
		afterFinishInternal: function(effect)
		{
			effect.element.undoClipping();
		}
	}, arguments[1] || { }));
};

Effect.BlindLeft = function(element)
{
	element = $(element);
	element.makeClipping();
	return new Effect.Scale(element, 0, Object.extend(
	{
		scaleContent: false,
		scaleY: false,
		restoreAfterFinish: true,
		afterFinishInternal: function(effect)
		{
			effect.element.hide().undoClipping();
		}
	}, arguments[1] || { }));
};

var OPENED = false;
var DOING  = false;
var TIMER;

function doneDoing()
{
	DOING = false;
}

function closeSideBar()
{
	///alert('closeSideBar auto: ' + DOING + '/' + OPENED);
	if ( DOING ) return;
	DOING = true;

	if ( OPENED )
	{
		new Effect.BlindLeft('sideBarContents', {duration: 0.5, afterFinish: doneDoing});
		OPENED = false;
	}
	//alert('closeSideBar auto: ' + DOING + '/' + OPENED);
}

function slideSideBar()
{
	if ( DOING ) return;
	DOING = true;

	if ( !OPENED )
	{
		new Effect.BlindRight('sideBarContents', {duration: 0.5, afterFinish: doneDoing});
		OPENED = true;

		clearTimeout(TIMER);
		TIMER = setTimeout ('closeSideBar()', 7000);
	}
	else
	{
		new Effect.BlindLeft('sideBarContents', {duration: 0.5, afterFinish: doneDoing});
		OPENED = false;

		clearTimeout(TIMER);
	}
}

function init()
{
	Event.observe('sideBarTab', 'mouseover', slideSideBar, true);
}

Event.observe(window, 'load', init, true);

