Ver Mensaje Individual
  #4 (permalink)  
Antiguo 25/07/2006, 02:42
Avatar de el_javi
el_javi
 
Fecha de Ingreso: marzo-2005
Ubicación: MAdrid
Mensajes: 844
Antigüedad: 20 años
Puntos: 10
tooltip.js (parte 2)

ya terminamos.. esta es la PARTE 2

Código PHP:

// Función para desactivar el Tooltip
function desactivar_tooltip(){
    
// Comprovamos si la funcionalidad TOOLTIP está activa
    
if(tooltip_ACTIVO == true){
        
// Hacemos desaparecer el Tooltip
//        t2 = setTimeout("capa.style.visibility='hidden'",tiempo_espera);
        
capa.style.visibility "hidden";
        
// Hacemos desaparecer el IFRAME que hay debajo del Tooltip, el cual nos ayuda a que el Tooltip se vea sobre elementos SELECT y Textarea
        
obj_iframe_oculto.style.display "none";
        if (
t1){
            
clearTimeout(t1);
        }
        if (
t2){
            
clearTimeout(t2);
        }
    }
}


 
 
/*
     Función que recorre un conjunto de Argumentos (pasados desde la función de Apertura del tooltip).
    Ésta función monta le mensaje de salida del tooltip
 */
 
function mensaje_segun_elemento(argumentos_referenciados){
     var 
el_mensaje_tooltip "";
     var 
mensaje_totalmente_definido false;
    var 
posicion_mensaje = -1;
    
// Si le hemos pasado algún parámetro
//    alert(argumentos_referenciados.length)
     
if(argumentos_referenciados.length 0){
        
// Recorro los parámetros para buscar el Código de Mensaje y si hay o no mensaje dinámico
         
for(i=1;i<argumentos_referenciados.length;i++){
            
// Si el argumento actual es una cadena de texto
            
if(isNaN(argumentos_referenciados[i]) || >1){
                
// Comprovamos que se haya puesto ya el mensaje correspondiente, para incluirle los parámetros dinámicos
                
if(el_mensaje_tooltip != ""){
                    var 
parametro_mostrar argumentos_referenciados[i];
                    
// Si el argumento actual REALEMNTE ES SUNA CADENA

                    
if(isNaN(argumentos_referenciados[i])){
                        
// Si NO encontramos el elemento de Negación (!) como primer caracter del parámetro, es que PONEMOS el DETERMINANTE
                        
if(argumentos_referenciados[i].substr(0,1) != "!"){
                            
// comprobamos si es masculino o femenino
                            
if ((argumentos_referenciados[i].substr(argumentos_referenciados[i].length-11) != "a" && argumentos_referenciados[i].substr(01) != "a") || argumentos_referenciados[i].substr(01) == "h"){
                                
determinante "el";
                            }
                            else{
                                
determinante "la"
                            }
                        }
                        else{
                            
parametro_mostrar parametro_mostrar.substr(1);
                            
determinante "";
                        }
                    }
                    else{
                        
determinante "";
                    }
                    
el_mensaje_tooltip el_mensaje_tooltip.replace("%" + (i-1),determinante " " parametro_mostrar);
                }
                else{
                    
mensaje_totalmente_definido false;
                }                
            }
            else {
// Si el elemento encontrado es un NÚMERO (será el código de mensaje)
                
mensaje_totalmente_definido true
                
// Nos quedamos con la posición que ocupa el mensaje que hay que mostrar
                
posicion_mensaje argumentos_referenciados[i];
                
el_mensaje_tooltip mensajes_tooltip[posicion_mensaje];
            }
        } 
// for
        // Si no se le ha pasado el argumento de Reemplazo, mostramos el Mensaje genérico de esa "Categoria"
        
if(el_mensaje_tooltip.indexOf("%") != -1){
            
// Subimos 1 nivel el código de mensaje, para mostar el mensaje genérico de esa "categoria"
            
var cadena_codigo_mensaje posicion_mensaje.toString().substring(0,2) + "0";
            
el_mensaje_tooltip mensajes_tooltip[parseInt(cadena_codigo_mensaje)];
        }
    }
    else{
// Si no hay parámetros no hay mensaje
        
mensaje_totalmente_definido false
    
}

    if(
mensaje_totalmente_definido == false){
        
el_mensaje_tooltip mensajes_tooltip[0];
    }
    
    return(
el_mensaje_tooltip);
 }

 
 
/*
    Función que asigna dinamicamente un evento
    Parametro 1: El objeto al que se le asignará el evento
    Parametro 2: Evento que asignamos (Como SOLO IE tiene ON en sus eventos, la cadena no ha de llevar el ON. Si lo tiene, la función se lo quitará).
    Parámetro 3: Función que asignamos al objeto en ese evento
*/
function agregar_evento_dinamico (el_objetoel_eventola_funcion){
    if(
el_evento.substr(0,2).toLowerCase() == "on"){
        
el_evento el_evento.substr(2,el_evento.length)
    }
    
// Agregamos en tiempo de Ejecución el evento MouseOut del Boton
    
if (window.addEventListener) {// Si El navegador tiene un EventListener (Firefox y Netscape)
        
el_objeto.addEventListener(el_evento,eval(la_funcion),true);
    }
    else {
// Si no es Netscape ni Firefox
        // Si el navegador es IE 5+
        
if (window.attachEvent){
            var 
cadena_evento "on" el_evento;
            
el_objeto.attachEvent(cadena_evento,eval(la_funcion));
        }
        else {
// Si no es IE 5+
            
if (document.getElementById){
                
el_objeto.onmouseout = eval(la_funcion);
            }
        }
    }
    return(
el_objeto);

Quiro hacer una pregunta de interes general... ahy alguna manera de ahcer lo que yo he hecho, sin poner 3 post's? es para no llenar esto de cosas mias.. para la próxima.

Saludos a toso, y espero que mis comentarios sea útiles