var
  so = 0.3;
  eo = 1;
  nd = 40;
  
function seto(id) {
	var el = document.getElementById('fi'+id);
	setElementOpacity(el,so);
}

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

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+"';"))();
}
// fo  - функция изменения прозрачности 
// eId - ID элемента
// bB  - обратное направление (true)
function fo(eId,bB) {
	var elem = document.getElementById(eId);
	if (!elem || !getOpacityProperty()) return;
	var nOpacity = so;
	if (fo.aProc[eId]) {
	  clearInterval(fo.aProc[eId].tId); 
  	  nOpacity = fo.aProc[eId].nOpacity;
	}
	if ((nOpacity==so && bB) || (nOpacity==eo && !bB)) return;
	fo.aProc[eId] = {'nOpacity':nOpacity, 'tId':setInterval('fo.run("'+eId+'")', nd), 'bB':Boolean(bB)};
}

fo.back = function(eId){fo(eId,true);};

fo.run = function(eId)
{
	var proc = fo.aProc[eId];
	proc.nOpacity = Math.round(( proc.nOpacity + .1*(proc.bB?-1:1) )*10)/10;
	setElementOpacity(document.getElementById(eId), proc.nOpacity);
	if (proc.nOpacity==so || proc.nOpacity==fo) clearInterval(fo.aProc[eId].tId);
}
fo.aProc = {};


