Despues de un buen rato tratando de descifrar tu genoma.. he podido limpiar el codigo con lo necesario, espero lo puedas implementar bien en tu pagina, ya que no tengo ningun RUC válido como para testearlo. En fin, he aquí el codigo:
Código HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0067)http://www.sunat.gob.pe/cl-ti-itmrconsruc/frameCriterioBusqueda.jsp -->
<HTML><HEAD><TITLE>Consulta RUC</TITLE>
<META http-equiv=Content-Type content="text/html; charset=windows-1252"><LINK
href="frameCriterioBusqueda_archivos/estilos2_0.css" rel=stylesheet>
<SCRIPT languaje="JavaScript">
function esnulo(campo){ return (campo == null||campo=="");}
function esnumero(campo){ return (!(isNaN( campo )));}
function eslongrucok(ruc){return ( ruc.length == 11 );}
function esrucok(ruc){
return (!( esnulo(ruc) || !esnumero(ruc) || !eslongrucok(ruc) || !valruc(ruc) ));
}
function trim(cadena){
cadena2 = "";
len = cadena.length;
for ( var i=0; i <= len ; i++ ) if ( cadena.charAt(i) != " " ){cadena2+=cadena.charAt(i); }
return cadena2;
}
function valruc(valor){
valor = trim(valor)
if ( esnumero( valor ) ) {
if ( valor.length == 8 ){
suma = 0
for (i=0; i<valor.length-1;i++){
digito = valor.charAt(i) - '0'; // aqui lo que no entiendo es - '0' no se que es, supongo que elimina los ceros, parece una resta pero como se va a restar si el chaart solo te devuelve un digito?
<!--
//Exactamente, al parecer, esto elimina los posibles ceros que existan dentro de los parametro que se ingresaron en el input
-->
if ( i==0 ) suma += (digito*2)
else suma += (digito*(valor.length-i))
}
resto = suma % 11;
if ( resto == 1) resto = 11;
if ( resto + ( valor.charAt( valor.length-1 ) - '0' ) == 11 ){
return true
}
} else if ( valor.length == 11 ){
suma = 0
x = 6
for (i=0; i<valor.length-1;i++){
if ( i == 4 ) x = 8
digito = valor.charAt(i) - '0';
x--
if ( i==0 ) suma += (digito*x)
else suma += (digito*x)
}
resto = suma % 11;
resto = 11 - resto
if ( resto >= 10) resto = resto - 10;
if ( resto == valor.charAt( valor.length-1 ) - '0' )
{
return true
}
}
}
return false
}
</SCRIPT>
<SCRIPT type=text/javascript languaje="JavaScript">
function RUC(){
if(!esrucok(mainForm.nroRuc.value)){
alert('Por favor, ingrese numero de RUC valido.')
mainForm.busqueda.focus();
return;
}else{
MainForm.submit();
}
}
</SCRIPT>
</HEAD>
<BODY>
<FORM name='mainForm' action='jcrS00Alias' method='post' target='mainFrame'>
<TABLE class=form-table cellSpacing=2 cellPadding=3 width="100%" border=0>
<TBODY>
<TR>
<TD>
<TABLE cellSpacing=2 cellPadding=3 width="100%" border=0>
<TBODY>
<TR>
<TD align=left bgColor=#3399cc><B>CRITERIOS DE
BÚSQUEDA:</B></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD align=left width=180>
<input type="hidden" id="nroRuc">
<input type="hidden" id="ruc">
<INPUT class='form-text' name='busqueda'></TD>
<TD align=left vAlign=center><INPUT class=form-button onclick="RUC()" type='button' value='Buscar'> <A href="javascript:goRefresh()"></A></TD>
</TR>
</TBODY></TABLE></TD></TR></TBODY></TABLE></FORM></BODY></HTML>
A la espera de tus comentario..
Salud!!