ie=document.all?1:0
ff=document.getElementById?1:0
n =document.layers?1:0
lshow=37;
var defmove=8;
var defmenuSpeed=20;

var oMenu = Array();
var offset;

if(ie){
	offset = 0;
}else{
	//offset = 5;	
	offset = -1;
}

var menuTopoffset = -2

function startMenu(){
	menuInit('divMenu0', 0);
	menuInit('divMenu1', 1);
	menuInit('divMenu2', 2);
	menuInit('divMenu3', 3);
	menuInit('divMenu4', 4);
}

//Object constructor
function makeMenu(obj,num,nest){
	nest=(!nest) ? '':'document.'+nest+'.';
	this.css=eval(obj+'.style');
	//alert("ok1");
	this.state=1;

	this.tim=null; //record timeout for each menu separately
	this.height=n?this.css.document.height:eval(obj+'.offsetHeight');
	/**/this.top=b_gettop(this);
	this.obj = obj + "Object"; 	eval(this.obj + "=this");
}

//Get's the top position.
function b_gettop(obj){
	var gleft=(ie) ? eval(obj.css.pixelTop):eval(parseInt(obj.css.top));
	return gleft;

}

/********************************************************************************

Deciding what way to move the menu (this is called onmouseover, onmouseout or onclick)

********************************************************************************/

function moveMenu(num){
	if(!oMenu[num].state){

		clearTimeout(oMenu[num].tim)
		mIn(num);
	}else{

		clearTimeout(oMenu[num].tim)
		mOut(num);
	}

}

//Menu in

function mIn(num){
	if(ie){
		if(oMenu[num].css.pixelTop>lshow-oMenu[num].height-offset){
	
			if(oMenu[num].css.pixelTop<(lshow-(oMenu[num].height)+move-offset )){
				oMenu[num].css.pixelTop=lshow-oMenu[num].height-offset;
			}else{
				oMenu[num].css.pixelTop-=move;
			}
			oMenu[num].tim=window.setTimeout("mIn("+num+")",menuSpeed);
			
		}else{
			oMenu[num].css.backgroundImage='';
			oMenu[num].state=1;
			window.clearTimeout(oMenu[num].tim);
			oMenu[num].css.zIndex=10;
		}
	}else{
		if(parseInt(oMenu[num].css.top)>lshow-oMenu[num].height-offset){
	
			if(parseInt(oMenu[num].css.top)<(lshow-(oMenu[num].height)+move-offset )){
				oMenu[num].css.top=parseInt(lshow-oMenu[num].height-offset); // + " px";
			}else{
				oMenu[num].css.top = (parseInt(oMenu[num].css.top) -move); // + " px";
			}
			oMenu[num].tim=window.setTimeout("mIn("+num+")",menuSpeed);
	
		}else{
			oMenu[num].css.zIndex=10;
			oMenu[num].css.backgroundImage='';
			window.clearTimeout(oMenu[num].tim);
			oMenu[num].state=1;
		}
	}

}

//Menu out

function mOut(num){
	//alert("moving menu out");
	//alert(eval(scrolled));
	oMenu[num].css.zIndex=100;
	if(ie){
		if(num==5){
			// se sto scrollando il menu login in home
			oMenu[num].css.backgroundImage='url(/_gfx/menu/menu_shadow_login.gif)';
			move=15;
			menuSpeed=1;
		} else {
			
			oMenu[num].css.backgroundImage='url(http://pcserver/neff/_gfx/menu/menu_shadow.gif)';
			move=defmove;
			menuSpeed=defmenuSpeed;
		}
		if((oMenu[num].css.pixelTop)<0-offset){
			
			oMenu[num].go=1
			
			if(oMenu[num].css.pixelTop>(oMenu[num].css.height)-move-offset){
				oMenu[num].css.pixelTop=oMenu[num].css.height-offset;
			}else{
				oMenu[num].css.pixelTop+=move
			}
			
	
			oMenu[num].tim=setTimeout("mOut("+num+")",menuSpeed)
	
		}else{
			clearTimeout(oMenu[num].tim);
			oMenu[num].state=0;
		}
	}else{
		if(num==5){
			// se sto scrollando il menu login in home
			oMenu[num].css.backgroundImage='url(http://www.neff.it/_gfx/menu/menu_shadow_ff_login.gif)';
			move=15;
			menuSpeed=1;
		} else {
			oMenu[num].css.backgroundImage='url(http://pcserver/neff/_gfx/menu/menu_shadow_ff.gif)';
			move=defmove;
			menuSpeed=defmenuSpeed;
		}
		if(parseInt(oMenu[num].css.top)<0-offset){
			oMenu[num].go=1
			if(parseInt(oMenu[num].css.top)>(oMenu[num].css.height)-move-offset){
				oMenu[num].css.top=parseInt(oMenu[num].css.height+0); // + " px";
			}else{
				oMenu[num].css.top = (parseInt(oMenu[num].css.top) +move); //  + " px";
			}
			
			oMenu[num].tim=window.setTimeout("mOut("+num+")",menuSpeed)
	
		}else{
			
			window.clearTimeout(oMenu[num].tim);
			oMenu[num].state=0;
	
		}
	}

}


/********************************************************************************

Inits the page, makes the menu object, moves it to the right place,

show it..

********************************************************************************/

function menuInit(div, num){
	
	temp=new makeMenu(div, num);
	oMenu.push(temp)
	scrolled=n?"window.pageYOffset":"document.body.scrollTop"
	oMenu[num].css.top=(lshow-oMenu[num].height-offset);
 	/*oMenu[num].css.top=(lshow-oMenu[num].height-offset) + " px";
	alert(oMenu[num].css.top);*/
	oMenu[num].css.visibility='visible'
}

function closeOthers(num){
	for(x=0; x<oMenu.length; x++){
		if(x!=num){
			//clear any set timeouts
			window.clearTimeout(oMenu[x].tim);
			mIn(x);
		}
	}
}
function closeAll(){
	for(x=0; x<oMenu.length; x++){
		window.clearTimeout(oMenu[x].tim);
		mIn(x);
	}
}