var digits = "0123456789";
var lowercaseLetters = "abcdefghijklmnopqrstuvwxyzáéíóúñü"
var uppercaseLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZÁÉÍÓÚÑ"
var defaultEmptyOK = false


//borra los espacios en blanco de una cadena
function Trim(Cadena)
{
   Cadena = Cadena.replace( /^\s*/, "" ); //quita los espacios a la iazquierda
   Cadena = Cadena.replace( /\s*$/, "" ); //quita los espacios a la derecha
   return Cadena;
}

//entrega un true si fecha1 es mayor que fecha 2
function EsMayor(Fecha1,Fecha2) //DEVUELVE TRUE SI Fecha1 es > Fecha2 
{
	var Dia1=Fecha1.substr(0,Fecha1.indexOf("/")); 
	Fecha1=Fecha1.substr(Fecha1.indexOf("/")+1); 
	var Mes1=Fecha1.substr(0,Fecha1.indexOf("/")); 
	Fecha1=Fecha1.substr(Fecha1.indexOf("/")+1); 
	var Ano1=Fecha1;  
	
	var Dia2=Fecha2.substr(0,Fecha2.indexOf("/")); 
	Fecha2=Fecha2.substr(Fecha2.indexOf("/")+1); 
	var Mes2=Fecha2.substr(0,Fecha2.indexOf("/")); 
	Fecha2=Fecha2.substr(Fecha2.indexOf("/")+1); 
	var Ano2=Fecha2; 
  	//DEJO LAS FECHAS EN FORMATO AAAAMMDD 
	Fecha1=Ano1+Mes1+Dia1; 
	Fecha2=Ano2+Mes2+Dia2; 
	if (Fecha1<=Fecha2)   
		return (false);
  	else   
		return (true);
}

function vemes(Fecha1,mes)
{
	var Dia1=Fecha1.substr(0,Fecha1.indexOf("/")); 
	Fecha1=Fecha1.substr(Fecha1.indexOf("/")+1); 
	var Mes1=Fecha1.substr(0,Fecha1.indexOf("/")); 
	Fecha1=Fecha1.substr(Fecha1.indexOf("/")+1); 
	var Ano1=Fecha1;
	if (Mes1==mes)
		return true;
	else
		return false;
}


//definicion de variables para validar la fecha
var a, mes, dia, anyo, febrero;

//funcion que nos entrega un true si el año es bisiesto
function anyoBisiesto(anyo)
{
	// si el año introducido es de dos cifras lo pasamos al periodo de 1900. Ejemplo: 25 > 1925
	if (anyo < 100)
	{
		var fin = parseInt(anyo) + 2000;
		//alert(fin);
	}
	else
		var fin = anyo ;
	
	/*
	* primera condicion: si el resto de dividir el año entre 4 no es cero > el año no es bisiesto
	* es decir, obtenemos año modulo 4, teniendo que cumplirse anyo mod(4)=0 para bisiesto
	*/
	if (fin % 4 != 0)
		return false;
	else
	{
		if (fin % 100 == 0)
		{
			// si el año es divisible por 4 y por 100 y divisible por 400 > es bisiesto
			if (fin % 400 == 0)
				return true;
			//* si es divisible por 4 y por 100 pero no lo es por 400 > no es bisiesto
			else
				return false;
		}
		//si es divisible por 4 y no es divisible por 100 > el año es bisiesto
		else
			return true;
	}
}

