changed to a jquery plugin pattern -- added callback support -- improved animation