/////////////////////////////////////////////////
function goto(url){
	location.href = url;
}
/////////////////////////////////////////////////
var sSeparaMil = ".";

/////////////////////////////////////////////////
function ocultar(tabla){
	if(tabla != null){
		if(tabla.style.display != '' ){
			tabla.style.display = '';
		}else{
			tabla.style.display = 'none';
		}
	}

}
/////////////////////////////////////////////////
function Rtrim(sTmp1)
{
	var iTmp1 = 0;
	var oTmp1 = sTmp1;
	if (typeof(oTmp1) == "string"){
		if (oTmp1.length > 0){
			iTmp1 = oTmp1.length - 1;
			while (oTmp1.charAt(iTmp1) == " "){
				iTmp1 -= 1;
			}
			oTmp1 = oTmp1.slice(0, iTmp1 + 1);
		}
	}
	sTmp1 = oTmp1;
	return(sTmp1);
}
/////////////////////////////////////////////////
function Ltrim(sTmp1)
{
	var iTmp1 = 0;
	var oTmp1 = sTmp1;
	if (typeof(oTmp1) == "string"){
		if (oTmp1.length > 0){
			while (oTmp1.charAt(iTmp1) == " " && iTmp1 < oTmp1.length){
				iTmp1 += 1;
			}
			oTmp1 = oTmp1.slice(iTmp1);
		}
	}
	sTmp1 = oTmp1;
	return(sTmp1);
}
/////////////////////////////////////////////////
function Trim(sTmp1)
{
	return(Rtrim(Ltrim(sTmp1)));
}
/////////////////////////////////////////////////
function validaMail(email){
	if(email.indexOf("@")==-1 || email.indexOf(".")==-1){
		return false;
	}else{
		return true;
	}
}
/////////////////////////////////////////////////
function onMouseOver(otmp1, nombre_clase){
    otmp1.className = nombre_clase;
    otmp1.style.cursor = 'hand';
}
/////////////////////////////////////////////////
function onMouseOut(otmp1, nombre_clase){
    otmp1.className = nombre_clase;
}
/////////////////////////////////////////////////
function textCounter(field, countfield, maxlimit) {
   	if (field.value.length > maxlimit)
   		field.value = field.value.substring(0, maxlimit);
   	else
   		countfield.value = maxlimit - field.value.length;
}
/////////////////////////////////////////////////
// ********************************************************************************************
// Chequea el dígito verificador
// ********************************************************************************************
function checkDV(rut, drut) {
var dvr = '0';
    suma = 0;
    mul  = 2;
    dvi = 0;
    
    for (i= rut.length -1 ; i >= 0; i--) {
        suma = suma + parseInt(rut.charAt(i), 10) * mul;
        if (mul == 7)
            mul = 2;
        else    
            mul++;
    }

    res = parseInt(suma, 10) % 11;
    if (res == 1)
        dvr = 'k';
    else
        if (res == 0)
            dvr = '0';
        else {
            dvi = 11-res;
            dvr = dvi + "";
        }
    if (dvr != drut.toLowerCase())
        return false;
    else
        return true;
}

// ********************************************************************************************
// Formatea un Run
// ********************************************************************************************
function Run_format(sTmp_run) {
var iTmp1;
var bTmp1;
var sTmpDv;
    
    if (sTmp_run != "") {
        iTmp1 = sTmp_run.length;
        sTmpDv = sTmp_run.substring(iTmp1 - 1,iTmp1);
        iTmp1 = iTmp1 - 1;
        sTmp_run = sTmp_run.substring(0,iTmp1);
        sTmp_run = Trim(sTmp_run);

        if (!checkDV(sTmp_run, sTmpDv)) {
            alert("El Rut es incorrecto");
            sTmp_run = "";
        }
        else {
            sTmp_run = Format(sTmp_run, "N");
            sTmp_run = sTmp_run + "-" + sTmpDv;
        }
    }

    return sTmp_run;
}
// ********************************************************************************************
// Funcion que valida el buen ingreso de un Rut al momento de que la caja del Rut pierde el foco
// ********************************************************************************************
function Rut_onblur(oTmp1){
var sTmp1 = new String(oTmp1.value);
	if (sTmp1 != "") {
		sTmp1 = ReemplazaCaracter(sTmp1, sSeparaMil, "");                               
		sTmp1 = ReemplazaCaracter(sTmp1, "-", ""); 
		oTmp1.value = Run_format(sTmp1);
	}
}

