function validarutp(camporut,tiporut)
{
	if(document.MM_returnValue){
	if (checkRutPersona(camporut,tiporut))
		{document.MM_returnValue = true;}
		else{document.MM_returnValue = false;}
		}
}

function checkRutPersona(camporut,tiporut)
{
  var rut = camporut.value
  var tmpstr = "";
  for ( i=0; i < rut.length ; i++ )
    if ( rut.charAt(i) != ' ' && rut.charAt(i) != '.' && rut.charAt(i) != '-' ){
      tmpstr = tmpstr + rut.charAt(i);}
	  else{
    window.showModalDialog("functions/error_pagina.asp","* Digite su rut Correctamente<br> Recuerde, Sin puntos ni guion","dialogHeight: 200px; dialogWidth: 700px; dialogTop: px; dialogLeft: px; edge: Raised; center: Yes; help: Yes; resizable: No; status: No;");
    camporut.focus();
    camporut.select();
    return false;
  }

if (rut.charAt(0) == '0'){
	window.showModalDialog("functions/error_pagina.asp","* Digite su rut Correctamente<br> Recuerde, Sin 0 inicial","dialogHeight: 200px; dialogWidth: 700px; dialogTop: px; dialogLeft: px; edge: Raised; center: Yes; help: Yes; resizable: No; status: No;");
	camporut.focus();
    camporut.select();
	return false;
	}

  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 )
  {
    window.showModalDialog("functions/error_pagina.asp","* Digite su rut Completo<br> Recuerde, Sin puntos ni guion","dialogHeight: 200px; dialogWidth: 700px; dialogTop: px; dialogLeft: px; edge: Raised; center: Yes; help: Yes; resizable: No; status: No;");
    camporut.focus();
    camporut.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') )
    {
      window.showModalDialog("functions/error_pagina.asp","* El valor ingresado no corresponde a un RUT válido<br> Recuerde, Sin puntos ni guion","dialogHeight: 200px; dialogWidth: 700px; dialogTop: px; dialogLeft: px; edge: Raised; center: Yes; help: Yes; resizable: No; status: No;");
      camporut.focus();
      camporut.select();
      return false;
    }
  }
  
  //Valida rango de valores posibles
  rutMax = rut;
  tmpstr="";
  for ( i=0; i < rutMax.length ; i++ )
    if ( rutMax.charAt(i) != ' ' && rutMax.charAt(i) != '.' && rutMax.charAt(i) != '-' )
      tmpstr = tmpstr + rutMax.charAt(i);
  tmpstr = tmpstr.substring(0, tmpstr.length - 1);
  if (tiporut != 'N'){
  if (tiporut == 'P')
  	{
  		if ( !(tmpstr < 50000000) )
  		{
			window.showModalDialog("functions/error_pagina.asp","* El Rut ingresado no corresponde a un RUT de Persona Natura<br> Recuerde, Sin puntos ni guion","dialogHeight: 200px; dialogWidth: 700px; dialogTop: px; dialogLeft: px; edge: Raised; center: Yes; help: Yes; resizable: No; status: No;");
			camporut.focus();
			camporut.select();		
  			return false;
  		}
	}
	else
	{
		if ((tmpstr < 50000000) || (tmpstr > 100000000) )
  		{
			window.showModalDialog("functions/error_pagina.asp","* El Rut ingresado no corresponde a un RUT de Empresa<br> Recuerde, Sin puntos ni guion","dialogHeight: 200px; dialogWidth: 700px; dialogTop: px; dialogLeft: px; edge: Raised; center: Yes; help: Yes; resizable: No; status: No;");
			camporut.focus();
			camporut.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++ )
  {
  	if (drut.charAt(i)=='k')
  		invertido = invertido + 'K';
  	else
    	invertido = invertido + drut.charAt(i);
  }
  //document.ActionPersona.CustLoginIDAux.value = invertido;
  if(!checkDVPersona(rut, camporut))
    return false;
  return true;
}


function checkDVPersona(crut, camporut)
{
  largo = crut.length;
  if(largo < 2){
    window.showModalDialog("functions/error_pagina.asp","* Debe ingresar el RUT completo<br> Recuerde, Sin puntos ni guion","dialogHeight: 200px; dialogWidth: 700px; dialogTop: px; dialogLeft: px; edge: Raised; center: Yes; help: Yes; resizable: No; status: No;");
   		camporut.select();
    	camporut.focus();
    return false;
  }
  if(largo > 2){
    rut = crut.substring(0, largo - 1);
  }
  else{
    rut = crut.charAt(0);
  }
  dv = crut.charAt(largo-1);

  if(rut == null || dv == null){
      return false;
  }

  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()){
    	window.showModalDialog("functions/error_pagina.asp","* El RUT es incorrecto<br> Recuerde, Sin puntos ni guion","dialogHeight: 200px; dialogWidth: 700px; dialogTop: px; dialogLeft: px; edge: Raised; center: Yes; help: Yes; resizable: No; status: No;");
    	camporut.select();
    	camporut.focus();
    return false;
  }
  return true;
}


