
/*===============================================================================
	EffectShortCuts.js
	John Larson
	3/05/08
	
	Simple effect shortcuts.
	
		Effect.Fade(element)
		Effect.Appear(element)
		Effect.DropOut(element)  // not done, only fades right now
		
		
===============================================================================*/



var Effect = {};

Element.getInlineOpacity = function(element){
  return $(element).getStyle('opacity');
}

Effect.Fade = function(element) {
	
	element = $(element);
	if(!element)
		return;
	
	var oldOpacity = Element.getInlineOpacity(element);
	$(element).effect('opacity').start(oldOpacity, 0).chain(function() {
		element.style.display = 'none';
		element.setStyle('opacity', oldOpacity);
	});
  
}

Effect.Appear = function(element) {
	element = $(element);
	if(!element)
		return;
	
	var oldOpacity = Element.getInlineOpacity(element);
	$(element).effect('opacity').start(oldOpacity, 1).chain(function() {
		element.style.display = 'block';
		element.setStyle('opacity', oldOpacity);
	});
}

Effect.DropOut = function(element) {
	element = $(element);
	if(element) {
		var oldStyle = {
			top: element.getStyle('top'),
			left: element.getStyle('left'),
			opacity: Element.getInlineOpacity(element) };
		Effect.Fade(element);
		
	}
/*
	return new Effect.Parallel(
		[ new Effect.Move(element, {x: 0, y: 100, sync: true }), 
			new Effect.Opacity(element, { sync: true, to: 0.0 }) ],
		Object.extend(
			{ duration: 0.5,
				beforeSetup: function(effect) {
					effect.effects[0].element.makePositioned(); 
				},
				afterFinishInternal: function(effect) {
					effect.effects[0].element.hide().undoPositioned().setStyle(oldStyle);
				} 
			}, arguments[1] || {}));
      */
}