function  ClassMenu(n,at,t){
	this.idmenu = thismenu.length;
	thismenu.push(this);
	
	this.nome = n;
	this.at=at;
	
	//setando tipo padrão do menu
	if(!t)t='h';
	this.tipo=t;

	//itens
	this.menu = Array();//array para armazenar de qual menu o item faz parte
	this.id = Array();//array onde será armazenado os ids de todos os itens
	this.tip = Array();//array onde será armazenado o tipo dos itens do menu se é "item do menu" = (undefined ou 0)  ou apenas uma "legenda" = 1 ou "titulo" = 2
	this.num = Array();//array de numeração de itens do menu por nivel
	this.idp = Array();//array onde sera armazenado os pais de cada item
	this.div = Array();//array onde sera armazenados todos os divs dos itens do menu document.createElement("DIV"); 
	this.cai = Array();//array onde sera armazenados todas as caixas para cada item do menu divs dos itens do menu document.createElement("DIV"); 
	this.txt = Array();//array de texto de cada item do menu
	this.txtob = Array();//objetos onde ficarao os textos dos menus <div></div>
	this.lin = Array();//links dos menus
	this.linob = Array();//objetos links dos menus <a></a>
	this.tar = Array();//targets dos menus (ondes eles abrirão frame,iframe ou _blank etc)
	this.fil = Array();//array onde sera aramzenados os submenus de cada item
	this.set = Array();//array de setas
	this.niv = Array();//array de nivel
	this.vis = Array();//marcar se é para ocultar o item ou não (para cada item por isto é um array)
	this.cont = Array();//array de objetos containers onde ficará os items de cada nivel
	this.acc = Array();//array de teclas de atalho;
	this.ico = Array()//array de icones dos itens do menu
	this.img = Array()//array de imagens que aparecem após os textos dos itens do menu

	//prop menu principal
	this.id[this.nome]=this.nome;
	this.niv[this.nome]=0;
	
	//css eventos
	this.evtcss = Array();

	//propriedades eventos
	this.evtpro = Array();
	
	//Flags
	this.ativ = null; //guarda o ultimo item ativo
	this.allvis = null;
	this.evtopen=1;//1=over , 2=click , 3=doubleclick
	this.tmpshow=0;//Em milisegundos
	this.tmphide=500;//Em milisegundos
	this.tmphideall=1000;//Em milisegundos
	this.padding=0;//
	
	/*----------------------
	|Configurações do menu |
	----------------------*/
	this.conf = Array();//Onde será armazenadas todas as propriedades de cada item do menu
	
	this.menuconf('evtopen','over');
	this.menuconf('tipo',this.tipo);
	//this.menuconf('tipo','h');
	this.menuconf('align','b');//alinhamento
	
	//configurando setas do menu
	this.menuconf('setaright','seta_r.gif');
	this.menuconf('setabottom','seta_b.gif');
	this.menuconf('setatop','seta_t.gif');
	this.menuconf('setaleft','seta_l.gif');
	
	//configurando css
	this.menuconf('cssleg','menu_leg');
	this.menuconf('csstit','menu_tit');
	this.menuconf('cssnormal','menu');
	this.menuconf('cssover','menu_over');
	this.menuconf('cssclick','menu_click');

	//this.menuconf('csstext','menu_txt');//não existe mais
	//this.menuconf('subcsstext','sub_menu_txt');//não existe mais
	
	//configurando das caixas do menu
	//this.menuconf('cssbox','menu_box');
	
	this.menuconf('padding','0px');//margem
	this.menuconf('border','1px');//borda do menu
	this.menuconf('borderbox','1px');//borda caixa dos itens  menu
	
	this.menuconf('iconwidth','15px');//largura do icone
	this.menuconf('iconheight','15px');//altura do icone

	this.menuconf('imgwidth','15px');//largura da imagem que aparece apos o texto do menu
	this.menuconf('imgheight','15px');//altura da imagem que aparece apos o texto do menu

	this.menuconf('width','100px');//largura dos itens do menu
	this.menuconf('height','25px');//altura dos itens do menu
	//this.menuconf('subwidth','100px');//tamnho dos subitens do menu
	//this.menuconf('widthbox','100px');
	this.menuconf('offsetx',0);
	this.menuconf('offsety',0);

	/*-----------------------------------
	Setando flags
	-----------------------------------*/
	this.menuconf('sidetxt',false);//configura se abrira ao lado do texto ou se abrira ao lado da caixa do item do menu
	this.menuconf('showboxitem',true);//se aplica o css nas caixas de cada item ou não
	this.menuconf('showbox',true);//se aplica o css nos containers de cada item ou não
	this.menuconf('showicon',false);//se mostra icones ou não
	this.menuconf('showseta',true);//se mostra as setas para submenus
	this.menuconf('showborder',true);//se mostra as bordas
	this.menuconf('showborderbox',true);//se mostra as bordas das caixas de itens do menu

	/*
	
	men.menuconf('subcssnormal','sub_menu');
	men.menuconf('subcssover','sub_menu_over');
	men.menuconf('subcssclick','sub_menu_click');
	
	men.menuconf('subcssnormal','sub_menu','2');
	men.menuconf('subcssover','menu_over','2');
	men.menuconf('subcssclick','menu_click','2');
	
	men.menuconf('subcssnormal','sub_menu','2_1');
	men.menuconf('subcssover','sub_menu_over','2_1');
	men.menuconf('subcssclick','sub_menu_click','2_1');
	
	men.menuconf('subcssnormal','menu','2_1_1');
	men.menuconf('subcssover','menu_over','2_1_1');
	men.menuconf('subcssclick','menu_click','2_1_1');
	
	men.menuconf('subcssbox','menu_box2');
	
	men.menuconf('cssbox','menu_box2','2');
	men.menuconf('subcssbox','menu_box1','2');
	
	this.menuconf('tipo','h','1');
	this.menuconf('align','b','1');

	this.menuconf('width','200px','2');
	this.menuconf('width','200px','1_2');
	
	
	this.menuconf('align','l','2_1_1');
	this.menuconf('align','r','2_1_1_1');
	
	this.menuconf('tipo','h','1_3');
	
	men.menuconf('incrightx',-10);
	men.menuconf('incrighty',10);
	
	men.menuconf('incleftx',-10);
	men.menuconf('inclefty',10);
	
	men.menuconf('incbottomx',10);
	men.menuconf('incbottomy',-10);
	
	men.menuconf('inctopx',10);
	men.menuconf('inctopy',10);
	*/	
		
}

