source: extensions/LLGBO2/js/sweettitlesn1_comment.js @ 13250

Last change on this file since 13250 was 12649, checked in by gbo, 13 years ago

Remove IE tooltip

File size: 5.8 KB
Line 
1Array.prototype.inArray = function (value) {
2        var i;
3        for (i=0; i < this.length; i++) {
4                if (this[i] === value) {
5                        return true;}
6        }
7        return false;
8};
9function addEvent2( obj, type, fn ) {
10        if (obj.addEventListener) {
11                obj.addEventListener( type, fn, false );
12                EventCache.add(obj, type, fn);}
13        else if (obj.attachEvent) {
14                obj["e"+type+fn] = fn;
15                obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
16                obj.attachEvent( "on"+type, obj[type+fn] );
17                EventCache.add(obj, type, fn);}
18        else {obj["on"+type] = obj["e"+type+fn];}
19}
20var EventCache = function(){
21        var listEvents = [];
22        return {
23                listEvents : listEvents,
24                add : function(node, sEventName, fHandler){
25                        listEvents.push(arguments);
26                },
27                flush : function(){
28                        var i, it;
29                        for(i = listEvents.length - 1; i >= 0; i = i - 1){
30                                it = listEvents[i];
31                                if(it[0].removeEventListener){
32                                        it[0].removeEventListener(it[1], it[2], it[3]);};
33                                if(it[1].substring(0, 2) != "on"){it[1] = "on" + it[1];};
34                                if(it[0].detachEvent){it[0].detachEvent(it[1], it[2]);};
35                                it[0][it[1]] = null;};
36                }       };}();
37addEvent2(window,'unload',EventCache.flush);
38/*Sweet Titles (c) 2005 http://www.dustindiaz.com
39Revision pour llgbo : 2006*/
40var swtT = { 
41        xCord : 0,                                                             
42        yCord : 0,                                                             
43        tipElements : ['a','area'],
44        forbidenClasses : ['navThumb','markItUpButton'],
45        MainTitle : '', 
46        obj : Object,                                                   
47        x : Object,                                                     
48        init : function() {
49                if ( !document.getElementById ||
50                        !document.createElement ||
51                        !document.getElementsByTagName ) {return;       }
52                var i,j,Over,c;
53                this.x = document.createElement('div'); 
54                this.x.id = 'toolTip';
55                document.getElementsByTagName('body')[0].appendChild(this.x);
56                this.x.style.top = '0';
57                this.x.style.visibility = 'hidden';
58                var tipLen = this.tipElements.length;
59                for ( i=0; i<tipLen; i++ ) {
60                        var Elms = document.getElementsByTagName(this.tipElements[i]);
61                        var curLen = Elms.length;
62                        for ( j=0; j<curLen; j++ ) {
63                                var el= Elms[j];
64                                var Active = '';
65                                var fcLen = this.forbidenClasses.length;
66                                for (c=0; c<fcLen; c++) {
67                                        if ( el.parentNode.className.indexOf(this.forbidenClasses[c]) != -1 ||
68                                        el.className.indexOf(this.forbidenClasses[c]) != -1) 
69                                         { Active = 'No'; }} 
70                               
71                                //
72                                 if (Active != 'No' ) 
73                                        { var tv = el.getAttribute('title');
74                                                if ( tv != null && tv != "null" && tv !="") //chrome
75                                                 {addEvent2(el,'mouseover',this.tipOver);
76                                                        addEvent2(el,'mousemove',this.tipMouseMove);
77                                                        addEvent2(el,'mouseout',this.tipOut);
78                                                        var sv = el.getAttribute('swttips');
79                                                        el.setAttribute('tiptitle', tv);
80                                                        el.setAttribute('tipswt', sv );
81                                                        el.removeAttribute('swttips');
82                                                        el.removeAttribute('alt');
83                                                        el.removeAttribute('title'); } 
84                                        }
85}
86                }
87        },
88        updateXY : function(e) {
89                if ( document.captureEvents ) {
90                        swtT.xCord = e.pageX;
91                        swtT.yCord = e.pageY;
92                } else if ( window.event.clientX ) {
93                var ddE = document.documentElement
94                        swtT.xCord = window.event.clientX+ddE.scrollLeft;
95                        swtT.yCord = window.event.clientY+ddE.scrollTop;} },
96        tipOut: function() {
97                if ( window.tID ) {
98                        clearTimeout(tID);              }
99                if ( window.opacityID ) {
100                        clearTimeout(opacityID);}
101                swtT.x.style.visibility = 'hidden';
102                // restore IE Title
103                document.getElementById('theMainImage').setAttribute('title',MainTitle);},
104               
105        checkNode : function() {
106                var trueObj = this.obj;
107                if ( this.tipElements.inArray(trueObj.nodeName.toLowerCase()) ) {
108                        return trueObj;
109                } else {return trueObj.parentNode;}
110        },
111        tipOver : function(e) {swtT.obj = this;
112        tID = window.setTimeout("swtT.tipShow()",100);
113         swtT.updateXY(e);
114         // Erase IE tooltip on title
115           MainImg = document.getElementById('theMainImage');
116           MainTitle = MainImg.getAttribute('title');   
117           MainImg.setAttribute('title',"");
118        },
119       
120        tipMouseMove : function(e) {swtT.updateXY(e); swtT.tipMove();},
121       
122        tipShow : function() {                 
123                var anch = this.checkNode();
124                this.x.innerHTML ="";
125         this.x.innerHTML = "<p class='title'> <span> "+anch.getAttribute('tiptitle')+"</span></p>";
126                sv = anch.getAttribute('tipswt');
127                if ((sv != null) && (sv != "null") && (sv !="")) //chrome
128                {this.x.innerHTML= this.x.innerHTML + "<p>" + anch.getAttribute('tipswt') + "</p>"; }
129                swtT.Move;
130                var T = this.x.style;
131                var scrX = Number(this.xCord);
132                var scrY = Number(this.yCord);
133                var tp = parseInt(scrY+8);
134                var lt = parseInt(scrX+8);
135                var D = document.documentElement;
136                        if ( parseInt(D.clientWidth+D.scrollLeft) < parseInt(this.x.offsetWidth+lt) ) {
137                        T.left = parseInt(lt-(this.x.offsetWidth+3))+'px';
138                } else {
139                        T.left = lt+'px';               }
140                if ( parseInt(D.clientHeight+D.scrollTop) < parseInt(this.x.offsetHeight+tp) ) {
141                        T.top = parseInt(tp-(this.x.offsetHeight+3))+'px';
142                } else {T.top = tp+'px';                }
143                T.visibility = 'visible';
144                T.opacity = '.1';
145                this.tipFade(10);       },
146       
147        tipMove: function()
148        { var scrX = Number(this.xCord);
149                var scrY = Number(this.yCord);
150                var tp = parseInt(scrY+8);
151                var lt = parseInt(scrX+8);
152                var D = document.documentElement;
153                var T = this.x.style;
154                if ( parseInt(D.clientWidth+D.scrollLeft) < parseInt(this.x.offsetWidth+lt) ) {
155                        T.left = parseInt(lt-(this.x.offsetWidth+3))+'px';
156                } else {
157                        T.left = lt+'px';               }
158                if ( parseInt(D.clientHeight+D.scrollTop) < parseInt(this.x.offsetHeight+tp) ) {
159                        T.top = parseInt(tp-(this.x.offsetHeight+3))+'px';
160                } else {T.top = tp+'px';                }
161        },
162        tipFade: function(opac) {
163                var passed = parseInt(opac);
164                var newOpac = parseInt(passed+10);
165                 T = this.x.style;
166                if ( newOpac < 92 ) {
167                        T.opacity = '.'+newOpac;
168                        T.filter = "alpha(opacity:"+newOpac+")";
169                        opacityID = window.setTimeout("swtT.tipFade('"+newOpac+"')",20);}
170                else { T.opacity = '.92';
171                        T.filter = "alpha(opacity:92)";         }
172        }
173};
174function pageLoader() { swtT.init();}
175addEvent2(window,'load',pageLoader);
Note: See TracBrowser for help on using the repository browser.