
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')
  {
	    
    return false;
  }
  return true;
}

function checkDV( obj_rut,obj_dv )

{
  texto = obj_rut.value + obj_dv.value  
  var tmpstr = "";
  for ( i=0; i < texto.length ; i++ )
    if ( texto.charAt(i) != ' ' && texto.charAt(i) != '.' && texto.charAt(i) != '-' )
      tmpstr = tmpstr + texto.charAt(i);
  texto = tmpstr;
	  
  largo = texto.length;
  if ( largo < 2 )
  {
    alert("Debe ingresar el rut completo.")
    obj_rut.focus();
    obj_rut.select();
    return false;
  }

  if ( largo > 2 )
    rut = texto.substring(0, largo - 1);
  else
    rut = texto.charAt(0);
  dv = texto.charAt(largo-1);
  if (!checkCDV(dv))
  {
	alert("Debe ingresar un dígito verificador válido.");
    obj_dv.focus();
    obj_dv.select();
  }

  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.");
    obj_rut.value = "";
    obj_dv.value = "";
    obj_rut.focus();
    return false
  }
      return true
}


function checkRutField(obj_rut,obj_dv)
{

//Quitar Ceros
    
  var auxRut=obj_rut.value;
  var auxLargo=auxRut.length;
    
  if (auxLargo>1)
  {
	while ((auxRut.substring(0,1)=="0") || (auxRut.substring(0,1)=="."))
	{
		auxRut=auxRut.substring(1,auxLargo);
		auxLargo=auxRut.length
	}
  }

  obj_rut.value=auxRut;
  
//Fin Quitar Ceros

  texto = obj_rut.value + obj_dv.value
	 	   
  var tmpstr = "";
  
  if ((obj_rut.value==0)&&(obj_dv.value==0))
	{
		alert("El RUT no es válido.");
		obj_rut.value="";
		obj_dv.value = "";
		obj_rut.focus();
		return false;
	}	  

  for ( i=0; i < texto.length ; i++ )
    if ( texto.charAt(i) != ' ' && texto.charAt(i) != '.' && texto.charAt(i) != '-' )
      tmpstr = tmpstr + texto.charAt(i);
  texto = tmpstr;
	  
  largo = texto.length;

  if ( largo < 2 )
  {
    alert("Debe ingresar el RUT completo.")
    obj_rut.select();
    obj_dv.value = "";
    obj_rut.focus();
    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" ) 
    {
      alert("El valor ingresado no corresponde a un RUT válido.");
		obj_rut.select();
		obj_dv.value = "";
		obj_rut.focus();
		return false;
    }
  }

	if (obj_dv.value == "k")
	{
		obj_dv.value="K"		
	}

	if ( checkDV(obj_rut,obj_dv) )
	  return true;
		  
	return false;
}

function ForRutsinDV(obj_rut)
{
	var invertido = "";
	var texto="";
	var tmpstr="";
	
	texto=obj_rut.value
	largoRut=texto.length
	
	for ( i=0; i < largoRut ; i++ )
	{
		if ( texto.charAt(i) != ' ' && texto.charAt(i) != '.' && texto.charAt(i) != '-' )
		{
			tmpstr = tmpstr + texto.charAt(i);
		}
	}
	texto = tmpstr;
	largoRut=texto.length
	
	
	for ( i=(largoRut-1),j=0; i>=0; i--,j++ )
	{
	  invertido = invertido + texto.charAt(i);
	}
	var dtexto = "";
	
	
	//dtexto = dtexto + invertido.charAt(0);
	//dtexto = dtexto + '-';
	cnt = 0;
	

	for ( i=0,j=1; i<largoRut; 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++ )
		if (dtexto.charAt(i) == "k")
			invertido = invertido + "K";		
		else
			invertido = invertido + dtexto.charAt(i);

	obj_rut.value = Trim(invertido);  

}

