function executed_button(tipo,formulario,boton){
	//La utiliza la pagina aportaciones.jsp
	var frm = 0;
        var bot = 0;
        for (i=0;i<document.forms.length;i++) if (formulario==document.forms[i].name)frm=i;
        for (i=0;i<document.forms[frm].elements.length;i++) if (boton==document.forms[frm].elements[i].name)bot=i;
   	document.forms[frm].elements[bot].value=tipo;
        document.forms[frm].submit();
}

function jmCheckNumber(str)
{
	return jmCheckNumberAmpliada(str,2);
}

function jmCheckNumberAmpliada(str,decimales)
{
	//La utiliza la pagina aportaciones.jsp

	var re = new RegExp(",", "gi");
	var auxStr = str.replace(re, ".");
	var auxFields = auxStr.split(".");
	
	// SE UTILIZA ESTA FUNCIÓN EN VEZ DE jmIsNumber PORQUE EL NÚMERO PUEDE SER NEGATIVO.
	auxValor = parseInt(auxFields[0]);
	if (isNaN(auxValor)) {
		alert("Parte entera de la cantidad incorrecta: " + str);
		return "";
	}
	
	if (auxFields.length == 2) {
 		if (jmIsNumber(auxFields[1]) == false) {
			alert("Parte decimal de la cantidad incorrecta: " + str);
			return "";
		}
		else if (auxFields[1].length > decimales) {
			alert("Cantidad incorrecta: " + str + " . El número de decimales debe ser como máximo de "+ decimales +". ");
			return "";
		}
	}
	else if (auxFields.length > 2) {
		alert("Cantidad incorrecta: " + str + " (Recuerde que no debe poner separador de miles)");
		return "";
	}
	return auxStr;
}


function checkNumber(str)
{
	//Igual que jmCheckNumber pero no limita a 2 el número de decimales.

	var re = new RegExp(",", "gi");
	var auxStr = str.replace(re, ".");
	var auxFields = auxStr.split(".");
	if (jmIsNumber(auxFields[0]) == false)
	{
		alert("Parte entera de la cantidad incorrecta: " + str);
		return "";
	}
	if (auxFields.length == 2)
	{
		if (jmIsNumber(auxFields[1]) == false)
		{
			alert("Parte decimal de la cantidad incorrecta: " + str);
			return "";
		}
	}
	else if (auxFields.length > 2)
	{
		alert("Cantidad incorrecta: " + str + " (Recuerde que no debe poner separador de miles)");
		return "";
	}
	return auxStr;
}


function jmIsNumber(jm)
{
	//La utiliza la función Javascript jmCheckNumber

	for (i = 0; i < jm.length; i++)
	{
		if	((jm.charAt(i) != '0')	&&
			(jm.charAt(i) != '1')	&&
			(jm.charAt(i) != '2')	&&
			(jm.charAt(i) != '3')	&&
			(jm.charAt(i) != '4')	&&
			(jm.charAt(i) != '5')	&&
			(jm.charAt(i) != '6')	&&
			(jm.charAt(i) != '7')	&&
			(jm.charAt(i) != '8')	&&
			(jm.charAt(i) != '9'))
		{
			return false;
		}
	}
	return true;
}

function f_fechaNumerica(fecha_cadena)
{
  // La utiliza f_validarFecha
  for (var i=0; i < fecha_cadena.length; i++)
  {
     var num = fecha_cadena.substring(i , i+1);
     if (num < "0"  ||  "9" < num)
     {
        return false;
     }
  }

  return true;
}


function f_validarDia(dia, mes, ano)
{
  // La utiliza f_validarFecha	
  var dias = new Array (31,28,31,30,31,30,31,31,30,31,30,31);

  if (ano%4 == 0)
  {
     if (ano%100 == 0) 
     {
        if (ano%400 == 0)
        {
           dias[1] = 29;
        }
     }
     else
        dias[1] = 29;
  }

  if (dia > dias[eval(mes-1)])
  {
     return false;
  }

  if (mes > 12  ||  mes < 1)
  {
     return false;
  }

  return true;
}


