// -----------------------------------------------------------------------------------
//
// Lightbox Slideshow v1.1
// by Justin Barkhuff - http://www.justinbarkhuff.com/lab/lightbox_slideshow/
// Updated: 2007-08-15
//
// Largely based on Lightbox v2.02
// by Lokesh Dhakar - http://huddletogether.com/projects/lightbox2/
// 3/31/06
//
// Licensed under the Creative Commons Attribution 2.5 License - http://creativecommons.org/licenses/by/2.5/
//
// The code inserts html at the bottom of the page that looks similar to this:
//
//
//
//
//
//
![]()
//
//
//
//
//
//
//
// -----------------------------------------------------------------------------------
//
// Lightbox Object
//
var Lightbox = {
activeImage: null,
badObjects: ['select', 'object', 'embed'],
container: null,
enableSlideshow: null,
enableInterval: null, // trueWordWeb 19.08.2010
groupName: null,
imageArray: [],
options: null,
overlayDuration: null,
overlayOpacity: null,
playSlides: null,
refTags: ['a', 'area'],
relAttribute: null,
resizeDuration: null,
slideShowTimer: null,
startImage: null,
//
// initialize()
// Constructor sets class properties and configuration options and
// inserts html at the bottom of the page which is used to display the shadow
// overlay and the image container.
//
initialize: function(options) {
if (!document.getElementsByTagName) { return; }
this.options = $H({
animate: true, // resizing animations
autoPlay: true, // should slideshow start automatically
borderSize: 10, // if you adjust the padding in the CSS, you will need to update this variable
containerID: document, // lightbox container object
enableSlideshow: true, // enable slideshow feature
enableInterval: false, // trueWordWeb 19.08.2010 enable interval feature
googleAnalytics: false, // track individual image views using Google Analytics
imageDataLocation: 'south', // location of image caption information
initImage: '', // ID of image link to automatically launch when upon script initialization
loop: true, // whether to continuously loop slideshow images
overlayDuration: .2, // time to fade in shadow overlay
overlayOpacity: .8, // transparency of shadow overlay
prefix: '', // ID prefix for all dynamically created html elements
relAttribute: 'lightbox', // specifies the rel attribute value that triggers lightbox
resizeSpeed: 7, // controls the speed of the image resizing (1=slowest and 10=fastest)
showGroupName: false, // show group name of images in image details
slideTime: 5, // time to display images during slideshow
strings: { // allows for localization
closeLink: 'schliessen',
loadingMsg: 'wird geladen...',
nextLink: 'vor »',
prevLink: '« zurück',
slideTimeText: 'Interval', // trueWordWeb 18.08.2010
slideTimePlus: '+', // trueWordWeb 18.08.2010
slideTimeMinus: '-', // trueWordWeb 18.08.2010
startSlideshow: 'Slideshow starten',
stopSlideshow: 'Slideshow stoppen',
numDisplayPrefix: 'Bild',
numDisplaySeparator: 'von'
}
}).merge(options);
if (this.options.animate) {
this.overlayDuration = Math.max(this.options.overlayDuration, 0);
this.options.resizeSpeed = Math.max(Math.min(this.options.resizeSpeed, 10), 1);
this.resizeDuration = (11 - this.options.resizeSpeed) * 0.15;
} else {
this.overlayDuration = 0;
this.resizeDuration = 0;
}
// truewordweb, 08.08.2010
var objElements = document.getElementsByTagName("script");
for (var i = 0; i < objElements.length; i++) {
var objSource = objElements[i].src;
// alert(objSource.substr(objSource.lastIndexOf("?time=") + 6, 1));
if (objSource.search(/lightbox\.js.*\?overlayopacity=/) != -1)
{ this.options.overlayOpacity = objSource.substr(objSource.lastIndexOf(".") - 1, 3); }
if (objSource.search(/lightbox\.js.*\?slideshow=0/) != -1)
{ this.options.enableSlideshow = false; }
if (objSource.search(/lightbox\.js.*\?showinterval=1/) != -1)
{ this.options.enableInterval = true; }
if (objSource.search(/lightbox\.js.*\?interval=/) != -1)
{ this.options.slideTime = objSource.substr(objSource.lastIndexOf("?interval=") + 10, 1); }
if (objSource.search(/lightbox\.js.*\?autostart=/) != -1) {
if (objSource.substr(objSource.lastIndexOf("?autostart=") + 11, 1) == "1")
{ this.options.initImage = 'autostart'; }
}
if (objSource.search(/lightbox\.js.*\?autoslide=00/) != -1)
{ this.options.autoPlay = false; }
//if (objSource.search(/\.\.\/css\/lightbox\.js/) != -1) {
// LightboxOptions.fileLoadingImage = '../images/loading.gif',
// LightboxOptions.fileBottomNavCloseImage = '../images/closelabel.gif';
//}
}
this.enableSlideshow = this.options.enableSlideshow;
this.enableInterval = this.options.enableInterval; // trueWordWeb 19.08.2010
this.overlayOpacity = Math.max(Math.min(this.options.overlayOpacity, 1), 0);
this.playSlides = this.options.autoPlay;
this.container = $(this.options.containerID);
this.relAttribute = this.options.relAttribute;
this.updateImageList();
var objBody = this.container != document ? this.container : document.getElementsByTagName('body').item(0);
var objOverlay = document.createElement('div');
objOverlay.setAttribute('id', this.getID('overlay'));
objOverlay.style.display = 'none';
objBody.appendChild(objOverlay);
Event.observe(objOverlay, 'click', this.end.bindAsEventListener(this));
var objLightbox = document.createElement('div');
objLightbox.setAttribute('id', this.getID('lightbox'));
objLightbox.style.display = 'none';
objBody.appendChild(objLightbox);
var objImageDataContainer = document.createElement('div');
objImageDataContainer.setAttribute('id', this.getID('imageDataContainer'));
objImageDataContainer.className = this.getID('clearfix');
var objImageData = document.createElement('div');
objImageData.setAttribute('id', this.getID('imageData'));
objImageDataContainer.appendChild(objImageData);
var objImageDetails = document.createElement('div');
objImageDetails.setAttribute('id', this.getID('imageDetails'));
objImageData.appendChild(objImageDetails);
var objCaption = document.createElement('span');
objCaption.setAttribute('id', this.getID('caption'));
objImageDetails.appendChild(objCaption);
var objNumberDisplay = document.createElement('span');
objNumberDisplay.setAttribute('id', this.getID('numberDisplay'));
objImageDetails.appendChild(objNumberDisplay);
var objDetailsNav = document.createElement('span');
objDetailsNav.setAttribute('id', this.getID('detailsNav'));
objImageDetails.appendChild(objDetailsNav);
var objPrevLink = document.createElement('a');
objPrevLink.setAttribute('id', this.getID('prevLinkDetails'));
objPrevLink.setAttribute('href', 'javascript:void(0);');
objPrevLink.innerHTML = this.options.strings.prevLink;
objDetailsNav.appendChild(objPrevLink);
Event.observe(objPrevLink, 'click', this.showPrev.bindAsEventListener(this));
var objNextLink = document.createElement('a');
objNextLink.setAttribute('id', this.getID('nextLinkDetails'));
objNextLink.setAttribute('href', 'javascript:void(0);');
objNextLink.innerHTML = this.options.strings.nextLink;
objDetailsNav.appendChild(objNextLink);
Event.observe(objNextLink, 'click', this.showNext.bindAsEventListener(this));
// trueWordWeb 18.08.2010
var objSlideTimeDisplay = document.createElement('span');
objSlideTimeDisplay.setAttribute('id', this.getID('slideTimeDisplay'));
objSlideTimeDisplay.innerHTML = this.options.strings.slideTimeText + ': ' + this.options.slideTime;
objDetailsNav.appendChild(objSlideTimeDisplay);
var objSlideTimePlus = document.createElement('a');
objSlideTimePlus.setAttribute('id', this.getID('slideTimePlus'));
objSlideTimePlus.setAttribute('href', 'javascript:void(0);');
objSlideTimePlus.innerHTML = this.options.strings.slideTimePlus;
objDetailsNav.appendChild(objSlideTimePlus);
Event.observe(objSlideTimePlus, 'click', this.slideTimePlus.bindAsEventListener(this));
var objSlideTimeMinus = document.createElement('a');
objSlideTimeMinus.setAttribute('id', this.getID('slideTimeMinus'));
objSlideTimeMinus.setAttribute('href', 'javascript:void(0);');
objSlideTimeMinus.innerHTML = this.options.strings.slideTimeMinus;
objDetailsNav.appendChild(objSlideTimeMinus);
Event.observe(objSlideTimeMinus, 'click', this.slideTimeMinus.bindAsEventListener(this));
//
var objSlideShowControl = document.createElement('a');
objSlideShowControl.setAttribute('id', this.getID('slideShowControl'));
objSlideShowControl.setAttribute('href', 'javascript:void(0);');
objDetailsNav.appendChild(objSlideShowControl);
Event.observe(objSlideShowControl, 'click', this.toggleSlideShow.bindAsEventListener(this));
var objClose = document.createElement('div');
objClose.setAttribute('id', this.getID('close'));
objImageData.appendChild(objClose);
var objCloseLink = document.createElement('a');
objCloseLink.setAttribute('id', this.getID('closeLink'));
objCloseLink.setAttribute('href', 'javascript:void(0);');
objCloseLink.innerHTML = this.options.strings.closeLink;
objClose.appendChild(objCloseLink);
Event.observe(objCloseLink, 'click', this.end.bindAsEventListener(this));
if (this.options.imageDataLocation == 'north') {
objLightbox.appendChild(objImageDataContainer);
}
var objOuterImageContainer = document.createElement('div');
objOuterImageContainer.setAttribute('id', this.getID('outerImageContainer'));
objLightbox.appendChild(objOuterImageContainer);
var objImageContainer = document.createElement('div');
objImageContainer.setAttribute('id', this.getID('imageContainer'));
objOuterImageContainer.appendChild(objImageContainer);
var objLightboxImage = document.createElement('img');
objLightboxImage.setAttribute('id', this.getID('lightboxImage'));
objImageContainer.appendChild(objLightboxImage);
var objHoverNav = document.createElement('div');
objHoverNav.setAttribute('id', this.getID('hoverNav'));
objImageContainer.appendChild(objHoverNav);
var objPrevLinkImg = document.createElement('a');
objPrevLinkImg.setAttribute('id', this.getID('prevLinkImg'));
objPrevLinkImg.setAttribute('href', 'javascript:void(0);');
objHoverNav.appendChild(objPrevLinkImg);
Event.observe(objPrevLinkImg, 'click', this.showPrev.bindAsEventListener(this));
var objNextLinkImg = document.createElement('a');
objNextLinkImg.setAttribute('id', this.getID('nextLinkImg'));
objNextLinkImg.setAttribute('href', 'javascript:void(0);');
objHoverNav.appendChild(objNextLinkImg);
Event.observe(objNextLinkImg, 'click', this.showNext.bindAsEventListener(this));
var objLoading = document.createElement('div');
objLoading.setAttribute('id', this.getID('loading'));
objImageContainer.appendChild(objLoading);
var objLoadingLink = document.createElement('a');
objLoadingLink.setAttribute('id', this.getID('loadingLink'));
objLoadingLink.setAttribute('href', 'javascript:void(0);');
objLoadingLink.innerHTML = this.options.strings.loadingMsg;
objLoading.appendChild(objLoadingLink);
Event.observe(objLoadingLink, 'click', this.end.bindAsEventListener(this));
if (this.options.imageDataLocation != 'north') {
objLightbox.appendChild(objImageDataContainer);
}
if (this.options.initImage != '') {
this.start($(this.options.initImage));
}
},
//
// updateImageList()
// Loops through specific tags within 'container' looking for
// 'lightbox' references and applies onclick events to them.
//
updateImageList: function() {
var el, els, rel;
for (var i = 0; i < this.refTags.length; i++) {
els = this.container.getElementsByTagName(this.refTags[i]);
for (var j = 0; j < els.length; j++) {
el = els[j];
rel = String(el.getAttribute('rel'));
if (el.getAttribute('href') && (rel.toLowerCase().match(this.relAttribute))) {
el.onclick = function() { Lightbox.start(this); return false; }
}
}
}
},
//
// start()
// Display overlay and lightbox. If image is part of a set, add siblings to imageArray.
//
start: function(imageLink) {
this.hideBadObjects();
// stretch overlay to fill page and fade in
var pageSize = this.getPageSize();
$(this.getID('overlay')).setStyle({ height: pageSize.pageHeight + 'px' });
new Effect.Appear(this.getID('overlay'), { duration: this.overlayDuration, from: 0, to: this.overlayOpacity });
this.imageArray = [];
this.groupName = null;
var rel = imageLink.getAttribute('rel');
var imageTitle = '';
// trueWordWeb 10.11.2010 title aus onmouseover auslesen, gebraucht für showtexthere
// Prüfen ob data= überhaupt vorkommt und nur dann anwenden
var searchDataForTitle = document.body.innerHTML.indexOf('.data=') > -1;
var ausdruck = /data=.*;/;
// if image is NOT part of a group..
if (rel == this.relAttribute) {
// add single image to imageArray
imageTitle = imageLink.getAttribute('title') ? imageLink.getAttribute('title') : '';
// trueWordWeb 11.11.2010 title aus onmouseover auslesen, gebraucht für showtexthere
if (searchDataForTitle == true)
{
try
{
if (imageTitle == '')
{
var mouseover = imageLink.getElementsByTagName('img')[0].getAttribute('onMouseOver');
var erg = ausdruck.exec(mouseover);
if (erg[0].length > 8)
{ imageTitle = erg[0].substring(7, erg[0].length - 9); }
}
}
catch (err) { }
}
// trueWordWeb 08.08.2010, replace
imageTitle = imageTitle.replace("\r\n", "
").replace("\r", "
");
this.imageArray.push({ 'link': imageLink.getAttribute('href'), 'title': imageTitle });
this.startImage = 0;
}
else
{
// if image is part of a group..
var els = this.container.getElementsByTagName(imageLink.tagName);
var links = '';
var len = 0;
// loop through anchors, find other images in group, and add them to imageArray
for (var i = 0; i < els.length; i++) {
var el = els[i];
if (el.getAttribute('href') && (el.getAttribute('rel') == rel)) {
// trueWoreWeb 09.11.2010 only if not always in array
if (links.indexOf(el.getAttribute('href')) == -1) {
links = links + el.getAttribute('href');
imageTitle = el.getAttribute('title') ? el.getAttribute('title') : '';
// trueWordWeb 10.11.2010 title aus onmouseover auslesen, gebraucht für showtexthere
if (searchDataForTitle == true)
{
try {
if (imageTitle == '')
{
var mouseover = el.getElementsByTagName('img')[0].getAttribute('onMouseOver');
var erg = ausdruck.exec(mouseover);
if (erg[0].length > 8)
{ imageTitle = erg[0].substring(6, erg[0].length - 2); }
}
}
catch (err) { }
}
// trueWordWeb 08.08.2010, replace
imageTitle = imageTitle.replace("\r\n", "
").replace("\r", "
");
this.imageArray.push({ 'link': el.getAttribute('href'), 'title': imageTitle });
if (el.getAttribute('href') == imageLink.getAttribute('href')) {
this.startImage = this.imageArray.length - 1;
}
}
}
}
// get group name
this.groupName = rel.substring(this.relAttribute.length + 1, rel.length - 1);
}
// calculate top offset for the lightbox and display
var pageScroll = this.getPageScroll();
var lightboxTop = pageScroll.y + (pageSize.winHeight / 15);
$(this.getID('lightbox')).setStyle({ top: lightboxTop + 'px' }).show();
this.changeImage(this.startImage);
},
//
// changeImage()
// Hide most elements and preload image in preparation for resizing image container.
//
changeImage: function(imageNum) {
this.activeImage = imageNum;
this.disableKeyboardNav();
this.pauseSlideShow();
// hide elements during transition
$(this.getID('loading')).show();
$(this.getID('lightboxImage')).hide();
$(this.getID('hoverNav')).hide();
$(this.getID('imageDataContainer')).hide();
$(this.getID('numberDisplay')).hide();
$(this.getID('detailsNav')).hide();
var imgPreloader = new Image();
// once image is preloaded, resize image container
imgPreloader.onload = function() {
$(Lightbox.getID('lightboxImage')).src = imgPreloader.src;
Lightbox.resizeImageContainer(imgPreloader.width, imgPreloader.height);
}
imgPreloader.src = this.imageArray[this.activeImage].link;
if (this.options.googleAnalytics) {
urchinTracker(this.imageArray[this.activeImage].link);
}
},
//
// resizeImageContainer()
//
resizeImageContainer: function(imgWidth, imgHeight) {
// get current height and width
var cDims = $(this.getID('outerImageContainer')).getDimensions();
// scalars based on change from old to new
var xScale = ((imgWidth + (this.options.borderSize * 2)) / cDims.width) * 100;
var yScale = ((imgHeight + (this.options.borderSize * 2)) / cDims.height) * 100;
// calculate size difference between new and old image, and resize if necessary
var wDiff = (cDims.width - this.options.borderSize * 2) - imgWidth;
var hDiff = (cDims.height - this.options.borderSize * 2) - imgHeight;
if (!(hDiff == 0)) { new Effect.Scale(this.getID('outerImageContainer'), yScale, { scaleX: false, duration: this.resizeDuration, queue: 'front' }); }
if (!(wDiff == 0)) { new Effect.Scale(this.getID('outerImageContainer'), xScale, { scaleY: false, delay: this.resizeDuration, duration: this.resizeDuration }); }
// if new and old image are same size and no scaling transition is necessary,
// do a quick pause to prevent image flicker.
if ((hDiff == 0) && (wDiff == 0)) {
if (navigator.appVersion.indexOf('MSIE') != -1) { this.pause(250); } else { this.pause(100); }
}
$(this.getID('prevLinkImg')).setStyle({ height: imgHeight + 'px' });
$(this.getID('nextLinkImg')).setStyle({ height: imgHeight + 'px' });
$(this.getID('imageDataContainer')).setStyle({ width: (imgWidth + (this.options.borderSize * 2)) + 'px' });
this.showImage();
},
//
// showImage()
// Display image and begin preloading neighbors.
//
showImage: function() {
$(this.getID('loading')).hide();
new Effect.Appear(this.getID('lightboxImage'), { duration: 0.5, queue: 'end', afterFinish: function() { Lightbox.updateDetails(); } });
this.preloadNeighborImages();
},
//
// updateDetails()
// Display caption, image number, and bottom nav.
//
updateDetails: function() {
$(this.getID('caption')).show();
$(this.getID('caption')).update(this.imageArray[this.activeImage].title);
// if image is part of set display 'Image x of y'
if (this.imageArray.length > 1) {
var num_display = this.options.strings.numDisplayPrefix + ' ' + eval(this.activeImage + 1) + ' ' + this.options.strings.numDisplaySeparator + ' ' + this.imageArray.length;
if (this.options.showGroupName && this.groupName != '') {
num_display += ' ' + this.options.strings.numDisplaySeparator + ' ' + this.groupName;
}
$(this.getID('numberDisplay')).update(num_display).show();
if (!this.enableSlideshow) {
$(this.getID('slideShowControl')).hide();
}
// trueWordWeb 19.08.2010
if (!this.enableInterval) {
$(this.getID('slideTimeDisplay')).hide();
$(this.getID('slideTimePlus')).hide();
$(this.getID('slideTimeMinus')).hide();
}
//
$(this.getID('detailsNav')).show();
}
new Effect.Parallel(
[new Effect.SlideDown(this.getID('imageDataContainer'), { sync: true }),
new Effect.Appear(this.getID('imageDataContainer'), { sync: true })],
{ duration: .65, afterFinish: function() { Lightbox.updateNav(); } }
);
},
//
// updateNav()
// Display appropriate previous and next hover navigation.
//
updateNav: function() {
if (this.imageArray.length > 1) {
$(this.getID('hoverNav')).show();
if (this.enableSlideshow) {
if (this.playSlides) {
this.startSlideShow();
} else {
this.stopSlideShow();
}
}
}
this.enableKeyboardNav();
},
//
// startSlideShow()
// Starts the slide show
//
startSlideShow: function() {
this.playSlides = true;
this.slideShowTimer = new PeriodicalExecuter(function(pe) { Lightbox.showNext(); pe.stop(); }, this.options.slideTime);
$(this.getID('slideShowControl')).update(this.options.strings.stopSlideshow);
},
//
// stopSlideShow()
// Stops the slide show
//
stopSlideShow: function() {
this.playSlides = false;
if (this.slideShowTimer) {
this.slideShowTimer.stop();
}
$(this.getID('slideShowControl')).update(this.options.strings.startSlideshow);
},
//
// stopSlideShow()
// Stops the slide show
//
toggleSlideShow: function() {
if (this.playSlides) {
this.stopSlideShow();
} else {
this.startSlideShow();
}
},
//
// pauseSlideShow()
// Pauses the slide show (doesn't change the value of this.playSlides)
//
pauseSlideShow: function() {
if (this.slideShowTimer) {
this.slideShowTimer.stop();
}
},
//
// showNext()
// Display the next image in a group
//
showNext: function() {
if (this.imageArray.length > 1) {
if (!this.options.loop && ((this.activeImage == this.imageArray.length - 1 && this.startImage == 0) || (this.activeImage + 1 == this.startImage))) {
return this.end();
}
if (this.activeImage == this.imageArray.length - 1) {
this.changeImage(0);
} else {
this.changeImage(this.activeImage + 1);
}
}
},
//
// showPrev()
// Display the next image in a group
//
showPrev: function() {
if (this.imageArray.length > 1) {
if (this.activeImage == 0) {
this.changeImage(this.imageArray.length - 1);
} else {
this.changeImage(this.activeImage - 1);
}
}
},
//
// showFirst()
// Display the first image in a group
//
showFirst: function() {
if (this.imageArray.length > 1) {
this.changeImage(0);
}
},
//
// showFirst()
// Display the first image in a group
//
showLast: function() {
if (this.imageArray.length > 1) {
this.changeImage(this.imageArray.length - 1);
}
},
// trueWordWeb 18.08.2010
//
// slideTimePlus()
// slidetime erhöhen
//
slideTimePlus: function() {
this.options.slideTime = parseInt(this.options.slideTime) + 1;
var display = this.options.strings.slideTimeText + ': ' + this.options.slideTime;
$(this.getID('slideTimeDisplay')).update(display).show();
},
// slideTimeMinus()
// slidetime erniedrigen
//
slideTimeMinus: function() {
this.options.slideTime = parseInt(this.options.slideTime) - 1;
var display = this.options.strings.slideTimeText + ': ' + this.options.slideTime;
$(this.getID('slideTimeDisplay')).update(display).show();
},
//
//
// enableKeyboardNav()
//
enableKeyboardNav: function() {
document.onkeydown = this.keyboardAction;
},
//
// disableKeyboardNav()
//
disableKeyboardNav: function() {
document.onkeydown = '';
},
//
// keyboardAction()
//
keyboardAction: function(e) {
if (e == null) { // ie
keycode = event.keyCode;
} else { // mozilla
keycode = e.which;
}
key = String.fromCharCode(keycode).toLowerCase();
if (key == 'x' || key == 'o' || key == 'c') { // close lightbox
Lightbox.end();
} else if (key == 'p' || key == '%') { // display previous image
Lightbox.showPrev();
} else if (key == 'n' || key == '\'') { // display next image
Lightbox.showNext();
} else if (key == 'f') { // display first image
Lightbox.showFirst();
} else if (key == 'l') { // display last image
Lightbox.showLast();
} else if (key == 's') { // toggle slideshow
if (Lightbox.imageArray.length > 0 && Lightbox.options.enableSlideshow) {
Lightbox.toggleSlideShow();
}
}
},
//
// preloadNeighborImages()
// Preload previous and next images.
//
preloadNeighborImages: function() {
var nextImageID = this.imageArray.length - 1 == this.activeImage ? 0 : this.activeImage + 1;
nextImage = new Image();
nextImage.src = this.imageArray[nextImageID].link
var prevImageID = this.activeImage == 0 ? this.imageArray.length - 1 : this.activeImage - 1;
prevImage = new Image();
prevImage.src = this.imageArray[prevImageID].link;
},
//
// end()
//
end: function() {
this.disableKeyboardNav();
this.pauseSlideShow();
$(this.getID('lightbox')).hide();
new Effect.Fade(this.getID('overlay'), { duration: this.overlayDuration });
this.showBadObjects();
},
//
// showBadObjects()
//
showBadObjects: function() {
var els;
var tags = Lightbox.badObjects;
for (var i = 0; i < tags.length; i++) {
els = document.getElementsByTagName(tags[i]);
for (var j = 0; j < els.length; j++) {
$(els[j]).setStyle({ visibility: 'visible' });
}
}
},
//
// hideBadObjects()
//
hideBadObjects: function() {
var els;
var tags = Lightbox.badObjects;
for (var i = 0; i < tags.length; i++) {
els = document.getElementsByTagName(tags[i]);
for (var j = 0; j < els.length; j++) {
$(els[j]).setStyle({ visibility: 'hidden' });
}
}
},
//
// 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
//
pause: function(numberMillis) {
var now = new Date();
var exitTime = now.getTime() + numberMillis;
while (true) {
now = new Date();
if (now.getTime() > exitTime)
return;
}
},
//
// getPageScroll()
// Returns array with x,y page scroll values.
// Core code from - quirksmode.org
//
getPageScroll: function() {
var x, y;
if (self.pageYOffset) {
x = self.pageXOffset;
y = self.pageYOffset;
} else if (document.documentElement && document.documentElement.scrollTop) { // Explorer 6 Strict
x = document.documentElement.scrollLeft;
y = document.documentElement.scrollTop;
} else if (document.body) {// all other Explorers
x = document.body.scrollLeft;
y = document.body.scrollTop;
}
return { x: x, y: y };
},
//
// getPageSize()
// Returns array with page width, height and window width, height
// Core code from - quirksmode.org
// Edit for Firefox by pHaez
//
getPageSize: function() {
var scrollX, scrollY, windowX, windowY, pageX, pageY;
if (window.innerHeight && window.scrollMaxY) {
scrollX = document.body.scrollWidth;
scrollY = window.innerHeight + window.scrollMaxY;
} else if (document.body.scrollHeight > document.body.offsetHeight) { // all but Explorer Mac
scrollX = document.body.scrollWidth;
scrollY = document.body.scrollHeight;
} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
scrollX = document.body.offsetWidth;
scrollY = document.body.offsetHeight;
}
if (self.innerHeight) { // all except Explorer
windowX = self.innerWidth;
windowY = self.innerHeight;
} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
windowX = document.documentElement.clientWidth;
windowY = document.documentElement.clientHeight;
} else if (document.body) { // other Explorers
windowX = document.body.clientWidth;
windowY = document.body.clientHeight;
}
pageY = (scrollY < windowY) ? windowY : scrollY; // for small pages with total height less then height of the viewport
pageX = (scrollX < windowX) ? windowX : scrollX; // for small pages with total width less then width of the viewport
return { pageWidth: pageX, pageHeight: pageY, winWidth: windowX, winHeight: windowY };
},
//
// getID()
// Returns formatted Lightbox element ID
//
getID: function(id) {
return this.options.prefix + id;
}
}
// -----------------------------------------------------------------------------------
Event.observe(window,'load',function(){ Lightbox.initialize(); });