function Trim(strTxt)
	{
		pos1 = 0;
		pos2 = strTxt.length-1;
		for (i=0; i<strTxt.length; i++)
		{
			if (strTxt.charAt(i) == ' ') pos1 = pos1 + 1;
			else break;
		}
		if (pos1 != (pos2+1))
		{
			for (i=strTxt.length-1; i>0; i--)
			{
				if (strTxt.charAt(i) == ' ') pos2 = pos2 - 1
				else break;
			}
		}
		return strTxt.substring(pos1,pos2+1);
	}

	function FormateaNumero(Numero, Separador, Cantidad)
	{
		if (Numero=="")
			{
			cnt=0;
			return cnt; 
			}
		else
			{
			arr=Numero.split(Separador)
			
			if (arr.length==1)
			
				{
					Formateado=FormatEntero(Numero)
					return Formateado;
				}
			else
				{
					if (parseInt(Cantidad)==0)
						{	
							Num=arr[0]
							Formateado=FormatEntero(Num)
							return Formateado;
						}	
					
					else
					
						{	
							decimal=arr[1]
							Num=arr[0]
							Formateado=FormatEntero(Num)+ "," + decimal.substring(0,Cantidad)
							return Formateado;
						}	
				}		
			}		 		  
	}


	function FormatEntero(num)
	{
				largoRut=num.length;
				texto=num;
				cnt=0;		
				dtexto="";
				for (i=(largoRut-1); i >= 0 ; i-- )
					{
					 if ( cnt == 3 )
							{
								dtexto = dtexto + '.';
								dtexto = dtexto + texto.charAt(i);
								cnt = 1;
							}
						else
							{ 
								dtexto = dtexto + texto.charAt(i);
								cnt++;
							}
				    }		  
				
				var invertido=""
				for ( i=(dtexto.length-1); i>=0; i--)
					{
					  invertido = invertido + dtexto.charAt(i);
					}
							    
			return invertido ;	 
				 		  
	}

/*======================================================================================
Función que verifica que la entrada sea de un determinado tipo de dato
InStrin :	String a evaluar
tipo	:	9 - Numerico 
			A - Alfabetico
			X - AlfaNumerico
Retorna : Un Booleano
*/
function SoloTipo(InString, tipo){
		for (Cont=0; Cont < InString.length; Cont++) {
    		Char = InString.charAt(Cont);
    		if (tipo == '9') {
    			if(!esNumerico(Char))
    				return false;
    		}
    		else if (tipo == 'A') {
    			if(!esAlfabetico(Char))
    				return false;
    		}
    		else if (tipo == 'X') {
    			if(!esAlfaNumerico(Char))
    				return false;
    		}
    		else if (tipo == 'H') {
    			if(!esHexa(Char))
    				return false;
    		}
		}
    	return true;
 }

/*======================================================================================    
Funcion que verifica si un caracter es Numerico
Char	:	Caracter a evaluar.
Retorna : Un Booleano
*/
function esNumerico(Char) {		
    	if(Char.length!=1) 
    		return false;
    	RefString="1234567890";
    	if (RefString.indexOf(Char, 0) == -1) 
    		return false;
    	return true;
}

/*======================================================================================
Funcion que verifica si un caracter es Alfabetico (Acepta blancos)
Char	:	Caracter a evaluar.
Oservación: Si se necesita que esta funcion acepte otro caracter 
agregarlo al String de Referencia (RefString)
Retorna : Un Booleano
*/
    
function esAlfabetico(Char) {
    	if(Char.length!=1) 
    		return false;
    	Char=Char.toLowerCase();
    	RefString='abcdefghijklmnñopqrstuvwxyz áéíóúü';
    	if (RefString.indexOf (Char.toLowerCase(), 0) == -1) 
    		return false;
    	return true;
}
/*======================================================================================    
Funcion que verifica si un caracter es AlfaNumerico (Acepta Blancos)
Char	:	Caracter a evaluar.
Retorna : Un Booleano
*/
function esAlfaNumerico(Char) {
    	if(Char.length != 1) 
    		return false;
    	Char=Char.toLowerCase();
    	RefString='1234567890abcdefghijklmnñopqrstuvwxyz áéíóúü-';
    	if (RefString.indexOf(Char,0) == -1) 
    		return false;
    	return true;
}


/*======================================================================================    
Funcion que verifica si un caracter pertenece al rango de Hexadecimal
Char	:	Caracter a evaluar.
Retorna : Un Booleano
*/
function esHexa(Char) {
    	if(Char.length!=1) 
    		return false;
    	Char=Char.toLowerCase();
    	RefString="1234567890abcdef";
    	if (RefString.indexOf(Char, 0) == -1) 
    		return false;
    	return true;
}

// funcion para validar las fechas del formulario 

