var bBlockOpenPhotoWindow = false;
// смещение по скролингу до появления окна
var top = 0;
var nie_top = 0;
// степень затемнения
var opacity = 0;
// максимальное затемнение
var max_opacity = 0.5;
// интервал затемнения
var interval_opacity = 0.1;

var clientWidth = 1000;
var first_load = 1;

var loading_html = '<div class="popup loader" style="margin-left:-40px;border:5px solid #DFE5E9"><img src="/images/loading.gif" width="32px" height="32px"/></div>';

function SetVisibleLoadingProgress () {
	var popup = document.getElementById('popup_loader');
    popup.style.top = top + 'px';
	popup.innerHTML = loading_html;
	var el = popup.getElementsByTagName('DIV')[0];
	popup.style.display = 'block';
	el.style.top = Math.ceil((popup.offsetHeight - 50) / 2) + 'px';
}

function HideLoadingProgress () {
    var popup = document.getElementById('popup_loader');
    popup.style.display = 'none';
}

function ShowPhoto(strUrl, width, height, obj) {
	// Checking if we can open this window
	/*if (bBlockOpenPhotoWindow) {
		return;
	}*/
    
	if (first_load) {
		clientWidth = document.documentElement.clientWidth;
		first_load = 0;
	}
	
	bBlockOpenPhotoWindow = true;

	if ($('popup_viewphoto')) {
        //$('popup_viewphoto').innerHTML = html_ajax_loader;
        //document.getElementById('popup_viewphoto').style.display = 'none';
		document.getElementById('pokryvalo').style.display = "block";
		SetVisibleLoadingProgress();

        ajax_updater = new Ajax.Request(strUrl + '&by_ajax=1&client_height=' + document.documentElement.clientHeight, {
			method: 'get',
			onSuccess: function (transport) {
				var response = transport.responseText || '';
				onGetContent(response, obj);
			}
		});
	}
}
/*
    flag = 1 - показать все slect`ы на странице
    flag = 0 - скрыть
    позволяет избежать их отображения в ie6
*/
function ShowHideSelect (flag) {
    var nodes = document.getElementsByTagName("SELECT");
    var vis = (flag) ? 'visible' : 'hidden';
    if (nodes != null && nodes.length) {
        for (var i=0; i<nodes.length; i++) {
            nodes[i].style.visibility = vis;
        }
    }
}

/*
    flag = 1 - показать окно
    flag = 0 - скрыть окно
*/
function PrepareStyles (flag) {
    var display = (flag) ? 'block' : 'none';
    var visible = (flag) ? 'visible' : 'hidden';
    var popup = document.getElementById('popup');
    popup.style.left = '0%';
    var scroll_to = (flag) ? 0 : top;
    if (flag) {
        top = document.documentElement.scrollTop;
        nie_top = top;
    }
    if (flag) {
        document.getElementById('popup_viewphoto').style.visibility = 'hidden';
    }
	document.getElementById('popup_viewphoto').style.display = display;

    popup.style.width = document.getElementById('img_view_photo').width + 6 + 'px';
    if (ie) {
	   ShowHideSelect(flag);
	   document.body.scroll = (flag) ? "no" : "yes";
	   document.getElementById('pokryvalo').style.top = top + 'px';
	   // no need
	   //document.getElementById('popup_loader').style.top = top + 'px';
	   document.getElementById('popup_viewphoto').style.top = top + 'px';
	} else {
		document.body.scrollTop = nie_top + 'px';
        window.scroll(0, nie_top);
	}
	if (flag) {
	    popup.style.top = Math.ceil((document.documentElement.clientHeight - popup.offsetHeight) / 2.4) + 'px';
	    var offset_left = Math.ceil((document.documentElement.clientWidth - popup.offsetWidth) / 2);
	    popup.style.marginLeft = offset_left + 'px';
	    var href = document.getElementById('view_photo_menu').getElementsByTagName('A');
	    for (var i = 0; i < href.length; i++) {
	        href[i].href = 'JavaScript:void(0);';
	    }
	}
    document.getElementsByTagName("HTML")[0].style.overflow = (flag) ? 'hidden' : 'auto';//((ie) ? 'auto' : 'visible');
}

function OnSeeContentViewphoto () {
	opacity = opacity + interval_opacity;
	if (opacity > max_opacity) {
		opacity = max_opacity;
	}
	var opacity_ie = opacity * 100;
	if (ie) {
		document.getElementById('pokryvalo').style.filter = 'alpha(opacity=' + opacity_ie + ')';
	} else {
		document.getElementById('pokryvalo').style.opacity = opacity;
	}

	if (opacity < max_opacity) {
		setTimeout(OnSeeContentViewphoto, 500 / (max_opacity / interval_opacity));
	} else {
	    document.getElementById('close_button').style.visibility = 'visible';
		document.getElementById('popup_viewphoto').style.visibility = 'visible';
	}
}

function OnCloseContentViewphoto () {
	opacity = opacity - interval_opacity;
	if (opacity < 0) {
		opacity = 0;
	}
	var opacity_ie = opacity * 100;
	if (ie) {
		document.getElementById('pokryvalo').style.filter = 'alpha(opacity=' + opacity_ie + ')';
	} else {
		document.getElementById('pokryvalo').style.opacity = opacity;
	}

	if (opacity > 0) {
		setTimeout(OnCloseContentViewphoto, 500 / (max_opacity / interval_opacity));
	} else {
		PrepareStyles(0);
		document.getElementById('pokryvalo').style.display = "none";
		document.body.style.width = clientWidth + 'px';
	}
}

function onGetContent (strResponse, obj) {
    if (!strResponse.length) {
        return;
    }

    HideLoadingProgress();

    var popup = document.getElementById('popup_viewphoto');
    popup.innerHTML = strResponse;

	document.getElementById('pokryvalo').style.display = 'block';
	PrepareStyles(1);
	OnSeeContentViewphoto();
}

function closePhotoWindow () {
    document.getElementById('popup_viewphoto').style.display = 'none';
	OnCloseContentViewphoto();
	bBlockOpenPhotoWindow = false;
	top = 0;
}
