
// Calculos liquidación frá ---------------------------------------------------------------
function calliqufra(form)
{
var moneda;
if(form.moneda[0].checked){moneda=0;}
if(form.moneda[1].checked){moneda=1;}
pactado=form.pactado.value/100;
tliqui=form.tliqui.value/100;
dias=form.dias.value*1;
nominal=form.nominal.value*1;

var liquidacion;
liquidacion=((tliqui-pactado)*dias*nominal/360)/(1+(tliqui*dias/360));
form.liquidacion.value=formatodec(liquidacion,moneda);


}

function cambialiqufra(form)
{
var importe;
var informa;
nominal=form.nominal.value*1;

if(form.moneda[0].checked){form.moneda[0].checked=0;informa=1;}
if(form.moneda[1].checked){form.moneda[1].checked=0;informa=0;}
if (informa==1){form.nominal.value=Math.round((nominal/166.386)*100)/100;form.moneda[1].checked=1;}
if (informa==0){form.nominal.value=Math.round(nominal*166.386);form.moneda[0].checked=1;}
calliqufra(form)
}

// suma de tres menos el último--------------------
function ccirculante(form)
{
if(form.moneda[0].checked){moneda=0;}
if(form.moneda[1].checked){moneda=1;}
importe1=form.importe1.value*1;
importe2=form.importe2.value*1;
importe3=form.importe3.value*1;
importe4=form.importe4.value*1;

var resultado;
resultado=importe1+importe2+importe3-importe4;
form.resultado.value=formatodec(resultado,moneda);

}
function cambiacuatro(form)
{
var informa;
importe1=form.importe1.value*1;
importe2=form.importe2.value*1;
importe3=form.importe3.value*1;
importe4=form.importe4.value*1;

if(form.moneda[0].checked){form.moneda[0].checked=0;informa=1;}
if(form.moneda[1].checked){form.moneda[1].checked=0;informa=0;}
if (informa==1)
{
form.importe1.value=Math.round((importe1/166.386)*100)/100;
form.importe2.value=Math.round((importe2/166.386)*100)/100;
form.importe3.value=Math.round((importe3/166.386)*100)/100;
form.importe4.value=Math.round((importe4/166.386)*100)/100;
form.moneda[1].checked=1;
}
else
{
form.importe1.value=Math.round(importe1*166.386);
form.importe2.value=Math.round(importe2*166.386);
form.importe3.value=Math.round(importe3*166.386);
form.importe4.value=Math.round(importe4*166.386);
form.moneda[0].checked=1;
}
ccirculante(form)
}

// calcula capm--------------------------------------------

function calcapm(form)
{
rf=form.rf.value/100;
beta=form.beta.value*1;
rm=form.rm.value/100;

var capm;
capm=((rm-rf)*beta)+rf;
capm=Math.round(capm*10000);
capm=capm/100;
form.capm.value=capm + " %";

}
// Calcula ciclos---------------------------------
function ciclos(form)
{
importe1=form.importe1.value*1;
importe2=form.importe2.value*1;
importe3=form.importe3.value*1;

var ciclo;
ciclo=(365*importe1)/(importe2*importe3)
ciclo=Math.round(ciclo*100);
ciclo=ciclo/100;
form.ciclo.value=ciclo+" dias";

}
function cambiatres(form)
{
var informa;
importe1=form.importe1.value*1;
importe2=form.importe2.value*1;
importe3=form.importe3.value*1;


if(form.moneda[0].checked){form.moneda[0].checked=0;informa=1;}
if(form.moneda[1].checked){form.moneda[1].checked=0;informa=0;}
if (informa==1)
{
form.importe1.value=Math.round((importe1/166.386)*100)/100;
form.importe2.value=Math.round((importe2/166.386)*100)/100;
form.importe3.value=Math.round((importe3/166.386)*100)/100;

form.moneda[1].checked=1;
}
else
{
form.importe1.value=Math.round(importe1*166.386);
form.importe2.value=Math.round(importe2*166.386);
form.importe3.value=Math.round(importe3*166.386);

form.moneda[0].checked=1;
}
ciclos(form)
}