ClassMenu.prototype.menuconf=function(p,v,id){
	if(!id)id=this.nome;
	//if(id!=this.nome)id = id + '_' + this.nome;
	if(this.conf[id]==undefined)this.conf[id] = Array();
	this.conf[id][p]=v;
}

ClassMenu.prototype.add=function(id,idp,txt,lin){
	if(idp==null || idp=='' )idp=this.nome;
	this.id[id]=id;
	this.idp[id]=idp;
	this.txt[id]=txt;
	this.lin[id]=lin;
	this.niv[id] = 1;
	this.menu[id] = this.nome;
	
	if(this.conf[id]==undefined)this.conf[id] = Array();
	
	if(idp!=null){
		if(this.fil[idp]==undefined)this.fil[idp]=Array();
		this.fil[idp].push(id);
		this.niv[id] = this.niv[idp]+1;
	}

	this.num[id] = this.fil[idp].length;
	
}

ClassMenu.prototype.leg=function(id,idp,txt){
	if(idp==null || idp=='' )idp=this.nome;
	this.tip[id] = 1;//setando tipo do item para legenda
	this.id[id]=id;
	this.idp[id]=idp;
	this.txt[id]=txt;
	this.niv[id] = 1;
	this.menu[id] = this.nome;
	
	if(this.conf[id]==undefined)this.conf[id] = Array();
	
	if(idp!=null){
		if(this.fil[idp]==undefined)this.fil[idp]=Array();
		this.fil[idp].push(id);
		this.niv[id] = this.niv[idp]+1;
	}
	this.num[id] = this.fil[idp].length;
	
}