function f_validarHora(hora, min, seg) {

    if (parseInt(hora) > 23  ||  parseInt(hora) < 0)
	return false;
	    
    if (parseInt(min) > 59  ||  parseInt(min) < 0)
	return false;
	    
    if (parseInt(seg) > 59  ||  parseInt(seg) < 0)
	return false;	    	    
	
    return true;	    
}


function f_validarFecha(fecha)
{
  // La utiliza   apcttitu_h.jsp(apcta\clien)   apctvalid.jsp(apcta\clien)   apctsvgt_h.jsp(apcta\svgt)
  if (fecha.length != 8)
  {
     return false;
  }

  if (!f_fechaNumerica(fecha))
  {
     return false;
  }

  var dia = fecha.substr(0,2);
  var mes = fecha.substr(2,2);
  var ano = fecha.substr(4,4);

  if(!f_validarDia(dia, mes, ano))
  {
      return false;
  }

  return true;

}


function f_validarFecha_fm2(fecha)
{

  if (fecha.length != 19)
     return false;

  date =fecha.substr(0, fecha.indexOf(" "));
  time = fecha.substr(fecha.indexOf(" ")+1);
 
  rep = /\//g;
  date = date.replace(rep,'');
  rep = /:/g;
  time = time.replace(rep,'');      

  if (!f_validarFecha(date))
      return false;

  var hora = time.substr(0,2);
  var min  = time.substr(2,2);
  var seg  = time.substr(4,2);   

  if (!jmIsNumber(time)) 
      return false;
         
  if (!f_validarHora(hora, min, seg))
     return false;	    	    

  return true;
}

function chequeo_cadena_dni(cadena) {
	
	// La utilizan apctclub.jsp, apctpfis.jsp, apctpjur.jsp, apcttitut.jsp,
	//             apctsvgt.jsp (apcta\svgt)	
	var max = cadena.length;
	var i = 0;
	var correcto = 0;
	cadena = cadena.toUpperCase();
	
	cadena = deleteAcentos(cadena);
	
	while(i < max) {
		if ((cadena.charAt(i) < 'A') || (cadena.charAt(i) > 'Z')) {
			if ((cadena.charAt(i) != 'Ñ') && (cadena.charAt(i) != '-') && (cadena.charAt(i) != '.') && (cadena.charAt(i) != ',') && (cadena.charAt(i) != ' ') && (cadena.charAt(i) != '/')  && (cadena.charAt(i) != '\\') && (cadena.charAt(i) != '*')) {

				if (isNaN(cadena.charAt(i))) {
					correcto = 1
					alert("El caracter "+ cadena.charAt(i) +" no está permitido");
					break;
				}
			}
		}
		i++;
	}
	if (correcto == 0) {
		return cadena;
	}
	return '';
}

function chequeo_cadena(cadena) {
	var max = cadena.length;
	var i = 0;
	var correcto = 0;
	cadena = cadena.toUpperCase();

	cadena = deleteAcentos(cadena);

	while(i < max) {
		if ((cadena.charAt(i) < 'A') || (cadena.charAt(i) > 'Z')) {
			if ((cadena.charAt(i) != 'Ñ') && (cadena.charAt(i) != '-') && (cadena.charAt(i) != '.') && (cadena.charAt(i) != ',') && (cadena.charAt(i) != ' ') && (cadena.charAt(i) != '/') &&  (cadena.charAt(i) != '\\')) {
				if (isNaN(cadena.charAt(i))) {
					correcto = 1;
					alert("El caracter "+ cadena.charAt(i) +" no está permitido");
					break;
				}
			}
		}
		i++;
	}
	if (correcto == 0) {
		return cadena;
	}
	return '';
}

