// variable en la que guardamos el context path
var m_contextPath;
// esta es la TR que ha sido seleccionada. Se usa al adoptar Ajax para mostrar detalle y editar 
// en RFC0015 RFC0017 RFC0025. Se carga en la funcion guardarSeleccionado
var m_elmSelecc = null;

// Verificamos si los INPUTS están informados. En caso contrario 
// se le indicará al usuario que se va a proceder a eliminar dicho contenido
// de la base de datos
// jmcc: añado el envio del formulario en el que hay que explorar los inputs
function InformarBorrado(mensaje, formId, tipo) {   
    var valor;
    var longitud = 0;
    var col;
    var i = 0;
    
    // buscamos el formulario
    var frm = document.getElementById(formId);
    var elm;
    var alguno = false;
    
    // ahora miramos los elementos INPUT de tipo TEXT del formulario y vemos si 
    // están en blanco o no
    for (i=0;i<frm.elements.length;i++) {
        if(frm.elements[i].type == "text") {
            valor = trim(frm.elements[i].value);
            longitud += valor.length;
            if (valor.length == 0) alguno = true;
        }
    }
    // si la longitud está a cero es que todos estaban en blanco... y se lanza el mensaje
    if (longitud == 0) {
        if (tipo == "mensaje") {
            if(!window.confirm(mensaje)) { 
                return false; 
            }
        } else {
            window.alert(mensaje);
            return false; 
        }
    } else {
        if (tipo == "errorTodos") {
            if (alguno == true) {
                window.alert(mensaje);
                return false; 
            }
        }
    }
    return true;
}


function setCursor(tipo) {
    // no funciona
    //return;
    document.body.style.cursor = tipo;
}


// Cuando pulsa en una entidad para mostrar su detalle, hay que cambiar 
function cambiarSeleccionado(idTabla) {
    var trs = document.getElementById(idTabla);
    var i;
    
    for(i=0;i<trs.rows.length;i++) {
        if(trs.rows[i].className == "Seleccionada") {
            trs.rows[i].className = "NoSeleccionada";
            break;
        }
    }
    if (m_elmSelecc != null) {
        m_elmSelecc.className = "Seleccionada";
    }
    
    // devolvemos el cursor a su estado
    setCursor("default");
}
// Cuando pulsa en una entidad para mostrar su detalle, hay que cambiar 
function guardarSeleccionado(elm) {
    m_elmSelecc = elm;
}

// Deshabilitamos todos los tag A, con la excepción de los que contienen en el id alguna de las cadenas 
// que recibimos en un string separado por ;
function DeshabilitarBotones(excluir) {
    var valor;
    var longitud = 0;
    var i;
    var j;
    var col = document.links;
    var idExcluye = excluir.split(";");
    var encontre = true;
    for (i = 0; i < col.length; i++) {
        encontre = false;
        for(j=0; j<idExcluye.length; j++) {
            if(col[i].id.indexOf(idExcluye[j]) > -1) {
                encontre = true;
                break;
            }
        }
        if (encontre == false) {
            // NOTA: En IE podemos poner = "", pero en Firefox hay que hacerlo
            // igual a null, que funciona tambien en IE, y es mejor... un puntero a una 
            // funcion hay que ponerlo a null
            col[i].onclick = null;
            if(col[i].className == "button") {
                col[i].className = "buttonDisabled";
            } else {
                col[i].className = "disabled";
            }
            
        }
    }
}

// Deshabilitamos todos los tag A, con la excepción de los que contienen en el id alguna de las cadenas 
// que recibimos en un string separado por ;
function HabilitarBotones() {
    var valor;
    var longitud = 0;
    var i;
    var j;
    var col = document.links;
    var encontre = true;
    for (i = 0; i < col.length; i++) {
        // NOTA: En IE podemos poner = "", pero en Firefox hay que hacerlo
        // igual a null, que funciona tambien en IE
        col[i].onclick = null;
        if(col[i].className == "button") {
            col[i].className = "buttonDisabled";
        } else {
            col[i].className = "disabled";
        }
    }
}

