// // getPageScroll() // Returns array with x,y page scroll values. // Core code from - quirksmode.org // function getPageScroll(){ var yScroll; if (self.pageYOffset) { yScroll = self.pageYOffset; } else if (document.documentElement && document.documentElement.scrollTop){ // Explorer 6 Strict yScroll = document.documentElement.scrollTop; } else if (document.body) {// all other Explorers yScroll = document.body.scrollTop; } arrayPageScroll = new Array('',yScroll) return arrayPageScroll; } // // getPageSize() // Returns array with page width, height and window width, height // Core code from - quirksmode.org // Edit for Firefox by pHaez // function getPageSize(){ var xScroll, yScroll; if (window.innerHeight && window.scrollMaxY) { xScroll = document.body.scrollWidth; yScroll = window.innerHeight + window.scrollMaxY; } else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac xScroll = document.body.scrollWidth; yScroll = document.body.scrollHeight; } else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari xScroll = document.body.offsetWidth; yScroll = document.body.offsetHeight; } var windowWidth, windowHeight; if (self.innerHeight) { // all except Explorer windowWidth = self.innerWidth; windowHeight = self.innerHeight; } else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode windowWidth = document.documentElement.clientWidth; windowHeight = document.documentElement.clientHeight; } else if (document.body) { // other Explorers windowWidth = document.body.clientWidth; windowHeight = document.body.clientHeight; } if(yScroll < windowHeight){ pageHeight = windowHeight; } else { pageHeight = yScroll; } if(xScroll < windowWidth){ pageWidth = windowWidth; } else { pageWidth = xScroll; } arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight) return arrayPageSize; } // // pause(numberMillis) // Pauses code execution for specified time. Uses busy code, not good. // Code from http://www.faqts.com/knowledge_base/view.phtml/aid/1602 // function pause(numberMillis) { var now = new Date(); var exitTime = now.getTime() + numberMillis; while (true) { now = new Date(); if (now.getTime() > exitTime) return; } } // add esc, onkeydown function getKey(e){ if (e == null) { // ie keycode = event.keyCode; } else { // mozilla keycode = e.which; } if(keycode == '27' || keycode == '88' ){ hideLightbox(); } } function listenKey () { document.onkeydown = getKey; } //Set to variables by php script function showLightbox(objLink) { var objOverlay = document.getElementById('overlay'); var objLightbox = document.getElementById('overlaybox'); var objCaption = document.getElementById('olCaption'); var objImage = document.getElementById('olImage'); var objLoadingImage = document.getElementById('loadingImage'); var objLightboxDetails = document.getElementById('olDetails'); var arrayPageSize = getPageSize(); var arrayPageScroll = getPageScroll(); //add flexible height, weight, set global through users varsearch =objLink.search; linkvar = new Array(); if (varsearch != '') { varsearch = varsearch.substr(1, varsearch.length - 1); varsearch = varsearch.replace(/%26/,'&'); varsplit = varsearch.split('&'); for (i = 0; i < varsplit.length; i++) { varsplit[i] = varsplit[i].split('='); linkvar[varsplit[i][0]] = varsplit[i][1]; } } if (objLoadingImage) { objLoadingImage.style.top = (arrayPageScroll[1] + ((arrayPageSize[3] - 35 - objLoadingImage.height) / 2) + 'px'); objLoadingImage.style.left = (((arrayPageSize[0] - 20 - objLoadingImage.width) / 2) + 'px'); objLoadingImage.style.display = 'block'; } objOverlay.style.background= 'url('+ olImage + ')'; objOverlay.style.height = (arrayPageSize[1] + 'px'); objOverlay.style.display = 'block'; imgPreload = new Image(); imgPreload.onload=function(){ objImage.src = objLink.href; var imageHeight= linkvar['ph']; var imageWidth= linkvar['pw']; objImage.style.width = imageWidth + 'px'; objImage.style.height = imageHeight + 'px'; var lightboxTop = arrayPageScroll[1] + ((arrayPageSize[3] - 35 - imageHeight) / 2); var lightboxLeft = ((arrayPageSize[0] - 20 - imageWidth) / 2); objLightbox.style.top = (lightboxTop < 0) ? "0px" : lightboxTop + "px"; objLightbox.style.left = (lightboxLeft < 0) ? "0px" : lightboxLeft + "px"; if ( Number(imageWidth) < Number(minWidth)) { objLightboxDetails.style.width = minWidth + 'px'; } else { objLightboxDetails.style.width = imageWidth + 'px'; } if(objLink.getAttribute('title' )){ objCaption.innerHTML = objLink.getAttribute('title'); } if (showText == 'false') { if (showText == 'false' && showClose == 'false') { objCaption.style.display = 'none'; objLightboxDetails.style.height = '10px'; } else { objCaption.style.display = 'none'; } } else { objCaption.style.display = 'block'; } if (navigator.appVersion.indexOf("MSIE")!=-1){ pause(250); } if (objLoadingImage) { objLoadingImage.style.display = 'none'; } selects = document.getElementsByTagName("select"); for (i = 0; i != selects.length; i++) { selects[i].style.visibility = "hidden"; } objLightbox.style.display = 'block'; arrayPageSize = getPageSize(); objOverlay.style.height = (arrayPageSize[1] + 'px'); listenKey(); return false; } imgPreload.src = objLink.href; } // // hideLightbox() // function hideLightbox() { objOverlay = document.getElementById('overlay'); objLightbox = document.getElementById('overlaybox'); objOverlay.style.display = 'none'; objLightbox.style.display = 'none'; selects = document.getElementsByTagName("select"); for (i = 0; i != selects.length; i++) { selects[i].style.visibility = "visible"; } document.onkeypress = ''; } function initOverlay() { if (!document.getElementsByTagName){ return; } var anchors = document.getElementsByTagName("a"); for (var i=0; i