X-Git-Url: https://git.nubati.net/cgi-bin/gitweb.cgi?p=phpfspot.git;a=blobdiff_plain;f=phpfspot.js;h=89eacbadfcda5c3672704a4262628fbe1e00c0c0;hp=d8290ad7d1047f09b9dd1e18a43765fb3a36a4af;hb=144f16a71f7289bb891c52995061aee21e3e08f9;hpb=02bff4b976056db5ad5ccb3b44164b776d2ed72c diff --git a/phpfspot.js b/phpfspot.js index d8290ad..89eacba 100644 --- a/phpfspot.js +++ b/phpfspot.js @@ -1,6 +1,9 @@ function showImage(id, scrollup) { - content = document.getElementById("content"); + if(!document.getElementById('content')) + return; + + var content = document.getElementById('content'); /* blank the screen */ if(scrollup != undefined) { @@ -15,9 +18,9 @@ function showImage(id, scrollup) } /* delete some global vars */ - delete(origHeight); - delete(origWidth); - delete(photo_details_pos); + delete(origHeight); origHeight = undefined; + delete(origWidth); origWidth = undefined; + delete(photo_details_pos); photo_details_pos = undefined; } function moveToThumb(thumb_id) @@ -26,11 +29,24 @@ function moveToThumb(thumb_id) return; if(thumbimg = document.getElementById('thumbimg' + thumb_id)) { - window.scrollTo(0, thumbimg.offsetTop-100); + window.scrollTo(0, findPos(thumbimg,'top')-100); } } // moveToThumb() +function findPos(obj, direction) { + var cur = 0; + if (obj.offsetParent) { + do { + if(direction == 'left') + cur += obj.offsetLeft; + if(direction == 'top') + cur += obj.offsetTop; + } while (obj = obj.offsetParent); + } + return [cur]; +} + function showCredits() { var credits = document.getElementById("content"); @@ -64,7 +80,7 @@ function Tags(mode, id) refreshPhotoIndex(); } else { - window.alert(retr); + window.alert("Server message: "+ retr); } } // Tags() @@ -164,7 +180,7 @@ function startSearch() showPhotoIndex(); } else { - window.alert(retr); + window.alert("Server message: "+ retr); } } // startSearch() @@ -226,7 +242,7 @@ function init_phpfspot(mode) } if(whattodo == 'show_photo') { if(photo = getPhotoToShow()) { - showImage(photo) + showImage(photo); refreshSelectedTags(); } } @@ -256,10 +272,20 @@ function getPhotoToShow() function zoom(mod) { + var photo; + if(mod == undefined) return; - if(photo = document.getElementById('photo')) { + /* internet explorer */ + if(document.images['photo'].width) + photo = document.images['photo']; + + /* all others */ + if(photo == undefined && document.getElementById('photo').width) + photo = document.getElementById('photo'); + + if(photo != undefined) { if(origWidth == undefined) origWidth = photo.width; @@ -273,7 +299,7 @@ function zoom(mod) photo.height = new_h; if(photo_details_pos == undefined) { - photo_details_pos = document.getElementById('photo_details').offsetLeft; + photo_details_pos = findPos(document.getElementById('photo_details'),'left'); } if((photo.offsetLeft + new_w) >= photo_details_pos-20) { @@ -294,6 +320,8 @@ function zoom(mod) function hidePhotoDetails(mode) { + var photo_details; + if(photo_details = document.getElementById('photo_details')) { if(mode == 'true') { photo_details.style.visibility = 'hidden'; @@ -301,7 +329,7 @@ function hidePhotoDetails(mode) } else { photo_details.style.visibility = 'visible'; - photo_details.style.display = 'inline'; + photo_details.style.display = ''; } } } // hidePhotoDetails() @@ -433,13 +461,13 @@ function startSlideShow() function nextSlide() { - next_img = HTML_AJAX.grab(encodeURI('rpc.php?action=get_next_slideshow_img')); + var next_img = HTML_AJAX.grab(encodeURI('rpc.php?action=get_next_slideshow_img')); document.getElementById('slide_img').src = next_img; } function prevSlide() { - prev_img = HTML_AJAX.grab(encodeURI('rpc.php?action=get_prev_slideshow_img')); + var prev_img = HTML_AJAX.grab(encodeURI('rpc.php?action=get_prev_slideshow_img')); document.getElementById('slide_img').src = prev_img; } @@ -469,7 +497,8 @@ function startAutoBrowse() document.getElementById('autobrowse_ico').src = "resources/32_play.png"; } -} +} // startAutoBrowser() + function autoBrowse() { if(document.getElementById('next_link')) { @@ -477,7 +506,14 @@ function autoBrowse() window.location.href = next_link; document.getElementById('autobrowse_ico').src = "resources/32_pause.png"; } -} + /* we have reached the last photo */ + else { + if(ab_ico = document.getElementById('autobrowse_ico')) + ab_ico.src = "resources/32_play.png"; + clearInterval(autobrowse); + } + +} // autoBrowse() function initSlider() { @@ -513,7 +549,7 @@ function update_sort_order(obj) showPhotoIndex(); } else { - window.alert(retr); + window.alert("Server message: "+ retr); } } // update_sort_order()