﻿var origLangHeight;
var ImageButtonRootFolder = 'App_Themes/Original/home';
var ImageButtonNormal = '_Hout';
var ImageButtonDisabled = '';
var ImageButtonHighlighted = '_Hover';
var ImageButtonExtension = '.gif';
var contentTopOffset = 20;
var contentLeftOffset = 20;

Window_OnLoad = 
	function() 
	{
		//ICL.ControlList();

		var elPrimary = YAHOO.util.Dom.get('PrimaryNavigation');
		if (elPrimary == null)
		{
			// homepage
			
			var HomeContactUsIcon_IMG = new ICL.Web.ImageLink('ctl00_HomeContactUsIcon');
			var HomeEnvironmentIcon_IMG = new ICL.Web.ImageLink('ctl00_HomeEnvironmentIcon');
			var HomeAwardsIcon_IMG = new ICL.Web.ImageLink('ctl00_HomeAwardsIcon');
			var HomeFleetIcon_IMG = new ICL.Web.ImageLink('ctl00_HomeFleetIcon');
			var elFeedback = new ICL.Web.ImageLink('ctl00_HomeFeedbackIcon');
			var elSitemap = new ICL.Web.ImageLink('ctl00_HomeSitemapIcon');
			var elSearch = new ICL.Web.ImageLink('ctl00_HomeSearchIcon');

			// setup event listeners
			
			YAHOO.util.Event.addListener('lang0', 'mouseover', Language_OnMouseOver);
			YAHOO.util.Event.addListener('lang0', 'mouseout', Language_OnMouseOut);
			YAHOO.util.Event.addListener('lang1', 'mouseover', Language_OnMouseOver);
			YAHOO.util.Event.addListener('lang1', 'mouseout', Language_OnMouseOut);
			YAHOO.util.Event.addListener('lang2', 'mouseover', Language_OnMouseOver);
			YAHOO.util.Event.addListener('lang2', 'mouseout', Language_OnMouseOut);
			YAHOO.util.Event.addListener('lang3', 'mouseover', Language_OnMouseOver);
			YAHOO.util.Event.addListener('lang3', 'mouseout', Language_OnMouseOut);
			YAHOO.util.Event.addListener(window, 'resize', Window_Home_OnResize);

			// store original language height for future reference
			
			var elLang = YAHOO.util.Dom.get('HomeLanguages');
			origLangHeight = elLang.offsetHeight;
			
			Window_Home_OnResize();
			PopupMenus_Init('HomePopupMenus');
			
			// initiate ticker
			
			var elTicker = YAHOO.util.Dom.get('ctl00_TickerPanel');
			if (elTicker != null)
			{
				YAHOO.snippet.ticker.init("newsTicker");
			}
			
		}
		else
		{
			var elFleet = YAHOO.util.Dom.get('ctl00_WheresTheFleet_IMG');
			ImageButtonNormal = '_out';
			ImageButtonHighlighted = '_active';
			ImageButtonExtension = 'Text.gif';

			if (elFleet != null) elFleet = new ICL.Web.ImageLink('ctl00_WheresTheFleet');
			var elFeedback = new ICL.Web.ImageLink('ctl00_FeedbackIcon');
			var elSitemap = new ICL.Web.ImageLink('ctl00_SitemapIcon');
			var elSearch = new ICL.Web.ImageLink('ctl00_SearchIcon');
			var elHome = new ICL.Web.ImageLink('ctl00_HomeIcon');

			YAHOO.util.Event.addListener(window, 'resize', Window_Standard_OnResize);
			YAHOO.util.Event.addListener(window, 'scroll', Window_Standard_OnScroll);
			Window_Standard_OnResize();
			PopupMenus_Init('PopupMenus');
		}
		
        var query = window.location.search.substring(1); 
        var vars = query.split("&"); 
        for (var i=0;i<vars.length;i++) { 
            var pair = vars[i].split("="); 
            if (pair[0] == "RedirectLang") {
                var message = "";
                if (pair[1] == "fr") {
                    message = "Vous avez essayé de consulter ce site en français, mais nous ne prendrons plus en charge cette langue.  " +
                        "Votre langue par défaut a été mis à l'anglais."
                }
                if (pair[1] == "nl") {
                    message = "U heeft geprobeerd om deze site te bekijken in het Nederlands, maar wij niet langer ondersteuning van die taal.  " +
                        "Uw taal is standaard ingesteld op Engels."
                }
                alert(message);
            }
        }

		try
		{
			Local_Window_OnLoad();
		}
		catch(e)
		{
		}
	}
	
