var MouseOverPreview = {
	preview : null,
	previewImg : null,
	previewTxt : null,
	mouseX : 0,
	mouseY : 0,
	debug : false,
	
	show : function(url,e)
	{
		if ( !this.preview ) this.init();
		
		if ( this.preview )
		{
			this.previewImg.src = url;
			this.previewImg.style.display = 'none';
			this.previewTxt.nodeValue = 'Loading...';
			this.preview.style.display = 'block';
			
			if ( document.all?false:true ) document.captureEvents(Event.MOUSEMOVE);
			document.onmousemove = MouseOverPreview.mouseMove;
		}
	},
	
	hide : function()
	{
		this.preview.style.display = 'none';
	},
	
	init : function()
	{
		if ( this.debug )
		{
			this.debug = document.createElement('div');
			this.debug.style.position = 'absolute';
			this.debug.style.left = 0 + 'px';
			this.debug.style.top = 0 + 'px';
			document.body.appendChild(this.debug);
		}
		
		this.preview = document.createElement('div');
		this.previewImg = new Image();
		this.previewImg.onload = function()
		{
			this.style.display = '';
			MouseOverPreview.previewTxt.nodeValue = '';
			MouseOverPreview.moveIt();
		}
		this.previewTxt = document.createTextNode('Loading...');
		
		this.preview.className = 'mouseOverPreview';
		this.preview.style.position = 'absolute';
		this.hide();		
		
		this.preview.appendChild(this.previewTxt);
		this.preview.appendChild(this.previewImg);
		document.body.appendChild(this.preview);
		
		//if ( document.all?false:true ) document.captureEvents(Event.MOUSEMOVE);
		//document.onmousemove = MouseOverPreview.mouseMove;
	},
	
	mouseMove : function(e)
	{
		if ( document.all?true:false ) e = window.event;
		/*
		MouseOverPreview.mouseX = ( document.all?true:false ) ? e.clientX + ( document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft ) : e.pageX;
		MouseOverPreview.mouseY = ( document.all?true:false ) ? e.clientY + ( document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop ) : e.pageY;
		
		
		if ( MouseOverPreview.debug ) MouseOverPreview.debug.innerHTML = MouseOverPreview.mouseX+' , '+MouseOverPreview.mouseY;
		
		if ( MouseOverPreview.mouseX < 0 ) MouseOverPreview.mouseX = 0;
		if ( MouseOverPreview.mouseY < 0 ) MouseOverPreview.mouseY = 0;
		
		MouseOverPreview.moveIt();
		*/
		
		MouseOverPreview.mouseX = ( document.all?true:false ) ? e.clientX + ( document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft ) : e.pageX;
		MouseOverPreview.mouseY = ( document.all?true:false ) ? e.clientY + ( document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop ) : e.pageY;
		
		if ( MouseOverPreview.debug ) MouseOverPreview.debug.innerHTML = MouseOverPreview.preview.style.left+' , '+MouseOverPreview.preview.style.top;
		
		MouseOverPreview.moveIt();
	},
	
	moveIt : function()
	{
		MouseOverPreview.preview.style.left = ( MouseOverPreview.mouseX + 1 ) + 'px';
		MouseOverPreview.preview.style.top = ( MouseOverPreview.mouseY + 1 ) + 'px';
	}
};

onLoad(MouseOverPreview.init);

