﻿// function to reset the top margin to whatever the current height of the ribbon is
function setTopPadding() {
    var myElem = document.getElementById('s4-workspace'), newHeight = document.getElementById('s4-ribbonrow').offsetHeight;
    myElem.style.paddingTop = newHeight + 'px';
}

function setTopPos() {
    $('.ms-cui-menu, .ms-cui-tooltip').each(function () {
        var newTop = $(this).data('origTop') || $(this).position().top;
        $(this).data('origTop', newTop);
        newTop += $('#s4-ribbonrow').position().top;
        $(this).css({
            top: newTop
        });
    });
}

// bind top padding reset to ribbon resize event so that the page always lays out correctly.
ExecuteOrDelayUntilScriptLoaded(function () { SP.UI.Workspace.add_resized(setTopPadding); }, "init.js");

$(document).ready(function () {
    setInterval(setTopPos, 300);
});
