/*********************************************************************************************************/
/*                                     Rutinas de validacion                                             */
/*********************************************************************************************************/
/* Constantes */
var tvAlfanumerico = 0;
var tvLetra = 1;
var tvNumero = 2;
var tvRut = 3;
var tvFecha = 4;
var tvNinguno = 7;


function validar(opc, texto) {
	var retorno = false;
	switch (opc) {
		case tvAlfanumerico:
			retorno = validaalfanumerico(texto.value);
			break;
		case tvLetra:
			retorno = validaalfabetico(texto.value);
			break;
		case tvNumero:
			retorno = validanumerico(texto.value);
			break;
		case tvRut:
			texto.value = texto.value.toUpperCase();
			if( texto.value.search(/-/) == -1 ) {
				texto.value = texto.value.substr(0, texto.value.length -1) + "-" + texto.value.substr(texto.value.length -1, 1);
			};
			retorno = validarut(texto.value);
			break;
		case tvNinguno:
			retorno = true;
			break;
	}
	if( !retorno ) {
		alert('Debe ingresar datos validos');
	};
	return retorno;
}
/*                                       Validacion de rut                                               */
function validarut(rut) {
	rut = rut.toUpperCase();
	if( rut.search(/-/) == -1 ) {
		rut = rut.substr(0, rut.length -1) + "-" + rut.substr(rut.length -1, 1);
	};
	var fRut = rut.substr(0, rut.length -2);
	var fDv = rut.substr(rut.length -1, 1);
	
	if( !verrut(fRut, fDv) ) {
		return false;
	} else {
		return true;
	};
}

function verrut(rut, dv) {
	var mul = 2;
	var sum = 0;
	for (i=rut.length-1;i>=0;i-- ){
   		sum += rut.substr(i, 1) * mul;
        mul++;
       	if ( mul > 7 ) {mul = 2};
    }

	dig = sum % 11;
   	dig = 11 -dig;
   	if (dig == 11 ) {dig = 0} else if (dig == 10 )  {dig = "K"};

    if ( dv == dig ) {
		return true;
	} else {
		return false;
	};
}
/*                                      Validacion numerica                                              */
function validanumerico(value) {
	var caracterespermitidos = '0123456789';
	var c = '';
	for(i=0; i <= value.length -1; i++) {
		c = value.charAt(i);
		if( caracterespermitidos.indexOf(c) == -1 ) {
			return false;
		};
	};
	return true;
}
/*                                    Validacion alfanumerica                                            */

function validaalfanumerico(value) {
	var caracterespermitidos = '0123456789ABCDEFGHIJKLMÑNOPQRSTUVWXYZ .,-@';
	var c = '';
	for(i=0; i <= value.length -1; i++) {
		c = value.charAt(i);
		if( caracterespermitidos.indexOf(c.toUpperCase()) == -1 ) {
			return false;
		};
	};
	return true;
}
function validaalfabetico(value) {
	var caracterespermitidos = 'ABCDEFGHIJKLMÑNOPQRSTUVWXYZ ';
	var c = '';
	for(i=0; i <= value.length -1; i++) {
		c = value.charAt(i);
		if( caracterespermitidos.indexOf(c.toUpperCase()) == -1 ) {
			return false;
		};
	};
	return true;
}
