// global variables
layerOpened = "";
activeEntry = 0;
activeSubentry = 0;
menuDiv = "";


//--------------------------------------------------------------------------------------------------------
// menu functions
//--------------------------------------------------------------------------------------------------------
function showMenu() {
	layerID = 'menu';
	
	if (isNS4) {
		/*
		layer = eval("document." + layerID);
		layer.visibility = "show";
		*/
	} else if (isIE4Plus) {
		layer = eval(layerID);
		layer.style.visibility = "visible";
	} else if (isNS6Plus) {		
		layer = document.getElementById(layerID);
		layer.style.visibility = "visible";
	} else {
		// do nothing
	}
}


function rollOverEntry(entryID)
{
	if (entryID != activeEntry)
	{
		imgName = 'menu' + entryID + 'ParentImg';
		
		currentFilename = document.images[imgName].src;
		newFilename = currentFilename.substring(0, currentFilename.indexOf(".gif")) + '_roll.gif';
		
		document.images[imgName].src = newFilename;
	}
}


function rollOutEntry(entryID)
{
	if (entryID != activeEntry)
	{
		imgName = 'menu' + entryID + 'ParentImg';
		
		currentFilename = document.images[imgName].src;
		newFilename = currentFilename.substring(0, currentFilename.indexOf("_roll")) + '.gif';
		
		document.images[imgName].src = newFilename;
	}
}



function setActiveEntry(entryID)
{
	activeImgName = 'menu' + activeEntry + 'ParentImg';
	newImgName = 'menu' + entryID + 'ParentImg';
	imgPath = '../img/menu/';
	
	// inactive old entry
	if (document.images[activeImgName])
	{
		currentFilename = document.images[activeImgName].src;
		newFilename = currentFilename.substring(0, currentFilename.indexOf("_roll")) + '.gif';
		
		document.images[activeImgName].src = newFilename;
	}
	
	// active current entry
	if (document.images[newImgName])
	{
		currentFilename = document.images[newImgName].src;
		newFilename = currentFilename.substring(0, currentFilename.indexOf(".gif")) + '_roll.gif';
		
		document.images[newImgName].src = newFilename;
	}
	
	// update active entry var
	activeEntry = entryID;
}


function setActiveSubentry(subentryID)
{
	// inactive old bullet
	if (activeSubentry != 0)
	{
		document.images['menu' + activeEntry + 'ChildImg' + activeSubentry].src = "../img/menu/black_arrow.gif";
	}
	
	// active current bullet
	if (subentryID != 0)
	{
		document.images['menu' + activeEntry + 'ChildImg' + subentryID].src = "../img/menu/orange_arrow.gif";
	}
	
	// update active bullet
	activeSubentry = subentryID;
}


function openMenu(entryID, subentryID) {
	if (entryID != -1)
		setActiveEntry(entryID);

	if (subentryID == 0)
	{
		expandLayer('menu' + entryID + 'Child');
	}
	else if (subentryID > 0)
	{
		setActiveSubentry(subentryID);
		expandLayer('menu' + entryID + 'Child');
	}
	else
	{
		// do nothing
	}
}




// get layer index for NS4
function getIndex(layerID)
{
	/*
	var index = null;
	
	alert(document.layers.length);
	for (i = 0; i < document.layers.length; i++)
	{
    	layer = document.layers[i];
		if (layer.id == layerID)
		{
      		index = i;
      		break;
    	}
	}
	return index;
	*/
}


// arrangeList menu for NS4
function arrangeList()
{
	/*
	var nextY = document.layers[firstLayerIndex].pageY + document.layers[firstLayerIndex].document.height;
	for (i = firstLayerIndex + 1; i < document.layers.length; i++)
	{
		layer = document.layers[i];
		if (layer.visibility != "hide")
		{
			layer.pageY = nextY;
			nextY += layer.document.height;
		}
	}
	*/
}


// show all layers for NS4
function showAllLayers()
{
	/*
	for (i = firstLayerIndex; i < document.layers.length; i++)
	{
		layer = document.layers[i];
		layer.visibility = "show";
	}
	*/
}


