﻿var SETTINGS =
	{
		HIDDEN_CLASS: 'hidden',
		MENU:
			{
				ACTIVATOR_HIGHLIGHTED_CLASS: 'activator-highlighted',

				SUBMENU_CONTAINER_SELECTOR: 'div.submenu'
			},
		PROMO:
			{
				ACTIVE_LI_CLASS: 'active',

				WINDOW_PARENT_SELECTOR: 'div#promo',

				WINDOW_HTML: '<div id="promo-window" class="hidden"><div id="promo-window-padding"></div></div>',

				CONTENT_CONTAINER_SELECTOR: 'div#promo-window-padding',
				CONTENT_CONTAINER_ID_PREFIX: 'promo_content_',
				
				FADE_OUT_SPEED: 'fast',
				FADE_IN_SPEED: 'slow'
		}
			
	}

$(document).ready(
	function()
	{
/****** чудо выпадающее меню ******/
		var now_showing_submenu_activator_parent = null
		
		var on_activator = false
		var on_submenu = false

		function update_submenu_visibility()
		{
			if ( on_activator || on_submenu )
			{
				if ( now_showing_submenu_activator_parent )
				{
					//$('div.submenu', now_showing_submenu_activator_parent.parent()).removeClass( SETTINGS.HIDDEN_CLASS )
					//now_showing_submenu_activator_parent.addClass( SETTINGS.MENU.ACTIVATOR_HIGHLIGHTED_CLASS )
					
					$('div.submenu', now_showing_submenu_activator_parent.parent()).fadeIn()
					now_showing_submenu_activator_parent.addClass( SETTINGS.MENU.ACTIVATOR_HIGHLIGHTED_CLASS )
				}
			}
			else
			{
				if ( now_showing_submenu_activator_parent )
				{
					//now_showing_submenu_activator_parent.removeClass( SETTINGS.MENU.ACTIVATOR_HIGHLIGHTED_CLASS )
					//$('div.submenu', now_showing_submenu_activator_parent.parent()).addClass( SETTINGS.HIDDEN_CLASS )
					
					now_showing_submenu_activator_parent.removeClass( SETTINGS.MENU.ACTIVATOR_HIGHLIGHTED_CLASS )
					$('div.submenu', now_showing_submenu_activator_parent.parent()).fadeOut()

					now_showing_submenu_activator_parent = null
				}
			}
		}

		if ( !$.browser.msie )
		{
			$('div#top-level-padding').mouseover(
				function()
				{
					update_submenu_visibility()
				}
			)
		}

		$('ul#menu li a.with-submenu').each(
			function()
			{
				var submenu_activator = $('<span class="submenu-activator"></span>')

				submenu_activator.hover(
					function()
					{
						now_showing_submenu_activator_parent = $(this).parent()
						
						on_activator = true
						
						update_submenu_visibility()
					},
					function()
					{
						on_activator = false
					}
				)
				
				$(this).append(submenu_activator)

				if ( $.browser.msie )
				{
					$(this).parent().hover(
						function()
						{
							update_submenu_visibility()
						},
						function()
						{
							update_submenu_visibility()
						}
					)
				}
					
				$('div.submenu', $(this).parent()).hover(
					function()
					{
						on_submenu = true
						
						return false
					},
					function()
					{
						on_submenu = false
						
						return false
					}
				)
			}
		)

/****** чудо промо-окошки ******/
		if ( $('div#promo') )
		{
			// создаём само окно для показа промо-текста
			var promo_window = create_promo_window()

			// идентификатор показываемого сейчас контента
			jquery_now_showing_content = null
			
			$('ul li a.fade-control', promo_window.jquery_parent).each(
				function()
				{
					var jquery_content_node = $(this).parents('li')
					append_content(
						jquery_content_node,
						promo_window.jquery_content_container
					)

					$(this).click(
						function()
						{

							jquery_now_showing_content = show_content(
									this,
									jquery_now_showing_content
							)
							
							return false
						}
					)

				}
			)

			if ( $.browser.msie && $.browser.version && $.browser.version < 7 )
			{
				promo_window.jquery_self.removeClass( SETTINGS.HIDDEN_CLASS )
			}
			else
			{
				promo_window.jquery_self.fadeIn( SETTINGS.FADE_IN_SPEED )
			}
			jquery_now_showing_content = show_content(
					$('ul li a.fade-control', promo_window.jquery_parent).get(0),
					jquery_now_showing_content
			)
		}


	}
)

