new icons for original-image and photo-index
[phpfspot.git] / phpfspot.js
index 4bd321f4ebc782037ec434fc2bf6e4ad1c662182..d8290ad7d1047f09b9dd1e18a43765fb3a36a4af 100644 (file)
@@ -1,9 +1,36 @@
-function showImage(id)
+function showImage(id, scrollup)
 {
-   var image_div = document.getElementById("content");
-   image_div.innerHTML = HTML_AJAX.grab(encodeURI('rpc.php?action=showphoto&id=' + id));
+   content = document.getElementById("content");
+
+   /* blank the screen */
+   if(scrollup != undefined) {
+      content.innerHTML = "";
+   }
+
+   HTML_AJAX.replace(content, encodeURI('rpc.php?action=showphoto&id=' + id));
+
+   /* scroll the window up to the top */
+   if(scrollup != undefined) {
+      window.scrollTo(0,0);
+   }
+
+   /* delete some global vars */
+   delete(origHeight);
+   delete(origWidth);
+   delete(photo_details_pos);
 }
 
+function moveToThumb(thumb_id)
+{
+   if(thumb_id == undefined)
+      return;
+
+   if(thumbimg = document.getElementById('thumbimg' + thumb_id)) {
+      window.scrollTo(0, thumbimg.offsetTop-100);
+   }
+
+} // moveToThumb()
+
 function showCredits()
 {
    var credits = document.getElementById("content");
@@ -12,24 +39,35 @@ function showCredits()
 
 function Tags(mode, id)
 {
+   var objTemp = new Object();
+
    if(mode == "add") {
-      // add the tag to users session
-      HTML_AJAX.grab(encodeURI('rpc.php?action=addtag&id=' + id));
+      // add tag to users session
+      objTemp['action'] = 'addtag';
+      objTemp['id'] = id;
    }
    else if(mode == "del") {
-      // del the tag from users session
-      HTML_AJAX.grab(encodeURI('rpc.php?action=deltag&id=' + id));
+      // del tag from users session
+      objTemp['action'] = 'deltag';
+      objTemp['id'] = id;
    }
    else if(mode == "condition") {
       setCheckedValue(id, id.value);
-      HTML_AJAX.grab(encodeURI('rpc.php?action=tagcondition&mode=' + id.value));
+      objTemp['action'] = 'tagcondition';
+      objTemp['mode'] = id.value;
    }
 
-   refreshAvailableTags();
-   refreshSelectedTags();
-   refreshPhotoIndex();
+   var retr = HTML_AJAX.post('rpc.php', objTemp);
+   if(retr == "ok") {
+      refreshAvailableTags();
+      refreshSelectedTags();
+      refreshPhotoIndex();
+   }
+   else {
+      window.alert(retr);
+   }
 
-}
+} // Tags()
 
 function refreshAvailableTags()
 {
@@ -47,13 +85,17 @@ function refreshSelectedTags()
    selected_tags.innerHTML = HTML_AJAX.grab(encodeURI('rpc.php?action=show_selected_tags'));
 }
 
-function showPhotoIndex(begin_with)
+function showPhotoIndex(begin_with, last_photo)
 {
-   if(begin_with == undefined)
-      HTML_AJAX.replace(document.getElementById("content"), encodeURI('rpc.php?action=show_photo_index'));
-   else
-      HTML_AJAX.replace(document.getElementById("content"), encodeURI('rpc.php?action=show_photo_index&begin_with=' + begin_with));
-}
+   var url = "rpc.php?action=show_photo_index";
+   if(begin_with != undefined)
+      url = url + '&begin_with=' + begin_with;
+   if(last_photo != undefined)
+      url = url + '&last_photo=' + last_photo;
+
+   HTML_AJAX.replace(document.getElementById("content"), encodeURI(url));
+
+} // showPhotoIndex()
 
 // if photo index is currently shown, refresh it
 function refreshPhotoIndex()
