// ## Validacion del C.U.I.T. en el cliente
function validarCuitMain()
{
    // ## Editable
	var objeto = document.getElementById("fnrocuit");  
	var razsoc = document.getElementById("frazsoc");  

	var valor = trim(objeto.value);	
	var retVal = validaCuit(valor);	
	switch (retVal)
	{
		case 0 :
			alert("El n\u00famero de la C.U.I.T. debe ser un dato num\u00e9rico v\u00e1lido."); 
			objeto.select();
			return;
			break;
		case -1:
			alert("El n\u00famero de la C.U.I.T. es inv\u00e1lido."); 
			objeto.select();
			return;			
			break;
		case -2:
			alert("El n\u00famero de la C.U.I.T. debe contener como m\u00ednimo 11 d\u00edgitos."); 		
			objeto.select();
			return;			
			break;	
	}
    document.form.submit();
}    

/* 
	# Función validaCuit(<<cadena>>):
	# Valores de retorno:
	 	 0 -> Si el CUIT es NULO
		-1 -> Si el CUIT no es numérico
		-2 -> Si la longuitud es menor a 11 dígitos
		 1 -> Si el CUIT es válido
 */
function validaCuit(cadena)
{	
	/* REGEXP */
	var str;
    re = /^[0-9]+$/;
   	    	
	str = cadena.toString();
	
	/* NULO */
	if (str == "")
    { str=""; return(0); }		
    
    /* NUMERICO */
	if(!re.test(str))
    { str=""; return(-1); }					    	

    /* LONGUITUD */
    if (str.length<11)
    { str=""; return(-2);} 
        
    return(1);	
}   


// ##
// ## FUNCIONES ADICIONALES
// ##

/* TRIM: función que quita los blancos a izquierda y derecha*/
function trim(argvalue)
{
  var tmpstr = ltrim(argvalue);

  return rtrim(tmpstr);

}

/* LTRIM: función que quita los blancos a izquierda*/
function ltrim(argvalue)
{

  while (1) {
    if (argvalue.substring(0, 1) != " ")
      break;
    argvalue = argvalue.substring(1, argvalue.length);
  }

  return argvalue;
}

/* RTRIM: función que quita los blancos a derecha*/
function rtrim(argvalue) {

  while (1) {
    if (argvalue.substring(argvalue.length - 1, argvalue.length) != " ")
      break;
    argvalue = argvalue.substring(0, argvalue.length - 1);
  }

  return argvalue;
}

/* LEFT: función que obtiene los "n" primeros caracteres de la cadena "s" */
function left(s, n)
{
	// Devuelve los n primeros caracteres de la cadena.
	if(n>s.length)
		n=s.length;	
	return s.substring(0, n);
}
