var timer = 0;
var zoom_level = 0.0;
var image_width = 0;
var image_height = 0;

function ShowImage(src)
{
	if (timer != 0)
	{
		return;
	}

	var div = document.getElementById('preview_box');
	if (div)
	{
		if (BrowserDetect.browser.indexOf("Explorer") != -1)
		{
			if (div.childNodes.length > 0)
			{
				div.removeChild(div.childNodes[0]);
			}
			
			var imgdiv = document.createElement("preview_img_div");
			imgdiv.innerHTML = '<a href="javascript: return false;" onclick="return HideImage();"><img id="preview_img" src="' + src + '" border="2"/></a>';
			div.appendChild(imgdiv);
		}
		else
		{
			div.innerHTML = '<a href="#" onclick="HideImage()"><img id="preview_img" src="' + src + '" border="2"/></a>';
		}
		
		var img = document.getElementById('preview_img');
		if (img)
		{
			var box = document.getElementById('close_box');
			if (box)
			{
				box.src = 'images/loading.gif';
			}

			var div = document.getElementById('preview');
			if (div)
			{
				div.style.visibility = 'visible';
			}
			
			div = document.getElementById('preview_box');
			if (div)
			{
				div.style.visibility = 'hidden';
			}
			
			img.onload = function()
			{
				var box = document.getElementById('close_box');
				if (box)
				{
					box.src = 'images/close.gif';
				}

				var div = document.getElementById('preview_box');
				if (div)
				{
					div.style.visibility = 'visible';
				}

				image_width = img.width;
				image_height = img.height;
				zoom_level = 50.0;
				SetImageSize(zoom_level);
				Zoom(1.20, 50.0, 100.0);
			}
		}
	}
}

function HideImage()
{
	if (timer != 0)
	{
		return;
	}

	zoom_level = 100.0;
	Zoom(0.80, 50.0, 100.0);
}

function SetImageSize(size)
{
	var img = document.getElementById('preview_img');
	if (img)
	{
		img.width = parseFloat(image_width) * (size/100.0);
		img.height = parseFloat(image_height) * (size/100.0); // 'auto';

		if (img.filters) 
		{
			img.style.filter = 'alpha(opacity=' + size + ')';
		}
		else 
		{
			img.style.opacity = size / 100.0;
		}
	}
}

function Zoom(rate, min, max)
{
	zoom_level *= rate;

	if (zoom_level < min)
	{
		var div = document.getElementById('preview');
		if (div)
		{
			div.style.visibility = 'hidden';
		}
		div = document.getElementById('preview_box');
		if (div)
		{
			div.style.visibility = 'hidden';
		}
		zoom_level = min;
		timer = 0;
	}
	else if (zoom_level >= max)
	{
		zoom_level = max;
		timer = 0;
	}
	else
	{
		timer = setTimeout("Zoom(" + rate + "," + min + "," + max + ")", 50);
	}

	SetImageSize(zoom_level);
}


