		function FadeObject(){
			this.divId;
			this.imagePosition;
			this.TimeToFade = 1000.0;
			this.isFirst = true;
			this.curTick;
			this.eId;
			this.loadingId;
			this.fade = function(isplay, eid, divid, position, loadingid)
			{

				this.isFirst = false;
				if(!isplay){
					return;
				}
			  var element = document.getElementById(eid);
			  this.loadingId = loadingid;
			  this.divId = divid;
			  this.imagePosition = position;
			  if(element == null)
			    return;
			  
			  if(element.FadeState == null)
			  {
			    if(element.style.opacity == null
			        || element.style.opacity == ''
			        || element.style.opacity == '1')
			    {
			      element.FadeState = 2;
			    }
			    else
			    {
			      element.FadeState = -2;
			    }
			  }
			   
			  if(element.FadeState == 1 || element.FadeState == -1)
			  {
			    element.FadeState = element.FadeState == 1 ? -1 : 1;
			    element.FadeTimeLeft = this.TimeToFade - element.FadeTimeLeft;
			  }
			  else
			  {
			    element.FadeState = element.FadeState == 2 ? -1 : 1;
			    element.FadeTimeLeft = this.TimeToFade;
			    //setTimeout("this.animateFade(" + new Date().getTime() + ",'" + eid + "')", 33);
			    this.curTick = new Date().getTime();
			    this.eId = eid;
			    setTimeout(this.animateFade.bind(this), 33);
			  }  
			}
		
			
			this.animateFade = function ()
			{  
				var lastTick = this.curTick;
				var eid = this.eId;
			  var curTick = new Date().getTime();
			  var elapsedTicks = curTick - lastTick;
			 
			  var element = document.getElementById(eid);
			 
			  if(element.FadeTimeLeft <= elapsedTicks)
			  {
			    element.style.opacity = element.FadeState == 1 ? '1' : '0';
			    element.style.filter = 'alpha(opacity = '
			        + (element.FadeState == 1 ? '100' : '0') + ')';
			    element.FadeState = element.FadeState == 1 ? 2 : -2;
			    if(element.FadeState == -2){
			    	this.setLoadingVisible(this.loadingId);
			    	this.showImage(this.divId, this.imagePosition);
			    }
			    return;
			  }
			 
			  element.FadeTimeLeft -= elapsedTicks;
			  var newOpVal = element.FadeTimeLeft/this.TimeToFade;
			  if(element.FadeState == 1)
			    newOpVal = 1 - newOpVal;
		
			  element.style.opacity = newOpVal;
			  element.style.filter = 'alpha(opacity = ' + (newOpVal*100) + ')';
			 
			  //setTimeout("this.animateFade(" + curTick + ",'" + eid + "')", 33);
			  this.curTick = curTick;
			  this.eId = eid;
			  setTimeout(this.animateFade.bind(this), 33);
			}
			
			this.showImage = function (id, position){
				var as = document.getElementById(id).getElementsByTagName("a");
				for(var i = 0; i< as.length; i++){
					comm.sendEvent(as[i],"onUser",position);
				}		
			}
			
			this.startTimer = function(id){
				var as = document.getElementById(id).getElementsByTagName("a");
				for(var i = 0; i< as.length; i++){
					comm.sendEvent(as[i],"onUser");
				}
			}
			
			this.startFirst = function (id){
				var as = document.getElementById(id).getElementsByTagName("a");
				for(var i = 0; i< as.length; i++){
					comm.sendEvent(as[i],"onUser");
				}
			}
			
			this.setLoadingVisible = function (id){
				document.getElementById(id).style.display = "block";
			}
			this.setLoadingHidden = function (id){
				document.getElementById(id).style.display = "none";
			}
		}
