﻿var __DlgAction = { Function:"Function", Url:"Url", FormSubmit:"FormSubmit", Confirm:"Confirm" };
var __DlgBtn = { OkCancel:"OkCancel", Ok:"Ok", YesNo:"YesNo" };
var __DlgBtnId = { Ok:"btnDlgOk", Cancel:"btnDlgCancel", Yes:"btnDlgYes", No:"btnDlgNo" };
var __DlgDragObj = new Object(); 
__DlgDragObj.zIndex = 0, __DlgDragObj.cursorStartX = 0, __DlgDragObj.cursorStartY = 0;
__DlgDragObj.startLeft = 0, __DlgDragObj.startTop = 0;
__DlgDragObj.prevX = 0, __DlgDragObj.prevY = 0;
var __DlgResizeObj = new Object();
__DlgResizeObj.zIndex = 0; __DlgResizeObj.minWidth = 0; __DlgResizeObj.minHeight = 0;
__DlgResizeObj.width = 0; __DlgResizeObj.height = 0;
__DlgResizeObj.startX = 0; __DlgResizeObj.startY = 0;
__DlgResizeObj.prevX = 0, __DlgResizeObj.prevY = 0;
__DlgResizeObj.hasStatusBar = false; __DlgResizeObj.hasIframe = false;
var __DlgArrTranslations = new Array();
var __DlgInITBase = false, __DlgEditorPage = false, __DlgInParentDlg = false;
var __DlgButtonFocusId = "", __DlgButtons = "";
var __DlgObj, __DlgObjDiv, __DlgHeader, __DlgHeaderContent, __DlgTitle, __DlgContent, __DlgContentBorder;
var __DlgFooter, __DlgFooterBorder, __DlgStatus, __DlgResize, __DlgActive, __DlgCloseImg, __DlgOnCloseFnc;
var __DlgIfrId = "__DialogIframe";
var __DlgConfirmedSet = false, __DlgConfirmed = false, __DlgConfirmClickButtonId = "";
var __DlgMinWidth = 150; __DlgMinHeight = 50, __DlgIframeWidthDiff = 20;
var __DlgCloseFocusField;

function __DialogButtons(dButtons, dActionType, dAction, dForm, dKeepOpen, dOkBtnText, dCancelBtnText)
{
    var okHtml = "", cancelHtml = "onclick=\"__CloseDialog();\"";
    var okBtnText, cancelBtnText;
    okBtnText = dOkBtnText != '' ? dOkBtnText : __DlgGetTranslation("btnOK");
    cancelBtnText = dCancelBtnText != '' ? dCancelBtnText : __DlgGetTranslation("btnCancel");
    var bHtml = ''
    switch (dActionType)
    {
        case __DlgAction.Function :
        {
            if (!dKeepOpen)
            {
                okHtml = "onclick=\"__CloseDialog();" + dAction + ";\"";
            }
            else
            {
                okHtml = "onclick=\"__DisableDialogButtons(\'" + dButtons + "\');" + dAction + ";\"";
            }
            break;
        }
        case __DlgAction.Url :
        {
            okHtml = "onclick=\"__CloseDialog();";
            if (dAction != "")
            {
                okHtml += "location=\'" + dAction + "\';";
            }
            okHtml += '\"';
            break;
        }
        case __DlgAction.FormSubmit :
        {
            okHtml = "onclick=\"document.getElementById(\'" + dForm + "\').submit();\"";
            break;
        }
        case __DlgAction.Confirm :
        {
            okHtml = "onclick=\"__DlgSetConfirmation(true);\"";
            cancelHtml = "onclick=\"__DlgSetConfirmation(false);\"";
            break;
        }
        default :
        {
            okHtml = "onclick=\"__CloseDialog();\"";
            break;
        }
    }
    switch (dButtons)
    {
        case __DlgBtn.OkCancel :
        {
            bHtml = "<input id=\"" +  __DlgBtnId.Ok + "\" class=\"Dlg__Button\" type=\"button\" value=\"" + okBtnText + "\" " + okHtml + " /> <input id=\"" + __DlgBtnId.Cancel + "\" class=\"Dlg__Button\" type=\"button\" value=\"" + cancelBtnText + "\" " + cancelHtml + " />";
            break;
        }
        case __DlgBtn.Ok :
        {
            bHtml = "<input id=\"" + __DlgBtnId.Ok + "\" class=\"Dlg__Button\" type=\"button\" value=\"" + okBtnText + "\" " + okHtml + " />";
            break;
        }
        case __DlgBtn.YesNo :
        {
            bHtml = "<input id=\"" + __DlgBtnId.Yes + "\" class=\"Dlg__Button\" type=\"button\" value=\"" + __DlgGetTranslation('btnYes') + "\" " + okHtml + " /> <input id=\"" + __DlgBtnId.No + "\" class=\"Dlg__Button\" type=\"button\" value=\"" + __DlgGetTranslation('btnNo') + "\" " + cancelHtml + " />";
            break;
        }
    }
    return bHtml;
}

