explain why alert-boxes appear
[phpfspot.git] / phpfspot.js
index d8290ad7d1047f09b9dd1e18a43765fb3a36a4af..a2c848e5715bf5faf254eb39ceeab348d869c39c 100644 (file)
@@ -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) {
@@ -26,11 +29,21 @@ function moveToThumb(thumb_id)
       return;
 
    if(thumbimg = document.getElementById('thumbimg' + thumb_id)) {
-      window.scrollTo(0, thumbimg.offsetTop-100);
+      window.scrollTo(0, findPos(thumbimg)-100);
    }
 
 } // moveToThumb()
 
+function findPos(obj) {
+   var curtop = 0;
+   if (obj.offsetParent) {
+      do {
+         curtop += obj.offsetTop;
+      } while (obj = obj.offsetParent);
+   }
+   return [curtop];
+}
+
 function showCredits()
 {
    var credits = document.getElementById("content");
@@ -64,7 +77,7 @@ function Tags(mode, id)
       refreshPhotoIndex();
    }
    else {
-      window.alert(retr);
+      window.alert("Server message: "+ retr);
    }
 
 } // Tags()
@@ -164,7 +177,7 @@ function startSearch()
       showPhotoIndex();
    }
    else {
-      window.alert(retr);
+      window.alert("Server message: "+ retr);
    }
 
 } // startSearch()
@@ -226,7 +239,7 @@ function init_phpfspot(mode)
    }
    if(whattodo == 'show_photo') {
       if(photo = getPhotoToShow()) {
-         showImage(photo)
+         showImage(photo);
          refreshSelectedTags();
       }
    }
@@ -433,13 +446,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 +482,8 @@ function startAutoBrowse()
       document.getElementById('autobrowse_ico').src = "resources/32_play.png";
    }
 
-}
+} // startAutoBrowser()
+
 function autoBrowse()
 {
    if(document.getElementById('next_link')) {
@@ -477,7 +491,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 +534,7 @@ function update_sort_order(obj)
       showPhotoIndex();
    }
    else {
-      window.alert(retr);
+      window.alert("Server message: "+ retr);
    }
 
 } // update_sort_order()