// Calculos ciclos 4----------------------
function ciclos4(form)
{
importe1=form.importe1.value*1;
importe2=form.importe2.value*1;
importe3=form.importe3.value*1;
importe4=form.importe4.value*1;

var ciclo;
ciclo=(365*importe1/importe2)+(365*importe3/importe4);
ciclo=Math.round(ciclo*100);
ciclo=ciclo/100;
form.ciclo.value=ciclo+" dias";

}
function cambiacuatro(form)
{
var informa;
importe1=form.importe1.value*1;
importe2=form.importe2.value*1;
importe3=form.importe3.value*1;
importe4=form.importe4.value*1;

if(form.moneda[0].checked){form.moneda[0].checked=0;informa=1;}
if(form.moneda[1].checked){form.moneda[1].checked=0;informa=0;}
if (informa==1)
{
form.importe1.value=Math.round((importe1/166.386)*100)/100;
form.importe2.value=Math.round((importe2/166.386)*100)/100;
form.importe3.value=Math.round((importe3/166.386)*100)/100;
form.importe4.value=Math.round((importe4/166.386)*100)/100;
form.moneda[1].checked=1;
}
else
{
form.importe1.value=Math.round(importe1*166.386);
form.importe2.value=Math.round(importe2*166.386);
form.importe3.value=Math.round(importe3*166.386);
form.importe4.value=Math.round(importe4*166.386);
form.moneda[0].checked=1;
}
ciclos4(form)
}
// cupón corrido----------------------------------------------------
function ccorrido(form)
{
var moneda;
if(form.moneda[0].checked){moneda=0;}
if(form.moneda[1].checked){moneda=1;}
ca=form.ca.value*1;
cp=form.cp.value*1;
importe=form.importe.value*1;

var cuponcorrido;
cuponcorrido=ca*importe/cp;
form.cuponcorrido.value=formatodec(cuponcorrido,moneda);

}
function cambiar(form)
{
var importe;
var informa;
importe=form.importe.value*1;

if(form.moneda[0].checked){form.moneda[0].checked=0;informa=1;}
if(form.moneda[1].checked){form.moneda[1].checked=0;informa=0;}
if (informa==1){form.importe.value=Math.round((importe/166.386)*100)/100;form.moneda[1].checked=1;}
if (informa==0){form.importe.value=Math.round(importe*166.386);form.moneda[0].checked=1;}
ccorrido(form)
}
// calculos descuento------------------------------------------
function caldescuento(form){
var moneda;
if(form.moneda[0].checked){moneda=0;}
if(form.moneda[1].checked){moneda=1;}

importe=form.importe.value*1;
tipo=form.tipo.value/100;
dias=form.dias.value*1;

var dtosimple;
dtosimple=importe*dias*tipo/360;
form.dtosimple.value=formatodec(dtosimple,moneda);

var dtocompu;
var base;
base=(1-tipo);
dtocompu=Math.pow(base,-(dias/360));
dtocompu=importe*dtocompu;
dtocompu=dtocompu-importe;
form.dtocompu.value=formatodec(dtocompu,moneda);

}
function cambiades(form)
{
var importe;
var informa;
importe=form.importe.value*1;

if(form.moneda[0].checked){form.moneda[0].checked=0;informa=1;}
if(form.moneda[1].checked){form.moneda[1].checked=0;informa=0;}
if (informa==1){form.importe.value=Math.round((importe/166.386)*100)/100;form.moneda[1].checked=1;}
if (informa==0){form.importe.value=Math.round(importe*166.386);form.moneda[0].checked=1;}
caldescuento(form)
}