/*	function valFechas(a, m ,d)
	{
		//newdate = new Date(a,m-1,d);
		newdate = new Date();
		newdate.setDate(d);
		newdate.setMonth(m-1);
		newdate.setYear(a);
		if ((parseFloat(newdate.getDate()) == parseFloat(d)) &&
		(parseFloat(1+newdate.getMonth()) == parseFloat(m)) &&
		(parseFloat(getFullYearParam(newdate)) == parseFloat(a)))
		return true;
		else
		return false;
	}	
*/
	
	//ESTA FUNCION DE VALIDACION DE FECHAS ESTA BUENA
/*	function valFechas(a, m ,d)
	{
		newdate = new Date(a,m-1,d);
		if ((parseFloat(newdate.getDate()) == parseFloat(d)) &&
		(parseFloat(1+newdate.getMonth()) == parseFloat(m)) &&
		(parseFloat(getFullYearParam(newdate)) == parseFloat(a)))
		return true;
		else
		return false;
	}		
*/
	
/*	//Esta es la funcion de validacion de fechas de Prev
	function valFechas(a, m ,d)
	{
		if(d=='12' && m=='10' && a=='2002'){return true;}
		if(d=='11' && m=='10' && a=='1975'){return true;}
		if(d=='08' && m=='10' && a=='1960'){return true;}
		
		newdate = new Date(a,m-1,d);
		if ((parseFloat(newdate.getDate()) == parseFloat(d)) &&	(parseFloat(1+newdate.getMonth()) == parseFloat(m)) && (parseFloat(getFullYearParam(newdate)) == parseFloat(a)))
			return true;
		else
			return false;
	}	
*/


function ValidarNumero(dato,minimo,max) 
{
	if (dato == "") 
	{
		alert("Ingrese valores Año,Mes,Día");
      return false;
   }
   for (var i=0; i<dato.length; i++) 
	{
      var caracter = dato.substring(i,i+1);
      if (caracter < "0" || caracter > "9")
		{
         //alert("Fecha inexistente, ["+valor + "] valor debe ser numérico");
         return false;
   	}
	}
   var valor = parseInt(dato,10)
   if (valor<minimo || valor>max) 
	{
      //alert("Fecha inexistente, valor fuera de rango: ["+valor+"]   (Mínimo:"+minimo+" Máximo:"+max+")");
      return false;
   }
   return true
}

	function valFechas(a, m ,d)
	{
		if(QueDia(a+m+d)==true)
			return true;
		else
			return false;		
	}  

	Meses = new Array 
		("Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre");
	Dias= new Array 
		("Lunes","Martes","Miércoles","Jueves","Viernes","Sábado","Domingo");
	MaxDia = new Array
		(31,29,31,30,31,30,31,31,30,31,30,31);
	var abc 		= "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	var abc2 	= "abcdefghijklmnopqrstuvwxyz";

function QueDia(Fec8) 
{	//recibo string en formato AAAAMMDD
	var AAAA = Fec8.substring(0,4);
	var Mes 	= Fec8.substring(4,6);
	var Dia 	= Fec8.substring(6,8);

	if (! ValidarNumero(Mes,1,12))
	{
		return false;
	}
	if (! ValidarNumero(Dia,1,MaxDia[Mes-1]))
	{
		return false;
	}

	if (Mes == 2 && Dia == 29)  // Verificacion de Bisiesto 
	{
		if	(((AAAA % 4 == 0) && (AAAA % 100 != 0)) || (AAAA % 400 == 0)) 
		{
			return true;
		}
		else
		{
			//window.alert("Fecha inexistente, año " + AAAA + " no es bisiesto");
			return false;
		}
	}
	//Fecha = new Date(AAAA,Mes - 1,Dia -1);
	//var DiaSem = Fecha.getDay();
	//form.DiaSemana.value = Dias[DiaSem] + " "+ Dia + " de " + Meses[Mes - 1]+" de "+AAAA;
	return true;
}


	
	function getFullYearParam(yr)
	{
		var y = yr.getYear();
		if (y < 1000) y += 1900;
		return y;
	}


/*=======================================================================================
	CACULO DE LA EDAD
=========================================================================================*/	
					
