﻿// JScript File
var ColorFilaPar = "#FFFFFF";
var ColorFila = "#EEEEEE";
var ColorFilaSeleccionada = "#FFD964";
var ColorFilaIluminada = "#FFFFC0"

/**compatibilidad con evento click**/
function fireEvent(obj, evt) {

    var fireOnThis = obj;
    if (document.createEvent) {
        var evObj = document.createEvent('MouseEvents');
        evObj.initEvent(evt, true, false);
        fireOnThis.dispatchEvent(evObj);
    } else if (document.createEventObject) {
        fireOnThis.fireEvent('on' + evt);
    }
}
/** uso: fireEvent(document.getElementById("<%= Control.ClientID %>"), 'click'); **/
function Iluminar_On(GridViewRow) {

    if (GridViewRow != null) {
        var RowIndex = GridViewRow.rowIndex;
        GridViewRow.originalBgColor = GridViewRow.style.backgroundColor;

        GridView = GridViewRow.parentNode;

        GridView.rows[RowIndex].originalBgColor = GridViewRow.style.backgroundColor;
        GridView.rows[RowIndex].style.backgroundColor = ColorFilaIluminada;


    }
}

function Iluminar_Off(GridViewRow) {
    if (GridViewRow != null) {

        var RowIndex = GridViewRow.rowIndex;

        GridViewRow.style.backgroundColor = GridViewRow.originalBgColor;

        GridView = GridViewRow.parentNode;

        GridView.rows[RowIndex].style.backgroundColor = GridView.rows[RowIndex].originalBgColor;
    }
}

function Iluminar_Click(GridViewRow) {

    GridViewx = GridViewRow.parentNode;

    Iluminar_Restablecer_colores_grilla(GridViewx);

    var RowIndex = GridViewRow.rowIndex;

    GridViewx.rows[RowIndex].style.backgroundColor = ColorFilaSeleccionada;
    GridViewx.rows[RowIndex].originalBgColor = ColorFilaSeleccionada;

}


function Iluminar_Restablecer_colores_grilla(GridView) {

    GridViewx = GridView;
    var ind = 0;

    imgColorFilaPar = new Image();
    imgColorFila = new Image();
    imgColorFilaSeleccionada = new Image();
    imgColorFilaIluminada = new Image();

    imgColorFilaPar.style.backgroundColor = ColorFilaPar;
    imgColorFila.style.backgroundColor = ColorFila;
    imgColorFilaSeleccionada.style.backgroundColor = ColorFilaSeleccionada;
    imgColorFilaIluminada.style.backgroundColor = ColorFilaIluminada;

    for (RowIndex = 0; RowIndex < GridViewx.rows.length; RowIndex++) {

        if (GridViewx.rows[RowIndex].style.backgroundColor.toLowerCase() == imgColorFilaPar.style.backgroundColor.toLowerCase() ||
            GridViewx.rows[RowIndex].style.backgroundColor.toLowerCase() == imgColorFila.style.backgroundColor.toLowerCase() ||
            GridViewx.rows[RowIndex].style.backgroundColor.toLowerCase() == imgColorFilaSeleccionada.style.backgroundColor.toLowerCase() ||
            GridViewx.rows[RowIndex].style.backgroundColor.toLowerCase() == imgColorFilaIluminada.style.backgroundColor.toLowerCase() ||
            GridViewx.rows[RowIndex].style.backgroundColor.toLowerCase() == "white") {
            if (ind == 1) {
                ind = 0;
                GridViewx.rows[RowIndex].style.backgroundColor = ColorFilaPar;
            }
            else {
                ind = 1;
                GridViewx.rows[RowIndex].style.backgroundColor = ColorFila;
            }
        }
    }

}

function Iluminar_BuscarFilaSeleccionado(GridView) {
    var encontrato = false;
    var retorno = 0;
    var ColorFila;
    imgColor = new Image();

    imgColor.style.backgroundColor = ColorFilaSeleccionada;

    if (GridView != null) {
        for (RowIndex = 1; RowIndex < GridView.rows.length; RowIndex++) {
            if (GridView.rows[RowIndex].style.backgroundColor == imgColor.style.backgroundColor) {
                retorno = RowIndex;
                break;
            }
        }
    }

    return retorno;
}