// Cálculos descuento bancario ------------------------------------------------
function caldctoban(form)
{
var moneda;
if(form.moneda[0].checked){moneda=0;}
if(form.moneda[1].checked){moneda=1;}
importe1=form.importe1.value*1;
gvariables=form.gvariables.value*1;
dias=form.dias.value*1;

tdescuento=form.tdescuento.value/100;
importe2=form.importe2.value*1;

var efectivo;
efectivo=importe1*(1-(gvariables/100)-(dias*tdescuento/3600))-importe2;
form.efectivo.value=formatodec(efectivo,moneda);

}
function cambiadctoban(form)
{
var importe1;
var importe2;
var informa;
importe1=form.importe1.value*1;
importe2=form.importe2.value*1;

if(form.moneda[0].checked){form.moneda[0].checked=0;informa=1;}
if(form.moneda[1].checked){form.moneda[1].checked=0;informa=0;}
if (informa==1)
{
form.importe1.value=Math.round((importe1/166.386)*100)/100;
form.importe2.value=Math.round((importe2/166.386)*100)/100;
form.moneda[1].checked=1;
}
if (informa==0)
{
form.importe1.value=Math.round(importe1*166.386);
form.importe2.value=Math.round(importe2*166.386);
form.moneda[0].checked=1;
}
caldctoban(form)
}
// Cáculo descuento de dividendos-----------------
function caldctodiv(form){
var moneda;
if(form.moneda[0].checked){moneda=0;}
if(form.moneda[1].checked){moneda=1;}

dividendos=form.importe.value*1;
rendimiento=form.rendimiento.value/100;
duracion=form.duracion.value*1;

var cotizacioncte;
cotizacioncte=dividendos*(Math.pow(1+rendimiento,duracion)-1)/(rendimiento*Math.pow(1+rendimiento,duracion));
form.cotizacioncte.value=formatodec(cotizacioncte,moneda);

var cotizacionperpe;
cotizacionperpe=dividendos/rendimiento;
form.cotizacionperpe.value=formatodec(cotizacionperpe,moneda);

}
function cambiadctodiv(form)
{
var importe;
var informa;
importe=form.importe.value*1;

if(form.moneda[0].checked){form.moneda[0].checked=0;informa=1;}
if(form.moneda[1].checked){form.moneda[1].checked=0;informa=0;}
if (informa==1){form.importe.value=Math.round((importe/166.386)*100)/100;form.moneda[1].checked=1;}
if (informa==0){form.importe.value=Math.round(importe*166.386);form.moneda[0].checked=1;}
caldctodiv(form)
}
// Cálculos flujo de caja--------------------
function calflcaja(form)
{
var moneda;
if(form.moneda[0].checked){moneda=0;}
if(form.moneda[1].checked){moneda=1;}

importe1=form.importe1.value*1;
importe2=form.importe2.value*1;
importe3=form.importe3.value*1;
importe4=form.importe4.value*1;


var flujo;
flujo=importe1+importe2+importe3-importe4;
form.flujo.value=formatodec(flujo,moneda);

}

function cambia4(form)
{
var informa;
importe1=form.importe1.value*1;
importe2=form.importe2.value*1;
importe3=form.importe3.value*1;
importe4=form.importe4.value*1;

if(form.moneda[0].checked){form.moneda[0].checked=0;informa=1;}
if(form.moneda[1].checked){form.moneda[1].checked=0;informa=0;}
if (informa==1)
{
form.importe1.value=Math.round((importe1/166.386)*100)/100;
form.importe2.value=Math.round((importe2/166.386)*100)/100;
form.importe3.value=Math.round((importe3/166.386)*100)/100;
form.importe4.value=Math.round((importe4/166.386)*100)/100;
form.moneda[1].checked=1;
}
else
{
form.importe1.value=Math.round(importe1*166.386);
form.importe2.value=Math.round(importe2*166.386);
form.importe3.value=Math.round(importe3*166.386);
form.importe4.value=Math.round(importe4*166.386);
form.moneda[0].checked=1;
}
calflcaja(form)
}

