﻿function FixRibbonAndWorkspaceDimensions2() {
}

function FixRibbonAndWorkspaceDimensions() {
    g_frl = true;
    var elmRibbon = GetCachedElement("s4-ribbonrow");
    var elmWorkspace = GetCachedElement("s4-workspace");
    var elmTitleArea = GetCachedElement("s4-titlerow");
    var elmBodyTable = GetCachedElement("s4-bodyContainer");
    var notLoggedTable = GetCachedElement("notLoggedHolder");
    var breadCrumb = GetCachedElement("secondCBreadCrumb");
    var subMenuHolderControl = GetCachedElement("subMenuHolder");
    var contentDiv = GetCachedElement("ctl00_MSO_ContentDiv");
    var rightWebPartsHolder = GetCachedElement("rightWebPartsHolder");

    //2ndC Addon
    var _isFrontPage = false;
    try {
        _isFrontPage = isFrontPage;
    } catch (e) { }


    //elmWorkspace.style.overflowY = "auto";
    if (!elmRibbon ||
	   !elmWorkspace ||
	   !elmBodyTable) {
        return;
    }
    if (!g_setWidthInited) {
        var setWidth = true;
        if (elmWorkspace.className.indexOf("s4-nosetwidth") > -1)
            setWidth = false;
        g_setWidth = setWidth;
        g_setWidthInited = true;
    }
    else {
        var setWidth = g_setWidth;
    }
    var baseRibbonHeight = RibbonIsMinimized() ? 44 : 135;
    var ribbonHeight = baseRibbonHeight + g_wpadderHeight;
    if (GetCurrentEltStyle(elmRibbon, "visibility") == "hidden") {
        ribbonHeight = 0;
    }
    elmRibbon.style.height = ribbonHeight + "px";
    var vph = g_viewportHeight;
    if (null === vph) {
        vph = GetViewportHeight();
        g_viewportHeight = vph;
        //alert(vph);
    }


    var newWorkspaceHeight = vph - elmRibbon.offsetHeight - AbsTop(elmRibbon);
    if (newWorkspaceHeight < 0)
        newWorkspaceHeight = 0;

    //elmWorkspace.style.height = (newWorkspaceHeight - (IsAuthenticated() ? 102 : 145)) + "px";
    //elmWorkspace.style.height = (newWorkspaceHeight) - (_isFrontPage ? IsAuthenticated() ? 52 : 182 : IsAuthenticated() ? 160 : 205) + "px";

    //if it's front page than, set working size to the browsers height
    if (_isFrontPage) {
        elmWorkspace.style.height = ((newWorkspaceHeight) - (IsAuthenticated() ? 216 : 260)) + "px";

    }
    else {
        //if not frontpage , than redice page size so it fits with the browser        
        elmWorkspace.style.height = (newWorkspaceHeight) - ((_isFrontPage ? 0 : IsAuthenticated() ? 160 : 200)) + "px";
        elmWorkspace.style.overflowX = "auto";
        try {
            rightWebPartsHolder.style.height = (newWorkspaceHeight - (IsAuthenticated() ? 171 : 211)) + "px";
        } catch (e) { }
    }


    if (setWidth) {
        elmWorkspace.style.width = (_isFrontPage ? 960 : 958) + "px";
        if (elmBodyTable.offsetWidth < elmWorkspace.clientWidth) {
            elmBodyTable.style.width = elmWorkspace.clientWidth + "px";
        }
        if (elmTitleArea) {
            //alert("elmBodyTable.offsetWidth:" + elmBodyTable.offsetWidth);
            //var titleWidth = Math.max(elmBodyTable.offsetWidth - 2, 0);
            var titleWidth = 940;
            elmTitleArea.style.width = titleWidth + "px";
            elmTitleArea.className += " ms-titlerowborder";
            try {
                breadCrumb.style.width = (titleWidth - 27) + "px";
            } catch (e) { }
            subMenuHolderControl.style.width = (titleWidth) + "px";
        }


        elmRibbon.style.width = 940;
        notLoggedTable.style.width = 940;
        try {
            //Set ToolPart Editor right to the layout, on top
            var leftPos = elmWorkspace.style.left + elmWorkspace.style.width;
            leftPos = leftPos.replace("px", "");
            leftPos = parseInt(leftPos);
            var docWidth = Math.round(document.body.clientWidth / 2) - 465;
            leftPos = leftPos + docWidth;
            contentDiv.style.left = leftPos + "px";
        }
        catch (e) { alert(e.description); }

    }
    var isIE7 = browseris.ie && browseris.iever == 7 && !browseris.ie8standard;
    if (!g_setScrollPos) {
        if (browseris.firefox && browseris.firefox36up)
            window.scroll(0, 0);
        if (window.location.search.match("[?&]IsDlg=1")) {
            if (!isIE7 || elmWorkspace.scrollHeight < elmWorkspace.clientHeight)
                elmWorkspace.style.overflowY = "auto";
        }
        //alert("scrollHeight:" + elmWorkspace.scrollHeight + "\nclientHeight:" + elmWorkspace.clientHeight);
        //alert("SH:" + elmWorkspace.scrollHeight + "\nCH:" + elmWorkspace.clientHeight+"\nDH:"+(document.body.clientHeight-200));
        if (elmWorkspace.scrollHeight == elmWorkspace.clientHeight) {

            elmWorkspace.style.overflowY = "auto";
            var elWidth = elmWorkspace.style.width;
            elWidth = elWidth.replace("px", "");
            elmWorkspace.style.width = (elWidth - 18) + "px";

        } else {
            var elWidth = elmWorkspace.style.width;
            elWidth = elWidth.replace("px", "");
            elmWorkspace.style.width = (elWidth - 2) + "px";
        }
        var scrollElem = document.getElementById("_maintainWorkspaceScrollPosition");

        if (scrollElem != null && scrollElem.value != null) {
            elmWorkspace.scrollTop = scrollElem.value;
        }
        g_setScrollPos = true;
    }
    var handlers = [].concat(g_workspaceResizedHandlers);

    for (var i = 0, wLen = handlers.length; i < wLen; i++) {
        handlers[i]();
    }
    g_frl = false;
}