function chequeo_cadena_NaN(cadena) {
	var max = cadena.length;
	var i = 0;
	var correcto = 0;
	cadena = cadena.toUpperCase();

    cadena = deleteAcentos(cadena);

	while(i < max) {
		if ((cadena.charAt(i) < 'A') || (cadena.charAt(i) > 'Z')) {
			if ((cadena.charAt(i) != 'Ñ') && (cadena.charAt(i) != '-') && (cadena.charAt(i) != '.') && (cadena.charAt(i) != ',') && (cadena.charAt(i) != ' ') && (cadena.charAt(i) != '/') &&  (cadena.charAt(i) != '\\') &&  (cadena.charAt(i) != 'Ç')) {				correcto = 1
				alert("El caracter "+ cadena.charAt(i) +" no está permitido");
				break;
			}
		}
		i++;
	}
	if (correcto == 0) {
		return cadena;
	}
	return '';
}

function deleteAcentos(cadena) {
	
	var retorno = '';
	a_Acentos = new Array('Á','A','Ä','A',
						  'É','E','Ë','E',
						  'Í','I','Ï','I',
						  'Ó','O','Ö','O',
						  'Ú','U','Ü','U');

	var max        = cadena.length;                            
	var i          = 0;
	var encontrado = false;
	var lenMax     = (a_Acentos.length)-1;

    while(i < max) {

		encontrado = false;    	
    	for (j=0; j < lenMax; j=j+2) {
    	
    	    if (cadena.charAt(i) == a_Acentos[j]) {
    	    	retorno += a_Acentos[j+1];
    	    	encontrado = true;
    	    	break;
    		}	
    	}

		if (!encontrado)
			retorno += cadena.charAt(i);

    	i++;	
	}       
	return retorno;             
}

function open_window(t_a, nm, tt, ar, x,y, d, sv)
{

  // la utilizan    apctclub.jsp, apctpfis.jsp, apctpjur.jsp  apcttalon.jsp (apcta\clien)
  //                apctsvgt.jsp  (apcta\svgt)
  //                mer_ayuda.jsp (mercados)
  var aux ="/Scripts/isafcgi.dll/";
  var myW;
  var cS; 
  var jmLoc = top.location.href;
  var dm;	
  jmLoc = jmLoc.toUpperCase();
  cS = f_g(top.location.href);
  d = d.toLowerCase();
  dm = getDm(jmLoc);

  if (d.toLowerCase() != 'https')
	d = 'http';
  else
	d = 'https';
	
  switch (t_a)
  {
   case 0,1:
	  tt = nm;
	  break;
   case 2:
          ar='width=650,height=500,directories=0,resizable=1,location=0,status=0,scrollbars=1,toolbar=1,menubar=0';
	  tt='consola';	
          break;
   case 3,4:
          // no utilizada (correo)
          break;
   case 5:
	  ar = 'statusbar=1,toolbar=0';
          break;
   case 6:
	  ar = 'statusbar=1,toolbar=0,scrollbars=1';
          break;
   case 7:
	  if (nm.indexOf("=") == 0) 
		nm = d+"://"+dm+aux+cS+"/"+cS+nm;
	  else 
		nm = newNombre = d+"://"+dm+aux+cS+"/"+nm;
          break;
   case 8:
	  var k = jmLoc.indexOf('=');
	  while (jmLoc.charAt(k) != '/')
	     	k++;
	  if (jmLoc.substring(0,5)=='HTTP:')
		inicio = 4;
	  else
		inicio = 5;
	  nm = d + jmLoc.substring(inicio,k) + "/R42PRI.PG_ESTAT?" + nm;
          break;
   case 9:
	  nm = d+"://"+dm+nm;
          break;

   case 10:
	  // no hacer nada		
          break;

   case 11:
	  nm = "https://"+dm+aux+cS+"/"+nm;
	  ar = 'statusbar=1,toolbar=0,scrollbars=1';
          break;

   case 12:
     	  ar = 'statusbar=0,toolbar=0,scrollbars=0,resizable=1,width=300,height=300';
          break;

   case 13:
	
	if (sv == '')
		if (jmLoc.indexOf("MEFFC") > 0)
			nm = "https://"+dm+aux+"MEFFC/"+nm;
		else
			nm = "https://"+dm+aux+cS+"/"+nm;
	else 
		if (jmLoc.indexOf("=") == 0) 
			nm = d+"://"+dm+aux+ sv +"/"+ sv + nm;
		else
			nm = d+"://"+dm+aux+ sv +"/"+ nm;
	   ar = 'statusbar=1,toolbar=0,scrollbars=1';
           break;

   case 14:
	   // no hacer nada
           break;
   
   default: 
           alert ("Los parámetros enviados son incorrectos.");
           break;
   }

   myW = window.open(nm,tt,ar);
   if (d == 'http')
	if ((x != '') && (y != ''))
	 	myW.moveTo(x,y);
   myW.focus();
}


