//revision 2

function Slideshow(container, onPageChanged){
    var YUE = YAHOO.util.Event;
    var YUD = YAHOO.util.Dom;

    function getNodeTypeTester(tagNameUpperCase) {
        return function(el) { return el.tagName.toUpperCase() == tagNameUpperCase; };
    }

    YUE.onContentReady(container, function() {
        var linkTester = getNodeTypeTester('A');

        YUE.on(YUD.getChildrenBy(this, getNodeTypeTester('DIV')), 'click', function(e) {
            var target = YUE.getTarget(e);
            if (linkTester(target)) {
                target.blur();

                if (!YUD.hasClass(target, 'current')) {
                    onPageChanged(target);
                    YUD.removeClass(YUD.getChildrenBy(this, linkTester), 'current');
                    YUD.addClass(target, 'current');
                }
            }

            YUE.stopEvent(e);
        });
    });
}

function ImageSlideshow(containerElId, imageElId, onImageLoaded) {
    var YUD = YAHOO.util.Dom;    
    var imageEl = document.getElementById(imageElId);

    var loadingImage = document.createElement('div');
    loadingImage.id = 'loading_image';
    loadingImage.innerHTML = 'Loading&hellip;';
    YUD.insertBefore(loadingImage, imageEl);

    YAHOO.util.Event.on(imageEl, 'load', function() {
        if (typeof (onImageLoaded) === 'function') onImageLoaded();

        YUD.setStyle(loadingImage, 'display', 'none');
    });

    new Slideshow(containerElId, function(target) {
        YUD.setStyle(loadingImage, 'display', 'block');
        imageEl.src = target.href;
    });
}