function pr(i){
	for(q in i)
		document.writeln(q + "<br>");
}


/*************************************************************
* CSS-настройки всплывающего блока
*************************************************************/
var PopupDivs_CSS_textAlign = "center";
var PopupDivs_CSS_padding = "15px";
var PopupDivs_CSS_backgroundColor = "#FFFFFF";
var PopupDivs_CSS_border = "1px solid #000000";
// Остальные CSS-настройки прописаны в функции show_image.
// Без понимания сути их работы, трогать их не рекомендуется.

/*************************************************************
* Имя идентификатора id генерируемого всплывающего DIV-блока
*************************************************************/
var PopupDivs_hiddenDivId = 'fdgfdgd';

/*************************************************************
* Массив, который в дальнейшем будет заполнен  
* путями до изображений.
*************************************************************/
var PopupDivs_image_array = new Array();

/*************************************************************
* Массив, который в дальнейшем будет заполнен 
* ссылками на теги a с классом равным loadImage
*************************************************************/
var links = null;

/*************************************************************
* Метод ищет в массиве значение arg и 
* возвращает индекс элемента, если оно там присутствует
* и -1 если заданного значения в массиве нет
*************************************************************/
Array.prototype.PopupDivs_in_array = function(arg) {
	for (var i=0; i<this.length; i++) {
		if(this[i]==arg) {
		    return i;
		}
	}

	return -1;
}


/*************************************************************
* Функция возвращает массив ссылок на тэги tagName 
* с классом className
*************************************************************/
function PopupDivs_getElementsByClassName(tagName, className){
    var arr = new Array();
    var allImageAnhors = document.getElementsByTagName(tagName);
    var j = 0;

    for (var i=0; i<allImageAnhors.length; i++) {
	var tClasName = allImageAnhors.item(i).className;
        if (tClasName == className || tClasName.indexOf(className) != -1) {
            arr[j++] = allImageAnhors.item(i);
        }
    }
    
    return arr;
}


/*************************************************************
* Функция подгружает изображения и формирует глобальный массив 
* с путями к этим изображениям.
*************************************************************/
function PopupDivs_loadHiddenImages()
{
    var j = 0;
    for (i=0; i<links.length; i++)
    {
        var tsrc = links[i].getAttribute("href");
		
		// Протокол и хост
		var protocol_host = location.protocol + "//" + location.host;
		
		// Поскольку Mozilla возвращает значение атрибута href без протокола и хоста
		// то в случае их отсутствия, приписываем их к адресу изображения.
		if (tsrc.indexOf(protocol_host) == -1) {
			tsrc = protocol_host + tsrc;
		}
		
        eval("loadImage_" + i + " = new Image();\
        loadImage_" + i + ".src = '" + tsrc + "'");
        PopupDivs_image_array[j++] = tsrc;
    }
}


/*************************************************************
* Функция показывает слой с изображением.
*************************************************************/
function PopupDivs_show_image(src){
	// Находим в массиве путей изображений порядковый номер изображения с путём src
    var index = PopupDivs_image_array.PopupDivs_in_array(src);
	// Заполнение вспывающего блока
    var padding = 16;
	
	// Если не наши в масиве изображение с таким путём, то выходим
    if (index == -1) {
        return false;
    }
	
	// Получаем ссылку на объект изображения
    var lnk = eval("loadImage_" + index + ";");
    var imagePath = lnk.src;
    var imageHeight = lnk.height;
    var imageWidth = lnk.width;
	
	// Сколько пикселов скрола
	var documentScrollTop = document.documentElement.scrollTop;
	var documentScrollLeft = document.documentElement.scrollLeft;

	// Размеры окна
	var documentClientHeight = document.documentElement.clientHeight;
	var documentClientWidth = document.documentElement.clientWidth;
	
	// Эта ситуация для Оперы, которая не понимает documentElement
	if(documentClientHeight==0 && !documentClientWidth==0){
		var documentClientHeight = document.body.clientHeight;
		var documentClientWidth = document.body.clientWidth;
	}
	
	var left = Math.floor((documentClientWidth/2) - (imageWidth/2)) + documentScrollLeft - padding;
	var top = Math.floor((documentClientHeight/2) - (imageHeight/2)) + documentScrollTop - padding;

	//<div id="hiddenDivImage"><img alt="" style="cursor:pointer" onclick="document.getElementById('hiddenDivImage').style.display = 'none'" src="" /></div>
	
	// Если div-блок ещё не создан в дереве документа, то создаём его.
	if(!document.getElementById(PopupDivs_hiddenDivId))
	{
		// Создаём элемент div
		var div_lnk = document.createElement("div");
		// Добавляем его в документ, как одного из потомков body
		document.getElementsByTagName("body")[0].appendChild(div_lnk);
		// Создаём элемент img
		var img_lnk = document.createElement("img");
		// Делаем img потомком div-элемента
		div_lnk.appendChild(img_lnk);
		
		img_lnk.alt = "";
		img_lnk.style.cursor = "pointer";
		img_lnk.onclick = function() {PopupDivs_hide_image()};
		img_lnk.style.zindex = "999";
	
		div_lnk.id = PopupDivs_hiddenDivId;
		div_lnk.style.zindex = "998";
	
		div_lnk.style.textAlign = PopupDivs_CSS_textAlign;
		div_lnk.style.padding = PopupDivs_CSS_padding;
		div_lnk.style.backgroundColor = PopupDivs_CSS_backgroundColor;
		div_lnk.style.border = PopupDivs_CSS_border;
	}
	else
	{
		var div_lnk = document.getElementById(PopupDivs_hiddenDivId);
		var img_lnk = div_lnk.firstChild;
	}
	
	img_lnk.src = imagePath;
	
	div_lnk.style.position = "absolute";
	div_lnk.style.position = "absolute";
	div_lnk.style.width = imageWidth + 'px';
	div_lnk.style.height = imageHeight + 'px';
	div_lnk.style.top = top + 'px';
	div_lnk.style.left = left + 'px';
	div_lnk.style.display = "block";
}

function PopupDivs_hide_image()
{
	var div_lnk = document.getElementById(PopupDivs_hiddenDivId).style.display = "none";
}