X-Git-Url: https://git.nubati.net/cgi-bin/gitweb.cgi?p=phpfspot.git;a=blobdiff_plain;f=phpfspot.js;h=a2c848e5715bf5faf254eb39ceeab348d869c39c;hp=23a713055ed7ad1713aa475b92f0c508f3af8093;hb=217bca545926a2fc8989b874661fc2ecad4bbf9b;hpb=d902cdfd067b6ae1356c537b4d5605307f3ed524 diff --git a/phpfspot.js b/phpfspot.js index 23a7130..a2c848e 100644 --- a/phpfspot.js +++ b/phpfspot.js @@ -1,51 +1,592 @@ -function showImage(id) +function showImage(id, scrollup) { - content = document.getElementById("content"); - content.innerHTML = HTML_AJAX.grab('rpc.php?action=showphoto&id=' + id); + if(!document.getElementById('content')) + return; + + var 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, 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"); + credits.innerHTML = HTML_AJAX.grab(encodeURI('rpc.php?action=showcredits')); } function Tags(mode, id) { + var objTemp = new Object(); + if(mode == "add") { - // add the tag to users session - HTML_AJAX.grab('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('rpc.php?action=deltag&id=' + id); + // del tag from users session + objTemp['action'] = 'deltag'; + objTemp['id'] = id; } - else if(mode == "reset") { - HTML_AJAX.grab('rpc.php?action=resettags'); + else if(mode == "condition") { + setCheckedValue(id, id.value); + objTemp['action'] = 'tagcondition'; + objTemp['mode'] = id.value; } - - refreshAvailableTags(); - refreshSelectedTags(); -} + var retr = HTML_AJAX.post('rpc.php', objTemp); + if(retr == "ok") { + refreshAvailableTags(); + refreshSelectedTags(); + refreshPhotoIndex(); + } + else { + window.alert("Server message: "+ retr); + } + +} // Tags() function refreshAvailableTags() { // update available tags - content = document.getElementById("available_tags"); - content.innerHTML = HTML_AJAX.grab('rpc.php?action=show_available_tags'); + var avail_tags = document.getElementById('available_tags'); + avail_tags.innerHTML = "Loading..."; + avail_tags.innerHTML = HTML_AJAX.grab(encodeURI('rpc.php?action=show_available_tags')); } function refreshSelectedTags() { // update selected tags - content = document.getElementById("selected_tags"); - content.innerHTML = HTML_AJAX.grab('rpc.php?action=show_selected_tags'); + var selected_tags = document.getElementById("selected_tags"); + selected_tags.innerHTML = "Loading..."; + selected_tags.innerHTML = HTML_AJAX.grab(encodeURI('rpc.php?action=show_selected_tags')); +} + +function showPhotoIndex(begin_with, last_photo) +{ + 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() +{ + if(document.getElementById("index") != undefined || startup == 1) { + showPhotoIndex(); + startup = 0; + } +} + +function click(object) +{ + if(object.blur) + object.blur(); + +} + +// set the radio button with the given value as being checked +// do nothing if there are no radio buttons +// if the given value does not exist, all the radio buttons +// are reset to unchecked +function setCheckedValue(condition, value) { + + var count = condition.length; + if(count == undefined) { + condition.checked = (condition.value == value.toString()); + return; + } + for(var i = 0; i < count; i++) { + condition[i].checked = false; + if(condition[i].value == value.toString()) { + condition[i].checked = true; + } + } } -function showPhotoIndex() +function startSearch() { - HTML_AJAX.replace(document.getElementById("content"), 'rpc.php?action=show_photo_index'); + from_year = document.getElementById('fromyear').value; + from_month = document.getElementById('frommonth').value; + from_day = document.getElementById('fromday').value; + from = from_year +"-"+ from_month +"-"+ from_day; + to_year = document.getElementById('toyear').value; + to_month = document.getElementById('tomonth').value; + to_day = document.getElementById('today').value; + to = to_year +"-"+ to_month +"-"+ to_day; -// content = document.getElementById("content"); -// content.innerHTML = HTML_AJAX.grab('rpc.php?action=show_photo_index'); + var objTemp = new Object(); + objTemp['action'] = 'search'; + + 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) { + objTemp['from'] = from; + objTemp['to'] = to; + } + + var retr = HTML_AJAX.post('rpc.php', objTemp); + if(retr == "ok") { + refreshAvailableTags(); + refreshSelectedTags(); + showPhotoIndex(); + } + else { + window.alert("Server message: "+ retr); + } + +} // startSearch() + +function datesearch() +{ + var mode = true; + + if(document.getElementsByName('consider_date')[0].checked == true) { + mode = false; + } + + document.getElementById('fromyear').disabled = mode; + document.getElementById('frommonth').disabled = mode; + document.getElementById('fromday').disabled = mode; + document.getElementById('toyear').disabled = mode; + document.getElementById('tomonth').disabled = mode; + document.getElementById('today').disabled = mode; + +} + +function setViewMode(mode) +{ + var exprt = document.getElementById('output'); + exprt.innerHTML = "Loading..."; + exprt.innerHTML = HTML_AJAX.grab(encodeURI('rpc.php?action=get_export&mode=' + mode)); } -function showBubbleDetails(object, id, direction) +function clearSearch() { - HTML_AJAX.replace(object, 'rpc.php?action=showbubbledetails&id=' + id + '&direction=" + direction'); + 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; + datesearch(); + } } + +function AskServerWhatToDo() +{ + return HTML_AJAX.grab(encodeURI('rpc.php?action=what_to_do')); +} + +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') { + showPhotoIndex(); + } + if(whattodo == 'showpi_tags') { + refreshSelectedTags(); + showPhotoIndex(); + } + if(whattodo == 'show_photo') { + if(photo = getPhotoToShow()) { + showImage(photo); + refreshSelectedTags(); + } + } +} // init_phpfspot() + +function setBackGrdColor(item, color) +{ + if(color == 'mouseover') + item.style.backgroundColor='#c6e9ff'; + if(color == 'mouseout') + item.style.backgroundColor='#eeeeee'; + if(color == 'mouseclick') + item.style.backgroundColor='#93A8CA'; +} + +function getPhotoToShow() +{ + // update selected tags + var photo_to_show = HTML_AJAX.grab(encodeURI('rpc.php?action=get_photo_to_show')); + + // if no image needs to be shown, return false from here + if(photo_to_show == "") + return false; + + 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'); + 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; + calendar_mode = 'from'; + } + if(date_box == 'to') { + var xpos = document.getElementById('topic').offsetLeft; + var ypos = document.getElementById('topic').offsetTop; + calendar_mode = 'to'; + } + 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&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; + } +} + +function setMonth(year, month, day) +{ + var calendar = document.getElementById('calendar'); + calendar.innerHTML = "Loading..."; + calendar.innerHTML = HTML_AJAX.grab(encodeURI('rpc.php?action=get_calendar_matrix&year='+ year +'&month='+ month +'&day='+ day)); +} + +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() +{ + HTML_AJAX.grab(encodeURI('rpc.php?action=reset')); + clearSearch(); + refreshAvailableTags(); + refreshSelectedTags(); + refreshPhotoIndex(); +} + +function WSR_getElementsByClassName(oElm, strTagName, oClassNames){ + var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName); + var arrReturnElements = new Array(); + var arrRegExpClassNames = new Array(); + if(typeof oClassNames == "object"){ + for(var i=0; i