
/**
 * Menu
 */
	
	$('#header .csc-type-menu ul.level-1').each(function(index, menuItem) {
		var menuIconElem = document.createElement('div');
		$(menuIconElem).addClass('menu-icon');
		
		var menuIconLinkElem = document.createElement('a');
		$(menuIconLinkElem).attr('href', '#');
		
		var menuIconWrapElem = document.createElement('span');
		var menuIconAnimationElem = document.createElement('em');

		$(menuIconLinkElem).append(menuIconWrapElem);
		$(menuIconLinkElem).append(menuIconAnimationElem);
		$(menuIconElem).append(menuIconLinkElem);
		
		$(menuIconLinkElem).click(function(event) {
			event.preventDefault();
			
			$(menuIconElem).toggleClass('menu-visible');
			$(menuItem).toggleClass('menu-visible');
		});

		$(menuItem).before(menuIconElem);
		$(menuItem).addClass('ready');
	});

/* menu on mobile */
	$('#header .csc-type-menu li.has-submenu').each(function(index, menuItem) {
		if ($(menuItem).find('> ul').size() > 0) {
			var submenuItem = $(menuItem).find('> ul').first();
			var menuClasses = $(submenuItem).attr('class').split(' ');
			var currentLevel = null;
			
			for (var i in menuClasses) {
				if (menuClasses [i].match(/^level-[2-9]$/) != null) {
					currentLevel = menuClasses [i];
				}
			}
			
			if (currentLevel != null) {
			/* go down */
				var rootItem = $(this).parents('.level-1').first();
				var linkItem = $(menuItem).find('a').first();
				
				var submenuIconWrapElem = document.createElement('span');
				$(submenuIconWrapElem).addClass('arrow-icon');
				
				$(linkItem).append(submenuIconWrapElem);
				
				$(submenuIconWrapElem).click(function(event) {
					event.preventDefault();
					
					$(rootItem).find('.' + currentLevel).removeClass('visible');
					$(submenuItem).addClass('visible');
					
					$(rootItem).addClass('show-' + currentLevel);
				});
				
			/* go up */
				var backElem = document.createElement('li');
				$(backElem).addClass('back-to-parent');
				
				$(backElem).append($(linkItem).clone());
				$(submenuItem).prepend(backElem);
				
				$(backElem).find('span').first().click(function(event) {
					event.preventDefault();
					
					$(rootItem).removeClass('show-' + currentLevel);
					
					setTimeout(function() {
						$(submenuItem).removeClass('visible');
						
					}, 500);
				});
			}
		}
	});

/* menu on desktop */
	function ew_handleDesktopMenu_recursive(currentItem, parentLeftOffset, dirLTR) {
		var currentLeftOffset = parentLeftOffset;
		var currentWidth = $(currentItem).width();
		var windowWidth = $('body').width();
		
		if (dirLTR) {
			if (parentLeftOffset + currentWidth > windowWidth) {
				$(currentItem).parent().addClass('dir-rtl');
				
				dirLTR = false;
				currentLeftOffset -= currentWidth;
				
			} else {
				currentLeftOffset += currentWidth;
			}
			
		} else {
			if (parentLeftOffset < 0) {
				$(currentItem).parent().addClass('dir-ltr');
				
				dirLTR = true;
				currentLeftOffset += currentWidth;
				
			} else {
				currentLeftOffset -= currentWidth;
			}
		}
		
		$(currentItem).find('> li.has-submenu > ul').each(function(index, submenuItem) {
			ew_handleDesktopMenu_recursive(submenuItem, currentLeftOffset, dirLTR);
		});
	}
	
	function ew_handleDesktopMenu() {
		$('#header .csc-type-menu li.has-submenu').removeClass('dir-rtl');
		$('#header .csc-type-menu li.has-submenu').removeClass('dir-ltr');
		
		$('#header .csc-type-menu ul.level-1').each(function(index, topMenu) {
			if ($(topMenu).css('position') == 'static') {
				$(topMenu).find('> li.has-submenu > ul').each(function(index, submenuItem) {
					ew_handleDesktopMenu_recursive(submenuItem, $(submenuItem).parent().offset().left, true);
				});
			}
			
		/*
			var submenuItem = $(menuItem).find('> ul').first();
			
			if ($(menuItem).parent().hasClass('level-1')) {
				if ($(menuItem).offset().left + $(submenuItem).width() >= windowWidth) {
					$(menuItem).addClass('dir-rtl');
				}
			}
		*/
		});
	}
	
	$(window).resize(ew_handleDesktopMenu);
	ew_handleDesktopMenu();
	
	
/**
 * Accordion
 */

function ew_prepareAccordionItem(accordionItem) {
	$(accordionItem).find('> .content-wrapper > .csc-header').each(function(headerIndex, headerItem) {
		var iconElem = document.createElement('span');
		$(iconElem).addClass('csc-accordion-icon');
		$(headerItem).append(iconElem);
		
		$(headerItem).click(function(event) {
			event.preventDefault();
			
			var isActiveNow = $(accordionItem).hasClass('csc-accordion-active-item');
			
			if (!isActiveNow) {
				$(accordionItem).addClass('csc-accordion-active-item');
			}
			
			$(accordionItem).find('> .content-wrapper > .csc-header + *').slideToggle(400, function() {
				if (isActiveNow) {
					$(accordionItem).removeClass('csc-accordion-active-item');
				}
			});
		});
	});
}

$('.csc-accordion-this').each(function(index, item) {
	ew_prepareAccordionItem(item);
	
	$(item).addClass('csc-accordion-ready');
});

$('.csc-accordion-children').each(function(index, item) {
	$(item).find('> .content-wrapper > .csc-records').each(function(containerIndex, containerItem) {
		$(containerItem).find('> .csc-frame, > .csc-no-frame').each(function(blockIndex, blockItem) {
			ew_prepareAccordionItem(blockItem);
		});
	});
	
	$(item).addClass('csc-accordion-ready');
});