/* <JasobNoObfs> */
/***************************************************
 portal_globalnav.js
 * v3.2 2007-12-11
 * Copyright 2007 Interkey Networks Ltd. All Rights Reserved.
 * Use is prohibited without licence from Interkey Networks.
 * http://www.artofcoding.co.uk
***************************************************/
/* </JasobNoObfs> */
   
String.prototype.trim = function(){return this.replace( /(^\s*)|(\s*$)/g, "")};

var skynav_bMouseEnter = ( typeof( document.documentElement.onmouseenter ) != "undefined" );
var skynav_sMouseOver = ( skynav_bMouseEnter ? "mouseenter" : "mouseover" );
var skynav_sMouseOut = ( skynav_bMouseEnter ? "mouseleave" : "mouseout" );
var skynav_sOnMouseOver = ( "on" + skynav_sMouseOver );
var skynav_sOnMouseOut = ( "on" + skynav_sMouseOut );

var skynav_sIdNav            = "aoc-globalnav";
var skynav_sIdNavOuter       = "aoc-gn-outer";
var skynav_sIdNavInner       = "aoc-gn-inner";
var skynav_sIdNavLeft        = "aoc-gn-left";
var skynav_sIdNavRight       = "aoc-gn-right";
var skynav_sIdMenusContainer = "aoc-gn-lists";
var skynav_sIdMenuRight      = "aoc-gn-right";
var skynav_sClassMoreImage   = "gn-moreimage";
var skynav_sClassHasChild    = "gn-haschild";
var skynav_sClassBlocker     = "aoc-gn-blocker";

var skynav_oJSInfo                      = "skynav_oGlobalNav";
var skynav_sObjConfig                   = "config";
var skynav_sObjConfigImgSrc             = "moreImgSrc";
var skynav_sObjConfigChildDisplayEvent  = "childDisplayEvent";
var skynav_sObjConfigValueMouseover     = "mouseover";
var skynav_sObjConfigValueClick         = "click";
var skynav_sObjConfigGutterWidth        = "childGutterWidth";
var skynav_sObjConfigMarginSides        = "childMarginSides";
var skynav_sObjConfigMarginTopBot       = "childMarginTopBot";
var skynav_sObjConfigItemWidth          = "childItemWidth";
var skynav_sObjConfigColumnItems        = "childColumnItems";
var skynav_sObjConfigHideTimer          = "childHideTimer";

var skynav_sObjConfigTopBorderColour    = "topBorderColour";
var skynav_sObjConfigBottomBorderColour = "bottomBorderColour";
var skynav_sObjConfigItemDividerColour  = "itemDividerColour";
var skynav_sObjConfigBgColour           = "bgColour";
var skynav_sObjConfigTextColour         = "textColour";
var skynav_sObjConfigHoverColour        = "hoverColour";
var skynav_sObjConfigChildHoverColour   = "childHoverColour";
var skynav_sObjConfigLinkTarget         = "target";

var skynav_sObjTypes                    = "types";
var skynav_sObjTypesDefault             = "skysites";
var skynav_sObjMenus                    = "menus";
var skynav_sObjMenusLeft                = "left";
var skynav_sObjMenusRight               = "right";
var skynav_sObjMenuText                 = "text";
var skynav_sObjMenuImage                = "image";
var skynav_sObjMenuLink                 = "link";
var skynav_sObjMenuChild                = "childmenu";
var skynav_sObjMenuAction               = "action";
var skynav_sObjActionHomepage           = "homepage";

var skynav_nGutterWidth  = 15;
var skynav_nMarginSides  = 15;
var skynav_nMarginTopBot = 3;
var skynav_nItemWidth    = 105;
var skynav_nColumnItems  = 10;
var skynav_nHideTimer    = 1000;

var skynav_aParams        = new Array();
var skynav_sScriptID      = "aoc-global-nav-js";
var skynav_sParamType     = "type";

var skynav_aChildMenus = new Array();

var skynav_sCallOnComplete = "skynav_fOnComplete";

var skynav_bIE = ( ( (/MSIE \d/i).test(navigator.userAgent) ) && !window.opera );

var SkyGlobalNav = new Object();