function CalculaEdad(a,m,d)
{
					
	var yourage;
	var mm = m;
	var bday = d;
	var byear = a;
	var year = new Date();
	var year2 = year.getYear();
	var year3 = (year < 2000) ? year2 + 1900 : year2;
	thedate = new Date();
	mm2 = thedate.getMonth() + 1;
	dd2 = thedate.getDate();
	yy2 = thedate.getYear();
	if (yy2 < 100) yy2 += 1900
	yourage = yy2 - byear;
	if (mm2 < mm) yourage--;
	if ((mm2 == mm) && (dd2 < bday)) yourage--;

	return yourage;
}


function CaracterValidoEmail(Char)
{
	//Codigo valida caracteres del mail, 5 feb	
	if(Char.length!=1) 
    		return false;
    Char=Char.toLowerCase();
    RefString='abcdefghijklmnopqrstuvwxyz.@_1234567890';
    if (RefString.indexOf (Char.toLowerCase(), 0) == -1) 
    	return false;
    return true;
}

function CaracterNoValEmail(Char)
{
	//Codigo valida caracteres del mail, 5 feb	
	if(Char.length!=1) 
    		return false;
    Char=Char.toLowerCase();
    RefString='|°!#$%&/()=?\¿¡*][{}^:;,<>+';
    if (RefString.indexOf (Char.toLowerCase(), 0) == -1) 
    	return false;
    return true;
}

function ValidaEmail2(email)
{
	//alert(email);
	var posArroba=email.indexOf("@")
	var posPunto=email.indexOf(".")
	var largo=email.length
		
		
	for (Cont=0; Cont < email.length; Cont++) 
	{
    	StrChar = email.charAt(Cont);	
		/*if(!CaracterValidoEmail(StrChar))
    		return false;*/
    	if(CaracterNoValEmail(StrChar))
    		return false;
	}	
		
	if (largo < 6)
	{
		return false;
	}
	if (posArroba==-1)
	{
		return false;
	}
	if (posPunto==-1)
	{
		return false;
	}
	if (posArroba < 1)
	{
		return false;
	}
	
	/*if (posPunto < posArroba)
	{
		return false;
	}*/
	
	/*if (posPunto <= posArroba+2)
	{
		return false;
	}*/
	
	var strEmailSig = email.substring(largo,posArroba+1);
	var posPunto2 = strEmailSig.indexOf(".");
	
	//alert(posPunto2);
	
	if(posPunto2<=0)
		{
			return false;
		}
	
	if((email.substring(largo,largo-1)==".")||(email.substring(largo,largo-1)=="@"))
	{
		return false;
	}
	
	if (largo <= posPunto+2)
	{
		return false;
	}
	//alert("OK");
	return true;
}
function PasarTodasMayusculas(strValor)
{
	strValor = Trim(strValor);
	if (strValor != '')
	{
		strValor = strValor.toUpperCase();
	}
	return strValor;
}



function Comparar_Fecha(String1,String2,Formato)
{
 // String1:objeto que contiene la primera fecha 
 // String2: objeto que contiene la segunda fecha 


   // Si los dia y los meses llegan con un valor menor que 10 
	// Se concatena un 0 a cada valor dentro del string  
	if (String1.substring(1,2)=="/") {
	  String1="0"+String1
	}
	if (String1.substring(4,5)=="/"){
	  String1=String1.substring(0,3)+"0"+String1.substring(3,9)
	}
	
	if (String2.substring(1,2)=="/") {
	  String2="0"+String2
	}
	if (String2.substring(4,5)=="/"){
	  String2=String2.substring(0,3)+"0"+String2.substring(3,9)
	 
	}
	
   if (Formato == "dma"){
		dia1=String1.substring(0,2);
		mes1=String1.substring(3,5);
		anyo1=String1.substring(6,10);
		dia2=String2.substring(0,2);
		mes2=String2.substring(3,5);
		anyo2=String2.substring(6,10);
   }

   if (Formato=="amd"){
   		dia1=String1.substring(8,10);
		mes1=String1.substring(5,7);
		anyo1=String1.substring(0,4);
		dia2=String2.substring(8,10);
		mes2=String2.substring(5,7);
		anyo2=String2.substring(0,4);
   }
   if (Formato == "mda"){
   		mes1=String1.substring(0,2);
		dia1=String1.substring(3,5);
		anyo1=String1.substring(6,10);
		mes2=String2.substring(0,2);
		dia2=String2.substring(3,5);
		anyo2=String2.substring(6,10);
   }
   
   if (dia1 == "08")	// parseInt("08") == 10		base octogonal
		dia1 = "8";
	if (dia1 == '09')	// parseInt("09") == 11		base octogonal
		dia1 = "9";
	if (mes1 == "08")	// parseInt("08") == 10		base octogonal
		mes1 = "8";
	if (mes1 == "09")	// parseInt("09") == 11		base octogonal
		mes1 = "9";
	if (dia2 == "08")	// parseInt("08") == 10		base octogonal
		dia2 = "8";
	if (dia2 == '09')	// parseInt("09") == 11		base octogonal
		dia2 = "9";
	if (mes2 == "08")	// parseInt("08") == 10		base octogonal
		mes2 = "8";
	if (mes2 == "09")	// parseInt("09") == 11		base octogonal
		mes2 = "9";
   dia1=parseInt(dia1);
   dia2=parseInt(dia2);
   mes1=parseInt(mes1);
   mes2=parseInt(mes2);
   anyo1=parseInt(anyo1);
   anyo2=parseInt(anyo2);
   
   
   if (anyo1>anyo2)
		{
		return false;
		}
	if ((anyo1==anyo2) && (mes1>mes2))
		{
		return false;
		}
	if ((anyo1==anyo2) && (mes1==mes2) && (dia1>dia2))
		{
		return false;
		}	  
					  
	 return true;

}



