var timestep = 30;
var maxtime = 1500;
var menuTimer;
var timers = new Array();
var activeMenu = '';
var startPosition = 340;
var finalPosition = 600;
var menuWidth = 120;
var bgcolorStd = 'black';
var bgcolorSelected = 'black';

function getStyleById(itemid){
	return document.getElementById(itemid).style;
}

function turnActiveOff(){
	if (activeMenu != '') {
	turnOff(activeMenu, 0);
	}
}

function turnOn(id){
	if (activeMenu != id) {
		turnActiveOff();
		window.clearTimeout(menuTimer);
		getStyleById(id).background = bgcolorSelected;
		activeMenu = id;
		showsub(id);
	}
}

function turnOff(id, delayed){
	getStyleById(id).background = bgcolorStd;
	window.clearTimeout(menuTimer);
	if (delayed == 1){
		menuTimer = window.setTimeout("hidesub('" + id + "')", 3000);
	}
	else {
		//menuTimer = window.setTimeout("hidesub('" + id + "')", 100);
		hidesub(id);
	}
}

function turnAllOff(){
	var i;
	for (i=0; i<menus.length; i++){
		turnOff(menus[i], 0);	
	}
}

function showsub(id){
	var i=0;
	var finalpos = finalPosition;
	for (i=0; i < submenus[id].length; i++){
		move(submenus[id][i], startPosition);
		getStyleById(submenus[id][i]).visibility = 'visible';
		slide(submenus[id][i], 0, finalpos);
		finalpos += menuWidth;
	}
}

function hidesub(id){
	var i=0;
	for (i=0; i < submenus[id].length; i++){
		getStyleById(submenus[id][i]).visibility = 'hidden';
	}
	activeMenu = '';
	
}

/*function slide(id, time, target){
	var newpos = startPosition + target/Math.sqrt(maxtime)*Math.sqrt(time);
	if (getStyleById(id).visibility == 'visible') {
		if (target > newpos) {
			newpos = Math.floor(newpos);
			move(id, newpos);
			timers[id] = window.setTimeout("slide('" + id + "', " + (time + timestep) + ", " + target + ")",timestep);
		}
		else {
			//derni?re ?tape, on compl?te jusqu'? target 
			move(id, target);
		}
		
	}
}

function move(id, x){
	getStyleById(id).left = x + 'px';
}

function clearTimer(){
	window.clearTimeout(menuTimer);
}

	var oldpageOffset = -1;
	var menuPos = 0;
	var movetimer;
	var timestep = 30;
	var menuHeight = 80;
	var contentHeight;

	var menuStyle;
	var topLimit = 165;
	var hrefs;
	
	function init(){
		menuStyle = document.getElementById("leftMenu").style;
		var pos = document.getElementById("leftMenu").style.top;
		menuPos = parseInt(pos.substring(0, pos.length - 2));
		
		contentHeight = document.getElementById('content').clientHeight;
		if( typeof( contentHeight ) != 'number' ) {
			contentHeight = 100000;
		}
		
		hrefs = new Array(document.links.length);
		for (i=0; i<document.links.length; i++) {
			hrefs[i] = document.links[i].href;
		}
		
		window.setTimeout("testScroll()",50);
		
	}

	function placeMenu(y){
		if (y + menuHeight > contentHeight) {
			y = contentHeight - menuHeight;
		}
		
		if (y<topLimit) {
			y = topLimit;
		}
		slide2(1, menuPos, y);
	}
	
	function slide2(istep, yorigin, ytarget){
		
		var newpos = Math.ceil(ytarget - (ytarget - yorigin)/(istep*istep));
		if (Math.abs(ytarget - newpos) > 1) {
			move2(newpos);
			window.clearTimeout(movetimer);
			movetimer = window.setTimeout("slide2(" + (istep + 0.2) + ", " + yorigin  + ", " + ytarget + ")",timestep);
		}
		else {
			//derni?re ?tape, on compl?te jusqu'? target 
			move2(ytarget);
			updateLinks(ytarget);
		}
	}


	function move2(y){
		//window.status = contentHeight + ", " + menuHeight + ", " + y;
		if ((y>=topLimit) && (y < contentHeight - menuHeight)){
			menuStyle.top = y + 'px';
			menuPos = y;
		} 
	}
	
	function updateLinks(menupos){
		var texte = "";
		var href;
		var str = 'menupos=' + menupos;
		for (i=0; i<hrefs.length; i++) {
      		
      		if (hrefs[i] != null){
      			if (hrefs[i].indexOf('?') < 0) {
      				document.links[i].href = hrefs[i] + '?' + str; 
      			}
      			else {
      				document.links[i].href = hrefs[i] + '&' + str; 
      			}
      		}
		}
	}
	
	

	function testScroll() {
		var height;
		pageOffset = getScroll();
		mydate = new Date();
		
		if (window.pageYOffset != oldpageOffset) {
	
			docHeight = getDocumentHeight();
			if (contentHeight < docHeight) {
				height = contentHeight;
			}
			else {
				height = docHeight;
			}
			
			oldpageOffset = pageOffset;
			//placeMenu(pageOffset + Math.floor(height/2) - 80);
			placeMenu(topLimit + pageOffset);
		}
		
		window.setTimeout("testScroll()",100);
	}
	
	function getDocumentHeight(){
	  var myHeight = 0;
	  if( typeof( window.innerHeight ) == 'number' ) {
	    //Non-IE
	    myHeight = window.innerHeight;
	  } else if( document.documentElement && document.documentElement.clientHeight ) {
	    //IE 6+ in 'standards compliant mode'
	    myHeight = document.documentElement.clientHeight;
	  } else if( document.body && document.body.clientHeight ) {
	    //IE 4 compatible
	    myHeight = document.body.clientHeight;
	  }
	  return myHeight;
	}
	
	function getScroll() {
	  var scrOfY = 0;
	  if( typeof( window.pageYOffset ) == 'number' ) {
	    //Netscape compliant
	    scrOfY = window.pageYOffset;
	    scrOfX = window.pageXOffset;
	  } else if( document.body && document.body.scrollTop ) {
	    //DOM compliant
	    scrOfY = document.body.scrollTop;
	  } else if( document.documentElement &&
	      document.documentElement.scrollTop) {
	    //IE6 standards compliant mode
	    scrOfY = document.documentElement.scrollTop;
	  }
	  return scrOfY;
	}*/