//Criandos os itens do menu
ClassMenu.prototype.newitem=function(id){
	if(id!=this.nome){
		//Criando itens do menu
		this.div[id]=newDiv(id,this.cont[this.idp[id]]);
		this.div[id].style.position='absolute';//aqui
		this.div[id].style.overflow='hidden';

		/*----------------------------
		Criando area do texto (link)
		----------------------------*/
		this.txtob[id] = newDiv('txt_'+this.nome+'_'+id,this.div[id]);
		this.txtob[id].id='txt_'+this.nome+'_'+id
		this.txtob[id].name='txt_'+this.nome+'_'+id
		this.txtob[id].className=this.conf[id]['cssnormal'];
		this.txtob[id].style.position='absolute';
		this.txtob[id].style.overflow='visible';
		
		this.txtob[id].style.width='auto';
		//this.txtob[id].style.height='15px';
		this.txtob[id].style.left='0px';
		this.txtob[id].style.borderWidth='0px';
		this.txtob[id].style.borderColor='green';
		this.txtob[id].style.borderStyle='solid';
		this.txtob[id].style.paddingLeft='4px';
		
		if(this.conf[id]['icon'])this.txtob[id].style.paddingLeft=  (parseInt(this.conf[id]['iconwidth'])+4) +'px';

		if(this.conf[id]['accesskey']!=undefined)this.acc[this.conf[id]['accesskey'].toUpperCase()] = id;
		if(this.txt[id])this.txtob[id].innerHTML = this.txt[id];
		
		
		
		/*--------------------------------------
		| incluindo icones caso exista         |
		--------------------------------------*/
		if(this.conf[id]['icon']){
			this.ico[id] = newDiv('ico_'+ this.nome+'+'+id,this.div[id] );//div icone dentro 
			this.ico[id].id='ico_'+this.nome+'_'+id
			this.ico[id].name='ico_'+this.nome+'_'+id
			this.ico[id].style.position='absolute';
			this.ico[id].style.overflow='visible';		
			this.ico[id].style.visibility = 'inherit';
			this.ico[id].style.width=parseInt(this.conf[id]['iconwidth']) + 'px';		
			this.ico[id].style.height='auto';	
			//this.ico[id].style.verticalAlign='middle';	
			this.ico[id].style.left='0px';		
			this.ico[id].style.top=(parseInt(this.conf[id]['height'])/2) + 'px';		
			this.ico[id].style.borderWidth='0px';
			this.ico[id].style.borderColor='red';
			this.ico[id].style.borderStyle='solid';
			this.ico[id].innerHTML='<img src="'+this.conf[id]['icon']+'" style="position:relative;top:-'+(parseInt(this.conf[id]['iconheight'])/2)+'px;">';
		}

		/*--------------------------------------
		| incluindo imagens caso exista        |
		--------------------------------------*/
		if(this.conf[id]['img']){
			this.img[id] = newDiv('img_'+this.nome+'_'+id,this.div[id] );//div imagem dentro 
			this.img[id].id='img_'+this.nome+'_'+id
			this.img[id].name='img_'+this.nome+'_'+id
			this.img[id].style.position='absolute';
			this.img[id].style.overflow='visible';		
			this.img[id].style.visibility = 'inherit';
			this.img[id].style.width=parseInt(this.conf[id]['imgwidth']) + 'px';		
			this.img[id].style.height='auto';	
			//this.img[id].style.verticalAlign='middle';	
			this.img[id].style.right='0px';		
			this.img[id].style.top=(parseInt(this.conf[id]['height'])/2)+'px';		
			this.img[id].style.borderWidth='0px';
			this.img[id].style.borderColor='red';
			this.img[id].style.borderStyle='solid';
			this.img[id].innerHTML='<img src="'+this.conf[id]['img']+'" style="position:relative;top:-'+(parseInt(this.conf[id]['imgheight'])/2)+'px;">';
		}

		
		switch (this.tip[id]){
			case 1:
				if(this.conf[id]['showboxitem']==true)this.div[id].className=this.conf[id]['cssleg'];
				this.txtob[id].className=this.conf[id]['cssleg'];
				
				this.txtob[id].style.paddingLeft='4px';
				this.txtob[id].innerHTML = this.txt[id];
				
				/*----------------------------
				tratando eventos
				----------------------------*/
				var n=this.idmenu;
				this.div[id].onmouseover = function(){thismenu[n].over(id);}
				this.div[id].onmouseout = function(){thismenu[n].out(id)};
				
				break;
			case 2:
				alert('Titulo = ' + this.txt[id]);
				if(this.conf[id]['showboxitem']==true)this.div[id].className=this.conf[id]['csstit'];
				
				break;
			default:
				if(this.conf[id]['showboxitem']==true)this.div[id].className=this.conf[id]['cssnormal'];
				/*----------------------------
				tratando eventos
				----------------------------*/
				var n=this.idmenu;
				
				this.div[id].onmouseover = function(){thismenu[n].overcss(id); setTimeout(Function("thismenu['"+n+"'].over('"+id+"');") ,thismenu[n].tmpshow   ) ;}
				this.div[id].onmouseout = function(){thismenu[n].outcss(id); thismenu[n].out(id)};
				this.div[id].onmousedown = function(){thismenu[n].mdown(id);}
				this.div[id].onmouseup = function(){thismenu[n].mup(id);}
				this.div[id].onclick = function(){thismenu[n].clic(id);}

				document.body.onclick = function(){setTimeout(Function("thismenu['"+n+"'].allvis=0;thismenu['"+n+"'].hideall();") ,thismenu[n].tmphideall  ) ;}

				/*
				if(this.conf[id]['sidetxt'] != true){
					this.div[id].onmouseover = function(){thismenu[n].overcss(id); setTimeout(Function("thismenu['"+n+"'].over('"+id+"');") ,thismenu[n].tmpshow   ) ;}
					this.div[id].onmouseout = function(){thismenu[n].outcss(id); thismenu[n].out(id)};
					this.div[id].onmousedown = function(){thismenu[n].mdown(id);}
					this.div[id].onmouseup = function(){thismenu[n].mup(id);}
					this.div[id].onclick = function(){thismenu[n].clic(id);}
				}else{
					this.linob[id].onmouseover = function(){thismenu[n].overcss(id);setTimeout(Function("thismenu['"+n+"'].over('"+id+"');") ,thismenu[n].tmpshow   ) ;}
					this.linob[id].onmouseout = function(){thismenu[n].outcss(id);thismenu[n].out(id)};
					this.linob[id].onmousedown = function(){thismenu[n].mdown(id);}
					this.linob[id].onmouseup = function(){thismenu[n].mup(id);}
					this.linob[id].onclick = function(){thismenu[n].clic(id);}
				}
				*/
				
				//if(this.conf[id]['accesskey']!=undefined)this.linob[id].onfocus=function(){thismenu[n].over(id);return false;}
				
				break;
		}
		
	}
	return this.div[id];
}
//Criandos os itens do menu
ClassMenu.prototype.newcont=function(id){
	this.cont[id]=newDiv(id);
	
	this.cont[id].style.position='absolute';
	this.cont[id].style.overflow='hidden';
	this.cont[id].style.visibility='visible';
	this.cont[id].style.zIndex=1000;

	if(id!=this.nome){
		this.cont[id].style.left='-1000px';
		this.cont[id].style.top='-1000px';
	}
	
	if(!this.conf[id]['cssbox']){
		if(this.conf[id]['showbox']==true && this.idp[id]!=undefined && this.conf[this.idp[id]]['subcssbox'])this.cont[id].className = this.conf[this.idp[id]]['subcssbox'];
		
		//this.conf[id]['borderbox'] = 1;
		//this.cont[id].style.borderWidth=1;
		//this.cont[id].style.borderStyle='dotted';
		//this.cont[id].style.borderColor='blue';
	}else{
		if(this.conf[id]['showbox']==true)this.cont[id].className = this.conf[id]['cssbox'];
	}
	
	
	if(!this.conf[id]['borderbox']){
		this.cont[id].style.border='1px dotted blue';
	}

	//aplicando propriedades do box	
	if(this.conf[id]['showborderbox']!=true){
		//this.conf[id]['borderbox'] = 0;
		this.cont[id].style.borderWidth=0;
		this.cont[id].style.borderStyle='solid';
		this.cont[id].style.borderColor='blue';
	}

	return false;
	//return this.cont[id];
}