function __DisableDialogButtons(dButtons)
{
    var btnOk, btnCancel, btnYes, btnNo;
    switch (dButtons)
    {
        case __DlgBtn.OkCancel :
        {
            btnOk = document.getElementById(__DlgBtnId.Ok);
            btnCancel = document.getElementById(__DlgBtnId.Cancel);
            if (btnOk)
            {
                btnOk.disabled = true;
            }
            if (btnCancel)
            {
                btnCancel.disabled = true;
            }
            break;
        }
        case __DlgBtn.Ok :
        {
            btnOk = document.getElementById(__DlgBtnId.Ok);
            if (btnOk)
            {
                btnOk.disabled = true;
            }
            break;
        }
        case __DlgBtn.YesNo :
        {
            btnYes = document.getElementById(__DlgBtnId.Yes);
            btnNo = document.getElementById(__DlgBtnId.No);
            if (btnYes)
            {
                btnYes.disabled = true;
            }
            if (btnNo)
            {
                btnNo.disabled = true;
            }
            break;
        }
    }
}

function __SetDialogSize(dW,dH,dLeft,dTop,hasStatusBar,setPosition,resizeIframe)
{
    if (dW > 0)
    {
        __DlgContent.style.width = dW + "px";
        __DlgObjDiv.style.width = dW + "px";
        __DlgHeader.style.width = dW + "px";
        __DlgFooter.style.width = dW + "px";
    }
    if (dH > 0)
    {
        var footerHeight = __GetHeight(__DlgFooter);
        __DlgContent.style.height = dH + "px";
        __DlgObjDiv.style.height = (dH 
                                    + __GetHeight(__DlgHeaderContent) 
                                    + __GetPaddingTop(__DlgContent) 
                                    + __GetPaddingBottom(__DlgContent) 
                                    +  footerHeight) 
                                    + (hasStatusBar ? footerHeight : 0)
                                    + __GetBorderTopWidth(__DlgHeader)
                                    + __GetBorderBottomWidth(__DlgFooterBorder)
                                    + "px";
    }
    if (resizeIframe)
    {
        var ifr = document.getElementById(__DlgIfrId);
        if (ifr)
        {
            ifr.width = dW - __DlgIframeWidthDiff;
            ifr.height = dH;
        }
    }
    if (setPosition)
    {
        if (isNaN(dTop))
        {
            var dlgTotalHeight = __GetHeight(__DlgObjDiv);
            if  (__DlgGetWinHeight() > dlgTotalHeight)
            {
                var dlgTopPos = Math.round((__DlgGetWinHeight() - dlgTotalHeight) / 2);
                if (__DlgGetPageScrollY() <= 0)
                {
                    __DlgObjDiv.style.top = dlgTopPos.toString() + "px";
                }
                else
                {
                    __DlgObjDiv.style.top = (__DlgGetPageScrollY() + dlgTopPos) + "px";
                }
            }
            else
            {
                __DlgObjDiv.style.top = "0px";
            }
        }
        else
        {
            __DlgObjDiv.style.top = dTop + "px";
        }
        if (isNaN(dLeft))
        {
            if (((parseInt(__DlgGetWinWidth()) - (dW)) / 2) > 0)
            {
                __DlgObjDiv.style.left = (parseInt(__DlgGetWinWidth()) - (dW)) / 2 + "px";
            }
            else
            {
                __DlgObjDiv.style.left = "0px";
            }
        }
        else
        {
            __DlgObjDiv.style.left = dLeft + "px";
        }
    }
}

