function validaLargo(str,len)
{
if(str.length>len) {
return false;
}
return true;
}

function esBisiesto(aa)
{
if(aa%400==0)
return true;
if(aa%100==0)
return false;
if(aa%4==0)
return true;
return false;
}

/* Esta función recibe un radiobutton y revisa que esté chequeado */
function validaRadio(radio)
{
for(i=0;i<radio.length;i++) {
if(radio[i].checked) {
return true;
}
}
return false;
}

function validaFecha(dd,mm,aa)
{
var md=[31,28,31,30,31,30,31,31,30,31,30,31];
if(!isNumero(dd)||!isNumero(mm)||!isNumero(aa)) {
alert("Las fechas deben ser números: "+dd+"-"+mm+"-"+aa);
return false;
}
if(esBisiesto(aa)) {
md[1]++;
}
if(mm<1||mm>12) {
alert("El mes del año debe estar entre 1 y 12");
return false;
}
if(dd<1||dd>md[mm-1]) {
alert("El día del mes debe estar entre 1 y "+md[mm-1]);
return false;
}
if(aa<1000) {
alert("El año debe ingresarse con los cuatro dígitos");
return false;
}
return true;
}

function validaMail(mail)
{
/* Buscamos por un simple @ y que termine en . algo */
if(mail.search(/.+@.+\.[A-Za-z]+$/)<0) {
return false;
}
return true;
}

function validaNum(num)
{
if(num=='') {
return false;
} else if(isNumero(num)) {
return true;
}
return false;
}

function validaNull(str)
{
if(str=='')
return false;
return true;
}

function inArray(str,arr)
{
var ini=0;
var fin=arr.length;
while(ini<fin&&arr[ini]!=str) {
ini++;
}
if(arr[ini]==str)
return true;
return false;
}

/* Divide por el guión y llama a validaRut(rut,dv) */
function ValidaRutW(str)
{
}

/* R.U.T. Validation routines. Please call validaRut(rut,dv)
** Taken from the SII site. No copyright notice was found. */
function trimval(str){
var ini=0;
var fin=str.length-1;
while(ini<=fin && str.charAt(ini)==" ") ini++;
if (ini<=fin) {
while(str.charAt(fin)==" ") fin--;
if (fin<str.length-1) {
fin++;
return str.substring(ini,fin);
} else return str.substr(ini);
} else return '';
}

function isNumero(str)
{
var flag=true;
var i=0;
var nums=new Array(1,1,1,1,1,1,1,1,1,1);
while (i<str.length && flag) {
flag= (nums[str.charAt(i++)]!=null);
}
return flag;
}

function validaM11(rut,dv)
{
var suma=0;
var mul=2;
var i=0;
for (i=rut.length-1;i>=0;i--) {
suma=suma+rut.charAt(i) * mul;
mul= mul==7 ? 2 : mul+1;
}
var dvr = ''+(11 - suma % 11);
if (dvr=='10') dvr = 'K';
else if (dvr=='11') dvr = '0';
if (dvr!=dv) return false;
else return true;
}

function validaRut(rut,dv)
{
rut=trimval(rut);
rut=rut.replace(/\./g,'');
dv=trimval(dv).toUpperCase();
if (rut=='' || !isNumero(rut) || rut*1==0) {
alert('Rut Inválido');
return false;
}else if ((!isNumero(dv) && (dv != "K")) || (dv == "")) {
alert('Dígito Verificador inválido');
return false;
}else if (!validaM11(rut,dv)) {
alert('Dígito Verificador Erróneo');
return(false);
}
return true;
}

