
function menuPreloader(lang){
	MM_preloadImages(
		'../gfx/menu/home_over_'+lang+'.gif',
		'../gfx/menu/prodotti_over_'+lang+'.gif',
		'../gfx/menu/news_over_'+lang+'.gif',
		'../gfx/menu/azienda_over_'+lang+'.gif',
		'../gfx/menu/servizi_over_'+lang+'.gif',
		'../gfx/menu/filo-diretto_over_'+lang+'.gif'
	)
}

var ie=document.all?1:0
var ff=document.getElementById?1:0
var n =document.layers?1:0
//lshow=37;
lshow=0;
var defmove=8;
var defmenuSpeed=20;

var oMenu = Array();
var offset;
var offsetOut;

if(ie){
	offset = 0;
	offsetOut = -23;
}else{
	offset = 0;
	offsetOut = -21;
}


//var menuTopoffset = -2;
var menuTopoffset = 20;
var menuInitialized = false;

function startMenu(){
	menuInit('divMenu0', 0);
	menuInit('divMenu1', 1);
	menuInit('divMenu2', 2);
	menuInit('divMenu3', 3);
	menuInit('divMenu4', 4);
	menuInit('divMenu5', 5);
	menuInitialized = true;
}


function menuInit(div, num){
	temp=new makeMenu(div, num);
	oMenu.push(temp)
	scrolled=n?"window.pageYOffset":"document.body.scrollTop"
 	if(ff){
		oMenu[num].css.top=(lshow-oMenu[num].height-offset) + "px";
	}else{
		oMenu[num].css.top=lshow-oMenu[num].height-offset;
	}
	oMenu[num].css.visibility='visible'
}


//Object constructor
function makeMenu(obj,num,nest){
	if(ff){
		var divObj = document.getElementById(obj);
		nest=(!nest) ? '':'document.'+nest+'.';
		this.css=divObj.style;
		this.state=1;
		this.tim=null; //record timeout for each menu separately
		this.height=divObj.offsetHeight;
		this.top=b_gettop(this);
		this.obj = obj + "Object"; 	
		eval(this.obj + "=this");
	}else{
		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));
	if(isNaN(gleft)){
		gleft = 0;
	}
	return gleft;

}

/********************************************************************************

Deciding what way to move the menu (this is called onmouseover, onmouseout or onclick)

********************************************************************************/


function moveMenu(num, state){
	if(!menuInitialized){return;}
	if(state!=undefined){
		oMenu[num].state = state;	
	}
	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].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(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;
			window.clearTimeout(oMenu[num].tim);
			oMenu[num].state=1;
		}
	}

}

//Menu out

function mOut(num){
	if(!menuInitialized){return;}
	oMenu[num].css.zIndex=50;
	if(ie){
		move=defmove;
		menuSpeed=defmenuSpeed;
	
		if((oMenu[num].css.pixelTop)<0-offsetOut){
			
			oMenu[num].go=1
			
			if(oMenu[num].css.pixelTop>(oMenu[num].css.height)-move-offsetOut){
				oMenu[num].css.pixelTop=oMenu[num].css.height-offsetOut;
			}else{
				oMenu[num].css.pixelTop+=move
			}
			
	
			oMenu[num].tim=setTimeout("mOut("+num+")",menuSpeed)
	
		}else{
			clearTimeout(oMenu[num].tim);
			oMenu[num].state=0;
		}
	}else{
		move=defmove;
		menuSpeed=defmenuSpeed;
		
		if(parseInt(oMenu[num].css.top)<0-offsetOut){
			
			oMenu[num].go=1
			if(oMenu[num].css.top>(oMenu[num].css.height)-move-offsetOut){
				oMenu[num].css.top=parseInt(oMenu[num].css.height-offsetOut) + "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;
	
		}
	}

}


function closeOthers(num){
	if(!menuInitialized){return;}
	for(x=0; x<oMenu.length; x++){
		if(x!=num){
			//clear any set timeouts
			window.clearTimeout(oMenu[x].tim);
			mIn(x);
		}
	}
}


function closeAll(){
	if(!menuInitialized){return;}
	for(x=0; x<oMenu.length; x++){
		window.clearTimeout(oMenu[x].tim);
		//mIn(x);
		oMenu[x].tim=window.setTimeout("mIn("+x+")",200);
	}
}