function create_promo_window()
{	
	var promo_window = $( SETTINGS.PROMO.WINDOW_HTML )

	var promo_window_parent = $( SETTINGS.PROMO.WINDOW_PARENT_SELECTOR )
	promo_window_parent.prepend(promo_window)

	var result =
		{
			jquery_parent: promo_window_parent,
			jquery_self: promo_window,
			jquery_content_container: $( SETTINGS.PROMO.CONTENT_CONTAINER_SELECTOR , promo_window)
		}

	return result
}

function create_previous_control( jquery_content_node )
{
	var result = $('<a class="previous-control"></a>')	
		
	result.hover(
		function()
		{
			$(this).addClass('previous-control-highlighted')
		},
		function()
		{
			$(this).removeClass('previous-control-highlighted')
		}	
	)

	var click_target = null
	var prev = jquery_content_node.prev()
		
	if ( prev.length > 0 )
	{
		click_target = $('a.fade-control', prev)
	}
	else
	{
		siblings = jquery_content_node.siblings()
		click_target = $('a.fade-control', siblings.eq( siblings.length - 1 ) )
	}

	result.click(
		function()
		{
			click_target.click()
		}
	)
	
	return result
}

function create_next_control( jquery_content_node )
{
	var result = $('<a class="next-control"></a>')	

	result.hover(
		function()
		{
			$(this).addClass('next-control-highlighted')
		},
		function()
		{
			$(this).removeClass('next-control-highlighted')
		}	
	)	
	
	var next = jquery_content_node.next()
	var click_target = null
	
	if ( next.length > 0 )
	{
		click_target = $('a.fade-control', next)
	}
	else
	{
		var siblings = jquery_content_node.siblings()
		click_target = $('a.fade-control', siblings.eq(0) )
	}

	result.click(
		function()
		{
			click_target.click()
		}
	)

	return result
}

function append_content(jquery_content_node, jquery_parent)
{
	var container_id = get_promo_content_container_id( jquery_content_node )
		
	var previous_control = create_previous_control( jquery_content_node )
	var next_control = create_next_control( jquery_content_node )

	var new_promo_content_container = $(
		'<div id="' + container_id + '" class="' + SETTINGS.HIDDEN_CLASS + '">' +
			jquery_content_node.html() + 
		'</div>'
	)

	new_promo_content_container.prepend(previous_control)
	new_promo_content_container.prepend(next_control)

	jquery_parent.prepend(new_promo_content_container)
}

function get_promo_content_container_id( jquery_content_node )
{
	var id_value = jquery_content_node.attr('id')
	
	return (SETTINGS.PROMO.CONTENT_CONTAINER_ID_PREFIX + id_value);
}

function show_content( current_link, jquery_now_showing_content )
{
	var jquery_parents = $(current_link).parents('li')
	
	// отмечаем текущий элемент списка стрелочкой
	jquery_parents.siblings().removeClass( SETTINGS.PROMO.ACTIVE_LI_CLASS )
	jquery_parents.addClass( SETTINGS.PROMO.ACTIVE_LI_CLASS )
		
	
	// анимируем текст
	var id_to_show = get_promo_content_container_id( jquery_parents )
	
	var content_to_show_selector = 'div#' + id_to_show
	var jquery_content_to_show = $(content_to_show_selector)

	if ( jquery_now_showing_content )
	{
		if ( $.browser.msie && $.browser.version && $.browser.version < 7 )
		{
			jquery_now_showing_content.addClass( SETTINGS.HIDDEN_CLASS )
			jquery_content_to_show.removeClass( SETTINGS.HIDDEN_CLASS )
		}
		else
		{
			jquery_now_showing_content.fadeOut(
				SETTINGS.PROMO.FADE_OUT_SPEED,
				function()
				{			
					jquery_content_to_show.fadeIn(SETTINGS.PROMO.FADE_IN_SPEED)
				}
			)			
		}		
	}
	else
	{
		if ( $.browser.msie && $.browser.version && $.browser.version < 7 )
		{
			jquery_content_to_show.removeClass( SETTINGS.HIDDEN_CLASS )
		}
		else
		{
			jquery_content_to_show.fadeIn(SETTINGS.PROMO.FADE_IN_SPEED)
		}
	}
	
	return jquery_content_to_show
}