var delay = 30;
var splashes = 0;

function setElementOpacity(oElem, nOpacity) {
 var opacityProp = getOpacityProperty();
 if (opacityProp=="filter") {
  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+")";
  }
 }
 else oElem.style[opacityProp] = nOpacity;
}

function getElementOpacity(oElem) {
 var opacityProp = getOpacityProperty();
 if (opacityProp=="filter") {
  oAlpha = oElem.filters['DXImageTransform.Microsoft.alpha'] || oElem.filters.alpha;
 	if (oAlpha) return(oAlpha.opacity / 100); else return(1);
 } 
 else if (oElem.style[opacityProp]) {return(Number(oElem.style[opacityProp]));} else return(0);
 return(0);
}

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(elem, eo) {
 	
 if (elem.pId) clearInterval(elem.pId);
 if (!elem.id) {
  elem.id = 'gsplash_'+splashes;
  splashes++;
 }
 var curop = getElementOpacity(elem);
 if (eo > 0) elem.style.display = 'block';
 elem.handler = {'elem':elem, 'nOpacity':curop, 'nStartOpacity': curop, 'nFinishOpacity': eo, 'nSign': (curop<eo)?1:-1};
 elem.pId = setInterval('fadeOpacity.run("'+elem.id+'")', delay);
 //elem.offsetHeight() = elem.offsetHeight() + 100; 
}

fadeOpacity.run = function(id) {
 var elem = ById(id);
 var curp = elem.handler;
 curp.nOpacity = curp.nOpacity + 0.1*curp.nSign;
 
 if (curp.nSign==1 && curp.nOpacity>=curp.nFinishOpacity || curp.nSign==-1 && curp.nOpacity<=curp.nFinishOpacity) {
  clearInterval(elem.pId);
  elem.pId = null;
  curp.nOpacity = curp.nFinishOpacity;
 }
 setElementOpacity(elem, curp.nOpacity);
	if (curp.nOpacity == 0) elem.style.display = 'none';
}
