/*
Simple Image Trail script- By JavaScriptKit.com
Visit http://www.javascriptkit.com for this script and more
This notice must stay intact
*/

var offsetfrommouse=[35,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 border = 10;

var timer;

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 hidepreview(){	
	gettrailobj().display= "none";
	document.onmousemove=""
	gettrailobj().left="-500px"
	clearTimeout(timer);
}

function preview(imagename,title){
	i = imagename
	t = title
	timer = setTimeout("retrieveData('"+i+"',t);",200);
}

function xmlHttpObject() {
    var xmlHttp;
    
    try {
        // Firefox, Opera 8.0+, Safari
        xmlHttp=new XMLHttpRequest();
    }
    
    catch (e) {
        // Internet Explorer
        try {
            xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e) {
            try {
                xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch (e) {
                alert("Your browser does not support AJAX!");
                return false;
            }
        }
    }
    
    return xmlHttp;
}

function retrieveData(imagename, title)
{
    var xmlHttp = xmlHttpObject();
    
    xmlHttp.onreadystatechange = function()
    {
        if (xmlHttp.readyState == 4) {
            show(xmlHttp.responseText, title);
        }
    }
        
    xmlHttp.open("GET", "imageData.php?"+imagename, true);
    xmlHttp.send(null);
}

function show(command,title){
    var width = 1;
    var height = 1;
    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>200 && docheight>200)) {
		( width == 0 ) ? width = defaultimagewidth: '';
		( height == 0 ) ? height = defaultimageheight: '';
			
		width += 2 * border
		height += 2 * border + 150
		defaultimageheight = height
		defaultimagewidth = width
	
		document.onmousemove=followmouse; 
        
        newHTML = '<table cellspacing="' + border + '">';
        newHTML = newHTML + '<tr><td><span class="style4">' + ' '+title + '</span></td></tr>';

        newHTML = newHTML + '<tr><td>';
        newHTML = newHTML + '<div id="loader_container"><div align="center" class="style4"><br>Loading...</div>';
        newHTML = newHTML + '</div></td></tr>';
		
        newHTML = newHTML + command;
		
		gettrailobjnostyle().innerHTML = newHTML;
		gettrailobj().display = "block";
		gettrailobj().left = "-1000px";
	}
}

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"){
		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 += e.pageY - Math.max(0,(2*offsetfrommouse[1] + defaultimageheight + e.pageY - docheight - truebody().scrollTop));
		} else {
			ycoord += e.pageY;
		}

	} else if (typeof window.event != "undefined"){
		if (docwidth - event.clientX < defaultimagewidth + 2*offsetfrommouse[0]){
			xcoord = event.clientX + truebody().scrollLeft - xcoord - defaultimagewidth; // Move to the left side of the cursor
		} else {
			xcoord += truebody().scrollLeft+event.clientX
		}
		if (docheight - event.clientY < (defaultimageheight + 2*offsetfrommouse[1])){
			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+"px"

}




/* loader:  */

var t_id = setInterval(animate,20);
var pos=0;
var dir=2;
var len=0;

function animate()
{
	var elem = document.getElementById('progress');
	if(elem != null) {
	if (pos==0) len += dir;
	if (len>32 || pos>79) pos += dir;
	if (pos>79) len -= dir;
	if (pos>79 && len==0) pos=0;
	elem.style.left = pos;
	elem.style.width = len;
}

}

function remove_loading() {
	this.clearInterval(t_id);
	var targelem = document.getElementById('loader_container');
	targelem.style.display='none';
	targelem.style.visibility='hidden';
	var t_id = setInterval(animate,60);
    defaultimageheight = document.getElementById('bigpreview').height + 2 * border + 150;
    defaultimagewidth = document.getElementById('bigpreview').width + 2 * border;
}