
function setElementOpacity (oElem, Opacity)/*{{{*/
{
	var p = getOpacityProperty();
	/*
	if ( p=="filter" ) {
		Opacity *= 100;
		var oAlpha = oElem.filters["DXImageTransform.Microsoft.alpha"] || oElem.filters.alpha;
		if ( oAlpha ) { oAlpha.opacity = Opacity; }
		else { oElem.style.filter += "progid:DXImageTransform.Microsoft.Alpha(opacity="+Opacity+")"; }
	}
	else if ( p ) {
		oElem.style[p] = Opacity;
	}
	*/
	( setElementOpacity = ( p=="filter" ) ?
		new Function ( 'oElem', 'Opacity', 'Opacity *= 100; var oAlpha = oElem.filters["DXImageTransform.Microsoft.alpha"] || oElem.filters.alpha; if (oAlpha) oAlpha.opacity = Opacity; else oElem.style.filter += "progid:DXImageTransform.Microsoft.Alpha(opacity="+Opacity+")";' )
			: ( p ) ? new Function( 'oElem', 'Opacity', 'oElem.style.'+p+' = Opacity;' )
				: new Function )
					(oElem, Opacity);
}/*}}}*/

function getOpacityProperty()/*{{{*/
{
	var p;
	if ( typeof document.body.style.opacity=='string' ) p='opacity';
	else if ( typeof document.body.style.MozOpacity=='string' ) p='MozOpacity';
	else if ( typeof document.body.style.KhtmlOpacity=='string') p='KhtmlOpacity';
	else if ( document.body.filters && navigator.appVersion.match(/MSIE ([\d.]+);/)[1]>=5.5 ) p='filter';
	
	return ( getOpacityProperty = new Function("return '"+p+"';") )();
}/*}}}*/

function FadeOpacity (Obj,IsBackward)/*{{{*/
{
	if ( !Obj || !getOpacityProperty() ) {
		return;
	}

	if ( String(Obj.id)=='undefined' || !String(Obj.id) ) {
		Id = 'Op'+FadeOpacity.OpIdCount++;
		Obj.id = Id;
	}
	else {
		Id = Obj.id;
	}

	var Opacity = FadeOpacity.StartOpacity;
	
	if ( typeof(Obj.RunOpacity)!='undefined' ) {
		clearInterval(Obj.tId);
		Obj.RunOpacity = 0;
		Opacity = Obj.Opacity;
	}
	if ( ( Opacity==FadeOpacity.StartOpacity && IsBackward )
		|| ( Opacity==FadeOpacity.FinishOpacity && !IsBackward ) ) {
		return;
	}

	Obj.Opacity = Opacity;
	Obj.tId = setInterval('FadeOpacity.Run("'+Obj.id+'")', FadeOpacity.Delay);
	Obj.IsBackward = Boolean(IsBackward);
	Obj.UpOrDown =  ( FadeOpacity.FinishOpacity>FadeOpacity.StartOpacity ) ? 1: -1;
	Obj.RunOpacity = 1;

}/*}}}*/

FadeOpacity.Run = function (ObjId)/*{{{*/
{
	var Obj = document.getElementById(ObjId);

	Obj.Opacity = Math.round ( ( Obj.Opacity + .1*Obj.UpOrDown*(Obj.IsBackward?-1:1) ) *10 ) / 10;
	setElementOpacity(Obj, Obj.Opacity);
	
	if ( Obj.Opacity==FadeOpacity.StartOpacity || Obj.Opacity==FadeOpacity.FinishOpacity ) {
		clearInterval(Obj.tId);
		Obj.RunOpacity = 0;
		if ( Obj.Opacity<.1 ) {
			hideObject(Obj); /// !!!
		}
	}

}/*}}}*/

FadeOpacity.OpIdCount = 0;
FadeOpacity.StartOpacity = 0;
FadeOpacity.FinishOpacity = .8;
FadeOpacity.Delay = 20;

function FadeIn (o)/*{{{*/
{
	FadeOpacity(o,false);
}/*}}}*/
function FadeOut (o)/*{{{*/
{
	FadeOpacity(o,true);
}/*}}}*/

