function dosventanas2() {
	location.href='../servlet/dempresarial.Directorio';
	var ve=window.open('../inicio.htm','INICIO','width=350,height=450,toolbar=no,resizable=yes,scrollbars=yes');
}

function ocultarHelp() {
    document.getElementById("DIVhelp").style.visibility="hidden";
    
}

function mostrarHelp() {
   
    if ((screen.width>=1024) && (screen.height>=768))
    {
        if(navigator.appName=="Netscape")
        {
            document.getElementById("DIVhelp").style.top="19.7%";
            document.getElementById("DIVhelp").style.left="12.3%";
        }
        else
        {
            document.getElementById("DIVhelp").style.top="19.5%";
            document.getElementById("DIVhelp").style.left="12.6%";
        }
        
    }
    else
    {
        if(navigator.appName=="Netscape")
        {
            document.getElementById("DIVhelp").style.top="29.2%";
            document.getElementById("DIVhelp").style.left="1.5%";
        }
        else
        {   
            document.getElementById("DIVhelp").style.top="26.7%";
            document.getElementById("DIVhelp").style.left="1.8%";
        }
    }
    document.getElementById("DIVhelp").style.visibility="visible";
    Cortina ('DIVhelp','ABAJODERECHA', 8, 1);
    
}


/**
 * Mostrar el árbol JavaScript
 **/
function muestraSat()
{
    var errores = validarIntegridad();
    
    /*if (errores == "") {

        // Comprobar si un año esta vacio o no:
        var mostrar = true;
        if ( emptyyear(1) || emptyyear(2) || emptyyear(3) || emptyyear(4))
           mostrar = confirm ("Alguno de los años no ha sido introducido.\nEl informe puede ofrecer resultados incorrectos. ¿Continuar?");

        if (mostrar) {
            document.location.href="#top";
            document.getElementById("sat").style.visibility="visible";
        }
    } 
    else {
        alert (errores);
    }*/

   
    //queremos que se pueda continuar a pesar de que no cuadren el activo y el pasivo
    var mostrar = true;
    if (errores != "") {
       mostrar =confirm (errores+"\n¿Continuar?");
     }

     if(mostrar)
     {
        // Comprobar si un año esta vacio o no:
        if ( emptyyear(1) || emptyyear(2) || emptyyear(3) || emptyyear(4))
           mostrar = confirm ("Alguno de los años no ha sido introducido.\nEl informe puede ofrecer resultados incorrectos. ¿Continuar?");
     }


    if(mostrar)
    {
        document.location.href="#top";
        document.getElementById("sat").style.visibility="visible";
    }
        
}
/**
 * Validaciones adicionales JavaScript
 **/
 var GLOBAL_n1 = 0;
 var GLOBAL_n2 = 0;
 var GLOBAL_n3 = 0;
 var GLOBAL_n4 = 0;

/*function validarIntegridad() {

  // A_N1 debe ser igual a P_N1
  if (document.getElementById("A_N1").value != document.getElementById("P_N1").value) 
      return  "Año " + GLOBAL_n1 + ": Total Activo es distinto a Total Pasivo";

  // A_N2 debe ser igual a P_N2
  if (document.getElementById("A_N2").value != document.getElementById("P_N2").value) 
      return  "Año " + GLOBAL_n2 + ": Total Activo es distinto a Total Pasivo";

  // A_N3 debe ser igual a P_N3
  if (document.getElementById("A_N3").value != document.getElementById("P_N3").value) 
      return  "Año " + GLOBAL_n3 + ": Total Activo es distinto a Total Pasivo";

  // A_N4 debe ser igual a P_N4
  if (document.getElementById("A_N4").value != document.getElementById("P_N4").value) 
      return  "Año " + GLOBAL_n4 + ": Total Activo es distinto a Total Pasivo";
   return "";
}*/

