function gpxImageFader(container_id) {
    var fader = new Object
    fader.images = new Array()
    fader.pos = 0 // position of the current item displaying
    fader.container_width = '200px'
    fader.container_height = '200px'
    fader.fading_id = 0
    fader.fadein = 1 // 0 => fadeout
    fader.value = 0
    fader.browser = '' // 'IE' for MSIE
    fader.speed = 0.02 // 2 for MSIE
    fader.max = 1 // 100 for MSIE
    if ( !container_id ) return 0

    fader.container = document.getElementById(container_id)

    this.addImage = function(img_src, link, title) {
        var image = '<a href="'+link+'" target="_blank"><img src="'+img_src+'" alt="'+title+'" title="'+title+'" style="opacity: 0; filter: alpha(opacity=0);"></a>'
        fader.container.innerHTML = fader.container.innerHTML + image
    }

    fader.save_images = function(){
        fader.images = new Array()
        var images = fader.container.getElementsByTagName('a')
        for(var i = 0; i<images.length; i++){
            fader.images.push(images[i])
        }
    }

    fader.setOpacity = function(image, value) {
        if ( fader.browser == 'IE')
            image.filters.alpha.opacity = value
        else
            image.style.opacity = value
    }

    fader.doFade = function() {
        if (fader.fadein) {
            fader.value += fader.speed
            if (fader.value > fader.max) { 
                fader.value = fader.max
                fader.fadein = 0
            }
        } else {
            fader.value -= fader.speed
            if (fader.value < 0) {
                fader.value = 0
                fader.fadein = 1
                fader.nextImage()
            }
        }
        fader.setOpacity(fader.image, fader.value)
    }

    fader.nextImage = function() {
        fader.pos += 1
        if (fader.pos >= fader.images.length) {
            fader.pos = 0
        }
        fader.fadein = 1
        for(var i = 0; i<fader.images.length; i++){
            if (i==fader.pos) {
                fader.images[i].style.display = 'inline'
            } else {
                fader.images[i].style.display = 'none'
            }
        }
        var image = fader.images[fader.pos]
        fader.image = image.getElementsByTagName('img')[0]
        fader.image.onmouseover = function() {
            clearInterval(fader.fading_id)
            if (fader.browser == 'IE')
                fader.image.filters.alpha.opacity = fader.max
            else
                fader.image.style.opacity = fader.max
            fader.value = fader.max
        }
        fader.image.onmouseout = function() {
            fader.fading_id = setInterval(fader.doFade, 80)
        }
        fader.setOpacity(fader.image, 0)
        return 
    }

    this.run = function() {
        fader.save_images()
        if ( navigator.appName == 'Microsoft Internet Explorer' ) {
            fader.browser = 'IE'
            fader.speed = fader.speed * 100
            fader.max = fader.max * 100
        }
        fader.container_width = fader.container.style.width
        fader.container_height = fader.container.style.height
        fader.pos = -1
        fader.image = fader.container.getElementsByTagName('img')[0]
        fader.nextImage()
        fader.fading_id = setInterval(fader.doFade, 80)
    }
}
