function WebApplication()
{
    this.trMainResize = function(evt)
    {
        var table = document.getElementById('tableMain');
        table.style.height = parseFloat(document.body.clientHeight - 61) +"px";
    }
    
    this.ChartResize = function(evt)
    {
        //var cell = document.getElementById('CellRF');
        //cell.style.height = parseFloat(cell.clientWidth/5)+"px";
        ChartRF.render("chartdiv");
        //var cellfo = document.getElementById('CellFO');
        //cellfo.style.height = parseFloat(cellfo.clientWidth/5)+"px";//2.4
        ChartFO.render("chartFOdiv");
    }
    
    this.selectDocument = function(MetaObjClass, ObjId)
    {
        this.Form.NavigatorObjectType.value = MetaObjClass;
        this.Form.NavigatorObjectValue.value = ObjId;
        if (this.chooseDocument(MetaObjClass))
        {
            Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(this.afterDocumentLoad);
            //this.Form.NavigatorObjectClick.click();
            __doPostBack(this.Form.NavigatorObjectClick.id,'');
        }
    }
    		
    this.afterDocumentLoad = function()
    {
        /// <summary>
        /// обработчик события после загрузки содержимого документа
        /// </summary>
        setTimeout("App.updateSplitter()", 100);
        //if (App.isFirefox)
        //if (!App.isSafari)
        
        setTimeout("App.setDocumentHeight()", 100);  
        Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(App.afterPostBack);
    	Sys.WebForms.PageRequestManager.getInstance().remove_pageLoaded(App.afterDocumentLoad);
    }
    
    this.afterPostBack = function()
    {
        App.setDocumentHeight();
    }
    
    this.updateSplitter = function()
	{
	    var splitter = null;
	    if (this.ExpressPanel && this.ExpressPanel.style.display == "")
	        splitter = App.getExpressSplitter();
	    if (this.ReportPanel && this.ReportPanel.style.display == "")
	        splitter = App.getReportSplitter();
	    if (splitter)
            splitter.update();
	}
	
    this.chooseDocument = function(DocType)
    {
        this.FolderPanel.style.display = "none";
        this.FolderUpdatePanel.innerHTML = "";
        this.ExpressPanel.style.display = "none";
        //this.ExpressDimensionPanel.innerHTML = "";
        //this.ExpressViewPanel.innerHTML = "";
        this.ReportPanel.style.display = "none";
        //this.ReportControlsUpdatePanel.innerHTML = "";
        //this.ReportViewUpdatePanel.innerHTML = "";
        this.ModellerPanel.style.display = "none";
        //this.ModellerUpdatePanel.innerHTML = "";
        this.ModelSpacePanel.style.display = "none";
        this.ModelSpaceUpdatePanel.innerHTML = "";
        this.WorkspacePanel.style.display = "none";
        this.WorkspaceUpdatePanel.innerHTML = "";
        this.TasksContainerPanel.style.display = "none";
        this.TasksContainerUpdatePanel.innerHTML = "";
        if (Styler.beforeUpdateStyles.length==0)
        {
			Styler.beforeUpdateStyles.push(new Function("App.UpdateProgress.style.visibility = \"hidden\"; App.DimensionPanelProgress.style.display = \"none\";"));
			Styler.onShowControls.push(new Function("Flag", "App.showReportControls(Flag);"));
		};
        Styler.StylePanel = null;
        Styler.StyleSplitter = null;
        //this.FolderPanel.childNodes[0].innerHTML = "";
        //setTimeout(this.ExpressViewPanel.uniqueID+".innerHTML = '';", 50);
        //setTimeout("document.getElementById(\"" + this.ExpressViewPanel + "\").innerHTML = '';", 50);
        setTimeout("$get(\""+this.ExpressViewPanel.id+"\").innerHTML = '';", 50);
        
        this.UpdateProgress.style.visibility = "visible";
        switch(DocType)
        {
        case "KE_CLASS_FOLDER":
            this.FolderPanel.style.display = "";
            return true;
        case "KE_CLASS_AUTOCUBE":
        case "KE_CLASS_STDCUBE":
        case "KE_CLASS_CUBEVIEW":
        case "KE_CLASS_CALCCUBE":
        case "KE_CLASS_EXPRESSREPORT":
            this.ExpressPanel.style.display = "";
            Styler.StylePanel = this.ExpressViewPanel;
            Styler.StyleSplitter = this.getExpressSplitter();
            Styler.StyleSplitter.update();
            return true;
        case "KE_CLASS_PROCEDURALREPORT":
            this.ReportPanel.style.display = "";
            Styler.StylePanel = this.ReportViewPanel;
            var Splitter = this.getReportSplitter();
            if (Splitter)
            {   
                Styler.StyleSplitter = Splitter;
                Styler.StyleSplitter.update();
                Splitter.element.setAttribute("NewReport","true");
            }
            return true;
        case "KE_CLASS_MSPROBLEM":
            this.ModelSpacePanel.style.display = "";
            return true;
        case "KE_CLASS_MODELSPACE":
            return true;
        case "KE_CLASS_MODELLER":
            this.ModellerPanel.style.display = "";
            return true;
        case "KE_CLASS_WORKSPACE":
            this.WorkspacePanel.style.display = "";
            return true;
            break;
        case "KE_CLASS_TASK_CONTAINTER":
            this.TasksContainerPanel.style.display = "";
            return true;
            break;    
        };
        return false;
    }
    this.onGridSelect = function(Item)
    {
        return App.selectDocument(Item.Cells[5].Text, Item.Cells[1].Text);
    }
    this.onHeaderSelect = function(MetaObjClass, ObjId)
    {
        return App.selectDocument(MetaObjClass, ObjId);
    }
    this.onMenuSelect = function(sender, eventArgs)
    {
        return App.selectDocument(sender.MetabaseObjectClass, sender.ID);
    }
    this.onChangeDimensionOperation = function(Control, Operation)
    {
        this.DimensionPanelProgress.style.display = "";
    }
    this.onMainSplitterResizeEnd = function(sender, eventArgs)
    {
        setTimeout("App.resetMainSplitter()", 50);
    }
    this.onMainSplitterPaneCollapse = function(sender, eventArgs)
    {
        setTimeout("App.resetMainSplitter()", 50);
    }
    this.onMainSplitterPaneExpand = function(sender, eventArgs)
    {
        setTimeout("App.resetMainSplitter()", 50);
    }
    
    this.onSplitterResizeEnd = function(sender, eventArgs)
    {
        App.resetSplitterSizes(sender);
    }
    this.resetSplitterSizes = function(Splitter)
    {
        if(this.isIE)
        {
            var PaneTd = Splitter.Panes[0].element;
            if (PaneTd)
                PaneTd.childNodes[0].style.width = null;
            PaneTd = Splitter.Panes[1].element;
            if (PaneTd)
                PaneTd.childNodes[0].style.width = null;
            document.recalc(true);
        }
    };
    this.resetMainSplitter = function()
    {
        var Splitter = App.getExpressSplitter();
        if (Splitter)
        {
            var SplitterTable = Splitter.element;
            if (SplitterTable)
            {
                Splitter.update();
                SplitterTable.style.width = "100%";
                App.resetSplitterSizes(Splitter);
            }
        }
        Splitter = App.getReportSplitter();
        if (Splitter)
        {
            var SplitterTable = Splitter.element;
            if (SplitterTable)
            {
                Splitter.update();
                SplitterTable.style.width = "100%";
                App.resetSplitterSizes(Splitter);
            }
        }        
    }
    this.showDimensionContextMenu = function(eventArgs, TreeNode, Selector)
    {
        var DimCtxMenu = this.DimensionTreeMenu;
        DimCtxMenu.ContextControlId = TreeNode.ParentTreeView.ClientControlId;
        if (typeof(TreeComboManager)!="undefined")
        {
            TreeComboManager.lock(true);
            DimCtxMenu.add_contextMenuHide(App.hideDimensionContextMenu);
        };
        this.ActiveTreeViewSelector = Selector;
        this.ActiveTreeViewNode = TreeNode;
        this.initDimensionContextMenu(TreeNode)
        DimCtxMenu.showContextMenu(eventArgs.get_event(), TreeNode);
    }
    this.showLightDimensionContextMenu = function(TreeNode, event)
    {
        if (!event)event=window.event; 
        var DimCtxMenu = this.DimensionTreeMenu;
        DimCtxMenu.LightContextControl = TreeNode;
        DimCtxMenu.LightContextNode = null;
        DimCtxMenu.ContextControlId = TreeNode.id;
        var element;
        if (this.isIE)
            element = event.srcElement;
        if (this.isFirefox)
            element = event.target;
        if (element.className == "Node")
        {
            DimCtxMenu.LightContextNode = element;        
        }
        if (element.parentNode.className == "Node")
        {
            DimCtxMenu.LightContextNode = element.parentNode;
        }
        if (typeof(TreeComboManager)!="undefined")
        {
            TreeComboManager.lock(true);
            DimCtxMenu.add_contextMenuHide(App.hideDimensionContextMenu);
        };
        this.initDimensionLightContextMenu(DimCtxMenu.LightContextNode);
        
        DimCtxMenu.showContextMenu(event.clientX, event.clientY);
    }
    this.hideDimensionContextMenu = function(sender, eventArgs)
    {
        var DimCtxMenu = App.DimensionTreeMenu;
        DimCtxMenu.remove_contextMenuHide(App.hideDimensionContextMenu);
        if (typeof(TreeComboManager)!="undefined")
            TreeComboManager.lock(false);
    }
    this.initDimensionContextMenu = function(TreeNode)
    {
        var DimCtxMenu = this.DimensionTreeMenu;
        DimCtxMenu.beginUpdate();
        if ((TreeNode.get_nodes().get_length()>0) || (TreeNode.get_contentCallbackUrl()))
        {
	        DimCtxMenu.findItemById("SelectChildren").set_enabled(true);
            DimCtxMenu.findItemById("UnselectChildren").set_enabled(true);
        } else
        {
	        DimCtxMenu.findItemById("SelectChildren").set_enabled(false);
            DimCtxMenu.findItemById("UnselectChildren").set_enabled(false);
        }
        DimCtxMenu.endUpdate();
    }
    this.initDimensionLightContextMenu = function(TreeDomNode)
    {
        var Node = null;
        var DimCtxMenu = this.DimensionTreeMenu;
        DimCtxMenu.beginUpdate();
        if (TreeDomNode != null)
        {
            Node = new TreeNode(TreeDomNode);
            if (Node.isRootNode())
                TreeDomNode = null;    
        }
        if (TreeDomNode == null)
        {
            DimCtxMenu.findItemById("SelectLevel").set_enabled(false);
            DimCtxMenu.findItemById("UnselectLevel").set_enabled(false);
	        DimCtxMenu.findItemById("SelectChildren").set_enabled(false);
            DimCtxMenu.findItemById("UnselectChildren").set_enabled(false);
        }
        else
        {
			Node = new TreeNode(TreeDomNode);
			if (Node.getTreeView().getMultiselect())
			{
				DimCtxMenu.findItemById("SelectLevel").set_enabled(true);
				DimCtxMenu.findItemById("UnselectLevel").set_enabled(true);
				DimCtxMenu.findItemById("SelectAll").set_enabled(true);
				if (Node.getChildrenCount() > 0)
				{
					DimCtxMenu.findItemById("SelectChildren").set_enabled(true);
					DimCtxMenu.findItemById("UnselectChildren").set_enabled(true);
				}
				else
				{
					DimCtxMenu.findItemById("SelectChildren").set_enabled(false);
					DimCtxMenu.findItemById("UnselectChildren").set_enabled(false);
				}
            }
            else
            {
				DimCtxMenu.findItemById("SelectAll").set_enabled(false);
				DimCtxMenu.findItemById("SelectLevel").set_enabled(false);
				DimCtxMenu.findItemById("UnselectLevel").set_enabled(false);
				DimCtxMenu.findItemById("SelectChildren").set_enabled(false);
				DimCtxMenu.findItemById("UnselectChildren").set_enabled(false);
            }
        }
        DimCtxMenu.endUpdate();
    }
    this.clickDimensionContextMenu = function(MenuId)
    {
        if (App.ActiveTreeViewSelector)
            App.ActiveTreeViewSelector.executeMenuCommand(App.ActiveTreeViewNode, MenuId);
        var DimCtxMenu = this.DimensionTreeMenu;
        if (DimCtxMenu.LightContextControl)
            if (typeof(TreeViewManager)!="undefined")
                if (TreeViewManager)
                    TreeViewManager.executeMenuCommand(MenuId, DimCtxMenu.LightContextControl, DimCtxMenu.LightContextNode);
    }
    this.getAppDomObject = function(ObjId)
    {
        var Obj = null;
        if (typeof(ObjId)=="undefined")
            return Obj;
        if (eval("typeof("+ObjId+")")!="undefined")
            Obj = eval(ObjId);
        return (Obj==null)? $get(ObjId): Obj;
    }
    this.getAppFormDomObject = function(ObjId)
    {
        if (eval("typeof(App.Form."+ObjId+")")=="undefined")
            return null;
        return eval("App.Form."+ObjId);
    }
    this.getMainSplitter = function()
    {
        return App.getAppDomObject(App.MainSplitterId);
    }
    this.getExpressSplitter = function()
    {
        return App.getAppDomObject(App.ExpressViewSplitterId);
    }
    this.getReportSplitter = function()
    {
        var Splitter = App.getAppDomObject(App.ReportViewSplitterId);
        if (Splitter)
        {
            if ((Splitter.element.parentNode.style.display+"").toLowerCase()!="none")
                return Splitter;
        };
        return null;
    }
    this.getModalDialogContents = function()
    {
        return App.getAppDomObject(App.ModalDialogContentsId);
    }
    this.getModalDialogDataField = function()
    {
        return App.getAppFormDomObject(App.ModalDialogDataFieldId);
    }
    this.getModalDialogDataSendButton = function()
    {
        return App.getAppFormDomObject(App.ModalDialogDataSendButtonId);
    }
    this.beginShowModalDialog = function(DialogId)
    {
        this.SelectControlArray = null;
        var SelectObjects = document.body.getElementsByTagName("SELECT");
        var cnt = SelectObjects.length;
        if (cnt)
        {
            this.SelectControlArray = new Array();
            for (var i=0; i<cnt; i++)
            {
                var Control = SelectObjects[i];
                if ((Control.style.visibility+"").toLowerCase() != "hidden")
                    if ((Control.style.display+"").toLowerCase() != "none")
                    {
                        this.SelectControlArray.push(Control);
                        Control.style.visibility = "hidden";
                    }
            }
        }
        var ModalDialogBackGround = null;
        if(this.isIE)
            ModalDialogBackGround = this.ModalDialogPanel.previousSibling;
        else
            ModalDialogBackGround = this.ModalDialogPanel.previousSibling.previousSibling;
        ModalDialogBackGround.style.display = "";
        this.ModalDialogPanel.style.display = "";
        var Hidden = this.getModalDialogDataField();
        if (Hidden)
            Hidden.value = DialogId;
    }
    this.endShowModalDialog = function(DialogId)
    {
        var Button = this.getModalDialogDataSendButton();
        if (Button)
        {
            Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(App.modalDialogLoaded);
            __doPostBack(Button.id,'');
        } else
        {
            this.ModalDialogPanel.style.display = "none";
            ModalDialogBackGround.style.display = "none";
        };
    }
    this.showModalDialog = function(DialogId)
    {
		this.ModalDialogPanel.style.height = document.body.clientHeight + "px";
		if (this.isFirefox)
			this.UpdateProgressTable.style.height = document.body.clientHeight + "px";
        this.beginShowModalDialog(DialogId);
        this.endShowModalDialog(DialogId);
    }
    this.modalDialogLoaded = function(sender, args)
    {
        Sys.WebForms.PageRequestManager.getInstance().remove_pageLoaded(App.modalDialogLoaded);
        if (App.isFirefox)
        {
	        App.ModalDialogPanel.style.visibility = 'hidden';
	        setTimeout("App.ModalDialogPanel.style.visibility = 'visible';", 50);
	    }
    }
    this.showModalWaitMessage = function(MsgText, ImgSrc, HideAfterPostback)
    {
        this.beginShowModalDialog("");
        var Contents = this.getModalDialogContents();
        var img = null;
        if (Contents)
        {
            Contents.innerHTML = "";
            var div = document.createElement("div");
            div.className = "ModalWaitMessage";
            Contents.appendChild(div);
            
            var span = document.createElement("SPAN");
            if (typeof(span.textContent) != "undefined")
                span.textContent = MsgText;
            else
                span.innerText = MsgText;
            if (ImgSrc && ImgSrc != "")
            {
                img = document.createElement("IMG");
                img.src = ImgSrc;
                br = document.createElement("BR");
                div.appendChild(img);
                div.appendChild(br);
            } 
            div.appendChild(span);   
        }
        if (HideAfterPostback)
            Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(App.modalWaitMessageLoaded);
    }
    this.modalWaitMessageLoaded = function(sender, args)
    {
        Sys.WebForms.PageRequestManager.getInstance().remove_pageLoaded(App.modalWaitMessageLoaded);
        App.hideModalWaitMessage();
    }
    this.hideModalWaitMessage = function()
    {
        return this.hideModalDialog();
    }
    this.hideModalDialog = function()
    {
        var Hidden = this.getModalDialogDataField();
        if (Hidden)
            Hidden.value = "";
        this.ModalDialogPanel.style.display = "none";
        var ModalDialogBackGround = null;
        if(this.isIE)
            ModalDialogBackGround = this.ModalDialogPanel.previousSibling;
        else
            ModalDialogBackGround = this.ModalDialogPanel.previousSibling.previousSibling;
        ModalDialogBackGround.style.display = "none";
        //this.ModalDialogPanel.previousSibling.style.display = "none";
        if (this.SelectControlArray)
        {
            var cnt = this.SelectControlArray.length;
            for(var i=0; i<cnt; i++)
                this.SelectControlArray[i].style.visibility = "visible";
        }
        var Contents = this.getModalDialogContents();
        if (Contents)
            //setTimeout(Contents.uniqueID+".innerHTML = ''", 50);
            setTimeout("$get(\""+Contents.id+"\").innerHTML = ''", 50);
        var Splitter = this.getMainSplitter();
        if (Splitter)
            Splitter.update();
    }
    this.showReportControls = function(Flag)
    {
        var Splitter = this.getReportSplitter();
        if (Splitter)
        {
            if (Splitter.element.getAttribute("NewReport") == "true")
            {
                if (Splitter.Panes[0].Collapsed)
                {   
                    Splitter.Panes[0].expand();
                    Splitter.update();
                }
            }
            collapsed = (typeof(Splitter.Panes[0].Collapsed)!="undefined") ? Splitter.Panes[0].Collapsed : false;
            if (!Flag)
                Splitter.Panes[0].collapse();
            var Cells = Splitter.element.rows[0].cells;
            Cells[0].style.display = (Flag && !collapsed) ? "" : "none";
            Cells[1].style.display = (Flag) ? "" : "none";
            Splitter.element.setAttribute("NewReport","false");
        }
    }
    this.DragDimension = function(NodeFrom, NodeTo)
    {
        var DimId = NodeFrom.getAttribute("dimid");
        var DimSrc = NodeTo.getAttribute("dimsrc");
        var DimOrd = NodeTo.getAttribute("dimorder");
        var HiddenId = NodeTo.UserData;
        if (!DimOrd)
            DimOrd = "0";
        var Hidden = document.getElementById(HiddenId);
        if (!DimSrc)
        {
            switch(NodeTo.DragType)
            {
            case 0:
                DimSrc = "r";
                break;
            case 1:
                DimSrc = "c";
                break;
            }
        }
        if ((DimSrc) && (Hidden))
        {
       
            var Command = DimSrc + DimId + ((DimOrd!="0")? ("-" + DimOrd): "");
            Hidden.value = Command;
            this.onChangeDimensionOperation(Hidden, Command);
            __doPostBack(this.DimensionRefreshButtonId,'');
        }
    }
    
    this.SetUpdatePanelTableHeight = function(UpdatePanelNode, specOffset)
    {
            var Table = null;
            for (var i=0;i<UpdatePanelNode.childNodes.length;i++)
            {
                var childNode = UpdatePanelNode.childNodes[i];
                if (childNode.nodeName=="TABLE")
                {
                    Table = childNode;
                    break;
                }
            }    
            var MainPaneDiv = null;
            if  (UpdatePanelNode.id.toLowerCase().indexOf("workspace") > -1)
                MainPaneDiv = UpdatePanelNode.parentNode.parentNode.parentNode;
            else
                MainPaneDiv = UpdatePanelNode.parentNode.parentNode;
            var MainPaneDivHeight = MainPaneDiv.offsetHeight;//this.getNodeHeightWithMarginPadding(MainPaneDiv);
            var ToolBar = Table.rows[0].cells[0];
            var ToolBarHeight = this.getNodeHeightWithMarginPadding(ToolBar);
            var BottomToolBar = null;
            var BottomToolBarHeight = 0;
            try 
            {
                BottomToolBar = Table.rows[2].cells[0];
                BottomToolBarHeight = this.getNodeHeightWithMarginPadding(BottomToolBar);
            }
            catch(e)
            {
            }
            //var offset = specOffset + (this.isSafari) ? 10 : 5;
            //var offset = specOffset + (this.isSafari) ? 10 : 5;
            var offset = -6;
            var height = MainPaneDivHeight - ToolBarHeight - BottomToolBarHeight - offset;
            if (height >= 0)
            {
                Table.rows[1].cells[0].style.height = height+"px";
            }

    }
    
    this.SetObjectBoxHeight = function(UpdatePanelNode)
    {
            var Table = null;
            for (var i=0;i<UpdatePanelNode.childNodes.length;i++)
            {
                var childNode = UpdatePanelNode.childNodes[i];
                if (childNode.nodeName=="TABLE")
                {
                    Table = childNode;
                    break;
                }
            }
            if (!Table)
                return;
            var cell = Table.rows[0].cells[0];
            var MsBoxTable = null;
            for (var j=0;j<cell.childNodes.length;j++)
            {
                if (cell.childNodes[j].nodeName == "TABLE")
                {
                    MsBoxTable = cell.childNodes[j];    
                    break;
                }   
            }
            //var HeaderHeight = parseInt(MsBoxTable.getAttribute("HeaderHeight"));
            var HasFooter = MsBoxTable.getAttribute("HasFooter");
            var ind = (HasFooter == "true") ? 2 : 1;
            var Count = MsBoxTable.rows.length - ind;
            var HeaderHeight = 0;
            for (i=0; i < Count; i++)
                HeaderHeight += MsBoxTable.rows[i].offsetHeight;
            var ContentCell =  MsBoxTable.rows[4].cells[0];
            var MainPaneDiv = UpdatePanelNode.parentNode.parentNode.parentNode;
            var MainPaneDivHeight = MainPaneDiv.offsetHeight;
            var offset = (this.isSafari) ? 5 : 0;
            var height = MainPaneDivHeight - HeaderHeight - offset;
            if (height >= 0)
                ContentCell.style.height = height+"px"; 
    }
    
    this.setDocumentHeight = function()
    {
        var UpdatePanel = null;
        var offset = 0;
        
        if (this.ExpressPanel && this.ExpressPanel.style.display == "")
        {
            UpdatePanel = this.ExpressViewPanel;
            if (this.ModalDialogPanel && this.ModalDialogPanel.style.display == "") 
            {
				this.ModalDialogPanel.style.height = document.body.clientHeight;
				if (this.isFirefox)
					this.UpdateProgressTable.style.height = document.body.clientHeight;
			}
        }
        else if (this.ReportPanel && this.ReportPanel.style.display == "") 
            UpdatePanel = this.ReportViewUpdatePanel;
        else if (this.WorkspacePanel && this.WorkspacePanel.style.display == "")
            UpdatePanel = this.WorkspaceUpdatePanel;
        else if (this.ModelSpacePanel && this.ModelSpacePanel.style.display == "")
            this.SetObjectBoxHeight(this.ModelSpaceUpdatePanel);
        else if (this.ModellerPanel && this.ModellerPanel.style.display == "")
        {
            UpdatePanel = this.ModellerUpdatePanel; 
            offset = -1;
        }
        else if (this.TasksContainerPanel && this.TasksContainerPanel.style.display == "")
            this.SetObjectBoxHeight(this.TasksContainerUpdatePanel);
            
        if (UpdatePanel)    
            this.SetUpdatePanelTableHeight(UpdatePanel, offset);   
       
        App.updateSplitter();
    }
    
    this.LastTimeOutId = null; 
     
    this.DocumentResize = function(evt)
    {
        if (this.LastTimeOutId)
            clearTimeout(this.LastTimeOutId);
        this.LastTimeOutId = setTimeout("App.setDocumentHeight()",100);
    }
    
    
    
    this.getNodeHeightWithMarginPadding = function(Node)
    {
        var height = parseInt(Node.style.height);
        
        var paddingBottom = parseInt(Node.style.paddingBottom);
        var marginBottom = parseInt(Node.style.marginBottom);
        var paddingTop = parseInt(Node.style.paddingTop);
        var marginTop = parseInt(Node.style.marginTop);

        if (isNaN(height)) height = 0;    
        if (isNaN(paddingBottom)) paddingBottom = 0;
        if (isNaN(marginBottom)) marginBottom = 0;
        if (isNaN(paddingTop)) paddingTop = 0;
        if (isNaN(marginTop)) marginTop = 0;
        
        return height + paddingBottom + marginBottom + paddingTop + marginTop;
    }
    
    this.isIE = navigator.userAgent.indexOf(' MSIE ') > -1;
    this.isFirefox = navigator.userAgent.indexOf(' Firefox/') > -1 || (navigator.userAgent.indexOf(' MSI') > -1 && navigator.userAgent.indexOf(' MSIE ') == -1);
    this.isSafari = navigator.userAgent.indexOf(' Safari/') > -1;
    if (!this.isIE)
    {
        HTMLElement.prototype.click = function()
        {
            var evt = this.ownerDocument.createEvent('MouseEvents');
            evt.initMouseEvent('click', true, true, this.ownerDocument.defaultView, 1, 0, 0, 0, 0, false, false, false, false, 0, null);
            this.dispatchEvent(evt);
        }    
    }

    this.sessionExpire = function()
    {
        var SessLostMsg = window.top.document.body.getAttribute("sessionexpiredmsg");
        if (!SessLostMsg)
            SessLostMsg = "Session timeout has expired. You have to logon again.";
		alert(SessLostMsg);
		window.top.location.href = window.top.location.href;
    }
}
var App = new WebApplication();