// Cálculos fondo de comercio----------------------------------------------
function calfcomercio(form)
{
var moneda;
if(form.moneda[0].checked){moneda=0;}
if(form.moneda[1].checked){moneda=1;}
bajustado=form.bajustado.value*1;
bfuturo=form.bfuturo.value*1;
bnormal=form.bnormal.value*1;
superbeneficio=form.superbeneficio.value*1;
valor=form.valor.value*1;
tipointeres=form.tipointeres.value/100;

var fcomercioindirecta;
fcomercioindirecta=(valor+bajustado)/2;
form.fcomercioindirecta.value=formatodec(fcomercioindirecta,moneda);

var fcomerciodirecta;
if(form.bfuturo.value==null){fcomerciodirecta=(bfuturo-(valor*tipointeres))/(2*tipointeres);}
if(form.valor.value==null){fcomerciodirecta=(bfuturo-bnormal)/(2*tipointeres);}
if(form.bnormal.value==null){fcomerciodirecta=superbeneficio/(2*tipointeres);}
if(form.tipointeres.value==null){alert("Debes introducir el dato del tipo de interes");}
form.fcomerciodirecta.value=formatodec(fcomerciodirecta,moneda);

}

function cambiafcomercio(form)
{
var informa;
bajustado=form.bajustado.value*1;
bfuturo=form.bfuturo.value*1;
bnormal=form.bnormal.value*1;
superbeneficio=form.superbeneficio.value*1;
valor=form.valor.value*1;

if(form.moneda[0].checked){form.moneda[0].checked=0;informa=1;}
if(form.moneda[1].checked){form.moneda[1].checked=0;informa=0;}
if (informa==1)
{
form.bajustado.value=Math.round((bajustado/166.386)*100)/100;
form.bfuturo.value=Math.round((bfuturo/166.386)*100)/100;
form.bnormal.value=Math.round((bnormal/166.386)*100)/100;
form.superbeneficio.value=Math.round((superbeneficio/166.386)*100)/100;
form.valor.value=Math.round((valor/166.386)*100)/100;
form.moneda[1].checked=1;
}
else
{
form.bajustado.value=Math.round(bajustado*166.386);
form.bfuturo.value=Math.round(bfuturo*166.386);
form.bnormal.value=Math.round(bnormal*166.386);
form.superbeneficio.value=Math.round(superbeneficio*166.386);
form.valor.value=Math.round(valor*166.386);
form.moneda[0].checked=1;
}
calfcomercio(form)
}

// Forward Rate Agreement ------------------------------------------------
function calculafra(form)
{
var moneda;
if(form.moneda[0].checked){moneda=0;}
if(form.moneda[1].checked){moneda=1;}
intve=form.intve.value/100;
intliq=form.intliq.value/100;
diasliqui=form.diasliqui.value*1;
diasvenci=form.diasvenci.value*1;
diascont=form.diascont.value*1;
diasano=form.diasano.value*1;
interef=form.interef.value/100;
importe=form.importe.value*1;
diasperio=form.diasperio.value*1;

var interesfra;
interesfra=(intve*diasvenci)-(intliq*diasliqui);
interesfra=interesfra/(diascont*(1+(intliq*diasliqui/diasperio)));
interesfra=Math.round(interesfra*100)/100;
form.interesfra.value=interesfra+" %";

var liquidacion;
liquidacion=(interef-interesfra)*importe/((diasano/diasperio)+interef);
form.liquidacion.value=formatodec(liquidacion,moneda);


}
function cambiafra(form)
{
var importe1;
var informa;
importe1=form.importe.value*1;


if(form.moneda[0].checked){form.moneda[0].checked=0;informa=1;}
if(form.moneda[1].checked){form.moneda[1].checked=0;informa=0;}
if (informa==1)
{
form.importe.value=Math.round((importe1/166.386)*100)/100;
form.moneda[1].checked=1;
}
if (informa==0)
{
form.importe.value=Math.round(importe1*166.386);
form.moneda[0].checked=1;
}
calculafra(form)
}

