CHAMILIA.namespace('CHAMILIA.ui.navigation');

$(document).ready(function(){ CHAMILIA.ui.navigation.init(); });

CHAMILIA.ui.navigation = {
	
	_navElements: '',
	_activeSubNav: '',
	_currentSubNav: '',
	_navTimer: '',
	_navTime: 1000,
	
	CLASSES: {
		current: 'current',
		active: 'active'
	},
	IDS: {},
	SELECTORS: {
		navElements: 'ul#main-nav',
		subNavElement: 'div'
	},
	
	init: function() {
		CHAMILIA.ui.navigation.getElements();
		CHAMILIA.ui.navigation.attachListeners();
	},
	
	getElements: function() {
		
		CHAMILIA.ui.navigation._navElements = $(CHAMILIA.ui.navigation.SELECTORS.navElements).children();
		
		CHAMILIA.ui.navigation._currentSubNav = $(CHAMILIA.ui.navigation.SELECTORS.navElements + ' ' + CHAMILIA.ui.navigation.SELECTORS.subNavElement + '.' + CHAMILIA.ui.navigation.CLASSES.current);

		if(CHAMILIA.ui.navigation._currentSubNav) {
			CHAMILIA.ui.navigation._activeSubNav = CHAMILIA.ui.navigation._currentSubNav;
			CHAMILIA.ui.navigation._activeSubNav.addClass(CHAMILIA.ui.navigation.CLASSES.active);
		}
		
	},
	
	attachListeners: function() {
		CHAMILIA.ui.navigation._navElements.hover(
			function() { CHAMILIA.ui.navigation.handleSubNavOver(this); },
			function() { CHAMILIA.ui.navigation.handleSubNavOut(this); }
		);
	},
	
	handleSubNavOver: function(el) {
		var selectedSubNav = $(CHAMILIA.ui.navigation.SELECTORS.subNavElement, el);
		
		if(selectedSubNav[0] && selectedSubNav[0] != CHAMILIA.ui.navigation._currentSubNav[0]) {
			CHAMILIA.ui.navigation.hideSubNav();
			CHAMILIA.ui.navigation.showSubNav(el);
		}
	},
	
	handleSubNavOut: function(el) {
		var selectedSubNav = $(CHAMILIA.ui.navigation.SELECTORS.subNavElement, el);
		
		if(selectedSubNav[0] && !$(selectedSubNav).hasClass(CHAMILIA.ui.navigation.CLASSES.current)) {
			CHAMILIA.ui.navigation.hideSubNav();
			CHAMILIA.ui.navigation.showCurrentSubNav();
		}
	},
	
	hideSubNav: function() {
		if(CHAMILIA.ui.navigation._activeSubNav) {
			CHAMILIA.ui.navigation._activeSubNav.stop(true,true).fadeOut();
			var bgEl = $(CHAMILIA.ui.navigation._activeSubNav.parent().children('a')[0]);
			bgEl.css('backgroundPosition','center 50px');
			CHAMILIA.ui.navigation._activeSubNav.removeClass(CHAMILIA.ui.navigation.CLASSES.active);
			CHAMILIA.ui.navigation._activeSubNav = '';
		}
	},
	
	showSubNav: function(el) {		
		CHAMILIA.ui.navigation._activeSubNav = $(CHAMILIA.ui.navigation.SELECTORS.subNavElement, el);
		CHAMILIA.ui.navigation._activeSubNav.addClass(CHAMILIA.ui.navigation.CLASSES.active);
		CHAMILIA.ui.navigation._activeSubNav.stop(true,true).fadeIn(50,function() {
			var bgEl = $(CHAMILIA.ui.navigation._activeSubNav.parent().children('a')[0]);
			bgEl.css('backgroundPosition','center 25px');
		});
	},
	
	showCurrentSubNav: function() {
		CHAMILIA.ui.navigation._activeSubNav = CHAMILIA.ui.navigation._currentSubNav;
		CHAMILIA.ui.navigation._activeSubNav.addClass(CHAMILIA.ui.navigation.CLASSES.active);
		CHAMILIA.ui.navigation._activeSubNav.stop(true,true).fadeIn(50,function() {
			var bgEl = $(CHAMILIA.ui.navigation._activeSubNav.parent().children('a')[0]);
			bgEl.css('backgroundPosition','center 25px');						 
		});
	}
	
}