//Función que limpia todos los elementos del formulario
//Hay que tener en cuenta que al pasar el idFormulario el id para usuarios por
//ejemplo no es "formListUsuario" sino "contentCuerpo:formListUsuario". Esto
//es debido a que usamos subview en plantillaAdmin.jsp con id contentCuerpo
function limpiarFormulario(idFormulario) {
    //Obtengo el formulario con el id
    f=document.getElementById(idFormulario);
    elementos = f.elements;
    for (i = 0; i < elementos.length; i++) {
        if (elementos[i].type == "text" || elementos[i].type == "select-one" 
        || elementos[i].type == "checkbox") {
            elementos[i].value = "";
        }
    }
}

// indica que es imposible realizar el proceso
function informarImposibleRealizarProceso(mensaje) {   
    // si la longitud está a cero es que todos estaban en blanco... y se lanza el mensaje
    window.alert(mensaje);
    return false;
}

/*	
==================================================================
 
ltrim(string) : Returns a copy´of a string without trailing spaces.
 
==================================================================
 */

function ltrim(str){
    if(str==null) {
        return null;
    }
    for(var i=0;str.charAt(i)==" ";i++);
    return str.substring(i,str.length);
}

function rtrim(str){
    if(str==null) {
        return null;
    }
    for(var i=str.length-1;str.charAt(i)==" ";i--);
    return str.substring(0, i+1);
}

function trim(str) {
    return rtrim(ltrim(str));
}

// MENU LATERAL PARA LA EXTRANET
function marcaFila(stSel, fila) {
    //setCursor(tipoCursor);
    fila.className = stSel;
}

// Abrir popup de gastos de envio y seguro
function abrirGastos(){
    wnd = window.open(m_contextPath + '/faces/portal/articulos/jsp/gastos.jsp','ventana1','width=710, height=600, scrollbars=yes, menubar=no, location=no, resizable=no, top=0, left=0');
    // wnd.moveTo(0,0);
    return false;
}

// Abrir popup de imagen grande
var m_actual = 0;
function setNumFotoActual(valor) {
    m_actual = valor;
}
function abrirFotoMuyGrande(artPk){
    window.open(m_contextPath + '/faces/portal/articulos/jsp/fotoMuyGrande.jsp?foto_actual=' + m_actual + '&art_param=' + artPk, 'vImgMGrandes', 'dependent=yes, width=580, height=594, scrollbars=no, menubar=no, location=no, resizable=no')
    return false;
}

// abrir ventana windows
function abrirVentana(urlFabricante, ventana) {
    if (urlFabricante != "#") {
        window.open(urlFabricante, ventana);
    }
    return false;
}

// abrir ventana windows con opciones.
function abrirVentanaConOpciones(urlFabricante, ventana, opciones) {
    if (urlFabricante != "#") {
        window.open(urlFabricante, ventana,opciones);
    }
    return false;
}

function abrirPopupOpinion(articulo){
      window.open(m_contextPath + '/faces/portal/articulos/jsp/opinionPopup.jsp?artPk=' + articulo,'NuevaOpinion','dependent=yes,menubar=no,toolbar=no,location=no,directories=no,status=no,resizable=no,scrollbars=no,width=650,height=550');    
      return false;
}

