document.writeln('<style type="text/css"> #previewWnd{position: absolute; border: 1px solid gray; ');
document.writeln('padding: 0px; background-color: white; visibility: hidden; z-index: 100; filter: progid:DXImageTransform.Microsoft.Shadow(color=gray,direction=135);}</style>');

var savedOnMouseMove, previewOnMouseMove;
var ie=document.all
var ns6=document.getElementById && !document.all
var tipobj=document.createElement('div');
tipobj.id="previewWnd";
document.body.appendChild(tipobj);
var offsetx=-60
var offsety=20

function body()
{
	return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

function restoreMouseMoveHandler()
{
	document.onmousemove = savedOnMouseMove;
}

function showPreview(elm, rev, guid)
{
  if (rev==1)
  {
    var href="#";
	if (elm.tagName=="A")
		href=elm.href;
		
	var src="http://www.clickpreview.net/thumbnail/t/"+guid+"/t.jpg.aspx";
	try
	{
		if (xf==1)
			src="t.jpg";		
	}
	catch(e){}

    tipobj.innerHTML="<A href='"+href+"' onmouseover='restoreMouseMoveHandler();' onmouseout='doneWithPreview();'><IMG src='"+src+"' border=0></A>";
  	showbox();
  }
  return false
}

function dismissPreview()
{
     tipobj.style.visibility="hidden";
     tipobj.style.left="-1000px";
     tipobj.style.width='';
}

function doneWithPreview()
{
	document.onmousemove = savedOnMouseMove;

	if (tipobj.style.visibility!="visible")
	  return;
	
	setTimeout('dismissPreview()',300);
}

var x,y;

function showbox()
{
	if (tipobj.style.visibility=="visible")
		return;	//do not reposition unless dismissed
	
	var e = event;
    var curX=(ns6)?e.pageX : event.clientX+body().scrollLeft;
    var curY=(ns6)?e.pageY : event.clientY+body().scrollTop;
    var right=ie&&!window.opera? body().clientWidth-event.clientX-offsetx : window.innerWidth-e.clientX-offsetx-20
    var bottom=ie&&!window.opera? body().clientHeight-event.clientY-offsety : window.innerHeight-e.clientY-offsety-20    
    var left=(offsetx<0)? offsetx*(-1) : -1000;
    
    if (right<tipobj.offsetWidth)
    	tipobj.style.left=ie?body().scrollLeft+event.clientX-tipobj.offsetWidth+"px" : window.pageXOffset+e.clientX-tipobj.offsetWidth+"px"
    else 
    if (curX<left)
    	tipobj.style.left="1px"
    else
	    tipobj.style.left=curX+offsetx+"px"
    
    if (bottom<tipobj.offsetHeight)
	    tipobj.style.top=ie? body().scrollTop+event.clientY-tipobj.offsetHeight-offsety+"px" : window.pageYOffset+e.clientY-tipobj.offsetHeight-offsety+"px"
    else
	    tipobj.style.top=curY+offsety+"px"

	tipobj.style.visibility="visible";

	savedOnMouseMove		= document.onmousemove;
	document.onmousemove	= previewOnMouseMove;
	
	x = event.clientX;
	y = event.clientY;
}

function previewOnMouseMove()
{	
	if (tipobj.style.visibility!="visible")
	  return;
	if ( (Math.abs(x - event.clientX) < 30) && (Math.abs(y - event.clientY) < 30) )
		return;
		
	x = event.clientX;
	y = event.clientY;	
	restoreMouseMoveHandler();	  
	setTimeout('dismissPreview()',300);
}
