if (!jQuery.noConflict()) {
	$.noConflict();
}
OCCTopNavigation = {
	containerIsOn: false,
	mobiTabClicked: false,
	init: function () {
		if (jQuery('#OCCTopNavigation').size() === 0) return;
		OCCTopNavigation.setDividers();
		OCCTopNavigation.setContainerTop();
		OCCTopNavigation.offSensorInit();
		OCCTopNavigation.tabController();
	}, //-- init()
	
	setContainerTop: function () {
		var globieHeight = jQuery('#OCCTopNavigation .globie').height();
		var hNavHeight = jQuery('#OCCTopNavigation #horizontalNavigation').height();
		var cContainerTop = (globieHeight + hNavHeight - 4) + 'px';
		jQuery('#OCCTopNavigation #contentContainer').css('top',cContainerTop);
	}, //-- setContainerTop
	
	setDividers: function () {
		jQuery('<div class="divider">|</div>').insertAfter(jQuery('#horizontalNavigation').find('div:not(":last")').not('.tabbed, .tabbedON, .tabCap, .tabLink, occlr, .topNavOffsite, .button').not(':last'));
	}, //-- setDividers()
	
	offSensorInit: function (updateHeight) {
		if (updateHeight === undefined) {
			jQuery('<div id="OCCTopNavSensor"></div>').insertBefore('#contentContainer');
			jQuery('#OCCTopNavSensor').mouseover(function() {				
				OCCTopNavigation.disableCurrentContainer('false'); // set true to keep nav displayed onmouseout
				jQuery(this).hide();
			});
		} else {
			log('offSensorInit height: ' + updateHeight);
			var navSensor = jQuery('#OCCTopNavSensor');
			var sWidth = screen.width - 48;
			jQuery(navSensor).css({
				height: updateHeight + 64 + 'px',
				width: sWidth + 'px',
				left: '-' + ((sWidth - 955) / 2) + 'px',
				display: 'block'
			});
		}
	}, //-- offSensorInit()
	
	disableCurrentContainer: function (testing) {
		log('disableCurrentContainer');
		if (testing !== 'true') {
			jQuery('#OCCTopNavigation #horizontalNavigation .tabbed.ON').removeClass('ON');
			jQuery('.informationNavigation').each(function () {
				jQuery(this).hide();
			}).find('.infoController').each(function () {
				jQuery(this).attr('id','');
			});
			jQuery('.infoController a').each(function () {
				jQuery(this).removeClass('ON');
			});
			jQuery('.informationContainer').hide().find('.informationContent').each(function() {
				jQuery(this).attr('id','');
			});			
			jQuery('#contentContainer').hide();
			jQuery('.informationContainer').css('background-image','none');
			OCCTopNavigation.containerIsOn = false;
			
		}
	}, //-- hideNavigation
	
	tabController: function () {
		jQuery('#OCCTopNavigation #horizontalNavigation .tabbed').hoverIntent({
			timout: 500,
			over: function () {
				log('/--------\ntabController() --> OVER');
				OCCTopNavigation.tabOverController(jQuery(this));
			},
			out: function () {
				log('/--------\ntabController() --> OUT');
				OCCTopNavigation.tabOutController(jQuery(this));
			}
		});
	}, //-- tabController()
	
	tabOverController: function (tabItem) {
		log('tabOverController tabItem: ');
		log(tabItem);
		if (OCCTopNavigation.containerIsOn === true) {
			OCCTopNavigation.disableCurrentContainer();
		}
		OCCTopNavigation.tabState(tabItem, 'ON');
		jQuery('#OCCTopNavigation #horizontalNavigation .tabbed:first .tabCap.left').css('height','43px');
		if (jQuery(tabItem).hasClass('hasContent') === true) {
			log(tabItem + ' hasContent');
			var displayContainer = '';
			if ( jQuery(tabItem).find('.tabLink a').attr('rel') !== '' ) {
				displayContainer = jQuery(tabItem).find('.tabLink a').attr('rel');
			} else {
				displayContainer = jQuery(tabItem).find('.tabLink a').attr('title');
			}
			log('displayContainer: ' + displayContainer);
			OCCTopNavigation.containerIsOn = true;
			log('containerIsOn: ' + OCCTopNavigation.containerIsOn);
			OCCTopNavigation.frameInitialize(displayContainer, tabItem);
		}
	}, //-- tabOverController
	
	tabOutController: function (tabItem) {
		log('tabOutController tabItem: ');
		log(tabItem);
		log('tabOutController containerIsOn: ' + OCCTopNavigation.containerIsOn);
		if (OCCTopNavigation.containerIsOn === false) {
			OCCTopNavigation.tabState(tabItem, 'OFF');
		}
	}, //-- tabOutController()
	
	tabState: function (tabItem, state) {
		state === 'ON' ? jQuery(tabItem).addClass('ON') : jQuery(tabItem).removeClass('ON');
	}, //-- tabState
	
	frameInitialize: function (displayContainer, tabItem) {
		var itemContainer = jQuery('#' + displayContainer + '.informationContainer');
		var itemNavigation = jQuery('#' + displayContainer).find('.informationNavigation');
		jQuery(itemContainer).find('.informationContent').hide();
		jQuery('#contentContainer').show();
		jQuery(itemContainer).show();
		jQuery(itemNavigation).slideDown('fast', function () {
			OCCTopNavigation.containerHeightController(itemNavigation, itemContainer, jQuery(itemContainer).find('.informationContent:first'));
			OCCTopNavigation.offSensorInit(jQuery('#OCCTopNavigation').height() + jQuery('#contentContainer').height());
			jQuery('.icAnchorText').each(function() {
				if (jQuery(this).innerHeight() > 16) {
					jQuery(this).css('margin-top','-8px');
				}
			});
			jQuery(itemNavigation).find('.infoController:first a').addClass('ON');
			jQuery(itemContainer).find('.informationContent:first').fadeIn('normal');
			OCCTopNavigation.frameHeroBackgroundSet(jQuery(itemContainer).find('.informationContent:first'), itemContainer);
		});
		OCCTopNavigation.frameContentController(displayContainer, itemNavigation, itemContainer);
	}, //-- frameInitialize()
	
	frameContentController: function (displayContainer, itemNavigation, itemContainer) {
		log('/--------\nframeContentController  --> ' + displayContainer);
		jQuery(itemNavigation).find('.infoController').each(function(n) {
			jQuery(this).attr('id','hNavID_' + n);
		});
		jQuery(itemContainer).find('.informationContent').each(function(c) {
			jQuery(this).attr('id','hFrameID_' + c);
		});
		jQuery('.infoController').mouseover(function() {
			jQuery(itemContainer).find('.infoController a').each(function() {
				jQuery(this).removeClass('ON');
			});
			jQuery(this).find('a').addClass('ON');
			var showId = jQuery('#' + jQuery(this).attr('id').replace('hNavID', 'hFrameID'));
			OCCTopNavigation.frameDisplay(itemNavigation, itemContainer, showId);
		});
	}, //-- frameContentController()
	
	frameDisplay: function (itemNavigation, itemContainer, showId) {
		jQuery(itemContainer).css('background-image','none');
		jQuery(itemContainer).find('.informationContent').each(function() {
			jQuery(this).hide();
		});
		jQuery(showId).show();
		OCCTopNavigation.frameHeroBackgroundSet(showId, itemContainer);
		OCCTopNavigation.containerHeightController(itemNavigation, itemContainer, showId);
	}, //-- frameDisplay()
	
	frameHeroBackgroundSet: function (showId, itemContainer) {
		if (jQuery(showId).find('.heroImage').hasClass('Background')) {
			var heroBackground = jQuery(showId).find('.heroImage.Background img').attr('src');
			log('frameHeroBackgroundSet() --> heroImage Background found: ' + heroBackground);
			jQuery(itemContainer).css('background-image','url(' + heroBackground + ')');
		}
	}, //-- frameHeroBackgroundSet
	
	containerHeightController: function (itemNavigation, itemContainer, showId) {
		var navHeight = jQuery(itemNavigation).height();
		var containerHeight = jQuery(itemContainer).height();
		var contentHeight = jQuery(showId).height();
		if (navHeight >= containerHeight) {
			log('containerHeightController() --> adding containerHeight: ' + (navHeight + 12));
			jQuery(itemContainer).css('height', navHeight + 12 + 'px');
		}
		if (navHeight >= contentHeight) {
			log('containerHeightController() --> adding contentHeight: ' + (navHeight + 12));
			jQuery(showId).css('height', navHeight + 2 + 'px');
		}
	} //-- containerHeightController()
	
};
jQuery(window).load(function() {
	OCCTopNavigation.init();
});