/*****************
 OVERHEAD - start
*****************/
function skynav_fAttachEvent( sEvent, fFunction, eElement )
{
	eElement = ( eElement || window );
	if( fFunction != null )
	{
		if( window[ "attachEvent" ] ) { eElement[ "attachEvent" ]( "on" + sEvent, fFunction ); }
		else { eElement[ "addEventListener" ]( sEvent, fFunction, false ); }		
	}
}

function skynav_fGetFirstElementByTagName( eParent, sTagName ) { return eParent.getElementsByTagName( sTagName )[ 0 ]; };

function skynav_fSetInnerText( eElement, sText ) { ( eElement.innerText != null ) ? ( eElement.innerText = sText ) : ( eElement.textContent = sText ) };

function skynav_fGetId( eElement )
{
	var sId = eElement.id.trim();
	if( sId == "" )
	{
		sId = eElement.uniqueID;
		eElement.id = sId;
	}
	if( sId == null )
	{
		sId = skynav_fGetRandomIdentifier();
        eElement.id = sId;
	}
	return sId;
}

function skynav_fGetRandomIdentifier()
{
	var oDate = new Date(); 
	return ( "id" + oDate.getTime() + ( Math.random() * ( 1 + Math.random() ) ) ).replace( /\./g, "" );
}

function skynav_fGetEvent( e ){ return ( e || window.event ); };

function skynav_fCancelBubble( e )
{					  
	var oEvent = skynav_fGetEvent( e );
	oEvent.cancelBubble = true;
	if( oEvent.stopPropagation ) { oEvent.stopPropagation(); };
}

function skynav_fGetSrcElement( e )
{
	var oEvent = skynav_fGetEvent( e );
	var eSrcElement = ( oEvent.srcElement || oEvent.target );
	while( eSrcElement.nodeType != 1 ) { eSrcElement = eSrcElement.parentNode; };
    return eSrcElement;
}

function skynav_fGetCurrentStyle( eElement, sProperty )
{	 
	if( eElement.currentStyle != null ) 
	{                           
		var oCurrentStyle = eElement.currentStyle;
	    var sValue = oCurrentStyle[ sProperty ];
		if( sValue == null )
		{
			sValue = oCurrentStyle[ sProperty.replace( /(\-)(.{1})/g, function(argA,argB,argC){return argC.toUpperCase()}) ];
		}
        return sValue;
	}
	else
	{
		var oDefaultView = document.defaultView;
		if( oDefaultView.getComputedStyle ) 
		{
			var oComputedStyle = oDefaultView.getComputedStyle( eElement, null );
			if( oComputedStyle )
			{
				return oComputedStyle.getPropertyValue( sProperty );
			}
		}
	}
	return null;
}
/*****************
 OVERHEAD - end
*****************/

/*****************
 LOADTIME - start
*****************/
function skynav_fGetParam( sKey ) { return skynav_aParams[ sKey ]; };
function skynav_fSetParam( sKey, sValue ) { skynav_aParams[ sKey ] = sValue; skynav_aParams.push( sKey ); };


/**
* Replacement function written by Jeff Home to meet W3C standards
* Added by: Fatokun, A. - 29-02-2008
*/
function skynav_fProcessParams()
{
   var eScript = null;
   /*
	* find our script tag (without relying on using an id attribute)
	*/
   var allScripts = document.getElementsByTagName('script');
   for (var loop=0; loop<allScripts.length; loop++) {
	  var scriptName = allScripts[loop].src;
	  if (scriptName.match(/portal_globalnav\.js(\?.*)?$/)) {
			 eScript = allScripts[loop];
			 break;
	  }
   }

   if( eScript )
   {
	  var sSrc = eScript.src;
	  var nQuery = sSrc.lastIndexOf( "?" );
	  if( nQuery > 0 )
	  {
		 var sQuery = sSrc.slice( nQuery + 1 );
		 var aPairs = sQuery.split( "&" );
		 var nPairs = aPairs.length;
		 var fSetParam = skynav_fSetParam, aPair;
		 for( var i=0; i<nPairs; i++ )
		 {
		   aPair = aPairs[ i ].split( "=" );
		   fSetParam( aPair[ 0 ], aPair[ 1 ] );
		 }
	  }
   }
}


