// slideshow.js based on Lightbox v2.03.3 by Lokesh Dhakar - http://www.huddletogether.com and based on blick.ch
var lightboxOn = false;
var overlayOpacity = 0.8;
var resizeSpeed = 9;
var borderSize = 10;
var adString = '';
var adCapping = 5;
overlayDuration = 0.2;
if (resizeSpeed > 10) {
    resizeSpeed = 10;
}
if (resizeSpeed < 1) {
    resizeSpeed = 1;
}
resizeDuration = (11 - resizeSpeed) * 0.15;
var Slideshow = Class.create();
Slideshow.prototype = {
    initialize: function(id, relatedUrl, relatedArgs, hasAds) {
        this.id = id;
        this.relatedUrl = relatedUrl;
        this.relatedArgs = relatedArgs;
        this.hasAds = hasAds;
        this.imageArray = new Array;
        this.activeImage = 0;
        this.adImp = 0;
        this.type = 0;
        this.updateImageList();
    },
    updateImageList: function() {
        this.imageArray = [];
        if (!document.getElementsByTagName) {
            return;
        }
        var anchors = document.getElementsByTagName('a');
        for (var i = 0; i < anchors.length; i++) {
            var anchor = anchors[i];
            if (anchor.getAttribute('href') && (anchor.getAttribute('rel') == 'slideshow[' + this.id + ']')) {
                if (anchor.childNodes.length > 1 && anchor.childNodes[1].nodeName.toLowerCase() == 'img') {
                    this.type = 1;
                    this.imageArray.push(new Array(anchor.firstChild.getAttribute('src'), anchor.firstChild.style.width, anchor.firstChild.style.height, anchor.getAttribute('href'), anchor.getAttribute('title'), anchor.childNodes[1].getAttribute('src')));
                } else {
                    if (!$('zoom' + this.id) && document.getElementsByName('zoom' + this.id)) {
                        this.type = 2;
                    }
                    ;
                    this.imageArray.push(new Array(anchor.firstChild.getAttribute('src'), anchor.firstChild.style.width, anchor.firstChild.style.height, anchor.getAttribute('href'), anchor.nextSibling.innerHTML));
                }
            }
        }
        Event.observe(window, 'load', function() {
            if (this.type == 2) {
                var a = document.getElementsByName('anchor' + this.id);
                for (var i = 0; i < a.length; i++) {
                    var onclickFunction = 'a[' + i + '].onclick = function(){this.activeImage = ' + i + ';this.start();return false;}.bind(this)';
                    eval(onclickFunction);
                    a[i].style.cursor = 'pointer';
                }
                ;
                var a = $$('span.zoom' + this.id);
                for (var i = 0; i < a.length; i++) {
                    a[i].style.visibility = 'visible';
                }
            } else {
                $('anchor' + this.id).onclick = function() {
                    this.start();
                    return false;
                }.bind(this);
                $('anchor' + this.id).style.cursor = 'pointer';
                $('zoom' + this.id).style.visibility = 'visible';
            }
        }.bind(this), false);
        this.updateDetails('page');
    },
    start: function() {
        startLightbox();
        if ('lightbox') {
            $('lightbox').onclick = function(e) {
                if (!e) {
                    var e = window.event;
                }
                var clickObj = Event.element(e).id;
                if (clickObj == 'lightbox') {
                    this.end();
                }
            }.bind(this);
        }
        if ('bottomNavClose') {
            $('bottomNavClose').onclick = function() {
                this.end();
                return false;
            }.bind(this);
        }
        this.changeImage(this.activeImage);
    },
    changeImage: function(imgNum) {
        if (lightboxOn) {
            Element.show('loading');
            Element.hide('adContainer');
            Element.hide('lightboxImage');
            Element.hide('hoverNav');
            Element.hide('prevLink');
            Element.hide('nextLink');
            Element.hide('caption');
            Element.hide('numberDisplay');
            Element.hide('imageDataContainer');
        } else {
            Element.hide('rel' + this.id);
        }
        if (this.adImp == 0 && this.relatedArgs != '') {
            if (this.activeImage == this.imageArray.length - 1 && imgNum == 0) {
                this.adImp = -1;
                imgNum = this.imageArray.length - 1;
            } else {
                if ((imgNum > this.activeImage && imgNum % adCapping == 0 && this.hasAds != '0') || (imgNum < this.activeImage && this.activeImage % adCapping == 0 && this.hasAds != '0')) {
                    this.adImp = 1;
                }
            }
        } else {
            this.adImp = 0;
        }
        this.activeImage = imgNum;
        if (this.adImp != 0) {
            if (this.adImp == 1) {
                if (lightboxOn) {
                    $('adContainer').innerHTML = adString;
                    this.resizeImageContainer(500, 400);
                } else {
                    $('rel' + this.id).innerHTML = adString;
                    Element.show('rel' + this.id);
                    Element.hide('slideshow' + this.id);
                    this.updateDetails('page');
                }
            }
            else {
                var relatedArgs = this.relatedArgs;
                if (lightboxOn) {
                    relatedArgs = 'pagenumber=1|8|4';
                }
                var related = new Ajax.Request(this.relatedUrl, {method:'get', parameters:'ajax=1&' + relatedArgs, onComplete:function(request) {
                    this.displayRelated(request)
                }.bind(this)});
            }
        } else {
            if (this.imageArray.length > 1 && this.type != 2) {
                imgPreloader = new Image();
                imgPreloader.onload = function() {
                    $('image' + this.id).src = this.imageArray[this.activeImage][0];
                    $('image' + this.id).style.width = this.imageArray[this.activeImage][1];
                    $('image' + this.id).style.height = this.imageArray[this.activeImage][2];
                    if ($('slideshow' + this.id)) {
                        Element.show('slideshow' + this.id);
                    }
                    this.updateDetails('page');
                }.bind(this);
                imgPreloader.src = this.imageArray[this.activeImage][0];
            }
            if (lightboxOn) {
                lightboxPreloader = new Image();
                lightboxPreloader.onload = function() {
                    $('lightboxImage').src = this.imageArray[this.activeImage][3];
                    this.resizeImageContainer(lightboxPreloader.width, lightboxPreloader.height);
                }.bind(this);
                lightboxPreloader.src = this.imageArray[this.activeImage][3];
            }
        }
    },
    displayRelated: function(relatedRequest) {
        $('rel' + this.id).innerHTML = relatedRequest.responseText;
        $('adContainer').innerHTML = relatedRequest.responseText;
        if (lightboxOn) {
            this.resizeImageContainer(565, 400);
        }
        else {
            Element.show('rel' + this.id);
            Element.hide('slideshow' + this.id);
            this.updateDetails('page');
        }
    },
    resizeImageContainer: function(imgWidth, imgHeight) {
        this.widthCurrent = $('outerImageContainer').offsetWidth;
        this.heightCurrent = Element.getHeight('outerImageContainer');
        var widthNew = (imgWidth + (borderSize * 2));
        var heightNew = (imgHeight + (borderSize * 2));
        this.xScale = (widthNew / this.widthCurrent) * 100;
        this.yScale = (heightNew / this.heightCurrent) * 100;
        wDiff = this.widthCurrent - widthNew;
        hDiff = this.heightCurrent - heightNew;
        if (!(hDiff == 0)) {
            new Effect.Scale('outerImageContainer', this.yScale, {scaleX:false, duration:resizeDuration, queue:'front'});
        }
        if (!(wDiff == 0)) {
            new Effect.Scale('outerImageContainer', this.xScale, {scaleY:false, delay:resizeDuration, duration:resizeDuration});
        }
        if ((hDiff == 0) && (wDiff == 0)) {
            if (navigator.appVersion.indexOf("MSIE") != -1) {
                pause(250);
            } else {
                pause(100);
            }
        }
        $('prevLink').style.height = imgHeight + 'px';
        $('nextLink').style.height = imgHeight + 'px';
        $('imageDataContainer').style.width = widthNew + 'px';
        this.showImage();
    },
    showImage: function() {
        Element.hide('loading');
        if (this.adImp != 0) {
            new Effect.Appear('adContainer', {duration:resizeDuration, queue:'end', afterFinish:function() {
                this.updateDetails('lightbox');
            }.bind(this)});
        }
        else {
            new Effect.Appear('lightboxImage', {duration:resizeDuration, queue:'end', afterFinish:function() {
                this.updateDetails('lightbox');
            }.bind(this)});
            this.preloadNeighborImages();
        }
    },
    updateDetails: function(imgHud) {
        var caption = ' ';
        if (this.imageArray[this.activeImage][4] && this.adImp == 0) {
            caption = this.imageArray[this.activeImage][4];
        }
        if (imgHud == 'lightbox') {
            $('caption').innerHTML = caption;
            if (lightboxOn) {
                Element.show('caption');
                new Effect.Parallel([new Effect.SlideDown('imageDataContainer', {sync:true, duration:resizeDuration, from:0.0, to:1.0}), new Effect.Appear('imageDataContainer', {sync:true, duration:resizeDuration})], {duration:resizeDuration, afterFinish:function() {
                    var arrayPageSize = getPageSize();
                    $('overlay').style.height = arrayPageSize[1] + 'px';
                    this.updateNav(imgHud);
                }.bind(this)});
            } else {
                this.updateNav(imgHud);
            }
        } else {
            if (this.imageArray.length > 1 && this.type != 2) {
                $('description' + this.id).innerHTML = caption;
                this.updateNav(imgHud);
            }
        }
    },
    updateNav: function(imgHud) {
        var prevImage = 0;
        var nextImage = 0;
        var pages = ' ';
        if (this.imageArray.length > 1) {
            if (this.adImp != 0) {
                prevImage = this.activeImage;
            } else {
                if (this.activeImage != 0) {
                    prevImage = this.activeImage - 1;
                } else {
                    prevImage = this.imageArray.length - 1;
                }
            }
            if (this.adImp == 1) {
                nextImage = this.activeImage;
            } else {
                if (this.activeImage != this.imageArray.length - 1) {
                    nextImage = this.activeImage + 1;
                }
            }
            if (this.imageArray.length > 1) {
                if (this.adImp == 0) {
                    pages = '<span class="page">' + eval(this.activeImage + 1) + '</span> <span class="delimiter">|</span> ' + this.imageArray.length;
                } else {
                    if (this.adImp == 1) {
                        pages = 'Anzeige';
                    }
                }
            }
            if (imgHud == 'lightbox') {
                $('prevLink').onclick = function() {
                    this.changeImage(prevImage);
                    return false;
                }.bind(this);
                $('nextLink').onclick = function() {
                    this.changeImage(nextImage);
                    return false;
                }.bind(this);
                $('numberDisplay').innerHTML = pages;
                if (lightboxOn) {
                    Element.show('hoverNav');
                    Element.show('prevLink');
                    Element.show('nextLink');
                    Element.show('numberDisplay');
                }
            } else {
                if (this.type == 1) {
                    var prevPage = 0;
                    var nextPage = 0;
                    var pageMax = Math.floor((this.imageArray.length - 1) / 10);
                    var pageNumber = Math.floor(this.activeImage / 10);
                    if (pageMax > 0) {
                        if (pageNumber == 0) {
                            prevPage = pageMax;
                        } else {
                            prevPage = pageNumber - 1;
                        }
                        prevPage = prevPage * 10;
                        if (pageNumber < pageMax) {
                            nextPage = pageNumber + 1;
                        }
                        nextPage = nextPage * 10;
                    }
                    $('nav' + this.id).removeChild($('nav' + this.id).firstChild);
                    var objNavList = document.createElement('ul');
                    objNavList.className = 'paging';
                    var objNavItem = document.createElement('li');
                    objNavItem.className = 'play';
                    var objNavAnchor = document.createElement('a');
                    objNavAnchor.setAttribute('id', 'play' + this.id);
                    objNavAnchor.setAttribute('href', 'javascript:void(0);');
                    objNavItem.appendChild(objNavAnchor);
                    objNavList.appendChild(objNavItem);
                    var objNavItem = document.createElement('li');
                    objNavItem.className = 'prev10';
                    var objNavAnchor = document.createElement('a');
                    objNavAnchor.setAttribute('id', 'prev10' + this.id);
                    objNavAnchor.setAttribute('href', 'javascript:void(0);');
                    objNavItem.appendChild(objNavAnchor);
                    objNavList.appendChild(objNavItem);
                    var objNavItem = document.createElement('li');
                    objNavItem.className = 'prev';
                    var objNavAnchor = document.createElement('a');
                    objNavAnchor.setAttribute('id', 'prev' + this.id);
                    objNavAnchor.setAttribute('href', 'javascript:void(0);');
                    objNavItem.appendChild(objNavAnchor);
                    objNavList.appendChild(objNavItem);
                    for (var i = 0; i < Math.min((this.imageArray.length - pageNumber * 10), 10); i++) {
                        var imgNum = pageNumber * 10 + i;
                        var objNavItem = document.createElement('li');
                        if (imgNum == this.activeImage) {
                            var objNavButton = document.createElement('img');
                            objNavButton.setAttribute('src', '/css/cssimg/iconsnew/' + eval(imgNum + 1) + '_.gif');
                            objNavButton.className = 'button';
                            objNavItem.appendChild(objNavButton);
                        } else {
                            var objNavAnchor = document.createElement('a');
                            objNavAnchor.setAttribute('href', 'javascript:void(0);');
                            var onclickFunction = 'objNavAnchor.onclick = function(){this.changeImage(' + imgNum + ');return false;}.bind(this);';
                            eval(onclickFunction);
                            objNavItem.appendChild(objNavAnchor);
                            var objNavSpan = document.createElement('span');
                            objNavAnchor.appendChild(objNavSpan);
                            var objNavThumbnail = document.createElement('img');
                            objNavThumbnail.setAttribute('src', this.imageArray[imgNum][5]);
                            //objNavThumbnail.setAttribute('style', "height:53px;max-width:80px");
                            objNavSpan.appendChild(objNavThumbnail);
                            var objNavButton = document.createElement('img');
                            objNavButton.setAttribute('src', '/css/cssimg/iconsnew/' + eval(imgNum + 1) + '.gif');
                            objNavButton.className = 'button';
                            objNavAnchor.appendChild(objNavButton);
                        }
                        objNavList.appendChild(objNavItem);
                    }
                    var objNavItem = document.createElement('li');
                    objNavItem.className = 'next';
                    var objNavAnchor = document.createElement('a');
                    objNavAnchor.setAttribute('id', 'next' + this.id);
                    objNavAnchor.setAttribute('href', 'javascript:void(0);');
                    objNavItem.appendChild(objNavAnchor);
                    objNavList.appendChild(objNavItem);
                    var objNavItem = document.createElement('li');
                    objNavItem.className = 'next10';
                    var objNavAnchor = document.createElement('a');
                    objNavAnchor.setAttribute('id', 'next10' + this.id);
                    objNavAnchor.setAttribute('href', 'javascript:void(0);');
                    objNavItem.appendChild(objNavAnchor);
                    objNavList.appendChild(objNavItem);
                    var objNavItem = document.createElement('li');
                    objNavItem.setAttribute('id', 'pages' + this.id);
                    objNavItem.className = 'numbers';
                    objNavList.appendChild(objNavItem);
                    $('nav' + this.id).appendChild(objNavList);
                    $('prev10' + this.id).onclick = function() {
                        this.changeImage(prevPage);
                        return false;
                    }.bind(this);
                    $('next10' + this.id).onclick = function() {
                        this.changeImage(nextPage);
                        return false;
                    }.bind(this);
                }
                $('prev' + this.id).onclick = function() {
                    this.changeImage(prevImage);
                    return false;
                }.bind(this);
                $('prev' + this.id).style.cursor = 'pointer';
                $('play' + this.id).onclick = function() {
                    this.changeImage(nextImage);
                    return false;
                }.bind(this);
                $('play' + this.id).style.cursor = 'pointer';
                $('next' + this.id).onclick = function() {
                    this.changeImage(nextImage);
                    return false;
                }.bind(this);
                $('next' + this.id).style.cursor = 'pointer';
                $('pages' + this.id).innerHTML = pages;
            }
        }
    },
    preloadNeighborImages: function() {
        if ((this.imageArray.length - 1) > this.activeImage) {
            preloadNextImage = new Image();
            preloadNextImage.src = this.imageArray[this.activeImage + 1][3];
        }
        if (this.activeImage > 0) {
            preloadPrevImage = new Image();
            preloadPrevImage.src = this.imageArray[this.activeImage - 1][3];
        }
    },
    end: function() {
        endLightbox();
    }
}
function createLightbox() {
    var objBody = document.getElementsByTagName('body').item(0);
    var objOverlay = document.createElement('div');
    objOverlay.setAttribute('id', 'overlay');
    objOverlay.style.display = 'none';
    objOverlay.onclick = function() {
        lightboxEnd();
    };
    objBody.appendChild(objOverlay);
    var objLightbox = document.createElement('div');
    objLightbox.setAttribute('id', 'lightbox');
    objLightbox.style.display = 'none';
    objBody.appendChild(objLightbox);
    var objOuterImageContainer = document.createElement('div');
    objOuterImageContainer.setAttribute('id', 'outerImageContainer');
    objLightbox.appendChild(objOuterImageContainer);
    $('outerImageContainer').style.width = '250px';
    $('outerImageContainer').style.height = '250px';
    var objAdContainer = document.createElement('div');
    objAdContainer.setAttribute('id', 'adContainer');
    objOuterImageContainer.appendChild(objAdContainer);
    var objImageContainer = document.createElement('div');
    objImageContainer.setAttribute('id', 'imageContainer');
    objOuterImageContainer.appendChild(objImageContainer);
    var objLightboxImage = document.createElement('img');
    objLightboxImage.setAttribute('id', 'lightboxImage');
    objImageContainer.appendChild(objLightboxImage);
    var objHoverNav = document.createElement('div');
    objHoverNav.setAttribute('id', 'hoverNav');
    objImageContainer.appendChild(objHoverNav);
    var objPrevLink = document.createElement('a');
    objPrevLink.setAttribute('id', 'prevLink');
    objPrevLink.setAttribute('href', 'javascript:void(0);');
    objHoverNav.appendChild(objPrevLink);
    var objPrevSpan = document.createElement('span');
    objPrevLink.appendChild(objPrevSpan);
    var objNextLink = document.createElement('a');
    objNextLink.setAttribute('id', 'nextLink');
    objNextLink.setAttribute('href', 'javascript:void(0);');
    objHoverNav.appendChild(objNextLink);
    var objNextSpan = document.createElement('span');
    objNextLink.appendChild(objNextSpan);
    var objLoading = document.createElement('div');
    objLoading.setAttribute('id', 'loading');
    objLoading.innerHTML = 'Es wird geladen...';
    objImageContainer.appendChild(objLoading);
    var objImageDataContainer = document.createElement('div');
    objImageDataContainer.setAttribute('id', 'imageDataContainer');
    objLightbox.appendChild(objImageDataContainer);
    var objImageData = document.createElement('div');
    objImageData.setAttribute('id', 'imageData');
    objImageDataContainer.appendChild(objImageData);
    var objImageDetails = document.createElement('div');
    objImageDetails.setAttribute('id', 'imageDetails');
    objImageData.appendChild(objImageDetails);
    var objCaption = document.createElement('span');
    objCaption.setAttribute('id', 'caption');
    objImageDetails.appendChild(objCaption);
    var objNumberDisplay = document.createElement('span');
    objNumberDisplay.setAttribute('id', 'numberDisplay');
    objImageDetails.appendChild(objNumberDisplay);
    var objBottomNav = document.createElement('div');
    objBottomNav.setAttribute('id', 'bottomNav');
    objImageData.appendChild(objBottomNav);
    var objBottomNavCloseLink = document.createElement('a');
    objBottomNavCloseLink.setAttribute('id', 'bottomNavClose');
    objBottomNavCloseLink.setAttribute('href', 'javascript:void(0);');
    objBottomNav.appendChild(objBottomNavCloseLink);
}
function startLightbox() {
    lightboxOn = true;
    hideSelectBoxes();
    hideFlash();
    var arrayPageSize = getPageSize();
    $('overlay').style.width = arrayPageSize[0] + 'px';
    $('overlay').style.height = arrayPageSize[1] + 'px';
    new Effect.Appear('overlay', {duration:overlayDuration, from:0.0, to:overlayOpacity});
    var arrayPageScroll = getPageScroll();
    var lightboxTop = arrayPageScroll[1] + (arrayPageSize[3] / 10);
    var lightboxLeft = arrayPageScroll[0];
    $('lightbox').style.top = lightboxTop + 'px';
    $('lightbox').style.left = lightboxLeft + 'px';
    Element.show('lightbox');
}
function endLightbox() {
    lightboxOn = false;
    Element.hide('lightbox');
    new Effect.Fade('overlay', {duration:overlayDuration});
    showSelectBoxes();
    showFlash();
}
function getPageScroll() {
    var xScroll, yScroll;
    if (self.pageYOffset) {
        yScroll = self.pageYOffset;
        xScroll = self.pageXOffset;
    }
    else if (document.documentElement && document.documentElement.scrollTop) {
        yScroll = document.documentElement.scrollTop;
        xScroll = document.documentElement.scrollLeft;
    }
    else if (document.body) {
        yScroll = document.body.scrollTop;
        xScroll = document.body.scrollLeft;
    }
    arrayPageScroll = new Array(xScroll, yScroll);
    return arrayPageScroll;
}
function getPageSize() {
    var xScroll, yScroll;
    if (window.innerHeight && window.scrollMaxY) {
        xScroll = window.innerWidth + window.scrollMaxX;
        yScroll = window.innerHeight + window.scrollMaxY;
    }
    else if (document.body.scrollHeight > document.body.offsetHeight) {
        xScroll = document.body.scrollWidth;
        yScroll = document.body.scrollHeight;
    }
    else {
        xScroll = document.body.offsetWidth;
        yScroll = document.body.offsetHeight;
    }
    var windowWidth, windowHeight;
    if (self.innerHeight) {
        if (document.documentElement.clientWidth) {
            windowWidth = document.documentElement.clientWidth;
        } else {
            windowWidth = self.innerWidth;
        }
        windowHeight = self.innerHeight;
    }
    else if (document.documentElement && document.documentElement.clientHeight) {
        windowWidth = document.documentElement.clientWidth;
        windowHeight = document.documentElement.clientHeight;
    }
    else if (document.body) {
        windowWidth = document.body.clientWidth;
        windowHeight = document.body.clientHeight;
    }
    if (yScroll < windowHeight) {
        pageHeight = windowHeight;
    }
    else {
        pageHeight = yScroll;
    }
    if (xScroll < windowWidth) {
        pageWidth = xScroll;
    }
    else {
        pageWidth = windowWidth;
    }
    arrayPageSize = new Array(pageWidth, pageHeight, windowWidth, windowHeight);
    return arrayPageSize;
}
function showSelectBoxes() {
    var selects = document.getElementsByTagName('select');
    for (i = 0; i != selects.length; i++) {
        selects[i].style.visibility = 'visible';
    }
}
function hideSelectBoxes() {
    var selects = document.getElementsByTagName('select');
    for (i = 0; i != selects.length; i++) {
        selects[i].style.visibility = 'hidden';
    }
}
function showFlash() {
    if ($('lb-ads')) {
        $('lb-ads').style.visibility = 'visible';
        $('lb-ads').style.display = '';
    }
    if ($('sky-ads')) {
        $('sky-ads').style.visibility = 'visible';
        $('sky-ads').style.display = '';
    }
    if ($('top-ads')) {
        $('top-ads').style.visibility = 'visible';
        $('top-ads').style.display = '';
    }
    var flashObjects = document.getElementsByTagName('object');
    for (i = 0; i < flashObjects.length; i++) {
        flashObjects[i].style.visibility = 'visible';
    }
    var flashEmbeds = document.getElementsByTagName('embed');
    for (i = 0; i < flashEmbeds.length; i++) {
        flashEmbeds[i].style.visibility = 'visible';
    }
}
function hideFlash() {
    var flashObjects = document.getElementsByTagName('object');
    for (i = 0; i < flashObjects.length; i++) {
        flashObjects[i].style.visibility = 'hidden';
    }
    var flashEmbeds = document.getElementsByTagName('embed');
    for (i = 0; i < flashEmbeds.length; i++) {
        flashEmbeds[i].style.visibility = 'hidden';
    }
    if ($('lb-ads')) {
        $('lb-ads').style.visibility = 'hidden';
        $('lb-ads').style.display = 'none';
    }
    if ($('sky-ads')) {
        $('sky-ads').style.visibility = 'hidden';
        $('sky-ads').style.display = 'none';
    }
    if ($('top-ads')) {
        $('top-ads').style.visibility = 'hidden';
        $('top-ads').style.display = 'none';
    }
}
function pause(ms) {
    var date = new Date();
    curDate = null;
    do{
        var curDate = new Date();
    }
    while (curDate - Date < ms);
}
Event.observe(window, 'load', createLightbox, false);