// File for tab navigation hover
(function($) {

	// var to store data() access constant
	var TAB_INITIAL_INDEX = 'tabNavigation.initialIndex';
	var TAB_CANCEL_REQUEST_ACTIVE = 'tabNavigation.requestActive';

	$(document).ready(function() {
		$('.tabsContainer .navigation li a').click(function() {
			$('a.selected').removeClass('selected');
			$(this).addClass('selected');
			$(this).parent().parent().data(TAB_INITIAL_INDEX,$('li:has(a.selected)',$(this).closest('.navigation')).index());
		});
		$('.tabsContainer .navigation li').hover(function(e) {
			$(this).parent().data(TAB_CANCEL_REQUEST_ACTIVE,false);
			if ($(this).parent().data(TAB_INITIAL_INDEX) == null) {
				// store the original index at first hover
				$(this).parent().data(TAB_INITIAL_INDEX,$('li:has(a.active)',$(this).closest('.navigation')).index());
			}
			// remove current state:
			$('a.active',$(this).closest('.navigation')).removeClass('active');
			$('a.beforeActive',$(this).closest('.navigation')).removeClass('beforeActive');
			// set new state:
			var index = $(this).index();
			//alert(index);
			$('a',$(this).parent().children().get(index)).addClass('active');
			$('a',$(this).parent().children().get(index-1)).addClass('beforeActive');
			//alert('mousein');

		},function(e) {

			if(!$('a.active',$(this).closest('.navigation')).hasClass('selected')) {
				//alert('mouseout2 selected:'+$(this).parent().data(TAB_INITIAL_INDEX));
				var initialIndex = $(this).parent().data(TAB_INITIAL_INDEX);
				var index = $(this).index();


				if (index == initialIndex) return true;

				// remove current state:
				$('a.active',$(this).closest('.navigation')).removeClass('active');
				$('a.beforeActive',$(this).closest('.navigation')).removeClass('beforeActive');
				// set new state:
				var currentLI = this;
				$(this).parent().data(TAB_CANCEL_REQUEST_ACTIVE,true);
				// This whole delayed switchback is only because IE 6 flickers
				setTimeout(function() {
					if ($(currentLI).parent().data(TAB_CANCEL_REQUEST_ACTIVE)) {
						$('a',$(currentLI).parent().children().get(initialIndex)).addClass('active');
						$('a',$(currentLI).parent().children().get(initialIndex-1)).addClass('beforeActive');
					}
				},50);

			}



		});

	});

})(jQuery);
