1 /*********************************************************************************************** 2 3 Copyright (c) 2005 - Alf Magne Kalleland [email protected] 4 5 UPDATE LOG: 6 7 March, 10th, 2006 : Added support for a message while large image is loading 8 9 Get this and other scripts at www.dhtmlgoodies.com 10 11 You can use this script freely as long as this copyright message is kept intact. 12 13 ***********************************************************************************************/ 14 15 var displayWaitMessage=true; // Display a please wait message while images are loading? 16 17 18 var activeImage = false; 19 var imageGalleryLeftPos = false; 20 var imageGalleryWidth = false; 21 var imageGalleryObj = false; 22 var maxGalleryXPos = false; 23 var slideSpeed = 0; 24 var imageGalleryCaptions = new Array(); 25 function startSlide(e) 26 { 27 if(document.all)e = event; 28 var id = this.id; 29 this.getElementsByTagName('IMG')[0].src = 'images/' + this.id + '_over.gif'; 30 if(this.id=='arrow_right'){ 31 slideSpeedMultiply = Math.floor((e.clientX - this.offsetLeft) / 5); 32 slideSpeed = -1*slideSpeedMultiply; 33 slideSpeed = Math.max(-10,slideSpeed); 34 }else{ 35 slideSpeedMultiply = 10 - Math.floor((e.clientX - this.offsetLeft) / 5); 36 slideSpeed = 1*slideSpeedMultiply; 37 slideSpeed = Math.min(10,slideSpeed); 38 if(slideSpeed<0)slideSpeed=10; 39 } 40 } 41 42 function releaseSlide() 43 { 44 var id = this.id; 45 this.getElementsByTagName('IMG')[0].src = 'images/' + this.id + '.gif'; 46 slideSpeed=0; 47 } 48 49 function gallerySlide() 50 { 51 if(slideSpeed!=0){ 52 var leftPos = imageGalleryObj.offsetLeft; 53 leftPos = leftPos/1 + slideSpeed; 54 if(leftPos>maxGalleryXPos){ 55 leftPos = maxGalleryXPos; 56 slideSpeed = 0; 57 58 } 59 if(leftPos<minGalleryXPos){ 60 leftPos = minGalleryXPos; 61 slideSpeed=0; 62 } 63 64 imageGalleryObj.style.left = leftPos + 'px'; 65 } 66 setTimeout('gallerySlide()',20); 67 68 } 69 70 function showImage() 71 { 72 if(activeImage){ 73 activeImage.style.filter = 'alpha(opacity=50)'; 74 activeImage.style.opacity = 0.5; 75 } 76 this.style.filter = 'alpha(opacity=100)'; 77 this.style.opacity = 1; 78 activeImage = this; 79 } 80 81 function initSlideShow() 82 { 83 document.getElementById('arrow_left').onmousemove = startSlide; 84 document.getElementById('arrow_left').onmouseout = releaseSlide; 85 document.getElementById('arrow_right').onmousemove = startSlide; 86 document.getElementById('arrow_right').onmouseout = releaseSlide; 87 88 imageGalleryObj = document.getElementById('theImages'); 89 imageGalleryLeftPos = imageGalleryObj.offsetLeft; 90 imageGalleryWidth = document.getElementById('galleryContainer').offsetWidth - 80; 91 maxGalleryXPos = imageGalleryObj.offsetLeft; 92 minGalleryXPos = imageGalleryWidth - document.getElementById('slideEnd').offsetLeft; 93 var slideshowImages = imageGalleryObj.getElementsByTagName('IMG'); 94 for(var no=0;no<slideshowImages.length;no++){ 95 slideshowImages[no].onmouseover = showImage; 96 } 97 98 var divs = imageGalleryObj.getElementsByTagName('DIV'); 99 for(var no=0;no<divs.length;no++){ 100 if(divs[no].className=='imageCaption')imageGalleryCaptions[imageGalleryCaptions.length] = divs[no].innerHTML; 101 } 102 gallerySlide(); 103 } 104 105 function showPreview(imagePath,imageIndex){ 106 var subImages = document.getElementById('previewPane').getElementsByTagName('IMG'); 107 if(subImages.length==0){ 108 var img = document.createElement('IMG'); 109 document.getElementById('previewPane').appendChild(img); 110 }else img = subImages[0]; 111 112 if(displayWaitMessage){ 113 document.getElementById('waitMessage').style.display='inline'; 114 } 115 document.getElementById('largeImageCaption').style.display='none'; 116 img.onload = function() { hideWaitMessageAndShowCaption(imageIndex-1); }; 117 img.src = imagePath; 118
119 } 120 function hideWaitMessageAndShowCaption(imageIndex) 121 { 122 document.getElementById('waitMessage').style.display='none'; 123 document.getElementById('largeImageCaption').innerHTML = imageGalleryCaptions[imageIndex]; 124 document.getElementById('largeImageCaption').style.display='block'; 125 126 } 127 window.onload = initSlideShow;
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.