// Работа с popup-окнами.

// void ShowImg({url|id}) 
// - или -
// void ShowImg({url|id}, width_height_str [,title])
// - или -
// void ShowImg({url|id}, ширина, высота [,title]) или
//
// Отображает картинку в попапе.
// Если ширина и высота не заданы, они автоматически подгоняются во
// время подгрузки картинки.
// Параметр width_height_str имеет вид: 'width="X" height="Y"'.
function ShowImg(url, a, b, title)
{
	var w = 50, h = 50;
	var hasSize = false;
	if (!isNaN(parseInt(a)) && !isNaN(parseInt(b))) {
		// Вызов с параметрами (url, ширина, высота, title).
		w = parseInt(a);
		h = parseInt(b);
		hasSize = true;
	} else {
		// Вызов с параметрами (url, width_height_str, title).
		var sizestr = a;
		title = b;
		var t = new String(sizestr);
		var p = t.match(/width="?(\d+).*height="?(\d+)/);
		if (p) {
			w = parseInt(p[1]);
			h = parseInt(p[2]);
			hasSize = true;
		}
	}
	if (typeof(url) == 'number') {
		// Задан ID картинки, а не ее URL.
		url = "images/" + url;
	}
	// Нужно учитывать тэг <BASE> из родительского документа.
	var baseTags = document.getElementsByTagName('base');
	var base = baseTags && baseTags.length? baseTags[baseTags.length-1].href : '';
	var maxW = screen.width - 40;
	var maxH = screen.height - 100;
	var winW = w+1, winH = h+1;
	if (winW > maxW) winW = maxW;
	if (winH > maxH) winH = maxH;
	win = open('', 'wndPopup', "width="+winW+",height="+winH+",left="+(screen.width-winW)/2+",top="+(screen.height-winH-40)/2+",resizable=1,scrollbars=1");
	win.document.write('<head><title>' + (title||'') + '<' + '/title><'+'/head>');
	win.document.write('<body bgcolor="#FFFFFF" style="margin:0; padding:0; overflow:auto">');
	win.document.write('<base href="' + base + '">');
	win.document.write('<img name="image" src="' + url + '"' + (hasSize? ' width='+w+' height='+h : '') + '>');
	if (!hasSize) {
		// Если размер не указан, делаем авторесайз.
		win.document.write('<sc'+'ript language="JavaScript">opener.windowResizerByImage(window, "image")<'+'/script>');
	}
	win.document.write('<'+'/body>');
	win.document.close();
}

// Производит ресайз окна для popup-картинки в момент ее загрузки.
function windowResizerByImage(win, iname)
{
	var img = win.document.images[iname];
	if (img && img.width && img.height) {
		var w = img.width;
		var h = img.height;
		win.resizeTo(w, h);
		win.moveTo((screen.width-w)/2, (screen.height-h-40)/2);
	} else {
		setTimeout(function() { windowResizer(win, iname) }, 1000);
	}
}
