var urlGallery = "/gallery/"; var imgRoot = "/gallery/photos/"; var category = ""; var activeSpace = 200; var scrollAmount = 3; var scrollRepeat = 20; var directionDown = 0; var directionUp = 1; var directionLeft = 2; var directionRight = 3; var contentTop = null; var contentLeft = null; var scrollDirection = null; var scrollTimer = null; function PointToElement(el, e) { elPos = GetElementPosition(el); evPos = GetEventPosition(e); return [evPos[0] - elPos[0], evPos[1] - elPos[1]]; } function GetEventPosition(e) { var left = top = 0; if (!e) { e = window.event; } if (e.pageX || e.pageY) { left = e.pageX; top = e.pageY; } else if (e.clientX || e.clientY) { left = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft; top = e.clientY + document.body.scrollTop + document.documentElement.scrollTop; } return [left, top]; } function GetElementPosition(el) { var left = top = 0; if (el.offsetParent) { left = el.offsetLeft; top = el.offsetTop; el = el.offsetParent; while (el != null) { left += el.offsetLeft; top += el.offsetTop; el = el.offsetParent; } } return [left, top]; } function InitScroll(type) { if (type == "web") { scrollAmount = 3; scrollRepeat = 20; el = document.getElementById("page"); btn = document.createElement("div"); btn.id = "btnScrollUp"; btn.onmouseover = function() {ScrollUp("content");}; btn.onmouseout = function() {StopScroll();}; el.appendChild(btn); btn = document.createElement("div"); btn.id = "btnScrollDown"; btn.onmouseover = function() {ScrollDown("content");}; btn.onmouseout = function() {StopScroll();}; el.appendChild(btn); document.getElementById("contentOuter").style.overflow = "hidden"; } else if (type == "gallery") { scrollAmount = 5; scrollRepeat = 15; el = document.getElementById("thumbnails"); if (el != null) { el.style.overflow = "visible"; el = document.getElementById("thumbnailsOuter"); el.style.overflow = "hidden"; el = document.getElementById("content"); div = document.createElement("div"); div.id = "btnScrollRight"; div.onmouseover = function() {ScrollLeft("thumbnails");}; div.onmouseout = function() {StopScroll();}; el.appendChild(div); div = document.createElement("div"); div.id = "btnScrollLeft"; div.onmouseover = function() {ScrollRight("thumbnails");}; div.onmouseout = function() {StopScroll();}; el.appendChild(div); } } } function StopScroll() { scrollDirection = null; if (scrollTimer != null) { clearTimeout(scrollTimer); scrollTimer = null; } } function Scroll(elementId) { if (scrollDirection == null) { return; } stopScroll = false; el = document.getElementById(elementId); if ((scrollDirection == directionUp) || (scrollDirection == directionDown)) { if (contentTop == null) { contentTop = el.offsetTop; } if (scrollDirection == directionDown) { contentTop -= scrollAmount; if (contentTop < (el.parentNode.offsetHeight - el.offsetHeight)) { contentTop = el.parentNode.offsetHeight - el.offsetHeight; } } else { contentTop += scrollAmount; if (contentTop > 0) { contentTop = 0; stopScroll = true; } } el.style.top = contentTop + "px"; } else { if (contentLeft == null) { contentLeft = el.offsetLeft; } if (scrollDirection == directionLeft) { contentLeft -= (scrollAmount * 2); if (contentLeft < (el.parentNode.offsetWidth - el.offsetWidth)) { contentLeft = el.parentNode.offsetWidth - el.offsetWidth; } } else { contentLeft += (scrollAmount * 2); if (contentLeft > 0) { contentLeft = 0; stopScroll = true; } } el.style.left = contentLeft + "px"; } if (stopScroll) { StopScroll(); } else { scrollTimer = setTimeout("Scroll('" + elementId + "');", scrollRepeat) } } function ScrollDown(elementId) { scrollDirection = directionDown; Scroll(elementId); } function ScrollUp(elementId) { scrollDirection = directionUp; Scroll(elementId); } function ScrollLeft(elementId) { scrollDirection = directionLeft; Scroll(elementId); } function ScrollRight(elementId) { scrollDirection = directionRight; Scroll(elementId); } function GetImagesInfo(image) { var xmlRequest = (window.XMLHttpRequest) ? new XMLHttpRequest() : new ActiveXObject("Msxml2.XMLHTTP"); if (xmlRequest == null) { return; } xmlRequest.open("GET", urlGallery + "get-images.php?cat=" + category + "&img=" + image, true); xmlRequest.onreadystatechange = function(){GetImagesInfoHandler(xmlRequest);}; xmlRequest.send(null); } function GetImagesInfoHandler(xmlRequest) { if (xmlRequest.readyState === 4) { prevImg = ""; tmp = xmlRequest.responseXML.documentElement.getElementsByTagName("prevImage")[0].childNodes[0]; if (tmp != null) { prevImg = tmp.nodeValue; } nextImg = ""; tmp = xmlRequest.responseXML.documentElement.getElementsByTagName("nextImage")[0].childNodes[0]; if (tmp != null) { nextImg = tmp.nodeValue; } img = document.getElementById("imgTag"); imgDiv = document.getElementById("image"); pLinks = document.getElementById("navLinks"); lnkImg = document.getElementById("linkImg"); lnkPrev = document.getElementById("linkPrev"); lnkNext = document.getElementById("linkNext"); if (prevImg == "") { if (lnkPrev != null) { lnkPrev.parentNode.removeChild(lnkPrev); } } else { if (lnkPrev == null) { lnkPrev = document.createElement("a"); lnkPrev.id = "linkPrev"; lnkPrev.title = "Predošlá fotografia."; lnkPrev.nodeValue = "predošlá"; lnkPrev.appendChild(document.createElement("span")); if (lnkNext == null) { pLinks.appendChild(lnkPrev); } else { pLinks.insertBefore(lnkPrev, lnkNext); } } lnkPrev.href = urlGallery + "?cat=" + category + "&img=" + prevImg; lnkPrev.onclick = function() {return ShowImage(prevImg);}; } if (nextImg == "") { if (lnkNext != null) { lnkNext.parentNode.removeChild(lnkNext); } if (lnkImg != null) { lnkImg.removeChild(img); imgDiv.removeChild(lnkImg); imgDiv.appendChild(img); } } else { if (lnkNext == null) { lnkNext = document.createElement("a"); lnkNext.id = "linkNext"; lnkNext.title = "Ďalšia fotografia."; lnkNext.nodeValue = "ďalšia"; lnkNext.appendChild(document.createElement("span")); pLinks.appendChild(lnkNext); } if (lnkImg == null) { lnkImg = document.createElement("a"); lnkImg.id = "linkImg"; lnkImg.title = "Ďalšia fotografia."; imgDiv.removeChild(img); lnkImg.appendChild(img); imgDiv.appendChild(lnkImg); } href = urlGallery + "?cat=" + category + "&img=" + nextImg; lnkNext.href = href; lnkNext.onclick = function() {return ShowImage(nextImg);}; lnkImg.href = href; lnkImg.onclick = function() {return ShowImage(nextImg);}; } } } function ShowImage(image) { GetImagesInfo(image); img = document.getElementById("imgTag"); img.src = imgRoot + category + "/" + image; return false; }