var offsetfrommouse=[15,15]; //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 currentimageheight = 270;	// maximum image size.

if (document.getElementById || document.all){
	document.write('<div id="trailimage">');
	document.write('</div>');
}

function gettrailobj(){
	if (document.getElementById)
		return document.getElementById("trailimage").style
	else if (document.all)
		return document.all.trailimagid.style
}

function gettrailobjnostyle(){
	if (document.getElementById)
		return document.getElementById("trailimage")
	else if (document.all)
		return document.all.trailimagid
}


function truebody(){
	return (!window.opera && document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

function showtrail(imagename,name,sku,colour){

	document.onmousemove=followmouse;
	

	newHTML = '<div class="trail-name">'+name+'</div>';
	newHTML += '<div class="trail-sku">' + sku + '</div><div class="trail-colour">'+colour+'</div>';
	newHTML += '<div class="trail-image"><img src="' + imagename + '"></div>';
	
	gettrailobjnostyle().innerHTML = newHTML;
	gettrailobj().visibility="visible";
}


function hidetrail(){
	gettrailobj().visibility="hidden";
	document.onmousemove="";
	gettrailobj().left="-500px";
}

function followmouse(e){

  var coord = calculateMouseCoords(e, 292, currentimageheight);
	gettrailobj().left=coord[0]+"px"
	gettrailobj().top=coord[1]+"px"

}

function calculateMouseCoords(e, popupWidth, popupHeight)
{
	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(document.body.offsetHeight, window.innerHeight)

	if (typeof e != "undefined"){
		if (docwidth - e.pageX < popupWidth){
			xcoord = e.pageX - xcoord - popupWidth; // Move to the left side of the cursor
		} else {
			xcoord += e.pageX;
		}
		if (docheight - e.pageY < (popupHeight + 110)){
			ycoord += e.pageY - Math.max(0,(110 + popupHeight + e.pageY - docheight - truebody().scrollTop));
		} else {
			ycoord += e.pageY;
		}

	} else if (typeof window.event != "undefined"){
		if (docwidth - event.clientX < popupWidth){
			xcoord = event.clientX + truebody().scrollLeft - xcoord - popupWidth; // Move to the left side of the cursor
		} else {
			xcoord += truebody().scrollLeft+event.clientX
		}
		if (docheight - event.clientY < (popupHeight + 110)){
			ycoord += event.clientY + truebody().scrollTop - Math.max(0,(110 + popupHeight + event.clientY - docheight));
		} else {
			ycoord += truebody().scrollTop + event.clientY;
		}
	}

	var docwidth=document.all? truebody().scrollLeft+truebody().clientWidth : pageXOffset+window.innerWidth-15
	var docheight=document.all? Math.max(truebody().scrollHeight, truebody().clientHeight) : Math.max(document.body.offsetHeight, window.innerHeight)

  return [xcoord, ycoord];

}
function bfFollow(e)
{
  var coord = calculateMouseCoords(e, 312, 267);
	$('bf-help-popup').style.left=coord[0]+"px"
	$('bf-help-popup').style.top=coord[1]+"px"

}

function showBFHelp()
{
  var el = $('bf-help-popup');
	document.onmousemove=bfFollow;
  el.show();
}
function hideBFHelp()
{
  $('bf-help-popup').hide();
 	document.onmousemove="";
}

