issue93, photo-index and reset-all via access key
[phpfspot.git] / phpfspot.js
index 6bc0d2c96be4857ad1c8859a6286c832f640a1fb..abf9c43fe6da3e5b94972b8206fa04aa0549d823 100644 (file)
@@ -58,7 +58,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;
    }
@@ -113,9 +113,6 @@ function startSearch()
       request = request + '&from='+ from +'&to='+ to;
    }
 
-   var sort_order = document.getElementsByName('sort_order')[0];
-   request = request + '&sort_order='+ sort_order.options[sort_order.selectedIndex].value;
-
    HTML_AJAX.grab(encodeURI(request));
 
    refreshAvailableTags();
@@ -151,6 +148,11 @@ function setViewMode(mode)
 function clearSearch()
 {
    document.getElementsByName('searchfor')[0].value = '';
+
+   if(document.getElementsByName('consider_date')[0].checked == true) {
+      document.getElementsByName('consider_date')[0].checked = false;
+      datesearch();
+   }  
 }
 
 function AskServerWhatToDo()
@@ -158,10 +160,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') {
@@ -177,7 +181,7 @@ function init_phpfspot()
          refreshSelectedTags();
       }
    }
-}
+} // init_phpfspot()
 
 function setBackGrdColor(item, color)
 {
@@ -204,6 +208,8 @@ function getPhotoToShow()
 function showCalendar(date_box, click_obj)
 {
    var calendar = document.getElementById('calendar');
+   var year = document.getElementById(date_box+'year').value;
+   var month = document.getElementById(date_box+'month').value;
    if(date_box == 'from') {
       var xpos = document.getElementById('frompic').offsetLeft;
       var ypos = document.getElementById('frompic').offsetTop;
@@ -214,16 +220,24 @@ function showCalendar(date_box, click_obj)
       var ypos = document.getElementById('topic').offsetTop;
       calendar_mode = 'to';
    }
-   calendar.style.left = xpos + 60 + 'px';
+   calendar.style.left = xpos + 100 + 'px';
    calendar.style.top = ypos + 80 + 'px';
 
    if(calendar.style.visibility == "" || calendar.style.visibility == 'hidden') {
       calendar.style.visibility = 'visible';
       calendar.innerHTML = "Loading...";
-      calendar.innerHTML = HTML_AJAX.grab(encodeURI('rpc.php?action=get_calendar_matrix'));
+      calendar.innerHTML = HTML_AJAX.grab(encodeURI('rpc.php?action=get_calendar_matrix&year=' + year + '&month=' + month));
       calendar_shown = 1;
    }
    else {
+      hideCalendar();
+   }
+}
+
+function hideCalendar()
+{
+   var calendar = document.getElementById('calendar');
+   if(calendar.style.visibility != 'hidden') {
       calendar.style.visibility = 'hidden';
       calendar_shown = 0;
    }
@@ -241,6 +255,7 @@ function setCalendarDate(year, month, day)
    document.getElementById(calendar_mode+'year').value = year;
    document.getElementById(calendar_mode+'month').value = month;
    document.getElementById(calendar_mode+'day').value = day;
+   hideCalendar();
 }
 
 function resetAll()
@@ -302,9 +317,17 @@ function preloadPhotos(lbImg) {
 
 function startSlideShow()
 {
-   HTML_AJAX.grab(encodeURI('rpc.php?action=reset_slideshow'));
-   nextSlide();
-   setInterval("nextSlide()", 3000);
+   if(!sliding) {
+      HTML_AJAX.grab(encodeURI('rpc.php?action=reset_slideshow'));
+      nextSlide();
+      sliding = setInterval("nextSlide()", sliding_time*1000);
+      document.getElementById('stop_ico').src = "resources/32_stop.png";
+   }
+   else {
+      clearInterval(sliding);
+      sliding = 0;
+      document.getElementById('stop_ico').src = "resources/32_play.png";
+   }
 }
 
 function nextSlide()
@@ -313,6 +336,26 @@ function nextSlide()
    document.getElementById('slide_img').src = next_img;
 }
 
+function prevSlide()
+{
+   prev_img = HTML_AJAX.grab(encodeURI('rpc.php?action=get_prev_slideshow_img'));
+   document.getElementById('slide_img').src = prev_img;
+}
+
+function pauseSlideShow()
+{
+   if(!sliding_paused) {
+      sliding_paused = 1;
+      clearInterval(sliding);
+      document.getElementById('pause_ico').src = "resources/32_play.png";
+   }
+   else {
+      sliding_paused = 0;
+      sliding = setInterval("nextSlide()", sliding_time*1000);
+      document.getElementById('pause_ico').src = "resources/32_pause.png";
+   }
+} 
+
 function startAutoBrowse()
 {
    if(!autobrowse) {
@@ -335,7 +378,90 @@ function autoBrowse()
    }
 }  
 
+function initSlider()
+{
+   var sliderEl = document.getElementById ? document.getElementById("slider-1") : null;
+   var inputEl = document.forms[0]["slider-input-1"];
+   var s = new Slider(sliderEl, inputEl);
+   s.setMinimum(1);
+   s.setMaximum(10);
+   s.setValue(sliding_time);
+   document.getElementById("current_slide_time").innerHTML = sliding_time + "s Interval";
+   s.onchange = function () {
+      sliding_time = s.getValue();
+      document.getElementById("current_slide_time").innerHTML = sliding_time + "s Interval";
+      if(!sliding_paused && sliding) {
+         clearInterval(sliding);
+         sliding = setInterval("nextSlide()", sliding_time*1000);
+      }
+   };
+   window.onresize = function () {
+      s.recalculate();
+   };
+
+}
+
+function update_sort_order(obj)
+{  
+   var objTemp = new Object();
+   objTemp['value'] = obj.options[obj.selectedIndex].value;
+
+   var retr = HTML_AJAX.post('rpc.php?action=update_sort_order', objTemp);
+
+   if(retr == "ok") {
+      showPhotoIndex();
+   }
+   else {
+      window.alert(retr);
+   }
+
+} // 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 = '';
 var autobrowse = 0;
+var sliding = 0;
+var sliding_paused = 0;
+var sliding_time = 3;