﻿window.addEvent('domready', function() { Page.Setup(); });

var Page = {
    Scroller: function(outer, inner) {
        var scrollTimer = null;

        var scroll = 0;
        var al = $(outer);
        var all = $(inner);
        var scrolltime = 10;
        var twn = new Fx.Tween(all, { 'duration': scrolltime, transition: Fx.Transitions.Linear });
        var _doScrollDown = function(x, a) {
            var y = 2;
            if (a != null)
                y = a;
            var nt = all.getPosition(al).y - y;
            var max = -(all.getSize().y - al.getSize().y);
            if (nt < max)
                nt = max;
            twn.start('top', nt);
            if (a == null)
                scrollTimer = _doScrollDown.delay(scrolltime);
        };
        var _doScrollUp = function(x, a) {
            var y = 2;
            if (a != null)
                y = a;
            var nt = all.getPosition(al).y + y;
            if (nt > 0)
                nt = 0;
            twn.start('top', nt);
            if (a == null)
                scrollTimer = _doScrollUp.delay(scrolltime);

        };

        $$('#scrolldown,#scrollup').addEvent('click', function(x) { x.stop(); });
        $('scrolldown').addEvent('mouseenter', function() { _doScrollDown(); });
        $('scrollup').addEvent('mouseenter', function() { _doScrollUp(); });
        var _cancel = function() { twn.cancel(); if (scrollTimer != null) window.clearTimeout(scrollTimer); };
        $$('#scrolldown,#scrollup').addEvent('mouseleave', _cancel);
        $(outer).addEvent('mouseleave', _cancel);
        al.addEvent('mousewheel', function(e) {
            if (e.wheel < 0) {
                _doScrollDown(null, 50 * e.wheel * -1);
            }
            else {
                _doScrollUp(null, 50 * e.wheel);
            }
        });

    }
    ,
    Setup: function() {


        if ($$('.products').length > 0) {
            $$('.products div.deliveryArea').addClass('hidden');
            $$('.products div.deliveryArea')[0].removeClass('hidden');

            $('deliverySelect').addEvent('change', function(x) {

                var s = ($('deliverySelect').getSelected().get('value') * 1) - 1;
                if ($('selpage') != null)
                    $('selpage').set('value', s);
                $$('.products div.deliveryArea').addClass('hidden');
                $$('.products div.deliveryArea')[s].removeClass('hidden');
            });

            if ($('ctl00_ctl00_SiteBody_Content_selpage2') != null) {
                var curSel = $('ctl00_ctl00_SiteBody_Content_selpage2').get('value') * 1;
                if (!isNaN(curSel)) {
                    $$('.products div.deliveryArea').addClass('hidden');
                    $$('.products div.deliveryArea')[curSel].removeClass('hidden');
                    $('selpage').set('value', curSel);
                    $('deliverySelect').set('value', (curSel + 1));
                }
            }
        }


        if ($$('.commentarea').length > 0) {
            Page.Scroller($$('.commentsouter')[0], $$('.commentsinner')[0]);
        }

        $$('.book,.togglepic').addEvent('mouseenter', function(x) {
            var y = x.target;
            while (y.get('tag') != 'div')
                y = y.getParent();
            y.getElements('img').toggleClass('hidden');
        });
        $$('.book,.togglepic').addEvent('mouseleave', function(x) {
            var y = x.target;
            while (y.get('tag') != 'div')
                y = y.getParent();
            y.getElements('img').toggleClass('hidden');
        });

        if ($('pagegallery') != null) {
            var imgs = $$('#pagegallery img');
            imgs.addClass('hidden');
            imgs.set('tween', { 'duration': '1000' });

            var currentImage = -1;

            var nextImage = function() {
                if (currentImage >= 0)
                    imgs[currentImage].fade(0);
                currentImage++;
                if (currentImage >= imgs.length)
                    currentImage = 0;
                imgs[currentImage].setOpacity(0);
                imgs[currentImage].removeClass('hidden');
                imgs[currentImage].fade(1);
                nextImage.delay(5000);
            }

            nextImage();
        }

        if ($('posterviewer') != null) {
            Seadragon.Config.minZoomImageRatio = 1;
            Seadragon.Config.visibilityRatio = 1;
            var viewer = new Seadragon.Viewer("posterviewer");
            viewer.openDzi("/galleryitems/poster.xml");
        }

        if ($('galleryimages') != null) {
            var left = 0;
            Seadragon.Config.minZoomImageRatio = 1;
            Seadragon.Config.visibilityRatio = 1;
            var viewer = new Seadragon.Viewer("galleryviewer");



            var infoBut = new Element('span');
            infoBut.inject($('galleryextranav'), 'top');

            var im1 = new Element('img', { 'src': 'img/info_rest.png', 'width': '60', 'height': '63', 'alt': 'Information', 'title': 'Information' });
            im1.inject(infoBut);

            var im2 = new Element('img', { 'class': 'hidden', 'src': 'img/info_pressed.png', 'width': '60', 'height': '63', 'alt': 'Information', 'title': 'Information' });
            im2.inject(infoBut);

            var im3 = new Element('img', { 'class': 'hidden', 'src': 'img/info_pressed.png', 'width': '60', 'height': '63', 'alt': 'Information', 'title': 'Information' });
            im3.inject(infoBut);

            var toggleExtra = function() {


                if ($('galleryoverlay').getPosition('galleryviewer').x == 0) {
                    $('galleryextranav').removeClass('hidden');
                    $('galleryoverlay').tween('left', '-200px');
                }
                else {
                    $('galleryoverlay').tween('left', 0);
                    $('galleryextranav').addClass('hidden');
                }
            }

            infoBut.addEvent('mouseenter', function() { im1.addClass('hidden'); im2.removeClass('hidden'); });
            infoBut.addEvent('mouseleave', function() { im2.addClass('hidden'); im1.removeClass('hidden'); im3.addClass('hidden'); });
            infoBut.addEvent('mousedown', function() { im1.addClass('hidden'); im2.addClass('hidden'); im3.removeClass('hidden'); });
            infoBut.addEvent('mouseup', function() {
                im1.addClass('hidden'); im2.removeClass('hidden'); im3.addClass('hidden');

                toggleExtra();
            });

            var closeBut = new Element('span', { 'class': 'closebut' });
            closeBut.inject($('galleryoverlay'), 'top');

            var im1a = new Element('img', { 'src': 'img/close_rest.png', 'width': '20', 'height': '19', 'alt': 'Close', 'title': 'Close' });
            im1a.inject(closeBut);

            var im2a = new Element('img', { 'class': 'hidden', 'src': 'img/close_hover.png', 'width': '20', 'height': '19', 'alt': 'Close', 'title': 'Close' });
            im2a.inject(closeBut);

            var im3a = new Element('img', { 'class': 'hidden', 'src': 'img/close_pressed.png', 'width': '20', 'height': '19', 'alt': 'Close', 'title': 'Close' });
            im3a.inject(closeBut);

            closeBut.addEvent('mouseenter', function() { im1a.addClass('hidden'); im2a.removeClass('hidden'); });
            closeBut.addEvent('mouseleave', function() { im2a.addClass('hidden'); im1a.removeClass('hidden'); im3a.addClass('hidden'); });
            closeBut.addEvent('mousedown', function() { im1a.addClass('hidden'); im2a.addClass('hidden'); im3a.removeClass('hidden'); });
            closeBut.addEvent('mouseup', function() {

                im1a.addClass('hidden'); im2a.removeClass('hidden'); im3a.addClass('hidden');
                toggleExtra();
            })

            var showPicture = function(item) {
                viewer.openDzi("galleryitems/galleryitem_" + item.get('rel') + ".xml");
                $('gallerytext').set('html', item.getElement('div').get('html'));
                $('galleryoverlay').setStyle('left', '-200px');
                if (item.getElement('div').get('html').length == 0)
                    $('galleryextranav').addClass('hidden');
                else
                    $('galleryextranav').removeClass('hidden');
            }



            var first = $$('#galleryimages li');
            if (first.length > 0) {
                showPicture(first[0]);

            }

            var page = 0;

            var curPage = 0;

            $('galleryimageinner').set('tween', {
                onStart: function() { $$('.gallerypagenav').addClass('hidden'); },
                onComplete: function() { $$('.gallerypagenav').removeClass('hidden'); }
            });

            var showPage = function() {
                var l = $$('.gallerypage')[curPage].getPosition($$('.gallerypage')[0]).x;
                $('galleryimageinner').tween('left', -l);

            }
            var prevPage = function() {
                curPage--;
                if (curPage < 0)
                    curPage = 0;
                showPage();
            };
            var nextPage = function() {
                curPage++
                if (curPage >= $$('.gallerypage').length)
                    curPage = $$('.gallerypage').length;
                showPage();
            };

            $$('.gallerypage').each(function(x) {
                page++;
                x.setStyle('left', left + 'px');
                left += x.getSize().x + 5;

                var thumbTop = 0;
                var thumbLeft = 0;
                var rowNum = 0;

                x.getElements('li').each(function(y) {
                    y.setStyles({ 'top': thumbTop + 'px', 'left': thumbLeft + 'px' });
                    rowNum++;

                    var l = thumbLeft;
                    var t = thumbTop;

                    if (rowNum % 3 == 0) {
                        rowNum = 0;
                        thumbLeft = 0;
                        thumbTop += y.getSize().y;
                    }
                    else {
                        thumbLeft += y.getSize().x + 5;
                    }

                    var img = y.getElement('img');

                    img.set('morph', { 'duration': 300 });
                    y.set('morph', { 'duration': 300 });

                    y.addEvent('mouseenter', function(z) {
                        x.getElements('li').setStyle('z-index', 1);
                        y.setStyle('z-index', 100);
                        y.morph({ 'top': t - 4, 'left': l - 5 });
                        img.morph({ 'width': 95, 'height': 70 });
                    });
                    y.addEvent('mouseleave', function(z) {
                        y.morph({ 'top': t, 'left': l });
                        img.morph({ 'width': 85, 'height': 62 });
                    });

                    y.getElement('a').addEvent('click', function(z) {
                        z.stop();
                        showPicture(y);

                    });
                });

                var nav = new Element('div', { 'class': 'gallerypagenav' });
                nav.inject(x);

                if (page == 1) {
                    var el = new Element('img', { 'class': 'prevpage inactive', 'src': 'images/nav_left_inactive.gif', 'width': '24', 'height': '32', 'alt': 'First Page', 'title': 'First Page' });
                    el.inject(nav);
                }
                else {
                    var el = new Element('img', { 'class': 'prevpage', 'src': 'images/nav_left.gif', 'width': '24', 'height': '32', 'alt': 'Previous Page', 'title': 'Previous Page' });
                    el.inject(nav);
                    el.addEvent('click', prevPage);
                }

                if (page == $$('.gallerypage').length) {
                    var el = new Element('img', { 'class': 'nextpage inactive', 'src': 'images/nav_right_inactive.gif', 'width': '24', 'height': '32', 'alt': 'First Page', 'title': 'First Page' });
                    el.inject(nav);
                }
                else {
                    var el = new Element('img', { 'class': 'nextpage', 'src': 'images/nav_right.gif', 'width': '24', 'height': '32', 'alt': 'Next Page', 'title': 'Next Page' });
                    el.inject(nav);
                    el.addEvent('click', nextPage);

                }
            });


        }
    }
}
