function showImage(id, scrollup)
{
- content = document.getElementById("content");
+ if(!document.getElementById('content'))
+ return;
+
+ var content = document.getElementById('content');
/* blank the screen */
if(scrollup != undefined) {
}
/* 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)
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");
refreshPhotoIndex();
}
else {
- window.alert(retr);
+ window.alert("Server message: "+ retr);
}
} // Tags()
showPhotoIndex();
}
else {
- window.alert(retr);
+ window.alert("Server message: "+ retr);
}
} // startSearch()
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;
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) {
function hidePhotoDetails(mode)
{
+ var photo_details;
+
if(photo_details = document.getElementById('photo_details')) {
if(mode == 'true') {
photo_details.style.visibility = 'hidden';
}
else {
photo_details.style.visibility = 'visible';
- photo_details.style.display = 'inline';
+ photo_details.style.display = '';
}
}
} // hidePhotoDetails()
}
-function preloadPhotos(lbImg) {
-
- var d=document;
- if(d.images)
- if(!d.photos)
- d.photos=new Array();
+function preloadPhotos(image_url) {
- var i, j=d.photos.length;
+ var i;
+ var timeout = 1000;
+ var waiting = 100;
+ var counting;
lbImg=WSR_getElementsByClassName(document,"img","thumb");
for(i=0;i<lbImg.length;i++){
- d.photos[j]=new Image;
- d.photos[j].src=lbImg[i].src;
- j++;
+ lbImg[i].src=image_url[i];
+ // to not bomb the server with requests, give the page some time
+ // to load the images one by one. if a image exceeds the timeout,
+ // the next image will be loaded.
+ if(lbImg[i].complete != undefined && lbImg[i].complete != true) {
+ counting = 0;
+ while(lbImg[i].complete != true && counting < timeout) {
+ window.setTimeout("noop()", waiting);
+ counting+=waiting;
+ }
+ }
}
}
+/* a function that does nothing */
+function noop() {}
+
function startSlideShow()
{
if(!sliding) {
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;
}
}
/* we have reached the last photo */
else {
- if(document.getElementById('autobrowse_ico'))
- document.getElementById('autobrowse_ico').src = "resources/32_play.png";
+ if(ab_ico = document.getElementById('autobrowse_ico'))
+ ab_ico.src = "resources/32_play.png";
clearInterval(autobrowse);
}
showPhotoIndex();
}
else {
- window.alert(retr);
+ window.alert("Server message: "+ retr);
}
} // update_sort_order()