function HoverElem(object, startVisible)
{
	this.subject		= object;
	this.startVisible	= startVisible;
	var self = this;

	self.subject.blockLayer	= false;

	self.subject.updateBlockLayer = function()
	{
		if (self.subject.blockLayer) {
			var pos = self.getPos(self.subject);
			self.setStyle(self.subject.blockLayer, {
					position:'absolute',
					left:pos[0] + 'px',
					top:pos[1] + 'px',
					width:self.subject.offsetWidth + 'px',
					height:self.subject.offsetHeight + 'px',
					visibility:'visible',
					display:'block'});
		}
	}

	self.subject.hideBlockLayer = function()
	{
		if (self.subject.blockLayer) {
			self.setStyle(self.subject.blockLayer, {display:'none',visibility:'hidden'});
		}
	}

	if (Prototype.Browser.IE) {
		self.subject.blockLayer = document.createElement('iframe');
		self.subject.parentNode.insertBefore(self.subject.blockLayer, self.subject);
		self.subject.blockLayer.setAttribute('frameborder', '0');
		var pos = self.getPos(self.subject);
		self.setStyle(self.subject.blockLayer, {
				position:'absolute',
				left:pos[0] + 'px',
				top:pos[1] + 'px',
				width:self.subject.offsetWidth + 'px',
				height:self.subject.offsetHeight + 'px',
				border:'0',
				margin:'0',
				padding:'0',
				zIndex:'0',
				visibility:(self.startVisible ? 'visible' : 'hidden'),
				display:(self.startVisible ? '' : 'none')});
	}
}
extendsProBaseClass(HoverElem);
