function FechaValida(fecha){
	if (fecha != "" ){
		if (!/^\d{2}\/\d{2}\/\d{4}$/.test(fecha)){
			return false;
		}
		var dia  =  parseInt(fecha.substring(0,2),10);
		var mes  =  parseInt(fecha.substring(3,5),10);
		var anio =  parseInt(fecha.substring(6),10);
		switch(mes){
			case 1:
			case 3:
			case 5:
			case 7:
			case 8:
			case 10:
			case 12:
				numDias=31;
				break;
			case 4: case 6: case 9: case 11:
				numDias=30;
				break;
			case 2:
				if (comprobarSiBisisesto(anio)){ numDias=29 }else{ numDias=28};
				break;
			default:
				return false;
		}
		if (dia>numDias || dia==0){
			return false;
		}
		return true;
	}
}

function comprobarSiBisisesto(anio){
if ( ( anio % 100 != 0) && ((anio % 4 == 0) || (anio % 400 == 0))) {
	return true;
	}
else {
	return false;
	}
}

function OnlyMatch(regex,string) //regex:: exp. regular con la que comparar , string:: string que debe comparar
{
    var pattern;

    //CARACTERES LATINOS :: letras mayusculas y minusculas, tildes, espacios, guión
    if(regex == 'letras')
        pattern = /^[a-zA-ZñÑáéíóúÁÉÍÓÚ\s-]+$/;
	//NÚMEROS :: acepta sólo números de 0 a 9, sin espacios ni guiones
    if(regex == 'numeros')
        pattern = /^[0-9]+$/;
    //MAIL :: algo @ algo . sigla
    if(regex == 'mail')
        pattern = /^(([\w-]+\.)+[\w-]+|([a-zA-Z]{1}|[\w-]{2,}))@((([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\.([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\.([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\.([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])){1}|([a-zA-Z]+[\w-]+\.)+[a-zA-Z]{2,4})$/;
        
    if(pattern.test(string))
		return true;
	else
		return false;

} 

function Numerico(e,puntos)
{
    var key = window.event ? e.keyCode : e.which;

    if(puntos)
    {
        if( key == '46')
            return false;
    }

    if (key != '13' && key > '45' && key < '59' && key != '47' || key == '8' || key == '0')
    {
        var keychar = String.fromCharCode(key);
        return (keychar);
    }
    else
        return false;
}

function revisarDigito( dvr )
{
	var dv = dvr + "";

	if ( dv != '0' && dv != '1' && dv != '2' && dv != '3' && dv != '4' && dv != '5' && dv != '6' && dv != '7' && dv != '8' && dv != '9' && dv != 'k' && dv != 'K')
		return false;
	return true;
}

function revisarDigito2( crut )
{
	var i, rut, dv, dvi;
	var dvr = '0';

	var largo = crut.length;

	if ( largo < 2 )
		return false;
	if ( largo > 2 )
		rut = crut.substring(0, largo - 1);
	else
		rut = crut.charAt(0);

	dv = crut.charAt(largo-1);
	revisarDigito( dv );

	if ( rut == null || dv == null )
		return 0

	var suma = 0;
	var mul  = 2;

	for (i= rut.length -1 ; i >= 0; i--)
	{
		suma = suma + rut.charAt(i) * mul;

		if (mul == 7)
			mul = 2;
		else    
			mul++;
	}

	var res = suma % 11;

	if (res==1)
		dvr = 'k';
	else if (res==0)
		dvr = '0';
	else
	{
		dvi = 11-res;
		dvr = dvi + "";
	}
	if ( dvr != dv.toLowerCase() )
		return false;

	return true;
}

function Rut( rut, dvrut )
{
	var tmpstr = "";
	var i, j, letra, texto, largo;

	if ( rut.length < 7 )
		return false;

	texto = rut + '-' + dvrut;

	for ( i=0; i < texto.length ; i++ )
	{
		if ( texto.charAt(i) != ' ' && texto.charAt(i) != '.' && texto.charAt(i) != '-' )
		{
			if(texto.charAt(i) == 'k')
				letra = 'K';
			else
				letra =  texto.charAt(i);

			tmpstr = tmpstr + letra;
		}
	}

	texto = tmpstr;
	largo = texto.length;

	if ( largo < 2 )
		return false;

	for (i=0; i < largo ; i++ )
	{
		if ( texto.charAt(i) !="0" && texto.charAt(i) != "1" && texto.charAt(i) !="2" && texto.charAt(i) != "3" && texto.charAt(i) != "4" && texto.charAt(i) !="5" && texto.charAt(i) != "6" && texto.charAt(i) != "7" && texto.charAt(i) !="8" && texto.charAt(i) != "9" && texto.charAt(i) !="k" && texto.charAt(i) != "K" )
			return false;
	}

	var invertido = "";

	for ( i=(largo-1),j=0; i>=0; i--,j++ )
		invertido = invertido + texto.charAt(i);

	var dtexto = "";

	dtexto = dtexto + invertido.charAt(0);
	dtexto = dtexto + '-';
	var cnt = 0;

	for ( i=1,j=2; i<largo; i++,j++ )
	{
		if ( cnt == 3 )
		{
			dtexto = dtexto + '.';
			j++;
			dtexto = dtexto + invertido.charAt(i);
			cnt = 1;
		}
		else
		{
			dtexto = dtexto + invertido.charAt(i);
			cnt++;
		}
	}

	invertido = "";

	for ( i=(dtexto.length-1),j=0; i>=0; i--,j++ )
		invertido = invertido + dtexto.charAt(i);

	if ( revisarDigito2(texto) )
		return true;

	return false;
}

function Mensaje(msg)
{
	$( "#mensaje" ).html('<p>'+msg+'</p>');
	$( "#mensaje" ).dialog( "destroy" );
	$( "#mensaje" ).dialog({
		modal: true,
		buttons: {
			Aceptar: function() {
				$( this ).dialog( "close" );
			}
		}
	});

}

function nuevaVentana( name, w, h, url, opciones )
{
	if(!opciones) opciones = 'toolbar=no,location=no,directories=no,status=no,scrollbars=yes,resizable=yes,copyhistory=no';

	if( window.open ( url, name, opciones + ',width=' + w + ',height=' + h + '') )
		return true;

	return false;
}

