source: admin/WebConsole/clases/jscripts/ArbolVistaXML.js @ 5d05b06

Last change on this file since 5d05b06 was c870c84, checked in by Ramón M. Gómez <ramongomez@…>, 7 years ago

#834: Eliminar algunos espacios sobreantes y saltos de línea tipo CRLF.

  • Property mode set to 100644
File size: 22.5 KB
Line 
1// ************************************************************************************************
2//  Libreria de scripts de Javascript
3// Autor: José Manuel Alonso (E.T.S.I.I.) Universidad de Sevilla
4// Fichero: ArbolVistaXML.js
5// Este fichero implementa las funciones javascript de la clase ArbolVistaXML.php
6// *************************************************************************************************
7var botonraton=null;                                    //  Botón presionado
8var currentNodo="";                                     // Nodo actual
9var currentpathimg="";                          //      Path por defecto de las imágenes de signo
10var gLiteralcolor;                                              // Color nodo vista para restablecer
11var gLiteralbackground;                 // Fondo color nodo vista para restablecer
12//________________________________________________________________________________________________________
13// definicion dela clase triada
14//________________________________________________________________________________________________________
15        function NodoVista(){
16                this.nivel=0;                                                                   // Profundidad del nodo
17                this.imgsigno=null;                                     // Objeto IMG (Imagen de signo de la celda vista) O SPAN si el nodo vista no tiene hijos
18                this.literal=null;                                                      // Objeto SPAN (Literal de la celda vista)
19
20                this.CeldaVista=null;                                   // El objeto TABLE que contiene la imagen de signo y el literal)
21                this.Nodo=null;                                                 // El nodo en si (Objeto TR que contiene el objeto TABLE celda vista final)
22                this.ArbolHijos=null;                                   // El arbol conteniendo todos los nodos hijos ( Si nulo no tiene hijos)(Objeto TR)
23                this.NodoPadre=null;                            // El nodo padre (Objeto TR que contiene el objeto TABLE celda vista final, del padre)
24                this.ArbolHijosNodoPadre=null;          // El arbol del padre conteniendo los nodos hijos(Objeto TR)
25                this.siguienteHermano=null;     // El nodo hermano siguiente ( Si nulo es el último hermano)(Objeto TR)
26                //____________________________________________________________________________
27                //     
28                //      Devuelve el estado del nodo 0: Contraido 1:Desplegado
29                //____________________________________________________________________________
30                this.estadoNodo= function(){
31                        var signoimg=this.imgsigno.getAttribute("value");
32                        var estado;
33                        switch(signoimg){
34                                case "menos_t" :
35                                case "menos_c" :
36                                        estado=1;
37                                        break;
38                                case "mas_t" :
39                                case "mas_c" :
40                                        estado=0;
41                                        break;
42                                default:
43                                        estado=-1;
44                        }
45                        return(estado);
46                };
47                //____________________________________________________________________________
48                //     
49                //      Devuelve el segundo dato de una cadena con formato xxxxx-xxx que es id del nodo vista
50                //____________________________________________________________________________
51                this.toma_identificador= function(){
52                        if(this.literal==null) return(null);
53                        var cadena=this.literal.getAttribute("id");
54                        var iditem=cadena.split("-"); // Toma el identificador
55                        return(iditem[1]);
56                };
57                //____________________________________________________________________________
58                //     
59                //      Devuelve el primer dato de una cadena con formato xxxxx-xxx que es sufijo del nodo vista
60                //____________________________________________________________________________
61                this.toma_sufijo= function(){
62                        if(this.literal==null) return(null);
63                        var cadena=this.literal.getAttribute("id");
64                        var iditem=cadena.split("-"); // Toma el identificador
65                        return(iditem[0]);
66                };
67                //____________________________________________________________________________
68                //     
69                //      Devuelve el literal de un nodo vista
70                //____________________________________________________________________________
71                this.toma_infonodo= function(){
72                        if(this.literal==null) return(null);
73                        return(this.literal.innerHTML);
74                };
75                //____________________________________________________________________________
76                //     
77                //      Devuelve el literal de un nodo vista
78                //____________________________________________________________________________
79                this.pone_infonodo= function(lit){
80                        this.literal.innerHTML=lit;
81                };
82                //____________________________________________________________________________
83                //     
84                //      Devuelve el segundo dato de una cadena con formato xxxxx-xxx que es id del nodo vista
85                //____________________________________________________________________________
86                this.toma_atributoNodo= function(atr){
87                        if(atr=="") return(null);
88                        if(this.literal==null) return(null);
89                        var atributo=this.literal.getAttribute(atr);
90                        return(atributo);
91                };
92                //____________________________________________________________________________
93                //     
94                //       Devuelve true si el nodo tiene hijos,false en caso contrario
95                //____________________________________________________________________________
96                this.TieneHijos= function(){
97                        return(this.ArbolHijos!=null);
98                };
99                //____________________________________________________________________________
100                //     
101                //       Devuelve true si el nodo es el último, false en caso contrario
102                //____________________________________________________________________________
103                this.UltimoHermano= function(){
104                                        return(this.siguienteHermano==null);
105                };
106                //____________________________________________________________________________
107                //     
108                //       Devuelve el nodo vista padre
109                //____________________________________________________________________________
110                this.PapaNodo= function(){
111                        if(this.NodoPadre==null) return(null);
112                        var oTABLE=this.NodoPadre.getElementsByTagName('TABLE')[0];
113                        return(TomaDatosNodo(oTABLE));
114                }
115                // Fin de la clase
116}
117//________________________________________________________________________________________________________
118//     
119//      Devuelve un nodo vista
120//  Parametro:
121//              o: Objeto que puede ser la imagen de signo o el literal de una de las lineas del arbolVista
122//________________________________________________________________________________________________________
123        function TomaDatosNodo(o){
124                var nodo=new NodoVista();
125
126                while(o.tagName!="TABLE" )
127                        o=o.parentNode;
128                nodo.CeldaVista=o;     
129                var TAnchor=nodo.CeldaVista.getElementsByTagName('A');
130                if(TAnchor.length==2){ // Imagen de signo pulsable
131                        nodo.imgsigno=TAnchor[0].childNodes[0];
132                        nodo.literal=TAnchor[1].childNodes[0];
133                }
134                else{
135                        var TSpan=nodo.CeldaVista.getElementsByTagName('SPAN');
136                        nodo.imgsigno=TSpan[0].childNodes[0];
137                        nodo.literal=TAnchor[0].childNodes[0];
138                }
139        while(o.tagName!="TR" )
140                         o=o.parentNode;   
141                nodo.Nodo=o;
142               
143                while(o.tagName!="TABLE")
144                        o=o.parentNode;
145                var Mnivel=o.getAttribute("id").split("-");
146                nodo.nivel=Mnivel[1];
147
148        while(o.tagName!="TR" )
149                         o=o.parentNode;   
150                nodo.ArbolHijosNodoPadre=o;
151               
152                if(parseInt(nodo.nivel)>0){
153                        o=o.previousSibling;
154                        while(o.nodeType!=1 )
155                                o=o.previousSibling;
156                        nodo.NodoPadre=o;
157                }
158                else
159                        nodo.NodoPadre=null; // Es el primer nodo
160                o=nodo.Nodo;
161                var auxsplit=o.getAttribute("id");
162                var idTR=auxsplit.split("-") [0];               
163        o=o.nextSibling;
164        while(o!=null && o.nodeType!=1 )
165           o=o.nextSibling;
166                if(o==null){ // Es el último hermano y no tiene hijos
167                        nodo.ArbolHijos=null;   
168                        nodo.siguienteHermano=null;
169                        return(nodo);
170                }
171                var auxsplit=o.getAttribute("id");
172                var idTRhijo=auxsplit.split("-") [0];
173                if(idTR==idTRhijo) { // El nodo no tiene hiijos y no es último hermano
174                        nodo.ArbolHijos=null;   
175                        nodo.siguienteHermano=o;
176                        return(nodo);
177                }
178                nodo.ArbolHijos=o;     
179                o=o.nextSibling;
180        while(o!=null && o.nodeType!=1)
181           o=o.nextSibling;
182                if(o==null){ // El nodo  tiene hijos y  es ultimo hermano
183                        nodo.siguienteHermano=null;
184                        return(nodo);
185                }
186                nodo.siguienteHermano=o; // El nodo  tiene hijos y  no es último hermano
187                return(nodo);
188        }
189//-----------------------------------------------------------------------------------------------------------------------
190//       Gestiona el despliegue y contracción de nodovs
191//-----------------------------------------------------------------------------------------------------------------------
192function clickNodo(nodov,pathimg){
193        var signoimg=nodov.imgsigno.getAttribute("value");
194                switch(signoimg){
195                        case "menos_t" :
196                                nodov.imgsigno.setAttribute("value","mas_t",null);
197                                nodov.imgsigno.setAttribute("src",pathimg+"/mas_t.gif",null);
198                                nodov.ArbolHijos.style.display="none";
199                                break;
200                        case "menos_c" :
201                                nodov.imgsigno.setAttribute("value","mas_c",null);
202                                nodov.imgsigno.setAttribute("src",pathimg+"/mas_c.gif",null);
203                                if (nodov.nivel==0)
204                                    nodov.imgsigno.setAttribute("src",pathimg+"/mas_root.gif",null);
205                                nodov.ArbolHijos.style.display="none";
206                                break;
207                        case "mas_t" :
208                                nodov.imgsigno.setAttribute("value","menos_t",null);
209                                nodov.imgsigno.setAttribute("src",pathimg+"/menos_t.gif",null);
210                                nodov.ArbolHijos.style.display="block";
211                                break;
212                        case "mas_c" :
213                                nodov.imgsigno.setAttribute("value","menos_c",null);
214                                nodov.imgsigno.setAttribute("src",pathimg+"/menos_c.gif",null);
215                                if (nodov.nivel==0)
216                                    nodov.imgsigno.setAttribute("src",pathimg+"/menos_root.gif",null);
217                                nodov.ArbolHijos.style.display="block";
218                                break;
219                }
220}
221//-----------------------------------------------------------------------------------------------------------------------
222//       Gestiona el despliegue y contracción de nodos a través de la imagen del nodo
223//-----------------------------------------------------------------------------------------------------------------------
224function clickImagenSigno(oIMG,pathimg){
225        currentpathimg=pathimg;
226        var nodov=TomaDatosNodo(oIMG);
227        clickNodo(nodov,pathimg);
228        if (EsAncestro(nodov,currentNodo))
229                resalta(nodov);
230}
231//-----------------------------------------------------------------------------------------------------------------------
232//       Gestiona el despliegue y contracción de nodos a través del literal del nodo
233//-----------------------------------------------------------------------------------------------------------------------
234function clickLiteralNodo(oLIT,pathimg){
235        var nodov=TomaDatosNodo(oLIT);
236        resalta(nodov);
237        if(nodov.imgsigno==null) return;
238
239        if(pathimg==null){
240                var signoimg=nodov.imgsigno.getAttribute("src");
241                var p=signoimg.lastIndexOf("/");
242                pathimg=signoimg.substring(0,p);
243                currentpathimg=pathimg;
244        }
245        var signoimg=nodov.imgsigno.getAttribute("value");
246        var signo=signoimg.split("_");
247        if(botonraton==1){
248                        if (signo[0]=="mas"  ||         signo[0]=="menos" ) clickNodo(nodov,pathimg);
249        }
250        else{
251                        if (signo[0]=="mas" ) clickNodo(nodov,pathimg);
252        }
253}
254//-----------------------------------------------------------------------------------------------------------------------
255//       Resalta el nodo vista seleccionado y lo pone como nodo vista actual
256//-----------------------------------------------------------------------------------------------------------------------
257function resalta(nodov){
258        if(currentNodo==nodov) return;
259        if (currentNodo){
260                currentNodo.literal.style.color=gLiteralcolor;
261                currentNodo.literal.style.backgroundColor=gLiteralbackground;
262        }
263        gLiteralcolor=nodov.literal.style.color; // Guarda el color del nodo
264        gLiteralbackground=nodov.literal.style.backgroundColor; // Guarda el background del nodo       
265       
266        nodov.literal.style.color="#FFFFFF"; // Blanco
267        nodov.literal.style.backgroundColor="#0a266a"; // Azul marino
268        currentNodo=nodov;
269}
270//-----------------------------------------------------------------------------------------------------------------------
271//       Deja de resaltar un nodo vista
272//____________________________________________________________________________
273function desresalta(nodov){
274        nodov.literal.style.color=nodov.Literalcolor;
275        nodov.literal.style.backgroundColor=nodov.Literalbackground;
276}
277//-----------------------------------------------------------------------------------------------------------------------
278//       Averigua si el primer nodo vista es ancestro del segundo
279//____________________________________________________________________________
280function EsAncestro(nodoA,nodoH){
281        if(nodoH==null) return(false);
282        var NodoAncestro=nodoA.ArbolHijos;
283        var NodoHijo=nodoH.Nodo;
284        while(NodoHijo!=null){
285                if(NodoHijo==NodoAncestro) return(true);
286                NodoHijo=NodoHijo.parentNode;
287        }
288        return(false);
289}
290//-----------------------------------------------------------------------------------------------------------------------
291// Despliega un nivel el nodo indicado
292//-----------------------------------------------------------------------------------------------------------------------
293function despliega(o,pathimg){
294        var nodov=TomaDatosNodo(o);
295        clickNodo(nodov,pathimg);
296}
297//-----------------------------------------------------------------------------------------------------------------------
298// Despliega el nodo indicado ( desde la pagina
299//-----------------------------------------------------------------------------------------------------------------------
300function DespliegaNodo(lit,id){
301        var o=document.getElementById(lit+"-"+id);
302        if(o!=null){
303                var ancestro=   TomaDatosNodo(o);
304                resalta(ancestro);
305                while(ancestro!=null){
306                        if(ancestro.estadoNodo()==0) // Nodo contraido
307                                clickNodo(ancestro,currentpathimg);
308                         ancestro=ancestro.PapaNodo();
309                }
310        }
311}
312//____________________________________________________________________________
313//     
314//      Inserta un nodo en el árbol
315// Especificaciones:
316//              Los parámetros recibidos son:
317//                      - nodov: Nodo vista
318//                      - tablanodo: Tabla nodo generada para la nueva celda vista
319//____________________________________________________________________________
320function InsertaNodo(nodov,tablanodo){
321                var nwceldavista=CreaCeldaVista(nodov,tablanodo);
322                var nwTR = document.createElement('TR');
323                nwTR.id="TRNodo-0";
324                var nwTD = document.createElement('TD');
325                nwTD.innerHTML=nwceldavista;
326                nwTR.appendChild(nwTD);
327
328                if(!nodov.TieneHijos()){
329                        CreaNodoHijo(nodov);
330                        if(parseInt(nodov.nivel)==0){ // Nodo raiz
331                nodov.imgsigno.setAttribute("value","menos_c",null);
332                            nodov.imgsigno.setAttribute("src",currentpathimg+"/menos_root.gif",null);
333                        }
334                        else{
335                                if(nodov.UltimoHermano()){
336                                        nodov.imgsigno.setAttribute("value","menos_c",null);
337                                        nodov.imgsigno.setAttribute("src",currentpathimg+"/menos_c.gif",null);
338                                }
339                                else{
340                                        nodov.imgsigno.setAttribute("value","menos_t",null);
341                                        nodov.imgsigno.setAttribute("src",currentpathimg+"/menos_t.gif",null);
342                                }
343                        }
344                        var ATTonclick='clickImagenSigno(this,' + "'"+currentpathimg+"'"+','+nodov.nivel+');';
345                        nodov.imgsigno.setAttribute("onclick",ATTonclick,null);
346                        nodov.imgsigno.setAttribute("border","0",null);
347                        var oSPAN=nodov.imgsigno.parentNode;
348                        var htmlIMG=oSPAN.innerHTML;
349                        TDpadre=oSPAN.parentNode;
350                        TDpadre.innerHTML='<A href="#">'+htmlIMG+'</A>';       
351                }
352                var pivoteNodo=nodov.ArbolHijos;
353                var nodoTD = pivoteNodo.childNodes[0];;
354                var nodoTABLE=nodoTD.childNodes[0];
355                var nodoTBODY=nodoTABLE.childNodes[0];
356                var nodoTR=nodoTBODY.childNodes[0];
357                if(nodoTR!=null)
358                        nodoTBODY.insertBefore(nwTR,nodoTR);
359                else
360                        nodoTBODY.appendChild(nwTR);
361}
362//____________________________________________________________________________
363//     
364//      Monta y devuelve el código HTML de la estructura de una celda vista
365//              Los parámetros recibidos son:
366//                      - pivoteNodo: Nodo vista
367//                      - tablanodo: Tabla nodo generada para la nueva celda vista
368//____________________________________________________________________________
369function CreaCeldaVista(nodov,tablanodo){               
370                var nodoTD = document.createElement('TD');
371                nodoTD.innerHTML=tablanodo;
372                var nodoTABLE=nodoTD.childNodes[0];
373                var nodoTBODY=nodoTABLE.childNodes[0];
374                var nodoTBODYTR=nodoTBODY.childNodes[0];
375                var oIMG=nodoTBODYTR.getElementsByTagName('IMG')[0];
376                var HTMLinner=nodoTBODYTR.innerHTML;
377
378                if(nodov.TieneHijos()){
379                        var  patron = new RegExp("nada_c","gi");
380                        HTMLinner=HTMLinner.replace(patron,"nada_t");
381                }               
382                else{
383                        var  patron = new RegExp("nada_t","gi");
384                        HTMLinner=HTMLinner.replace(patron,"nada_c");
385                }
386                var auxnodo=nodov;
387                var nwHTMLinner="";
388                var img="";
389                while(auxnodo!=null){
390                        (auxnodo.UltimoHermano())? img="nada.gif" :  img="nada_l.gif";
391                        nwHTMLinner='<TD width="3px"></TD><TD  width="16px"><IMG src="../images/signos/'+img+'" width="16px" height="16px" ></TD>'+nwHTMLinner;
392                        auxnodo=auxnodo.PapaNodo();
393                }
394                nwHTMLinner='<TABLE  border=0 cellspacing=0 cellpadding=0><TR height="16px">'+nwHTMLinner+HTMLinner+"</TR></TABLE>"; // Contenido de la tabla del nodo literal
395                return(nwHTMLinner);
396}               
397//____________________________________________________________________________
398//     
399//       Crea un nuevo nodo Hijo (objeto TABLE)
400//       Parámetros:
401//                      - nodov: Un nodo vista
402//____________________________________________________________________________
403function CreaNodoHijo(nodov){
404        var nivel=parseInt(nodov.nivel)+1;
405        var nTR=document.createElement('TR');
406        nTR.id="TRNodoHijo-0";
407        var nTD=document.createElement('TD');
408        nTD.innerHTML='<TABLE with="100%"id="tablanivel-'+nivel+'" border="0" cellspacing="0" cellpadding="0"><TBODY></TBODY></TABLE>';
409        nTR.appendChild(nTD);
410       
411        var pivoteNodo=nodov.Nodo.parentNode;
412        if(nodov.UltimoHermano()){
413                pivoteNodo.appendChild(nTR); // Para insertar al final
414                }
415        else{
416                pivoteNodo.insertBefore(nTR,nodov.siguienteHermano)
417        }
418        nodov.ArbolHijos=nTR;   
419}
420//____________________________________________________________________________
421//     
422//      Inserta un nodo en el árbol
423// Especificaciones:
424//              Los parámetros recibidos son:
425//                      - nodov: Nodo vista
426//____________________________________________________________________________
427function EliminaNodo(nodov){
428        var swuh=nodov.UltimoHermano();
429        var pn=nodov.Nodo.parentNode; // Nodo padre
430        var papa=nodov.PapaNodo(); // Nodo vista padre
431
432        if(nodov.TieneHijos())
433                pn.removeChild(nodov.ArbolHijos); // Elimina arbol hijo
434        pn.removeChild(nodov.Nodo);     // Elimina Nodo
435
436        var antHermano=pn.lastChild;
437        if(antHermano==null){ // El nodo padre no tiene más hijos
438                        var pn=papa.ArbolHijos.parentNode; // Nodo padre
439                        pn.removeChild(papa.ArbolHijos); // Elimina arbol hijo
440                        ChgSignoPadreEliminaNodo(papa.imgsigno);
441        }
442        else{
443                if(swuh){ // Si era el último hermano ...
444                        var auxsplit=antHermano.getAttribute("id");
445                        var idTR=auxsplit.split("-") [0];
446                        if(idTR=="TRNodoHijo"){
447                                antHermano=antHermano.previousSibling;
448                                while(antHermano.nodeType!=1 )
449                                        antHermano=antHermano.previousSibling;
450                                var TAnchor=antHermano.getElementsByTagName('A');
451                                if(TAnchor.length==2) // Imagen de signo pulsable
452                                        var oIMG=TAnchor[0].childNodes[0];
453                        }
454                        else{
455                                var TSpan=antHermano.getElementsByTagName('SPAN');
456                                var oIMG=TSpan[0].childNodes[0];
457                        }       
458                        var nh=TomaDatosNodo(oIMG);
459                        ChgSignoEliminaNodo(oIMG);
460                        if(nh.TieneHijos())
461                                ChgSignoNivel(nh.ArbolHijos,nh.nivel);
462                }
463        }
464}
465//-----------------------------------------------------------------------------------------------------------------------
466//       Cambia la imagen de signo del hermano anterior de un nodo eliminado
467//-----------------------------------------------------------------------------------------------------------------------
468function ChgSignoEliminaNodo(imgsigno){
469        var signoimg=imgsigno.getAttribute("value");
470                switch(signoimg){
471                        case "menos_t" :
472                                imgsigno.setAttribute("value","menos_c",null);
473                                imgsigno.setAttribute("src",currentpathimg+"/menos_c.gif",null);
474                                break;
475                        case "mas_t" :
476                                imgsigno.setAttribute("value","mas_c",null);
477                                imgsigno.setAttribute("src",currentpathimg+"/mas_c.gif",null);
478                                break;
479                        case "nada_t" :
480                imgsigno.setAttribute("value","nada_c",null);
481                                imgsigno.setAttribute("src",currentpathimg+"/nada_c.gif",null);
482                                break;
483                }
484}
485//-----------------------------------------------------------------------------------------------------------------------
486//       Cambia la imagen de signo del nodo padre de un nodo eliminado ( unico hijo)
487//-----------------------------------------------------------------------------------------------------------------------
488function ChgSignoPadreEliminaNodo(imgsigno){
489        var signoimg=imgsigno.getAttribute("value");
490                switch(signoimg){
491                        case "menos_t" :
492                                imgsigno.setAttribute("value","nada_t",null);
493                                imgsigno.setAttribute("src",currentpathimg+"/nada_t.gif",null);
494                                QuitaANCHOR(imgsigno);
495                                break;
496                        case "menos_c" :
497                                imgsigno.setAttribute("value","nada_c",null);
498                                imgsigno.setAttribute("src",currentpathimg+"/nada_c.gif",null);
499                                QuitaANCHOR(imgsigno);
500                                break;
501                        case "mas_t" :
502                                imgsigno.setAttribute("value","nada_t",null);
503                                imgsigno.setAttribute("src",currentpathimg+"/nada_t.gif",null);
504                                QuitaANCHOR(imgsigno);
505                                break;
506                        case "mas_c" :
507                                imgsigno.setAttribute("value","nada_c",null);
508                                imgsigno.setAttribute("src",currentpathimg+"/nada_c.gif",null);
509                                QuitaANCHOR(imgsigno);
510                                break;
511                }
512}
513//-----------------------------------------------------------------------------------------------------------------------
514//       Cambia la imagen de un determinado nivel
515//-----------------------------------------------------------------------------------------------------------------------
516function QuitaANCHOR(oIMG){
517        var TAnchor=oIMG.parentNode;
518        var oHTML=TAnchor.innerHTML;
519        var oTD=TAnchor.parentNode;
520        oTD.innerHTML="<SPAN>"+oHTML+"</SPAN>";
521}
522//-----------------------------------------------------------------------------------------------------------------------
523//       Cambia la imagen de un determinado nivel
524//-----------------------------------------------------------------------------------------------------------------------
525function ChgSignoNivel(arbolv,n){
526        if(arbolv==null) return;
527        var nodoTD =arbolv.childNodes[0];
528        var nodoTABLE=nodoTD.childNodes[0];
529        var nodoTBODY=nodoTABLE.childNodes[0];
530        var oTRs=nodoTBODY.childNodes;
531        for(var i=0;i<oTRs.length;i++){
532                var auxsplit=oTRs[i].getAttribute("id");
533                var idTR=auxsplit.split("-") [0];
534                if(idTR=="TRNodoHijo"){
535                        ChgSignoNivel(oTRs[i],n)
536                }
537                else{
538                        var oTABLE=oTRs[i].getElementsByTagName('TABLE');
539                        var oIMGs=oTABLE[0].getElementsByTagName('IMG');
540                        oIMGs[n].setAttribute("src",currentpathimg+"/nada.gif",null);
541                }
542        }
543}
544//____________________________________________________________________________
545//
546//      Se ejecuta cada vez que se mueve el puntero del ratón. Se usa para desmarca
547//      cualquier item de menu contextual que estuviese activo
548//____________________________________________________________________________
549function click_de_raton_prov(e){
550        if(IE){
551                botonraton=event.button;
552                event.returnValue=true;
553                return;
554        }
555        if(NS){
556                botonraton=e.which;
557                e.returnValue=true;
558                return;
559        }
560}
561//____________________________________________________________________________
562//
563//      Recupera el navegador utilizado
564//____________________________________________________________________________
565var IE=(navigator.appName=="Microsoft Internet Explorer");
566var NS=(navigator.appName=="Netscape");
567//____________________________________________________________________________
568//
569//      Redirecciona el evento onmousedown a la función de usuario especificada.
570//____________________________________________________________________________
571document.onmousedown = click_de_raton_prov; // Redefine el evento onmousedown
572 if(NS) document.captureEvents(Event.MOUSEDOWN | Event.MOUSEMOVE | Event.MOUSEUP);
573
574
Note: See TracBrowser for help on using the repository browser.