source: extensions/LLGBO2/js/sweettitlesn_comment.js @ 4297

Last change on this file since 4297 was 4297, checked in by EXFTB, 14 years ago

first global update

  • Property svn:eol-style set to LF
File size: 3.6 KB
Line 
1/*
2Sweet Titles (c) Creative Commons 2005
3http://creativecommons.org/licenses/by-sa/2.5/
4Author: Dustin Diaz | http://www.dustindiaz.com
5Revision:ex-ftb 2006*/
6var sweetTitles = { 
7        xCord : 0,                                                             
8        yCord : 0,                                                             
9        tipElements : ['a','img','span','area'],                       
10        obj : Object,                                                   
11        x : Object,                                                     
12        init : function() {
13                if ( !document.getElementById ||
14                        !document.createElement ||
15                        !document.getElementsByTagName ) {return;       }
16                var i,j,Over;
17                this.x = document.createElement('div'); 
18                this.x.id = 'toolTip';
19                document.getElementsByTagName('body')[0].appendChild(this.x);
20                this.x.style.top = '0';
21                this.x.style.visibility = 'hidden';
22                var tipLen = this.tipElements.length;
23                for ( i=0; i<tipLen; i++ ) {
24                        var Elms = document.getElementsByTagName(this.tipElements[i]);
25                        var curLen = Elms.length;
26                        for ( j=0; j<curLen; j++ ) {
27                                var el= Elms[j];
28                                var tv = el.getAttribute('title')
29                                if ( tv != null && tv != "null" && tv !="")  //chrome
30                                 {addEvent(el,'mouseover',this.tipOver);
31                                        addEvent(el,'mousemove',this.tipMouseMove);
32                                        addEvent(el,'mouseout',this.tipOut);
33                                        var sv = el.getAttribute('swttips');
34                                        el.setAttribute('tiptitle', tv);
35                                        el.setAttribute('tipswt', sv );
36                                        el.removeAttribute('title'); 
37                                        el.removeAttribute('swttips');}
38                                el.removeAttribute('alt');}
39                }
40        },
41
42        updateXY : function(e) {
43                if ( document.captureEvents ) {
44                        sweetTitles.xCord = e.pageX;
45                        sweetTitles.yCord = e.pageY;
46                } else if ( window.event.clientX ) {
47                        sweetTitles.xCord = window.event.clientX+document.documentElement.scrollLeft;
48                        sweetTitles.yCord = window.event.clientY+document.documentElement.scrollTop;}
49        },
50        tipOut: function() {
51                if ( window.tID ) {
52                        clearTimeout(tID);              }
53                if ( window.opacityID ) {
54                        clearTimeout(opacityID);}
55                sweetTitles.x.style.visibility = 'hidden';},
56        checkNode : function() {
57                var trueObj = this.obj;
58                if ( this.tipElements.inArray(trueObj.nodeName.toLowerCase()) ) {
59                        return trueObj;
60                } else {return trueObj.parentNode;}
61        },
62        tipOver : function(e) {sweetTitles.obj = this;
63        tID = window.setTimeout("sweetTitles.tipShow()",100);
64         sweetTitles.updateXY(e);},
65       
66        tipMouseMove : function(e) {sweetTitles.updateXY(e); sweetTitles.tipMove();},
67       
68        tipShow : function() {                 
69                var anch = this.checkNode();
70                this.x.innerHTML ="";
71         this.x.innerHTML = "<p class='title'> <span> "+anch.getAttribute('tiptitle')+"</span></p>";
72                sv = anch.getAttribute('tipswt');
73                if (( sv != "null" )&& (sv !="")) // for chrome
74                {this.x.innerHTML= this.x.innerHTML + "<p>" + anch.getAttribute('tipswt') + "</p>"; }
75                sweetTitles.Move;
76                var T = this.x.style;
77                T.visibility = 'visible';
78                T.opacity = '.1';
79                this.tipFade(10);       },
80       
81        tipMove: function()
82        { var scrX = Number(this.xCord);
83                var scrY = Number(this.yCord);
84                var tp = parseInt(scrY+8);
85                var lt = parseInt(scrX+8);
86                var D = document.documentElement;
87                var T = this.x.style;
88                if ( parseInt(D.clientWidth+D.scrollLeft) < parseInt(this.x.offsetWidth+lt) ) {
89                        T.left = parseInt(lt-(this.x.offsetWidth+3))+'px';
90                } else {
91                        T.left = lt+'px';               }
92                if ( parseInt(D.clientHeight+D.scrollTop) < parseInt(this.x.offsetHeight+tp) ) {
93                        T.top = parseInt(tp-(this.x.offsetHeight+3))+'px';
94                } else {T.top = tp+'px';                }
95        },
96        tipFade: function(opac) {
97                var passed = parseInt(opac);
98                var newOpac = parseInt(passed+10);
99                 T = this.x.style;
100                if ( newOpac < 92 ) {
101                        T.opacity = '.'+newOpac;
102                        T.filter = "alpha(opacity:"+newOpac+")";
103                        opacityID = window.setTimeout("sweetTitles.tipFade('"+newOpac+"')",20);}
104                else { T.opacity = '.92';
105                        T.filter = "alpha(opacity:92)";         }
106        }
107};
108function pageLoader() { sweetTitles.init();}
109addEvent2(window,'load',pageLoader);
Note: See TracBrowser for help on using the repository browser.