function __SetDialogStatusText(sText)
{
    __DlgStatus.innerHTML = "&nbsp;" + sText;
}

function __CloseDialog(timeOut)
{
    if ((__DlgOnCloseFnc != null) && (typeof __DlgOnCloseFnc == "function"))
    {
        __DlgOnCloseFnc();
    }
    else
    {
        if ((timeOut) && (!isNaN(parseInt(timeOut))))
        {
            var i = setTimeout("__CloseDialog()", timeOut);
        }
        else
        {
            __DlgActive = false;
            __DlgButtons = "";
            __DlgButtonFocusId = "";
            if (__DlgObj)
            {
                __DlgTitle.innerHTML = "";
                __DlgContent.innerHTML = "";
                __HideDialogItem(__DlgObj);
            }
        }
        if (__DlgInITBase)
        {
            if (ActiveItemFileType && IsWebFile && ShowHideContentFrame)
            {
                if ((ActiveItemFileType != '') && (!IsWebFile(ActiveItemFileType)))
                {
                    ShowHideContentFrame(true);
                }
            }
        }
        if (__DlgEditorPage)
        {
            __OnEditorPageCloseDialog();
        }
    }
    if (__DlgCloseFocusField != null)
    {
        try
        {
            __DlgCloseFocusField.focus();
        }
        catch (e)
        { }
        __DlgCloseFocusField = null;
    }
}

function __OnEditorPageCloseDialog()
{
    try
    {
        if (HtmlFromDialog != '')
        {
            if (IsIE)
            {
                if (!HtmlPlaceholder)
                {
                    InsertHtml(HtmlFromDialog);
                }
                else
                {
                    HtmlPlaceholder.outerHTML = HtmlFromDialog;
                }
            }
            else if ((IsSafari) && (HtmlNode))
            {
                HtmlNode.innerHTML += HtmlFromDialog;
            }
            else
            {
                InsertHtml(HtmlFromDialog);
            }
        }
        else
        {
            if ((IsIE) && (HtmlPlaceholder))
            {
                HtmlPlaceholder.outerHTML = '';
            }
        }
        HtmlPlaceholder = null;
        HtmlFromDialog = '';    
    }
    catch (e)
    { }
}

function __ConfirmDialog(dTitle, dMessage, dButtons, dWidth, dHeight, dButtonId)
{
    if (!__DlgConfirmedSet)
    {
        __DlgConfirmed = false;
        __DlgConfirmClickButtonId = dButtonId;
        __OpenDialog(dTitle, dMessage, dButtons, __DlgAction.Confirm, "", "", "", dWidth, dHeight, false, "", false, "", "");
        return false;
    }
    else
    {
        __DlgConfirmedSet = false;
        return __DlgConfirmed;
    }
}

