/* * Copyright (C) 2006 - 2014 Martin Thelian, Alexander Schier, Michael Hamann, * Michael Peter Christen, Franz Brausse, fuchsi * * This file is part of YaCy. * * YaCy is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 2 of the License, or * (at your option) any later version. * * YaCy is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with YaCy. If not, see . */ function addHover() { if (document.all&&document.getElementById) { var divs = document.getElementsByTagName("div"); for (i=0; i 1){ resortCachedElement.style.visibility = "visible"; } } if (totalcountIntValue == 0) { return; } var elementToUpdate = document.getElementById("offset"); if (offsetIntValue >= 0 && elementToUpdate != null) { elementToUpdate.innerHTML = offset; } elementToUpdate = document.getElementById("startRecord"); if (offsetIntValue >= 0 && elementToUpdate != null) { elementToUpdate.setAttribute('value', offsetIntValue - 1); } elementToUpdate = document.getElementById("itemscount"); if (itemscountIntValue >= 0 && elementToUpdate != null) { elementToUpdate.firstChild.nodeValue = itemscount; } elementToUpdate = document.getElementById("totalcount"); if(elementToUpdate != null) { elementToUpdate.firstChild.nodeValue = totalcount; } elementToUpdate = document.getElementById("localIndexCount"); if (elementToUpdate != null) { elementToUpdate.firstChild.nodeValue = localIndexCount; } elementToUpdate = document.getElementById("remoteIndexCount"); if (elementToUpdate != null) { elementToUpdate.firstChild.nodeValue = remoteIndexCount; } elementToUpdate = document.getElementById("remotePeerCount"); if (elementToUpdate != null) { elementToUpdate.firstChild.nodeValue = remotePeerCount; } // compose page navigation var progresseBarElement = document.getElementById("progressbar"); if (progresseBarElement.getAttribute('class') != "progress-bar progress-bar-success") { var percent = 100 * (itemscountIntValue - offsetIntValue + 1) / itemsperpageIntValue; if (percent == 100) { progresseBarElement.setAttribute('style',"transition:transform 0s;-webkit-transition:-webkit-transform 0s;"); progresseBarElement.setAttribute('class',"progress-bar progress-bar-success"); window.setTimeout(fadeOutBar, 500); } else { progresseBarElement.setAttribute('aria-valuenow', percent); } progresseBarElement.setAttribute('style',"width:" + percent + "%"); } var buttonsList = document.getElementById("paginationButtons"); if (buttonsList != null && !jsResort) { renderPaginationButtons(buttonsList, offsetIntValue, itemsperpageIntValue, totalcountIntValue, navurlbase, localQuery, jsResort); } } /** * Toggle visibility on a block of tags (keywords) beyond the initial limit of tags to display. * @param {HTMLButtonElement} button the button used to expand the tags * @param {String} moreTagsId the id of the container of tags which visibility has to be toggled */ function toggleMoreTags(button, moreTagsId) { var moreTagsContainer = document.getElementById(moreTagsId); if(button != null && moreTagsContainer != null) { if(button.getAttribute("aria-expanded") == "true") { /* Additionnaly we modify the aria-expanded state for improved accessiblity */ button.setAttribute("aria-expanded", "false"); button.title = "Show all"; moreTagsContainer.className = "hidden"; } else { /* Additionnaly we modify the aria-expanded state for improved accessiblity */ button.setAttribute("aria-expanded", "true"); button.title = "Show only the first elements"; moreTagsContainer.className = ""; } } } /** * Handle embedded audio result load error. * * @param event * {ErrorEvent} the error event triggered */ function handleAudioLoadError(event) { if (event != null && event.target != null) { /* Fill the title attribute to provide some feedback about the error without need for looking at the console */ if (event.target.error != null && event.target.error.message) { event.target.title = "Cannot play (" + event.target.error.message + ")"; } else { event.target.title = "Cannot play"; } /* Apply CSS class marking error for visual feedback*/ event.target.className = "audioError"; } } /** * Handle embedded audio result 'playing' event : pauses any other currently * playing audio. * * @param event * {Event} a 'playing' event */ function handleAudioPlaying(event) { if (event != null && event.target != null) { var audioElems = document.getElementsByTagName("audio"); if(audioElems != null) { for (var i = 0; i < audioElems.length; i++) { var audioElem = audioElems[i]; if (audioElem != event.target && audioElem.pause && !audioElem.paused) { audioElem.pause(); } } } } } /** * Handle a rendering error on a result image thumbnail. * @param imgElem {HTMLImageElement} the html img element that could not be rendered */ function handleResultThumbError(imgElem) { if (imgElem.parentNode != null && imgElem.parentNode.parentNode != null && imgElem.parentNode.parentNode.className == "thumbcontainer") { /* Hide the thumbnail container */ imgElem.parentNode.parentNode.className = "thumbcontainer thumbError hidden"; var errorsInfoElem = document.getElementById("imageErrorsInfo"); if (errorsInfoElem != null && errorsInfoElem.className.indexOf("hidden") >= 0) { /* Show the image errors information block */ errorsInfoElem.className = errorsInfoElem.className.replace("hidden", ""); } var errorsCountElem = document.getElementById("imageErrorsCount"); if (errorsCountElem != null) { /* Increase the count of thumbnails rendering errors */ errorsCountElem.firstChild.nodeValue = parseInt(errorsCountElem.firstChild.nodeValue) + 1; } } } /** * Show result thumbnails that were hidden because a rendering error occurred. */ function showErrThumbnails() { var thumbs = document.getElementsByClassName("thumbError hidden"); var length = thumbs.length; for (var i = 0; i < length && thumbs.length > 0; i++) { thumbs[0].className = thumbs[0].className.replace("hidden", ""); // after that the element is removed from the thumbs live collection } var showBtn = document.getElementById("showErrorImagesBtn"); if(showBtn != null) { showBtn.className = showBtn.className + " hidden"; } var hideBtn = document.getElementById("hideErrorImagesBtn"); if(hideBtn != null) { hideBtn.className = hideBtn.className.replace("hidden", ""); } } /** * Hide result thumbnails that had a rendering error. */ function hideErrThumbnails() { var thumbs = document.getElementsByClassName("thumbError"); for (var i = 0; i < thumbs.length; i++) { if(thumbs[i].className.indexOf("hidden") < 0) { thumbs[i].className = thumbs[i].className + " hidden"; } } var showBtn = document.getElementById("showErrorImagesBtn"); if(showBtn != null) { showBtn.className = showBtn.className.replace("hidden", ""); } var hideBtn = document.getElementById("hideErrorImagesBtn"); if(hideBtn != null) { hideBtn.className = hideBtn.className + " hidden"; } }