File indexing completed on 2024-05-12 15:55:47

0001 // SPDX-FileCopyrightText: 2009-2012 Miika Turkia <miika.turkia@gmail.com>
0002 //
0003 // SPDX-License-Identifier: LicenseRef-KDE-Accepted-LGPL
0004 
0005 // Selectable options BEGIN
0006 // Konqueror tends to crash with videos. If set to 1 videos are disabled with Konqueror
0007 var konquerorPlaySafe = 1
0008 
0009 // Set to 1 to display alerts when video support is disabled
0010 var annoyingAlerts = 0
0011 
0012 // SlideShow speed in milliseconds
0013 var speed = 2500
0014 
0015 // Default video format for downloads (if browser supports HTML5 video the browser supported format used)
0016 var videoExt = ".mp4"
0017 
0018 // Selectable options END
0019 
0020 // Image that is being displayed in ImageViewer
0021 var viewerImage = 0
0022 
0023 // Image that is being displayed on main page loadarea
0024 var image
0025 
0026 // SlideShow off
0027 var ss = 0
0028 
0029 // Pause SlideShow off
0030 var pause = 0
0031 
0032 // ImageViewer off
0033 var viewer = 0
0034 
0035 // SlideShow timer
0036 var timer
0037 
0038 var browser
0039 
0040 // Videos are scaled to this size
0041 var videoWidth = 640
0042 var videoHeight = 480
0043 var videoPlaying = 0
0044 
0045 // 1 if browser supports video
0046 var browserVideo = 0
0047 var konqueror = 0
0048 
0049 var thumbsW
0050 var areaHeight
0051 var areaWidth
0052 var width
0053 
0054 
0055 // Registering keyboard listener
0056 function listenKey ()
0057 {
0058         document.onkeydown = getKey
0059 }
0060 
0061 // Actions for key presses
0062 function getKey(e)
0063 {
0064         if(!e) {
0065                 //ie
0066                 e = window.event
0067         }
0068 
0069         switch(e.keyCode) {
0070         case 37: //left
0071                 prevImage()
0072                 break
0073         case 39: //right
0074                 nextImage()
0075                 break
0076         case 32: //space
0077                 if (ss) {
0078                         if (!pause) {
0079                                 pause = 1
0080                         } else {
0081                                 pause = 0
0082                                 nextImage()
0083                         }
0084                 } else if (viewer) {
0085                         nextImage()
0086                 }
0087                 break
0088         case 27: //escape
0089                 hideImageViewer()
0090                 break
0091         case 83: //s
0092                 slideShow()
0093                 break
0094         case 36: //home
0095                 break
0096         case 13: //return
0097                 showImageViewer(-1)
0098                 break
0099         default:
0100                 break
0101         }
0102 }
0103 
0104 // Viewing next image on ImageViewer
0105 function nextImage()
0106 {
0107         if (videoPlaying && browserVideo) {
0108                 document.getElementById("fullVideo").pause()
0109         }
0110 
0111         if (ss) {
0112                 clearTimeout(timer)
0113                 if (pause) { return }
0114         timer = setTimeout(nextImage,speed)
0115         }
0116 
0117         if (browserVideo) {
0118                 viewerImage = ++viewerImage > gallery.length - 1 ? 0 : viewerImage
0119         } else {
0120                 var counter = 0
0121                 viewerImage = ++viewerImage > gallery.length - 1 ? 0 : viewerImage
0122                 while (gallery[viewerImage][3].match(/video/i) == "video") {
0123                         viewerImage = ++viewerImage > gallery.length - 1 ? 0 : viewerImage
0124                         if (++counter > gallery.length) {
0125                                 return
0126                         }
0127                 }
0128         }
0129         showImage(viewerImage)
0130 }
0131 
0132 // Viewing previous image in ImageViewer
0133 function prevImage()
0134 {
0135         if (videoPlaying && browserVideo) {
0136                 document.getElementById("fullVideo").pause()
0137         }
0138 
0139         if (ss) {
0140                 clearTimeout(timer)
0141                 if (pause) { return }
0142         timer = setTimeout(nextImage,speed)
0143         }
0144 
0145         if (browserVideo) {
0146                 viewerImage = --viewerImage < 0 ? gallery.length - 1 : viewerImage
0147         } else {
0148                 var counter = 0
0149                 viewerImage = --viewerImage < 0 ? gallery.length - 1 : viewerImage
0150                 while (gallery[viewerImage][3].match(/video/i) == "video") {
0151                         viewerImage = --viewerImage < 0 ? gallery.length - 1 : viewerImage
0152                         if (--counter > gallery.length) {
0153                                 return
0154                         }
0155                 }
0156         }
0157         showImage(viewerImage)
0158 }
0159 
0160 // Checking window width
0161 function windowWidth(pad)
0162 {
0163         var myWidth = 0
0164 
0165         if( typeof( window.innerWidth ) == 'number' ) {
0166                 //Non-IE
0167                 myWidth = window.innerWidth
0168         } else if( document.documentElement &&
0169                 document.documentElement.clientWidth ) {
0170                         //IE 6+ in 'standards compliant mode'
0171                         myWidth = document.documentElement.clientWidth
0172         } else if( document.body && document.body.clientWidth ) {
0173                 //IE 4 compatible
0174                 myWidth = document.body.clientWidth
0175         }
0176         return myWidth - pad
0177 }
0178 
0179 // Calculate appropriate height for thumbnails area
0180 function thumbsHeight(imgHeight)
0181 {
0182         var myHeight = 0
0183 
0184         switch(browser) {
0185                 case 0:
0186                         myHeight = window.innerHeight
0187                         break
0188                 case 1:
0189                         myHeight = document.documentElement.clientHeight
0190                         break
0191                 case 2:
0192                         myHeight = document.body.clientHeight
0193                         break
0194                 default:
0195                         break
0196         }
0197         return (myHeight - 220) > imgHeight ? (myHeight - 220) : imgHeight
0198 }
0199 
0200 function detectBrowser()
0201 {
0202         if( typeof( window.innerWidth ) == 'number' ) {
0203                 //Non-IE
0204                 browser = 0
0205         } else if( document.documentElement &&
0206                 document.documentElement.clientHeight ) {
0207                         //IE 6+ in 'standards compliant mode'
0208                         browser = 1
0209         } else if( document.body && document.body.clientHeight ) {
0210                 //IE 4 compatible
0211                 browser = 2
0212         }
0213 
0214         if (typeof enableVideo == 'undefined' || !enableVideo) {
0215                 return
0216         }
0217 
0218         if (!generatedVideo && inlineVideo) {
0219                 videoInfo('Videos displayed using original format, if browser supports')
0220                 return
0221         }
0222         if (inlineVideo) {
0223                 if (!!document.createElement('video').canPlayType) {
0224                         if (!!document.createElement("video").canPlayType('video/ogg; codecs="theora, vorbis"')) {
0225                                 browserVideo = 1
0226                                 videoFormat = "'video/ogg; codecs=\"theora, vorbis\"'"
0227                                 videoExt = ".ogg"
0228                         } if (!!document.createElement("video").canPlayType('video/mp4; codecs="avc1.42E01E, mp4a.40.2"')) {
0229                                 browserVideo = 1
0230                                 videoFormat = "'video/mp4; codecs=\"avc1.42E01E, mp4a.40.2\"'"
0231                                 videoExt = ".mp4"
0232                         }
0233                         if (navigator.userAgent.indexOf("Konqueror") > -1 || navigator.userAgent.indexOf("rekonq") > -1) {
0234                                 if (konquerorPlaySafe == 1) {
0235                                         konqueror = 0
0236                                         browserVideo = 0
0237                                         videoInfo('Konqueror keeps crashing if video support is enabled - thus videos must be viewed manually<br />')
0238                                         return
0239                                 } else {
0240                                         konqueror = 1
0241                                 }
0242                         }
0243                 }
0244                 videoInfo('')
0245         } else {
0246                 videoInfo('Inline videos are disabled')
0247         }
0248 }
0249 
0250 function videoInfo(msg)
0251 {
0252         if (msg === '') {
0253                 msg = 'Emedded videos are disabled due to poor or missing HTML5 video support. However, clicking video thumbnail allows downloading or viewing with plugins.'
0254         }
0255         // Displaying info on video support
0256         document.write('<div class="videoInfo" id="videoInfo" onclick=closeVideoInfo()><p>')
0257         if (browserVideo) {
0258                 document.write('Videos displayed using ' + videoFormat.replace(/;.*/, '') + "'")
0259         } else {
0260                 document.write(msg)
0261         }
0262         document.write('</p></div>') // videoInfo
0263     setTimeout(closeVideoInfo,7000)
0264 }
0265 
0266 function closeVideoInfo()
0267 {
0268         document.getElementById("videoInfo").style.display="none"
0269 }
0270 
0271 // Calculate appropriate width of thumbnails area
0272 function thumbsWidth(pad)
0273 {
0274         var myWidth = windowWidth(10)
0275         var thumbOverhead = 18
0276         var thumbs
0277 
0278         if( browser === 0 ) {
0279                 thumbOverhead = 10
0280         }
0281 
0282         thumbs = Math.floor((myWidth - width - pad) / (tsize + thumbOverhead))
0283 
0284         return thumbs * ( tsize + thumbOverhead )
0285 }
0286 
0287 function fullSizeLoaded()
0288 {
0289         width = self.width > self.height ? self.width : self.height
0290         height = self.width < self.height ? self.width: self.height
0291 
0292         thumbsW = thumbsWidth(40)
0293         areaHeight = thumbsHeight(width + 45)
0294         areaWidth = width + 20
0295 
0296         setSize()
0297 }
0298 
0299 // Main function to barf out the HTML for thumbnails and image area
0300 function imageInit()
0301 {
0302         var slash
0303         var doc
0304 
0305         detectBrowser()
0306 
0307         if (location.pathname.match(/\//)) {
0308                 slash = '/'
0309         } else {
0310                 slash = '\\'
0311         }
0312 
0313         // Redirect browser to smallest sized images by default
0314         doc = location.pathname.substring(location.pathname.lastIndexOf(slash)+1)
0315         if ((doc == "index.html") || (doc === "")) {
0316                 window.location=minPage
0317         }
0318 
0319         // If we are dealing with full sized images we have to figure out image
0320         // dimentions for size calculations
0321         if (width < 0) {
0322                 // Just set some positive size and resize it once a sample
0323                 // image has been loaded
0324                 width=windowWidth(0)
0325 
0326                 var pic = new Image()
0327                 pic.onload=fullSizeLoaded
0328 
0329                 var iter = 0
0330                 while (gallery[iter][3].match(/video/i) == "video") {
0331                         if (++iter > gallery.length) {
0332                                 iter = 0
0333                                 break
0334                         }
0335                 }
0336                 pic.src=gallery[iter][0]
0337         }
0338 
0339         thumbsW = thumbsWidth(40)
0340 
0341         // Currently using max portrait image height + some for the
0342         // load area of full size images
0343         areaHeight = thumbsHeight(width + 45)
0344         areaWidth = width + 20
0345 
0346         // Registering resize function
0347         window.onresize= widthTimer
0348 
0349         // SlideShow speed control
0350         document.write('<div id="slideSpeed" class="slideSpeed"')
0351         document.write('<p>Delay</p>')
0352         document.write('<a href="#" onclick=changeSpeed(1)>+</a>')
0353         document.write('<p id="currentSpeed">' + speed / 1000 + 's</p>')
0354         document.write('<a href="#" onclick=changeSpeed(0)>-</a>')
0355         document.write('</div>')
0356 
0357         document.write('<div id="imagearea">')
0358         document.write('<div class="thumbnails" id="thumbnails" style="height:' +
0359                 areaHeight + 'px;">')
0360 
0361         var ts
0362         if ( browser === 0 ) {
0363                 ts = (tsize + 4) + 'px'
0364         } else {
0365                 ts = (tsize + 16) + 'px'
0366         }
0367 
0368         for (image in gallery) {
0369                 document.write('<div id="thumb-div-' + image +'" class="thumb-div"' +
0370                         ' style="width:' + ts + ';height:' + ts +
0371                         ';">' +
0372                         '<img id="thumb-' + image + '" alt="' + gallery[image][1] + '" src="' +
0373                         gallery[image][1] + '" onmouseover' +
0374                         '=showImage("' + image + '") onclick=\'showImageViewer(' + image + ')\'' +
0375                         '/></div>')
0376         }
0377         document.write('</div>') // thumbnails
0378 
0379         // opaque area
0380         document.write('<div id="opa"></div>')
0381 
0382         // viewer area that is shown on slideshow / full size view
0383         document.write(
0384                 '<div id="navi" class="navi">' +
0385                 '<img id="arrow-left" class="arrow-left" onmouseover="this.src=\'arrow-left2.png\'" onmouseout="this.src=\'arrow-left.png\'' +
0386                         '" onclick=prevImage() alt="prev" src="arrow-left.png" />' +
0387                 '<img id="arrow-right" class="arrow-right" onmouseover="this.src=\'arrow-right2.png\'" onmouseout="this.src=\'arrow-right.png\'' +
0388                         '" onclick=nextImage() alt="next" src="arrow-right.png" /></div>' +
0389                 '<div id="pad"><div id="fullarea" onclick=nextImage()>' +
0390                 '<div id="X" class="X" onclick=hideImageViewer()><img alt="close" src="close.png" /></div>' +
0391                 '<img id="fullImg" class="fullImg" src="' + gallery[0][2] +
0392                 '" onload=viewerSize() />' +
0393                 '<span id="fullImgD" class="fullImgD">' + '<i>' + gallery[image][2] + '</i> &nbsp;' + gallery[0][5] + '</span>')
0394         if (browserVideo == 1) {
0395                 document.write('<video id="fullVideo" class="fullVideo" width="' + videoWidth + '" height="' +
0396                         videoHeight + '" onloadstart=viewerVideoSize() onended=videoEnd() >' +
0397                         '<source type=' + videoFormat + ' src="')
0398                 if (generatedVideo) {
0399                         document.write(gallery[0][2].replace(/\..*/, videoExt))
0400                 } else {
0401                         document.write(gallery[0][2])
0402                 }
0403                 document.write('" />"</video>')
0404                 document.write('<span id="fullVidD" class="fullVidD">' + '<i>' + gallery[image][2] + '</i> &nbsp;' + gallery[0][5] + '</span>')
0405                         //'<source type=\'video/mp4; codecs="avc1.42E01E, mp4a.40.2"\' src="' + gallery[0][2].replace(/\.*/, "mp4") + '" />"' +
0406                 if (konqueror) {
0407                         document.getElementById("fullVideo").setAttribute("autoplay", 1)
0408                         document.getElementById("fullVideo").setAttribute("controls", 1)
0409                 }
0410         }
0411         document.write('<div class="dl" id="dl" onclick="event.cancelBubble = true;"><a id="videoDL" href="')
0412         if (generatedVideo) {
0413                 document.write(gallery[0][2].replace(/\..*/, videoExt))
0414         } else {
0415                 document.write(gallery[0][2])
0416         }
0417         document.write('"><img alt="download" src="download.png" /></a></div>' +
0418                 '</div></div>')
0419 
0420         // creating the loadarea for the big images
0421         document.write('<div id="loadarea" style="width:' + areaWidth +
0422                 'px; min-height:' + areaHeight + 'px;">' +
0423                 '<img id="fsImg" src="' + gallery[0][0] + '" onclick=showImageViewer(-1) />')
0424         document.write('<div class="filename" id="filename"><b>' + gallery[0][2] + '</b></div>')
0425         document.write('<div class="keywords" id="keywords">' + gallery[0][5] +
0426                         '</div>')
0427         document.write('</div>') // loadarea
0428         document.write('</div>') // imagearea
0429 
0430         document.getElementById("thumb-div-0").className = "thumb-div-selected"
0431 
0432         image=0
0433         setSize()
0434 
0435         document.body.height = '100%'
0436 }
0437 
0438 // Show image either on loadarea or ImageViewer
0439 function showImage(img)
0440 {
0441         if (gallery[img]) {
0442                 if (!viewer) {
0443                         document.getElementById("fsImg").src = gallery[img][0]
0444                         document.getElementById("keywords").innerHTML = gallery[img][5]
0445                         document.getElementById("filename").innerHTML = '<b>' + gallery[img][2] + '</b>'
0446                         document.getElementById("thumb-div-" + img).className = "thumb-div-selected"
0447                         document.getElementById("thumb-div-" + image).className = "thumb-div"
0448                         image = img
0449                 } else {
0450                         var mimetype = gallery[img][3].split('/', 2)
0451                         if (mimetype[0] == "video") {
0452                                 if (browserVideo) {
0453                                         document.getElementById("fullVideo").style.display="block"
0454                                         document.getElementById("dl").style.display="block"
0455                                         document.getElementById("fullImg").style.display="none"
0456                                         document.getElementById("fullImgD").style.display="none"
0457                                         if (generatedVideo) {
0458                                                 document.getElementById("videoDL").href = gallery[img][2].replace(/\..*/, videoExt)
0459                                                 document.getElementById("fullVideo").setAttribute("src", gallery[img][2].replace(/\..*/, videoExt))
0460                                         } else {
0461                                                 document.getElementById("videoDL").href = gallery[img][2]
0462                                                 document.getElementById("fullVideo").setAttribute("src", gallery[img][2])
0463                                         }
0464 
0465                                         document.getElementById("fullVideo").load()
0466                                         document.getElementById("fullVidD").innerHTML = '<i>' + gallery[img][2] + '</i> &nbsp;' + gallery[img][5]
0467                                         document.getElementById("fullVidD").style.display="block"
0468 
0469                                         if (ss) {
0470                                                 clearTimeout(timer)
0471                                         }
0472                                         document.getElementById("fullVideo").play()
0473                                         videoPlaying = 1
0474                                 }
0475                         } else {
0476                                 if (browserVideo) {
0477                                         document.getElementById("fullVideo").style.display="none"
0478                                         document.getElementById("dl").style.display="none"
0479                                         document.getElementById("fullVidD").style.display="none"
0480                                 }
0481                                 document.getElementById("fullImg").src = gallery[img][2]
0482                                 document.getElementById("fullImgD").innerHTML = '<i>' + gallery[img][2] + '</i> &nbsp;' + gallery[img][5]
0483                                 document.getElementById("fullImg").style.display="block"
0484                                 document.getElementById("fullImgD").style.display="block"
0485                         }
0486                         viewerSize()
0487                 }
0488                 viewerImage=img
0489         }
0490 }
0491 
0492 function videoEnd()
0493 {
0494         videoPlaying = 0
0495         if (ss) {
0496                 nextImage()
0497         }
0498 }
0499 
0500 // Resize the ImageViewer to match each image
0501 function viewerSize()
0502 {
0503         var mimetype = gallery[viewerImage][3].split('/', 2)
0504         if (mimetype[0] == "video") {
0505                 document.getElementById("fullarea").style.width = width + 'px'
0506         } else  {
0507                 document.getElementById("fullarea").style.width =
0508                         document.getElementById("fullImg").offsetWidth ?
0509                         document.getElementById("fullImg").offsetWidth + 'px' :
0510                         document.getElementById("fullImg").width + 'px'
0511         }
0512 }
0513 
0514 function viewerVideoSize()
0515 {
0516         document.getElementById("fullarea").style.width = videoWidth + 'px'
0517 
0518 }
0519 
0520 // Display ImageViewer
0521 function showImageViewer(img)
0522 {
0523         var mimetype
0524         if (img == -1) {
0525                 mimetype = gallery[image][3].split('/', 2)
0526         } else {
0527                 mimetype = gallery[img][3].split('/', 2)
0528         }
0529         if (mimetype[0] == "video") {
0530                 if (browserVideo) {
0531                         document.getElementById("fullVideo").style.display="block"
0532                         document.getElementById("dl").style.display="block"
0533                         document.getElementById("fullImg").style.display="none"
0534                         document.getElementById("fullImgD").style.display="none"
0535         
0536                         if (img == -1) {
0537                                 if (generatedVideo) {
0538                                         document.getElementById("fullVideo").setAttribute("src", gallery[image][2].replace(/\..*/, videoExt))
0539                                         document.getElementById("videoDL").href = gallery[image][2].replace(/\..*/, videoExt)
0540                                 } else {
0541                                         document.getElementById("fullVideo").setAttribute("src", gallery[image][2])
0542                                         document.getElementById("videoDL").href = gallery[image][2]
0543                                 }
0544                                 document.getElementById("fullVidD").innerHTML = '<i>' + gallery[image][2] + '</i> &nbsp;' + gallery[image][5]
0545                         } else {
0546                                 if (generatedVideo) {
0547                                         document.getElementById("fullVideo").setAttribute("src", gallery[img][2].replace(/\..*/, videoExt))
0548                                         document.getElementById("videoDL").href = gallery[img][2].replace(/\..*/, videoExt)
0549                                 } else {
0550                                         document.getElementById("fullVideo").setAttribute("src", gallery[img][2])
0551                                         document.getElementById("videoDL").href = gallery[img][2]
0552                                 }
0553                                 document.getElementById("fullVidD").innerHTML = '<i>' + gallery[image][2] + '</i> &nbsp;' + gallery[image][5]
0554                         }
0555                         document.getElementById("fullVideo").load()
0556                         document.getElementById("fullVidD").style.display="block"
0557                         document.getElementById("fullVideo").play()
0558                         videoPlaying = 1
0559                 } else {
0560                         if (generatedVideo) {
0561                                 document.location = gallery[img][2].replace(/\..*/, videoExt)
0562                         } else {
0563                                 document.location = gallery[img][2]
0564                         }
0565                         return
0566                 }
0567         } else {
0568                 if (browserVideo) {
0569                         document.getElementById("fullVideo").style.display="none"
0570                         document.getElementById("fullVidD").style.display="none"
0571                         document.getElementById("dl").style.display="none"
0572                 }
0573 
0574                 if (img == -1) {
0575                         document.getElementById("fullImg").src = gallery[image][2]
0576                         document.getElementById("fullImgD").innerHTML = '<i>' + gallery[image][2] + '</i> &nbsp;' + gallery[image][5]
0577                 } else {
0578                         document.getElementById("fullImg").src = gallery[img][2]
0579                         document.getElementById("fullImgD").innerHTML = '<i>' + gallery[img][2] + '</i> &nbsp;' + gallery[img][5]
0580                 }
0581                 document.getElementById("fullImg").style.display="block"
0582                 document.getElementById("fullImgD").style.display="block"
0583         }
0584 
0585         document.getElementById("fullarea").style.display="block"
0586         document.getElementById("opa").style.display="block"
0587         document.getElementById("pad").style.display="block"
0588         if (!ss) {
0589                 document.getElementById("navi").style.display="block"
0590         }
0591         viewer=1
0592 }
0593 
0594 // Hide ImageViewer
0595 function hideImageViewer()
0596 {
0597         document.getElementById("fullarea").style.display="none"
0598         document.getElementById("opa").style.display="none"
0599         document.getElementById("pad").style.display="none"
0600         document.getElementById("dl").style.display="none"
0601         document.getElementById("navi").style.display="none"
0602         if (videoPlaying) {
0603                 document.getElementById("fullVideo").pause()
0604         }
0605         if (ss) {
0606                 clearTimeout(timer)
0607                 ss=0
0608                 pause=0
0609                 document.getElementById("slideSpeed").style.display = "none"
0610         }
0611         viewer=0
0612 }
0613 
0614 // Set timer for showing next image on slideShow
0615 // This function is called from the HTML page!
0616 function slideShow()
0617 {
0618         if (!ss) {
0619                 ss = 1
0620                 showImageViewer(viewerImage)
0621         timer = setTimeout(nextImage,speed)
0622 
0623                 // SlideShow speed config
0624                 document.getElementById("slideSpeed").style.display = "block"
0625         }
0626 }
0627 
0628 function changeSpeed(change)
0629 {
0630         if (change) {
0631                 if (speed < 10000) {
0632                         speed += 500
0633                 }
0634         } else {
0635                 if (speed >= 1000) {
0636                         speed -= 500
0637                 }
0638         }
0639         document.getElementById("currentSpeed").innerHTML = speed / 1000 + 's'
0640 }
0641 
0642 // Setting help text when JavaScript is supported
0643 function helpIndex()
0644 {
0645         if ( typeof( window.innerWidth ) == 'number' ) {
0646                 document.getElementById('help-span').innerHTML = 'Move mouse over the thumbnail if you want to see it enlarged, full image by clicking the thumbnail or preview image. Scroll through images with left and right keys in either mode.'
0647                 document.getElementById('slide-help').innerHTML = 'Slideshow'
0648         } else {
0649                 document.getElementById('help').innerHTML = ''
0650         }
0651 }
0652 
0653 // Resizing key elements to reflect new window size
0654 function setSize()
0655 {
0656         var thumbPad
0657         var thumbWidth
0658 
0659         // Resizing thumbnail are to match new width
0660         // Repositioning image area to match new width
0661         if ( browser === 0 ) {
0662                 thumbPad = 50
0663                 thumbWidth = thumbsWidth(thumbPad)
0664                 // FF et. al
0665                 if (!document.getElementById('thumbnails')) {
0666                         return
0667                 }
0668                 document.getElementById('thumbnails').style.width =
0669                         (thumbWidth + 24) + 'px'
0670                 document.getElementById('thumbnails').style.height =
0671                         thumbsHeight(width + 45) + 'px'
0672                 document.getElementById("fsImg").style.paddingLeft =
0673                         ( thumbWidth + 28 ) + 'px'
0674                 document.getElementById("keywords").style.paddingLeft =
0675                         thumbWidth + 'px'
0676                 document.getElementById("filename").style.paddingLeft =
0677                         thumbWidth + 'px'
0678                 document.getElementById("loadarea").style.width =
0679                         windowWidth(40) + 'px'
0680                 document.getElementById('loadarea').style.minHeight =
0681                         thumbsHeight(width + 45) + 'px'
0682                 document.getElementById("navi").style.paddingLeft =
0683                         parseInt(windowWidth(0) / 2, 10) - 22  + 'px'
0684         } else {
0685                 thumbPad = 50
0686                 thumbWidth = thumbsWidth(thumbPad)
0687                 if (!document.getElementById('thumbnails')) {
0688                         return
0689                 }
0690                 document.getElementById('thumbnails').style.width =
0691                         (thumbWidth + 38) + 'px'
0692                 document.getElementById('thumbnails').style.height =
0693                         thumbsHeight(width + 45) + 'px'
0694                 document.getElementById("loadarea").style.paddingLeft =
0695                         (thumbWidth + 20) + 'px'
0696                 document.getElementById("loadarea").style.width =
0697                         windowWidth(thumbWidth + 20) + 'px'
0698                 document.getElementById('loadarea').style.height =
0699                         thumbsHeight(width + 45) + 'px'
0700                 document.getElementById('loadarea').style.minHeight =
0701                         thumbsHeight(width + 45) + 'px'
0702                 document.getElementById("navi").style.paddingLeft =
0703                         parseInt(windowWidth(0) / 2, 10) - 22  + 'px'
0704         }
0705 }
0706 
0707 // Setting timer to change width...hack to prevent resize loops
0708 function widthTimer()
0709 {
0710     setTimeout(setSize,1)
0711 }
0712 
0713 // vi:noexpandtab:tabstop=4 shiftwidth=4: