/**
 * Registry for all banners.
 */
function BannerRegistry()
{
    this.m_Initial = true;
    this.m_BannerIndex = 0;
    this.m_Banner = new Array();

    this.addBanner = BannerRegistry_addBanner;
    this.showNextBanner = BannerRegistry_showNextBanner;
    this.showCurrent = BannerRegistry_showCurrent;
    this.applyCurrent = BannerRegistry_applyCurrent;
}

/**
 * Add the banner to the registry.
 * @param banner the banner
 */
function BannerRegistry_addBanner( banner )
{
    this.m_Banner[this.m_Banner.length] = banner;
}

/**
 * Display the next banner image and remember the current banner position in the registry.
 */
function BannerRegistry_showNextBanner()
{
    /** show the first banner for display time milli seconds */
    if ( this.m_Initial )
    {
        this.m_Initial = false;
        window.setTimeout( 'bannerRegistry.showNextBanner()', this.m_Banner[this.m_BannerIndex].getDisplayTime() );
        return;
    }

    if ( ++this.m_BannerIndex == this.m_Banner.length )
    {
        this.m_BannerIndex = 0;
    }

    var currentBanner = this.m_Banner[this.m_BannerIndex];
    document.images['banner'].src = currentBanner.getImage();

    window.setTimeout( 'bannerRegistry.showNextBanner()', currentBanner.getDisplayTime() );
}

/**
 * Returns the url of the current banner.
 * @return the url of the current banner
 */
function BannerRegistry_showCurrent()
{
    window.location.href = this.m_Banner[this.m_BannerIndex].getUrl();
}

/**
 * Apply the url and target of the current banner to the given link.
 */
function BannerRegistry_applyCurrent( link )
{
    link.href = this.m_Banner[this.m_BannerIndex].getUrl();
    link.target = this.m_Banner[this.m_BannerIndex].getTarget();
}

/**
 * One banner with image, url, tooltip and display time.
 */
function Banner()
{
    this.m_Image = '';
    this.m_Url = '';
    this.m_DisplayTime = 5000;

    this.setImage = Banner_setImage;
    this.getImage = Banner_getImage;
    this.setUrl = Banner_setUrl;
    this.getUrl = Banner_getUrl;
    this.setDisplayTime = Banner_setDisplayTime;
    this.getDisplayTime = Banner_getDisplayTime;
}

/**
 * Set the path to the image of the banner.
 * @param image the path to the image
 */
function Banner_setImage( image )
{
    this.m_Image = image;
}

/**
 * Returns the path to the image of the banner.
 * @return the path to the image
 */
function Banner_getImage()
{
    return this.m_Image;
}

/**
 * Sets the url.
 * @param url the url
 */
function Banner_setUrl( url )
{
    this.m_Url = url;
}

/**
 * Returns the url.
 * @return the url
 */
function Banner_getUrl()
{
    return this.m_Url;
}

/**
 * Sets the display time in milli seconds.
 * @param displayTime the display time
 */
function Banner_setDisplayTime( displayTime )
{
    this.m_DisplayTime = displayTime;
}

/**
 * Returns the display time in milli seconds.
 * @return the display time
 */
function Banner_getDisplayTime()
{
    return this.m_DisplayTime;
}

window.bannerRegistry = new BannerRegistry();

var banner1 = new Banner();
banner1.setImage( 'images/startseite-01.jpg' );
banner1.setUrl( 'fotografie/index.php' );
banner1.setDisplayTime( 5000 );
bannerRegistry.addBanner( banner1 );

var banner2 = new Banner();
banner2.setImage( 'images/startseite-02.jpg' );
banner2.setUrl( 'fotografie/index.php' );
banner2.setDisplayTime( 5000 );
bannerRegistry.addBanner( banner2 );

var banner3 = new Banner();
banner3.setImage( 'images/startseite-03.jpg' );
banner3.setUrl( 'fotografie/index.php' );
banner3.setDisplayTime( 5000 );
bannerRegistry.addBanner( banner3 );

var banner4 = new Banner();
banner4.setImage( 'images/startseite-04.jpg' );
banner4.setUrl( 'fotografie/index.php' );
banner4.setDisplayTime( 5000 );
bannerRegistry.addBanner( banner4 );

var banner5 = new Banner();
banner5.setImage( 'images/startseite-05.jpg' );
banner5.setUrl( 'fotografie/index.php' );
banner5.setDisplayTime( 5000 );
bannerRegistry.addBanner( banner5 );

var banner6 = new Banner();
banner6.setImage( 'images/startseite-06.jpg' );
banner6.setUrl( 'fotografie/index.php' );
banner6.setDisplayTime( 5000 );
bannerRegistry.addBanner( banner6 );

var banner7 = new Banner();
banner7.setImage( 'images/startseite-07.jpg' );
banner7.setUrl( 'fotografie/index.php' );
banner7.setDisplayTime( 5000 );
bannerRegistry.addBanner( banner7 );

var banner8 = new Banner();
banner8.setImage( 'images/startseite-08.jpg' );
banner8.setUrl( 'fotografie/index.php' );
banner8.setDisplayTime( 5000 );
bannerRegistry.addBanner( banner8 );

var banner9 = new Banner();
banner9.setImage( 'images/startseite-09.jpg' );
banner9.setUrl( 'fotografie/index.php' );
banner9.setDisplayTime( 5000 );
bannerRegistry.addBanner( banner9 );

var banner10 = new Banner();
banner10.setImage( 'images/startseite-10.jpg' );
banner10.setUrl( 'fotografie/index.php' );
banner10.setDisplayTime( 5000 );
bannerRegistry.addBanner( banner10 );

var banner11 = new Banner();
banner11.setImage( 'images/startseite-11.jpg' );
banner11.setUrl( 'fotografie/index.php' );
banner11.setDisplayTime( 5000 );
bannerRegistry.addBanner( banner11 );

var banner12 = new Banner();
banner12.setImage( 'images/startseite-12.jpg' );
banner12.setUrl( 'fotografie/index.php' );
banner12.setDisplayTime( 5000 );
bannerRegistry.addBanner( banner12 );

var banner13 = new Banner();
banner13.setImage( 'images/startseite-13.jpg' );
banner13.setUrl( 'fotografie/index.php' );
banner13.setDisplayTime( 5000 );
bannerRegistry.addBanner( banner13 );

var banner14 = new Banner();
banner14.setImage( 'images/startseite-00.jpg' );
banner14.setUrl( 'fotografie/index.php' );
banner14.setDisplayTime( 5000 );
bannerRegistry.addBanner( banner14 );


