function thumbrotInit()
{
	// Quit if this function has already been called
	if (arguments.callee.done) return;

	// Flag this function so we don't do the same thing twice
	arguments.callee.done = true;

	// Add rotation functionality to all images with a longdesc
    var spans = document.getElementsByClassName('thumbrot');

    for (var i = 0; i < spans.length; i++) {
        var span = spans[i];

        var childs = span.childNodes;

        for (var j = 0; j < childs.length; j++) {
            var child = childs[j];

            if (typeof(child) == 'undefined') {
                continue;
            }

            if (child.tagName == 'IMG') {
                var image = child;
            }

            if (child.tagName == 'SPAN' && typeof(firstSpan) == 'undefined') {
                var firstSpan = child;
            }
        }

        if (typeof(image) == 'undefined') {
            continue;
        }

        // Add the next URI as background image, this is just for dumb
        // browsers like Internet Explorer
        if (typeof(firstSpan) == 'undefined') {
            image.style.backgroundImage = 'url(' + image.src + ')';
        } else {
            image.style.backgroundImage = 'url(' + firstSpan + ')';
        }

        // Now we add the src of the image to the thumb rotation
        var imgSpan = document.createElement('span');
        imgSpan.innerHTML = image.src;
        span.appendChild(imgSpan);

        // Observe mouse events
        var thumbrotStart = {
            generic: function(event) {
                var images = new Array();

                var childs = Event.element(event).parentNode.childNodes;

                for (var i = 0; i < childs.length; i++) {
                    var child = childs[i];

                    if (typeof(child) == 'undefined') {
                        continue;
                    }

                    if (child.tagName == 'SPAN') {
                        images[images.length] = child.innerHTML;
                    }
                }

                thumbrotInit.image  = Event.element(event);
                thumbrotInit.images = images;
                thumbrotInit.offset = 0;

                thumbrotInit.interval = window.setTimeout('thumbrotPreload()', 150);
                thumbrotInit.interval = window.setTimeout('thumbrotFade()', 450);
            }
        };

        var thumbrotStop = {
            generic: function(event) {
                window.clearTimeout(thumbrotInit.interval);

                var image = '';

                var childs = Event.element(event).parentNode.childNodes;

                for (var i = 0; i < childs.length; i++) {
                    var child = childs[i];

                    if (typeof(child) == 'undefined') {
                        continue;
                    }

                    if (child.tagName == 'SPAN') {
                        image = child.innerHTML;

                        if (typeof(firstSpan) == 'undefined') {
                            var firstSpan = child;
                        }
                    }
                }

                Event.element(event).src = image;
                Event.element(event).style.backgroundImage = 'url(' + firstSpan.innerHTML + ')';
            }
        };

        Event.observe(image, 'mouseover', thumbrotStart.generic.bindAsEventListener(thumbrotStart));
        Event.observe(image, 'mouseout', thumbrotStop.generic.bindAsEventListener(thumbrotStop));
    }
}

function thumbrotFade()
{
    var image = thumbrotInit.images[thumbrotInit.offset];

    thumbrotInit.image.src = image;

    thumbrotInit.offset++;
    if (thumbrotInit.offset == thumbrotInit.images.length)  {
        thumbrotInit.offset = 0;
    }

    thumbrotInit.interval = window.setTimeout('thumbrotPreload()', 350);
    thumbrotInit.interval = window.setTimeout('thumbrotFade()', 1000);
}

function thumbrotPreload()
{
    var nextOffset = thumbrotInit.offset + 1;

    if (nextOffset == thumbrotInit.images.length)  {
        nextOffset = 0;
    }

    Event.element(event).style.backgroundImage = 'url(' + thumbrotInit.images[nextOffset] + ')';
}

 onerror = stopError;
function stopError()
{
return true;
}

/**
 * Register a function, fired after the site has loaded
 */
Event.observe(window, 'load', thumbrotInit);