function skynav_fOnLoadTime()
{
	skynav_fProcessParams();
	skynav_fInitialise();
}
/*****************
 LOADTIME - end
*****************/
/*****************
 RUNTIME - start
*****************/
function skynav_fGetNavElement()
{
	return document.getElementById( skynav_sIdNav );
}

function skynav_fInitialise()
{ 		   
	var eNav = skynav_fGetNavElement();
    if( eNav )
	{
		var eUL = skynav_fGetFirstElementByTagName( eNav, "ul" );
		if( eUL )
		{
			var oJSInfo = window[ skynav_oJSInfo ];
			if( oJSInfo )
			{
				if( skynav_fSetGNObject( oJSInfo ) )
				{
					SkyGlobalNav.mStart( eNav, eUL );
				}
			}
		}
	  //  eNav.style.visibility = "visible";
	}
}

function skynav_fSetGNObject( oJSInfo )
{
	var oConfig = oJSInfo[ skynav_sObjConfig ];
	var oTypes = oJSInfo[ skynav_sObjTypes ];
	if( oConfig && oTypes )
	{
		var oType = skynav_fGetType( oTypes );
		if( oType )
		{
			var oMenus = oType[ skynav_sObjMenus ];
			if( oMenus )
			{
				var oTypeConfig = oType[ skynav_sObjConfig ];
				if( oTypeConfig )
				{
					for( var sProp in oTypeConfig )
					{
						oConfig[ sProp ] = oTypeConfig[ sProp ];
					}
				}
				var aParams = skynav_aParams;
				var nParams = aParams.length;
				for( var i=0; i<nParams; i++ )
				{
					sParam = aParams[ i ];
					oConfig[ sParam ] = aParams[ sParam ];
				}
				skynav_fAssignGNObject.call( SkyGlobalNav, oConfig, oType, oMenus );
				return true;
			}
		}
	}
	return false;
}

function skynav_fGetType( oTypes )
{
	var sType = skynav_fGetParam( skynav_sParamType );
	if( sType )
	{
		var oType = oTypes[ sType ];
		if( oType != null )
		{
			return oType;
		}
	}
	return oTypes[ skynav_sObjTypesDefault ];
}
/*****************
 RUNTIME - end
*****************/
/*****************
 GN OBJECT - start
*****************/
function skynav_fAssignGNObject( oConfig, oType, oMenus )
{
	this.sMouseOver = skynav_sMouseOver;
	this.sMouseOut = skynav_sMouseOut;
	this.sOnMouseOver = skynav_sOnMouseOver;
	this.sOnMouseOut = skynav_sOnMouseOut;
	this.oConfig = oConfig;
	this.oType = oType;
	this.oMenus = oMenus;
	this.aLeftMenu = oMenus[ skynav_sObjMenusLeft ];
	this.aRightMenu = oMenus[ skynav_sObjMenusRight ];
	this.bIsHTTPS = ( location.protocol == "https:" );
	this.sHTTPProtocol = ( this.bIsHTTPS ? "https" : "http" );
	
	this.mStart = skynav_fGNStart;
	this.mSetProperty = skynav_fGNSetProperty;
	this.mSetULProperties = skynav_fGNSetULProperties;

	this.mBuildXHTML = skynav_fGNBuildXHTML;
	this.mBuildLeft = skynav_fGNBuildLeft;
	this.mBuildRight = skynav_fGNBuildRight;
	this.mBuildMenu = skynav_fGNBuildMenu;
	this.mBuildChild = skynav_fGNBuildChild;
	this.mBuildBlocker = skynav_fGNBuildBlocker;
	this.mBuildAction = skynav_fGNBuildAction;
	this.mActionSetHomepage = skynav_fGNActionSetHomepage;
	this.mFormatChild = skynav_fGNFormatChild;
	this.mSetDisplayEvents = skynav_fGNSetDisplayEvents;
	this.mGetConfigValue = skynav_fGNGetConfigValue;
	this.mSetProtocol = skynav_fGNSetProtocol;
	
	this.nHideTimer = this.mGetConfigValue( skynav_sObjConfigHideTimer, skynav_nHideTimer );
	this.bIsMouseover = ( this.mGetConfigValue( skynav_sObjConfigChildDisplayEvent ) == skynav_sObjConfigValueMouseover );
	this.sConfigTopBorderColour = this.mGetConfigValue( skynav_sObjConfigTopBorderColour );
	this.sConfigBottomBorderColour = this.mGetConfigValue( skynav_sObjConfigBottomBorderColour );
	this.sConfigItemDividerColour = this.mGetConfigValue( skynav_sObjConfigItemDividerColour );
	this.sConfigBgColour = this.mGetConfigValue( skynav_sObjConfigBgColour );
	this.sConfigTextColour = this.mGetConfigValue( skynav_sObjConfigTextColour );
	this.sConfigHoverColour = this.mGetConfigValue( skynav_sObjConfigHoverColour );
	this.sConfigChildHoverColour = this.mGetConfigValue( skynav_sObjConfigChildHoverColour );
	
	this.sLinkTarget = this.mGetConfigValue( skynav_sObjConfigLinkTarget );
	this.bHasLinkTarget = ( this.sLinkTarget != null );
}