ClassMenu.prototype.setconf=function(id,conf,val,parents){
	if(parents==undefined)parents=false;
	this.conf[id][prop]=val;
	if(parents==true && this.idp[id] != undefined && this.idp[id]!= this.nome)this.setconf(this.idp[id],prop,val,true);;
}

ClassMenu.prototype.getconf=function(id,conf){
	return this.conf[id][prop];
}

ClassMenu.prototype.setprop=function(id,prop,val,parents){
	if(parents==undefined)parents=false;
	this[prop][id]=val;
	if(parents==true && this.idp[id] != undefined && this.idp[id]!= this.nome)this.setprop(this.idp[id],prop,val,true);;
}

ClassMenu.prototype.getprop=function(id,prop){
	return this[prop][id];
}

ClassMenu.prototype.setall=function(id,prop,val){
	if(!id)id=this.nome;
	this[prop][id]=val;
	if(this.fil[id]){
		for(var i=0;i<this.fil[id].length;i++){
			this[prop][ this.fil[id][i] ]=val;
			if(this.fil[  this.fil[id][i]  ])this.setall(this.fil[id][i],prop,val);
		}
	}
	return false;
}

ClassMenu.prototype.presskey=function(key){
	if( this.acc[key.toUpperCase()]  )this.over(this.acc[key.toUpperCase()]);
}

ClassMenu.prototype.over=function(id){
	window.status = ((this.conf[id]['accesskey']!=undefined)?'(ALT + '+ this.conf[id]['accesskey'].toUpperCase() +')':'') + '';
	this.allvis=1;
	
	//this.outcss(this.ativ);
	if(this.ativ != id){
		this.setall(this.nome,'vis',0);
		this.setprop(id,'vis',1,true);//setando visibilidade do item e seus parentes para 1
		this.hideall();
	}
	
	this.ativ=id;
	
	if(this.t_hide)clearTimeout(this.t_hide);
	if(this.t_hideall)clearTimeout(this.t_hideall);
	this.t_hide = undefined;
	this.t_hideall = undefined;
	
	//if(this.conf[id]['showboxitem']==true)this.overcss(id);
	this.pos(id,this.conf[id]['tipo'],this.conf[id]['align']);
	this.show(id);
	return false;
}

ClassMenu.prototype.overcss=function(id){
	//if(this.conf[id]['evtopen']=='over' || ( this.conf[id]['evtopen']!='over' && this.fil[id] && this.fil[id].length > 0)){
		if(this.txtob[id] && this.conf[id]['cssover'])this.txtob[id].className = this.conf[id]['cssover'];
		if(this.div[id] && this.conf[id]['showboxitem']==true && this.conf[id]['cssover'])this.div[id].className = this.conf[id]['cssover'];
		if(this.idp[id] && this.idp[id]!=this.nome && this.conf[this.idp[id]]['showboxitem']==true)this.overcss(this.idp[id]);
	//}
}

ClassMenu.prototype.outcss=function(id){
	if(this.txtob[id] && this.conf[id]['cssnormal'])this.txtob[id].className = this.conf[id]['cssnormal'];
	if(this.div[id]!=undefined && this.conf[id]['showboxitem']==true){
		if(this.conf[id]['cssnormal'])this.div[id].className = this.conf[id]['cssnormal'];		
	}
}



ClassMenu.prototype.out=function(id){
	this.allvis=0;
	
	var n=this.idmenu;
	
	if(this.idp[id] == this.nome){
		//this.hideall();
		this.t_hide = setTimeout(Function("thismenu['"+n+"'].hideall();") ,thismenu[n].tmphide);
		//setTimeout(Function("thismenu['"+n+"'].hideall();") ,thismenu[n].tmphide);
	}else{
		if(this.t_hideall==undefined)this.t_hideall = setTimeout(Function("thismenu['"+n+"'].hideall();") ,thismenu[n].tmphideall);
	}
	return false;
}

ClassMenu.prototype.mdown=function(id){
	if(this.txtob[id] && this.conf[id]['cssclick'])this.txtob[id].className = this.conf[id]['cssclick'];
	if(this.conf[id]['showboxitem']==true && this.conf[id]['cssclick'])this.div[id].className = this.conf[id]['cssclick'];
}

ClassMenu.prototype.mup=function(id){
	if(this.conf[id]['evtopen']=='over'){
		if(this.txtob[id] && this.conf[id]['cssover'])this.txtob[id].className = this.conf[id]['cssover'];
		if(this.conf[id]['showboxitem']==true)this.div[id].className = this.conf[id]['cssover'];
	}else{
		if(this.txtob[id] && this.conf[id]['cssnormal'])this.txtob[id].className = this.conf[id]['cssnormal'];
		if(this.conf[id]['showboxitem']==true)this.div[id].className = this.conf[id]['cssnormal'];
	}
}

ClassMenu.prototype.clic=function(id){
	if(this.lin[id]){
		//if(this.tar[id])alert(this.tar[id]);
		//((this.tar[id])?this.tar[id]:'_self')
		window.open(this.lin[id],((this.tar[id])?this.tar[id]:'_self'))
	}
	if(this.conf[id]['evtopen']=='click'){
		//this.allvis=0;
		//this.hideall(id);
		this.over(id);
		//this.ativ=id;
		//this.hideall(id);
	}
	//alert(this.txt[id] + '   ' + this.niv[id] + ' pai='+this.idp[id]);
}