function IsAuthenticated() {
    var authenticated = false;
    try {
        //Show ribbon for not authenticated users
        if (typeof _spUserId != "undefined") {
            authenticated = true;
        }
    } catch (e) { }
    return authenticated;
}

function PageIsInDesignMode() {
    var displayControl = null;
    var isInDesign = false;
    try {
        displayControl = document.getElementById('MSOLayout_InDesignMode');
        if (displayControl.value == "1") {
            isInDesign = true;
        }
    }
    catch (e) { }
    return isInDesign;
}

function showSubMenuItems() {
    var selectedMenuItem = null;
    var subItemsDiv = null;
    var menuHolder = null;
    var menuSeperatorDiv = null;
    var subMenuItemsRightDiv = null;
    try {
        var linkElements = $(".topMenuItem");
        var totalWidth = 0;
        $(linkElements).each(function () {
            var hasCLass = $(this).hasClass("menuItemSelected");
            if (hasCLass)
                return false;
            var tempWidth = $(this).outerWidth();
            totalWidth += tempWidth + 36;
        });
        selectedMenuItem = $("#menuItemActive");
        subItemsDiv = $("#subMenuItems");
        menuHolder = $("#subMenuHolder");
        menuSeperatorDiv = $("#menuSeperator");
        subMenuItemsRightDiv = $("#subMenuItemsRight");
        //        if ($.browser.msie) {
        //            //alert("msie:" + $.browser.version);
        //            $(subItemsDiv).css({ 'left': selectedMenuItem.offset().left - 445 });
        //        } else {
        //            $(subItemsDiv).css({ 'left': selectedMenuItem.offset().left - 445 });
        //        }        
        var htmlStr = $(subItemsDiv).html();
        var toSubstractWidth = 18;
        $(subMenuItemsRightDiv).css({ 'width': totalWidth + toSubstractWidth });
        var fWidth = 940 - (totalWidth + (toSubstractWidth));
        var subLeft = $(subItemsDiv).offset().left;
        if (htmlStr != "") {
            $(menuSeperatorDiv).css({ 'left': subLeft - 2 });
            $(menuSeperatorDiv).fadeIn(1000);
            $(subItemsDiv).css({ 'width': fWidth });
            $(subItemsDiv).css({ 'display': 'block' });
        }

    } catch (e) { }
}
