issue103, ensure showPhotoIndex() returns to the right page
[phpfspot.git] / phpfspot.js
index b196a68f846dbe3222b3309ac46f4066735daedb..21a027af970748a4c54afdab1b561274b58d8e31 100644 (file)
@@ -1,7 +1,11 @@
-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));
+   HTML_AJAX.replace(document.getElementById("content"), encodeURI('rpc.php?action=showphoto&id=' + id));
+
+   /* scroll the window up to the top */
+   if(scrollup != undefined) {
+      window.scrollTo(0,0);
+   }
 }
 
 function showCredits()
@@ -12,24 +16,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()
 {
@@ -58,7 +73,7 @@ function showPhotoIndex(begin_with)
 // if photo index is currently shown, refresh it
 function refreshPhotoIndex()
 {
-   if(document.getElementById("matrix") != undefined || startup == 1) {
+   if(document.getElementById("index") != undefined || startup == 1) {
       showPhotoIndex();
       startup = 0;
    }
@@ -92,8 +107,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 +116,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 +168,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;
@@ -160,10 +182,12 @@ function AskServerWhatToDo()
    return HTML_AJAX.grab(encodeURI('rpc.php?action=what_to_do'));
 }
 
-function init_phpfspot()
+function init_phpfspot(mode)
 {
+   /* always load list of available tags */
    refreshAvailableTags();
 
+   /* ask the server what we are currently displaying */
    whattodo = AskServerWhatToDo();
 
    if(whattodo == 'showpi' || whattodo == 'showpi_date') {
@@ -179,7 +203,7 @@ function init_phpfspot()
          refreshSelectedTags();
       }
    }
-}
+} // init_phpfspot()
 
 function setBackGrdColor(item, color)
 {
@@ -416,6 +440,46 @@ function update_sort_order(obj)
 } // update_sort_order()
 
 
+function keyDown(e) {
+   var evt = (e) ? e:(window.event) ? window.event:null;
+
+   if(evt) {
+      var key = (evt.charCode) ? evt.charCode :
+         ((evt.keyCode) ? evt.keyCode : ((evt.which) ? evt.which : 0));
+
+
+      if(key == 37) /* left curosr */ {
+         if(document.getElementById('prev_link')) {
+            var prev_link = document.getElementById('prev_link').href;
+            window.location.href = prev_link;
+         }
+         return;
+      }
+      if(key == 38) /* up cursor */ {
+      }
+      if(key == 39) /* right curosr */ {
+         if(document.getElementById('next_link')) {
+            var next_link = document.getElementById('next_link').href;
+            window.location.href = next_link;
+         }
+         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;
+      }
+   }
+}
+
+document.onkeydown=keyDown;
+if(document.layers) {
+   document.captureEvents(Event.KEYDOWN);
+}
+
 var startup = 1;
 var calendar_shown = 0;
 var calendar_mode = '';