
var JIM_T_ID;
var JIM_Pos = 0;
var JIM_Dir = 2;
var JIM_Len = 0;

function JIM_Animate() {
	var IndiEL = document.getElementById("JIM_Progress");
	if (IndiEL != undefined) {
		if (JIM_Pos == 0) { JIM_Len += JIM_Dir; }
		if (JIM_Len > 32 || JIM_Pos > 79) { JIM_Pos += JIM_Dir; }
		if (JIM_Pos > 79) {	JIM_Len = JIM_Len -= JIM_Dir; }
		if (JIM_Pos > 79 && JIM_Len == 0) { JIM_Pos = 0; }
		IndiEL.style.left = JIM_Pos;
		IndiEL.style.width = JIM_Len;
	}
}

function JIM_RemoveLoading() {
	var LoaderEl = document.getElementById("JIM_Loader");
	LoaderEl.style.visibility = "hidden";
	LoaderEl.style.display = "none";
	clearInterval(JIM_T_ID);
}

var JIM_OffsetFromMouse = [10, 10]; //image x,y offsets from cursor position in pixels. Enter 0,0 for no offset
var JIM_DisplayDuration = 0; //duration in seconds image should remain visible. 0 for always.
var JIM_DefaultImageHeight = 400;	// maximum image size.
var JIM_DefaultImageWidth = 400;	// maximum image size.
var JIM_Temp_OnMouseMove;
var JIM_Image_Width;
var JIM_Image_Height;
var JIM_Sender;

function JIM_Create_GUI() {
	var GUI_HTML = "<div style=\"display: block; position: absolute; z-index: 1100; left: -800px; top: 44px;\" id=\"JIM\">";
	GUI_HTML += "<div class=\"JIM_In\">";
	GUI_HTML += "<div id=\"JIM_Temp_Load\"><img id=\"Template_Image\" alt=\"\" /></div>";
	GUI_HTML += "<div style=\"display: none; visibility: hidden;\" id=\"JIM_Loader\"><div class=\"Loader_In\">Načítáme náhled...<div class=\"Loader_BG\"><div id=\"JIM_Progress\" style=\"width: 10px;\"></div></div></div></div>";
	GUI_HTML += "<div id=\"JIM_Text\">...</div>";
	GUI_HTML += "</div></div>";
	document.body.innerHTML = (GUI_HTML + document.body.innerHTML);
	return true;
}

function JIM_Get_GUI_El() { if (document.getElementById) { return document.getElementById("JIM"); } }
function JIM_Get_Temp_Load_EL() { if (document.getElementById) { return document.getElementById("JIM_Temp_Load"); } }
function JIM_Get_Text_EL() { if (document.getElementById) { return document.getElementById("JIM_Text"); } }
function JIM_TrueBody() { return (!window.opera && document.compatMode && document.compatMode != "BackCompat") ? document.documentElement : document.body; }

function JIM_ShowTrail(Sender, Image_SRC, Title, Width, Height){
	var GUI_El = document.getElementById("JIM");
	if (GUI_El == undefined) { JIM_Create_GUI(); }
	JIM_Show(Sender, Image_SRC, Title, Width, Height);
}

function JIM_HideTrail() {	
	var GUIEl = JIM_Get_GUI_El();
	JIM_Sender.onmousemove = JIM_Temp_OnMouseMove;
	GUIEl.style.display = "none";
	GUIEl.style.left = "-500px";
}