function __OpenDialog(dTitle, dMessage, dButtons, dActionType, dAction, dSrc, dForm, dWidth, dHeight, dShowStatusBar, dStatusText, dKeepOpen, dOkBtnText, dCancelBtnText, dAdditionalJsOnClose, dResize, dTextAlign, dTextPadding, dTextPaddingTop, dTextPaddingBottom)
{
/*
dAction = Javascript-function or URL
dActionType = fnc|url|sbm|end
dSrc = External source file (aspx/asp/html/php etc.)
dForm = ID of form to be submitted
*/
    if (__DlgInITBase)
    {
        if (navigator.userAgent)
        {
            if (navigator.userAgent.indexOf('Mac OS X') != -1)
            {
                if (!isNaN(dWidth))
                {
                    dWidth = Math.round(dWidth * 1.2);
                }
                if (!isNaN(dHeight))
                {
                    dHeight = Math.round(dHeight * 1.2);
                }
            }
        }
        if (ActiveItemFileType && IsWebFile && ShowHideContentFrame)
        {
            if ((ActiveItemFileType != '') && (!IsWebFile(ActiveItemFileType)))
            {
                try
                {
                    ShowHideContentFrame(false);
                }
                catch(e)
                {}
            }
        }
    }
    if (__DlgEditorPage)
    {
        try
        {
            HtmlFromDialog = '';
            if (IsIE)
            {
                SetRangeBookmarkIE();
            } 
        }
        catch (e)
        { }
    }
    if (dShowStatusBar == null)
    {
        dShowStatusBar = false;
    }
    if (!dStatusText)
    {
        dStatusText = '';
    }
    if (dKeepOpen == null)
    {
        dKeepOpen = false;
    }
    if (!dOkBtnText)
    {
        dOkBtnText = '';
    }
    if (!dCancelBtnText)
    {
        dCancelBtnText = '';
    }
    if (!dAdditionalJsOnClose)
    {
        dAdditionalJsOnClose = '';
    }
    if (dResize == null)
    {
        dResize = false
    }
    if (dAdditionalJsOnClose != '')
    {
        __DlgCloseImg.onclick = new Function("CloseDlg", dAdditionalJsOnClose + "__CloseDialog();");
    }
    if (!dResize)
    {
        __DlgResize.style.display = "none";
    }
    else
    {
        __DlgResize.style.display = "block";
        __DlgResizeObj.minWidth = dWidth;
        __DlgResizeObj.minHeight = dHeight;
        __DlgResizeObj.hasStatusBar = dShowStatusBar;
        __DlgResize.onmousedown = __DialogResizeStart;
        __DlgResize.onmouseup = __DialogResizeStop;
    }
    if (dShowStatusBar)
    {
        __DlgFooter.style.display = "block";
        __DlgFooter.style.visibility = "visible";
        __SetDialogStatusText(dStatusText);
    }
    else
    {
        __DlgFooter.style.display = "none";
        __DlgFooter.style.visibility = "hidden";
    }
    if (isNaN(parseInt(dWidth)))
    {
        dWidth = __DlgMinWidth;
    }
    else if (dWidth < __DlgMinWidth)
    {
        dWidth = __DlgMinWidth;
    }
    if (isNaN(parseInt(dHeight)))
    {
        dHeight = __DlgMinHeight;
    }
    else if (dHeight < __DlgMinHeight)
    {
        dHeight = __DlgMinHeight;
    }
    __DlgContentBorder.style.width = '100%';
    __DlgFooterBorder.style.width = '100%';
    __SetDialogSize(dWidth,dHeight,NaN,NaN,dShowStatusBar,true,false);
    if (dTitle != "")
    {
        __DlgTitle.innerHTML = dTitle;
        __DlgTitle.ondblclick = function() { return false; };
        __DlgTitle.onselectstart = function() { return false; };
        __DlgContentBorder.ondblclick = function() { return false; };
        __DlgContentBorder.onselectstart = function() { return false; };
    }
    var dContent = "";
    if (dMessage != "")
    {
        var contentAlign = 'center';
        var contentPadding = '0px';
        var contentPaddingTop = '0px';
        var contentPaddingBottom = '0px';
        if (dTextAlign)
        {
            dTextAlign = dTextAlign.toLowerCase();
            if ((dTextAlign == "left") || (dTextAlign == "center") || (dTextAlign == "right"))
            {
                contentAlign = dTextAlign;
            }
        }
        if ((dTextPadding) && (!isNaN(dTextPadding)))
        {
            contentPadding = dTextPadding.toString() + "px";
        }
        if ((dTextPaddingTop) && (!isNaN(dTextPaddingTop)))
        {
            contentPaddingTop = dTextPaddingTop.toString() + "px";
        }
        if ((dTextPaddingBottom) && (!isNaN(dTextPaddingBottom)))
        {
            contentPaddingBottom = dTextPaddingBottom.toString() + "px";
        }
        dContent += '<div style=\"text-align:' + contentAlign + ';padding-left:' + contentPadding + ';padding-right:' + contentPadding + ';padding-top:' + contentPaddingTop + ';padding-bottom:' + contentPaddingBottom + ';\">' + dMessage + '<br /></div>';
    }
    if (dSrc == "")
    {
        if (dButtons != "")
        {
            dContent += __DialogButtons(dButtons, dActionType, dAction, dForm, dKeepOpen, dOkBtnText, dCancelBtnText);
        }
        __DlgResizeObj.hasIframe = false;
    }
    else
    {
        var fWidth = dWidth - __DlgIframeWidthDiff;;
        var fHeight = dHeight;
        dContent = "<iframe id=\"" + __DlgIfrId + "\" name=\"" + __DlgIfrId + "\" frameborder=\"0\" width=\"" + fWidth + "\" height=\"" + fHeight + "\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" src=\"\"></iframe>";
        __DlgResizeObj.hasIframe = true;
    }
    __DlgContent.innerHTML = dContent;
    if (dSrc != "")
    {
        document.getElementById(__DlgIfrId).src = dSrc;
    }
    if (dOkBtnText != "")
    {
        document.getElementById(__DlgBtnId.Ok).style.width = "auto";
        document.getElementById(__DlgBtnId.Ok).style.paddingLeft = "4px";
        document.getElementById(__DlgBtnId.Ok).style.paddingRight = "4px";
    }
    if (dCancelBtnText != "")
    {
        document.getElementById(__DlgBtnId.Cancel).style.width = "auto";
        document.getElementById(__DlgBtnId.Cancel).style.paddingLeft = "4px";
        document.getElementById(__DlgBtnId.Cancel).style.paddingRight = "4px";
    }
    __DlgActive = true;
    __DisplayDialogItem(__DlgObj);
    if ((dSrc == "") && (dButtons != ""))
    {
        __DlgButtons = dButtons;
        switch (dButtons)
        {
            case __DlgBtn.OkCancel :
            {
                __DlgButtonFocusId = __DlgBtnId.Ok;
                document.getElementById(__DlgBtnId.Ok).focus();
                break;
            }
            case __DlgBtn.Ok :
            {
                __DlgButtonFocusId = __DlgBtnId.Ok;
                document.getElementById(__DlgBtnId.Ok).focus();
                break;
            }
            case __DlgBtn.YesNo :
            {
                __DlgButtonFocusId = __DlgBtnId.No;
                document.getElementById(__DlgBtnId.No).focus();
                break;
            }
        } 
    }
    __DlgObj.style.height = ((__DlgGetPageScrollY() + __DlgGetWinHeight())) + "px";
}

