understading complex animate function .

understading complex animate function .

was just going through the source of Jbox and saw the following lines of code: 


  1. this.wrapper.stop().animate({opacity: 0}, {
  2. queue: false,
  3. duration: this.options.fade,
  4. start: function() {
  5. this.isClosing = true;
  6. }.bind(this),
  7. complete: function() {
  8. this.wrapper.css({display: 'none'});
  9. this.options.onCloseComplete && (this.options.onCloseComplete.bind(this))();
  10. this.options._onCloseComplete && (this.options._onCloseComplete.bind(this))();
  11. }.bind(this),
  12. always: function() {
  13. this.isClosing = false;
  14. }.bind(this)
  15. });
how can this be correct ? should't the complete function come after the 2nd object leteral , I.E. not inside it , but outside it , also whats with these functions start, and always ? what are these functions for ? 

Thank you. 

Gautam.