﻿var __CurrentDialogId = null;
var __CurrentShadowId;
var __prevDocSize;
var __OnDialogCloseCallback = null;
var __FirstShow = false;
var __DoAnimate = false;

function ShowDialog(containerId, shadowId, callbackFunction, animate) {
	if (__CurrentDialogId != null)
	    return;

	// callback
	if (typeof (callbackFunction) != 'undefined')
		__OnDialogCloseCallback = callbackFunction;

	// make select boxes hidden
	HideSelects();

	__prevDocSize = null;
	__CurrentDialogId = containerId;
	__CurrentShadowId = typeof (shadowId) == 'undefined' ? 'shadow' : shadowId;

	// Resize
	__DoAnimate = typeof (animate) != 'undefined' && animate;
	__FirstShow = true;
	//$(__CurrentDialogId).addClass("redraw").removeClass("redraw");
	ResizePopup();
	//$(__CurrentDialogId).addClass("redraw").removeClass("redraw");
	//JQ(containerId).nextAll('css3-container').css('display', 'block');
	
}

function CloseDialog() {

	if (__CurrentDialogId == null)
		return;

	// init variables
	var objPopup = $get(__CurrentDialogId);
	var objShadow = $get(__CurrentShadowId);

	__CurrentDialogId = null;

	// hide popup and shadow
	objPopup.style.display = 'none';

	if (__DoAnimate) {
		JQ('#' + __CurrentShadowId).fadeOut(400, function () {
			__HideShadow();
		});
	} else {
		objShadow.style.display = 'none';
		__HideShadow();
}


//JQ(containerId).nextAll('css3-container').css('display', 'none');
//$(__CurrentDialogId).addClass("redraw").removeClass("redraw");

}

function __HideShadow() {
	var objShadow = $get(__CurrentShadowId);
	objShadow.style.height = '0px';
	objShadow.style.width = '0px';

	// make select boxes visible
	ShowSelects();

	// callback
	if (__OnDialogCloseCallback != null) {
		setTimeout(__OnDialogCloseCallback, 0);
		__OnDialogCloseCallback = null;
	}
}

function ResizePopup() {
	if (__CurrentDialogId == null)
		return;
	
	var resizeShadow = __prevDocSize != JQ(document).width() + ';' + JQ(document).height();

	// init variables
	var objPopup = $get(__CurrentDialogId);
	var objShadow = $get(__CurrentShadowId);

	__CurrentDialogId = null;

	if (resizeShadow) {
		// hide popup and shadow
		objPopup.style.display = 'none';
		objShadow.style.display = 'none';
		objShadow.style.height = '0px';
		objShadow.style.width = '0px';
	}

	// page size for popup
	var viewportWidth = JQ(window).width();
	var viewportHeight = window.innerHeight ? window.innerHeight : JQ(window).height();
	var scrollTop = JQ(window).scrollTop();
	var scrollLeft = JQ(window).scrollLeft();
	
	// popup
	var s1 = getRelativeOffsetPosition(objPopup);
	var widthBox = parseInt(objPopup.style.width);
	var heightBox = parseInt(objPopup.style.height);
	var popupTop = scrollTop + ((viewportHeight - heightBox) / 2) - s1.y;
	var popupLeft = scrollLeft + ((viewportWidth - widthBox) / 2) - s1.x;
	//objPopup.style.top = (popupTop < 0) ? "0px" : popupTop + "px";
	//objPopup.style.left = (popupLeft < 0) ? "0px" : popupLeft + "px";
	// show popup

	if (__DoAnimate && __FirstShow) {
		objPopup.style.visibility = 'hidden';
	} else {
        objPopup.style.display = 'block';
	}

	if (resizeShadow) {
		// page size for shadow
		var pageWidth = document.body.scrollWidth; //JQ(document).width();
		var pageHeight = document.body.scrollHeight; //JQ(document).height();
		if (pageWidth < viewportWidth)
			pageWidth = viewportWidth;
		if (pageHeight < viewportHeight)
			pageHeight = viewportHeight;
		objShadow.style.height = pageHeight + 'px';
		objShadow.style.width = pageWidth + 'px';
		// show shadow
		if (__DoAnimate && __FirstShow) {
			if (JQ.browser.msie) {
				JQ('#' + __CurrentShadowId).css("opacity", "0.5");
			}
			JQ('#' + __CurrentShadowId).fadeIn(400, function () {
			    
			    //objPopup.style.display = 'block';
			    
                __prevDocSize = JQ(document).width() + ';' + JQ(document).height();

			    
			}
            );

            //JQ("div#containerMOIOverlay").fadeIn(900);
            objPopup.style.visibility = '';
            JQ(objPopup).fadeIn(1200);
            
		}
		else {
			objShadow.style.display = 'block';
		}
	}

	if (!__DoAnimate || !__FirstShow) {
		__prevDocSize = JQ(document).width() + ';' + JQ(document).height();
	}

	__FirstShow = false;
	__CurrentDialogId = objPopup.id;
}

$addHandler(window, "resize", ResizePopup);
$addHandler(window, "scroll", ResizePopup);

if (typeof (Sys) != 'undefined') Sys.Application.notifyScriptLoaded();