//en este caso comprobamos tambien que la cuenta de resultados coincide con la de pyg
function validarIntegridad() {

    var cadenaError = "Total Activo distinto Total Pasivo. Años:";
    var cadenaError2 = "Total Resultado distinto en Balance. Años:";
    var error = false;
    var error2 = false;
  // A_N1 debe ser igual a P_N1
  if (document.getElementById("A_N1").value != document.getElementById("P_N1").value)
  {
       cadenaError += GLOBAL_n1 + " ";
       error = true;
  }

  // A_N2 debe ser igual a P_N2
  if (document.getElementById("A_N2").value != document.getElementById("P_N2").value) 
  {
      cadenaError += GLOBAL_n2 + " ";
      error = true;
  }

  // A_N3 debe ser igual a P_N3
  if (document.getElementById("A_N3").value != document.getElementById("P_N3").value) 
  {
      cadenaError += GLOBAL_n3 + " ";
      error = true;
  }

  // A_N4 debe ser igual a P_N4
  if (document.getElementById("A_N4").value != document.getElementById("P_N4").value) 
  {
      cadenaError += GLOBAL_n4 + " ";
      error = true;
  }
  
  //ahora comprobamos los datos de pérdidas y ganancias: PA_Nx = REJ_Nx para x=1,2,3,4
  // PA4_N1 debe ser igual a REJ_N1
  if (document.getElementById("PA4_N1").value != document.getElementById("REJ_N1").value)
  {
       cadenaError2 += GLOBAL_n1 + " ";
       error2 = true;
  }

  // PA4_N2 debe ser igual a REJ_N2
  if (document.getElementById("PA4_N2").value != document.getElementById("REJ_N2").value)
  {
       cadenaError2 += GLOBAL_n2 + " ";
       error2 = true;
  }

  // PA4_N3 debe ser igual a REJ_N3
  if (document.getElementById("PA4_N3").value != document.getElementById("REJ_N3").value)
  {
       cadenaError2 += GLOBAL_n3 + " ";
       error2 = true;
  }

  // PA4_N4 debe ser igual a REJ_N4
  if (document.getElementById("PA4_N4").value != document.getElementById("REJ_N4").value)
  {
       cadenaError2 += GLOBAL_n4 + " ";
       error2 = true;
  }


  if(error && error2)
    return cadenaError + "\n" + cadenaError2;
  else if(error && (!error2))
    return cadenaError;
  else if((!error) && error2)
    return cadenaError2;
  else
    return "";
}

/**
 * Dice si un año esta vacío o no
 */
function emptyyear (numero) {

  // Recorro todos los campos del formulario terminados en _Nnumero
  for (i=0; i<document.forms[0].elements.length; i++) {
     var elemento = document.forms[0].elements[i];
     if ((elemento.type=="text")
        &&(elemento.name.indexOf( "_N"+numero )>0 )
        ) {
            if ((elemento.value != "") && (elemento.value != "0")) return false;
        }   
  } 
  return true;
}



function muestraLoadFile()
{
    document.location.href="#top";
    document.getElementById("DIVcargarFichero").style.visibility="visible";
}

function llamaGuardar() {
        /*
         * Quitar puntos de millar antes de enviar
        for (i=0; i<document.forms[0].elements.length; i++) {
             if (document.forms[0].elements[i].type=="text") {
                document.forms[0].elements[i].value = quitarPuntosMillar (quitarEspacios(document.forms[0].elements[i].value));
            }   
        }
        */
        document.forms[0].target="_self";
	document.getElementById("action").value = "SAVE";
        
	document.forms[0].submit();
}

function sendSat()
{
    
    if(document.getElementById("sector").value=="")
    {
        alert("Debe escoger al menos un sector");
    }
    else
     { 
        document.forms[0].target="_blank";
        document.getElementById("action").value = "generate";
        document.forms[0].submit();

        //añadimos capa de gif animados
        x = screen.availWidth;
        x = x-((x/2)+150);
	y = screen.availHeight;
        y = y-((y/2)+100);
       
	var capa = window.open('capa.html','capa', 'width=300,height=100,scrollbars=0,left='+x+',top='+y);
        
    }
}

function ocultar(elemento)
{
    document.getElementById(elemento).style.visibility="hidden";
}


