annotate client/digitallibrary/greyskin/fixed.js @ 643:c108607e1bc0 jquery

zoomin and -out works now gotopage resets (some) parameters reload takes changed parameters (to put in url) getParamString omits parameters with default values (for shorter urls)
author robcast
date Wed, 19 Jan 2011 20:03:44 +0100
parents e45de6ca9b9c
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
481
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
1 // fixed.js: fix fixed positioning and fixed backgrounds in IE/Win
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
2 // version 1.8, 08-Aug-2003
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
3 // written by Andrew Clover <and@doxdesk.com>, use freely
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
4
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
5 /*@cc_on
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
6 @if (@_win32 && @_jscript_version>4)
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
7
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
8 var fixed_positions= new Array();
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
9 var fixed_backgrounds= new Array();
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
10 var fixed_viewport;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
11
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
12 // Initialisation. Called when the <body> tag arrives. Set up viewport so the
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
13 // rest of the script knows we're going, and add a measurer div, used to detect
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
14 // font size changes and measure image sizes for backgrounds later
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
15
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
16 function fixed_init() {
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
17 fixed_viewport= (document.compatMode=='CSS1Compat') ?
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
18 document.documentElement : document.body;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
19 var el= document.createElement('div');
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
20 el.setAttribute('id', 'fixed-measure');
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
21 el.style.position= 'absolute';
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
22 el.style.top= '0'; el.style.left= '0';
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
23 el.style.overflow= 'hidden'; el.style.visibility= 'hidden';
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
24 el.style.fontSize= 'xx-large'; el.style.height= '5em';
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
25 el.style.setExpression('width', 'fixed_measureFont()');
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
26 document.body.insertBefore(el, document.body.firstChild);
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
27 }
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
28
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
29 // Binding. Called every time an element is added to the document, check it
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
30 // for fixed features, if found add to our lists and set initial props
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
31
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
32 function fixed_bind(el) {
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
33 var needLayout= false;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
34 var tag= el.tagName.toLowerCase();
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
35 var st= el.style;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
36 var cst= el.currentStyle;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
37 var anc;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
38
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
39 // find fixed-position elements
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
40 if (cst.position=='fixed') {
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
41 needLayout= true;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
42 fixed_positions[fixed_positions.length]= el;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
43 // store original positioning as we'll overwrite it
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
44 st.position= 'absolute';
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
45 st.fixedPLeft= cst.left;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
46 st.fixedPTop= cst.top;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
47 st.fixedPRight= cst.right;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
48 st.fixedPBottom= cst.bottom;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
49 st.fixedPWidth= fixed_parseLength(cst.width);
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
50 st.fixedPHeight= fixed_parseLength(cst.height);
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
51 // find element that will act as containing box, for convenience later
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
52 st.fixedCB= null;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
53 for (anc= el; (anc= anc.parentElement).parentElement;) {
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
54 if (anc.currentStyle.position!='static') {
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
55 st.fixedCB= anc;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
56 break;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
57 } }
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
58 // detect nested fixed positioning (only ancestor need move)
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
59 st.fixedNest= false;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
60 for (anc= el; anc= anc.parentElement;) {
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
61 if (anc.style.fixedNest!=null)
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
62 st.fixedNest= true;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
63 break;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
64 }
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
65 }
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
66
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
67 // find fixed-background elements (not body/html which IE already gets right)
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
68 if (cst.backgroundAttachment=='fixed' && tag!='body' && tag!='html') {
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
69 needLayout= true;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
70 fixed_backgrounds[fixed_backgrounds.length]= el;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
71 // get background offset, converting from keyword if necessary
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
72 st.fixedBLeft= fixed_parseLength(cst.backgroundPositionX);
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
73 st.fixedBTop= fixed_parseLength(cst.backgroundPositionY);
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
74 // if it's a non-zero %age, need to know size of image for layout
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
75 if (st.fixedBLeft[1]=='%' || st.fixedBTop[1]=='%') {
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
76 st.fixedBWidth= 0; st.fixedBHeight= 0;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
77 fixed_measureBack(el);
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
78 }
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
79 }
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
80 if (needLayout) fixed_layout();
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
81 }
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
82
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
83 // Layout. On every window or font size change, recalculate positioning
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
84
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
85 // Request re-layout at next free moment
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
86 var fixed_delaying= false;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
87 function fixed_delayout() {
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
88 if (fixed_delaying) return;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
89 fixed_delaying= true;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
90 window.setTimeout(fixed_layout, 0);
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
91 }
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
92
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
93 var fixed_ARBITRARY= 200;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
94
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
95 function fixed_layout() {
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
96 fixed_delaying= false;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
97 if (!fixed_viewport) return;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
98 var i, el, st, j, pr, tmp, A= 'auto';
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
99 var cb, cbLeft, cbTop, cbRight, cbBottom, oLeft, oTop, oRight, oBottom;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
100 var vpWidth=fixed_viewport.clientWidth, vpHeight=fixed_viewport.clientHeight;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
101
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
102 // calculate initial position for fixed-position elements [black magic]
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
103 for (i= fixed_positions.length; i-->0;) {
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
104 el= fixed_positions[i]; st= el.style;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
105 // find positioning of containing block
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
106 cb= st.fixedCB; if (!cb) cb= fixed_viewport;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
107 cbLeft= fixed_pageLeft(cb); cbTop= fixed_pageTop(cb);
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
108 if (cb!=fixed_viewport) { cbLeft+= cb.clientLeft; cbTop+= cb.clientTop; }
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
109 cbRight= fixed_viewport.clientWidth-cbLeft-cb.clientWidth;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
110 cbBottom= fixed_viewport.clientHeight-cbTop-cb.clientHeight;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
111 // if size is in %, must recalculate relative to viewport
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
112 if (st.fixedPWidth[1]=='%')
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
113 st.width= Math.round(vpWidth*st.fixedPWidth[0]/100)+'px';
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
114 if (st.fixedPHeight[1]=='%')
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
115 st.height= Math.round(vpHeight*st.fixedPHeight[0]/100)+'px';
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
116 // find out offset values at max size, to account for margins
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
117 st.left= A; st.right= '0'; st.top= A; st.bottom= '0';
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
118 oRight= el.offsetLeft+el.offsetWidth; oBottom= el.offsetTop+el.offsetHeight;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
119 st.left= '0'; st.right= A; st.top= '0'; st.bottom= A;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
120 oLeft= el.offsetLeft; oTop= el.offsetTop;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
121 // use this to convert all edges to pixels
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
122 st.left= A; st.right= st.fixedPRight;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
123 st.top= A; st.bottom= st.fixedPBottom;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
124 oRight-= el.offsetLeft+el.offsetWidth;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
125 oBottom-= el.offsetTop+el.offsetHeight;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
126 st.left= st.fixedPLeft; st.top= st.fixedPTop;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
127 oLeft= el.offsetLeft-oLeft; oTop= el.offsetTop-oTop;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
128 // edge positioning fix
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
129 if (st.fixedPWidth[1]==A && st.fixedPLeft!=A && st.fixedPRight!=A) {
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
130 tmp= el.offsetLeft; st.left= A; st.width= fixed_ARBITRARY+'px';
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
131 tmp= fixed_ARBITRARY+el.offsetLeft-tmp+cbLeft+cbRight;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
132 st.left= st.fixedPLeft; st.width= ((tmp<1)?1:tmp)+'px';
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
133 }
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
134 if (st.fixedPHeight[1]==A && st.fixedPTop!=A && st.fixedPBottom!=A) {
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
135 tmp= el.offsetTop; st.top= A; st.height= fixed_ARBITRARY+'px';
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
136 tmp= fixed_ARBITRARY+el.offsetTop-tmp+cbTop+cbBottom;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
137 st.top= st.fixedPTop; st.height= ((tmp<1)?1:tmp)+'px';
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
138 }
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
139 // move all non-auto edges relative to the viewport
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
140 st.fixedCLeft= (st.fixedPLeft=='auto') ? oLeft : oLeft-cbLeft;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
141 st.fixedCTop= (st.fixedPTop=='auto') ? oTop : oTop-cbTop;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
142 st.fixedCRight= (st.fixedPRight=='auto') ? oRight : oRight-cbRight;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
143 st.fixedCBottom= (st.fixedPBottom=='auto') ? oBottom : oBottom-cbBottom;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
144 // remove left-positioning of right-positioned elements
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
145 if (st.fixedPLeft=='auto' && st.fixedPRight!='auto') st.fixedCLeft= 'auto';
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
146 if (st.fixedPTop=='auto' && st.fixedPBottom!='auto') st.fixedCTop= 'auto';
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
147 }
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
148
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
149
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
150 // calculate initial positioning of fixed backgrounds
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
151 for (i= fixed_backgrounds.length; i-->0;) {
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
152 el= fixed_backgrounds[i]; st= el.style;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
153 tmp= st.fixedBImage;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
154 if (tmp) {
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
155 if (tmp.readyState!='uninitialized') {
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
156 st.fixedBWidth= tmp.offsetWidth;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
157 st.fixedBHeight= tmp.offsetHeight;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
158 st.fixedBImage= window.undefined;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
159 }
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
160 }
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
161 st.fixedBX= fixed_length(el, st.fixedBLeft, vpWidth-st.fixedBWidth);
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
162 st.fixedBY= fixed_length(el, st.fixedBTop, vpHeight-st.fixedBHeight);
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
163 }
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
164
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
165 // now call scroll() to set the positions from the values just calculated
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
166 fixed_scroll();
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
167 }
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
168
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
169 // Scrolling. Offset fixed elements relative to viewport scrollness
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
170
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
171 var fixed_lastX, fixed_lastY;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
172 var fixed_PATCHDELAY= 300;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
173 var fixed_patching= false;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
174
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
175 // callback function after a scroll, because incorrect scroll position is
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
176 // often reported first go!
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
177 function fixed_patch() {
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
178 fixed_patching= false;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
179 var scrollX= fixed_viewport.scrollLeft, scrollY= fixed_viewport.scrollTop;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
180 if (scrollX!=fixed_lastX && scrollY!=fixed_lastY) fixed_scroll();
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
181 }
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
182
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
183 function fixed_scroll() {
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
184 if (!fixed_viewport) return;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
185 var i, el, st, viewportX, viewportY;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
186 var scrollX= fixed_viewport.scrollLeft, scrollY= fixed_viewport.scrollTop;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
187 fixed_lastX= scrollX; fixed_lastY= scrollY;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
188
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
189 // move non-nested fixed-position elements
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
190 for (i= fixed_positions.length; i-->0;) {
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
191 st= fixed_positions[i].style;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
192 viewportX= (st.fixedNest) ? 0 : scrollX;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
193 viewportY= (st.fixedNest) ? 0 : scrollY;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
194 if (st.fixedCLeft!='auto') st.left= (st.fixedCLeft+viewportX)+'px';
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
195 if (st.fixedCTop!='auto') st.top= (st.fixedCTop+viewportY)+'px';
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
196 viewportX= (st.fixedCB==null || st.fixedCB==fixed_viewport) ? 0 : viewportX;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
197 viewportY= (st.fixedCB==null || st.fixedCB==fixed_viewport) ? 0 : viewportY;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
198 st.right= (st.fixedCRight-viewportX+1)+'px'; st.right= (st.fixedCRight-viewportX)+'px';
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
199 st.bottom= (st.fixedCBottom-viewportY+1)+'px'; st.bottom= (st.fixedCBottom-viewportY)+'px';
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
200 }
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
201
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
202 // align fixed backgrounds to viewport
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
203 for (i= fixed_backgrounds.length; i-->0;) {
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
204 el= fixed_backgrounds[i]; st= el.style;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
205 viewportX= scrollX;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
206 viewportY= scrollY;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
207 while (el.offsetParent) {
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
208 viewportX-= el.offsetLeft+el.clientLeft;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
209 viewportY-= el.offsetTop +el.clientTop;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
210 el= el.offsetParent;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
211 }
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
212 st.backgroundPositionX= (st.fixedBX+viewportX)+'px';
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
213 st.backgroundPositionY= (st.fixedBY+viewportY)+'px';
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
214 }
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
215
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
216 // call back again in a tic
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
217 if (!fixed_patching) {
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
218 fixed_patching= true;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
219 window.setTimeout(fixed_patch, fixed_PATCHDELAY);
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
220 }
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
221 }
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
222
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
223 // Measurement. Load bg-image into an invisible element on the page, when
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
224 // loaded write the width/height to an element's style for layout use; detect
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
225 // when font size changes
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
226
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
227 function fixed_measureBack(el) {
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
228 var measure= document.getElementById('fixed-measure');
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
229 var img= document.createElement('img');
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
230 img.setAttribute('src', fixed_parseURL(el.currentStyle.backgroundImage));
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
231 measure.appendChild(img);
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
232 el.style.fixedBImage= img;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
233 if (img.readyState=='uninitialized')
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
234 img.attachEvent('onreadystatechange', fixed_measureBackImage_ready);
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
235 }
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
236
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
237 function fixed_measureBackImage_ready() {
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
238 var img= event.srcElement;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
239 if (img && img.readyState!='uninitialized') {
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
240 img.detachEvent('onreadystatechange', fixed_measureBackImage_ready);
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
241 fixed_layout();
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
242 }
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
243 }
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
244
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
245 var fixed_fontsize= 0;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
246 function fixed_measureFont() {
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
247 var fs= document.getElementById('fixed-measure').offsetHeight;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
248 if (fixed_fontsize!=fs && fixed_fontsize!=0)
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
249 fixed_delayout();
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
250 fixed_fontsize= fs;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
251 return '5em';
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
252 }
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
253
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
254 // Utility. General-purpose functions
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
255
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
256 // parse url() to get value inside
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
257
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
258 function fixed_parseURL(v) {
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
259 v= v.substring(4, v.length-1);
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
260 if (v.charAt(0)=='"' && v.charAt(v.length-1)=='"' ||
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
261 v.charAt(0)=="'" && v.charAt(v.length-1)=="'")
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
262 return v.substring(1, v.length-1);
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
263 else return v;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
264 }
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
265
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
266 // parse length or auto or background-position keyword into number and unit
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
267
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
268 var fixed_numberChars= '+-0123456789.';
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
269 var fixed_ZERO= new Array(0, 'px');
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
270 var fixed_50PC= new Array(50, '%');
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
271 var fixed_100PC= new Array(100, '%');
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
272 var fixed_AUTO= new Array(0, 'auto');
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
273
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
274 function fixed_parseLength(v) {
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
275 var num, i;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
276 if (v=='left' || v=='top') return fixed_ZERO;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
277 if (v=='right' || v=='bottom') return fixed_100PC;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
278 if (v=='center') return fixed_50PC;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
279 if (v=='auto') return fixed_AUTO;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
280 i= 0;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
281 while (i<v.length && fixed_numberChars.indexOf(v.charAt(i))!=-1)
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
282 i++;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
283 num= parseFloat(v.substring(0, i));
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
284 if (num==0) return fixed_ZERO;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
285 else return new Array(num, v.substring(i));
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
286 }
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
287
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
288 // convert parsed (number, unit) into a number of pixels
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
289
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
290 function fixed_length(el, l, full) {
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
291 var tmp, x;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
292 if (l[1]=='px') return l[0];
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
293 if (l[1]=='%') return Math.round(full*l[0]/100);
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
294 // other units - measure by setting position; this is rather inefficient
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
295 // but then these units are used for background-position so seldom...
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
296 tmp= el.currentStyle.left;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
297 el.style.left= '0';
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
298 x= el.offsetLeft;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
299 el.style.left= l[0]+l[1];
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
300 x= el.offsetLeft-x;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
301 el.style.left= tmp;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
302 return x;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
303 }
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
304
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
305 // convert stupid IE offsetLeft/Top to page-relative values
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
306
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
307 function fixed_pageLeft(el) {
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
308 var v= 0;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
309 while (el.offsetParent) {
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
310 v+= el.offsetLeft;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
311 el= el.offsetParent;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
312 }
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
313 return v;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
314 }
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
315 function fixed_pageTop(el) {
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
316 var v= 0;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
317 while (el.offsetParent) {
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
318 v+= el.offsetTop;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
319 el= el.offsetParent;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
320 }
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
321 return v;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
322 }
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
323
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
324 // Scanning. Check document every so often until it has finished loading. Do
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
325 // nothing until <body> arrives, then call main init. Pass any new elements
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
326 // found on each scan to be bound
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
327
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
328 var fixed_SCANDELAY= 500;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
329
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
330 function fixed_scan() {
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
331 if (!document.body) return;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
332 if (!fixed_viewport) fixed_init();
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
333 var el;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
334 for (var i= 0; i<document.all.length; i++) {
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
335 el= document.all[i];
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
336 if (!el.fixed_bound) {
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
337 el.fixed_bound= true;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
338 fixed_bind(el);
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
339 } }
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
340 }
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
341
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
342 var fixed_scanner;
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
343 function fixed_stop() {
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
344 window.clearInterval(fixed_scanner);
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
345 fixed_scan();
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
346 }
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
347
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
348 fixed_scan();
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
349 fixed_scanner= window.setInterval(fixed_scan, fixed_SCANDELAY);
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
350 window.attachEvent('onload', fixed_stop);
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
351 window.attachEvent('onresize', fixed_delayout);
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
352 window.attachEvent('onscroll', fixed_scroll);
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
353
e45de6ca9b9c added script that adds css "fixed" attribute for IE
hertzhaft
parents:
diff changeset
354 @end @*/