Window_Home_OnResize =
	function()
	{
		var elLang = YAHOO.util.Dom.get('HomeLanguages');
		var newPadding = YAHOO.util.Dom.getViewportHeight() - YAHOO.util.Dom.getY(elLang) - origLangHeight - 5;
		if (newPadding < 0) newPadding = 0;
		YAHOO.util.Dom.setStyle(elLang, 'paddingTop', newPadding.toString() + 'px')
		
		var elSearch = YAHOO.util.Dom.get('HomeSearch');
		var newTop = YAHOO.util.Dom.getViewportHeight() - elSearch.offsetHeight;
		if (newTop < YAHOO.util.Dom.getY(elLang)) newTop = YAHOO.util.Dom.getY(elLang);
		YAHOO.util.Dom.setStyle(elSearch, 'top', newTop.toString() + 'px');		
	}
	
Window_Standard_OnResize =
	function()
	{
		var elPrimary = YAHOO.util.Dom.get('PrimaryNavigation');			
		var elSecond = YAHOO.util.Dom.get('SecondaryNavigation');
		var elContent = YAHOO.util.Dom.get('Content');
		var elMeatball = YAHOO.util.Dom.get('DDI');

		var newSecondHeight = YAHOO.util.Dom.getViewportHeight() - elPrimary.offsetHeight;
		
		Window_Standard_OnScroll();

		var newContentWidth = YAHOO.util.Dom.getViewportWidth() - elSecond.offsetWidth - contentLeftOffset;
		if (newContentWidth < 200) newContentWidth = 200;
		var newContentHeight = YAHOO.util.Dom.getViewportHeight() - elPrimary.offsetHeight - contentTopOffset - 3;
		if (newContentHeight < 1) newContentHeight = 1;
		if (newContentHeight > elContent.offsetHeight) 
		{
			YAHOO.util.Dom.setStyle(elContent, 'height', newContentHeight.toString() + 'px');
		}
		YAHOO.util.Dom.setStyle(elContent, 'width', newContentWidth.toString() + 'px');
		
		if (newSecondHeight < elContent.offsetHeight) newSecondHeight = elContent.offsetHeight;
		YAHOO.util.Dom.setStyle(elSecond, 'height', newSecondHeight.toString() + 'px');
				
		var newMeatballX = YAHOO.util.Dom.getViewportWidth() - elMeatball.offsetWidth - 3;
		var newMeatballY = YAHOO.util.Dom.getViewportHeight() - elMeatball.offsetHeight - 3;
		if (newMeatballX < 200) newMeatballX = 200;
		if (newMeatballY < 100) newMeatballY = 100;

		YAHOO.util.Dom.setStyle(elMeatball, 'left', newMeatballX.toString() + 'px');
		YAHOO.util.Dom.setStyle(elMeatball, 'top', newMeatballY.toString() + 'px');
		YAHOO.util.Dom.setStyle(elMeatball, 'visibility', 'visible');
		YAHOO.util.Dom.setStyle(elMeatball, "opacity", 0.5);

	}
	
Window_Standard_OnScroll =
	function()
	{
		var elPrimary = YAHOO.util.Dom.get('PrimaryNavigation');			
		var elBottom = YAHOO.util.Dom.get('AnchorDown');
		var elLimit = YAHOO.util.Dom.get('SecondaryMenu');
		var elMeatball = YAHOO.util.Dom.get('DDI');
		
		var newBottomY = YAHOO.util.Dom.getViewportHeight() - elBottom.offsetHeight + ICL.Web.ScrollHeight();
		var newBottom0 = YAHOO.util.Dom.getY(elLimit) + elLimit.offsetHeight
		if (newBottomY < YAHOO.util.Dom.getY(elLimit) + elLimit.offsetHeight) newBottomY = newBottom0;
		YAHOO.util.Dom.setY(elBottom, newBottomY);
		
		var newMeatballX = YAHOO.util.Dom.getViewportWidth() - elMeatball.offsetWidth - 3 + ICL.Web.ScrollWidth();
		var newMeatballY = YAHOO.util.Dom.getViewportHeight() - elMeatball.offsetHeight - 3 + ICL.Web.ScrollHeight();
		if (newMeatballX < 200) newMeatballX = 200;
		if (newMeatballY < 100) newMeatballY = 100;

		YAHOO.util.Dom.setStyle(elMeatball, 'left', newMeatballX.toString() + 'px');
		YAHOO.util.Dom.setStyle(elMeatball, 'top', newMeatballY.toString() + 'px');
		YAHOO.util.Dom.setStyle(elMeatball, 'visibility', 'visible');
		YAHOO.util.Dom.setStyle(elMeatball, "opacity", 0.5);

	}
	
