var ImageFader = function(elementId, increment, delay)
{
	this.elementId=elementId;
	this.increment=increment;
	this.delay=delay;
	
	this.targetOpacity=1.0;
	this.timer=null;

	var othis=this;
	$(elementId).hover(function() { othis.fade.call(othis); });
			
};
		
ImageFader.prototype.fade=function()
{
	this.targetOpacity=1.0-this.targetOpacity;
	
	this.startFading();
};
	
ImageFader.prototype.startFading=function()
{
	if (this.timer != null)
	{
		clearInterval(this.timer);
		this.timer=null;
	}
	
	var othis=this;
    this.timer = setInterval( function() { othis.fadeIteration.call(othis); } , this.delay);
};

ImageFader.prototype.fadeIteration=function()
{
	var element=$(this.elementId);
	if (parseFloat(element.css('opacity')) > this.targetOpacity+this.increment)
	{
		element.css('opacity',parseFloat(element.css('opacity'))-this.increment);
	}
	else 
	{
		if (parseFloat(element.css('opacity')) < this.targetOpacity-this.increment)
		{
			element.css('opacity',parseFloat(element.css('opacity'))+this.increment);
		}
		else
		{
			element.css('opacity',this.targetOpacity);
			clearInterval(this.timer);
			this.timer=null;
		}
	}
};