﻿window.addEvent('domready', function() { Page.setup(); });

var Page = {
    setup: function() {
        Page.DropDown = new Dropdown();
        if ($$('.gallery').length > 0) {
            Page.Gallery = new Gallery($$('.gallery')[0]);
            if ($$('.gallery')[0].hasClass('pagegallery')) {
                Page.Gallery.ShowNav = true;
            }
            Page.Gallery.Start();
        }
        Page.Resize();
        
        window.addEvent('resize', Page.Resize);

        if ($('ticker') != null)
            Page.Ticker = new Ticker('ticker');

        if ($('search') != null) {

            $('search').addEvent('focus', function(y) {
                $('search').select();
            });
        }
        Page.Slideshow();
    },
    Resize: function() {
        $$('#pagebody,#maincontent,#webintouch').setStyle('height', 'auto');

        if ($('pagebody').getCoordinates().bottom < window.getSize().y - $('footer').getSize().y) {
            var h = window.getSize().y - $('footer').getSize().y - $('pagebody').getPosition().y;

            $$('#pagebody,#maincontent,#webintouch').setStyle('height', h + 'px');
        }

    },
    Slideshow: function() {
        var currentImage = -1;
        var images = $$('div.images img,div.shipimages img');
        images.set('tween', { 'duration': 2000 });
        images.setOpacity(0);
        var thumbs = $$('#imagescroller img');
        var nt;
        var fullthumbs = thumbs;
        var timer = null;
        var hideImage = function() {
            if (currentImage >= 0) {
                images[currentImage].fade(0);
                var y = currentImage;
                if (thumbs.length > 0) {
                    thumbs[y].removeClass('active');
                    nt[y].removeClass('active');
                }
            }
        }
        var selectImage = function(i, showI) {
            $clear(timer);
            hideImage();
            currentImage = i;
            currentTop = currentImage - 1;
            showImage(showI);
            moveTo(currentTop);

        }
        var showImage = function(showI) {
            if (!pause || showI == true) {
                images[currentImage].fade(1);
                if (thumbs.length > 0 && nt != null)
                    (function() { thumbs[currentImage].addClass('active'); nt[currentImage].addClass('active'); }).delay(1000);
            }
            if (images.length > 1)
                timer = nextImage.delay(5000);

        }




        var currentTop = 0;

        var pause = false;

        var myFx;
        var moveTo = function(item, excludeZero) {
            var setTop = item;
            if (excludeZero == true) {
                if (setTop < 0)
                    setTop = thumbs.length + setTop;
            }
            else {
                if (setTop <= 0)
                    setTop = thumbs.length + setTop;
            }

            myFx.toElement(fullthumbs[setTop]);

        }


        var doMove = function(direction) {

            currentTop += direction;

            if (currentTop < 0) {

                myFx.set(0, fullthumbs[images.length].getPosition('imagescroller_inner').y);
                currentTop = images.length - 1;

                moveTo(currentTop, true);
            }
            else {

                moveTo(currentTop, true);

                if (currentTop >= images.length)
                    currentTop = 0;

            }


        }


        if ($('imagescroller_outer') != null && $$('#imagescroller_outer img').length >= 3) {

            $('imagescroller').addEvent('mouseover', function() {
                pause = true;
            });
            $('imagescroller').addEvent('mouseout', function() {
                pause = false;
            });


            myFx = new Fx.Scroll('imagescroller_outer', { duration: 1000, wait: false, onComplete: function() {

                if (currentTop == 0) {

                    myFx.set(0, 0);

                }
            }
            })


            $('scrollup').addEvent('click', function(x) { x.stop(); doMove(-1); });
            $('scrolldown').addEvent('click', function(x) { x.stop(); doMove(1); });

            nt = thumbs.clone();
            nt.inject($('imagescroller_inner'));

            var id = 0;
            nt.each(function(y) {
                var i = id;
                y.addEvent('click', function(z) {
                    z.stop();
                    currentTop = i;
                    myFx.set(0, z.target.getPosition('imagescroller_inner').y - nt[0].getPosition('imagescroller_inner').y);
                    selectImage(i, true);
                });
                id++;
            });

            fullthumbs = $$('#imagescroller img');

            currentTop = -1;
            var setTop = currentTop;
            if (setTop < 0)
                setTop = thumbs.length + setTop;
            myFx.set(0, fullthumbs[setTop].getPosition('imagescroller_inner').y);
        }
        else {
            $$('#scrollup,#scrolldown').dispose();
        }



        var nextImage = function() {

            if (!pause) {
                hideImage();


                currentImage++;


                if (myFx != null) {
                    currentTop = currentImage - 1;
                    moveTo(currentTop);

                }

                if (currentImage >= images.length) {
                    currentImage = 0;
                    currentTop = currentImage - 1;
                }
            }
            showImage();


        }
        if (images.length > 0)
            nextImage();

        if (thumbs.length > 0) {
            var id = 0;
            thumbs.each(function(y) {
                var i = id;
                y.addEvent('click', function(z) {
                    selectImage(i, true);
                });
                id++;
            });
        }


        

    }
}

