function fadeOff( idOrEvent ) { fade( idOrEvent, true ); }
function fade( idOrEvent, show ) {
	if ( typeof idOrEvent == 'string' ) {
		var el = $( idOrEvent );
		var event = null;
	} else {
		var event = idOrEvent;
		var el = Event.element( event );
	}
	if ( show ) {
		$F('useEffects' ) ? Effect.Appear( el, { duration: 0.2 } ) : Element.setOpacity( el, 1 );
	} else {
	//	if ( event && Position.within( el, Event.pointerX(event), Event.pointerY(event) ) ) return;
		if (! el.hasClassName('fadeMe') ) return;
		$F('useEffects' ) ? Effect.Fade( el, { to: 0.5, duration: 0.2 } ) : Element.setOpacity( el, 0.5 );
	}
}

// CONSTRUCT FADE IMAGES
function constructFades(){
	var faded = [];
	[].concat( $$('label.fadeSrc'), $$('a.fadeSrc') ).each(function(el){
//	$A( document.getElementsByClassName('fadeSrc') ).each(function(el){
		Element.classNames(el).each(function(className){
			if ( className.substr(0,8) == 'fadeFor_' ) {
				var id = className.substr(8);
				Event.observe( el, 'mouseover', function(e){ fadeOff( id ); } );
				Event.observe( el, 'mouseout', function(e){ fade( id ); } );
				faded.push( id );
			}
		});
	});
	[].concat( $$('img.fadeMe'), $$('input.fadeMe'), $$('a.fadeMe'), $$('label.fadeMe') ).each(function(el){
//	$A( document.getElementsByClassName('fadeMe') ).each(function(el){
/*		var fader = false;
		if ( el.id ) {
			$$('.fadeFor_'+el.id).each(function(el){
		//	$A( document.getElementsByClassName('fadeFor_'+el.id) ).each(function(el){
				Event.observe( el, 'mouseover', function(e){ fadeOff( el.id ); } );
				Event.observe( el, 'mouseout', function(e){ fade( el.id ); } );
		//		if ( $F('useEffects' ) )
		//				Event.observe( el, 'click', function(e){
		//				Effect.Pulsate( el.id, { duration: 0.3 } );
		//			});
				fader = true;
			});
		}
		if (! fader ) {
			Event.observe( el, 'mouseover', fadeOff );
			Event.observe( el, 'mouseout', fade );
		}*/
	//	Element.setOpacity( el, 0.5 );
		new Effect.Opacity(el, {duration: 0.0, from: 1.0, to: 0.5});
		// input only
		if ( el.tagName.toLowerCase() == 'input' ) {
			Event.observe( el, 'focus', fadeOff );
			Event.observe( el, 'blur', fade );
		}
		if ( el.id && faded.indexOf( el.id ) != -1 ) return;
		Event.observe( el, 'mouseover', fadeOff );
		Event.observe( el, 'mouseout', fade );
	});
}
if ( window.opera ) Event.observe( window, 'load', constructFades );
else Event.onDOMReady( constructFades );