// Image Hover
// Sagan Bolliger, 26 Oct 2007
// Requires Prototype 1.5.1.1

 
var ImageHover = {
	init: function() {
		ImageHover.vis = false;
		
		var oThis = this;
		
		Element.descendants(document.body).each( function(elem) {
			
			if(elem.readAttribute('imagehover') != null) {

				Event.observe(elem,'mouseover',ImageHover.mouseOverHandler.bindAsEventListener(elem));
				Event.observe(elem,'mouseout',ImageHover.mouseOutHandler.bindAsEventListener(elem));
				Event.observe(elem,'mousemove',ImageHover.mouseOverHandler.bindAsEventListener(elem));
				
				elem.move = ImageHover.move;
				
				var params = elem.readAttribute('imagehover').split(' ');

				elem.xoff = parseInt(params[0]);
				elem.yoff = parseInt(params[1]);
				
				elem.hsrc = params[2];
				
				elem.vis = false;

				ImageHover.setup(elem);

			}
			
		});
				
	},
	mouseOverHandler: function(event) {

		this.move(event);
		
		this.himg.show();
		
		this.vis = true;
		
		ImageHover.vis = true;
		
	},
	mouseOutHandler: function(event) {
		this.himg.hide();
		
		this.vis = false;
		
		ImageHover.vis = false;
	},
	mouseMoveHandler: function(event) {
		this.move(event);
	},
	move: function(event) {

		this.himg.style.top = (Event.pointerY(event) + this.yoff - this.himg.offsetHeight / 2) + 'px';
		this.himg.style.left = (Event.pointerX(event) + this.xoff - this.himg.offsetWidth / 2) + 'px';
	},
	setup: function(elem) {

		ImageHover.IDIndex++;
		
		var html = '<img src="' + elem.hsrc + 
			'" style="display:none; position:absolute; z-index:90;" id="id' + ImageHover.IDIndex + '" />';
		
		new Insertion.Bottom(document.body,html);
		
		elem.himg = $('id' + ImageHover.IDIndex);
		
	},
	IDIndex: 1

};


ImageHover.init();

