﻿var lastViewedRunning = false;
var lastViewedVisible = false;
var lastViewedResizeEventAdded = false;

function showHideLastViewed ()
{
	if ( !lastViewedRunning )
	{
		lastViewedRunning = true;
		
		if( Prototype.Browser.IE && parseFloat(navigator.appVersion.match(/MSIE (.+?);/)[1]) < 7 ) 
		{
			var lastViewedContentEffect = null;
			var newY = document.viewport.getHeight()+document.viewport.getScrollOffsets().top;
			if ( lastViewedVisible )
			{
				newY -= 25;
				lastViewedContentEffect = Effect.BlindUp;
			}
			else
			{
				newY -= 140;
				lastViewedContentEffect = Effect.BlindDown;
			}
			
			new Effect.Parallel(
				[
					new Effect.Move(
						$('lastViewedTab'),
						{
							x: 0,
							y: newY,
							mode: 'absolute'
						}
					),
					new lastViewedContentEffect(
						$('lastViewedContent')
					)
				],
				{
					duration: 0.5,
					afterFinish: function ()
					{
						lastViewedVisible = !lastViewedVisible;
						lastViewedRunning = false;
						
						if ( lastViewedVisible )
						{
							$('lastViewedTabLink').addClassName('isOpen');
						}
						else
						{
							$('lastViewedTabLink').removeClassName('isOpen');
						}
					}
				}
			);
		}
		else
		{
			var lastViewedTabY = $('lastViewedTab').cumulativeOffset().top;
			var lastViewedContentY = $('lastViewedContent').cumulativeOffset().top;
			if ( lastViewedVisible )
			{
				lastViewedTabY += 115;
				lastViewedContentY += 115;
			}
			else
			{
				lastViewedTabY -= 115;
				lastViewedContentY -= 115;
			}
			
			new Effect.Parallel(
				[
					new Effect.Move(
						$('lastViewedTab'),
						{
							x: 0,
							y: lastViewedTabY,
							mode: 'absolute'
						}
					),
					new Effect.Move(
						$('lastViewedContent'),
						{
							x: 0,
							y: lastViewedContentY,
							mode: 'absolute'
						}
					)
				],
				{
					duration: 0.5,
					afterFinish: function ()
					{
						lastViewedVisible = !lastViewedVisible;
						lastViewedRunning = false;
						
						if ( lastViewedVisible )
						{
							$('lastViewedTabLink').addClassName('isOpen');
						}
						else
						{
							$('lastViewedTabLink').removeClassName('isOpen');
						}
					}
				}
			);
			
			if ( !lastViewedResizeEventAdded )
			{
				Event.observe( window, 'resize', handleResizeLastViewed );
				lastViewedResizeEventAdded = true;
			}
		}
	}
	
	return false;
}

function handleIE6ScrollLastViewed ()
{
	if ( lastViewedVisible )
	{
		$('lastViewedTab').setStyle( { top: (document.viewport.getHeight()+document.viewport.getScrollOffsets().top-140) + 'px' } );
		$('lastViewedContent').setStyle( 'margin-top: 0px;' );
	}
	else
	{
		$('lastViewedTab').setStyle( { top: (document.viewport.getHeight()+document.viewport.getScrollOffsets().top-25) + 'px' } );
	}
}

function handleResizeLastViewed ()
{
	if ( lastViewedVisible )
	{
		$('lastViewedTab').setStyle( { top: (document.viewport.getHeight()-140) + 'px' } );
		$('lastViewedContent').setStyle( { top: (document.viewport.getHeight()-115) + 'px' } );
	}
	else
	{
		$('lastViewedTab').setStyle( { top: (document.viewport.getHeight()-25) + 'px' } );
		$('lastViewedContent').setStyle( { top: document.viewport.getHeight() + 'px' } );
	}
}

function lastViewedNrOfItems ()
{
	var nrOfProds = parseInt( ( document.viewport.getWidth() - 100 ) / 305 );
	return nrOfProds;
}

Event.observe( window, 'load', function ()
	{
		if( Prototype.Browser.IE && parseFloat(navigator.appVersion.match(/MSIE (.+?);/)[1]) < 7 ) 
		{
			$('lastViewedTab').setStyle( { top: (document.viewport.getHeight()+document.viewport.getScrollOffsets().top-25) + 'px' } );
			
			new Effect.BlindUp(
				$('lastViewedContent'),
				{
					duration: 0,
					afterFinish: function ()
					{
						$('lastViewedTab').setStyle( { left: '0px' } );
						$('lastViewedContent').setStyle( { left: '0px' } );
					}
				}
			);
			
			Event.observe( window, 'scroll', handleIE6ScrollLastViewed );
			Event.observe( window, 'resize', handleIE6ScrollLastViewed );
			lastViewedResizeEventAdded = true;
		}
		else
		{
			var MSIEVersion = navigator.appVersion.match(/MSIE (.+?);/);
			if ( navigator.userAgent.indexOf( 'Safari' ) >= 0 || ( MSIEVersion != null && parseFloat(MSIEVersion[1]) >= 7 ) )
			{
				$('lastViewedTab').setStyle( { top: (document.viewport.getHeight()+document.viewport.getScrollOffsets().top-25) + 'px' } );
				$('lastViewedContent').setStyle( { top: (document.viewport.getHeight()+document.viewport.getScrollOffsets().top) + 'px' } );
			}
		}
		
		new Sky.Carousel( 'lastViewedContentBox', 'lastViewedArrowLeft', 'lastViewedArrowRight', { elementTagClass: 'lastViewedProduct', getNrOfElements: lastViewedNrOfItems } );
	}
);
