// // // // // // function lightBox(imgSrc,closeImgSrc,text,lightBoxColor,txtClass) { var darkLayer = document.createElement('div'); var bodyElement = document.getElementsByTagName("body"); var paddingValue = 10; bodyElement[0].style.cursor = "wait"; var imgElement = new Image(); imgElement.src = imgSrc; imgElement.id = 'lightBoxBigImg'; // NEW LINE var closeImgElement = new Image(); closeImgElement.src = closeImgSrc; closeImgElement.style.cursor = "pointer" ; var bigDiv = document.createElement('div'); bigDiv.style.zIndex = 303; bigDiv.style.position = "absolute"; bigDiv.style.backgroundColor = 'white'; bigDiv.style.border = '2px solid silver'; bigDiv.style.padding = paddingValue + 'px'; var txtElement = document.createElement('text'); txtElement.innerHTML = text; if(txtClass) { txtElement.className = txtClass; } var tbElement = document.createElement('table'); var tbBody = document.createElement("tbody"); var tableRow1 = document.createElement('tr'); var tableRow2 = document.createElement('tr'); var imageColumn = document.createElement('td'); var textColumn =document.createElement('td'); var closeImageColumn = document.createElement('td'); setDarkLayer(darkLayer,lightBoxColor,tbElement); imageColumn.colSpan = 2; textColumn.style.textAlign = "left"; closeImageColumn.style.textAlign = "right"; bodyElement[0].appendChild(darkLayer); bodyElement[0].appendChild(bigDiv); bigDiv.appendChild(tbElement); tbElement.appendChild(tbBody); tbBody.appendChild(tableRow1); tableRow1.appendChild(imageColumn); imageColumn.appendChild(imgElement); tbBody.appendChild(tableRow2); tableRow2.appendChild(textColumn); tableRow2.appendChild(closeImageColumn); textColumn.appendChild(txtElement); closeImageColumn.appendChild(closeImgElement); setTimeout(function(){setBigDivPostion(bigDiv,tbElement);},1000); setTimeout(function(){setDarkLayer(darkLayer,lightBoxColor,tbElement);},1000); imgElement.onload = function() { setBigDivPostion(bigDiv,tbElement); setDarkLayer(darkLayer,lightBoxColor,tbElement); }; closeImgElement.onclick = function() { bodyElement[0].removeChild(darkLayer); bodyElement[0].removeChild(bigDiv); }; darkLayer.onclick = function() { bodyElement[0].removeChild(darkLayer); bodyElement[0].removeChild(bigDiv); } document.onkeydown = function(event) { if (event.keyCode == 27) { bodyElement[0].removeChild(darkLayer); bodyElement[0].removeChild(bigDiv); } return event.returnValue; }; } // // // function setBigDivPostion(bigDiv,tbElement) { var viewportElement = getViewportSize(); if(viewportElement.viewportHeight > tbElement.scrollHeight) { //var newTop = document.body.scrollTop + (viewportElement.viewportHeight - tbElement.scrollHeight)/2; var scrollTopPosition = 0; if(document.body.scrollTop > 0) { scrollTopPosition = document.body.scrollTop; } else if (document.getElementsByTagName('body')[0].scrollTop > 0) { scrollTopPosition = document.getElementsByTagName('body')[0].scrollTop; } else if(document.documentElement.scrollTop > 0 ) { scrollTopPosition = document.documentElement.scrollTop; } var newTop = scrollTopPosition + (viewportElement.viewportHeight - tbElement.scrollHeight)/2; } else { //var newTop = document.body.scrollTop; var newTop = 0; if(document.body.scrollTop > 0) { newTop = document.body.scrollTop; } else if (document.getElementsByTagName('body')[0].scrollTop > 0) { newTop = document.getElementsByTagName('body')[0].scrollTop; } else if(document.documentElement.scrollTop > 0 ) { newTop = document.documentElement.scrollTop; } } if(viewportElement.viewportWidth > tbElement.scrollWidth) { //var newLeft = document.body.scrollLeft + (viewportElement.viewportWidth - tbElement.scrollWidth)/2; var scrollLeftPosition = 0; if(document.body.scrollLeft > 0) { scrollLeftPosition = document.body.scrollLeft; } else if (document.getElementsByTagName('body')[0].scrollLeft > 0) { scrollLeftPosition = document.getElementsByTagName('body')[0].scrollLeft; } else if(document.documentElement.scrollLeft > 0 ) { scrollLeftPosition = document.documentElement.scrollLeft; } var newLeft = scrollLeftPosition + (viewportElement.viewportWidth - tbElement.scrollWidth)/2; } else { //var newLeft = document.body.scrollLeft; var newLeft = 0; if(document.body.scrollLeft > 0) { newLeft = document.body.scrollLeft; } else if (document.getElementsByTagName('body')[0].scrollLeft > 0) { newLeft = document.getElementsByTagName('body')[0].scrollLeft; } else if(document.documentElement.scrollLeft > 0 ) { newLeft = document.documentElement.scrollLeft; } } bigDiv.style.top = newTop + "px"; bigDiv.style.left = newLeft + "px"; var bodyElement = document.getElementsByTagName("body"); bodyElement[0].style.cursor = "default"; } // // function getViewportSize() { this.viewportHeight = 0; this.viewportWidth = 0; if (typeof window.innerWidth != 'undefined') { this.viewportWidth = window.innerWidth; this.viewportHeight = window.innerHeight; } else if (typeof document.documentElement != 'undefined' && typeof document.documentElement.clientWidth != 'undefined' && document.documentElement.clientWidth != 0) { this.viewportWidth = document.documentElement.clientWidth; this.viewportHeight = document.documentElement.clientHeight; } else { this.viewportWidth = document.getElementsByTagName('body')[0].clientWidth; this.viewportHeight = document.getElementsByTagName('body')[0].clientHeight; } return this; } // // // function setDarkLayer(darkLayer,lightBoxColor,tbElement) { darkLayer.style.zIndex = 300; // früher war 2 eingestellt, ist aber für das hagebau-Menü zu niedrig; darkLayer.style.position = 'absolute'; darkLayer.style.top = '0px'; darkLayer.style.left = '0px'; darkLayer.style.height = (document.body.scrollHeight) + 'px'; darkLayer.style.width = (document.body.scrollWidth) + 'px'; darkLayer.style.backgroundColor = lightBoxColor; setOpacity(darkLayer,0.4); } // // // function setOpacity(object,opacityPct) { object.style.zoom = 1; object.style.filter = 'alpha(Opacity=' + opacityPct*100 + ')'; //IE. object.style.filter = "progid:DXImageTransform.Microsoft.Alpha(Opacity=" + opacityPct*100 + ")"; object.style.MozOpacity = opacityPct; object.style.opacity = opacityPct; }