 /*
 *  Any javascript code necessary to power the top_nav_include file, goes here
 *
 */
var M_bMenuItemShow = false;
var M_arrTopMenu = new Array( new Array ( "dvNavIndumentaria", "imgIndumentariaOff", false, true),
		new Array ( "dvNavDeportes", "imgDeportesOff", false, true),
		new Array ( "dvNavTecnologia", "imgTecnologiaOff", false, false),
		new Array ( "dvNavExpediciones", "imgExpedicionesOff", false, false),	
		new Array ( "dvNavTeam", "imgTeamOff", false, false),
		new Array ( "dvNavPuntos", "imgPuntosOff", false, false),
		new Array ( "dvNavContacto", "imgContactoOff", false, false)  
	);

var M_intArrImgOff						= 0;
var M_intArrImgOn						= 1;
var M_bIsOver							= 2;
var M_bIsOverridePosition				= 3;
var M_intArrTogglePosition				= 4;

var M_bIsMInitialized 					= false;
var M_pntShowDropdowns					= function(){};
var M_pntHideDropdowns					= function(){};
var M_pntHolsterShowDropdowns			= function(){};
var M_pntHolsterHideDropdowns			= function(){};
var M_pntPageLevelFunctions				= function(){};
var M_strTNPageName						= "TopNav.js";

window.onresize = ReloadWindow;

/* This code runs if a user resizes their window. */
function ReloadWindow() {
	try {
		if( M_bIsMInitialized ) {
			PositionTopNavDropdownMenus();
		}
	}
	catch( e ) {
		HandleError( "ReloadWindow", e, M_strTNPageName );
	}
}


/* This method iterates through the items in our TopMenu
   array, instantiates 'toggler' objects, retracts them and adds them to our array*/
function InitializeTopNav(resultingPage) {
	try {
		// Initialize the top nav menu items
		for( var i=0; i < M_arrTopMenu.length; i++ ) {
			var dvToggle = new fx.Height(M_arrTopMenu[i][M_intArrImgOff], {duration: 400});
			dvToggle.hide();
			
			M_arrTopMenu[i][M_intArrTogglePosition] = dvToggle;
			
			var objLoc = GetObjectPosition( M_arrTopMenu[i][M_intArrImgOn] );
			SetObjectPosition(M_arrTopMenu[i][M_intArrImgOff], objLoc.x, objLoc.y);
		}

		PositionTopNavDropdownMenus();
		
		
		M_bIsMInitialized = true;
	}
	catch( e ) {
		HandleError( "InitializeTopNav", e, M_strTNPageName );
	}
}

function PositionTopNavDropdownMenus() {
	try {
		// Initialize the top nav menu items
		for( var i=0; i < M_arrTopMenu.length; i++ ) {
			var objLoc = GetObjectPosition( M_arrTopMenu[i][M_intArrImgOn] );
			SetObjectPosition(M_arrTopMenu[i][M_intArrImgOff], objLoc.x, (M_arrTopMenu[i][M_bIsOverridePosition] ? objLoc.y-3 : objLoc.y) );
		}
	}
	catch( e ) {
		HandleError( "PositionTopNavDropdownMenus", e, M_strTNPageName );
	}
}

/* Gets the position of the image we are overlaying, closes anyother open menu windows and displays the one the user is mousing over*/
function ShowMenuItem( iIndex ) {
	try {
		// If we're not initialized - leave
		if( !M_bIsMInitialized ) return;

		document.getElementById(M_arrTopMenu[iIndex][M_intArrImgOff]).style.display = "block";
		M_arrTopMenu[iIndex][M_intArrTogglePosition].toggle();

		// If there are any dropdowns to be hidden on the page, this needs to be overridden at the page level
		SetTimeout( 'M_pntHideDropdowns();', .5 );

	}
	catch( e ) {
		HandleError( "ShowMenuItem", e, M_strTNPageName );
	}
}


function ChangeMenuItem( iIndex ) {
	//document.getElementById('imgDeportesOff').src='../imagenes/menu2_over.jpg'
	try {
		// If we're not initialized - leave
		if( !M_bIsMInitialized ) return;

		document.getElementById(M_arrTopMenu[iIndex][M_intArrImgOn]).src='../imagenes/menu' + (iIndex+1) + '_over.jpg';
		/*M_arrTopMenu[iIndex][M_intArrTogglePosition].toggle();

		// If there are any dropdowns to be hidden on the page, this needs to be overridden at the page level
		SetTimeout( 'M_pntHideDropdowns();', .5 );*/

	}
	catch( e ) {
		HandleError( "ChangeMenuItem", e, M_strTNPageName );
	}
}

/* Tries to hide a menu item that has been mousedoff.  Runs a few checks before it does anything.
Although the timer is set to 0, it causes enough of a delay to make this work smoothly. */
function HideMenuItem( iIndex ) {
	try {
		// If we're not initialized - leave
		if( !M_bIsMInitialized ) { return; }


		/* If we are still off the window and its not in transition, hide it.  If window is in transition, make recursive calls to ourselves
		   until layer is fully toggled */
		SetTimeout( "if(!M_arrTopMenu["+iIndex +"]["+M_bIsOver+"]){ CloseMenuItem("+iIndex+"); }", 0 );
	}
	catch( e ) {
		HandleError( "HideMenuItem", e, M_strTNPageName );
	}
}

/* Skip the checks, just close the layer*/
function CloseMenuItem( iIndex ) {
	try {
		if( !M_bIsMInitialized ) return;
		
		M_arrTopMenu[iIndex][M_intArrTogglePosition].clearTimer();
		M_arrTopMenu[iIndex][M_intArrTogglePosition].custom(0,0);
		M_arrTopMenu[iIndex][M_intArrTogglePosition].hide();

		// Safari fix - set display to none
		document.getElementById(M_arrTopMenu[iIndex][M_intArrImgOff]).style.display = "none";

		M_pntShowDropdowns();
	}
	catch( e ) {
		HandleError( "CloseMenuItem", e, M_strTNPageName );
	}
}

/* To get around mouseoff events firing within our div tag, we turn this flag on and off to let us know if we are really off the div tag*/
function KeepMenuItemOpen( intIndex ) {
	try {
		M_bMenuItemShow = true;
		M_arrTopMenu[intIndex][M_bIsOver] = true;
	}
	catch( e ) {
		HandleError( "KeepMenuItemOpen", e, M_strTNPageName );
	}
}


/* Function gets called when you mouse off the options layer. */
function LetMenuItemClose( intIndex ) {
	try {
		M_bMenuItemShow = false;
		M_arrTopMenu[intIndex][M_bIsOver] = false;
		HideMenuItem( intIndex );
	}
	catch( e ) {
		HandleError( "LetMenuItemClose", e, M_strTNPageName );
	}
}