var OpeningSlideShow = {};
OpeningSlideShow.position = {
    x:20,
    y:80
};
OpeningSlideShow.dimension = {
    x:1000,
    y:200
};
OpeningSlideShow.initialize = function(){
    var imageArray = $$('img.opening-slide');
    imageArray.each(
        function( thisImageElement, index ){
            var thisSlide = OpeningSlideShow.getSlide( thisImageElement );
            var nextIndex = index+1;
            if( index == (imageArray.length-1) ){
                nextIndex=0;
            }
            var thisHeight = thisImageElement.getProperty('height').toInt();
            if( thisHeight > OpeningSlideShow.dimension.y ){
                //alert('resetting height to '+height);
                OpeningSlideShow.dimension.y = thisHeight;
				var copyrightElement = $('copyright');
                copyrightElement.setStyle('position','absolute');
                var newTop = OpeningSlideShow.position.y+OpeningSlideShow.dimension.y+20;
                //alert('setting top to '+newTop)
                copyrightElement.setStyle('top',newTop+'px');
                copyrightElement.setStyle('left','20px');
                copyrightElement.setStyle('margin-bottom','20px');            
			}
            var nextSlide = OpeningSlideShow.getSlide( imageArray[ nextIndex ] );
            thisSlide.setNextSlide( nextSlide );
            var src = thisImageElement.getProperty('src');
            new Asset.image(
                src,{
                    onload: function(){
                        thisImageElement.isLoaded = true;
                        thisImageElement.setStyle( 'left', OpeningSlideShow.position.x+'px' );
                        thisImageElement.setStyle( 'top', OpeningSlideShow.position.y+'px' );
                        if( index==0 ){
                            OpeningSlideShow.slideArray[0].appear();                            
                        }
                    }
                });
        }
        );
}
window.addEvent('domready',OpeningSlideShow.initialize);

OpeningSlideShow.slideArray = [];

OpeningSlideShow.getSlide = function( element ){
    var array = OpeningSlideShow.slideArray;
    var length = array.length;
    var slide = null;
    for( var i=0;i<length;i++){
        if( array[i].element === element ){
            slide = array[i];
        }
    }
    if( !slide ){
        slide = new OpeningSlideShow.Slide();
        slide.initialize(element);
    }
    return slide;
}

OpeningSlideShow.Slide = function(){
    this.initialize = function( imageElement ){
        this.element = imageElement;
        this.nextSlide =  null;
        this.caption= null;
        this.paused= false;
        this.inTransition= false;
        this.element.set('tween',{
            duration: 300
        });

        OpeningSlideShow.slideArray.push( this );
        
        var imageId = this.element.getProperty('id');
        var captionId = imageId+'-caption';
        this.caption= new OpeningSlideShow.Caption();
        var imageHeight = this.element.getSize().y;
        this.caption.initialize( $(captionId), (OpeningSlideShow.position.y+imageHeight) );
        
        var thisSlideReference = this;
        this.element.addEvent('click',function(){
            var link = '/public/home.html';
            link.toURI().go();
        });
        this.element.addEvent('mouseover',function(){
            if( thisSlideReference.inTransition ){
                return;
            }
            thisSlideReference.paused = true;
            thisSlideReference.caption.appear();
        });
        this.element.addEvent('mouseout',function(){
            if( thisSlideReference.inTransition ){
                return;
            }
            thisSlideReference.paused = false;
            //thisImage.caption.transition.cancel();
            thisSlideReference.caption.disappear();
        });
    }
    this.setNextSlide= function( slide ){
        this.nextSlide = slide;
    }
    this.setCaption= function( caption ){
        this.caption = caption;
    }
    this.setInTransition = function( b ){
        this.inTransition = b;
    }
    this.appear= function(){
        this.element.tween( 'opacity',0,1 );
        this.setInTransition.delay(1000,this,false);
        this.disappear.delay(6000,this);
    }
    this.disappear= function(){
        if( this.paused ){
            this.disappear.delay(2000,this);
            return;
        }
        this.inTransition = true;
        this.element.tween( 'opacity', 1,0 );
        this.nextSlide.appear.delay(200,this.nextSlide);
    }
}

OpeningSlideShow.Caption = function(){
    this.initialize= function(captionElement, top){
        this.element = captionElement;
        this.element.set('tween',{
            duration: 1000
        });
        this.element.setStyle( 'left', OpeningSlideShow.position.x+'px' );
        this.element.setStyle( 'top', top+'px' );
        this.element.setStyle( 'width', OpeningSlideShow.dimension.x+'px' );
        this.element.setStyle( 'text-align','right');
    }
    this.appear= function(){
        var elementTop = OpeningSlideShow.position.y+OpeningSlideShow.dimension.y+20;
        this.element.setStyle( 'top', elementTop+'px' );
        this.element.tween( 'opacity',0,1 );
    }
    this.disappear= function(){
        this.element.tween( 'opacity', 1,0 );
    }
}