function Mascara(InString, Mask) {
    	LenStr = InString.length;
    	LenMsk = Mask.length;
    	if ((LenStr==0) || (LenMsk==0))
    		return false;
    	if (LenStr != LenMsk)
    		return false;
    	TempString=""
    	for (Cont=0; Cont < InString.length; Cont++) {
    		StrChar = InString.charAt(Cont);
    		MskChar = Mask.charAt(Cont);
    		if (MskChar == '9') {
    			if(!esNumerico(StrChar))
    				return false;
    		}
    		else if (MskChar == 'A') {
    			if(!esAlfabetico(StrChar))
    				return false;
    		}
    		else if (MskChar == 'X') {
    			if(!esAlfaNumerico(StrChar))
    				return false;
    		}
    		else {
    			if (MskChar != StrChar) // compara otros caracteres
    				return false;		// ej: los / de la fecha
    		}
    	}
    	return true;
}

/*======================================================================================
Funcion que solo permite el ingreso de datos en un determinado formato
InString	:	String a evaluar.
Mask		:	Formato que debe poseer el String a evaluar
				Ej: '99/99/9999' mascara para una fecha
				'9' - Numero
				'A' - Alfabetico
				'X' - AlfaNumerico
Retorna : Un Booleano
*/

function Mascara2(obj, Mask) {
		InString = obj.value;
    	LenStr = InString.length;
    	LenMsk = Mask.length;
    	if ((LenStr==0) || (LenMsk==0))
    		return false;	
    	
    	if (LenStr != LenMsk && ( Mascara(Mask,'99/99/9999')==true ||Mascara(Mask,'99-99-9999')==true) ){
    		//Agrega ceros a la fecha		
			if (InString.substring(1,2)=="/" || InString.substring(1,2)=="-") {
				InString="0"+InString
			}
			if (InString.substring(4,5)=="/" || InString.substring(4,5)=="-" ){
				InString=InString.substring(0,3)+"0"+InString.substring(3,9)
			}
			LenStr = InString.length;
    		LenMsk = Mask.length;
    	}	
    	if (LenStr != LenMsk){
    		return false;
    	}
    	TempString=""
    	for (Cont=0; Cont < InString.length; Cont++) {
    		StrChar = InString.charAt(Cont);
    		MskChar = Mask.charAt(Cont);
    		if (MskChar == '9') {
    			if(!esNumerico(StrChar))
    				return false;
    		}
    		else if (MskChar == 'A') {
    			if(!esAlfabetico(StrChar))
    				return false;
    		}
    		else if (MskChar == 'X') {
    			if(!esAlfaNumerico(StrChar))
    				return false;
    		}
    		else {
    			if (MskChar != StrChar) // compara otros caracteres
    				return false;		// ej: los / de la fecha
    		}
    	}
    	obj.value = InString;
    	return true;
    	
}