function refrescarTodo() {
   var i =0;
   for (i=1; i<=4; ++i) {
    cambioCampo (document.getElementById("A_N"+i)  );
    cambioCampo (document.getElementById("PA1_N"+i));
    cambioCampo (document.getElementById("IE_N"+i));
    
   }
}



function cambioCampo(objeto) {

  // OBTENER EL VALOR NUMÉRICO DEL CAMPO
  var valornumerico = pasarAnumero (objeto);

  // VALIDACIONES BÁSICAS SOBRE EL CAMPO:
  // Todos los valores son numéricos positivos salvo:

  // Solo negativos: PA5_N1
  if (objeto.name == "PA5_N1" || objeto.name == "PA5_N2" || objeto.name == "PA5_N3" || objeto.name == "PA5_N4") {
      if (valornumerico>0) {
      	  alert ("Se esperaba un campo numérico NEGATIVO. Valor incorrecto.");
       	  objeto.focus();
	  objeto.value = "";
       	  objeto.select();
       	  return -1;   	 
     }   
  } 
  else {
    // Positivos y negativos: PA4_N1, GE4_N1, GF2_N1, REX_N1, IS_N1
    if ((objeto.name != "PA4_N1") && (objeto.name != "PA4_N2")&& (objeto.name != "PA4_N3")&& (objeto.name != "PA4_N4")
       &&(objeto.name != "GE4_N1")&&(objeto.name != "GE4_N2")&&(objeto.name != "GE4_N3")&&(objeto.name != "GE4_N4")
       &&(objeto.name != "GF2_N1")&&(objeto.name != "GF2_N2")&&(objeto.name != "GF2_N3")&&(objeto.name != "GF2_N4")
       &&(objeto.name != "REX_N1")&&(objeto.name != "REX_N2")&&(objeto.name != "REX_N3")&&(objeto.name != "REX_N4")
       &&(objeto.name != "IS_N1")&&(objeto.name != "IS_N2")&&(objeto.name != "IS_N3")&&(objeto.name != "IS_N4")
       &&(valornumerico<0)) {
      	  alert ("Se esperaba un campo numérico POSITIVO. Valor incorrecto.");
       	  objeto.focus();
	  objeto.value = "";
       	  objeto.select();
       	  return -1;   	 
       }  
  }

  // Pongo los puntos decimales otra vez:
  objeto.value = ponerPuntosMillar ( ""+ valornumerico );

  // Obtener la columna:
  var anno = objeto.name.charAt(objeto.name.length-1);

  // CAMPOS CALCULADOS DE ACTIVO	
  if (objeto.name.charAt(0) == "A") {
     	sumatorio ("AB_N",anno,["AB1_N","AB2_N","AB3_N","AB4_N","AB5_N"]) ;
	sumatorio ("AD_N",anno,["AD1_N","AD2_N","AD3_N","AD4_N","AD5_N","AD6_N","AD7_N"]) ;
	sumatorio ("A_N",anno,["AA_N","AB_N","AC_N","AD_N"]) ;
  } else {
	if (objeto.name.charAt(0) == "P") {
		sumatorio ("PA_N",anno,["PA1_N","PA2_N","PA3_N","PA4_N","PA5_N"]) ;
		sumatorio ("P_N",anno,["PA_N","PB_N","PC_N","PD_N","PE_N"]) ;
  	} else {
		sumatorio ("IE_N",anno,["IE1_N","IE2_N"]) ;
		sumatorio ("GE_N",anno,["GE1_N","GE2_N","GE3_N","GE4_N","GE5_N"]) ;

		var resultado = pasarAnumero ( document.getElementById("IE_N"+anno) );
		resultado = resultado - pasarAnumero ( document.getElementById("GE_N"+anno) );
		document.getElementById("RE_N"+anno).value = ponerPuntosMillar (""+resultado);

		sumatorio ("IF_N",anno,["IF1_N","IF2_N"]) ;
		sumatorio ("GF_N",anno,["GF1_N","GF2_N","GF3_N"]) ;

		resultado = pasarAnumero ( document.getElementById("IF_N"+anno) );
		resultado = resultado - pasarAnumero ( document.getElementById("GF_N"+anno) );
		document.getElementById("RF_N"+anno).value = ponerPuntosMillar (""+resultado);


		sumatorio ("RAO_N",anno,["RE_N","RF_N"]) ;
		sumatorio ("RAI_N",anno,["RAO_N","REX_N"]) ;

		resultado = pasarAnumero ( document.getElementById("IS_N"+anno) );
		resultado = resultado + pasarAnumero ( document.getElementById("OI_N"+anno) );
		resultado = pasarAnumero ( document.getElementById("RAI_N"+anno) ) - resultado;
		document.getElementById("REJ_N"+anno).value = ponerPuntosMillar (""+resultado);
	}
  }

}


