¿Cómo puedo mover una imagen más grande que su contenedor correctamente usando jQuery?

Estoy creando un visor de imágenes bastante bueno, pero estoy atascado en una parte en particular: desplazar la imagen al hacer zoom. Parece un problema trivial y he probado casi todas las respuestas a preguntas similares sobre SO, pero cada vez, Algo no funciona bien. Necesito un par de ojos nuevos.

Abrí temporalmente una URL en mi servidor de desarrollo. Echa un vistazo a esta página:

[URL cerrada]

A continuación, mueva la rueda del mouse hacia arriba para activar el zoom. Aquí estamos. Una vez ampliada, haga clic y arrastre para intentar desplazar la imagen. Está funcionando bien, pero algo no está bien. Actualmente, este es el código utilizado para la panorámica:

var clicking = false;
var previousX;
var previousY;

$("#bigimage").mousedown(function(e) {

    e.preventDefault();
    previousX = e.clientX;
    previousY = e.clientY;
    clicking = true;
});

$(document).mouseup(function() {
    clicking = false;
});

$("#bigimage").mousemove(function(e) {

    if (clicking) {
        e.preventDefault();
        var directionX = (previousX - e.clientX) > 0 ? 1 : -1;
        var directionY = (previousY - e.clientY) > 0 ? 1 : -1;
        $("#bigimage").scrollLeft($("#bigimage").scrollLeft() + 10 * directionX);
        $("#bigimage").scrollTop($("#bigimage").scrollTop() + 10 * directionY);
        previousX = e.clientX;
        previousY = e.clientY;
    }
});

La solución que busco tiene estas características:

Dirección correcta de la panorámica sobre los ejes X e Y No debería ser posible desplazarse fuera de los bordes de la imagen Panorámica razonablemente fluidaNice tener: cambiar el tamaño de la ventana no debería causar ningún problema

Aunque aprecio cualquier ayuda que pueda obtener, por favor no me señale un complemento genérico, he probado muchos de ellos y estoy buscando una respuesta que funcione para mi escenario específico. Estoy tan desesperado que incluso estableceré una recompensa monetaria por la solución perfecta que cumpla con la característica anterior.

PD Pruebe el enlace en Firefox o en un navegador Webkit

Respuestas a la pregunta(2)

Su respuesta a la pregunta