//Activa o desactiva la población con texto si se selecciona Otros que tiene valor ''.
var m_pob_ant = "";
function activaDesactivaPoblacion(idForm, idPoblacionTexto, idSelectPoblacion) {
    //1.- Recojo el formulario, la población en Texto y la población del Select
    form = document.getElementById(idForm);
    poblacionTexto = document.getElementById(idPoblacionTexto);
    poblacion = document.getElementById(idSelectPoblacion);

    //2.- Pongo otros en color
    ponOtrosEnColor(poblacion);

    //3.- Si la población del select es '' es que está selecionado Otros por lo 
    //que activo Población de texto. Sino pues la desactivo y borro lo que haya 
    //en población texto.
    // jmc: devuelve -1 en vez de ''
    // comprobamos si el option esta disabled en cuyo caso dejamos el input en readOnly indepen
    // dientemente del valor
    // si se borra el texto se borra tras la carga y no se ve
    //alert("poblacion.disabled="+poblacion.disabled);
    //alert("poblacion.options[poblacion.selectedIndex].value="+poblacion.options[poblacion.selectedIndex].value);
    if (poblacion.disabled == true) {
        //m_pob_ant = poblacionTexto.value;
        //poblacionTexto.value='';
        //poblacionTexto.onfocus = null;
        //poblacionTexto.onblur = null;
        // poblacionTexto.className = "disabled";
        poblacionTexto.readOnly=false;
        poblacionTexto.style.backgroundColor ='';

    } else {
        //En pasar por caja se usa '' en clientes JMC lo cambió a -1
        if (poblacion.options[poblacion.selectedIndex].value=='-1' ||
            poblacion.options[poblacion.selectedIndex].value=='') {
            //poblacionTexto.value = m_pob_ant;
            // poblacionTexto.className = "b2c_box1";
            poblacionTexto.readOnly=false;
            poblacionTexto.style.backgroundColor ='';
        } else {
            //m_pob_ant = poblacionTexto.value;
            // poblacionTexto.className = "disabled";
            poblacionTexto.value='';
            poblacionTexto.readOnly=true;
            poblacionTexto.style.backgroundColor ='silver';
        }
    }
}

function ponOtrosEnColor(select) {
    // Pongo la "Otros" en color.
    opciones = select.options;
    for (i=0; i < opciones.length; i++) {
        if (opciones[i].value=='' || opciones[i].value=='-1') {
            opciones[i].style.color='#BC03A7';
            opciones[i].style.fontWeight='bold';
        }

    }
}

//Función que activa o desactiva datos dependiendo de si está marcado o no el 
//check "Es Empresa".
function activaDesactivaDatosEmpresa(idEsEmpresa,idInputEmpresa,idInputRE) {
    var esEmpresa = document.getElementById(idEsEmpresa);
    var empresa = document.getElementById(idInputEmpresa);
    var recargoEquiv = document.getElementById(idInputRE);
    if (esEmpresa.checked) {
        empresa.readOnly=false;
        recargoEquiv.disabled=false;
        empresa.style.backgroundColor ='';
    } else {
        empresa.value='';
        empresa.readOnly=true;
        empresa.style.backgroundColor ='silver';

        recargoEquiv.checked=false;
        recargoEquiv.disabled=true;
    }

}

function verificaError(divId) {
    var elm = document.getElementById(divId);
    if (elm != null) {
        var valor = elm.innerHTML;
        // quitamos los <LI> <UL> </LI> </UL>
        valor = valor.replace(new RegExp("<UL>", "g"), "");
        valor = valor.replace(new RegExp("</UL>", "g"), "");
        valor = valor.replace(new RegExp("<LI>", "g"), "");
        valor = valor.replace(new RegExp("</LI>", "g"), "");
        window.alert(valor);
    }    
}

function noVacio(inputId) {
    // alert("recibo " + inputId);
   var elm = document.getElementById(inputId);
    //alert("elm " + elm);
    //alert("elm.value " + elm.value);
   var valor = trim(elm.value);
    //alert("valor " + valor);
   if (valor == "") {
       //window.alert("Debe indicar al menos una palabra para buscar");
       return false;
   }
   return true;
 }


function abrirIconosInfo(identificador, idiPk){    
    window.open(m_contextPath + '/faces/portal/articulos/jsp/iconos.jsp' + '?idiPk='+idiPk + '#'+identificador,'legend','WIDTH=360,HEIGHT=300,SCROLLBARS=yes,left=200,top=200');
    return false;
}