function __DialogResizeStart(e)
{
    var dlgSize = __GetDialogSize();
    __DlgResizeObj.width = dlgSize.w;
    __DlgResizeObj.height = dlgSize.h;
    var mp = __GetMousePosition(e);
    __DlgResizeObj.startX = mp.x;
    __DlgResizeObj.startY = mp.y;
    __DlgResizeObj.prevX = mp.x;
    __DlgResizeObj.prevY = mp.y;
    if (document.attachEvent)
    {
        document.attachEvent("onmousemove", __DialogResizeGo);
        document.attachEvent("onmouseup", __DialogResizeStop);
    }
    else if (document.addEventListener)
    {
        document.addEventListener("mousemove", __DialogResizeGo, true);
        document.addEventListener("mouseup", __DialogResizeStop, true);
    }
    if (window.event)
    {
        window.event.cancelBubble = true;
        window.event.returnValue = false;
    }
    else
    {
        e.preventDefault();
    }
}

function __DialogResizeGo(e)
{
    var mp = __GetMousePosition(e);
    if (__PosChanged(__DlgResizeObj.prevX, __DlgResizeObj.prevY, mp.x, mp.y, 2))
    {
        var w = __DlgResizeObj.width + (mp.x - __DlgResizeObj.startX);
        var h = __DlgResizeObj.height + (mp.y - __DlgResizeObj.startY);
        if (w < __DlgResizeObj.minWidth)
        {
            w = __DlgResizeObj.minWidth;
        }
        if (h < __DlgResizeObj.minHeight)
        {
            h = __DlgResizeObj.minHeight;
        }
        __SetDialogSize(w, h, NaN, NaN, __DlgResizeObj.hasStatusBar, false, __DlgResizeObj.hasIframe);
    }
}

