1// FancyZoomHTML.js - v1.0 2// Used to draw necessary HTML elements for FancyZoom 3// 4// Copyright (c) 2008 Cabel Sasser / Panic Inc 5// All rights reserved. 6 7function insertZoomHTML() { 8 9 // All of this junk creates the three <div>'s used to hold the closebox, image, and zoom shadow. 10 11 var inBody = document.getElementsByTagName("body").item(0); 12 13 // WAIT SPINNER 14 15 var inSpinbox = document.createElement("div"); 16 inSpinbox.setAttribute('id', 'ZoomSpin'); 17 inSpinbox.style.position = 'absolute'; 18 inSpinbox.style.left = '10px'; 19 inSpinbox.style.top = '10px'; 20 inSpinbox.style.visibility = 'hidden'; 21 inSpinbox.style.zIndex = '525'; 22 inBody.insertBefore(inSpinbox, inBody.firstChild); 23 24 var inSpinImage = document.createElement("img"); 25 inSpinImage.setAttribute('id', 'SpinImage'); 26 inSpinImage.setAttribute('src', zoomImagesURI+'zoom-spin-1.png'); 27 inSpinbox.appendChild(inSpinImage); 28 29 // ZOOM IMAGE 30 // 31 // <div id="ZoomBox"> 32 // <a href="javascript:zoomOut();"><img src="/images/spacer.gif" id="ZoomImage" border="0"></a> <!-- THE IMAGE --> 33 // <div id="ZoomClose"> 34 // <a href="javascript:zoomOut();"><img src="/images/closebox.png" width="30" height="30" border="0"></a> 35 // </div> 36 // </div> 37 38 var inZoombox = document.createElement("div"); 39 inZoombox.setAttribute('id', 'ZoomBox'); 40 41 inZoombox.style.position = 'absolute'; 42 inZoombox.style.left = '10px'; 43 inZoombox.style.top = '10px'; 44 inZoombox.style.visibility = 'hidden'; 45 inZoombox.style.zIndex = '499'; 46 47 inBody.insertBefore(inZoombox, inSpinbox.nextSibling); 48 49 var inImage1 = document.createElement("img"); 50 inImage1.onclick = function (event) { zoomOut(this, event); return false; }; 51 inImage1.setAttribute('src',zoomImagesURI+'spacer.gif'); 52 inImage1.setAttribute('id','ZoomImage'); 53 inImage1.setAttribute('border', '0'); 54 // inImage1.setAttribute('onMouseOver', 'zoomMouseOver();') 55 // inImage1.setAttribute('onMouseOut', 'zoomMouseOut();') 56 57 // This must be set first, so we can later test it using webkitBoxShadow. 58 inImage1.setAttribute('style', '-webkit-box-shadow: '+shadowSettings+'0.0)'); 59 inImage1.style.display = 'block'; 60 inImage1.style.width = '10px'; 61 inImage1.style.height = '10px'; 62 inImage1.style.cursor = 'pointer'; // -webkit-zoom-out? 63 inZoombox.appendChild(inImage1); 64 65 var inClosebox = document.createElement("div"); 66 inClosebox.setAttribute('id', 'ZoomClose'); 67 inClosebox.style.position = 'absolute'; 68 69 // In MSIE, we need to put the close box inside the image. 70 // It's 2008 and I'm having to do a browser detect? Sigh. 71 if (browserIsIE) { 72 inClosebox.style.left = '-1px'; 73 inClosebox.style.top = '0px'; 74 } else { 75 inClosebox.style.left = '-15px'; 76 inClosebox.style.top = '-15px'; 77 } 78 79 inClosebox.style.visibility = 'hidden'; 80 inZoombox.appendChild(inClosebox); 81 82 // Retina asset for close button. JG 2017-06-20 83 var closeButtonAsset; 84 switch(window.devicePixelRatio) { 85 case 2: 86 closeButtonAsset = "[email protected]"; 87 break; 88 case 3: 89 closeButtonAsset = "[email protected]"; 90 break; 91 default: 92 closeButtonAsset = "closebox.png"; 93 } 94 95 var inImage2 = document.createElement("img"); 96 inImage2.onclick = function (event) { zoomOut(this, event); return false; }; 97 inImage2.setAttribute('src',zoomImagesURI+closeButtonAsset); 98 inImage2.setAttribute('width','30'); 99 inImage2.setAttribute('height','30'); 100 inImage2.setAttribute('border','0'); 101 inImage2.style.cursor = 'pointer'; 102 inClosebox.appendChild(inImage2); 103 104 // SHADOW 105 // Only draw the table-based shadow if the programatic webkitBoxShadow fails! 106 // Also, don't draw it if we're IE -- it wouldn't look quite right anyway. 107 108 if (! document.getElementById('ZoomImage').style.webkitBoxShadow && ! browserIsIE) { 109 110 // SHADOW BASE 111 112 var inFixedBox = document.createElement("div"); 113 inFixedBox.setAttribute('id', 'ShadowBox'); 114 inFixedBox.style.position = 'absolute'; 115 inFixedBox.style.left = '50px'; 116 inFixedBox.style.top = '50px'; 117 inFixedBox.style.width = '100px'; 118 inFixedBox.style.height = '100px'; 119 inFixedBox.style.visibility = 'hidden'; 120 inFixedBox.style.zIndex = '498'; 121 inBody.insertBefore(inFixedBox, inZoombox.nextSibling); 122 123 // SHADOW 124 // Now, the shadow table. Skip if not compatible, or irrevelant with -box-shadow. 125 126 // <div id="ShadowBox"><table border="0" width="100%" height="100%" cellpadding="0" cellspacing="0"> X 127 // <tr height="25"> 128 // <td width="27"><img src="/images/zoom-shadow1.png" width="27" height="25"></td> 129 // <td background="/images/zoom-shadow2.png"> </td> 130 // <td width="27"><img src="/images/zoom-shadow3.png" width="27" height="25"></td> 131 // </tr> 132 133 var inShadowTable = document.createElement("table"); 134 inShadowTable.setAttribute('border', '0'); 135 inShadowTable.setAttribute('width', '100%'); 136 inShadowTable.setAttribute('height', '100%'); 137 inShadowTable.setAttribute('cellpadding', '0'); 138 inShadowTable.setAttribute('cellspacing', '0'); 139 inFixedBox.appendChild(inShadowTable); 140 141 var inShadowTbody = document.createElement("tbody"); // Needed for IE (for HTML4). 142 inShadowTable.appendChild(inShadowTbody); 143 144 var inRow1 = document.createElement("tr"); 145 inRow1.style.height = '25px';
146 inShadowTbody.appendChild(inRow1); 147 148 var inCol1 = document.createElement("td"); 149 inCol1.style.width = '27px'; 150 inRow1.appendChild(inCol1); 151 var inShadowImg1 = document.createElement("img"); 152 inShadowImg1.setAttribute('src', zoomImagesURI+'zoom-shadow1.png'); 153 inShadowImg1.setAttribute('width', '27'); 154 inShadowImg1.setAttribute('height', '25'); 155 inShadowImg1.style.display = 'block'; 156 inCol1.appendChild(inShadowImg1); 157 158 var inCol2 = document.createElement("td"); 159 inCol2.setAttribute('background', zoomImagesURI+'zoom-shadow2.png'); 160 inRow1.appendChild(inCol2); 161 // inCol2.innerHTML = '<img src='; 162 var inSpacer1 = document.createElement("img"); 163 inSpacer1.setAttribute('src',zoomImagesURI+'spacer.gif'); 164 inSpacer1.setAttribute('height', '1'); 165 inSpacer1.setAttribute('width', '1'); 166 inSpacer1.style.display = 'block'; 167 inCol2.appendChild(inSpacer1); 168 169 var inCol3 = document.createElement("td"); 170 inCol3.style.width = '27px'; 171 inRow1.appendChild(inCol3); 172 var inShadowImg3 = document.createElement("img"); 173 inShadowImg3.setAttribute('src', zoomImagesURI+'zoom-shadow3.png'); 174 inShadowImg3.setAttribute('width', '27'); 175 inShadowImg3.setAttribute('height', '25'); 176 inShadowImg3.style.display = 'block'; 177 inCol3.appendChild(inShadowImg3); 178 179 // <tr> 180 // <td background="/images/zoom-shadow4.png"> </td> 181 // <td bgcolor="#ffffff"> </td> 182 // <td background="/images/zoom-shadow5.png"> </td> 183 // </tr> 184 185 inRow2 = document.createElement("tr"); 186 inShadowTbody.appendChild(inRow2); 187 188 var inCol4 = document.createElement("td"); 189 inCol4.setAttribute('background', zoomImagesURI+'zoom-shadow4.png'); 190 inRow2.appendChild(inCol4); 191 // inCol4.innerHTML = ' '; 192 var inSpacer2 = document.createElement("img"); 193 inSpacer2.setAttribute('src',zoomImagesURI+'spacer.gif'); 194 inSpacer2.setAttribute('height', '1'); 195 inSpacer2.setAttribute('width', '1'); 196 inSpacer2.style.display = 'block'; 197 inCol4.appendChild(inSpacer2); 198
199 var inCol5 = document.createElement("td"); 200 inCol5.setAttribute('bgcolor', '#ffffff'); 201 inRow2.appendChild(inCol5); 202 // inCol5.innerHTML = ' '; 203 var inSpacer3 = document.createElement("img"); 204 inSpacer3.setAttribute('src',zoomImagesURI+'spacer.gif'); 205 inSpacer3.setAttribute('height', '1'); 206 inSpacer3.setAttribute('width', '1'); 207 inSpacer3.style.display = 'block'; 208 inCol5.appendChild(inSpacer3); 209 210 var inCol6 = document.createElement("td"); 211 inCol6.setAttribute('background', zoomImagesURI+'zoom-shadow5.png'); 212 inRow2.appendChild(inCol6); 213 // inCol6.innerHTML = ' '; 214 var inSpacer4 = document.createElement("img"); 215 inSpacer4.setAttribute('src',zoomImagesURI+'spacer.gif'); 216 inSpacer4.setAttribute('height', '1'); 217 inSpacer4.setAttribute('width', '1'); 218 inSpacer4.style.display = 'block'; 219 inCol6.appendChild(inSpacer4); 220 221 // <tr height="26"> 222 // <td width="27"><img src="/images/zoom-shadow6.png" width="27" height="26"</td> 223 // <td background="/images/zoom-shadow7.png"> </td> 224 // <td width="27"><img src="/images/zoom-shadow8.png" width="27" height="26"></td> 225 // </tr> 226 // </table> 227 228 var inRow3 = document.createElement("tr"); 229 inRow3.style.height = '26px'; 230 inShadowTbody.appendChild(inRow3); 231 232 var inCol7 = document.createElement("td"); 233 inCol7.style.width = '27px'; 234 inRow3.appendChild(inCol7); 235 var inShadowImg7 = document.createElement("img"); 236 inShadowImg7.setAttribute('src', zoomImagesURI+'zoom-shadow6.png'); 237 inShadowImg7.setAttribute('width', '27'); 238 inShadowImg7.setAttribute('height', '26'); 239 inShadowImg7.style.display = 'block'; 240 inCol7.appendChild(inShadowImg7); 241 242 var inCol8 = document.createElement("td"); 243 inCol8.setAttribute('background', zoomImagesURI+'zoom-shadow7.png'); 244 inRow3.appendChild(inCol8); 245 // inCol8.innerHTML = ' '; 246 var inSpacer5 = document.createElement("img"); 247 inSpacer5.setAttribute('src',zoomImagesURI+'spacer.gif'); 248 inSpacer5.setAttribute('height', '1'); 249 inSpacer5.setAttribute('width', '1'); 250 inSpacer5.style.display = 'block'; 251 inCol8.appendChild(inSpacer5); 252 253 var inCol9 = document.createElement("td"); 254 inCol9.style.width = '27px'; 255 inRow3.appendChild(inCol9); 256 var inShadowImg9 = document.createElement("img"); 257 inShadowImg9.setAttribute('src', zoomImagesURI+'zoom-shadow8.png'); 258 inShadowImg9.setAttribute('width', '27'); 259 inShadowImg9.setAttribute('height', '26'); 260 inShadowImg9.style.display = 'block'; 261 inCol9.appendChild(inShadowImg9); 262 } 263 264 if (includeCaption) { 265 266 // CAPTION 267 // 268 // <div id="ZoomCapDiv" style="margin-left: 13px; margin-right: 13px;"> 269 // <table border="1" cellpadding="0" cellspacing="0"> 270 // <tr height="26"> 271 // <td><img src="zoom-caption-l.png" width="13" height="26"></td> 272 // <td rowspan="3" background="zoom-caption-fill.png"><div id="ZoomCaption"></div></td> 273 // <td><img src="zoom-caption-r.png" width="13" height="26"></td> 274 // </tr> 275 // </table> 276 // </div> 277 278 var inCapDiv = document.createElement("div"); 279 inCapDiv.setAttribute('id', 'ZoomCapDiv'); 280 inCapDiv.style.position = 'absolute'; 281 inCapDiv.style.visibility = 'hidden'; 282 inCapDiv.style.marginLeft = 'auto'; 283 inCapDiv.style.marginRight = 'auto'; 284 inCapDiv.style.zIndex = '501'; 285 286 inBody.insertBefore(inCapDiv, inZoombox.nextSibling); 287 288 var inCapTable = document.createElement("table"); 289 inCapTable.setAttribute('border', '0'); 290 inCapTable.setAttribute('cellPadding', '0'); // Wow. These honestly need to 291 inCapTable.setAttribute('cellSpacing', '0'); // be intercapped to work in IE. WTF? 292 inCapDiv.appendChild(inCapTable); 293 294 var inTbody = document.createElement("tbody"); // Needed for IE (for HTML4). 295 inCapTable.appendChild(inTbody); 296 297 var inCapRow1 = document.createElement("tr");
298 inTbody.appendChild(inCapRow1); 299 300 var inCapCol1 = document.createElement("td"); 301 inCapCol1.setAttribute('align', 'right'); 302 inCapRow1.appendChild(inCapCol1); 303 var inCapImg1 = document.createElement("img"); 304 inCapImg1.setAttribute('src', zoomImagesURI+'zoom-caption-l.png'); 305 inCapImg1.setAttribute('width', '13'); 306 inCapImg1.setAttribute('height', '26'); 307 inCapImg1.style.display = 'block'; 308 inCapCol1.appendChild(inCapImg1); 309 310 var inCapCol2 = document.createElement("td"); 311 inCapCol2.setAttribute('background', zoomImagesURI+'zoom-caption-fill.png'); 312 inCapCol2.setAttribute('id', 'ZoomCaption'); 313 inCapCol2.setAttribute('valign', 'middle'); 314 inCapCol2.style.fontSize = '14px'; 315 inCapCol2.style.fontFamily = 'Helvetica'; 316 inCapCol2.style.fontWeight = 'bold'; 317 inCapCol2.style.color = '#ffffff'; 318 inCapCol2.style.textShadow = '0px 2px 4px #000000'; 319 inCapCol2.style.whiteSpace = 'nowrap'; 320 inCapRow1.appendChild(inCapCol2); 321 322 var inCapCol3 = document.createElement("td"); 323 inCapRow1.appendChild(inCapCol3); 324 var inCapImg2 = document.createElement("img"); 325 inCapImg2.setAttribute('src', zoomImagesURI+'zoom-caption-r.png'); 326 inCapImg2.setAttribute('width', '13'); 327 inCapImg2.setAttribute('height', '26'); 328 inCapImg2.style.display = 'block'; 329 inCapCol3.appendChild(inCapImg2); 330 } 331}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.