function Iluminar_BuscarFilaSegunValor(GridView, nCol, nombreNodo, valorBuscado, AscDesc) 
{
    var retorno = -1;

    if (GridView != null)
    {
        if (GridView.rows.length > 0) 
        {
            if (GridView.rows[1] != null)
            {
                if (AscDesc == "D") {
                        for (RowIndex = (GridView.rows.length-1); RowIndex > 0; RowIndex--) {
                            if (valorNodo(GridView.rows[RowIndex].cells[nCol], nombreNodo) == valorBuscado) {
                                retorno = RowIndex;
                                break;
                            }
                        }
                
                }
                else {
                        for (RowIndex = 1; RowIndex < GridView.rows.length; RowIndex++) {
                            if (valorNodo(GridView.rows[RowIndex].cells[nCol], nombreNodo) == valorBuscado) {
                                retorno = RowIndex;
                                break;
                            }
                        }
                }
            }
        }
    }
    return retorno;
}

function Iluminar_DestacarFilaSegunColumna(GridView, nCol, nombreNodo) 
{
    var ValorCol;
    var ColorFilaValor = "#EEEEEE";
    var ColorFilaAsignar = ColorFilaValor;

    if (GridView != null) 
    {
        if (GridView.rows.length > 0) {

            if (GridView.rows[1] != null) {
                ValorCol = valorNodo(GridView.rows[1].cells[nCol], nombreNodo);
                for (RowIndex = 1; RowIndex < GridView.rows.length; RowIndex++) {
                    if (valorNodo(GridView.rows[RowIndex].cells[nCol], nombreNodo) != ValorCol) {
                        ValorCol = valorNodo(GridView.rows[RowIndex].cells[nCol], nombreNodo);
                        if (ColorFilaAsignar == ColorFilaValor)
                            ColorFilaAsignar = ColorFilaPar;
                        else
                            ColorFilaAsignar = ColorFilaValor;
                    }

                    GridView.rows[RowIndex].style.backgroundColor = ColorFilaAsignar;
                }
            }
        }
    }
}

function valorNodo(ctrlPadre, nombreNodo) 
{
    for (n = 0; n < ctrlPadre.childNodes.length; n++) 
    {
        if (ctrlPadre.childNodes[n].childNodes.length > 0) 
        {
            if (ctrlPadre.childNodes[n].nodeName == nombreNodo) {
                if (nombreNodo == "SELECT" || nombreNodo == "INPUT")
                    return ctrlPadre.childNodes[n].value;
                else
                    return ctrlPadre.childNodes[n].innerHTML;
            }
            else {
                return valorNodo(ctrlPadre.childNodes[n], nombreNodo);
            }
        }
        if (ctrlPadre.childNodes[n].nodeName == nombreNodo) 
        {
            if (nombreNodo == "SELECT" || nombreNodo == "INPUT")
                return ctrlPadre.childNodes[n].value;
            else
                return ctrlPadre.childNodes[n].innerHTML;
        }
    }
    return "";
}

function cambiar_imagen_grabando(obj, clase) {
    if (obj.className == clase)
        return false;

    obj.className = clase;
    return true;
}

function verQuickEntry(idMilestone, offerId, url, codTipoOp, isFileSend ) {

    var ancho = 1024;
    var alto = 650;

    abrirVentanaRadWindow("RadWindowMilestone", url + "?offerid=" + offerId + "&codigo=" + idMilestone + "&ope="+ codTipoOp + "&of=" + "&url=", ancho, alto);     
    
    return false;
}

function eliminar_imagen(img) {
    if (confirm("Are you sure to delete the document?") == true) {
        var url = "dropfile.aspx?valor1=" + img;

        mywindow = window.open(url, "dropfile", "width=300px, height=200px;", false);
        mywindow.focus();


    }
    return false;
}


/// Funcion que devuelve Verdadero si lo que se ingresan solo números, 
/// y falso si lo que se ingresan no lo son
function SoloNumeros(obj, e) {
    var keynum;
    var keychar;
    var numcheck;

    if (window.event) // IE
    {
        keynum = e.keyCode;
    }
    else if (e.which) // Netscape/Firefox/Opera
    {
        keynum = e.which;
    }

    if ((keynum == 44 || keynum == 46))//& ( obj.value.indexOf(",") >= 0 || obj.value.indexOf(".") >= 0))	//44 =,   46 =.
    {
        if (window.event) // IE
        {
            e.returnValue = false;
        }
        else if (e.which) // Netscape/Firefox/Opera
        {
            e.returnValue = false;
        }
        return false;
    }

    keychar = String.fromCharCode(keynum);
    numcheck = /\D/;

    if (numcheck.test(keychar) && keynum != 8) //& keynum != 44 & keynum != 46 )
    {
        if (window.event) // IE
        {
            e.returnValue = false;
        }
        else if (e.which) // Netscape/Firefox/Opera
        {
            e.returnValue = false;
        }
        return false;
    }

}

