function gfxSetElementOpacity (gfxElementID_, gfxOpacity_) {
	gfxElementID_.style.opacity = gfxOpacity_;
	//gfxElementID_.style.filter = 'progid:DXImageTransform.Microsoft.Alpha(opacity=' + (parseInt(gfxElementID.currentStyle.opacity * 100)) + ')';
	gfxElementID_.style.filter = 'alpha(opacity=' + (parseInt(gfxOpacity_ * 100)) + ')';
};

var gfxIntervalID;
var gfxOpacity;

function gfxGetElementOpacity (gfxElementID_) {
	var gfxTmpOpacity;
	if (document.defaultView && document.defaultView.getComputedStyle ) {
		var gfxTmpStyle = document.defaultView.getComputedStyle(gfxElementID_, 0);
		if ( !isNaN(gfxTmpStyle.opacity) ) {
			gfxTmpOpacity = gfxTmpStyle.opacity;
		} else
		if ( !isNaN(gfxTmpStyle.MozOpacity) ) {
			try {
				gfxTmpOpacity = gfxTmpStyle.MozOpacity;
			}
			catch (err)
			{
			};
		};
   } else
   {
		try {
			gfxTmpOpacity = gfxElementID_.currentStyle.opacity;
		} catch (err)
		{
		};
   };
   return gfxTmpOpacity;
};

function gfxcoreFadeOut(gfxElementID_, gfxSpeed_, gfxMinOpacity_, gfxProc_) {
	gfxOpacity = parseFloat(gfxOpacity) - parseFloat(gfxSpeed_);
	gfxSetElementOpacity(gfxElementID_, gfxOpacity);
	if ( gfxOpacity <= gfxMinOpacity_ ) { clearInterval(gfxIntervalID); gfxElementID_.style.visibility = "hidden"; eval(gfxProc_); };
};

function gfxFadeOut(gfxElementID_, gfxTime_, gfxSpeed_, gfxMinOpacity_, gfxProc_) {
	gfxOpacity = gfxGetElementOpacity(gfxElementID_);
	if ( gfxGetElementOpacity(gfxElementID_) >= gfxMinOpacity_) {  gfxIntervalID = setInterval( function() { gfxcoreFadeOut(gfxElementID_, gfxSpeed_, gfxMinOpacity_, gfxProc_); }, gfxTime_); };
};


///////////////////////////////////////

function gfxcoreFadeIn(gfxElementID_, gfxSpeed_, gfxMaxOpacity_, gfxProc_) {
	gfxElementID_.style.visibility = "visible";
	gfxOpacity = parseFloat(gfxOpacity) + parseFloat(gfxSpeed_);
	gfxSetElementOpacity(gfxElementID_, gfxOpacity);
	if ( gfxOpacity >= gfxMaxOpacity_ ) { clearInterval(gfxIntervalID); eval(gfxProc_); };
}

function gfxFadeIn(gfxElementID_, gfxTime_, gfxSpeed_, gfxMaxOpacity_, gfxProc_) {
	gfxOpacity = gfxGetElementOpacity(gfxElementID_);
	if (gfxGetElementOpacity(gfxElementID_) < gfxMaxOpacity_) {  gfxIntervalID = setInterval( function() { gfxcoreFadeIn(gfxElementID_, gfxSpeed_, gfxMaxOpacity_, gfxProc_); }, gfxTime_); };
};