function __DialogResizeStop(e)
{
    if (document.detachEvent)
    {
        document.detachEvent("onmousemove", __DialogResizeGo);
        document.detachEvent("onmouseup", __DialogResizeStop);
    }
    else if (document.removeEventListener)
    {
        document.removeEventListener("mousemove", __DialogResizeGo, true);
        document.removeEventListener("mouseup", __DialogResizeStop, true);
    }
}

function __DialogDragStart(e)
{
    if ((__DlgObjDiv) && (!__DlgInParentDlg))
    {
        var dlgProps = __GetPositionAndDimensions(__DlgObjDiv, true, false);
        __DlgDragObj.startLeft = dlgProps.x;
        __DlgDragObj.startTop = dlgProps.y;
        var mp = __GetMousePosition(e);
        __DlgDragObj.cursorStartX = mp.x;
        __DlgDragObj.cursorStartY = mp.y;
        __DlgDragObj.prevX = mp.x;
        __DlgDragObj.prevY = mp.Y;
        if (document.attachEvent)
        {
            document.attachEvent("onmousemove", __DialogDragGo);
            document.attachEvent("onmouseup", __DialogDragStop);
        }
        else if (document.addEventListener)
        {
            document.addEventListener("mousemove", __DialogDragGo, true);
            document.addEventListener("mouseup", __DialogDragStop, true);
        }
        if (window.event)
        {
            window.event.cancelBubble = true;
            window.event.returnValue = false;
        }
        else
        {
            e.preventDefault();
        }
    }
}

function __DialogDragGo(e)
{
    if ((__DlgObjDiv) && (!__DlgInParentDlg))
    {
        var mp = __GetMousePosition(e);
        if (__PosChanged(__DlgDragObj.prevX, __DlgDragObj.prevY, mp.x, mp.y, 2))
        {
            __DlgObjDiv.style.left = (__DlgDragObj.startLeft + mp.x - __DlgDragObj.cursorStartX) + "px";
            __DlgObjDiv.style.top = (__DlgDragObj.startTop  + mp.y - __DlgDragObj.cursorStartY) + "px";
            __DlgDragObj.prevX = mp.x;
            __DlgDragObj.prevY = mp.y;
        }
        if (window.event)
        {
            window.event.cancelBubble = true;
            window.event.returnValue = false;
        }
        else
        {
            e.preventDefault();
        }
    }
}

function __DialogDragStop(e)
{
    if (!__DlgInParentDlg)
    {
        if (document.detachEvent)
        {
            document.detachEvent("onmousemove", __DialogDragGo);
            document.detachEvent("onmouseup", __DialogDragStop);
        }
        else if (document.removeEventListener)
        {
            document.removeEventListener("mousemove", __DialogDragGo, true);
            document.removeEventListener("mouseup", __DialogDragStop, true);
        }
    }
}