/// Funcion que devuelve Verdadero si lo que se ingresan solo números y puntos, 
/// y falso si lo que se ingresan no lo son
function SoloNumerosConDecimales(obj, e) {
    var keynum;
    var keychar;
    var numcheck;

    if (window.event) // IE
    {
        keynum = e.keyCode;
    }
    else if (e.which) // Netscape/Firefox/Opera
    {
        keynum = e.which;
    }

    if ((keynum == 44 || keynum == 46) && obj.value.indexOf(".") >= 0)//& ( obj.value.indexOf(",") >= 0 ))  //44 =,   46 =. 45 =-
    {
        if (window.event) // IE
        {
            e.returnValue = false;
        }
        else if (e.which) // Netscape/Firefox/Opera
        {
            e.returnValue = false;
        }

        return false;
    }

    if ((keynum == 45) && obj.value.indexOf("-") >= 0)//& ( obj.value.indexOf(",") >= 0 ))  //44 =,   46 =. 45 =-
    {
        if (window.event) // IE
        {
            e.returnValue = false;
        }
        else if (e.which) // Netscape/Firefox/Opera
        {
            e.returnValue = false;
        }
        return false;
    }

    keychar = String.fromCharCode(keynum);
    numcheck = /\D/;
    if (numcheck.test(keychar) && keynum != 8 && keynum != 46 && keynum != 45) {

        if (window.event) // IE
        {
            e.returnValue = false;
        }
        else if (e.which) // Netscape/Firefox/Opera
        {
            e.returnValue = false;
        }
        return false;
    }
    else {
        return true;
    }

}

function focoNumero(obj) {
    obj.value = obj.value.replace(/[.\n]/g, "").replace(",", ".");
    obj.select();
}

function focoCursorInicio(obj) {
    obj.select();
}

function BotonMenu_Out(obj) {
    var hdf = document.getElementById("ctl00_hdfBotonSeleccionado").value;
    if (obj.id != ("ctl00_" + hdf))
        CambiarClase(obj, "cmdBotonMenuOut");
}

function BotonMenu_Over(obj) {
    CambiarClase(obj, "cmdBotonMenuOver");
}

function BotonMenu_Click(obj) {
    CambiarClase(obj, "cmdBotonMenuOver");
}

function CambiarClase(obj, cssClass) {
    obj.className = cssClass;
}

function rtrim(str) {
    var n = str.length;

    while (true) {
        n = str.length;
        if (n > 1) {
            if (str.substring(n - 1, n) == " ") {
                str = str.substring(0, n - 1);
            }
            else {
                break;
            }
        }
        else {
            break;
        }
    }
    return str;
}

function habilitarDropDownList() {
    var selects = document.getElementsByTagName("SELECT");

    for (i = 0; i < selects.length; i++) {
        if (selects[i].getAttribute("deshabilitado") != null) {
            if( String(true) == selects[i].getAttribute("deshabilitado") )
                selects[i].disabled = true;
            else 
                selects[i].disabled = false;
        }
        else
            selects[i].disabled = false;
    }
}

function seleccionarValorenDropDownList(ddlb, valor) 
{
    var ret = false;
    // Recorrer las opciones para seleccionar el usuario elegido
    for (i = 0; i < ddlb.length; i++) {
        ddlb.options[i].selected = false;
        if (ddlb.options[i].value == valor) {
            ddlb.options[i].selected = true;
            ret = true;
            break;
        }
    }

    return ret;
}

function llenarDropdowndesdeOtro(ddlbOrigen, dddlDestino, valorSeleccionado) 
{
    /// Limpiar el Combo Destino
    for (i = 0; i < dddlDestino.length; i++) {
        dddlDestino.remove(0);
    }

    /// Recorrer el Combo Origen e Insertar los valores en el Destino
    for (i = 0; i < ddlbOrigen.length; i++) {

        var option = document.createElement("option");
        option.text = ddlbOrigen.options[i].text;
        option.value = ddlbOrigen.options[i].value;

        if (valorSeleccionado == option.value)
            option.selected = true;    

        try 
        {
            // for IE earlier than version 8
            dddlDestino.add(option, dddlDestino.options[null]);
        }
        catch (e) {
            dddlDestino.add(option, null);
        }

    }
}


