2015-10-08 11:40:12 -07:00
( function ( t ) { var e = typeof self == "object" && self . self == self && self || typeof global == "object" && global . global == global && global ; if ( typeof define === "function" && define . amd ) { define ( [ "underscore" , "jquery" , "exports" ] , function ( i , r , n ) { e . Backbone = t ( e , n , i , r ) } ) } else if ( typeof exports !== "undefined" ) { var i = require ( "underscore" ) , r ; try { r = require ( "jquery" ) } catch ( n ) { } t ( e , exports , i , r ) } else { e . Backbone = t ( e , { } , e . _ , e . jQuery || e . Zepto || e . ender || e . $ ) } } ) ( function ( t , e , i , r ) { var n = t . Backbone ; var s = Array . prototype . slice ; e . VERSION = "1.2.3" ; e . $ = r ; e . noConflict = function ( ) { t . Backbone = n ; return this } ; e . emulateHTTP = false ; e . emulateJSON = false ; var a = function ( t , e , r ) { switch ( t ) { case 1 : return function ( ) { return i [ e ] ( this [ r ] ) } ; case 2 : return function ( t ) { return i [ e ] ( this [ r ] , t ) } ; case 3 : return function ( t , n ) { return i [ e ] ( this [ r ] , h ( t , this ) , n ) } ; case 4 : return function ( t , n , s ) { return i [ e ] ( this [ r ] , h ( t , this ) , n , s ) } ; default : return function ( ) { var t = s . call ( arguments ) ; t . unshift ( this [ r ] ) ; return i [ e ] . apply ( i , t ) } } } ; var o = function ( t , e , r ) { i . each ( e , function ( e , n ) { if ( i [ n ] ) t . prototype [ n ] = a ( e , n , r ) } ) } ; var h = function ( t , e ) { if ( i . isFunction ( t ) ) return t ; if ( i . isObject ( t ) && ! e . _isModel ( t ) ) return u ( t ) ; if ( i . isString ( t ) ) return function ( e ) { return e . get ( t ) } ; return t } ; var u = function ( t ) { var e = i . matches ( t ) ; return function ( t ) { return e ( t . attributes ) } } ; var l = e . Events = { } ; var c = /\s+/ ; var f = function ( t , e , r , n , s ) { var a = 0 , o ; if ( r && typeof r === "object" ) { if ( n !== void 0 && "context" in s && s . context === void 0 ) s . context = n ; for ( o = i . keys ( r ) ; a < o . length ; a ++ ) { e = f ( t , e , o [ a ] , r [ o [ a ] ] , s ) } } else if ( r && c . test ( r ) ) { for ( o = r . split ( c ) ; a < o . length ; a ++ ) { e = t ( e , o [ a ] , n , s ) } } else { e = t ( e , r , n , s ) } return e } ; l . on = function ( t , e , i ) { return d ( this , t , e , i ) } ; var d = function ( t , e , i , r , n ) { t . _events = f ( v , t . _events || { } , e , i , { context : r , ctx : t , listening : n } ) ; if ( n ) { var s = t . _listeners || ( t . _listeners = { } ) ; s [ n . id ] = n } return t } ; l . listenTo = function ( t , e , r ) { if ( ! t ) return this ; var n = t . _listenId || ( t . _listenId = i . uniqueId ( "l" ) ) ; var s = this . _listeningTo || ( this . _listeningTo = { } ) ; var a = s [ n ] ; if ( ! a ) { var o = this . _listenId || ( this . _listenId = i . uniqueId ( "l" ) ) ; a = s [ n ] = { obj : t , objId : n , id : o , listeningTo : s , count : 0 } } d ( t , e , r , this , a ) ; return this } ; var v = function ( t , e , i , r ) { if ( i ) { var n = t [ e ] || ( t [ e ] = [ ] ) ; var s = r . context , a = r . ctx , o = r . listening ; if ( o ) o . count ++ ; n . push ( { callback : i , context : s , ctx : s || a , listening : o } ) } return t } ; l . off = function ( t , e , i ) { if ( ! this . _events ) return this ; this . _events = f ( g , this . _events , t , e , { context : i , listeners : this . _listeners } ) ; return this } ; l . stopListening = function ( t , e , r ) { var n = this . _listeningTo ; if ( ! n ) return this ; var s = t ? [ t . _listenId ] : i . keys ( n ) ; for ( var a = 0 ; a < s . length ; a ++ ) { var o = n [ s [ a ] ] ; if ( ! o ) break ; o . obj . off ( e , r , this ) } if ( i . isEmpty ( n ) ) this . _listeningTo = void 0 ; return this } ; var g = function ( t , e , r , n ) { if ( ! t ) return ; var s = 0 , a ; var o = n . context , h = n . listeners ; if ( ! e && ! r && ! o ) { var u = i . keys ( h ) ; for ( ; s < u . length ; s ++ ) { a = h [ u [ s ] ] ; delete h [ a . id ] ; delete a . listeningTo [ a . objId ] } return } var l = e ? [ e ] : i . keys ( t ) ; for ( ; s < l . length ; s ++ ) { e = l [ s ] ; var c = t [ e ] ; if ( ! c ) break ; var f = [ ] ; for ( var d = 0 ; d < c . length ; d ++ ) { var v = c [ d ] ; if ( r && r !== v . callback && r !== v . callback . _callback || o && o !== v . context ) { f . push ( v ) } else { a = v . listening ; if ( a && -- a . count === 0 ) { delete h [ a . id ] ; delete a . listeningTo [ a . objId ] } } } if ( f . length ) { t [ e ] = f } else { delete t [ e ] } } if ( i . size ( t ) ) return t } ; l . once = function ( t , e , r ) { var n = f ( p , { } , t , e , i . bind ( this . off , this ) ) ; return this . on ( n , void 0 , r ) } ; l . listenToOnce = function ( t , e , r ) { var n = f ( p , { } , e , r , i . bind ( this . stopListening , this , t ) ) ; return this . listenTo ( t , n ) } ; var p = function ( t , e , r , n ) { if ( r ) { var s = t [ e ] = i . once ( function ( ) { n ( e , s ) ; r . apply ( this , arguments ) } ) ; s . _callback = r } return t } ; l . trigger = function ( t ) { if ( ! this . _events ) return this ; var e = Math . max ( 0 , arguments . length - 1 ) ; var i = Array ( e ) ; for ( var r = 0 ; r < e ; r ++ ) i [ r ] = arguments [ r + 1 ] ; f ( m , this . _events , t , void 0 , i ) ; return this } ; var m = function ( t , e , i , r ) { if ( t ) { var n = t [ e ] ; var s = t . all ; if ( n && s ) s = s . slice ( ) ; if ( n ) _ ( n , r ) ; if ( s ) _ ( s , [ e ] . concat ( r ) ) } return t } ; var _ = function ( t , e ) { var i , r = - 1 , n = t . length , s = e [ 0 ] , a = e [ 1 ] , o = e [ 2 ] ; switch ( e . length ) { case 0 : while ( ++ r < n ) ( i = t [ r ] ) . callback . call ( i . ctx ) ; return ; case 1 : while ( ++ r < n ) ( i = t [ r ] ) . callback . call ( i . ctx , s ) ; return ; case 2 : while ( ++ r < n ) ( i = t [ r ] ) . callback . call ( i . ctx , s , a ) ; return ; case 3 : while ( ++ r < n ) ( i = t [ r ] ) . callback . call ( i . ctx , s , a , o ) ; return ; default : whi