ClassMenu.prototype.contOpacity=function(id,valor){
	if(document.all){
		this.cont[id].style.filter='alpha(opacity='+valor+')';
	}else{
		this.cont[id].style.opacity=(valor/100);
	}
}

ClassMenu.prototype.itemOpacity=function(id,valor){
	if(document.all){
		this.div[id].style.filter='alpha(opacity='+valor+')';
	}else{
		this.div[id].style.opacity=(valor/100);
	}
}

ClassMenu.prototype.monta=function(id){
	if(!id)id=this.nome;

	//if(this.fil[id].length == 0)return false;

	this.newcont(id);

	for(var i=0;i<this.fil[id].length;i++){
		/*setando propriedades do array de configuração*/

		for (var p in this.conf[id]){

			if(this.conf[ this.fil[id][i] ][p]==undefined){
				//Considerando posicionamentos padrões
				// && this.idp[id]==this.nome
				if(this.idp[id] && this.conf[ this.idp[id] ]['tipo'] =='h'){
					//this.conf[id]['tipo']='h';					
					//this.conf[id]['align']='b';					
				}
				if(this.idp[id] && this.conf[ this.idp[id] ]['tipo'] =='v' && this.idp[id]==this.nome){
					//this.conf[id]['tipo']='v';					
					//this.conf[id]['align']='r';					
				}
				
				if(p=='cssnormal' || p=='cssover' || p=='cssclick'){
					//alert(this.fil[id][i] + ' ' + p);
					if(this.conf[ this.fil[id][i] ][p]==undefined){
						this.conf[ this.fil[id][i] ][p]=((this.conf[id]['sub'+p]!=undefined && id!=this.nome)?   this.conf[id]['sub'+p]  :  ((this.idp[id]!=undefined)?this.conf[this.idp[id]][p]:this.conf[this.nome][p] )  );												
					}
				}else if(p=='cssbox' || p=='cssboxover' || p=='cssboxclick'){
						//if(id=='1')alert(this.fil[  id   ][i] + ' ' + this.conf[ this.fil[  id   ][i] ][p])
						//this.conf[ this.fil[id][i] ][p]=((this.idp[  id  ]!=undefined)?  this.conf[id]['sub'+p]  :  ((this.idp[id]!=undefined)?this.conf[this.idp[id]][p]:this.conf[this.nome][p] )  );						
						this.conf[ this.fil[id][i] ][p]   = ((this.idp[ this.fil[id][i]  ]!=undefined && this.conf[ this.idp[this.fil[id][i]] ]['sub'+p] !=undefined)? this.conf[ this.idp[this.fil[id][i]] ]['sub'+p]  : this.conf[id][p] ); 						
				}else if(p=='widthbox' || p=='padding' || p=='border' || p=='borderbox'){
					this.conf[ this.fil[id][i] ][p] = this.conf[id][p];
				}else if(p=='width'){
						this.conf[ this.fil[id][i] ][p]   = ((this.idp[ this.fil[id][i]  ]!=undefined && this.conf[ this.idp[this.fil[id][i]] ]['sub'+p] !=undefined)? this.conf[ this.idp[this.fil[id][i]] ]['sub'+p]  : this.conf[id][p] ); 						
				}else{
					if(p!='accesskey' && p!='icon'  && p!='img')this.conf[ this.fil[id][i] ][p]=((this.conf[id][p])?  this.conf[id][p]  :  ((this.idp[id])? this.conf[ this.idp[id]][p]:  this.conf[ this.nome][p] )   );
				}
				
			}
		}
		/*Criando um novo item*/
		this.newitem(this.fil[id][i]);


		/*--------------------------------------
		| incluindo setas caso exista submenus |
		--------------------------------------*/
		if(this.fil[this.fil[id][i]] && this.fil[this.fil[id][i]].length > 0 && this.conf[this.fil[id][i]]['showseta']==true){
			//alert(this.fil[id][i] + '  ' + this.fil[id].length);
			this.set[this.fil[id][i]] = newDiv('seta_'+id,this.div[this.fil[id][i]] );//div seta dentro
			
			this.set[this.fil[id][i]].style.position='absolute';		
			this.set[this.fil[id][i]].style.overflow='visible';		
			this.set[this.fil[id][i]].style.visibility = 'inherit';
			this.set[this.fil[id][i]].style.width='10px';		
			this.set[this.fil[id][i]].style.height='auto';		
			this.set[this.fil[id][i]].style.right='0px';		
			this.set[this.fil[id][i]].style.borderWidth='0px';
			this.set[this.fil[id][i]].style.borderColor='red';
			this.set[this.fil[id][i]].style.borderStyle='solid';
			
			var a = this.conf[this.fil[id][i]]['align'];

			if(a=='r' || a=='right')this.set[this.fil[id][i]].innerHTML='<img src="'+this.conf[id]['setaright']+'">';
			if(a=='b' || a=='bottom')this.set[this.fil[id][i]].innerHTML='<img src="'+this.conf[id]['setabottom']+'">';
			if(a=='l' || a=='left')this.set[this.fil[id][i]].innerHTML='<img src="'+this.conf[id]['setaleft']+'">';
			if(a=='t' || a=='top')this.set[this.fil[id][i]].innerHTML='<img src="'+this.conf[id]['setatop']+'">';

		}

		/***************************************/

		//if(this.txt[id])this.div[id].innerHTML = "<img src='seta_r.gif' align='right' valign='middle'>" + this.txt[id];
		
		//debug(this.fil[id][i] + ' ' + this.txt[this.fil[id][i]]);
		if(this.fil[this.fil[id][i]]){
			if (this.fil[this.fil[id][i]].length > 0)this.monta(this.fil[id][i]);
		}
		
	}


	if(id==this.nome){
		if(byId(this.at)){
			this.cont[this.nome].style.position='relative';
			byId(this.at).appendChild(this.cont[this.nome]);
		}else{
			
		}
		this.pos(id,this.conf[id]['tipo'],this.conf[id]['align']);
		this.show(id);
	}
	
	return false;
}