/**
 * Campo es el campo donde se almacena el valor
 * El anno vale 1 a 4 según la columna
 * Valores es una array con los datos a sumar
 **/
function sumatorio (campo, anno, valores) {
  var resultado = 0;
  for (i in valores)
	resultado += pasarAnumero ( document.getElementById(valores[i]+anno) );
  document.getElementById(campo+anno).value = ponerPuntosMillar (""+resultado);
}


/**
 *
 * Recibe una cadena con puntos decimales y la pasa a número
 *
 **/
function pasarAnumero (objeto) {
  
  var valornumerico;

  // Si la cadena es vacía --> valor numérico 0
  if (cadenaVacia (objeto.value)) {
     valornumerico = 0;
  } 
  // Si la cadena no es vacía:
  else {
 	// Quito los puntos decimales
 	var sinpuntos = quitarPuntosMillar (quitarEspacios(objeto.value));
  
	// Compruebo el signo:
	var signo = 1;
	if (sinpuntos.charAt(0)=="-") {
	   signo = -1;
	   sinpuntos = sinpuntos.substring (1);
	}

 	// Compruebo que el datos introducido sin puntos es numérico
 	var error ="N";
        for (var i = 0; i < sinpuntos.length; i ++) 	{
      	   if ((sinpuntos.charAt(i)<"0")||(sinpuntos.charAt(i)>"9")) error ="S";
 	}
 	if (error=="S") {
      	  alert ("Se esperaba un campo numérico. Valor incorrecto.");
       	  objeto.focus();
	  objeto.value = "";
       	  objeto.select();
       	  return -1;   	 
  	}
   
        valornumerico = signo * parseInt (sinpuntos);
  }
  return valornumerico;
}

/**
 * Tratamiento del campo vacío:
 **/
function cadenaVacia (cadena) {
 	var nulo = "N";
 	if (cadena=="") nulo="S";
	else {
		if (cadena!= null) {
		  for ( var i = 0; i < cadena.length; i ++) {
		  	if (cadena.charAt(i) != " ")
				return false;
		  }
		}
		else nulo="S";
	}
	
	if (nulo="S") return true;
	return false;
}


/**
 *
 * Eliminar los puntos de millares
 *
 **/
 function quitarPuntosMillar (origen) {
   var cadena = "";
   for (var i = 0; i < origen.length; i ++) 	{
      	if (origen.charAt(i)!=".") cadena += origen.charAt(i);
   }
   return cadena;
 }


/**
 *
 * Eliminar los espacios
 *
 **/
 function quitarEspacios (origen) {
   var cadena = "";
   for (var i = 0; i < origen.length; i ++) 	{
      	if (origen.charAt(i)!=" ") cadena += origen.charAt(i);
   }
   return cadena;
 }


/**
 *
 * Poner los puntos de millares
 *
 **/
 function ponerPuntosMillar (origen) {
   var cadena = "";
   var signo = "";
   // Quito espacios iniciales
   while (origen.charAt(0)==" ") origen = origen.substr(1,origen.length-1);

   // Miro signo
   if (origen.charAt(0)=="-")   {
        signo="-";
        origen = origen.substr(1,origen.length-1);
   }
   for (var i = origen.length-1; i>= 0; i --) 	{
	cadena = origen.charAt(i) + cadena;
      	if ( (((origen.length -i)%3) ==0) 
             && (i != 0 )
           ) cadena = "." + cadena;
   }
   return signo + cadena;
 }