function skynav_fGNGetConfigValue( sKey, vDefault )
{
	var vValue = this.oConfig[ sKey ];
	if( typeof vValue != "undefined" )
	{
		var nValue = Number( vValue );
		return ( !isNaN( nValue ) ? nValue : vValue );	
	}
	return vDefault;
}

function skynav_fGNSetProtocol( sURL )
{			 
	return sURL.replace( /^https?/, this.sHTTPProtocol );
}

function skynav_fGNStart( eNav, eUL )
{
	if( this.mBuildXHTML( eNav, eUL ) )
	{
        skynav_fAttachEvent( "mousedown", skynav_fHideMenus, document );
		var fOnComplete = window[ skynav_sCallOnComplete ];
		if( typeof fOnComplete == "function" )
		{
			fOnComplete( eNav );	
		}
	}
}

function skynav_fGNBuildXHTML( eNav, eUL )
{
	var eOuter = document.getElementById( skynav_sIdNavOuter );
	if( eOuter )
	{
		var eInner = document.getElementById( skynav_sIdNavInner );
		if( eInner )
		{
			this.mSetProperty( eOuter, "borderTopColor",    this.sConfigTopBorderColour    );
			this.mSetProperty( eOuter, "borderBottomColor", this.sConfigBottomBorderColour );
			this.mSetProperty( eOuter, "backgroundColor",   this.sConfigBgColour           );
			this.mSetProperty( eInner, "borderTopColor",    this.sConfigTopBorderColour    );
			this.mSetProperty( eInner, "borderBottomColor", this.sConfigBottomBorderColour );
			this.mSetProperty( eInner, "backgroundColor",   this.sConfigBgColour           );
			this.mBuildLeft( eUL );
			this.mBuildRight( eNav );
			return true;
		}
	}
	return false;
}

function skynav_fGNBuildLeft( eUL )
{
	var aLeftMenu = this.aLeftMenu;
	if( aLeftMenu )
	{
		var nLeftMenu = aLeftMenu.length;
		if( nLeftMenu > 0 )
		{
			eUL.innerHTML = "";
			this.mSetULProperties( eUL );
			this.mBuildMenu( eUL, aLeftMenu, false );    
		}
	}
}

function skynav_fGNBuildRight( eNav )
{	
	var aRightMenu = this.aRightMenu;
	if( aRightMenu )
	{
		var nRightMenu = aRightMenu.length;
		if( nRightMenu > 0 )
		{
			var eDiv = document.createElement( "div" );
			eDiv.id = skynav_sIdMenuRight;
			var eUL = document.createElement( "ul" );
			this.mSetULProperties( eUL );
			this.mBuildMenu( eUL, aRightMenu.reverse(), false );
			eDiv.appendChild( eUL );    
			document.getElementById( skynav_sIdMenusContainer ).appendChild( eDiv );    
		}
	}
}

function skynav_fGNSetProperty( eElement, sProp, sConstant )
{	
	var sValue = sConstant;
	if( sValue ) { eElement.style[ sProp ] = sValue; };
}

function skynav_fGNSetULProperties( eUL )
{
	this.mSetProperty( eUL, "color", this.sConfigTextColour );
	this.mSetProperty( eUL, "borderColor", this.sConfigItemDividerColour );
}

