// (c) Luis Miguel Molinero
// 31-Octubre-2002
// calcdiagnos.js -> calcdiagnos.htm
//-------------------------------------------------------
function getCampoVacio(textObj)
{

  if (textObj.value.length == 0) return true;
  for (var i=0; i<textObj.value.length; ++i) {
   var ch = textObj.value.charAt(i);
   if (ch != ' ' && ch != '\t') return false;
  }
  return true;
}
//-------------------------------------------------------
function decimales2(anumero)
{
  num = Math.round(anumero*100)/100;
  return num
}
//-------------------------------------------------------
function limpiadatos()
{
   document.form1.A.value="";
   document.form1.B.value="";
   document.form1.C.value="";
   document.form1.D.value="";
   document.form1.AB.value="";
   document.form1.AC.value="";
   document.form1.CD.value="";
   document.form1.BD.value="";
   document.form1.NT.value="";
}
//-------------------------------------------------------
function limpia()
{
   document.form1.Sensibilidad.value="";
   document.form1.SI.value="";
   document.form1.SS.value="";

   document.form1.Especificidad.value=""
   document.form1.EI.value="";
   document.form1.ES.value="";  
   
   document.form1.CPP.value="";
   document.form1.CPPI.value="";
   document.form1.CPPS.value="";
  
   document.form1.CPN.value="";
   document.form1.CPNI.value="";
   document.form1.CPNS.value="";
   
   document.form1.VPP.value="";
   document.form1.VPPI.value="";
   document.form1.VPPS.value="";   
   
   document.form1.VPN.value="";
   document.form1.VPNI.value="";
   document.form1.VPNS.value="";   
   
   document.form1.AB.value="";
   document.form1.AC.value="";
   document.form1.CD.value="";
   document.form1.BD.value="";
   document.form1.NT.value="";
 }
//-------------------------------------------------------
var
 na = 0;
 nb = 0;
 nc = 0;
 nd = 0;
 
//-------------------------------------------------------
function calcTotales()
{
  
  if (getCampoVacio(document.form1.A)) { na = 0 } else { na = 1*document.form1.A.value }
  if (getCampoVacio(document.form1.B)) { nb = 0 } else { nb = 1*document.form1.B.value }
  if (getCampoVacio(document.form1.C)) { nc = 0 } else { nc = 1*document.form1.C.value }  
  if (getCampoVacio(document.form1.D)) { nd = 0 } else { nd = 1*document.form1.D.value }  
  nab=na+nb; nac=na+nc; ncd=nc+nd; nbd=nb+nd;
  total=nab+ncd;
  document.form1.AC.value=nac;
  document.form1.AB.value=nab;
  document.form1.CD.value=ncd;
  document.form1.BD.value=nbd;
  
  document.form1.NT.value=total;
  
  if (nac > 0) { 
    S=na/nac;
    document.form1.Sensibilidad.value=decimales2(S);
    delta=1.96*Math.sqrt(S*(1-S)/nac);
    SI=S-delta;
    SS=S+delta;
    document.form1.SI.value=decimales2(SI);
    document.form1.SS.value=decimales2(SS); 
  } else {
    S=-1;
    document.form1.Sensibilidad.value="";
    document.form1.SI.value="";
    document.form1.SS.value=""; }
  
  if (nbd > 0) {
   E=nd/nbd;
   document.form1.Especificidad.value=decimales2(E);
   delta=1.96*Math.sqrt(E*(1-E)/nbd)
   EI=E-delta; ES=E+delta;
   document.form1.EI.value=decimales2(EI);
   document.form1.ES.value=decimales2(ES); 
  } else {
   E=-1;
   document.form1.Especificidad.value=""
   document.form1.EI.value="";
   document.form1.ES.value="";  }
   
  if (nab > 0) {
   VPP=na/nab;
   document.form1.VPP.value=decimales2(VPP);
   delta=1.96*Math.sqrt(VPP*(1-VPP)/nab);
   VPPI=VPP-delta;
   VPPS=VPP+delta;
   document.form1.VPPI.value=decimales2(VPPI);
   document.form1.VPPS.value=decimales2(VPPS);
   
  } else {
   document.form1.VPP.value="";
   document.form1.VPPI.value="";
   document.form1.VPPS.value="";   
  } 

  if (ncd > 0) {
   VPN=nd/ncd;
   document.form1.VPN.value=decimales2(VPN);
   delta=1.96*Math.sqrt(VPN*(1-VPN)/ncd);
   VPNI=VPN-delta;
   VPNS=VPN+delta;
   document.form1.VPNI.value=decimales2(VPNI);
   document.form1.VPNS.value=decimales2(VPNS);
   
  } else {
   document.form1.VPN.value="";
   document.form1.VPNI.value="";
   document.form1.VPNS.value="";   
  } 
  
  if ((S >= 0)&&(E >= 0)) {
  
   if (E==1) {
    document.form1.CPP.value="Inf.";
    document.form1.CPPI.value="";
    document.form1.CPPS.value="";
   } else {
    CPP=S/(1-E);
    document.form1.CPP.value=decimales2(CPP);

    delta=1.96*Math.sqrt((1-S)/na+E/nb);
    CPPI=Math.exp(Math.log(CPP)-delta);
    CPPS=Math.exp(Math.log(CPP)+delta);
    document.form1.CPPI.value=decimales2(CPPI);
    document.form1.CPPS.value=decimales2(CPPS);
   }
   
   if (E==0) {
    document.form1.CPN.value="Inf.";
    document.form1.CPNI.value="";
    document.form1.CPNS.value="";
   } else {
    CPN=(1-S)/E;
    document.form1.CPN.value=decimales2(CPN);

    delta=1.96*Math.sqrt((1-E)/nd+S/nc);
    CPNI=Math.exp(Math.log(CPN)-delta);
    CPNS=Math.exp(Math.log(CPN)+delta);
    document.form1.CPNI.value=decimales2(CPNI);
    document.form1.CPNS.value=decimales2(CPNS);
   }
   
  } else {
   document.form1.CPP.value="";
   document.form1.CPPI.value="";
   document.form1.CPPS.value="";
  
   document.form1.CPN.value="";
   document.form1.CPNI.value="";
   document.form1.CPNS.value="";
  } 
} 
//-------------------------------------------------------
 

