3 window
.isMSIE55
= ( window
.showModalDialog
&& window
.clipboardData
&& window
.createPopup
);
4 window
.doneIETransform
= false;
5 window
.doneIEAlphaFix
= false;
7 if ( document
.attachEvent
) {
8 document
.attachEvent( 'onreadystatechange', hookit
);
11 window
.hookit = function() {
12 if ( !doneIETransform
&& document
.getElementById
&& document
.getElementById( 'bodyContent' ) ) {
13 doneIETransform
= true;
19 // png alpha transparency fixes
20 window
.fixalpha = function( logoId
) {
22 if ( isMSIE55
&& !doneIEAlphaFix
) {
23 var plogo
= document
.getElementById( logoId
|| 'p-logo' );
28 var logoa
= plogo
.getElementsByTagName('a')[0];
33 var bg
= logoa
.currentStyle
.backgroundImage
;
34 var imageUrl
= bg
.substring( 5, bg
.length
- 2 );
36 doneIEAlphaFix
= true;
38 if ( imageUrl
.substr( imageUrl
.length
- 4 ).toLowerCase() == '.png' ) {
39 var logospan
= logoa
.appendChild( document
.createElement( 'span' ) );
41 logoa
.style
.backgroundImage
= 'none';
42 logospan
.style
.filter
= 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src=' + imageUrl
+ ')';
43 logospan
.style
.height
= '100%';
44 logospan
.style
.position
= 'absolute';
45 logospan
.style
.width
= logoa
.currentStyle
.width
;
46 logospan
.style
.cursor
= 'hand';
47 // Center image with hack for IE5.5
48 if ( document
.documentElement
.dir
== 'rtl' ) {
49 logospan
.style
.right
= '50%';
50 logospan
.style
.setExpression( 'marginRight', '"-" + (this.offsetWidth / 2) + "px"' );
52 logospan
.style
.left
= '50%';
53 logospan
.style
.setExpression( 'marginLeft', '"-" + (this.offsetWidth / 2) + "px"' );
55 logospan
.style
.top
= '50%';
56 logospan
.style
.setExpression( 'marginTop', '"-" + (this.offsetHeight / 2) + "px"' );
58 var linkFix
= logoa
.appendChild( logoa
.cloneNode() );
59 linkFix
.style
.position
= 'absolute';
60 linkFix
.style
.height
= '100%';
61 linkFix
.style
.width
= '100%';
66 // fix ie6 disappering float bug
67 window
.relativeforfloats = function() {
68 var bc
= document
.getElementById( 'bodyContent' );
70 var tables
= bc
.getElementsByTagName( 'table' );
71 var divs
= bc
.getElementsByTagName( 'div' );
73 setrelative( tables
);
76 window
.setrelative = function( nodes
) {
78 while ( i
< nodes
.length
) {
79 if( ( ( nodes
[i
].style
.float && nodes
[i
].style
.float != ( 'none' ) ||
80 ( nodes
[i
].align
&& nodes
[i
].align
!= ( 'none' ) ) ) &&
81 ( !nodes
[i
].style
.position
|| nodes
[i
].style
.position
!= 'relative' ) ) )
83 nodes
[i
].style
.position
= 'relative';
89 // Expand links for printing
90 String
.prototype.hasClass = function( classWanted
) {
91 var classArr
= this.split(/\s/);
92 for ( var i
= 0; i
< classArr
.length
; i
++ ) {
93 if ( classArr
[i
].toLowerCase() == classWanted
.toLowerCase() ) {
100 window
.expandedURLs
= undefined;
102 window
.onbeforeprint = function() {
105 var contentEl
= document
.getElementById( 'content' );
108 var allLinks
= contentEl
.getElementsByTagName( 'a' );
110 for ( var i
= 0; i
< allLinks
.length
; i
++ ) {
111 if ( allLinks
[i
].className
.hasClass( 'external' ) && !allLinks
[i
].className
.hasClass( 'free' ) ) {
112 var expandedLink
= document
.createElement( 'span' );
113 var expandedText
= document
.createTextNode( ' (' + allLinks
[i
].href
+ ')' );
114 expandedLink
.appendChild( expandedText
);
115 allLinks
[i
].parentNode
.insertBefore( expandedLink
, allLinks
[i
].nextSibling
);
116 expandedURLs
[i
] = expandedLink
;
122 window
.onafterprint = function() {
123 for ( var i
= 0; i
< expandedURLs
.length
; i
++ ) {
124 if ( expandedURLs
[i
] ) {
125 expandedURLs
[i
].removeNode( true );