ClassMenu.prototype.posR=function(id){
	
	if(this.conf[id]['sidetxt']==true){
		this.conf[id]['offsetx'] = (  (this.div[id].offsetWidth + parseInt(this.conf[id]['borderbox']) + parseInt(this.conf[id]['border'])) - ((this.txtob[id])?this.txtob[id].offsetWidth:0));
		if(this.conf[id]['img'])this.conf[id]['offsetx'] -= parseInt(this.conf[id]['imgwidth']);
	}
	
	this.cont[id].style.left = (this.cont[ this.idp[id] ].offsetLeft + this.cont[ this.idp[id] ].offsetWidth - parseInt(this.conf[id]['offsetx']))+'px';
	//this.cont[id].style.top = (   this.cont[ this.idp[id] ].offsetTop  + parseInt(this.conf[id]['offsety']))+'px';
	//this.cont[id].style.top = (   this.cont[ this.idp[id] ].offsetTop  + parseInt(this.conf[id]['offsety']))+'px';
	this.cont[id].style.top = (   (this.cont[ this.idp[id] ].offsetTop  + parseInt(this.div[id].style.top) - parseInt(this.conf[id]['padding'])   )  - parseInt(this.conf[id]['offsety']))+'px';
	
}
ClassMenu.prototype.posL=function(id){
	//this.cont[id].style.left = (getLeft( this.div[id] )-(this.px2+this.div[id].offsetWidth-parseInt(this.conf[id]['padding']))   )+'px';
	//this.cont[id].style.left = (getLeft( this.div[id] )  - parseInt(this.conf[id]['padding']) + this.px1 -parseInt(this.cont[id].offsetWidth)+1 + parseInt(this.conf[id]['offsetx']) )+'px';
	this.cont[id].style.left = (  this.cont[ this.idp[id] ].offsetLeft - parseInt(this.cont[id].offsetWidth) + parseInt(this.conf[id]['offsetx']) )+'px';
	this.cont[id].style.top = (   this.cont[ this.idp[id] ].offsetTop  + parseInt(this.conf[id]['offsety']))+'px';
}

ClassMenu.prototype.posTH=function(id){
	if(this.num[id] > 1){
		//this.cont[id].style.left = (getLeft( this.div[id] )+this.px1-parseInt(this.conf[id]['padding'])     +  parseInt(this.conf[id]['offsetx'])  ) +'px';
		//this.cont[id].style.left = (getLeft( this.div[id] ) - this.hdis + parseInt(this.conf[id]['borderbox']) -parseInt(this.conf[id]['padding']) + parseInt(this.conf[id]['offsetx'])) +'px';
		//this.cont[id].style.left = (   (this.cont[ this.idp[id] ].offsetLeft  + parseInt(this.div[id].style.left) - parseInt(this.conf[id]['padding'])   )  - parseInt(this.conf[id]['offsety']))+'px';
		this.cont[id].style.left = (   (this.cont[ this.idp[id] ].offsetLeft  + parseInt(this.div[id].style.left) - parseInt(this.conf[id]['padding'])   )  - parseInt(this.conf[id]['offsety']))+'px';
		this.cont[id].style.top = (this.cont[ this.idp[id] ].offsetTop - this.cont[ this.idp[id] ].offsetHeight + parseInt(this.conf[id]['offsety'])    )+'px';
		//this.cont[id].style.top = (this.cont[ this.idp[id] ].offsetTop + this.cont[ this.idp[id] ].offsetHeight- parseInt(this.conf[id]['offsety']))+'px';
	}else{
		this.posTV(id)
	}
	
}

ClassMenu.prototype.posTV=function(id){
	this.cont[id].style.left = (   (this.cont[ this.idp[id] ].offsetLeft  + parseInt(this.div[id].style.left) - parseInt(this.conf[id]['padding'])   )  - parseInt(this.conf[id]['offsetx']))+'px';
	this.cont[id].style.top = (this.cont[ this.idp[id] ].offsetTop  - this.cont[id].offsetHeight   + parseInt(this.conf[id]['offsety'])    )+'px';
}

ClassMenu.prototype.posT=function(id){
	if(this.conf[id]['tipo']=='h' || this.conf[id]['tipo']=='horizontal'){
		this.posTH(id);//posiciona top Horizontal
	}else{
		this.posTV(id);//posiciona top Vertical
	}
}


ClassMenu.prototype.posBH=function(id){
	
	if(this.num[id] > 1){
		this.cont[id].style.left = (   (this.cont[ this.idp[id] ].offsetLeft  + parseInt(this.div[id].style.left) - parseInt(this.conf[id]['padding'])   )  - parseInt(this.conf[id]['offsety']))+'px';
		this.cont[id].style.top = (this.cont[ this.idp[id] ].offsetTop + this.cont[ this.idp[id] ].offsetHeight- parseInt(this.conf[id]['offsety']))+'px';
	}else{
		this.posBV(id)
	}
	
}