//funcion que valida que una fecha sea valida
function valida_contenido_fecha(Fecha)
{  
	//obtenemos la fecha introducida y la separamos en dia, mes y año
	dia=Fecha.split("/")[0];
	mes=Fecha.split("/")[1];
	anyo=Fecha.split("/")[2];
	if(anyoBisiesto(anyo))
		febrero=29;
	else
		febrero=28;
	// si el mes introducido es negativo, 0 o mayor que 12 > alertamos y detenemos ejecucion
	if ((mes<1) || (mes>12))
	{
		alert("El mes introducido no es valido. Por favor, introduzca un mes correcto");
		return false;
	}
	/**
	* si el mes introducido es febrero y el dia es mayor que el correspondiente
	* al año introducido > alertamos y detenemos ejecucion
	*/
	if ((mes==2) && ((dia<1) || (dia>febrero)))
	{
		alert("El dia introducido no es valido. Por favor, introduzca un dia correcto");
		return false;
	}
	// si el mes introducido es de 31 dias y el dia introducido es mayor de 31 > alertamos y detenemos ejecucion
	if (((mes==1) || (mes==3) || (mes==5) || (mes==7) || (mes==8) || (mes==10) || (mes==12)) && ((dia<1) || (dia>31)))
	{
		alert("El dia introducido no es valido. Por favor, introduzca un dia correcto");
		return false;
	}
	// si el mes introducido es de 30 dias y el dia introducido es mayor de 301 > alertamos y detenemos ejecucion
	if (((mes==4) || (mes==6) || (mes==9) || (mes==11)) && ((dia<1) || (dia>30)))
	{
		alert("El dia introducido no es valido. Por favor, introduzca un dia correcto");
		return false;
	}
	/**
	* si el mes año introducido es menor que 1900 o mayor que 2010 > alertamos y detenemos ejecucion
	* NOTA: estos valores son a eleccion vuestra, y no constituyen por si solos fecha erronea
	*/
	/**
	* en caso de que todo sea correcto > enviamos los datos del formulario
	* para ello debeis descomentar la ultima sentencia
	*/
	else
		return true;
}
	
//valida que una fecha tenga el formato indicado
function valida_formato_fecha(valorfecha)
{ 
	if (valorfecha.length<10)
	{
	  alert("El formato de la fecha es 'DD/MM/AAAA'");
	  return false;
	}
	mes1 = valorfecha.substring(3,4)
	mes2 = valorfecha.substring(4,5)
	mes  = mes1 + mes2 
	// alert(mes1);
	//alert(mes);
	for (var i = 0; i < valorfecha.length; i++) 
	{
		var ch = valorfecha.substring(i, i + 1)
		if ( 2 == i || 5 == i ) 
		{
			if ( ch != "/" ) 
			{ 
				alert("El formato de la fecha es 'DD/MM/AAAA'");
				return false;
			}
		}
		else 
		{
			if (ch < "0" || "9" < ch) 
			{
				alert("La fecha ingresada no es un número válido!!!");
				return false;
			}
		}
	}
	if ( i < 7 ) 
	{ 
		alert("El formato de la fecha es 'DD/MM/AAAA'");
		return false;
	}
	if ( mes == "01" || mes == "02" || mes == "03" || mes == "04" || mes == "05" || mes == "06" || mes == "07" || mes == "08" || mes == "09" || mes == "10" || mes == "11" || mes == "12" ) 
	{
		return true 
	}
	else 
	{
		alert("El mes ingresado no es válido!!!");
		return false 
	}
	return true;
}

//funcion que valida totalmente la fecha
function valida_fecha(Fecha)
{
	if (valida_formato_fecha(Fecha))
		if (valida_contenido_fecha(Fecha))
			return true;
	return false;
}

function isAlphanumeric (s)
{   var i;
    if (isEmpty(s)) 
       if (isAlphanumeric.arguments.length == 1) return defaultEmptyOK;
       else return (isAlphanumeric.arguments[1] == true);

    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);
        if (! (isLetter(c) || isDigit(c) ) )
        return false;
    }
    return true;
}

function isEmpty(s)
{   return ((s == null) || (s.length == 0))
}

function isLetter (c)
{
    return( ( uppercaseLetters.indexOf( c ) != -1 ) ||
            ( lowercaseLetters.indexOf( c ) != -1 ) )
}
function isDigit (c)
{   return ((c >= "0") && (c <= "9"))
}

function quitaCaracter( cadena,caracter ) {
	var oAux = new String('');
	var oRut = new String(cadena);
	var ch, j, k
	var oStr = oRut ; //oRut.substring(0, i );
	j = oStr.length ;

	for(k=0;k<=j;k=k+1){
		ch = oStr.charAt(k);
		if (ch!=caracter) {
			oAux = oAux + ch ;
		}
	}
	//ruty = oAux;
	return oAux;
}
function enviar_form(id)
{
	document.contenidogeneral.idCat.value=id;
	document.contenidogeneral.id.value=id;
	document.contenidogeneral.submit();
}
function title(title)
{
	document.title = title;
}