/*
function esNumerico(Char) {		
    	if(Char.length!=1) 
    		return false;
    	RefString="1234567890";
    	if (RefString.indexOf(Char, 0) == -1) 
    		return false;
    	return true;
}

function esAlfabetico(Char) {
    	if(Char.length!=1) 
    		return false;
    	Char=Char.toLowerCase();
    	RefString='abcdefghijklmnñopqrstuvwxyz áéíóúü';
    	if (RefString.indexOf (Char.toLowerCase(), 0) == -1) 
    		return false;
    	return true;
}

function esAlfaNumerico(Char) {
    	if(Char.length != 1) 
    		return false;
    	Char=Char.toLowerCase();
    	RefString='234567890abcdefghijklmnñopqrstuvwxyz áéíóúü-';
    	if (RefString.indexOf(Char,0) == -1) 
    		return false;
    	return true;
}*/


function checkDVreg( obj_rut,obj_dv )

{
  texto = obj_rut.value + obj_dv.value  
  var tmpstr = "";
  for ( i=0; i < texto.length ; i++ )
    if ( texto.charAt(i) != ' ' && texto.charAt(i) != '.' && texto.charAt(i) != '-' )
      tmpstr = tmpstr + texto.charAt(i);
  texto = tmpstr;
	  
  largo = texto.length;
  if ( largo < 2 )
  {
    return false;
  }

  if ( largo > 2 )
    rut = texto.substring(0, largo - 1);
  else
    rut = texto.charAt(0);
  dv = texto.charAt(largo-1);
  if (!checkCDV(dv))
  {
	obj_dv.select();
  }

  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() )
  {
    return false
  }
      return true
}


function checkRut(obj_rut,obj_dv)
{

//Quitar Ceros
    
  var auxRut=obj_rut.value;
  var auxLargo=auxRut.length;
    
  if (auxLargo>1)
  {
	while ((auxRut.substring(0,1)=="0") || (auxRut.substring(0,1)=="."))
	{
		auxRut=auxRut.substring(1,auxLargo);
		auxLargo=auxRut.length
	}
  }

  obj_rut.value=auxRut;
  
//Fin Quitar Ceros

  texto = obj_rut.value + obj_dv.value
	 	   
  var tmpstr = "";
  
  if ((obj_rut.value==0)&&(obj_dv.value==0))
	{
		return false;
	}	  

  for ( i=0; i < texto.length ; i++ )
    if ( texto.charAt(i) != ' ' && texto.charAt(i) != '.' && texto.charAt(i) != '-' )
      tmpstr = tmpstr + texto.charAt(i);
  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;
    }
  }

	if (obj_dv.value == "k")
	{
		obj_dv.value="K"		
	}

	if ( checkDVreg(obj_rut,obj_dv) )
	  return true;
		  
	return false;
}

/*======================================================================================    
Funcion que verifica si una fecha es valida 
InString: String a evaluar 
Formato:        dma (dia mes ano) 
                  mda (mes dia ano) 
                  amd (ano mes dia) 
Observación: es utilizada por la funcion Ver_Fecha(Obj) (Siguiente) 
Retorna : Un Booleano 
*/ 
 

function EsFecha(InString,formato) { 
				
              //Agrega ceros a la fecha         

              if (InString.substring(1,2)=="/" || InString.substring(1,2)=="-") { 
                InString="0"+InString 
              } 
              if (InString.substring(4,5)=="/" || InString.substring(4,5)=="-"){ 
                InString=InString.substring(0,3)+"0"+InString.substring(3,9)

              } 
              
              if (formato == "dma"){ 
                  dia=InString.substring(0,2); 
                  mes=InString.substring(3,5); 
                  anyo=InString.substring(6,10); 
              } 
              if (formato == "mda"){ 
                  mes=InString.substring(0,2); 
                  dia=InString.substring(3,5); 
                  anyo=InString.substring(6,10); 
              } 
              if (formato == "amd"){ 
                  anyo=InString.substring(0,4); 
                  mes=InString.substring(5,7); 
                  dia=InString.substring(8,10); 
                  
                  
              } 
              if (dia == '08') dia = '8';// parseInt("08") == 10          base octogonal

              if (dia == '09') dia = '9';// parseInt("09") == 11          base octogonal

              if (mes == '08') mes = '8';// parseInt("08") == 10          base octogonal

              if (mes == '09') mes = '9'; // parseInt("09") == 11		base octogonal

              dia=parseInt(dia); 
              mes=parseInt(mes); 
              anyo=parseInt(anyo); 
              
              if (anyo < 1900) return false;    // Anyo mayor a 1900 (por la Base de Datos)

              mes = mes - 1;  // El mes se representa del 0 al 11 (solo para la validación)

              //alert(anyo + "-" + mes + "-" + dia); 
              esfecha = new Date(anyo,mes,dia); 
              //alert(esfecha); 
              if (dia == esfecha.getDate()){ 
                  if(mes == esfecha.getMonth()){ 
                    if(anyo == esfecha.getFullYear()){

                            return true;

                    } 
                  } 
              } 
              return false; 
} 