function skynav_fGNBuildMenu( eUL, aMenu, bChild )    
{
	var fGetId = skynav_fGetId;
	var fSetInnerText = skynav_fSetInnerText;
	var fAttachEvent = skynav_fAttachEvent;
	var sObjMenuLink = skynav_sObjMenuLink;
	var sObjMenuImage = skynav_sObjMenuImage;
	var sObjMenuText = skynav_sObjMenuText;
	var sObjMenuChild = skynav_sObjMenuChild;
	var sObjMenuAction = skynav_sObjMenuAction;
	var nMenu = aMenu.length;
	var oItem, eItem, eLink, sChildMenu, sAction, eSpan, sHref, sSpanId, sImage, eImg, sItemId;
	for( var i=0; i<nMenu; i++ )
	{
		oItem = aMenu[ i ];
		eItem = document.createElement( "li" );
		if( !bChild )
		{
			this.mSetProperty( eItem, "borderColor", this.sConfigItemDividerColour );
		}
		this.mSetProperty( eItem, "backgroundColor", this.sConfigBgColour );

		eItem.bHasChild = false;
		eLink = document.createElement( "a" );
		sHref = oItem[ sObjMenuLink ];
		eLink.href = ( sHref ? sHref : "#" );
		if( this.bHasLinkTarget )
		{
			eLink.target = this.sLinkTarget;	
		}
		eSpan = document.createElement( "span" );
		sImage = oItem[ sObjMenuImage ];
		if( sImage )
		{
			eImg = document.createElement( "img" );
			eImg.alt = oItem[ sObjMenuText ];
			eImg.src = this.mSetProtocol( sImage );
			eSpan.appendChild( eImg );
		}
        else
		{
			fSetInnerText( eSpan, oItem[ sObjMenuText ] );
			this.mSetProperty( eSpan, "color", this.sConfigTextColour );
			eLink.sBaseColor = this.sConfigTextColour;
			eLink.sHoverColor = ( bChild ? this.sConfigChildHoverColour : this.sConfigHoverColour );
			if( ( eLink.sBaseColor != null ) && ( eLink.sHoverColor != null ) )
			{
				fAttachEvent( this.sMouseOver, skynav_fHover, eLink );
				fAttachEvent( this.sMouseOut, skynav_fHoverOut, eLink );
			}
		}
        
        sItemId = fGetId( eItem );
        sSpanId = fGetId( eSpan );
		eLink.sSpanId = sSpanId;
		eLink.sItemId = sItemId;
		
		eLink.appendChild( eSpan );
		if( bChild )
		{
			eItem.sChildId = eUL.sChildId;
			eLink.sChildId = eUL.sChildId;
		}
		sAction = oItem[ sObjMenuAction ];
		if( sAction )
		{
			this.mBuildAction( sAction, eLink );
		}
		sChildMenu = oItem[ sObjMenuChild ];
		if( sChildMenu )
		{
			this.mBuildChild( sChildMenu, eItem, eLink );
		}

		if( ( !bChild ) && ( !eItem.bHasChild ) && ( this.bIsMouseover ) )
		{
			eItem[ this.sOnMouseOver ] = skynav_fCheckAndHideMenus;
		}
		eItem.appendChild( eLink );
		eUL.appendChild( eItem );
	}
}

function skynav_fHover( e ) { skynav_fHoverSet( e, "sHoverColor", "underline" ); };
function skynav_fHoverOut( e ) { skynav_fHoverSet( e, "sBaseColor", "none" ); };
function skynav_fHoverSet( e, sColor, sDec )
{
	var eLink = skynav_fGetSrcElement( e );
	while( eLink.tagName.toLowerCase() != "a" )
	{
		eLink = eLink.parentNode;
		while( eLink.nodeType != 1 ) { eLink = eLink.parentNode; };
	}
	var eLI = document.getElementById( eLink.sItemId );
	var eSpan = document.getElementById( eLink.sSpanId );
	eLI.style.color = eSpan.style.color = eLink.style.color = eLink[ sColor ];
	eLink.style.textDecoration = sDec;
}


function skynav_fGNBuildAction( sAction, eLink )
{
	switch( sAction )
	{
		case skynav_sObjActionHomepage:
			this.mActionSetHomepage( eLink );
			break;
	}
}