function validarut(rut) {
    rut.value = rut.value.replace(/\./g, "");
    if (!validaIngreso(rut))
        return false;

    var digitoRut;
    var digitovalida = 0;
    var largo = rut.value.length - 1;
    var nIndice;
    var resto;

    sumatoria = 0;
    nIndice = largo - 2;
    multiplo = 2

    digitoRut = rut.value.charAt(largo).toUpperCase();

    while (nIndice >= 0) {
        sumaNumeros(rut.value.charAt(nIndice));
        nIndice--;
    }

    resto = sumatoria % 11;
    digitovalida = 11 - resto;

    if (digitovalida == 10)
        digitovalida = "K";
    if (digitovalida == 11)
        digitovalida = 0;
    if (digitovalida == digitoRut)
        return true;
    else
        alert("Invalid RUT");
    rut.value = "";
    return false;
}
function sumaNumeros(caracter) {
    sumatoria = sumatoria + (caracter * multiplo);
    multiplo++;

    if (multiplo > 7)
        multiplo = 2;


}

// ValidRucSunat("20372706288") 
//***************************************** 
function validrucsunat(lcNroRuc) {

    lcNroRuc = lcNroRuc.replace(/\ /g, "").replace(/\./g, "").replace(/\-/g, "");

    if (lcNroRuc.length == 0) {
        return true;
    }

    if (lcNroRuc.length != 11) {
        return false;
    }

    var aArrayRuc1 = new Array();
    var aArrayRuc2 = new Array();
    var aArrayRuc3 = new Array();

    for (i = 0; i < 11; i++) {
        aArrayRuc1[i] = lcNroRuc.substr(i, 1); //VAL(SUBS(lcNroRuc,i,1)) 
    }
    aArrayRuc2[0] = 5;
    aArrayRuc2[1] = 4;
    aArrayRuc2[2] = 3;
    aArrayRuc2[3] = 2;
    aArrayRuc2[4] = 7;
    aArrayRuc2[5] = 6;
    aArrayRuc2[6] = 5;
    aArrayRuc2[7] = 4;
    aArrayRuc2[8] = 3;
    aArrayRuc2[9] = 2;
    aArrayRuc3[10] = 0;

    for (i = 0; i < 10; i++) {
        aArrayRuc3[i] = aArrayRuc1[i] * aArrayRuc2[i];
        aArrayRuc3[10] = aArrayRuc3[10] + aArrayRuc3[i];
    }

    lnResiduo = Math.abs(aArrayRuc3[10] % 11);
    lnUltDigito = 11 - lnResiduo;

    switch (lnUltDigito) {
        case 11:
            lnUltDigito = 1;
            break;
        case 1:
            lnUltDigito = 1;
            break;
        case 10:
            lnUltDigito = 0;
            break;
        case 0:
            lnUltDigito = 0;
            break;
    }


    if (lnUltDigito == aArrayRuc1[10]) {
        return true;
    }
    else {
        return false;
    }
}

function archivomostrar(url, file, client, type, Operation, folio) {
    window.open(url + "?archivo=" + file + "&cl=" + client + "&to=" + Operation + "&ta=" + type + "&fol=" + folio, "window", "width=930px, scrollbars=yes");
    return false;
}


function validaIngreso(rut) {
    if (rut.value.length <= 0) {
        return false;
    }

    var largo = rut.value.length - 1;
    var cuentaRaya = 0;

    while (largo >= 0) {
        if (rut.value.charAt(largo) == "-")
            cuentaRaya++;
        largo--;
    }
    if (cuentaRaya > 1) {
        alert("Rut Ingresado en Formato Invalido (99999999-X)");
        rut.value = "";
        return false;
    }
    else {

        if (cuentaRaya == 0) {
            rut.value = rut.value.substr(0, rut.value.length - 1) + "-" + rut.value.substr(rut.value.length - 1, 1);
        }

        if (rut.value.charAt(rut.value.length - 2) != "-") {
            alert("Rut Ingresado en Formato Invalido (99999999-X)");
            rut.value = "";
            return false;
        }
    }

    if (rut.value.length < 9) {
        alert("Rut debe ser sobre 1000000");
        rut.value = "";
        return false;
    }
    return true;
}


function cambiar_puntos_por_coma(obj) {
    var numero = new objNumero(obj.value);

    obj.value = obj.value.replace(".", ",");

    obj.value = numero.formato(2, true).replace(/\./g, "_").replace(/\,/g, ".").replace(/_/, ",");

    if (obj.value == "NaN") {
        obj.value = "0,00";
    }
}

