$(function()
	{
		TopMenu.Init();
		LeftMenu.Init();
	}
);

MainPage = {
	RefreshCart : function()
		{
			$.get( 
					$('#PROJECT_RELATIVE_PATH').val() + "cart-GetItems/", 
					{ bAjaxRequest: 1 }, 
					function ( data, textStatus, XMLHttpRequest )
						{
							if( data != "" && data > 0 )
							{
								$('#oShoppingCartItems').html("(" + data + ")");
								$('#oShoppingCartItems').get(0).href = $('#PROJECT_RELATIVE_PATH').val() + "cart/";
								
								if( $('#oCartStatusEmpty').get(0) )
									$('#oCartStatusEmpty').css( 'display', 'none' );

								if( $('#oCartStatusText').get(0) )
								{
									$('#oCartCheckout').css( 'display', '' );
									$('#oCartStatusText').css( 'display', '' );
									$('#oCartStatusText').html( 'You have ' + data + ' ' + ( data == '1' ? 'product' : 'products' ) + ' in cart' );
								}
							}
							else
							{
								$('#oShoppingCartItems').html("");
								$('#oShoppingCartItems').get(0).href = $('#PROJECT_RELATIVE_PATH').val() + "product/";

								if( $('#oCartStatusEmpty').get(0) )
									$('#oCartStatusEmpty').css( 'display', 'inline-block' );

								if( $('#oCartStatusText').get(0) )
								{
									$('#oCartCheckout').css( 'display', 'none' );
									$('#oCartStatusText').css( 'display', 'none' );
									$('#oCartStatusText').html( 'You have 0 products in cart' );
								}
							}
						}
				);
		}
}

TopLogin = {
	Submit : function() 
		{
			$.post( $('#PROJECT_RELATIVE_PATH').val() + 'login/', 
						"&sLogin=" + escape( $('#oTopLogin').val() ) +
						"&sPassword=" + escape( $('#oTopPassword').val() ),
						function( data )
							{
								if( data.error )
								{
									alert(data.error);
									return;
								}
								if( data.loggedIn )
									document.location = document.location.toString();
							},
							'json' );
			
			return false;
		}	
}

NewsletterRegister = {
	Submit : function()
		{
			$('#oNewsletterError').fadeOut();
			
			if( $('#oNewsletterEmail').val() == "" || $('#oNewsletterEmail').get(0).label == $('#oNewsletterEmail').val() )
			{
				$('#oNewsletterErrorText').html( 'Please enter a valid email address!' );
				$('#oNewsletterError').fadeIn();
				return;
			}
			
			$.get( $('#PROJECT_RELATIVE_PATH').val() + 'newsletter-register.htm?email=' + $('#oNewsletterEmail').val(), 
						function( data )
							{
								if( data.error )
								{
									$('#oNewsletterErrorText').html( data.error );
									$('#oNewsletterError').fadeIn();
									return;
								}
								$('#oNewsletterRegistered').fadeIn();
								window.setTimeout( function()
														{ 
															$('#oNewsletterRegistered').fadeOut(); 
															$('#oNewsletterEmail').val('');
															$('#oNewsletterButton').focus();
															$('#oNewsletterEmail').blur();
														}, 2000 );
							},
							'json' );
		}	
}


TopMenu = 
{
	MenuWidth : null,
	Init : function()
		{
			// Vertical align center - top menu items
			$('.MainMenuText', $('#oMenuContainer').get(0)).each( function( index, textItem ){
					$(textItem).css( { 'marginTop' : ($(textItem).height()/2*(-1)) + 'px' } );
				});
			$('a span', $('#oLeftMenuContainer').get(0)).each( function( index, textItem ){
					$(textItem).css( { 'marginTop' : ($(textItem).height()/2*(-1)) + 'px' } );
				});
			
			$('a.MenuWithItems', $('#oMenuContainer').get(0)).each( function( i, item ) { new TopMenuItem( item, 'MenuWithItemsOpen' ); } );
			$('a.SecMenuWithItems', $('#oMenuContainer').get(0)).each( function( i, item ) { new TopMenuItem( item, 'SecMenuWithItemsOpen' ); } );
		}
}

TopMenuItem = function( link, overClass, animation, arrange )
{
	this.Animation = animation ? animation : 'slide';
	this.Item = $(link);
	this.Container = $('ul', link.parentNode).first();
	this.ItemOver = false;
	this.ContainerOver = false;
	this.ItemsArranged = false;
	this.Arrange = arrange ? arrange : "";
	this.OverClass = overClass;
	this.ContainerWidth = null;
	this.ContainerLeft = null;
	
	var menuItem = this;
	this.Item.mouseenter( 
			function()
			{			
				menuItem.ItemOver = true;
				if( !menuItem.ContainerOver )
				{
					menuItem.Container.stop(true, true);

					if( TopMenu.MenuWidth == null )
						TopMenu.MenuWidth = $('#oMenuContainer').outerWidth();

					if( menuItem.ContainerWidth == null && menuItem.ContainerLeft == null )
					{
						menuItem.Container.css('display', '');
						menuItem.ContainerWidth = menuItem.Container.outerWidth();
						menuItem.ContainerLeft = menuItem.Container.position().left;
						menuItem.Container.css('display', 'none');
						
						if( menuItem.ContainerWidth + menuItem.ContainerLeft > TopMenu.MenuWidth )
							menuItem.Container.css('left', ( TopMenu.MenuWidth - menuItem.ContainerWidth ) + 'px');
					}

					//a.addClass( 'MenuWithItemsOpen' );
					menuItem.Item.addClass( menuItem.OverClass );
					if(menuItem.Animation == 'slide')
						menuItem.Container.slideDown( 'fast' );
					if(menuItem.Animation == 'show')
						menuItem.Container.show( 'fast' );
					if( menuItem.Arrange != '' && !menuItem.ItemsArranged )
						$( menuItem.Arrange, menuItem.Container.get(0)).each( function( index, textItem )
							{
								$(textItem).css( { 'marginTop' : ($(textItem).height()/2*(-1)) + 'px' } );
							});
				}
			});
	this.Item.mouseleave( 
			function()
			{			
						menuItem.ItemOver = false;
						window.setTimeout( function() {
								if( !menuItem.ContainerOver )
								{
									var callback = function(){ menuItem.Item.removeClass( menuItem.OverClass ); } 
									if(menuItem.Animation == 'slide')
										menuItem.Container.slideUp( 'fast', callback );
									if(menuItem.Animation == 'show')
										menuItem.Container.hide( 'fast', callback );
								}
							}, 100);
			});
	
			this.Container.mouseenter( 
				function()
					{ 
						menuItem.ContainerOver = true;
					});
			this.Container.mouseleave( 
				function()
					{ 
						menuItem.ContainerOver = false;
						window.setTimeout( function() {
								if( !menuItem.ItemOver )
								{
									var callback = function(){ menuItem.Item.removeClass( menuItem.OverClass ); };
									if(menuItem.Animation == 'slide')
										menuItem.Container.slideUp( 'fast', callback );
									if(menuItem.Animation == 'show')
										menuItem.Container.hide( 'fast', callback );
								}
							}, 100);
					});
}

/* LEFT MENU */
LeftMenu = 
{
	Init : function()
		{
			// Vertical align center - top menu items
			$('.MainMenuText', $('#oMenuContainer').get(0)).each( function( index, textItem ){
					$(textItem).css( { 'marginTop' : ($(textItem).height()/2*(-1)) + 'px' } );
				});
			$('a span', $('#oLeftMenuContainer').get(0)).each( function( index, textItem ){
					$(textItem).css( { 'marginTop' : ($(textItem).height()/2*(-1)) + 'px' } );
				});
			
			$('a.LeftParentItem', $('#oLeftMenuContainer').get(0)).each( function( i, item ) { new LeftMenuItem( item, 'LeftParentItemOpen', 'show', 'a span' ); } );
		}
}

LeftMenuItem = function( link, overClass, animation, arrange )
{
	this.Animation = animation ? animation : 'slide';
	this.Item = $(link);
	this.Container = $('ul', link.parentNode).first();
	this.ItemOver = false;
	this.ContainerOver = false;
	this.ItemsArranged = false;
	this.Arrange = arrange ? arrange : "";
	this.OverClass = overClass;
	
	var menuItem = this;
	this.Item.mouseenter( 
			function()
			{			
				menuItem.ItemOver = true;
				if( !menuItem.ContainerOver )
				{
					//a.addClass( 'MenuWithItemsOpen' );
					menuItem.Item.addClass( menuItem.OverClass );
					if(menuItem.Animation == 'slide')
						menuItem.Container.slideDown( 'fast' );
					if(menuItem.Animation == 'show')
						menuItem.Container.show( 'fast' );
					if( menuItem.Arrange != '' && !menuItem.ItemsArranged )
						$( menuItem.Arrange, menuItem.Container.get(0)).each( function( index, textItem )
							{
								$(textItem).css( { 'marginTop' : ($(textItem).height()/2*(-1)) + 'px' } );
							});
				}
			});
	this.Item.mouseleave( 
			function()
			{			
						menuItem.ItemOver = false;
						window.setTimeout( function() {
								if( !menuItem.ContainerOver )
								{
									var callback = function(){ menuItem.Item.removeClass( menuItem.OverClass ); } 
									if(menuItem.Animation == 'slide')
										menuItem.Container.slideUp( 'fast', callback );
									if(menuItem.Animation == 'show')
										menuItem.Container.hide( 'fast', callback );
								}
							}, 100);
			});
	
			this.Container.mouseenter( 
				function()
					{ 
						menuItem.ContainerOver = true;
					});
			this.Container.mouseleave( 
				function()
					{ 
						menuItem.ContainerOver = false;
						window.setTimeout( function() {
								if( !menuItem.ItemOver )
								{
									var callback = function(){ menuItem.Item.removeClass( menuItem.OverClass ); };
									if(menuItem.Animation == 'slide')
										menuItem.Container.slideUp( 'fast', callback );
									if(menuItem.Animation == 'show')
										menuItem.Container.hide( 'fast', callback );
								}
							}, 100);
					});
}

KeyUtils = 
{
	OnEnter : function( evt, functionToExecute, param1, param2 )
		{
			if( evt.keyCode == 13 && typeof( functionToExecute ) == "function" )
			{
				if( param1 != null && param2 != null )
					functionToExecute( param1, param2 );
				else if( param1 != null )
					functionToExecute( param1 );
				else
					functionToExecute();
			}
		} 
}
	
	
