function fixPNG (element)
{
	if (/MSIE (5\.5|6).+Win/.test(navigator.userAgent))
	{
		var src;
	
		if (element.tagName=='IMG')
		{
			if (/\.png$/.test(element.src))
			{
			src = element.src;
			element.src = "/f/blank.gif";
			}
		}
		else
		{
			src = element.currentStyle.backgroundImage.match(/url\("(.+\.png)"\)/i)
			if (src)
			{
				src = src[1];
				element.runtimeStyle.backgroundImage="none";
			}
		}
		if (src) element.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "',sizingMethod='scale')";
	}
}
function max_height(element, value) {
	return (element.parentNode.clientHeight >= value ? (value + 'px') : '100%');
}
function max_width(element, value) {
	return (element.parentNode.clientWidth >= value ? (value + 'px') : '100%');
}
function min_height(element, value) {
	return (element.parentNode.clientHeight <= value ? (value + 'px') : '100%');
}
function min_width(element, value) {
	return (element.parentNode.clientWidth <= value ? (value + 'px') : '100%');
}

function get_page_scroll() {
	var x_scroll, y_scroll;	
	
	if (self.pageYOffset) {
		y_scroll = self.pageYOffset;
		x_scroll = self.pageXOffset;
	} else if (document.documentElement && document.documentElement.scrollTop) {
		y_scroll = document.documentElement.scrollTop;
		x_scroll = document.documentElement.scrollLeft;
	} else if (document.body) {
		y_scroll = document.body.scrollTop;
		x_scroll = document.body.scrollLeft;	
	}	
	return [x_scroll, y_scroll];
}

function show_popup(e, url, w, h, text, images) {
	var x, y, page_scroll;
	
	var caller = arguments.callee;
	
	var close_popup = function () {
		if (caller.container) {
			caller.container.parentNode.removeChild(caller.container);		
			caller.container = null;		
		}
		return false;
	};
	
	var each = function(array, iterator) {
		if (array !== undefined && array.constructor == Array) {
			for (var i = 0; i < array.length; i++) {
				if (iterator) iterator(array[i], i);
			}
		}
	}
	
	var find = function (success) {
		var result = null;
		each(images, function (image, index) {
			if (image.url == url) success(image, index);
		});
		return result;
	}
	
	var next = function () {
		find(function (image, i) {
			var next = images[i+1];
			if (next !== undefined) {
				caller(e, next.url, next.width, next.height, next.text, images);
			}
		});
		return false;
	}
	
	next.is = function () {
		var result = false;
		find(function (image, i) {
			result = images[i+1] !== undefined;
		});
		return result;
	}
	
	var prev = function () {
		find(function (image, i) {
			var prev = images[i-1];
			if (prev !== undefined) {
				caller(e, prev.url, prev.width, prev.height, prev.text, images);
			}
		});
		return false;
	}
	
	prev.is = function () {
		var result = false;
		find(function (image, i) {
			result = images[i-1] !== undefined;
		});
		return result;
	}
	
	var button = function (name, title, image, image_hover) {
		var a = document.createElement('a');
		a.className = name;
		a.href = '';		
		if (title) a.title = title;
		
		each([image, image_hover], function (src) {			
			if (src) {
				var class_name = '';
				if (/\.png$/i.test(src)) {
					class_name = 'png';
				}
				if (/hover/i.test(src)) {
					 class_name += ' hover';
				}				
				var img = new Image();
				img.className = class_name;
				img.src = src;
				a.appendChild(img);
			}
		});		
		return a;
	}
	
	if (caller.container) {
		close_popup();
	}
	
	var container = document.createElement('div');
	container.className = 'image-container';
	container.style.visibility = 'hidden';
	
	var div = document.createElement('div');
	div.className = 'image';
	if (w) div.style.width = w + 'px';
	if (h) div.style.height = h + 'px';
	var img = new Image();
	img.src = url;
	div.appendChild(img);
	container.appendChild(div);
	
	if (text) {
		var div = document.createElement('div');
		div.className = 'caption';
		if (w) div.style.width = w + 'px';
		div.innerHTML = text;
		container.appendChild(div);
	}
	
	var div = document.createElement('div');
	div.className = 'nav';
	if (w) div.style.width = w + 'px';
	
	//draw close	
	var btn_close = button('close', 'Закрыть', '/f/ico_close.png', '/f/ico_close_hover.png');
	btn_close.onclick = close_popup;
	div.appendChild(btn_close);
		
	//draw next
	if (next.is()) {
		var btn_next = button('next', 'Следующая', '/f/ico_next.png', '/f/ico_next_hover.png');
		btn_next.onclick = next;
		div.appendChild(btn_next);
	}
	
	//draw prev
	if (prev.is()) {
		var btn_prev = button('prev', 'Предыдущая', '/f/ico_prev.png', '/f/ico_prev_hover.png');
		btn_prev.onclick = prev;
		div.appendChild(btn_prev);
	}
	
	container.appendChild(div);
	document.body.appendChild(container);
	
	page_scroll = get_page_scroll();
	
	x = (document.documentElement.clientWidth - container.offsetWidth) / 2 + page_scroll[0];
	y = (document.documentElement.clientHeight - container.offsetHeight) / 2 + page_scroll[1];
	
	container.style.left = x + 'px';
	container.style.top = y + 'px';
	
	container.style.visibility = 'visible';	
	arguments.callee.container = container;	
	
	return false;
}