var offsetfrommouse=[15,25]; //image x,y offsets from cursor position in pixels. Enter 0,0 for no offset
var displayduration=0; //duration in seconds image should remain visible. 0 for always.

var defaultimageheight = 40;	// maximum image size.
var defaultimagewidth = 40;	// maximum image size.

var timer;

function start_loader()
{
	timer = setTimeout("stop_loader();",2000);
}

function stop_loading()
{
	var im = document.getElementById("dispimage");
	var ld = document.getElementById("disploader");
	
	ld.style.display = "none";
	ld.style.visibility='hidden';
	im.style.display = "block";
	im.style.visibility = "visible";	
}

function gettrailobj()
{
	if (document.getElementById)
		return document.getElementById("preview_div").style
}

function gettrailobjnostyle()
{
	if (document.getElementById)
		return document.getElementById("preview_div")
}


function truebody()
{
	return (!window.opera && document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}


function hidetrail()
{	
	gettrailobj().display= "none";
	document.onmousemove=""
	gettrailobj().left="-500px"
	clearTimeout(timer);
}

function showtrail(imagename,width,height)
{
	
	i = imagename
	w = width
	h = height
	timer = setTimeout("show('"+i+"',w,h);",50);
}
function show(imagename,width,height)
{
	
    var docwidth=document.all? truebody().scrollLeft+truebody().clientWidth : pageXOffset+window.innerWidth - offsetfrommouse[0]
	var docheight=document.all? Math.min(truebody().scrollHeight, truebody().clientHeight) : Math.min(window.innerHeight)
	
	

	if( (navigator.userAgent.indexOf("Konqueror")==-1  || navigator.userAgent.indexOf("Firefox")!=-1 || (navigator.userAgent.indexOf("Opera")==-1 && navigator.appVersion.indexOf("MSIE")!=-1)) && (docwidth>650 && docheight>400))
	{
		
		( width == 0 ) ? width = defaultimagewidth: '';
		( height == 0 ) ? height = defaultimageheight: '';
		
		if(width > 330)
		{
			width = 330	
		}
		else if(width <= 100)
		{
			width = 150
		}
		if(height > 350)
		{
			height = 380
		}
		else if(height <= 100)
		{
			height = 160
		}
		
		imw = width
		width+=30
		
		imh = height
		height+=58
		
		defaultimageheight = height
		defaultimagewidth = width
	
		document.onmousemove=followmouse; 
				
		
		
					imagenamereal = imagename.replace("+"," ");
					imagename = imagenamereal.substr(imagenamereal,imagenamereal.lastIndexOf("."));
					imagepath = "images/"+ imagenamereal;
					
					newHTML = '';
		
					
					newHTML += '<div style="width:'+  width +'px;height:'+ height +'px;z-index:1; border:1px solid #666666; background:#595959; position:absolute;" id="dispimage" align="left">';
					
					newHTML += '<div class="heading" style = "margin-left:15px; margin-top:15px; font-family:Verdana, Arial, Helvetica, sans-serif; color:#FF9307; font-size:12px; font-weight:bold;">'+imagename+'</div>';
						
						newHTML += '<img src="' + imagepath + '" border="0" height="'+imh+'" width="'+imw+'" style="margin-left:15px; margin-top:10px"></div>';
						
						newHTML += '</div>'; 
						
					if(navigator.userAgent.indexOf("MSIE")!=-1 && navigator.userAgent.indexOf("Opera")==-1 )
					{
						frmw = width;
						frmh = height;
						newHTML += '<iframe src="about:blank" scrolling="no" frameborder="0" width="'+frmw+'" height="'+frmh+'"></iframe>';
					}
					
		//alert(newHTML);
		gettrailobjnostyle().innerHTML = newHTML;
		gettrailobj().display="block";
	}
}
			
function followmouse(e)
{

	var xcoord=offsetfrommouse[0]
	var ycoord=offsetfrommouse[1]
	
	
	
	var docwidth=document.all? truebody().scrollLeft+truebody().clientWidth : pageXOffset+window.innerWidth-15 
	var docheight=document.all? Math.min(truebody().scrollHeight, truebody().clientHeight) : Math.min(window.innerHeight)

	if (typeof e != "undefined")
	{
		//For Mozila browser
		if (docwidth - e.pageX < defaultimagewidth + 2*offsetfrommouse[0])
		{
			xcoord = e.pageX - xcoord - defaultimagewidth; // Move to the left side of the cursor
		}
		else 
		{
			xcoord += e.pageX;
		}
		if (docheight - e.pageY < defaultimageheight + 2*offsetfrommouse[1])
		{
			//ycoord += truebody().scrollTop+30;
			ycoord += e.pageY - Math.max(0,(2*offsetfrommouse[1] + defaultimageheight + e.pageY - docheight - truebody().scrollTop));
		}
		else 
		{
			ycoord += e.pageY;
		}
	} 
	else if (typeof window.event != "undefined")
	{
		//For Internet Explorer
		
		if (docwidth - event.clientX < defaultimagewidth + 2*offsetfrommouse[0])
		{
			xcoord = event.clientX - xcoord - defaultimagewidth; // Move to the left side of the cursor
			//xcoord = event.clientX + truebody().scrollLeft - xcoord - defaultimagewidth; // Move to the left side of the cursor	
		} 
		else
		{
			//xcoord += truebody().scrollLeft+event.clientX
			xcoord += event.clientX
		}
		if (docheight - event.clientY < (defaultimageheight + 2*offsetfrommouse[1]))
		{
			//ycoord += truebody().scrollTop;
			ycoord += event.clientY + truebody().scrollTop - Math.max(0,(2*offsetfrommouse[1] + defaultimageheight + event.clientY - docheight));
		} 	
		else 
		{
			ycoord += truebody().scrollTop + event.clientY;
		}
	}
	gettrailobj().left=xcoord+"px"
	gettrailobj().top=ycoord+10+"px"
}