PopupMenus_Init = 
	function(divId) 
	{

		// Animation object
		var oAnim;

		// Utility function used to setup animation for submenus

		function setupMenuAnimation(p_oMenu) {

			if(!p_oMenu.animationSetup) {

				var aItems = p_oMenu.getItemGroups();

				if(aItems && aItems[0]) {

					var i = aItems[0].length - 1;
					var oSubmenu;

					do {

						oSubmenu = p_oMenu.getItem(i).cfg.getProperty("submenu");

						if(oSubmenu) {

							oSubmenu.beforeShowEvent.subscribe(onMenuBeforeShow, oSubmenu, true);
							oSubmenu.showEvent.subscribe(onMenuShow, oSubmenu, true);

						}
	                
					}
					while(i--);
	            
				}

				p_oMenu.animationSetup = true;

			}

		}


		// "beforeshow" event handler for each submenu of the menu bar

		function onMenuBeforeShow(p_sType, p_sArgs, p_oMenu) {

			if(oAnim && oAnim.isAnimated()) {
	        
				oAnim.stop();
				oAnim = null;
	        
			}

			YAHOO.util.Dom.setStyle(this.element, "overflow", "hidden");
			YAHOO.util.Dom.setStyle(this.body, "marginTop", ("-" + this.body.offsetHeight + "px"));

		}


		// "show" event handler for each submenu of the menu bar

		function onMenuShow(p_sType, p_sArgs, p_oMenu) {

			oAnim = new YAHOO.util.Anim(
				this.body, 
				{ marginTop: { to: 0 } },
				.25, 
				YAHOO.util.Easing.easeOut
			);

			oAnim.animate();

			var me = this;
	            
			function onTween() {

				me.cfg.refireEvent("iframe");
	        
			}

			function onAnimationComplete() {

				YAHOO.util.Dom.setStyle(me.body, "marginTop", ("0px"));
				YAHOO.util.Dom.setStyle(me.element, "overflow", "visible");

				setupMenuAnimation(me);

			}
	        

			/*
				 Refire the event handler for the "iframe" 
				 configuration property with each tween so that the  
				 size and position of the iframe shim remain in sync 
				 with the menu.
			*/

			if(this.cfg.getProperty("iframe") == true) {

				oAnim.onTween.subscribe(onTween);

			}

			oAnim.onComplete.subscribe(onAnimationComplete);
	    
		}


		// "render" event handler for the menu bar

		function onMenuRender(p_sType, p_sArgs, p_oMenu) {

			setupMenuAnimation(p_oMenu);

		}


		// Instantiate and render the menu bar

		var oMenuBar = new YAHOO.widget.MenuBar(divId, { autosubmenudisplay:true, submenuhidedelay: 100, showdelay: 100, hidedelay:100, lazyload:true });


		// Subscribe to the "render" event

		oMenuBar.renderEvent.subscribe(onMenuRender, oMenuBar, true);
		oMenuBar.render();

	};

Language_OnMouseOver =
	function(e)
	{
		var elImage = YAHOO.util.Event.getTarget(e);
		elImage.src = elImage.src.replace(/\.gif/, '_over.gif');
	}
	
Language_OnMouseOut =
	function(e)
	{
		var elImage = YAHOO.util.Event.getTarget(e);
		elImage.src = elImage.src.replace(/_over/, '');
	}
	
YAHOO.util.Event.addListener(window, 'load', Window_OnLoad);