
function MouseTrailer(_el,_d){

	var el = _el;
	var offsetfrommouse=[15,10]; // Offset. Enter 0,0 for no offset
	var displayduration=_d; // duration in seconds image should remain visible. 0 for always.
	
//	if (displayduration>0)
//		this.setTimeout('alert("HERE")', displayduration*1000);

	if (document.getElementById || document.all){
		/*
		var div = document.createElement("div");
		div.id = 'trailimageid';
		div.name = 'trailimageid';
		div.style.position = 'absolute';
		div.style.visibility = 'hidden';
		div.style.left = '0px';
		div.style.top = '0px';
		div.style.overflow = 'hidden';
		div.style.left = '0px';
		// filter:alpha(opacity=100);-moz-opacity:1;
		
		el.appendChild(div);
		*/
		
		el.innerHTML = '<div id="trailimageid" style="position:absolute;visibility:hidden;left:0px;top:0px;overflow:hidden;z-index:100;filter:alpha(opacity=100);-moz-opacity:1;">trail</div>';
	}
	
	var trailobject;
	if (document.getElementById){
		trailobject = document.getElementById("trailimageid");
	}
	else if (document.all){
		trailobject = document.all.trailimagid;
	}
	
	document._trailobject = trailobject;
	
	this.setImage = function(imgsrc){
		document._trailobject.innerHTML = '<img src="'+imgsrc+'" border="0">';
	}
	
	this.setText = function(str){
		document._trailobject.innerHTML = str;
	}
	
	this.setVisible = function(b){
		document._trailobject.style.visibility = b? 'visible': 'hidden';
	}
	
	this.setBackground = function(c){
		document._trailobject.style.background = c;
	}
	
	this.setBorder = function(bstyle){
		document._trailobject.style.border = bstyle;
	}
	
	this.setOpacity = function(opacity){
		if( document._trailobject.style.MozOpacity ){
			// Firefox
			document._trailobject.style.MozOpacity = opacity / 100;
		}
		else if( document._trailobject.filters ){
			// IE
			document._trailobject.filters.alpha.opacity = opacity;
		}
	}

	
	this.hidetrail = function(){
		document._trailobject.style.visibility='hidden';
		if( document.removeEventListener ){
			document.removeEventListener('mousemove', this.followmouse, false);
		}
		else if( document.detachEvent ){
			document.detachEvent('onmousemove');
		}
		else{
			document.onmousemove = '';
		}
	}
	

	this.followmouse = function(e){

		var body = (!window.opera && document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body;
		var xcoord=offsetfrommouse[0];
		var ycoord=offsetfrommouse[1];
		if (typeof window.event !="undefined"){
			xcoord+=body.scrollLeft+event.clientX;
			ycoord+=body.scrollTop+event.clientY;
		}
		else if (typeof e != "undefined"){
			xcoord+=e.pageX;
			ycoord+=e.pageY;
		}
		var docwidth=document.all? body.scrollLeft+body.clientWidth : pageXOffset+window.innerWidth-15;
		var docheight=document.all? Math.max(body.scrollHeight, body.clientHeight) : Math.max(document.body.offsetHeight, window.innerHeight);
		
		if (xcoord+parseInt(document._trailobject.style.width)+3>docwidth || ycoord+parseInt(document._trailobject.style.height)> docheight)
			document._trailobject.style.display="none";
		else 
			document._trailobject.style.display="";
		
		document._trailobject.style.left=xcoord+"px";
		document._trailobject.style.top=ycoord+"px";
	}
	
	this.trail = function(){
		if (document.addEventListener){
			document.addEventListener('mousemove', this.followmouse, false);
		}
		else if( document.attachEvent ){
			document.attachEvent('onmousemove', this.followmouse);
		}
		else{
			document.onmousemove = this.followmouse;
		}
		/*
		if (displayduration>0)
			setTimeout("hidetrail()", displayduration*1000);
		*/
	}
}