function Replace(Expression, Find, Replace)
{
	var temp = Expression;
	var a = 0;
	var i
	
	for (var i = 0; i < Expression.length; i++) 
	{
		a = temp.indexOf(Find);
		if (a == -1)
			break
		else
			temp = temp.substring(0, a) + Replace + temp.substring((a + Find.length));
	}
	return temp;
	
}

//**************************************
function esAlfanumerico2(Char) {
    	if(Char.length!=1) 
    		return false;
    	Char=Char.toLowerCase();
    	RefString='abcdefghijklmnñopqrstuvwxyz áéíóúü.-/()0123456789';
    	if (RefString.indexOf (Char.toLowerCase(), 0) == -1) 
    		return false;
    	return true;
}

function ValidaCaracteres(Campo)
{
	if (Campo.length==0)
		return false
		
	//alert(Campo.length);
	for (Cont=0; Cont < Campo.length; Cont++) 
	{
		
    	StrChar = Campo.charAt(Cont);	
		if(!esAlfanumerico2(StrChar))
    		return false;
	}
	
	return true;
}
//**************************************

//************************************************************************

function ValidaFecha(Obj,Tipo)
		{
			if (Obj.value=='')
				return true;
		
		
			if (Tipo=='Fecha')
			{
				//DEBEN SER SOLO NUMEROS
				if (Mascara2(Obj,'99/99/9999')==false && Mascara2(Obj, '99-99-9999')==false)
				{
					alert('Debe Ingresar una Fecha Válida');
					Obj.value='';
					Obj.focus();	
					return false;			
				}	
				
				strAuxDia=Obj.value.substring(2,0);
				strAuxMes=Obj.value.substring(5,3);
				strAuxAno=Obj.value.substring(10,6);
				
				if (valFechas(strAuxAno, strAuxMes, strAuxDia)==false)
				{
					alert('Debe Ingresar una Fecha Válida');
					Obj.select();
					Obj.focus();	
					return false;			
				}		
				
				//NO DEBE SER MAYOR A LA FECHA ACTUAL
				if(!Comparar_Fecha(Obj.value,document.form.FECHAHOY.value,"dma"))
				{
					alert('La Fecha no debe ser mayor a Hoy.');
					Obj.select();
					Obj.focus();	
					return false;
				}
			}
			else
			{
				//VALIDAR FORMATO
				if (Mascara2(Obj,'99/9999')==false && Mascara2(Obj,'99-9999')==false)
				{
					alert('Debe ingresar un período de pago con formato válido');
					Obj.value='';
					Obj.focus();	
					return false;			
				}
				
				strAuxMes = Obj.value.substring(2,0);
				strAuxAno = Obj.value.substring(7,3);
				
				if(strAuxAno==window.document.form.FECHAHOY.value.substring(10,6))
				{
					if(strAuxMes>=window.document.form.FECHAHOY.value.substring(5,3))
					{
						alert('Período debe ser menor a fecha actual.');
						Obj.value='';
						Obj.focus();	
						return false;			
					}
				}
				else
				{
					if (strAuxAno>window.document.form.FECHAHOY.value.substring(10,6))
					{
						alert('Período debe ser menor a fecha actual.');
						Obj.value='';
						Obj.focus();	
						return false;
					}
				}	
			}		
						
			if (strAuxAno < 2002)
			{
				alert('Debe ingresar una Fecha mayor o igual que 10/2002');
				Obj.value='';
				Obj.focus();	
				return false;				
			}
				
			//SI AÑO ES 2002 VALIDAR QUE MES SEA MAYOR O IGUAL A 10
			if(strAuxAno==2002)
			{
				if(strAuxMes < 10)
				{
					alert('Debe Ingresar una Fecha mayor o igual que 10/2002');
					Obj.value='';
					Obj.focus();	
					return false;				
				}			
			}
			
			
		}