jQuery scrollTo - Center Div en ventana verticalmente

Tengo un sitio que utiliza un menú fijo en la parte superior de la página.

Cuando se hace clic en un enlace, debe desplazarse verticalmente para que el centro de esa división de destino se alinee con el centro vertical de la ventana, desplazado por la altura del encabezado. - Esto es muy importante para que la división esté centrada, independientemente de la resolución del monitor.

Estoy usando jQuery y scrollTo, pero no puedo entender las matemáticas necesarias para esto.

Aquí está mi intento:

function scrollTo(target) {
var offset;
var scrollSpeed = 600;

if (viewport()["width"] > 767 && !jQuery.browser.mobile) {
    // Offset anchor location and offset navigation bar if navigation is fixed
    offset = $(target).offset().top - document.getElementById('navigation').clientHeight;
} else {
    // Offset anchor location only since navigation bar is now static
    offset = $(target).offset().top;
}

    $('html, body').animate({scrollTop:offset}, scrollSpeed);
}

Respuestas a la pregunta(2)

Su respuesta a la pregunta