function Estados()
{
	this.estados = new Array();
	this.msgs = new Array();
}
/**
 * Establece un estado y el mensaje asociado
 * Se llama desde otra pgina. Pasar value=false para resetear este estado.
 */
Estados.prototype.setEstado = function (estado, value, msg)
{
	this.estados[estado] = value;
	this.msgs[estado] = msg;
}
/**
 * Devuelve el mensaje del primer estado !=false, o false si ningun estado esta seteado
 */ 
Estados.prototype.isModified = function()
{
	for(i in this.estados) {
		if (this.estados[i]!='') return this.msgs[i];
	}
	return false;
}
/**
 * Resetea todos los estados a false.
 */
Estados.prototype.reset = function()
{
	for(i in this.estados) {
		this.estados[i] = false;
	}
}
var estados = new Estados();




// calcula las capas que se desplazan
function MFXrM(n){
	if(!rng && n+2 < L.length){
		if(wO==-1){
			// no hay ninguna abierta, se abre
			oS=stp;
			L[n+1].visibility = OM ? gH : gV;
			MFXoS(n+2);
		}else{
			if(wO==n && cl){
				// has pulsado sobre la que está abierta y activa
				
				cS=gHt[n+1];
				L[n+1].visibility=OM?gH:gV;
				MFXcS(n+2);
			}
			if(wO!=n){
				// has pulsado sobre una cerrada (que no es la activa)
				cS = gHt[wO+1];
				L[wO+1].visibility = OM ? gH : gV;
				MFXcS(wO+2);
				wait=n;
			}
		}
	}
	
}

// mueve la capa que se esta abriendo
function MFXoS(n){
	rng=1;
	for(i=n; i < L.length; i+=2){
		
		L[i].top = pI(L[i].top) + stp;
		
	}
	
	nn ? 
		L[n-1].clip.height = oS :
		L[n-1].clip = 'rect(' + 0 +' '+ gW[n-1] +' '+ oS +' '+ 0 +')';

	oS+=stp;
	if(pI(L[n].top) < pI(L[n-1].top)+gHt[n-1] - 6){
		setTimeout('MFXoS('+n+')',spd);
	}else{
		rng=0;
		wO=n-2;
		L[n-1].visibility=gV;
		if(famPulsado != -1){
			document.getElementById('fam' + famPulsado).className = "menu";
		}
		famOn(n-2);
		subMenu('sub_'+(n-1)+'_1','');
		
	}
	
}

// mueve la capa que se esta cerrando	
function MFXcS(n){
	rng=1;
	for(i=n; i < L.length; i+=2){
		L[i].top=pI(L[i].top)-stp;
	}
	nn ?
		L[n-1].clip.height = cS :
		L[n-1].clip = 'rect('+0+' '+gW[n-1]+' '+cS+' '+0+')';
	cS-=stp;
	if(pI(L[n].top) > pI(L[n-2].top)+gHt[n-2]){
		setTimeout('MFXcS('+n+')',spd)
	}else{
		nn ?
			L[n-1].clip.height=cS :
			L[n-1].clip= 'rect('+0+' '+gW[n-1]+' '+0+' '+0+')';
		rng=0;
		wO=-1;
		
		// si hay una capa en espera para abrirse, 
		// llamamos a MFXrM para que la abra.
		if(wait!=-1)MFXrM(wait);
		L[n-1].visibility=gH;
		wait=-1;
		famOff(n-2);
	}
	
}

function pI(n){
	return parseInt(n)
}

// si el url es de la forma ...php?mfxsr=3, abre la capa 3
function MFXrSR(){
	var sr=document.location.search;
	if(sr!=''){sr = sr.replace(/\?/,'').split('&');
		for(var i=0;i<sr.length;i++){
			sr[i]=sr[i].split('=');
			if(sr[i][0]=='mfxsr'){
				MFXrM(pI(sr[i][1]))
			}
		}
	}
	
}//MFXsmEND
 
var subPulsado = -1;
var famPulsado = -1;

function famOn(fam){
	
	document.getElementById('fam' + fam).className = "menuOn";
	
	famPulsado = fam;
	if(subPulsado != -1){
		document.getElementById(subPulsado).className = "subMenu";
	}
}

function famOff(fam){
	document.getElementById('fam' + fam).className = "menu";
}

function famDirecto(fam){
	if(famPulsado != -1 && fam != famPulsado){
		if(famPulsado != 8){
			cS=gHt[famPulsado+1];
			L[famPulsado+1].visibility=OM?gH:gV;
			MFXcS(famPulsado+2);
		}else{
			famOff(famPulsado);
		}
	}
	famOn(fam);
}

function subMenu(sub,dest){
	if(subPulsado != -1){
		document.getElementById(subPulsado).className = "subMenu";
	}
	if(dest=="") return;
	document.getElementById(sub).className = "subMenuOn";
	var chr = (dest.indexOf('?')<0) ? '?' : '&';
	
	top.fm_main.location.href= dest + chr + '&resetContext=true';
	subPulsado = sub;
}

function gotofam(idFam){
	MFXrM(idFam);
}

function clearMenu(){
	MFXcS(famPulsado+2);
	subMenu(subPulsado,'');
	subPulsado = -1;
	famPulsado = -1;
}

function gotoInnerLink(dest, subMenu, compParent) 
{
	if (msg=estados.isModified()) {
		if (confirm(msg)) {
			estados.reset();
		} else {
			return;
		}
	}
	gotofam(compParent);
	subMenu(subMenu,dest);
}

function gotoHome()
{
	if(subPulsado == -1) return;
	clearMenu();
	top.fm_main.location.href = "../view_home.php";
}