ClassMenu.prototype.posBV=function(id){
	this.cont[id].style.left = (   (this.cont[ this.idp[id] ].offsetLeft  + parseInt(this.div[id].style.left) - parseInt(this.conf[id]['padding'])   )  - parseInt(this.conf[id]['offsetx']))+'px';
	this.cont[id].style.top = (this.cont[ this.idp[id] ].offsetTop + this.cont[ this.idp[id] ].offsetHeight- parseInt(this.conf[id]['offsety']))+'px';
}

ClassMenu.prototype.posB=function(id){
	if(this.conf[id]['tipo']=='h' || this.conf[id]['tipo']=='horizontal'){
		this.posBH(id);//posiciona bottom Horizontal
	}else{
		this.posBV(id);//posiciona bottom Vertical
	}
}


ClassMenu.prototype.imgV=function(id){
	//this.img[id].style.top = (((this.div[id].offsetHeight - this.img[id].offsetHeight)/2)-parseInt(this.conf[id]['border'])) +'px';
	//this.img[id].style.left = (this.txtob[id].offsetWidth) +'px';
	if(this.conf[id]['sidetxt']==true)this.img[id].style.left = (this.txtob[id].offsetWidth) +'px';
}

ClassMenu.prototype.icoV=function(id){
	this.ico[id].style.top = (((this.div[id].offsetHeight - this.ico[id].offsetHeight)/2)-parseInt(this.conf[id]['border'])) +'px';
	return false;
}

ClassMenu.prototype.txtV=function(id){
	//if(this.ico[id])this.icoV(id);
	//alinhando texto na vertical
	if(this.txtob[id])this.txtob[id].style.top = (((this.div[id].offsetHeight - this.txtob[id].offsetHeight)/2)-parseInt(this.conf[id]['border'])) +'px';
	
	if(this.img[id])this.imgV(id);
	void(0);return false;
}

ClassMenu.prototype.setaV=function(id){
	//alinhando seta na vertical
	if(this.set[id])this.set[id].style.top = (((this.div[id].offsetHeight - this.set[id].offsetHeight)/2)-parseInt(this.conf[id]['border'])) +'px';
}