// Interes civil------------------------------
function calculaicivil(form)
{
var moneda;
if(form.moneda[0].checked){moneda=0;}
if(form.moneda[1].checked){moneda=1;}
tinteres=form.tinteres.value/100;
tiempo=form.tiempo.value*1;
capital=form.capital.value*1;

var interescivil;
interescivil=capital*tiempo*tinteres/365;
form.interescivil.value=formatodec(interescivil,moneda);

}
function cambiacivil(form)
{
var importe1;
var informa;
importe1=form.capital.value*1;


if(form.moneda[0].checked){form.moneda[0].checked=0;informa=1;}
if(form.moneda[1].checked){form.moneda[1].checked=0;informa=0;}
if (informa==1)
{
form.capital.value=Math.round((importe1/166.386)*100)/100;
form.moneda[1].checked=1;
}
if (informa==0)
{
form.capital.value=Math.round(importe1*166.386);
form.moneda[0].checked=1;
}
calculaicivil(form)
}
// Interes comercial------------------------------
function calculaicomer(form)
{
var moneda;
if(form.moneda[0].checked){moneda=0;}
if(form.moneda[1].checked){moneda=1;}
tinteres=form.interes.value/100;
tiempo=form.tiempo.value*1;
capital=form.capital.value*1;

var interescomer;
interescomer=capital*tiempo*tinteres/360;
form.interescomer.value=formatodec(interescomer,moneda);

}
function cambiacomer(form)
{
var importe1;
var informa;
importe1=form.capital.value*1;


if(form.moneda[0].checked){form.moneda[0].checked=0;informa=1;}
if(form.moneda[1].checked){form.moneda[1].checked=0;informa=0;}
if (informa==1)
{
form.capital.value=Math.round((importe1/166.386)*100)/100;
form.moneda[1].checked=1;
}
if (informa==0)
{
form.capital.value=Math.round(importe1*166.386);
form.moneda[0].checked=1;
}
calculaicomer(form)
}
// Calculos opción---------------------------------
function calopcion(form)
{
var moneda;
if(form.moneda[0].checked){moneda=0;}
if(form.moneda[1].checked){moneda=1;}
precior=form.precior.value*1;
precioa=form.precioa.value*1;
interes=form.interes.value/100;
importe=form.importe.value*1;

var liquidacion;
liquidacion=(precior-precioa)*importe/100;
liquidacion=liquidacion/((360/90)+interes);
form.liquidacion.value=formatodec(liquidacion,moneda);

}
function cambiaop(form)
{
var informa;
importe1=form.precior.value*1;
importe2=form.precioa.value*1;
importe3=form.importe.value*1;


if(form.moneda[0].checked){form.moneda[0].checked=0;informa=1;}
if(form.moneda[1].checked){form.moneda[1].checked=0;informa=0;}
if (informa==1)
{
form.precior.value=Math.round((importe1/166.386)*100)/100;
form.precioa.value=Math.round((importe2/166.386)*100)/100;
form.importe.value=Math.round((importe3/166.386)*100)/100;

form.moneda[1].checked=1;
}
else
{
form.precior.value=Math.round(importe1*166.386);
form.precioa.value=Math.round(importe2*166.386);
form.importe.value=Math.round(importe3*166.386);

form.moneda[0].checked=1;
}
calopcion(form)
}
// Precio activo financiero------------------------------
function calprecio(form)
{
var moneda;
if(form.moneda[0].checked){moneda=0;}
if(form.moneda[1].checked){moneda=1;}
interes=form.interes.value/100;
dias=form.dias.value*1;
nominal=form.nominal.value*1;

var precio;
precio=nominal/(1+(interes*dias/365));
form.precio.value=formatodec(precio,moneda);

}
function cambiaprecio(form)
{
var importe1;
var informa;
importe1=form.nominal.value*1;


if(form.moneda[0].checked){form.moneda[0].checked=0;informa=1;}
if(form.moneda[1].checked){form.moneda[1].checked=0;informa=0;}
if (informa==1)
{
form.nominal.value=Math.round((importe1/166.386)*100)/100;
form.moneda[1].checked=1;
}
if (informa==0)
{
form.nominal.value=Math.round(importe1*166.386);
form.moneda[0].checked=1;
}
calprecio(form)
}
// Precio bono---------------------------------
function preciobon(form)
{
var moneda;
rendimiento=form.rendimiento.value/100;
interes=form.interes.value/100;
dias=form.dias.value*1;
cuponespost=form.cuponespost.value*1;
cuponestotal=form.cuponestotal.value*1;

var precio;
precio=1/cuponespost*interes*(1-Math.pow(1+rendimiento,-(cuponestotal*cuponespost)));
precio=precio/(Math.pow(1+rendimiento,-(1/cuponespost)-1));
precio=precio+(100*Math.pow(1+rendimiento,-(cuponestotal/cuponespost)));
precio=precio*Math.pow(1+rendimiento,-(dias/365));
precio=Math.round(precio*100);
precio=precio/100;
form.precio.value=precio+" %";

}
// Precio teórico futuro----------------------------------
function perteofur(form)
{
var moneda;
if(form.moneda[0].checked){moneda=0;}
if(form.moneda[1].checked){moneda=1;}
precioactual=form.precioactual.value*1;
financiacion=form.financiacion.value*1;
dividendo=form.dividendo.value*1;

var preciofuturo;
preciofuturo=precioactual+financiacion-dividendo;
form.preciofuturo.value=formatodec(preciofuturo,moneda);

}
function cambiaperteo(form)
{
var informa;
importe1=form.precioactual.value*1;
importe2=form.financiacion.value*1;
importe3=form.dividendo.value*1;


if(form.moneda[0].checked){form.moneda[0].checked=0;informa=1;}
if(form.moneda[1].checked){form.moneda[1].checked=0;informa=0;}
if (informa==1)
{
form.precioactual.value=Math.round((importe1/166.386)*100)/100;
form.financiacion.value=Math.round((importe2/166.386)*100)/100;
form.dividendo.value=Math.round((importe3/166.386)*100)/100;

form.moneda[1].checked=1;
}
else
{
form.precioactual.value=Math.round(importe1*166.386);
form.financiacion.value=Math.round(importe2*166.386);
form.dividendo.value=Math.round(importe3*166.386);

form.moneda[0].checked=1;
}
perteofur(form)
}
//------------------------
//-------------------------------------------------------------------------------------
// Formato de número con decimales

function formatodec(numero,moneda) 
{
var entero;
var decimal;
var coma;
var final;

if(moneda==0){final=".- Ptas.";}else{final=".- Euros";}
numero=String(Math.round(numero*100)/100);


var negativo=numero.indexOf("-");
if(negativo!=-1){numero=numero.substring(1,numero.length);}

var pos=numero.indexOf(".");
if(pos==-1){decimal=0;coma="";}else{decimal=numero.substr(pos,3);coma=","+decimal.substr(1,2);};
if (pos==-1){entero=numero;}else{entero=numero.substring(0,pos);};

	contador = 1
	for (pos = (entero.length - 1); pos > 0; pos--) {
		contador++
		if (contador > 3) {
			entero = entero.substring(0,pos) + "." + entero.substr(pos)
			contador = 1
		}
	}

	if (moneda==0){numero=entero+final;}else{numero=entero+coma+final;}
	if (negativo!=-1)
	{
		if (entero!==0 || decimal!==0)
		{numero= "-" + numero;}
		else
		{
			if (entero==0 && decimal==0)
			{}
			else
			{numero="-" + numero;}
	
		}
		
		
	}
	return (numero)
}