// ********************************************************************************************
// Funcion que desformatea el Rut al momento de que la caja del Rut obtiene el foco para edicion
// ********************************************************************************************
function Rut_onfocus(oTmp1){
var sTmp1 = new String(oTmp1.value);
    sTmp1 = ReemplazaCaracter(sTmp1, sSeparaMil, "");
    sTmp1 = ReemplazaCaracter(sTmp1, "-", "");
    oTmp1.value = sTmp1;
    oTmp1.select();
}

// ********************************************************************************************
// Funcion que desformatea el Rut al momento de que la caja del Rut obtiene el foco para edicion
// ********************************************************************************************
function Rut_onkeypress(oTmp1){
var ivalor = window.event.keyCode;
    if ((ivalor == 107) || (ivalor == 75)) {
        window.event.keyCode = 75;
        return;
    }
    if ((ivalor < 48) || (ivalor > 57))
        window.event.keyCode = 0;
}
// ********************************************************************************************
// Funcion que permite el ingreso unico de caracteres alfanumericos MAYUSCULAS en un txt
// ********************************************************************************************
function text_onkeypress(){
var ivalor;
    ivalor = window.event.keyCode;
    
    if (ivalor != 34){
        if ((ivalor >= 97) && (ivalor <= 122) || ivalor == 241)
            window.event.keyCode = ivalor - 32;
    }
    else
        window.event.keyCode = 0;
}

// ********************************************************************************************
// Funcion que permite el ingreso unico de caracteres alfanumericos MAYUSCULAS en un txt MAS CARACTERES ESPECIALES
// ********************************************************************************************
function txt_onkeypress(){
var ivalor;
    ivalor = window.event.keyCode;
    
    if ((ivalor >=65) && (ivalor <= 90) || (ivalor >= 97) && (ivalor <= 122) || ivalor == 32 || ivalor == 209 || ivalor == 241 || ivalor == 39 || ivalor == 45){
        if ((ivalor >= 97) && (ivalor <= 122) || ivalor == 241)
            window.event.keyCode = ivalor - 32;
    }
    else
        window.event.keyCode = 0;
}
// ********************************************************************************************
// Reemplaza caracter de un string
// ********************************************************************************************
function ReemplazaCaracter(Texto, CaracterOrigen, CaracterDestino) {
var iTmp1, iTmp2;
var sTmp1 = new String(Texto);

    for (iTmp1 = 0; iTmp1 <= sTmp1.length; iTmp1++) {
        if (sTmp1.charAt(iTmp1) == CaracterOrigen)
            sTmp1 = sTmp1.replace(CaracterOrigen,CaracterDestino);
    }

    return sTmp1;
}
// ********************************************************************************************
// Formtea un Numero Con/Sin decimales
// ********************************************************************************************
function Format(Numero, Decimales) {
    if (Trim(Decimales) == "N")
        return FormatoSinDecimal(Numero)
    else
        return FormatoConDecimal(Numero)
}
// ********************************************************************************************
// Formatea Numero Sin Decimales Redondeando
// ********************************************************************************************
function FormatoSinDecimal(Numero) {
    if(isNaN(Numero))
        Numero = "0";
    else
        Numero = Math.round(Numero).toString();
        
    for (var i = 0; i < Math.floor((Numero.length-(1+i))/3); i++) 
        Numero = Numero.substring(0, Numero.length - (4*i+3)) + sSeparaMil + Numero.substring(Numero.length-(4*i+3));
        
    return (Numero);
}

// ********************************************************************************************
// Formatea Numero CON Decimales Redondeando
// ********************************************************************************************
function FormatoConDecimal(Numero) {    
    if(isNaN(Numero)) {
        cents = "0";
        Numero = "0";       
    }
    else {
//      cents = Math.floor((Numero*100)%100);
//      Numero = Math.floor(Numero).toString();

        cents = Math.floor((Numero*100+0.5)%100);
        Numero = Math.floor(Numero+0.01).toString();
    }
    if(cents < 10)
        cents = "0" + cents;

    for (var i = 0; i < Math.floor((Numero.length-(1+i))/3); i++) 
        Numero = Numero.substring(0, Numero.length - (4*i+3)) + sSeparaMil + Numero.substring(Numero.length-(4*i+3));

    return (Numero + sSeparaDecimal + cents); 
}