/**
 *
 * Comprobar campo numérico
 *
 **/

 function checkNumber(objeto)  {
    var error ="N";
	for (var i = 0; i < objeto.value.length; i ++) 	{
      	if ((objeto.value.charAt(i)<"0")||(objeto.value.charAt(i)>"9")) error ="S";
	}
    if (error=="S") {
       alert ("Campo numérico. Valor incorrecto.");
       objeto.focus();
       objeto.select();
       return false;   	 
    }
    return true;	
 }


 function checkImporte (objeto)  {
	 var error ="N";
	 for (var i = 0; i < (objeto.value.length-4); i ++) 	{
	   	if ((objeto.value.charAt(i)<"0")||(objeto.value.charAt(i)>"9")) error ="S";
	 }
	 if (objeto.value.charAt(objeto.value.length-3) != '.' ) error ="S";
	 if ((objeto.value.charAt(objeto.value.length-2)<"0")||(objeto.value.charAt(objeto.value.length-2)>"9")) error ="S";
	 if ((objeto.value.charAt(objeto.value.length-1)<"0")||(objeto.value.charAt(objeto.value.length-1)>"9")) error ="S";	 
	 if (error=="S") {
	    alert ("Valor incorrecto. Formato: numero punto 2decimales. Ejemplo: 15000.00");
	    objeto.focus();
	    objeto.select();
	    return false;   	 
	 }
	 return true;	 
 }


/**
 *
 * Comprobar longitud de un campo
 *
 **/

 function checkLength(objeto, minimo,maximo) {
    var error = "N";
    if (objeto.value=="") error = "S";
    if (objeto.value== null) error = "S";
    if (objeto.value.length < minimo) error = "S";
    if (objeto.value.length > maximo) error = "S";    
    if (error=="S") {
       alert ("Longitud incorrecta.");
       objeto.focus();
       objeto.select();
       return false;   	 
    }
    return true;	
}


function noVacio(objeto)  {
 	var nulo = "N";
 	if (objeto.value=="") nulo="S";
	else {
		if (objeto.value!= null) {
		  for ( var i = 0; i < objeto.value.length; i ++) {
		  	if (objeto.value.charAt(i) != " ")
				return true;
		  }
		}
		else nulo="S";
	}
	
	if (nulo="S") 	{
		alert ("Campo obligatorio. Introduzca valor");
		objeto.focus();
		objeto.select();
		return false;
	}
	return true;
 }


function noVacioSinAlert(objeto)  {
 	var nulo = "N";
 	if (objeto.value=="") nulo="S";
	else {
		if (objeto.value!= null) {
		  for ( var i = 0; i < objeto.value.length; i ++) {
		  	if (objeto.value.charAt(i) != " ")
				return true;
		  }
		}
		else nulo="S";
	}
	
	if (nulo="S") return false;
	return true;
 }


function checkCaducidad(objeto)  {
   var error ="N";
    if (objeto.value.length != 5) error="S";
 	if (objeto.value.charAt(2) != '/' ) error ="S";
	if ((objeto.value.charAt(0)<"0")||(objeto.value.charAt(0)>"9")) error ="S";
	if ((objeto.value.charAt(1)<"0")||(objeto.value.charAt(1)>"9")) error ="S";
	if ((objeto.value.charAt(3)<"0")||(objeto.value.charAt(3)>"9")) error ="S";
	if ((objeto.value.charAt(4)<"0")||(objeto.value.charAt(4)>"9")) error ="S";			
	if (error=="N") 	{
		var mes = objeto.value.substring (0,2);
		if (eval(mes) > 12) error = "S";
	}
    if (error=="S") {
	   alert ("Fecha de caducidad incorrecta. Formato MM/AA");
	   objeto.focus();
	   objeto.select();
	   return false;   	 
    }
    return true;
 }