function expandLayer(layerID)
{
	if (isNS4)
	{
		/*
		layer = eval("document." + layerID);
		
		if (layer.visibility == "hide")
		{
			layer.visibility = "show";
		}
		else
		{
			layer.visibility = "hide";
		}
  		arrangeList();
		*/
	}
	else if(isIE4Plus)
	{
		layer = eval(layerID);
		
		if (layer.style.display == "none")
		{
			layer.style.display = "block";
		}
		else
		{
			layer.style.display = "none";
		}
		
		
		// collapse expanded layer
		if ((layerID != layerOpened) && (layerOpened != ""))
		{
			eval(layerOpened).style.display = "none";
		}
		
		
		// update expanded layer
		layerOpened = layerID;
	}
	else if(isNS6Plus)
	{		
		layer = document.getElementById(layerID);
		if (layer == null)
		{
			return;
		}
		
		if (layer.style.display == "none")
		{
			layer.style.display = "block";
		}
		else
		{
			layer.style.display = "none";
		}
		//alert(layer.style.display);
		
		
		// collapse expanded layer
		if ((layerID != layerOpened) && (layerOpened != ""))
		{
			layer = document.getElementById(layerOpened);
			layer.style.display = "none";
		}
		
		
		// update expanded layer
		layerOpened = layerID;
	}
	else
	{
		// do nothing
	}
}


function initMenu()
{
	if (isNS4)
	{
		/*
		alert(document.layers.length);
		for (i = 0; i < document.layers.length; i++)
		{
			layer = document.layers[i];
			if (layer.id.indexOf("Child") != -1) 
				layer.visibility = "hide";
		}
		arrangeList();
		*/
	}
	else if (isIE4Plus)
	{
		tempColl = document.all.tags("DIV");
		
		for (i = 0; i < tempColl.length; i++)
		{
			if (tempColl(i).className == "menuChild")
				tempColl(i).style.display = "none";
		}
	}
	else if (isNS6Plus)
	{
		/*
		divColl = document.getElementsByTagName("DIV");
		
		for (i = 0; i < divColl.length; i++)
		{
			if (divColl[i].className == "menuChild")
				divColl[i].style.display = "none";
		}
		*/
	}
	else
	{
		// do nothing
	}
	
	initLayerScrolling();
}




function moveMenu()
{
	if(isIE4Plus)
	{
		currentY = menuDiv.style.pixelTop;
		scrollTop = document.body.scrollTop;
	}
	else if(isNS4)
	{
		/*
		currentY = menuDiv.top;
		scrollTop = window.pageYOffset;
		*/
	}
	else if(isNS6Plus)
	{
		currentY = menuDiv.style.top; //fonctionne
		scrollTop = window.pageYOffset; //fonctionne
	}
	var newTargetY	= scrollTop + topMargin //fonctionne
	
	if ( currentY != newTargetY ) {
		if ( newTargetY != targetY ) {
			targetY = newTargetY;
			slideInit();
		}
		slide()
	}
}


function slide()
{
	currentY = parseInt(currentY);
	var now	= new Date( )
	var newY	= A * Math.sin( B * ( now.getTime( ) - C ) ) + D
	newY		= Math.round( newY )
	
	if (A > 0)
	{
		if (newY > currentY)
		{
			if (isIE4Plus)
			{
				menuDiv.style.pixelTop = newY;
			}
			else if(isNS4)
			{
				//menuDiv.top = newY;
			}
			else if(isNS6Plus)
			{
				menuDiv.style.top = newY;
			}
		}
	}
	else if (A < 0)
	{
		if (newY < currentY)
		{
			if (isIE4Plus)
			{
				menuDiv.style.pixelTop = newY;
			}
			else if(isNS4)
			{
				//menuDiv.top = newY;
			}
			else if(isNS6Plus)
			{
				menuDiv.style.top = newY;
			}
		}
	}
}


function slideInit()
{
	var now	= new Date( )
	
	currentY = parseInt(currentY);
	A = targetY - currentY   // fonctionne
	B = Math.PI / ( 2 * slideTime )   // fonctionne
	C = now.getTime( )   // fonctionne
	
	// fonctionne
	if (Math.abs(A) > maxDiff) 
	{
		D = A > 0 ? targetY - maxDiff : targetY + maxDiff
		A = A > 0 ? maxDiff : -maxDiff
	}
	else
	{
		D = currentY
	}
}


function initLayerScrolling()
{
	currentY = 25;
	scrollTop = 0;
	topMargin = 25;
	callRate = 10;
	slideTime = 1200;
	targetY = 25;
	A = 0;
	B = 0;
	C = 0;
	D = 0;
	
	if(isNS4)
	{
		/*
		maxDiff = window.innerHeight;
		menuDiv = document.layers.menu;
		*/
	}
	else if(isNS6Plus)
	{
		maxDiff = 574;
		menuDiv = document.getElementById('menu');
	}
	else if(isIE4Plus)
	{
		maxDiff = document.body.clientHeight;
		menuDiv = document.all.menu;
	}
	else
	{
		// do nothing
	}
	
	// move menu
	command = "moveMenu()";
	setInterval(eval('"' + command + '"'), callRate);
}