function skynav_fGNActionSetHomepage( eLink )
{
	try{
		if( typeof( eLink.style.behavior ) != "undefined" )
		{
			eLink.addBehavior( "#default#homePage" );
			eLink.onclick = skynav_fSetHomepage;
		}
	}
	catch(e){};
}

function skynav_fSetHomepage()
{   
	if( typeof this.setHomePage != "undefined" )
	{ 
		try
		{ 
			this.setHomePage( window.location.href );
            event.returnValue = false;
			return false;
        } 
		catch(e){}
	}
}

function skynav_fGNBuildChild( sChildMenu, eItem, eLink )
{
	var aChildMenu = this.oMenus[ sChildMenu ];
	if( aChildMenu )
	{
		eItem.bHasChild = true;
		eItem.className = skynav_sClassHasChild;
		var sImageSrc = this.mGetConfigValue( skynav_sObjConfigImgSrc );
		if( sImageSrc )
		{
			var eArrow = document.createElement( "img" );
			eArrow.className = skynav_sClassMoreImage;
			eArrow.src = this.mSetProtocol( sImageSrc );
			eLink.appendChild( eArrow );
		}
		var eChildDiv = document.createElement( "div" );
		
		var eChildUL = document.createElement( "ul" );
        this.mSetProperty( eChildUL, "color", this.sConfigTextColour );
		this.mSetProperty( eChildUL, "backgroundColor", this.sConfigBgColour );
		
		var sChildId = skynav_fGetId( eChildUL );
		skynav_aChildMenus.push( sChildId );
		eLink.sChildId = sChildId;
		eItem.sChildId = sChildId;
		eChildUL.sChildId = sChildId;
		eChildUL.sDivId = skynav_fGetId( eChildDiv );

		var sItemId = skynav_fGetId( eItem );
		eLink.sItemId = sItemId;
		eItem.sItemId = sItemId;
		eChildUL.sItemId = sItemId;
		this.mBuildMenu( eChildUL, aChildMenu, true );
		this.mSetDisplayEvents( eLink, eChildUL );

		this.mBuildBlocker( eChildDiv );
        eChildDiv.appendChild( eChildUL );
		eItem.appendChild( eChildDiv );
		setTimeout( "SkyGlobalNav.mFormatChild( '" + eItem.sChildId + "' )", 100 );
	}
}

function skynav_fGNBuildBlocker( eChildDiv )
{
	if( skynav_bIE )
	{
		var eBlocker = document.createElement( "<iframe src='javascript:false' scrolling='no' frameborder='no'></iframe>" );
		eBlocker.className = skynav_sClassBlocker;
		eChildDiv.appendChild( eBlocker );
	}
}

function skynav_fGNFormatChild( sChildId )
{
	var nGutterWidth  = this.mGetConfigValue( skynav_sObjConfigGutterWidth,  skynav_nGutterWidth  );
	var nMarginSides  = this.mGetConfigValue( skynav_sObjConfigMarginSides,  skynav_nMarginSides  );
	var nMarginTopBot = this.mGetConfigValue( skynav_sObjConfigMarginTopBot, skynav_nMarginTopBot );
	var nItemWidth    = this.mGetConfigValue( skynav_sObjConfigItemWidth,    skynav_nItemWidth    );
	var nColumnItems  = this.mGetConfigValue( skynav_sObjConfigColumnItems,  skynav_nColumnItems  );
	
	var eUL = document.getElementById( sChildId );
	var aLIs = eUL.getElementsByTagName( "li" );
	var nLIs = aLIs.length;
	var nCol = 0;
	var nULHeight = 0;
	var nULWidth = 0;
	var nLeft, sLeft, nTop, j, eLI, nRight;
	for( var i=0; i<nLIs; )
	{
		nLeft = ( nMarginSides + ( nCol * nGutterWidth ) + ( nCol * nItemWidth ) );
		sLeft =( nLeft + "px" );
		nTop = nMarginTopBot;
		for( j=0; j<nColumnItems; j++ )
		{
			eLI = aLIs[ i ];
			if( eLI )
			{
				eLI.style.left = sLeft;
				eLI.style.top = ( nTop + "px" );
				eLI.style.width = ( nItemWidth + "px" );
				nTop += eLI.offsetHeight;
				nRight = ( nLeft + eLI.offsetWidth );
				i++;
			}
		}
		nULHeight = Math.max( nULHeight, nTop );
		nULWidth = Math.max( nULWidth, nRight );
        eUL.style.height = ( ( nULHeight + nMarginTopBot ) + "px" );
		eUL.style.width = ( ( nULWidth + nMarginSides ) + "px" );
		nCol++;
    }
	var eChildDiv = document.getElementById( eUL.sDivId );
	eChildDiv.style.height = eUL.style.height;
	eChildDiv.style.width = eUL.style.width;
}

