/* funcio que utilzamos para los popUp desde un flash

*

*/

function OpenInstant(whereto)

				  {

					var instantwin2=window.open(whereto,"newinstant2","width=730,height=640,resizable=no,menubar=no,status=no,toolbar=no,scrollbars=yes,location=0, directories=0,dependant=yes,dialog=yes,modal=yes,unadorned=yes,left=0,top=0");

					instantwin2.focus();

				  } 



/* funcion que valida correo 

*

* utilizacion <input type="text" name="email" class="input_form" onChange="return isEmailAddress(email,'email' )">

*/



function isEmailAddress(theElement, nombre_del_elemento )

		{

		var s = theElement.value;

		var filter=/^[A-Za-z][A-Za-z0-9_]*@[A-Za-z0-9_]+\.[A-Za-z0-9_.]+[A-za-z]$/;

		if (s.length == 0 ) return true;

		if (filter.test(s))

		return true;

		else

		/*

		alert("Ingrese un E-mail valido");

		theElement.focus();

		*/

		return false;

}

function isNumerico(theElement, nombre_del_elemento )

		{

		var s = theElement.value;

		var filter=/^[0-9.]*$/;

		if (s.length == 0 ) return true;

		if (filter.test(s))

		return true;

		else

		alert("Ingrese un número");

		theElement.focus();

		return false;

}



function isString(theElement, nombre_del_elemento )

		{

		var s = theElement.value;

		var filter=/^[A-Za-z0-9_.,áéíóúÁÉÍÓÚñÑ ]*$/;

		if (s.length == 0 ) return true;

		if (filter.test(s))

		return true;

		else

		alert("Este campo debe ser alfanumerico (letras y números solamente)");

		theElement.focus();

		return false;

}



function isArchivo(theElement, nombre_del_elemento )

		{

		var s = theElement.value;

		var filter=/^[A-Za-z0-9_:\.\\\\ ]*$/;

		if (s.length == 0 ) return true;

		if (filter.test(s))

		return true;

		else

		alert("El archivo que subirá sólo puede contener: números, letras (sin acentos), \nguión bajo y caracteres de ubicación. Como por ejemplo: \nc:\\archivo\\nombre_del_archivo123456.doc\n!Revise la ubicación y nombre del archivo!");

		theElement.focus();

		return false;

}



function ifNumerico(theElement, nombre_del_elemento )

		{

		var s = theElement.value;

		var filter=/^[0-9]*$/;

		if (s.length == 0 ) return true;

		if (filter.test(s))

		return true;		

		return false;

}

function isLetra(theElement, nombre_del_elemento )

		{

		var s = theElement.value;

		var filter=/^[A-Za-z][A-Za-z]*$/;

		if (s.length == 0 ) return true;

		if (filter.test(s))

		return true;

		else

		alert("Ingrese solo letras");

		theElement.focus();

		return false;

}



/* validador de rut

<input type="text" name="rut" id="rut" class="input_form_2" onChange="javascript: Rut(form.rut.value)">(11222333-4)

*/

function Rut(texto)
{	
	 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 del texto introducido
	largo = texto.length;

	// Si largo de caracteres es menor a 10 no es un rut válido
	if ( largo < 2 ) {		
		alert("Debe ingresar el rut completo")		
		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) != "-" && texto.charAt(i) != "k" && texto.charAt(i) != "K" ) {			
			alert("El valor ingresado no corresponde a un R.U.T valido");			
			return false;		
		}	
	}	
	
	var invertido = "";	
	for ( i=(largo-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=1,j=2; i<largo; i++,j++ )	
	{		
		//alert("i=[" + i + "] j=[" + 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++ )		
		invertido = invertido + dtexto.charAt(i);	


	
	//window.document.adminForm.rut.value = invertido.toUpperCase()		

	if ( revisarDigito2(texto) )		
		return true;	

	return false;
}



function revisarDigito( 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");		
	/*	window.document.adminForm.rut.focus();		
		window.document.adminForm.rut.select();		*/	
		return false;	
	}	
	return true;
}


function revisarDigito2( crut )
{	
	largo = crut.length;	
	if ( largo < 2 )	
	{		
		alert("Debe ingresar el rut completo")		
	/*	window.document.adminForm.rut.focus();		
		window.document.adminForm.rut.select();		*/
		return false;	
	}	
	if ( largo > 2 )		
		rut = crut.substring(0, largo - 1);	
	else		
		rut = crut.charAt(0);	
	dv = crut.charAt(largo-1);	
	revisarDigito( 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")		

	/*	window.document.adminForm.rut.focus();		

		window.document.adminForm.rut.select();		*/

		return false	

	}



	return true

}


/*
* Función que valida correctamente el rut, hecho por Alejandro Martí
*/
function esRutValido (rut) {

	var rutArray = new Array();
	rutArray = rut.split('-');
	
	if ( rutArray.length != 2 ) {

		alert ('El rut ingresado no es válido');
		return false;
		
	} else { // else
	
		// Variables
		var cuerpo 	= rutArray[0]; // cuerpo original
		var dv 		= rutArray[1]; // digito verificador original

		// Valido largo del cuerpo del rut
		if ( cuerpo.length < 7 ) {
			alert ('El rut ingresado no es válido')
			return false;
		} // fin if
		
		// Valido caracteres del rut
		for ( i=0; i <= cuerpo.length-1; i++ ) {
			switch ( cuerpo.charAt(i) ) {
				case '1':
				case '2':
				case '3':
				case '4':
				case '5':
				case '6':
				case '7':
				case '8':
				case '9':
				case '0':
					break;
				default:
					alert ('El rut ingresado tiene caracteres inválidos')
					return false;
					break;
			}
		}
		
		// Realizo cálculos matemáticos
		suma = 0;
		x = 2;
		for ( i=cuerpo.length-1; i >= 0; i-- ) {
			if (x > 7) {x=2;}
			suma = suma + ( parseInt(cuerpo.charAt(i)) * x );			
			x++;
		} // fin for
		
		// Valido resultado de los cálculos
		if ( suma == 0 ) {
			alert ('El rut ingresado no es válido')
			return false;
		}
		
		// Calculo digito verificador
		resto = suma % 11;
		suma = 11 - resto;
		digito = suma.toString();

		// Formateo digito verificador resultante de los cálculos
		switch (digito) {
			case '10':
				digito = 'K';
				break;
			case '11':
				digito = '0';
				break;
		} // fin switch
		
		// Comparo dígitos verificadores
		if ( dv.toUpperCase() != digito ) {
			alert ('El rut ingresado no es válido')
			return false;
		} else {
			return true;
		}

	} // fin if
	
}