function __SwitchDialogButtonFocus()
{
    switch (__DlgButtons)
    {
        case __DlgBtn.OkCancel :
        {
            if (__DlgButtonFocusId == __DlgBtnId.Ok)
            {
                __DlgButtonFocusId = __DlgBtnId.Cancel;
                document.getElementById(__DlgBtnId.Cancel).focus();
            }
            else
            {
                __DlgButtonFocusId = __DlgBtnId.Ok;
                document.getElementById(__DlgBtnId.Ok).focus();
            }
            break;
        }
        case __DlgBtn.YesNo :
        {
            if (__DlgButtonFocusId == __DlgBtnId.Yes)
            {
                __DlgButtonFocusId = __DlgBtnId.No;
                document.getElementById(__DlgBtnId.No).focus();
            }
            else
            {
                __DlgButtonFocusId = __DlgBtnId.Yes;
                document.getElementById(__DlgBtnId.Yes).focus();
            }
            break;
        }
    }
}

function __DisplayDialogItem(itm)
{
    itm.style.display = "block";
    itm.style.visibility = "visible";
}

function __HideDialogItem(itm)
{
    itm.style.display = "none";
    itm.style.visibility = "hidden";
}

function __DlgGetWinWidth()
{
    var w = window.innerWidth;
    if (!w)
    {
        w = document.documentElement.clientWidth;
    }
    return w;
}

function __DlgGetWinHeight()
{
    var h = window.innerHeight;
    if (!h)
    {
        h = document.documentElement.clientHeight;
    }
    return parseInt(h);
}

function __DlgGetPageScrollY()
{
    var sy = 0;
    if (window.pageYOffset)
    {
        sy = window.pageYOffset;
    }
    else if (document.body.scrollTop)
    {
        sy = document.body.scrollTop;
    }
    else if (document.documentElement.scrollTop)
    {
        sy = document.documentElement.scrollTop;
    }
    return sy;
}

function __DlgGetTranslation(resKey)
{
    var tString = "";
    var tKey, tText;
    for (var i=0; i<__DlgArrTranslations.length; i++)
    {
        var tItemArr = __DlgArrTranslations[i].split("|");
        tKey = tItemArr[0];
        tText = tItemArr[1];
        if (tKey == resKey)
        {
            tString = tText;
            break;
        }
    }
    if (tString == "")
    {
        tString = "# Error: Missing translation (" + resKey + ") #";
    }
    return tString;
}

function __DlgConfigTranslations(strTrans)
{
    var tArr = strTrans.split(";");
    for (var i=0; i<tArr.length; i++)
    {
        __DlgArrTranslations.push(tArr[i]);
    }
}

function __DlgSetConfirmation(confirmValue)
{
    __DlgConfirmedSet = true;
    __DlgConfirmed = confirmValue;
    __CloseDialog();
    var confButton = document.getElementById(__DlgConfirmClickButtonId);
    if (confButton)
    {
        confButton.click();
    }
}

function __DlgDocumentKeyDown(e)
{
    if (__DlgActive)
    {
        var kc = (window.event) ? event.keyCode : e.keyCode;
        var c = unescape('%' + kc.toString(16));
        if (kc == 27)
        {
            {
                __CloseDialog();
            }
        }
        else
        {
            if (__DlgButtons != '')
            {
                if ((kc == 37) || (kc == 39))
                {
                    __SwitchDialogButtonFocus();
                }
                else if ((__DlgButtons == __DlgBtn.YesNo ) && (c == __DlgGetTranslation('keyYes')))
                {
                    document.getElementById(__DlgBtnId.Yes).click();
                }
                else if ((__DlgButtons == __DlgBtn.YesNo) && (c == __DlgGetTranslation('keyNo')))
                {
                    __CloseDialog();
                }
            }
        }
    }
}

