An object-oriented JavaScript framework