function setupCaptions() {
    document.getElementsByClassName('caption_cover').each( function(cap)  {
        Event.observe(cap, 'mouseover', function(e){ 
            ExquisiteShowCaption(cap.previousSibling);
        })
        Event.observe(cap, 'mouseout', function(e){ 
            ExquisiteHideCaption(cap.previousSibling);
        })
        
        if(cap.getElementsByTagName('a').length > 0) {
            links = cap.parentNode.firstChild.getElementsByTagName('a');
            for(var i = 0; i < links.length; i++) {
                links[i].removeAttribute('href');
            }
        
            Event.observe(cap.getElementsByTagName('a')[0], 'focus', function(e){ 
                ExquisiteShowCaption(cap.previousSibling);
            })
            Event.observe(cap.getElementsByTagName('a')[0], 'blur', function(e){ 
                ExquisiteHideCaption(cap.previousSibling);
            })
        }

        cap.previousSibling.originalDimensions = Element.getDimensions(cap.previousSibling);
        cap.previousSibling.style.height = '0px';
        cap.previousSibling.style.visibility = 'visible';
				
				if(cap.parentElement && cap.parentElement.currentStyle) {
					cap.parentElement.style.height = ''+(cap.parentElement.offsetHeight-4)+'px';
				}
    })

	/*	$('logo').onclick= function(e) {
			e = e || window.event;
			if(e.altKey) {
				ExquisiteShowCaptions(e);
				return false;
			}
		}*/
}

Event.observe(window, 'load', setupCaptions);

ExquisiteShowCaptions = function() {
	captions = document.getElementsByClassName('caption')
	for(var i = 0; i < captions.length; i++) {
		cap = captions[i];
		window.setTimeout(ExquisiteAutoShower(cap), 500 + 300*i);
	}
}

ExquisiteAutoShower = function(cap) {
	return function() { ExquisiteShowCaption(cap); window.setTimeout(function() { ExquisiteHideCaption(cap) }, 1000); };
}

ExquisiteHideCaption = function(element) {
    var element = $(element);
    var options = Object.extend({
        delay: 0.4,
        duration: 1.2,
        fps: 40,
        scaleX: false,
        scaleContent: false,
        scaleFrom: 100*element.getDimensions().height / element.originalDimensions.height,
        scaleMode: {
            originalHeight: element.originalDimensions.height
        },
        beforeUpdate: function(eff) {
            // scaleFrom was set when the mouseover happened. This might have
            // been when the caption was still growing so we recalculate it here
            eff.options.scaleFrom = 100*eff.element.getDimensions().height / eff.element.originalDimensions.height
            // Somewhere the factor was being munged so we hackily fix it here
            eff.factor = -1;
            // We don't want to run this function again after the first time
            eff.options.beforeUpdate = null;
        }
    }, arguments[1] || {})
    element.currentEffect = new Effect.Scale(element, 0, options);
    return element.currentEffect;
}

ExquisiteShowCaption = function(element) {
    var element = $(element);
    if(element.currentEffect) { element.currentEffect.cancel(); }
    var options = {
        fps: 40,
        scaleX: false,
        scaleContent: false,
        scaleFrom: 100*element.getDimensions().height / element.originalDimensions.height,
        scaleMode: {
            originalHeight: element.originalDimensions.height
        },
        duration: 0.3
    }
    element.currentEffect = new Effect.Scale(element, 100, options );
    return element.currentEffect;
}