function __GetHeight(domObject)
{
    var h = 0;
    if (domObject.currentStyle)
    {
        h = domObject.currentStyle.height;
    }
    else if (document.defaultView.getComputedStyle)
    {
        h = document.defaultView.getComputedStyle(domObject,'').height;
    }
    return parseInt(h);
}

function __GetPaddingTop(obj)
{
    var pt = 0;
    if (obj.currentStyle)
    {
        pt = obj.currentStyle.paddingTop;
    }
    else if (document.defaultView.getComputedStyle)
    {
        pt = document.defaultView.getComputedStyle(obj,'').paddingTop;
    }
    return parseInt(pt);
}

function __GetPaddingBottom(obj)
{
    var pb = 0;
    if (obj.currentStyle)
    {
        pb = obj.currentStyle.paddingBottom;
    }
    else if (document.defaultView.getComputedStyle)
    {
        pb = document.defaultView.getComputedStyle(obj,'').paddingBottom;
    }
    return parseInt(pb);
}

function __GetBorderTopWidth(obj)
{
    var btw = 0;
    if (obj.currentStyle)
    {
        btw = obj.currentStyle.borderTopWidth;
    }
    else if (document.defaultView.getComputedStyle)
    {
        btw = document.defaultView.getComputedStyle(obj,'').borderTopWidth;
    }
    return parseInt(btw);
}

function __GetBorderBottomWidth(obj)
{
    var bbw = 0;
    if (obj.currentStyle)
    {
        bbw = obj.currentStyle.borderBottomWidth;
    }
    else if (document.defaultView.getComputedStyle)
    {
        bbw = document.defaultView.getComputedStyle(obj,'').borderBottomWidth;
    }
    return parseInt(bbw);
}

function __GetMousePosition(e)
{
    var p = {x:0,y:0};
    if (window.event)
    {
        p.x = window.event.clientX + document.documentElement.scrollLeft + document.body.scrollLeft;
        p.y = window.event.clientY + document.documentElement.scrollTop + document.body.scrollTop;
    }
    else
    {
        p.x = e.clientX + window.scrollX;
        p.y = e.clientY + window.scrollY;
    }
    return p;
}

function __GetPositionAndDimensions(domObject, getPos, getDim)
{
    var p = {x:0,y:0,w:0,h:0};
    if (domObject)
    {
        if (getDim)
        {
            p.w = domObject.offsetWidth;
            p.h = domObject.offsetHeight;
        }
        if (getPos)
        {
            var x = 0;
            var y = 0;
            var domObjX = domObject;
            var domObjY = domObject;
            if (domObjX.offsetParent)
            {
                while(1) 
                {
                    x += domObjX.offsetLeft;
                    if (!domObjX.offsetParent)
                    {
                        break;
                    }
                    domObjX = domObjX.offsetParent;
                }
            }
            else if (domObjX.x)
            {
                x += domObjX.x;
            }
            p.x = x;
            if (domObjY.offsetParent)
            {
                while(1)
                {
                    y += domObjY.offsetTop;
                    if (!domObjY.offsetParent)
                    {
                        break;
                    }
                    domObjY = domObjY.offsetParent;
                }
            }
            else if (domObjY.y)
            {
                y += domObjY.y;
            }
            p.y = y;
        }
    }
    return p;
}

function __GetDialogSize()
{
    var ds = {w:0,h:0};
    var dlgProps = __GetPositionAndDimensions(__DlgContent, false, true);
    var pt = __GetPaddingTop(__DlgContent);
    var pb = __GetPaddingBottom(__DlgContent);
    ds.w = dlgProps.w;
    ds.h = dlgProps.h - (pt + pb);
    return ds;
}

function __PosChanged(prevX, prevY, newX, newY, minChange)
{
    var xDiff = Math.abs(prevX - newX);
    var yDiff = Math.abs(prevY - newY);
    if ((xDiff >= minChange) || (yDiff >= minChange))
    {
        return true;
    }
    else
    {
        return false;
    }
}