@@ -92,8 +134,6 @@ function setCheckedValue(condition, value) {
 
 function startSearch()
 {
-   var searchfor = document.getElementsByName('searchfor')[0].value
-
    from_year = document.getElementById('fromyear').value;
    from_month = document.getElementById('frommonth').value;
    from_day = document.getElementById('fromday').value;
@@ -103,23 +143,31 @@ function startSearch()
    to_day = document.getElementById('today').value;
    to = to_year +"-"+ to_month +"-"+ to_day;
 
-   var request = 'rpc.php?action=search';
+   var objTemp = new Object();
+   objTemp['action'] = 'search';
 
-   if(searchfor != "") {
-      request = request + '&for=' + searchfor;
+   if(document.getElementsByName('searchfor_tag')[0].value != "") {
+      objTemp['for_tag'] = document.getElementsByName('searchfor_tag')[0].value;
+   }
+   if(document.getElementsByName('searchfor_name')[0].value != "") {
+      objTemp['for_name'] = document.getElementsByName('searchfor_name')[0].value;
    }
-   
    if(document.getElementsByName('consider_date')[0].checked == true) {
-      request = request + '&from='+ from +'&to='+ to;
+      objTemp['from'] = from;
+      objTemp['to'] = to;
    }
 
-   HTML_AJAX.grab(encodeURI(request));
+   var retr = HTML_AJAX.post('rpc.php', objTemp);
+   if(retr == "ok") {
+      refreshAvailableTags();
+      refreshSelectedTags();
+      showPhotoIndex();
+   }
+   else {
+      window.alert(retr);
+   }
 
-   refreshAvailableTags();
-   refreshSelectedTags();
-   showPhotoIndex();
-   
-}
+} // startSearch()
 
 function datesearch()
 {
@@ -147,7 +195,8 @@ function setViewMode(mode)
 
 function clearSearch()
 {
-   document.getElementsByName('searchfor')[0].value = '';
+   document.getElementsByName('searchfor_tag')[0].value = '';
+   document.getElementsByName('searchfor_name')[0].value = '';
 
    if(document.getElementsByName('consider_date')[0].checked == true) {
       document.getElementsByName('consider_date')[0].checked = false;
@@ -205,6 +254,58 @@ function getPhotoToShow()
    return photo_to_show;
 }
 
+function zoom(mod)
+{
+   if(mod == undefined)
+      return;
+
+   if(photo = document.getElementById('photo')) {
+
+      if(origWidth == undefined)
+         origWidth = photo.width;
+      if(origHeight == undefined)
+         origHeight = photo.height;
+
+      if(mod != 0) {
+         new_w = photo.width * (1 + mod/100);
+         new_h = photo.height * (1 + mod/100);
+         photo.width = new_w;
+         photo.height = new_h;
+
+         if(photo_details_pos == undefined) {
+            photo_details_pos = document.getElementById('photo_details').offsetLeft;
+         }
+
+         if((photo.offsetLeft + new_w) >= photo_details_pos-20) {
+            hidePhotoDetails('true');
+         }
+         else {
+            hidePhotoDetails('false');
+         }
+      }
+      else {
+         photo.width = origWidth;
+         photo.height = origHeight;
+         hidePhotoDetails('false');
+      }
+   }
+
+} // zoom()
+
+function hidePhotoDetails(mode)
+{
+   if(photo_details = document.getElementById('photo_details')) {
+      if(mode == 'true') {
+         photo_details.style.visibility = 'hidden';
+         photo_details.style.display = 'none';
+      }
+      else {
+         photo_details.style.visibility = 'visible';
+         photo_details.style.display = 'inline';
+      }
+   }
+} // hidePhotoDetails()
+
 function showCalendar(date_box, click_obj)
 {
    var calendar = document.getElementById('calendar');
@@ -442,6 +543,14 @@ function keyDown(e) {
          }
          return;
       }
+      if(key == 73 && evt.altKey && evt.ctrlKey) /* ctrl+alt+i */ {
+         showPhotoIndex();
+         return;
+      }
+      if(key == 82 && evt.altKey && evt.ctrlKey) /* ctrl+alt+r */ {
+         resetAll();
+         return;
+      }
    }
 }
 
@@ -457,3 +566,6 @@ var autobrowse = 0;
 var sliding = 0;
 var sliding_paused = 0;
 var sliding_time = 3;
+var origHeight;
+var origWidth;
+var photo_details_pos;