function JIM_Show(Sender, Image_SRC, Title, width, height) {
	JIM_Sender = Sender;
	if (width > JIM_DefaultImageWidth) {
		var k = JIM_DefaultImageWidth / width;
		width = JIM_DefaultImageWidth;
		height = (height * k);
	}
	
	var LoaderEl = document.getElementById("JIM_Loader");
	LoaderEl.style.display = "block";
	LoaderEl.style.visibility = "visible";
	clearInterval(JIM_T_ID);
	JIM_T_ID = setInterval("JIM_Animate()", 20);
	
	var docwidth = document.all ? JIM_TrueBody().scrollLeft+JIM_TrueBody().clientWidth : pageXOffset + window.innerWidth - JIM_OffsetFromMouse[0];
	var docheight = document.all ? Math.min(JIM_TrueBody().scrollHeight, JIM_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 > 500)) {
		( width == 0 ) ? width = JIM_DefaultImageWidth: "";
		( height == 0 ) ? height = JIM_DefaultImageHeight: "";
		
		width = parseInt(width);
		height = parseInt(height);
		
		JIM_DefaultImageHeight = height;
		JIM_DefaultImageWidth = width;
		
		JIM_Temp_OnMouseMove = Sender.onmousemove;
		Sender.onmousemove = JIM_FollowMouse;
		
    New_HTML = "<img id=\"Template_Image\" width=\"" + width + "\" height=\"" + height +"\" src=\"" + Image_SRC + "\" alt=\"" + Title + "\" onload=\"JIM_RemoveLoading();\" />";
    Temp_Load_EL = JIM_Get_Temp_Load_EL();
		Temp_Load_EL.innerHTML = New_HTML;

		Text_EL = JIM_Get_Text_EL()
		Text_EL.innerHTML = "<b>"+Title+"</b><br /><i>klikněte pro větší obrázek nebo jeho zaslání emailem</i>";

		JIM_Image_Width = width;
		JIM_Image_Height = height;
	
		var GUI_El = JIM_Get_GUI_El();
		GUI_El.style.width = JIM_Image_Width;
		GUI_El.style.height = JIM_Image_Height+15;
		GUI_El.style.display = "block";
	}
}

function JIM_FollowMouse(e) {
	var xcoord = (JIM_OffsetFromMouse[0]);
	var ycoord = JIM_OffsetFromMouse[1];
	var docwidth = document.all ? JIM_TrueBody().scrollLeft + JIM_TrueBody().clientWidth : pageXOffset + window.innerWidth - 15
	var docheight = document.all ? Math.min(JIM_TrueBody().scrollHeight, JIM_TrueBody().clientHeight) : Math.min(window.innerHeight)
	if (typeof e != "undefined"){
		if (docwidth - e.pageX < JIM_DefaultImageWidth + 2 * JIM_OffsetFromMouse[0]){
			xcoord = e.pageX - Math.abs(xcoord) - JIM_DefaultImageWidth; // Move to the left side of the cursor
		} else {
			xcoord += e.pageX;
		}
		if (docheight - e.pageY < JIM_DefaultImageHeight + 2 * JIM_OffsetFromMouse[1]){
			ycoord += e.pageY - Math.max(0,(2 * JIM_OffsetFromMouse[1] + JIM_DefaultImageHeight + e.pageY - docheight - JIM_TrueBody().scrollTop));
		} else {
			ycoord += e.pageY;
		}
	} else if (typeof window.event != "undefined"){
		if (docwidth - event.clientX < JIM_DefaultImageWidth + 2 * JIM_OffsetFromMouse[0]){
			xcoord = event.clientX + JIM_TrueBody().scrollLeft -Math.abs(xcoord) - JIM_DefaultImageWidth - JIM_OffsetFromMouse[0]; // Move to the left side of the cursor
		} else {
			xcoord += JIM_TrueBody().scrollLeft+event.clientX
		}
		if (docheight - event.clientY < (JIM_DefaultImageHeight + 2 * JIM_OffsetFromMouse[1])){
			ycoord += event.clientY + JIM_TrueBody().scrollTop - Math.max(0,(2 * JIM_OffsetFromMouse[1] + JIM_DefaultImageHeight + event.clientY - docheight));
		} else {
			ycoord += JIM_TrueBody().scrollTop + event.clientY;
		}
	}
	var GUIEl = JIM_Get_GUI_El();
	GUIEl.style.left = xcoord + "px";
	GUIEl.style.top = ycoord + "px";
}