function skynav_fGNSetDisplayEvents( eLink, eChild )
{
	var sDisplayEvent = this.mGetConfigValue( skynav_sObjConfigChildDisplayEvent );
	switch( sDisplayEvent )
	{
		case skynav_sObjConfigValueMouseover:
			eLink[ this.sOnMouseOver ] = skynav_fShowChildOver;
			eChild[ this.sOnMouseOut ] = skynav_fHideChild;
			eChild[ this.sOnMouseOver ] = skynav_fMaintainChild;
			break;
		case skynav_sObjConfigValueClick:
		default:
			eLink.onclick = skynav_fShowChildClick;
			
	}
    eLink.onmousedown = skynav_fCancelBubble;
	eChild.onmousedown = skynav_fCancelBubble;
}
/*****************
 GN OBJECT - end
*****************/
/*****************
 MENU BEHAVIOUR - start
*****************/
function skynav_fShowChildClick( e )
{
	skynav_fShowChild.call( this );
	var oEvent = ( e || window.event );
	oEvent.returnValue = false;
	return false;
}

function skynav_fShowChild()
{
	skynav_fHideMenus();
	var eChild = document.getElementById( this.sChildId );
    eChildDiv = document.getElementById( eChild.sDivId );
	var eNav = document.getElementById( skynav_sIdNavInner );
	
	var nNavWidth = eNav.offsetWidth; 
	
	var eParent = document.getElementById( this.sItemId );
    var nParentLeft = eParent.offsetLeft;
	
	var nDropMenuWidth = eChildDiv.offsetWidth;
	var nWidthDiff = ( nNavWidth - nDropMenuWidth );
	var nMenuLeft = 0;
	
	if( nWidthDiff < nParentLeft )
	{
		var eLeft = document.getElementById( skynav_sIdNavLeft );
		var eRight = document.getElementById( skynav_sIdNavRight );
		var nRightOffset = parseInt( skynav_fGetCurrentStyle( eRight, "right" ) );
		if( isNaN( nRightOffset ) ) { nRightOffset = 0; };
		nMenuLeft =( nWidthDiff - nParentLeft - ( nRightOffset + eLeft.offsetLeft ) );   
	}
	eChildDiv.style.left = ( nMenuLeft + "px" );
}

function skynav_fShowChildOver()
{
	skynav_fMaintainChild.call( this );
	skynav_fShowChild.call( this );	
}

function skynav_fMaintainChild()
{
	var eChild = document.getElementById( this.sChildId );
	clearTimeout( eChild.oTimer );
	eChild.oTimer = null;
}

function skynav_fHideChild( e )
{
	this.oTimer = setTimeout( "skynav_fKillChild('" + this.sChildId + "')", SkyGlobalNav.nHideTimer );
}

function skynav_fKillChild( sChildId )
{
	eChild = document.getElementById( sChildId );
	if( eChild.oTimer )
	{
		clearTimeout( eChild.oTimer );
		eChild.oTimer = null;
	}
	eChildDiv = document.getElementById( eChild.sDivId );
	eChildDiv.style.left = "-2000em";
}

function skynav_fHideMenus()
{
	var aChildMenus = skynav_aChildMenus;
	var nChildMenus = aChildMenus.length;
	var eChild;
	for( var i=0; i<nChildMenus; i++)
	{
		skynav_fKillChild( aChildMenus[ i ] );
	}
}
				
function skynav_fCheckAndHideMenus( e )
{
	var oEvent = skynav_fGetEvent( e );
	if( ( oEvent.target != null ) && ( oEvent.target != oEvent.currentTarget ) )
	{
		return;
	}
	skynav_fHideMenus();
}
/*****************
 MENU BEHAVIOUR - end
*****************/
skynav_fOnLoadTime();