function cambiar_puntos_por_coma_label(obj) {
    var numero = new objNumero(obj.innerHTML);

    obj.innerHTML = obj.innerHTML.replace(".", ",");

    obj.innerHTML = numero.formato(2, true).replace(/\./g, "_").replace(/\,/g, ".").replace(/_/, ",");

    if (obj.innerHTML == "NaN") {
        obj.innerHTML = "0,00";
    }
}

function cambiar_puntos_por_coma_n_decimales(obj, nDecimales) {
    var numero = new objNumero(obj.value);

    obj.value = obj.value.replace(".", ",");

    obj.value = numero.formato(nDecimales, true).replace(/\./g, "_").replace(/\,/g, ".").replace(/_/, ",");

    if (obj.value == "NaN") {
        obj.value = "0,0000000000".substring(0, nDecimales + 2);
    }

    
}

function quitar_decimales(obj, nDecimales) {
    if (nDecimales == null)
        nDecimales = 2;

    nDecimales = nDecimales + 1;

    obj.value = obj.value.substring(0, (obj.value.length - nDecimales));
}

function paginaAvanzar(nFilas) {

    var hdf;
    var pagina;
   
    if (nFilas == -2) // Ultima Página
    {
        pagina = 1
    }
    else {
        hdf = document.getElementById("hdfPaginaActual");
        pagina = parseInt(hdf.value) + parseInt(nFilas);
    }

    if (pagina < 1)
        pagina = 1;

    document.getElementById("hdfPaginaActual").value = pagina;

    busca_detalle(pagina);
}

function llenarSelectListPagina(obj, nPaginas) {

    // Eliminar los elementos del select
    var cantidad = obj.length;
    for (i = 1; i <= cantidad; i++) {
        obj.remove(0);
    }

    // Agregar la cantidad de filas que indica nPaginas

    for (i = 1; i <= nPaginas; i++) {
        var option = document.createElement("option");

        option.text = i;
        obj.add(option, null);
    }
}

function verParticipantes(celda, CodOficina) {

    var featu = "height=" + 500 + ", width=" + 800 + ", scrollbars=yes, left=" + 150;

    for (i = 0; i < celda.childNodes.length; i++) {
        if (celda.childNodes[i].nodeName == "INPUT")
            if (celda.childNodes[i].value != "") {

                ventanaDetalle = window.open("../subShipping/ShippingInstructions_ViewParticipantes.aspx?of=" + CodOficina + "&offer=" + celda.childNodes[i].value, "ViewParticipant", featu);
                ventanaDetalle.focus()

            }
        
    }
}

//Objeto objNumero
function objNumero(numero) {
    //Propiedades 
    this.valor = numero || 0
    this.dec = -1;

    //Métodos 
    this.formato = numFormat;
    this.ponValor = ponValor;

    //Definición de los métodos 
    function ponValor(cad) {
        if (cad == '-' || cad == '+') return
        if (cad.length == 0) return
        if (cad.indexOf('.') >= 0)
            this.valor = parseFloat(cad);
        else
            this.valor = parseInt(cad);
    }

    function numFormat(dec, miles) {
        var num = this.valor, signo = 3, expr;
        var cad = "" + this.valor;
        var ceros = "", pos, pdec, i;
        for (i = 0; i < dec; i++)
            ceros += '0';
        pos = cad.indexOf('.')
        if (pos < 0)
            cad = cad + "." + ceros;
        else {
            pdec = cad.length - pos - 1;
            if (pdec <= dec) {
                for (i = 0; i < (dec - pdec); i++)
                    cad += '0';
            }
            else {
                num = num * Math.pow(10, dec);
                num = Math.round(num);
                num = num / Math.pow(10, dec);
                cad = new String(num);
            }
        }
        pos = cad.indexOf('.')
        if (pos < 0) pos = cad.lentgh
        if (cad.substr(0, 1) == '-' || cad.substr(0, 1) == '+')
            signo = 4;
        if (miles && pos > signo)
            do {
                expr = /([+-]?\d)(\d{3}[\.\,]\d*)/
                cad.match(expr)
                cad = cad.replace(expr, RegExp.$1 + ',' + RegExp.$2)
            }
            while (cad.indexOf(',') > signo)
            if (dec < 0) cad = cad.replace(/\./, '')
            return cad;
        }
    } //Fin del objeto objNumero:


