// JavaScript Funciones


// VALIDAD QUE LOS INGRESEN SOLO NUMEROS

function esInteger(e) {
var charCode
if (navigator.appName == "Netscape") // Veo si es Netscape o Explorer (mas adelante lo explicamos)
charCode = e.which // leo la tecla que ingreso
else
charCode = e.keyCode // leo la tecla que ingreso
status = charCode 
if (charCode > 31 && (charCode < 46 || charCode > 57)) { // Chequeamos que sea un numero comparandolo con los valores ASCII
alert("Debe Ingresar sólo Números !!")
return false
}
return true
} 


// VALIDAD QUE LOS INGRESEN SOLO NUMEROS DECIMALES

function esDecimal(e) {
var charCode
if (navigator.appName == "Netscape") // Veo si es Netscape o Explorer (mas adelante lo explicamos)
charCode = e.which // leo la tecla que ingreso
else
charCode = e.keyCode // leo la tecla que ingreso
status = charCode 
if (charCode > 31 && (charCode < 46 || charCode > 57) && charCode!=44) { // Chequeamos que sea un numero comparandolo con los valores ASCII
alert("Debe Ingresar sólo Números o comas!!")
return false
}
return true
} 


// VALIDA SOLO EL INGRESO DE TEXTO

function esText(e) {

var charCode
if (navigator.appName == "Netscape") // Veo si es Netscape o Explorer (mas adelante lo explicamos)
charCode = e.which // leo la tecla que ingreso
else
charCode = e.keyCode // leo la tecla que ingreso
status = charCode 
if (charCode > 31 && (charCode < 46 || charCode > 57) && charCode > 32 && (charCode < 64 || charCode > 90) && (charCode < 97 || charCode > 122) && (charCode < 209 || charCode > 210) && (charCode < 240 || charCode > 242)) { // Chequeamos que sea un numero comparandolo con los valores ASCII
alert("Debe Ingresar sólo Texto y Números!!")
return false
}
return true
} 
// QUE NO SE INTRODUSCAN ESPACIOS ENTRE CARACTERES

function noEspacios(campo,objeto){
var campo;
var ok="";
var espacio=String.fromCharCode(32);
if(campo==""){return;}

	for (i=0;i<campo.length;i++){
	if (campo.charAt(i) != espacio){ok = "ok"}
	}


if (ok == ""){
alert ("Debe Ingresar información válida");
eval("document."+objeto+".value=''");
eval("document."+objeto+".focus()");
}




}

// VALIDA LAS DIRECCIONES E-MAILS


function emailCheck (emailStr,objeto)
{
	if(emailStr!="")
	{
		var checkTLD=1;
		var emailPat=/^(.+)@(.+)$/;
		var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
		var validChars="\[^\\s" + specialChars + "\]";
		var quotedUser="(\"[^\"]*\")";
		var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
		var atom = validChars + '+';
		var word = "(" + atom + "|" + quotedUser + ")";
		var userPat = new RegExp("^" + word + "(\\." + word + ")*$");
		var domainPat = new RegExp("^" + atom + "(\\." + atom +")*$");
		var matchArray = emailStr.match(emailPat);

		if(matchArray == null)
		{
			alert("Ingrese un Email Válido.");
			eval("document." + objeto + ".value = ''");
			eval("document." + objeto + ".select();");
			eval("document." + objeto + ".focus();");
			return false;
		}
		
		var user = matchArray[1];
		var domain = matchArray[2];

		for (i=0; i<user.length; i++)
		{
			if (user.charCodeAt(i)>127)
			{
				alert("Ingrese un Email Válido.");
				eval("document." + objeto + ".value = ''");
				eval("document." + objeto + ".select();");
				eval("document." + objeto + ".focus();");
				return false;
			}
		}

		for (i=0; i<domain.length; i++)
		{
			if (domain.charCodeAt(i)>127)
			{
				alert("Ingrese un Email Válido.");
				eval("document." + objeto + ".value = ''");
				eval("document." + objeto + ".select();");
				eval("document." + objeto + ".focus();");
				return false;
			}
		}

		if (user.match(userPat)==null)
		{
			alert("Ingrese un Email Válido.");
			eval("document." + objeto + ".value = ''");
			eval("document." + objeto + ".select();");
			eval("document." + objeto + ".focus();");
			return false;
		}

		var IPArray = domain.match(ipDomainPat);
		if (IPArray != null)
		{
			for (var i=1;i<=4;i++)
			{
				if (IPArray[i]>255)
				{
					alert("Ingrese un Email Válido.");
					eval("document." + objeto + ".value = ''");
					eval("document." + objeto + ".select();");
					eval("document." + objeto + ".focus();");
					return false;
				}
			}
			return true;
		}

		var atomPat = new RegExp("^" + atom + "$");
		var domArr = domain.split(".");
		var len = domArr.length;
		for (i=0;i<len;i++)
		{
			if (domArr[i].search(atomPat)==-1)
			{
				alert("Ingrese un Email Válido.");
				eval("document." + objeto + ".value = ''");
				eval("document." + objeto + ".select();");
				eval("document." + objeto + ".focus();");
				return false;
			}
		}

		if (len<2)
		{
			alert("Ingrese un Email Válido.");
			eval("document." + objeto + ".value = ''");
			eval("document." + objeto + ".select();");
			eval("document." + objeto + ".focus();");
			return false;
		}

		return true;
	}
}
// FIN VALIDA EMAIL


function valida_su_rut(form_send)
 {
if(!form_send){form_send="form";}
rut_val = document.form.rut.value;
if ( rut_val.length == 0 ) 
	{
		alert( "Ingrese su R.U.T.");
		document.form.rut.focus();
		return ;
	}
	if ( !checkRutField(document.form.rut.value) )
	{	
		return;
	}
	var tmpstr = "";
	for ( i=0; i < rut_val.length ; i++ )
		if ( rut_val.charAt(i) != ' ' && rut_val.charAt(i) != '.' && rut_val.charAt(i) != '-' )
			tmpstr = tmpstr + rut_val.charAt(i);
	rut_val = tmpstr;
	rut_valor = rut_val.substring(0,rut.length);
	if ( rut_valor > 50000000)
	{
		alert( "El R.U.T. corresponde a una empresa.");	
		document.form.rut.select();
		document.form.rut.focus();
		return;	}
	eval("document."+form_send+".submit()");}
//________________________________________________________________________________________________
function checkRutField(rut)
{	var tmpstr = "";
	for ( i=0; i < rut.length ; i++ )
		if ( rut.charAt(i) != ' ' && rut.charAt(i) != '.' && rut.charAt(i) != '-' )
			tmpstr = tmpstr + rut.charAt(i);
	rut = tmpstr;
	largo = rut.length;
// [VARM+]
	tmpstr = "";
	for ( i=0; rut.charAt(i) == '0' ; i++ );
		for (; i < rut.length ; i++ )
			tmpstr = tmpstr + rut.charAt(i);
	rut = tmpstr;
	largo = rut.length;
// [VARM-]
	if ( largo < 2 )
	{
		alert("Debe ingresar el rut completo.");
		document.form.rut.value="";
		document.form.rut.focus();
		document.form.rut.select();
		return false;	
}	
for (i=0; i < largo ; i++ )	
{
		if ( rut.charAt(i) != "0" && rut.charAt(i) != "1" && rut.charAt(i) !="2" && rut.charAt(i) != "3" && rut.charAt(i) != "4" && rut.charAt(i) !="5" && rut.charAt(i) != "6" && rut.charAt(i) != "7" && rut.charAt(i) !="8" && rut.charAt(i) != "9" && rut.charAt(i) !="k" && rut.charAt(i) != "K" )
		{
			alert("El valor ingresado no corresponde a un R.U.T valido.");
			document.form.rut.value="";
			document.form.rut.focus();
			document.form.rut.select();
			return false;
		}
	}
	var invertido = "";
	for ( i=(largo-1),j=0; i>=0; i--,j++ )
		invertido = invertido + rut.charAt(i);
	var drut = "";
	drut = drut + invertido.charAt(0);
	drut = drut + '-';
	cnt = 0;
	for ( i=1,j=2; i<largo; i++,j++ )
	{
		if ( cnt == 3 )
		{
			drut = drut + '.';
			j++;
			drut = drut + invertido.charAt(i);
			cnt = 1;
		}
		else
		{
			drut = drut + invertido.charAt(i);
			cnt++;
		}
	}
	invertido = "";
	for ( i=(drut.length-1),j=0; i>=0; i--,j++ )
		invertido = invertido + drut.charAt(i);
document.form.rut.value = invertido;
	if ( checkDV(rut) )
		return true;
	return false;
}
//________________________________________________________________________________________________
function checkDV( crut )
{
	largo = crut.length;
	if ( largo < 2 )
	{
		alert("Debe ingresar el rut completo.");
		document.form.rut.value="";
		document.form.rut.focus();
		document.form.rut.select();
		return false;
	}
	if ( largo > 2 )
		rut = crut.substring(0, largo - 1);
	else
		rut = crut.charAt(0);
	dv = crut.charAt(largo-1);
	checkCDV( dv );
	if ( rut == null || dv == null )
		return 0;
	var dvr = '0';
	suma = 0;
	mul = 2;
	for (i= rut.length -1 ; i >= 0; i--)
	{
		suma = suma + rut.charAt(i) * mul;
		if (mul == 7)
			mul = 2;
		else
			mul++;
	}
	res = suma % 11;
	if (res==1)
		dvr = 'k';
	else if (res==0)
		dvr = '0';
	else
	{
		dvi = 11-res;
		dvr = dvi + "";
	}
	if ( dvr != dv.toLowerCase() )
	{
		alert("EL rut es incorrecto.");
		document.form.rut.value="";
		document.form.rut.focus();
		document.form.rut.select();
		return false;
	}
	return true;
}
//________________________________________________________________________________________________

function checkCDV( dvr )
{	
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')
	{
		alert("Debe ingresar un digito verificador valido.");
		document.form.rut.focus();
		document.form.rut.select();
		return false;
	}
	return true;
}


//________________________________________________________________________________________________