function f_mayorActual(dia, mes, ano)
{
  var dia = fecha.substr(0,2);
  var mes = fecha.substr(3,2);
  var ano = fecha.substr(6,4);

  var fechaActual = new Date();
  
  
  var retorno = false;

  if (eval(ano) > eval(fechaActual.getFullYear()))
     retorno = true;
  else if (eval(ano)  ==  eval(fechaActual.getFullYear())) {

     if (eval(mes) > eval(fechaActual.getMonth()+1)) {
         retorno = true;
     }
     else if (eval(mes) == eval(fechaActual.getMonth()+1)) {

         if (eval(dia) > eval(fechaActual.getDate()))
     		retorno = true;
     }
  }

  return retorno;
}

function f_compararFechas(fecha_ini,fecha_fin)
{
  // FORMATO: DDMMYYYY
  var dia_ini = fecha_ini.substr(0,2);
  var mes_ini = fecha_ini.substr(2,2);
  var ano_ini = fecha_ini.substr(4,4);
  var dia_fin = fecha_fin.substr(0,2);
  var mes_fin = fecha_fin.substr(2,2);
  var ano_fin = fecha_fin.substr(4,4);

  if (eval(ano_ini) > eval(ano_fin))
  {
     return false;
  }
  else if (eval(ano_ini)  ==  eval(ano_fin))
  {
     if (eval(mes_ini) > eval(mes_fin))
     {
         return false;
     }
     else if (eval(mes_ini) == eval(mes_fin))
     {
         if (eval(dia_ini) > eval(dia_fin))
         {
             return false;
         }
     }
  }

  return true;
}

// DEVUELVE UN NUMERO SIN FORMATO: PERMITE LOS SIGUIENTES FORMATOS:
//	1.000,55   1000,55   1000   100.000
function getNumber(str) {

    var ret = "";
    if (str.indexOf(",") > -1) {
    
        var auxFields = str.split(",");
        
        if (auxFields.length > 2) {
    	    return ret;
        }
        
    	var ent = auxFields[0];
    	var dec = auxFields[1];
    	var aux1 = tratarEnteros(ent);
    	
    	// SE COMPRUEBA SI LA PARTE DECIMAL ESTÁ CORRECTA Y SÓLO SON NUMEROS.
    	if (!jmIsNumber(dec)) {
    	    return ret;
    	} 
    	else {
    	    ret = aux1 + "." + dec;
    	}
    }
    else {
        ret = tratarEnteros(str);
    }
    return ret;
}

function tratarEnteros(ent) {
    var ret = "";

    if (ent.indexOf(".") == -1)
    	ret = ent;
    else {
        var auxFields = ent.split(".");

        for (var i=0; i<auxFields.length; i++) {
            aux = auxFields[i];
            if (i > 0  &&  aux.length != 3) {
            	return "";
            }
            else if (i == 0 && aux.length > 3) {
            	return "";
            }
        }
        var re = /\./gi;
        ret = ent.replace(re, '');
    }
    return ret;
}