ClassMenu.prototype.pos=function(id,t,a){
	//coeficientes de correção de tamanho e poisionamento
	/*
	this.px1 = (document.all)?1:0;
	this.px2 = (document.all)?2:1;
	this.hdis = (document.all)?3:0;
	this.vdis = (document.all)?3:0;
	*/
	
	
	if(!t)t=this.tipo;
	if(!a)a='r';
	
	if(this.cont[id]){
		//horizontal
		
		if(t=='v'){
			var lef = 0;
			var top = 0;
			var wid = 0;
			var hei = 0
			
			if(a=='t' || a=='top'){
				for(var i=this.fil[id].length-1;i>=0;i--){
					this.div[this.fil[id][i]].style.width=parseInt(this.conf[this.fil[id][i]]['width'])+'px';
					this.div[this.fil[id][i]].style.height= parseInt(this.conf[this.fil[id][i]]['height']) +'px';
					this.div[this.fil[id][i]].style.borderWidth=parseInt(this.conf[this.fil[id][i]]['border'])+'px';
					
					top+=parseInt(this.conf[this.fil[id][i]]['padding']);
					if(i<this.fil[id].length-1)top+=this.div[this.fil[id][(i+1)]].offsetHeight;
					
					if(parseInt(this.conf[this.fil[id][i]]['width']) > wid)wid = parseInt(this.conf[this.fil[id][i]]['width']);
					
					this.div[this.fil[id][i]].style.left = parseInt(this.conf[this.fil[id][i]]['padding']) +'px';
					this.div[this.fil[id][i]].style.top = top +'px';

					//alinhando texto na vertical
					this.txtV(this.fil[id][i]);
					this.setaV(this.fil[id][i]);
					
				}
			}else{

			//if(a=='b' || a=='bottom'){
				for(var i=0;i<this.fil[id].length;i++){
					this.div[this.fil[id][i]].style.width=parseInt(this.conf[this.fil[id][i]]['width'])+'px';
					this.div[this.fil[id][i]].style.height= parseInt(this.conf[this.fil[id][i]]['height']) +'px';
					this.div[this.fil[id][i]].style.borderWidth=parseInt(this.conf[this.fil[id][i]]['border'])+'px';
					
					top+=parseInt(this.conf[this.fil[id][i]]['padding']);
					if(i>0)top+=this.div[this.fil[id][(i-1)]].offsetHeight;

					//hei+=(parseInt(this.conf[this.fil[id][i]]['border']) + parseInt(this.conf[this.fil[id][i]]['padding']));
					//if(i==0)hei+=parseInt(this.conf[this.fil[id][i]]['border']);
					//if(i>0)hei+=this.div[this.fil[id][(i-1)]].offsetHeight;

					if(parseInt(this.conf[this.fil[id][i]]['width']) > wid)wid = parseInt(this.conf[this.fil[id][i]]['width']);
					
					this.div[this.fil[id][i]].style.left = parseInt(this.conf[this.fil[id][i]]['padding']) +'px';
					this.div[this.fil[id][i]].style.top = top +'px';
					
					//alinhando texto na vertical
					//this.txtob[this.fil[id][i]].style.top = (((this.div[this.fil[id][i]].offsetHeight - this.txtob[this.fil[id][i]].offsetHeight)/2)-parseInt(this.conf[this.fil[id][i]]['border'])) +'px';
					this.txtV(this.fil[id][i]);
					this.setaV(this.fil[id][i]);
					
				}
				
			}

			
			//this.cont[id].style.width =  (wid  + 2*parseInt(this.conf[id]['border'])  + 2*parseInt(this.conf[id]['padding']) )+'px';
			this.cont[id].style.width =  (wid + 2*parseInt(this.conf[this.fil[id][   this.fil[id].length-1  ]]['border'])  + 2*parseInt(this.conf[this.fil[id][   this.fil[id].length-1  ]]['padding']) )+'px';
			this.cont[id].style.height = (top + this.div[ this.fil[id][  this.fil[id].length-1  ]].offsetHeight + parseInt(this.conf[this.fil[id][   this.fil[id].length-1  ]]['padding']) ) + 'px';
			//this.cont[id].style.height = (top +this.div[ this.fil[id][  this.fil[id].length-1  ]].offsetHeight +  parseInt(this.conf[id]['padding'])   ) + 'px';
			//this.cont[id].style.height = (top +this.div[ this.fil[id][  this.fil[id].length-1  ]].offsetHeight +   ((id!=this.nome && this.idp[id]!=this.nome)?2:1)*parseInt(this.conf[id]['padding'])   ) + 'px';

		}	
		
		if(t=='h'){
			var lef = 0;
			var hei = 0;
			for(var i=0;i<this.fil[id].length;i++){
  				this.div[this.fil[id][i]].style.width= parseInt(this.conf[this.fil[id][i]]['width']) +'px';
  				this.div[this.fil[id][i]].style.height= parseInt(this.conf[this.fil[id][i]]['height']) +'px';
  				this.div[this.fil[id][i]].style.borderWidth=parseInt(this.conf[this.fil[id][i]]['border'])+'px';
				
				lef+=parseInt(this.conf[this.fil[id][i]]['padding']);
				if(i>0)lef+= this.div[this.fil[id][(i-1)]].offsetWidth;
				
				if(parseInt(this.conf[this.fil[id][i]]['height']) > hei)hei = parseInt(this.conf[this.fil[id][i]]['height']);
				
				this.div[this.fil[id][i]].style.left = lef+'px';
				this.div[this.fil[id][i]].style.top = this.conf[this.fil[id][i]]['padding'] +'px';
				
				this.txtV(this.fil[id][i]);
				this.setaV(this.fil[id][i]);
				
			}
			
			this.cont[id].style.width = (lef+this.div[ this.fil[id][  this.fil[id].length-1  ]].offsetWidth +  parseInt(this.conf[id]['padding'])   ) + 'px';
			this.cont[id].style.height = (hei  + 2*parseInt(this.conf[id]['border'])  + 2*parseInt(this.conf[id]['padding']) )+'px';
		}	
		
		if(this.conf[id]['widthbox'] && this.cont[id]) this.cont[id].style.width =  parseInt(this.conf[id]['widthbox'])+'px';
		if(this.conf[id]['heightbox'] && this.cont[id]) this.cont[id].style.height = parseInt(this.conf[id]['heightbox'])+'px';
		
		if(id!=this.nome){
			//alinhamento
			if(a=='t' || a=='top')this.posT(id)//Em Cima
			if(a=='b' || a=='bottom')this.posB(id);//Em Baixo
			if(a=='l' || a=='left')this.posL(id);//Esquerda
			if(a=='r' || a=='right')this.posR(id)//Direita
		}
	}
}

ClassMenu.prototype.show=function(id){
	if(this.conf[id]['opacitybox'] && id != this.nome && this.cont[id])this.contOpacity(id,parseInt(this.conf[id]['opacitybox']))
	if(this.cont[id]){
		this.cont[id].style.visibility = 'visible';
	}
	document.body.focus();
	return false
}

ClassMenu.prototype.hide=function(id){
	//if(this.vis[id]==0){
		if(this.cont[id] && this.conf[id]['showboxitem']==true)this.div[id].className = this.conf[id]['cssnormal'];
		if(this.cont[id])this.cont[id].style.visibility = 'hidden';
		if(this.cont[id] && id!=this.nome){
			this.cont[id].style.left='-1000px';
			this.cont[id].style.top='-1000px';
		}
	//}
}

ClassMenu.prototype.hideall=function(id){
	if(!id)id=this.nome;
	//if(this.allvis==0){
	if(id!=this.nome){
		if(this.vis[id] != 1 || this.allvis==0)this.hide(id);
	}
	if(this.fil[id]){
		for(var i=0;i<this.fil[id].length;i++){
			//this.vis[ this.fil[id][i] ]=0;
			if(this.vis[ this.fil[id][i] ]!=1 || this.allvis==0)this.hide(this.fil[id][i]);
			if(this.fil[  this.fil[id][i]  ])this.hideall(this.fil[id][i]);
		}
	}
		//alert('fecha tudo ' + id);
	//}
	return false;
}

/*

ClassMenu.prototype.hideall=function(id){
	if(!id)id=this.nome;
	
	if(this.allvis==0){
		
		if(id!=this.nome){
			this.vis[id]=0;
			this.hide(id);
		}
		
		if(this.fil[id]){
			for(var i=0;i<this.fil[id].length;i++){
				this.vis[ this.fil[id][i] ]=0;
				this.hide(this.fil[id][i]);
				if(this.fil[  this.fil[id][i]  ])this.hideall(this.fil[id][i]);
			}
		}
		
		//alert('fecha tudo ' + id);
	}
	return false;
}

*/








