2013-11-07 05:09:36 +08:00
/ * M o d e r n i z r 2 . 6 . 2 ( C u s t o m B u i l d ) | M I T & B S D
* Build : http : //modernizr.com/download/#-fontface-backgroundsize-borderimage-borderradius-boxshadow-flexbox-hsla-multiplebgs-opacity-rgba-textshadow-cssanimations-generatedcontent-cssgradients-cssreflections-csstransforms-csstransforms3d-csstransitions-applicationcache-draganddrop-hashchange-history-audio-video-indexeddb-input-inputtypes-localstorage-postmessage-sessionstorage-websockets-websqldatabase-webworkers-geolocation-svg-touch-shiv-cssclasses-teststyles-testprop-testallprops-hasevent-prefixes-domprefixes-fullscreen_api
* /
2013-12-29 04:42:07 +08:00
; window . Modernizr = function ( a , b , c ) { function C ( a ) { j . cssText = a } function D ( a , b ) { return C ( n . join ( a + ";" ) + ( b || "" ) ) } function E ( a , b ) { return typeof a === b } function F ( a , b ) { return ! ! ~ ( "" + a ) . indexOf ( b ) } function G ( a , b ) { for ( var d in a ) { var e = a [ d ] ; if ( ! F ( e , "-" ) && j [ e ] !== c ) return b == "pfx" ? e : ! 0 } return ! 1 } function H ( a , b , d ) { for ( var e in a ) { var f = b [ a [ e ] ] ; if ( f !== c ) return d === ! 1 ? a [ e ] : E ( f , "function" ) ? f . bind ( d || b ) : f } return ! 1 } function I ( a , b , c ) { var d = a . charAt ( 0 ) . toUpperCase ( ) + a . slice ( 1 ) , e = ( a + " " + p . join ( d + " " ) + d ) . split ( " " ) ; return E ( b , "string" ) || E ( b , "undefined" ) ? G ( e , b ) : ( e = ( a + " " + q . join ( d + " " ) + d ) . split ( " " ) , H ( e , b , c ) ) } function J ( ) { e . input = function ( c ) { for ( var d = 0 , e = c . length ; d < e ; d ++ ) u [ c [ d ] ] = c [ d ] in k ; return u . list && ( u . list = ! ! b . createElement ( "datalist" ) && ! ! a . HTMLDataListElement ) , u } ( "autocomplete autofocus list placeholder max min multiple pattern required step" . split ( " " ) ) , e . inputtypes = function ( a ) { for ( var d = 0 , e , f , h , i = a . length ; d < i ; d ++ ) k . setAttribute ( "type" , f = a [ d ] ) , e = k . type !== "text" , e && ( k . value = l , k . style . cssText = "position:absolute;visibility:hidden;" , /^range$/ . test ( f ) && k . style . WebkitAppearance !== c ? ( g . appendChild ( k ) , h = b . defaultView , e = h . getComputedStyle && h . getComputedStyle ( k , null ) . WebkitAppearance !== "textfield" && k . offsetHeight !== 0 , g . removeChild ( k ) ) : /^(search|tel)$/ . test ( f ) || ( /^(url|email)$/ . test ( f ) ? e = k . checkValidity && k . checkValidity ( ) === ! 1 : e = k . value != l ) ) , t [ a [ d ] ] = ! ! e ; return t } ( "search tel url email datetime date month week time datetime-local number range color" . split ( " " ) ) } var d = "2.6.2" , e = { } , f = ! 0 , g = b . documentElement , h = "modernizr" , i = b . createElement ( h ) , j = i . style , k = b . createElement ( "input" ) , l = ":)" , m = { } . toString , n = " -webkit- -moz- -o- -ms- " . split ( " " ) , o = "Webkit Moz O ms" , p = o . split ( " " ) , q = o . toLowerCase ( ) . split ( " " ) , r = { svg : "http://www.w3.org/2000/svg" } , s = { } , t = { } , u = { } , v = [ ] , w = v . slice , x , y = function ( a , c , d , e ) { var f , i , j , k , l = b . createElement ( "div" ) , m = b . body , n = m || b . createElement ( "body" ) ; if ( parseInt ( d , 10 ) ) while ( d -- ) j = b . createElement ( "div" ) , j . id = e ? e [ d ] : h + ( d + 1 ) , l . appendChild ( j ) ; return f = [ "­" , '<style id="s' , h , '">' , a , "</style>" ] . join ( "" ) , l . id = h , ( m ? l : n ) . innerHTML += f , n . appendChild ( l ) , m || ( n . style . background = "" , n . style . overflow = "hidden" , k = g . style . overflow , g . style . overflow = "hidden" , g . appendChild ( n ) ) , i = c ( l , a ) , m ? l . parentNode . removeChild ( l ) : ( n . parentNode . removeChild ( n ) , g . style . overflow = k ) , ! ! i } , z = function ( ) { function d ( d , e ) { e = e || b . createElement ( a [ d ] || "div" ) , d = "on" + d ; var f = d in e ; return f || ( e . setAttribute || ( e = b . createElement ( "div" ) ) , e . setAttribute && e . removeAttribute && ( e . setAttribute ( d , "" ) , f = E ( e [ d ] , "function" ) , E ( e [ d ] , "undefined" ) || ( e [ d ] = c ) , e . removeAttribute ( d ) ) ) , e = null , f } var a = { select : "input" , change : "input" , submit : "form" , reset : "form" , error : "img" , load : "img" , abort : "img" } ; return d } ( ) , A = { } . hasOwnProperty , B ; ! E ( A , "undefined" ) && ! E ( A . call , "undefined" ) ? B = function ( a , b ) { return A . call ( a , b ) } : B = function ( a , b ) { return b in a && E ( a . constructor . prototype [ b ] , "undefined" ) } , Function . prototype . bind || ( Function . prototype . bind = function ( b ) { var c = this ; if ( typeof c != "function" ) throw new TypeError ; var d = w . call ( arguments , 1 ) , e = function ( ) { if ( this instanceof e ) { var a = function ( ) { } ; a . prototype = c . prototype ; var f = new a , g = c . apply ( f , d . concat ( w . call ( arguments ) ) ) ; return Object ( g ) === g ? g : f } return c . apply ( b , d . concat ( w . call ( arguments ) ) ) } ; return e } ) , s . flexbox = function ( ) { return I ( "flexWrap" ) } , s . touch = function ( ) { var c ; return "ontouchstart" in a || a . DocumentTouch && b instanceof DocumentTouch ? c = ! 0 : y ( [ "@media (" , n . join ( "touch-enabled),(" ) , h , ")" , "{#modernizr{top:9px;position:absolute}}" ] . join ( "" ) , function ( a ) { c = a . offsetTop === 9 } ) , c } , s . geolocation = function ( ) { return "geolocation" in navigator } , s . postmessage = function ( ) { return ! ! a . postMessage } , s . websqldatabase = function ( ) { return ! ! a . openDatabase } , s . indexedDB = function ( ) { return ! ! I ( "indexedDB" , a ) } , s . hashchange = function ( ) { return z ( "hashchange" , a ) && ( b . documentMode === c || b . documentMode > 7 ) } , s . history = function ( ) { return ! ! a . history && ! ! history . pushState } , s . draganddrop = function ( ) { var a = b . createElement ( "div" ) ; return "draggable" in a || "ondragstart" in a && "ondrop" in a } , s . websockets = function ( ) { return "WebSocket" in a || "MozWebSocket" in a } , s . rgba = function ( ) { return C ( "background-color:rgba(150,255,150,.5)" ) , F ( j . backgroundColor , " rgba
2013-11-16 06:21:12 +08:00
// Underscore.js 1.5.2
// http://underscorejs.org
// (c) 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
// Underscore may be freely distributed under the MIT license.
2013-12-29 04:42:07 +08:00
( function ( ) { var n = this , t = n . _ , r = { } , e = Array . prototype , u = Object . prototype , i = Function . prototype , a = e . push , o = e . slice , c = e . concat , l = u . toString , f = u . hasOwnProperty , s = e . forEach , p = e . map , h = e . reduce , v = e . reduceRight , g = e . filter , d = e . every , m = e . some , y = e . indexOf , b = e . lastIndexOf , x = Array . isArray , w = Object . keys , _ = i . bind , j = function ( n ) { return n instanceof j ? n : this instanceof j ? ( this . _wrapped = n , void 0 ) : new j ( n ) } ; "undefined" != typeof exports ? ( "undefined" != typeof module && module . exports && ( exports = module . exports = j ) , exports . _ = j ) : n . _ = j , j . VERSION = "1.5.2" ; var A = j . each = j . forEach = function ( n , t , e ) { if ( null != n ) if ( s && n . forEach === s ) n . forEach ( t , e ) ; else if ( n . length === + n . length ) { for ( var u = 0 , i = n . length ; i > u ; u ++ ) if ( t . call ( e , n [ u ] , u , n ) === r ) return } else for ( var a = j . keys ( n ) , u = 0 , i = a . length ; i > u ; u ++ ) if ( t . call ( e , n [ a [ u ] ] , a [ u ] , n ) === r ) return } ; j . map = j . collect = function ( n , t , r ) { var e = [ ] ; return null == n ? e : p && n . map === p ? n . map ( t , r ) : ( A ( n , function ( n , u , i ) { e . push ( t . call ( r , n , u , i ) ) } ) , e ) } ; var E = "Reduce of empty array with no initial value" ; j . reduce = j . foldl = j . inject = function ( n , t , r , e ) { var u = arguments . length > 2 ; if ( null == n && ( n = [ ] ) , h && n . reduce === h ) return e && ( t = j . bind ( t , e ) ) , u ? n . reduce ( t , r ) : n . reduce ( t ) ; if ( A ( n , function ( n , i , a ) { u ? r = t . call ( e , r , n , i , a ) : ( r = n , u = ! 0 ) } ) , ! u ) throw new TypeError ( E ) ; return r } , j . reduceRight = j . foldr = function ( n , t , r , e ) { var u = arguments . length > 2 ; if ( null == n && ( n = [ ] ) , v && n . reduceRight === v ) return e && ( t = j . bind ( t , e ) ) , u ? n . reduceRight ( t , r ) : n . reduceRight ( t ) ; var i = n . length ; if ( i !== + i ) { var a = j . keys ( n ) ; i = a . length } if ( A ( n , function ( o , c , l ) { c = a ? a [ -- i ] : -- i , u ? r = t . call ( e , r , n [ c ] , c , l ) : ( r = n [ c ] , u = ! 0 ) } ) , ! u ) throw new TypeError ( E ) ; return r } , j . find = j . detect = function ( n , t , r ) { var e ; return O ( n , function ( n , u , i ) { return t . call ( r , n , u , i ) ? ( e = n , ! 0 ) : void 0 } ) , e } , j . filter = j . select = function ( n , t , r ) { var e = [ ] ; return null == n ? e : g && n . filter === g ? n . filter ( t , r ) : ( A ( n , function ( n , u , i ) { t . call ( r , n , u , i ) && e . push ( n ) } ) , e ) } , j . reject = function ( n , t , r ) { return j . filter ( n , function ( n , e , u ) { return ! t . call ( r , n , e , u ) } , r ) } , j . every = j . all = function ( n , t , e ) { t || ( t = j . identity ) ; var u = ! 0 ; return null == n ? u : d && n . every === d ? n . every ( t , e ) : ( A ( n , function ( n , i , a ) { return ( u = u && t . call ( e , n , i , a ) ) ? void 0 : r } ) , ! ! u ) } ; var O = j . some = j . any = function ( n , t , e ) { t || ( t = j . identity ) ; var u = ! 1 ; return null == n ? u : m && n . some === m ? n . some ( t , e ) : ( A ( n , function ( n , i , a ) { return u || ( u = t . call ( e , n , i , a ) ) ? r : void 0 } ) , ! ! u ) } ; j . contains = j . include = function ( n , t ) { return null == n ? ! 1 : y && n . indexOf === y ? n . indexOf ( t ) != - 1 : O ( n , function ( n ) { return n === t } ) } , j . invoke = function ( n , t ) { var r = o . call ( arguments , 2 ) , e = j . isFunction ( t ) ; return j . map ( n , function ( n ) { return ( e ? t : n [ t ] ) . apply ( n , r ) } ) } , j . pluck = function ( n , t ) { return j . map ( n , function ( n ) { return n [ t ] } ) } , j . where = function ( n , t , r ) { return j . isEmpty ( t ) ? r ? void 0 : [ ] : j [ r ? "find" : "filter" ] ( n , function ( n ) { for ( var r in t ) if ( t [ r ] !== n [ r ] ) return ! 1 ; return ! 0 } ) } , j . findWhere = function ( n , t ) { return j . where ( n , t , ! 0 ) } , j . max = function ( n , t , r ) { if ( ! t && j . isArray ( n ) && n [ 0 ] === + n [ 0 ] && n . length < 65535 ) return Math . max . apply ( Math , n ) ; if ( ! t && j . isEmpty ( n ) ) return - 1 / 0 ; var e = { computed : - 1 / 0 , value : - 1 / 0 } ; return A ( n , function ( n , u , i ) { var a = t ? t . call ( r , n , u , i ) : n ; a > e . computed && ( e = { value : n , computed : a } ) } ) , e . value } , j . min = function ( n , t , r ) { if ( ! t && j . isArray ( n ) && n [ 0 ] === + n [ 0 ] && n . length < 65535 ) return Math . min . apply ( Math , n ) ; if ( ! t && j . isEmpty ( n ) ) return 1 / 0 ; var e = { computed : 1 / 0 , value : 1 / 0 } ; return A ( n , function ( n , u , i ) { var a = t ? t . call ( r , n , u , i ) : n ; a < e . computed && ( e = { value : n , computed : a } ) } ) , e . value } , j . shuffle = function ( n ) { var t , r = 0 , e = [ ] ; return A ( n , function ( n ) { t = j . random ( r ++ ) , e [ r - 1 ] = e [ t ] , e [ t ] = n } ) , e } , j . sample = function ( n , t , r ) { return arguments . length < 2 || r ? n [ j . random ( n . length - 1 ) ] : j . shuffle ( n ) . slice ( 0 , Math . max ( 0 , t ) ) } ; var k = function ( n ) { return j . isFunction ( n ) ? n : function ( t ) { return t [ n ] } } ; j . sortBy = function ( n , t , r ) { var e = k ( t ) ; return j . pluck ( j . map ( n , function ( n , t , u ) { return { value : n , index : t , criteria : e . call ( r , n , t , u ) } } ) . sort ( function ( n , t ) { var r = n . criteria , e = t . criteria ; if ( r !== e ) { if ( r > e || r === void 0 ) return 1 ; if ( e > r || e === void 0 ) return - 1 } return n . index - t . index } ) , "value" ) } ; var F = function ( n ) { return function ( t , r , e ) { var u = { } , i = null == r ? j . identity : k ( r ) ; return A ( t , function ( r , a ) { var o = i . call ( e , r , a , t ) ; n ( u , o , r ) } ) , u } } ; j . groupBy = F ( function ( n , t , r ) { ( j . has ( n , t ) ? n [ t ] : n [ t ] = [ ] ) . push ( r ) } ) , j . indexBy = F ( function ( n , t , r ) { n [ t ] = r } ) , j . countBy = F
2013-12-09 05:32:19 +08:00
/*! jQuery v1.10.2 | (c) 2005, 2013 jQuery Foundation, Inc. | jquery.org/license*/ ( function ( e , t ) { var n , r , i = typeof t , o = e . location , a = e . document , s = a . documentElement , l = e . jQuery , u = e . $ , c = { } , p = [ ] , f = "1.10.2" , d = p . concat , h = p . push , g = p . slice , m = p . indexOf , y = c . toString , v = c . hasOwnProperty , b = f . trim , x = function ( e , t ) { return new x . fn . init ( e , t , r ) } , w = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ . source , T = /\S+/g , C = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g , N = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/ , k = /^<(\w+)\s*\/?>(?:<\/\1>|)$/ , E = /^[\],:{}\s]*$/ , S = /(?:^|:|,)(?:\s*\[)+/g , A = /\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g , j = /"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g , D = /^-ms-/ , L = /-([\da-z])/gi , H = function ( e , t ) { return t . toUpperCase ( ) } , q = function ( e ) { ( a . addEventListener || "load" === e . type || "complete" === a . readyState ) && ( _ ( ) , x . ready ( ) ) } , _ = function ( ) { a . addEventListener ? ( a . removeEventListener ( "DOMContentLoaded" , q , ! 1 ) , e . removeEventListener ( "load" , q , ! 1 ) ) : ( a . detachEvent ( "onreadystatechange" , q ) , e . detachEvent ( "onload" , q ) ) } ; x . fn = x . prototype = { jquery : f , constructor : x , init : function ( e , n , r ) { var i , o ; if ( ! e ) return this ; if ( "string" == typeof e ) { if ( i = "<" === e . charAt ( 0 ) && ">" === e . charAt ( e . length - 1 ) && e . length >= 3 ? [ null , e , null ] : N . exec ( e ) , ! i || ! i [ 1 ] && n ) return ! n || n . jquery ? ( n || r ) . find ( e ) : this . constructor ( n ) . find ( e ) ; if ( i [ 1 ] ) { if ( n = n instanceof x ? n [ 0 ] : n , x . merge ( this , x . parseHTML ( i [ 1 ] , n && n . nodeType ? n . ownerDocument || n : a , ! 0 ) ) , k . test ( i [ 1 ] ) && x . isPlainObject ( n ) ) for ( i in n ) x . isFunction ( this [ i ] ) ? this [ i ] ( n [ i ] ) : this . attr ( i , n [ i ] ) ; return this } if ( o = a . getElementById ( i [ 2 ] ) , o && o . parentNode ) { if ( o . id !== i [ 2 ] ) return r . find ( e ) ; this . length = 1 , this [ 0 ] = o } return this . context = a , this . selector = e , this } return e . nodeType ? ( this . context = this [ 0 ] = e , this . length = 1 , this ) : x . isFunction ( e ) ? r . ready ( e ) : ( e . selector !== t && ( this . selector = e . selector , this . context = e . context ) , x . makeArray ( e , this ) ) } , selector : "" , length : 0 , toArray : function ( ) { return g . call ( this ) } , get : function ( e ) { return null == e ? this . toArray ( ) : 0 > e ? this [ this . length + e ] : this [ e ] } , pushStack : function ( e ) { var t = x . merge ( this . constructor ( ) , e ) ; return t . prevObject = this , t . context = this . context , t } , each : function ( e , t ) { return x . each ( this , e , t ) } , ready : function ( e ) { return x . ready . promise ( ) . done ( e ) , this } , slice : function ( ) { return this . pushStack ( g . apply ( this , arguments ) ) } , first : function ( ) { return this . eq ( 0 ) } , last : function ( ) { return this . eq ( - 1 ) } , eq : function ( e ) { var t = this . length , n = + e + ( 0 > e ? t : 0 ) ; return this . pushStack ( n >= 0 && t > n ? [ this [ n ] ] : [ ] ) } , map : function ( e ) { return this . pushStack ( x . map ( this , function ( t , n ) { return e . call ( t , n , t ) } ) ) } , end : function ( ) { return this . prevObject || this . constructor ( null ) } , push : h , sort : [ ] . sort , splice : [ ] . splice } , x . fn . init . prototype = x . fn , x . extend = x . fn . extend = function ( ) { var e , n , r , i , o , a , s = arguments [ 0 ] || { } , l = 1 , u = arguments . length , c = ! 1 ; for ( "boolean" == typeof s && ( c = s , s = arguments [ 1 ] || { } , l = 2 ) , "object" == typeof s || x . isFunction ( s ) || ( s = { } ) , u === l && ( s = this , -- l ) ; u > l ; l ++ ) if ( null != ( o = arguments [ l ] ) ) for ( i in o ) e = s [ i ] , r = o [ i ] , s !== r && ( c && r && ( x . isPlainObject ( r ) || ( n = x . isArray ( r ) ) ) ? ( n ? ( n = ! 1 , a = e && x . isArray ( e ) ? e : [ ] ) : a = e && x . isPlainObject ( e ) ? e : { } , s [ i ] = x . extend ( c , a , r ) ) : r !== t && ( s [ i ] = r ) ) ; return s } , x . extend ( { expando : "jQuery" + ( f + Math . random ( ) ) . replace ( /\D/g , "" ) , noConflict : function ( t ) { return e . $ === x && ( e . $ = u ) , t && e . jQuery === x && ( e . jQuery = l ) , x } , isReady : ! 1 , readyWait : 1 , holdReady : function ( e ) { e ? x . readyWait ++ : x . ready ( ! 0 ) } , ready : function ( e ) { if ( e === ! 0 ? ! -- x . readyWait : ! x . isReady ) { if ( ! a . body ) return setTimeout ( x . ready ) ; x . isReady = ! 0 , e !== ! 0 && -- x . readyWait > 0 || ( n . resolveWith ( a , [ x ] ) , x . fn . trigger && x ( a ) . trigger ( "ready" ) . off ( "ready" ) ) } } , isFunction : function ( e ) { return "function" === x . type ( e ) } , isArray : Array . isArray || function ( e ) { return "array" === x . type ( e ) } , isWindow : function ( e ) { return null != e && e == e . window } , isNumeric : function ( e ) { return ! isNaN ( parseFloat ( e ) ) && isFinite ( e ) } , type : function ( e ) { return null == e ? e + "" : "object" == typeof e || "function" == typeof e ? c [ y . call ( e ) ] || "object" : typeof e } , isPlainObject : function ( e ) { var n ; if ( ! e || "object" !== x . type ( e ) || e . nodeType || x . isWindow ( e ) ) return ! 1 ; try { if ( e . constructor && ! v . call ( e , "constructor" ) && ! v . call ( e . constructor . prototype , "isPrototypeOf" ) ) return ! 1 } catch ( r ) { return ! 1 } if ( x . support . ownLast ) for ( n in e ) return v . call ( e , n ) ; for ( n in e ) ; return n === t || v
} ( { } ) ; var B = /(?:\{[\s\S]*\}|\[[\s\S]*\])$/ , P = /([A-Z])/g ; function R ( e , n , r , i ) { if ( x . acceptData ( e ) ) { var o , a , s = x . expando , l = e . nodeType , u = l ? x . cache : e , c = l ? e [ s ] : e [ s ] && s ; if ( c && u [ c ] && ( i || u [ c ] . data ) || r !== t || "string" != typeof n ) return c || ( c = l ? e [ s ] = p . pop ( ) || x . guid ++ : s ) , u [ c ] || ( u [ c ] = l ? { } : { toJSON : x . noop } ) , ( "object" == typeof n || "function" == typeof n ) && ( i ? u [ c ] = x . extend ( u [ c ] , n ) : u [ c ] . data = x . extend ( u [ c ] . data , n ) ) , a = u [ c ] , i || ( a . data || ( a . data = { } ) , a = a . data ) , r !== t && ( a [ x . camelCase ( n ) ] = r ) , "string" == typeof n ? ( o = a [ n ] , null == o && ( o = a [ x . camelCase ( n ) ] ) ) : o = a , o } } function W ( e , t , n ) { if ( x . acceptData ( e ) ) { var r , i , o = e . nodeType , a = o ? x . cache : e , s = o ? e [ x . expando ] : x . expando ; if ( a [ s ] ) { if ( t && ( r = n ? a [ s ] : a [ s ] . data ) ) { x . isArray ( t ) ? t = t . concat ( x . map ( t , x . camelCase ) ) : t in r ? t = [ t ] : ( t = x . camelCase ( t ) , t = t in r ? [ t ] : t . split ( " " ) ) , i = t . length ; while ( i -- ) delete r [ t [ i ] ] ; if ( n ? ! I ( r ) : ! x . isEmptyObject ( r ) ) return } ( n || ( delete a [ s ] . data , I ( a [ s ] ) ) ) && ( o ? x . cleanData ( [ e ] , ! 0 ) : x . support . deleteExpando || a != a . window ? delete a [ s ] : a [ s ] = null ) } } } x . extend ( { cache : { } , noData : { applet : ! 0 , embed : ! 0 , object : "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" } , hasData : function ( e ) { return e = e . nodeType ? x . cache [ e [ x . expando ] ] : e [ x . expando ] , ! ! e && ! I ( e ) } , data : function ( e , t , n ) { return R ( e , t , n ) } , removeData : function ( e , t ) { return W ( e , t ) } , _data : function ( e , t , n ) { return R ( e , t , n , ! 0 ) } , _removeData : function ( e , t ) { return W ( e , t , ! 0 ) } , acceptData : function ( e ) { if ( e . nodeType && 1 !== e . nodeType && 9 !== e . nodeType ) return ! 1 ; var t = e . nodeName && x . noData [ e . nodeName . toLowerCase ( ) ] ; return ! t || t !== ! 0 && e . getAttribute ( "classid" ) === t } } ) , x . fn . extend ( { data : function ( e , n ) { var r , i , o = null , a = 0 , s = this [ 0 ] ; if ( e === t ) { if ( this . length && ( o = x . data ( s ) , 1 === s . nodeType && ! x . _data ( s , "parsedAttrs" ) ) ) { for ( r = s . attributes ; r . length > a ; a ++ ) i = r [ a ] . name , 0 === i . indexOf ( "data-" ) && ( i = x . camelCase ( i . slice ( 5 ) ) , $ ( s , i , o [ i ] ) ) ; x . _data ( s , "parsedAttrs" , ! 0 ) } return o } return "object" == typeof e ? this . each ( function ( ) { x . data ( this , e ) } ) : arguments . length > 1 ? this . each ( function ( ) { x . data ( this , e , n ) } ) : s ? $ ( s , e , x . data ( s , e ) ) : null } , removeData : function ( e ) { return this . each ( function ( ) { x . removeData ( this , e ) } ) } } ) ; function $ ( e , n , r ) { if ( r === t && 1 === e . nodeType ) { var i = "data-" + n . replace ( P , "-$1" ) . toLowerCase ( ) ; if ( r = e . getAttribute ( i ) , "string" == typeof r ) { try { r = "true" === r ? ! 0 : "false" === r ? ! 1 : "null" === r ? null : + r + "" === r ? + r : B . test ( r ) ? x . parseJSON ( r ) : r } catch ( o ) { } x . data ( e , n , r ) } else r = t } return r } function I ( e ) { var t ; for ( t in e ) if ( ( "data" !== t || ! x . isEmptyObject ( e [ t ] ) ) && "toJSON" !== t ) return ! 1 ; return ! 0 } x . extend ( { queue : function ( e , n , r ) { var i ; return e ? ( n = ( n || "fx" ) + "queue" , i = x . _data ( e , n ) , r && ( ! i || x . isArray ( r ) ? i = x . _data ( e , n , x . makeArray ( r ) ) : i . push ( r ) ) , i || [ ] ) : t } , dequeue : function ( e , t ) { t = t || "fx" ; var n = x . queue ( e , t ) , r = n . length , i = n . shift ( ) , o = x . _queueHooks ( e , t ) , a = function ( ) { x . dequeue ( e , t ) } ; "inprogress" === i && ( i = n . shift ( ) , r -- ) , i && ( "fx" === t && n . unshift ( "inprogress" ) , delete o . stop , i . call ( e , a , o ) ) , ! r && o && o . empty . fire ( ) } , _queueHooks : function ( e , t ) { var n = t + "queueHooks" ; return x . _data ( e , n ) || x . _data ( e , n , { empty : x . Callbacks ( "once memory" ) . add ( function ( ) { x . _removeData ( e , t + "queue" ) , x . _removeData ( e , n ) } ) } ) } } ) , x . fn . extend ( { queue : function ( e , n ) { var r = 2 ; return "string" != typeof e && ( n = e , e = "fx" , r -- ) , r > arguments . length ? x . queue ( this [ 0 ] , e ) : n === t ? this : this . each ( function ( ) { var t = x . queue ( this , e , n ) ; x . _queueHooks ( this , e ) , "fx" === e && "inprogress" !== t [ 0 ] && x . dequeue ( this , e ) } ) } , dequeue : function ( e ) { return this . each ( function ( ) { x . dequeue ( this , e ) } ) } , delay : function ( e , t ) { return e = x . fx ? x . fx . speeds [ e ] || e : e , t = t || "fx" , this . queue ( t , function ( t , n ) { var r = setTimeout ( t , e ) ; n . stop = function ( ) { clearTimeout ( r ) } } ) } , clearQueue : function ( e ) { return this . queue ( e || "fx" , [ ] ) } , promise : function ( e , n ) { var r , i = 1 , o = x . Deferred ( ) , a = this , s = this . length , l = function ( ) { -- i || o . resolveWith ( a , [ a ] ) } ; "string" != typeof e && ( n = e , e = t ) , e = e || "fx" ; while ( s -- ) r = x . _data ( a [ s ] , e + "queueHooks" ) , r && r . empty && ( i ++ , r . empty . add ( l ) ) ; return l ( ) , o . promise ( n ) } } ) ; var z , X , U = /[\t\r\n\f]/g , V = /\r/g , Y = /^(?:input|select|textarea|button|object)$/i , J = /^(?:a|area)$/i , G = /^(?:checked|selected)$/i , Q = x . support . getSetAttribute , K = x . support . input ; x . fn . extend ( { attr : function ( e , t ) { return x . access ( this , x . attr , e , t , arguments . length > 1 ) } , removeAttr : function ( e ) { return this . each ( function ( ) { x . removeAttr ( this , e ) } ) } , prop : function ( e , t ) { retu
u [ o ] && ( delete u [ o ] , c ? delete n [ l ] : typeof n . removeAttribute !== i ? n . removeAttribute ( l ) : n [ l ] = null , p . push ( o ) ) } } , _evalUrl : function ( e ) { return x . ajax ( { url : e , type : "GET" , dataType : "script" , async : ! 1 , global : ! 1 , "throws" : ! 0 } ) } } ) , x . fn . extend ( { wrapAll : function ( e ) { if ( x . isFunction ( e ) ) return this . each ( function ( t ) { x ( this ) . wrapAll ( e . call ( this , t ) ) } ) ; if ( this [ 0 ] ) { var t = x ( e , this [ 0 ] . ownerDocument ) . eq ( 0 ) . clone ( ! 0 ) ; this [ 0 ] . parentNode && t . insertBefore ( this [ 0 ] ) , t . map ( function ( ) { var e = this ; while ( e . firstChild && 1 === e . firstChild . nodeType ) e = e . firstChild ; return e } ) . append ( this ) } return this } , wrapInner : function ( e ) { return x . isFunction ( e ) ? this . each ( function ( t ) { x ( this ) . wrapInner ( e . call ( this , t ) ) } ) : this . each ( function ( ) { var t = x ( this ) , n = t . contents ( ) ; n . length ? n . wrapAll ( e ) : t . append ( e ) } ) } , wrap : function ( e ) { var t = x . isFunction ( e ) ; return this . each ( function ( n ) { x ( this ) . wrapAll ( t ? e . call ( this , n ) : e ) } ) } , unwrap : function ( ) { return this . parent ( ) . each ( function ( ) { x . nodeName ( this , "body" ) || x ( this ) . replaceWith ( this . childNodes ) } ) . end ( ) } } ) ; var Pt , Rt , Wt , $t = /alpha\([^)]*\)/i , It = /opacity\s*=\s*([^)]*)/ , zt = /^(top|right|bottom|left)$/ , Xt = /^(none|table(?!-c[ea]).+)/ , Ut = /^margin/ , Vt = RegExp ( "^(" + w + ")(.*)$" , "i" ) , Yt = RegExp ( "^(" + w + ")(?!px)[a-z%]+$" , "i" ) , Jt = RegExp ( "^([+-])=(" + w + ")" , "i" ) , Gt = { BODY : "block" } , Qt = { position : "absolute" , visibility : "hidden" , display : "block" } , Kt = { letterSpacing : 0 , fontWeight : 400 } , Zt = [ "Top" , "Right" , "Bottom" , "Left" ] , en = [ "Webkit" , "O" , "Moz" , "ms" ] ; function tn ( e , t ) { if ( t in e ) return t ; var n = t . charAt ( 0 ) . toUpperCase ( ) + t . slice ( 1 ) , r = t , i = en . length ; while ( i -- ) if ( t = en [ i ] + n , t in e ) return t ; return r } function nn ( e , t ) { return e = t || e , "none" === x . css ( e , "display" ) || ! x . contains ( e . ownerDocument , e ) } function rn ( e , t ) { var n , r , i , o = [ ] , a = 0 , s = e . length ; for ( ; s > a ; a ++ ) r = e [ a ] , r . style && ( o [ a ] = x . _data ( r , "olddisplay" ) , n = r . style . display , t ? ( o [ a ] || "none" !== n || ( r . style . display = "" ) , "" === r . style . display && nn ( r ) && ( o [ a ] = x . _data ( r , "olddisplay" , ln ( r . nodeName ) ) ) ) : o [ a ] || ( i = nn ( r ) , ( n && "none" !== n || ! i ) && x . _data ( r , "olddisplay" , i ? n : x . css ( r , "display" ) ) ) ) ; for ( a = 0 ; s > a ; a ++ ) r = e [ a ] , r . style && ( t && "none" !== r . style . display && "" !== r . style . display || ( r . style . display = t ? o [ a ] || "" : "none" ) ) ; return e } x . fn . extend ( { css : function ( e , n ) { return x . access ( this , function ( e , n , r ) { var i , o , a = { } , s = 0 ; if ( x . isArray ( n ) ) { for ( o = Rt ( e ) , i = n . length ; i > s ; s ++ ) a [ n [ s ] ] = x . css ( e , n [ s ] , ! 1 , o ) ; return a } return r !== t ? x . style ( e , n , r ) : x . css ( e , n ) } , e , n , arguments . length > 1 ) } , show : function ( ) { return rn ( this , ! 0 ) } , hide : function ( ) { return rn ( this ) } , toggle : function ( e ) { return "boolean" == typeof e ? e ? this . show ( ) : this . hide ( ) : this . each ( function ( ) { nn ( this ) ? x ( this ) . show ( ) : x ( this ) . hide ( ) } ) } } ) , x . extend ( { cssHooks : { opacity : { get : function ( e , t ) { if ( t ) { var n = Wt ( e , "opacity" ) ; return "" === n ? "1" : n } } } } , cssNumber : { columnCount : ! 0 , fillOpacity : ! 0 , fontWeight : ! 0 , lineHeight : ! 0 , opacity : ! 0 , order : ! 0 , orphans : ! 0 , widows : ! 0 , zIndex : ! 0 , zoom : ! 0 } , cssProps : { "float" : x . support . cssFloat ? "cssFloat" : "styleFloat" } , style : function ( e , n , r , i ) { if ( e && 3 !== e . nodeType && 8 !== e . nodeType && e . style ) { var o , a , s , l = x . camelCase ( n ) , u = e . style ; if ( n = x . cssProps [ l ] || ( x . cssProps [ l ] = tn ( u , l ) ) , s = x . cssHooks [ n ] || x . cssHooks [ l ] , r === t ) return s && "get" in s && ( o = s . get ( e , ! 1 , i ) ) !== t ? o : u [ n ] ; if ( a = typeof r , "string" === a && ( o = Jt . exec ( r ) ) && ( r = ( o [ 1 ] + 1 ) * o [ 2 ] + parseFloat ( x . css ( e , n ) ) , a = "number" ) , ! ( null == r || "number" === a && isNaN ( r ) || ( "number" !== a || x . cssNumber [ l ] || ( r += "px" ) , x . support . clearCloneStyle || "" !== r || 0 !== n . indexOf ( "background" ) || ( u [ n ] = "inherit" ) , s && "set" in s && ( r = s . set ( e , r , i ) ) === t ) ) ) try { u [ n ] = r } catch ( c ) { } } } , css : function ( e , n , r , i ) { var o , a , s , l = x . camelCase ( n ) ; return n = x . cssProps [ l ] || ( x . cssProps [ l ] = tn ( e . style , l ) ) , s = x . cssHooks [ n ] || x . cssHooks [ l ] , s && "get" in s && ( a = s . get ( e , ! 0 , r ) ) , a === t && ( a = Wt ( e , n , i ) ) , "normal" === a && n in Kt && ( a = Kt [ n ] ) , "" === r || r ? ( o = parseFloat ( a ) , r === ! 0 || x . isNumeric ( o ) ? o || 0 : a ) : a } } ) , e . getComputedStyle ? ( Rt = function ( t ) { return e . getComputedStyle ( t , null ) } , Wt = function ( e , n , r ) { var i , o , a , s = r || Rt ( e ) , l = s ? s . getPropertyValue ( n ) || s [ n ] : t , u = e . style ; return s && ( "" !== l || x . contains ( e . ownerDocument , e ) || ( l = x . style ( e , n ) ) , Yt . test ( l ) && Ut . test ( n ) && ( i = u . width , o = u . minWidth , a = u . maxWidth , u . minWidth = u . maxWidth = u . width = l , l = s . width , u . width = i , u . minWidth = o , u . maxWidth = a ) ) , l } ) : a . documentElement . currentStyle && ( Rt = function ( e ) { return e . currentStyle } ,
2013-12-29 04:42:07 +08:00
2013-11-27 06:34:05 +08:00
/ * ! j Q u e r y U I - v 1 . 1 0 . 3 - 2 0 1 3 - 1 1 - 2 5
2013-11-07 05:09:36 +08:00
* http : //jqueryui.com
2013-11-27 06:34:05 +08:00
* Includes : jquery . ui . core . js , jquery . ui . widget . js , jquery . ui . mouse . js , jquery . ui . position . js , jquery . ui . draggable . js , jquery . ui . droppable . js , jquery . ui . resizable . js , jquery . ui . selectable . js , jquery . ui . sortable . js , jquery . ui . autocomplete . js , jquery . ui . menu . js
* Copyright 2013 jQuery Foundation and other contributors ; Licensed MIT * /
2013-11-07 05:09:36 +08:00
2013-12-29 04:42:07 +08:00
( function ( e , t ) { function i ( t , i ) { var s , n , r , o = t . nodeName . toLowerCase ( ) ; return "area" === o ? ( s = t . parentNode , n = s . name , t . href && n && "map" === s . nodeName . toLowerCase ( ) ? ( r = e ( "img[usemap=#" + n + "]" ) [ 0 ] , ! ! r && a ( r ) ) : ! 1 ) : ( /input|select|textarea|button|object/ . test ( o ) ? ! t . disabled : "a" === o ? t . href || i : i ) && a ( t ) } function a ( t ) { return e . expr . filters . visible ( t ) && ! e ( t ) . parents ( ) . addBack ( ) . filter ( function ( ) { return "hidden" === e . css ( this , "visibility" ) } ) . length } var s = 0 , n = /^ui-id-\d+$/ ; e . ui = e . ui || { } , e . extend ( e . ui , { version : "1.10.3" , keyCode : { BACKSPACE : 8 , COMMA : 188 , DELETE : 46 , DOWN : 40 , END : 35 , ENTER : 13 , ESCAPE : 27 , HOME : 36 , LEFT : 37 , NUMPAD _ADD : 107 , NUMPAD _DECIMAL : 110 , NUMPAD _DIVIDE : 111 , NUMPAD _ENTER : 108 , NUMPAD _MULTIPLY : 106 , NUMPAD _SUBTRACT : 109 , PAGE _DOWN : 34 , PAGE _UP : 33 , PERIOD : 190 , RIGHT : 39 , SPACE : 32 , TAB : 9 , UP : 38 } } ) , e . fn . extend ( { focus : function ( t ) { return function ( i , a ) { return "number" == typeof i ? this . each ( function ( ) { var t = this ; setTimeout ( function ( ) { e ( t ) . focus ( ) , a && a . call ( t ) } , i ) } ) : t . apply ( this , arguments ) } } ( e . fn . focus ) , scrollParent : function ( ) { var t ; return t = e . ui . ie && /(static|relative)/ . test ( this . css ( "position" ) ) || /absolute/ . test ( this . css ( "position" ) ) ? this . parents ( ) . filter ( function ( ) { return /(relative|absolute|fixed)/ . test ( e . css ( this , "position" ) ) && /(auto|scroll)/ . test ( e . css ( this , "overflow" ) + e . css ( this , "overflow-y" ) + e . css ( this , "overflow-x" ) ) } ) . eq ( 0 ) : this . parents ( ) . filter ( function ( ) { return /(auto|scroll)/ . test ( e . css ( this , "overflow" ) + e . css ( this , "overflow-y" ) + e . css ( this , "overflow-x" ) ) } ) . eq ( 0 ) , /fixed/ . test ( this . css ( "position" ) ) || ! t . length ? e ( document ) : t } , zIndex : function ( i ) { if ( i !== t ) return this . css ( "zIndex" , i ) ; if ( this . length ) for ( var a , s , n = e ( this [ 0 ] ) ; n . length && n [ 0 ] !== document ; ) { if ( a = n . css ( "position" ) , ( "absolute" === a || "relative" === a || "fixed" === a ) && ( s = parseInt ( n . css ( "zIndex" ) , 10 ) , ! isNaN ( s ) && 0 !== s ) ) return s ; n = n . parent ( ) } return 0 } , uniqueId : function ( ) { return this . each ( function ( ) { this . id || ( this . id = "ui-id-" + ++ s ) } ) } , removeUniqueId : function ( ) { return this . each ( function ( ) { n . test ( this . id ) && e ( this ) . removeAttr ( "id" ) } ) } } ) , e . extend ( e . expr [ ":" ] , { data : e . expr . createPseudo ? e . expr . createPseudo ( function ( t ) { return function ( i ) { return ! ! e . data ( i , t ) } } ) : function ( t , i , a ) { return ! ! e . data ( t , a [ 3 ] ) } , focusable : function ( t ) { return i ( t , ! isNaN ( e . attr ( t , "tabindex" ) ) ) } , tabbable : function ( t ) { var a = e . attr ( t , "tabindex" ) , s = isNaN ( a ) ; return ( s || a >= 0 ) && i ( t , ! s ) } } ) , e ( "<a>" ) . outerWidth ( 1 ) . jquery || e . each ( [ "Width" , "Height" ] , function ( i , a ) { function s ( t , i , a , s ) { return e . each ( n , function ( ) { i -= parseFloat ( e . css ( t , "padding" + this ) ) || 0 , a && ( i -= parseFloat ( e . css ( t , "border" + this + "Width" ) ) || 0 ) , s && ( i -= parseFloat ( e . css ( t , "margin" + this ) ) || 0 ) } ) , i } var n = "Width" === a ? [ "Left" , "Right" ] : [ "Top" , "Bottom" ] , r = a . toLowerCase ( ) , o = { innerWidth : e . fn . innerWidth , innerHeight : e . fn . innerHeight , outerWidth : e . fn . outerWidth , outerHeight : e . fn . outerHeight } ; e . fn [ "inner" + a ] = function ( i ) { return i === t ? o [ "inner" + a ] . call ( this ) : this . each ( function ( ) { e ( this ) . css ( r , s ( this , i ) + "px" ) } ) } , e . fn [ "outer" + a ] = function ( t , i ) { return "number" != typeof t ? o [ "outer" + a ] . call ( this , t ) : this . each ( function ( ) { e ( this ) . css ( r , s ( this , t , ! 0 , i ) + "px" ) } ) } } ) , e . fn . addBack || ( e . fn . addBack = function ( e ) { return this . add ( null == e ? this . prevObject : this . prevObject . filter ( e ) ) } ) , e ( "<a>" ) . data ( "a-b" , "a" ) . removeData ( "a-b" ) . data ( "a-b" ) && ( e . fn . removeData = function ( t ) { return function ( i ) { return arguments . length ? t . call ( this , e . camelCase ( i ) ) : t . call ( this ) } } ( e . fn . removeData ) ) , e . ui . ie = ! ! /msie [\w.]+/ . exec ( navigator . userAgent . toLowerCase ( ) ) , e . support . selectstart = "onselectstart" in document . createElement ( "div" ) , e . fn . extend ( { disableSelection : function ( ) { return this . bind ( ( e . support . selectstart ? "selectstart" : "mousedown" ) + ".ui-disableSelection" , function ( e ) { e . preventDefault ( ) } ) } , enableSelection : function ( ) { return this . unbind ( ".ui-disableSelection" ) } } ) , e . extend ( e . ui , { plugin : { add : function ( t , i , a ) { var s , n = e . ui [ t ] . prototype ; for ( s in a ) n . plugins [ s ] = n . plugins [ s ] || [ ] , n . plugins [ s ] . push ( [ i , a [ s ] ] ) } , call : function ( e , t , i ) { var a , s = e . plugins [ t ] ; if ( s && e . element [ 0 ] . parentNode && 11 !== e . element [ 0 ] . parentNode . nodeType ) for ( a = 0 ; s . length > a ; a ++ ) e . options [ s [ a ] [ 0 ] ] && s [ a ] [ 1 ] . apply ( e . element , i ) } } , hasScroll : function ( t , i ) { if ( "hidden" === e ( t ) . css ( "overflow" ) ) return ! 1 ; var a = i && "left" === i ? "scrollLeft" : "scrollTop" , s =
/*! jquery.cookie v1.4.0 (c) 2013 Klaus Hartl | MIT */
! function ( a ) { "function" == typeof define && define . amd ? define ( [ "jquery" ] , a ) : a ( jQuery ) } ( function ( a ) { function b ( a ) { return h . raw ? a : encodeURIComponent ( a ) } function c ( a ) { return h . raw ? a : decodeURIComponent ( a ) } function d ( a ) { return b ( h . json ? JSON . stringify ( a ) : String ( a ) ) } function e ( a ) { 0 === a . indexOf ( '"' ) && ( a = a . slice ( 1 , - 1 ) . replace ( /\\"/g , '"' ) . replace ( /\\\\/g , "\\" ) ) ; try { return a = decodeURIComponent ( a . replace ( g , " " ) ) , h . json ? JSON . parse ( a ) : a } catch ( b ) { } } function f ( b , c ) { var d = h . raw ? b : e ( b ) ; return a . isFunction ( c ) ? c ( d ) : d } var g = /\+/g , h = a . cookie = function ( e , g , i ) { if ( void 0 !== g && ! a . isFunction ( g ) ) { if ( i = a . extend ( { } , h . defaults , i ) , "number" == typeof i . expires ) { var j = i . expires , k = i . expires = new Date ; k . setDate ( k . getDate ( ) + j ) } return document . cookie = [ b ( e ) , "=" , d ( g ) , i . expires ? "; expires=" + i . expires . toUTCString ( ) : "" , i . path ? "; path=" + i . path : "" , i . domain ? "; domain=" + i . domain : "" , i . secure ? "; secure" : "" ] . join ( "" ) } for ( var l = e ? void 0 : { } , m = document . cookie ? document . cookie . split ( "; " ) : [ ] , n = 0 , o = m . length ; o > n ; n ++ ) { var p = m [ n ] . split ( "=" ) , q = c ( p . shift ( ) ) , r = p . join ( "=" ) ; if ( e && e === q ) { l = f ( r , g ) ; break } e || void 0 === ( r = f ( r ) ) || ( l [ q ] = r ) } return l } ; h . defaults = { } , a . removeCookie = function ( b , c ) { return void 0 === a . cookie ( b ) ? ! 1 : ( a . cookie ( b , "" , a . extend ( { } , c , { expires : - 1 } ) ) , ! a . cookie ( b ) ) } } ) ;
2013-12-13 18:11:30 +08:00
/ * ! j q u e r y . f i n g e r - v 0 . 1 . 0 - a l p h a - 2 0 1 3 - 0 7 - 0 1
* https : //github.com/ngryman/jquery.finger
* Copyright ( c ) 2013 Nicolas Gryman ; Licensed MIT * /
2013-12-29 04:42:07 +08:00
( function ( t ) { function e ( t , e ) { return ( r ? e . originalEvent . touches [ 0 ] : e ) [ "page" + t . toUpperCase ( ) ] } function a ( a ) { var r = { } , v = a . timeStamp || + new Date , m = t . data ( this , u ) ; i != v && ( i = v , r . move = { x : e ( "x" , a ) , y : e ( "y" , a ) } , r . start = t . extend ( { time : v , target : a . target } , r . move ) , r . timeout = setTimeout ( t . proxy ( function ( ) { t . event . trigger ( t . Event ( "press" , r . move ) , null , a . target ) , t . event . remove ( this , d + "." + u , o ) , t . event . remove ( this , s + "." + u , n ) } , this ) , t . Finger . pressDuration ) , t . event . add ( this , d + "." + u , o , r ) , t . event . add ( this , s + "." + u , n , r ) , ( l . preventDefault || m . options . preventDefault ) && a . preventDefault ( ) ) } function o ( a ) { var o = a . data , i = o . start , r = o . move ; return r . x = e ( "x" , a ) , r . y = e ( "y" , a ) , r . dx = r . x - i . x , r . dy = r . y - i . y , r . adx = Math . abs ( r . dx ) , r . ady = Math . abs ( r . dy ) , o . motion = r . adx > l . motionThreshold || r . ady > l . motionThreshold , o . motion ? ( clearTimeout ( o . timeout ) , r . orientation || ( r . adx > o . move . ady ? ( r . orientation = "horizontal" , r . direction = r . dx > 0 ? 1 : - 1 ) : ( r . orientation = "vertical" , r . direction = r . dy > 0 ? 1 : - 1 ) ) , a . target !== i . target ? ( a . target = i . target , n . call ( this , t . Event ( s + "." + u , a ) ) , void 0 ) : ( t . event . trigger ( t . Event ( "drag" , r ) , null , a . target ) , void 0 ) ) : void 0 } function n ( e ) { var a , i = e . data , r = e . timeStamp || + new Date , v = t . data ( this , u ) , m = r - i . start . time ; clearTimeout ( i . timeout ) , e . target === i . start . target && ( i . motion ? ( a = l . flickDuration > m ? "flick" : "drag" , i . move . end = ! 0 ) : ( a = l . pressDuration > m && ! v . prev || v . prev && r - v . prev > l . doubleTapInterval ? "tap" : "doubletap" , v . prev = r ) , t . event . trigger ( t . Event ( a , i . move ) , null , e . target ) , t . event . remove ( this , d + "." + u , o ) , t . event . remove ( this , s + "." + u , n ) ) } var i , r = "ontouchstart" in window , v = r ? "touchstart" : "mousedown" , s = r ? "touchend touchcancel" : "mouseup mouseleave" , d = r ? "touchmove" : "mousemove" , u = "finger" , l = t . Finger = { pressDuration : 300 , doubleTapInterval : 300 , flickDuration : 150 , motionThreshold : 5 } , m = { add : function ( e ) { t . data ( this , u ) || ( t . event . add ( this , v + "." + u , a ) , t . data ( this , u , { options : e . data || { } } ) ) } , teardown : function ( ) { t . data ( this , u ) && ( t . event . remove ( this , v + "." + u , a ) , t . data ( this , u , null ) ) } } ; t . event . special . tap = m , t . event . special . press = m , t . event . special . doubletap = m , t . event . special . drag = m , t . event . special . flick = m } ) ( jQuery ) ;
/*! jquery.mousewheel v3.1.4 (c) 2013 Brandon Aaron (http://brandon.aaron.sh) | MIT */
! function ( a ) { "function" == typeof define && define . amd ? define ( [ "jquery" ] , a ) : "object" == typeof exports ? module . exports = a : a ( jQuery ) } ( function ( a ) { function b ( b ) { var e , f = b || window . event , g = [ ] . slice . call ( arguments , 1 ) , h = 0 , i = 0 , j = 0 , k = 0 , l = 0 ; return b = a . event . fix ( f ) , b . type = "mousewheel" , f . wheelDelta && ( h = f . wheelDelta ) , f . detail && ( h = - 1 * f . detail ) , j = h , void 0 !== f . axis && f . axis === f . HORIZONTAL _AXIS && ( j = 0 , i = - 1 * h ) , f . deltaY && ( j = - 1 * f . deltaY , h = j ) , f . deltaX && ( i = f . deltaX , h = - 1 * i ) , void 0 !== f . wheelDeltaY && ( j = f . wheelDeltaY ) , void 0 !== f . wheelDeltaX && ( i = - 1 * f . wheelDeltaX ) , k = Math . abs ( h ) , ( ! c || c > k ) && ( c = k ) , l = Math . max ( Math . abs ( j ) , Math . abs ( i ) ) , ( ! d || d > l ) && ( d = l ) , e = h > 0 ? "floor" : "ceil" , h = Math [ e ] ( h / c ) , i = Math [ e ] ( i / d ) , j = Math [ e ] ( j / d ) , g . unshift ( b , h , i , j ) , ( a . event . dispatch || a . event . handle ) . apply ( this , g ) } var c , d , e = [ "wheel" , "mousewheel" , "DOMMouseScroll" , "MozMousePixelScroll" ] , f = "onwheel" in document || document . documentMode >= 9 ? [ "wheel" ] : [ "mousewheel" , "DomMouseScroll" , "MozMousePixelScroll" ] ; if ( a . event . fixHooks ) for ( var g = e . length ; g ; ) a . event . fixHooks [ e [ -- g ] ] = a . event . mouseHooks ; a . event . special . mousewheel = { setup : function ( ) { if ( this . addEventListener ) for ( var a = f . length ; a ; ) this . addEventListener ( f [ -- a ] , b , ! 1 ) ; else this . onmousewheel = b } , teardown : function ( ) { if ( this . removeEventListener ) for ( var a = f . length ; a ; ) this . removeEventListener ( f [ -- a ] , b , ! 1 ) ; else this . onmousewheel = null } } , a . fn . extend ( { mousewheel : function ( a ) { return a ? this . bind ( "mousewheel" , a ) : this . trigger ( "mousewheel" ) } , unmousewheel : function ( a ) { return this . unbind ( "mousewheel" , a ) } } ) } ) ;
2013-11-16 06:21:12 +08:00
/* http://james.padolsey.com/javascript/special-scroll-events-for-jquery/ */
2013-12-29 04:42:07 +08:00
! function ( ) { var a = jQuery . event . special , b = "D" + + new Date , c = "D" + ( + new Date + 1 ) ; a . scrollstart = { setup : function ( ) { var c , d = function ( b ) { var d = this , e = arguments ; c ? clearTimeout ( c ) : ( b . type = "scrollstart" , jQuery . event . dispatch . apply ( d , e ) ) , c = setTimeout ( function ( ) { c = null } , a . scrollstop . latency ) } ; jQuery ( this ) . bind ( "scroll" , d ) . data ( b , d ) } , teardown : function ( ) { jQuery ( this ) . unbind ( "scroll" , jQuery ( this ) . data ( b ) ) } } , a . scrollstop = { latency : 300 , setup : function ( ) { var b , d = function ( c ) { var d = this , e = arguments ; b && clearTimeout ( b ) , b = setTimeout ( function ( ) { b = null , c . type = "scrollstop" , jQuery . event . dispatch . apply ( d , e ) } , a . scrollstop . latency ) } ; jQuery ( this ) . bind ( "scroll" , d ) . data ( c , d ) } , teardown : function ( ) { jQuery ( this ) . unbind ( "scroll" , jQuery ( this ) . data ( c ) ) } } } ( ) ;
2013-11-16 06:21:12 +08:00
/*! RainLoop Top Driver v1.0; Mika Tuupola; Licensed under MIT */
2013-12-29 04:42:07 +08:00
! function ( a , b , c , d ) { var e = a ( b ) ; a . fn . lazyload = function ( f ) { function g ( ) { var b = 0 ; i . each ( function ( ) { var c = a ( this ) ; if ( ! j . skip _invisible || c . is ( ":visible" ) ) if ( a . abovethetop ( this , j ) || a . leftofbegin ( this , j ) ) ; else if ( a . belowthefold ( this , j ) || a . rightoffold ( this , j ) ) { if ( ++ b > j . failure _limit ) return ! 1 } else c . trigger ( "appear" ) , b = 0 } ) } var h , i = this , j = { threshold : 0 , failure _limit : 0 , event : "scroll" , effect : "show" , container : b , data _attribute : "original" , skip _invisible : ! 0 , appear : null , load : null , placeholder : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB/AAffA0nNPuCLAAAAAElFTkSuQmCC" } ; return f && ( d !== f . failurelimit && ( f . failure _limit = f . failurelimit , delete f . failurelimit ) , d !== f . effectspeed && ( f . effect _speed = f . effectspeed , delete f . effectspeed ) , a . extend ( j , f ) ) , h = j . container === d || j . container === b ? e : a ( j . container ) , 0 === j . event . indexOf ( "scroll" ) && h . bind ( j . event , function ( ) { return g ( ) } ) , this . each ( function ( ) { var b = this , c = a ( b ) ; b . loaded = ! 1 , ( c . attr ( "src" ) === d || c . attr ( "src" ) === ! 1 ) && c . attr ( "src" , j . placeholder ) , c . one ( "appear" , function ( ) { if ( ! this . loaded ) { if ( j . appear ) { var d = i . length ; j . appear . call ( b , d , j ) } a ( "<img />" ) . bind ( "load" , function ( ) { var d = c . data ( j . data _attribute ) ; c . hide ( ) , c . is ( "img" ) ? c . attr ( "src" , d ) : c . css ( "background-image" , "url('" + d + "')" ) , c [ j . effect ] ( j . effect _speed ) , b . loaded = ! 0 ; var e = a . grep ( i , function ( a ) { return ! a . loaded } ) ; if ( i = a ( e ) , j . load ) { var f = i . length ; j . load . call ( b , f , j ) } } ) . attr ( "src" , c . data ( j . data _attribute ) ) } } ) , 0 !== j . event . indexOf ( "scroll" ) && c . bind ( j . event , function ( ) { b . loaded || c . trigger ( "appear" ) } ) } ) , e . bind ( "resize" , function ( ) { g ( ) } ) , /iphone|ipod|ipad.*os 5/gi . test ( navigator . appVersion ) && e . bind ( "pageshow" , function ( b ) { b . originalEvent && b . originalEvent . persisted && i . each ( function ( ) { a ( this ) . trigger ( "appear" ) } ) } ) , a ( c ) . ready ( function ( ) { g ( ) } ) , this } , a . belowthefold = function ( c , f ) { var g ; return g = f . container === d || f . container === b ? ( b . innerHeight ? b . innerHeight : e . height ( ) ) + e . scrollTop ( ) : a ( f . container ) . offset ( ) . top + a ( f . container ) . height ( ) , g <= a ( c ) . offset ( ) . top - f . threshold } , a . rightoffold = function ( c , f ) { var g ; return g = f . container === d || f . container === b ? e . width ( ) + e . scrollLeft ( ) : a ( f . container ) . offset ( ) . left + a ( f . container ) . width ( ) , g <= a ( c ) . offset ( ) . left - f . threshold } , a . abovethetop = function ( c , f ) { var g ; return g = f . container === d || f . container === b ? e . scrollTop ( ) : a ( f . container ) . offset ( ) . top , g >= a ( c ) . offset ( ) . top + f . threshold + a ( c ) . height ( ) } , a . leftofbegin = function ( c , f ) { var g ; return g = f . container === d || f . container === b ? e . scrollLeft ( ) : a ( f . container ) . offset ( ) . left , g >= a ( c ) . offset ( ) . left + f . threshold + a ( c ) . width ( ) } , a . inviewport = function ( b , c ) { return ! ( a . rightoffold ( b , c ) || a . leftofbegin ( b , c ) || a . belowthefold ( b , c ) || a . abovethetop ( b , c ) ) } , a . extend ( a . expr [ ":" ] , { "below-the-fold" : function ( b ) { return a . belowthefold ( b , { threshold : 0 } ) } , "above-the-top" : function ( b ) { return ! a . belowthefold ( b , { threshold : 0 } ) } , "right-of-screen" : function ( b ) { return a . rightoffold ( b , { threshold : 0 } ) } , "left-of-screen" : function ( b ) { return ! a . rightoffold ( b , { threshold : 0 } ) } , "in-viewport" : function ( b ) { return a . inviewport ( b , { threshold : 0 } ) } , "above-the-fold" : function ( b ) { return ! a . belowthefold ( b , { threshold : 0 } ) } , "right-of-fold" : function ( b ) { return a . rightoffold ( b , { threshold : 0 } ) } , "left-of-fold" : function ( b ) { return ! a . rightoffold ( b , { threshold : 0 } ) } } ) } ( jQuery , window , document ) ;
/*! nanoScrollerJS v0.7 (c) 2013 James Florentino; modified by RainLoop Team | MIT */
! function ( a , b , c ) { "use strict" ; var d , e , f , g , h , i , j , k , l , m , n , o , p , q , r , s , t , u , v , w , x ; w = { paneClass : "pane" , sliderClass : "slider" , contentClass : "content" , iOSNativeScrolling : ! 1 , preventPageScrolling : ! 1 , disableResize : ! 1 , alwaysVisible : ! 1 , flashDelay : 1500 , sliderMinHeight : 20 , sliderMaxHeight : null } , s = "scrollbar" , r = "scroll" , k = "mousedown" , l = "mousemove" , n = "mousewheel" , m = "mouseup" , q = "resize" , h = "drag" , u = "up" , p = "panedown" , f = "DOMMouseScroll" , g = "down" , v = "wheel" , i = "keydown" , j = "keyup" , t = "touchmove" , d = "Microsoft Internet Explorer" === b . navigator . appName && /msie 7./i . test ( b . navigator . appVersion ) && b . ActiveXObject , e = null , x = function ( ) { var a , b , d ; return a = c . createElement ( "div" ) , b = a . style , b . position = "absolute" , b . width = "100px" , b . height = "100px" , b . overflow = r , b . top = "-9999px" , a . className = "nano-visibility-hidden" , c . body . appendChild ( a ) , d = a . offsetWidth - a . clientWidth , c . body . removeChild ( a ) , d } , o = function ( ) { function i ( d , f ) { this . el = d , this . options = f , e || ( e = x ( ) ) , this . $el = a ( this . el ) , this . doc = a ( c ) , this . win = a ( b ) , this . $content = this . $el . children ( "." + f . contentClass ) , this . $content . attr ( "tabindex" , 0 ) , this . content = this . $content [ 0 ] , this . options . iOSNativeScrolling && null != this . el . style . WebkitOverflowScrolling ? this . nativeScrolling ( ) : this . generate ( ) , this . createEvents ( ) , this . addEvents ( ) , this . reset ( ) } return i . prototype . preventScrolling = function ( a , b ) { if ( this . isActive || this . isActive2 ) if ( a . type === f ) ( b === g && a . originalEvent . detail > 0 || b === u && a . originalEvent . detail < 0 ) && a . preventDefault ( ) ; else if ( a . type === n ) { if ( ! a . originalEvent || ! a . originalEvent . wheelDelta ) return ; ( b === g && a . originalEvent . wheelDelta < 0 || b === u && a . originalEvent . wheelDelta > 0 ) && a . preventDefault ( ) } } , i . prototype . nativeScrolling = function ( ) { this . $content . css ( { WebkitOverflowScrolling : "touch" } ) , this . iOSNativeScrolling = ! 0 , this . isActive = ! 0 , this . isActive2 = ! 0 } , i . prototype . updateScrollValues = function ( ) { var a ; a = this . content , this . maxScrollTop = a . scrollHeight - a . clientHeight , this . maxScroll2Left = a . scrollWidth - a . clientWidth , this . contentScrollTop = a . scrollTop , this . contentScroll2Left = a . scrollLeft , this . iOSNativeScrolling || ( this . maxSliderTop = this . paneHeight - this . sliderHeight , this . maxSlider2Left = this . pane2Width - this . slider2Width , this . sliderTop = this . contentScrollTop * this . maxSliderTop / this . maxScrollTop , this . slider2Left = this . contentScroll2Left * this . maxSlider2Left / this . maxScroll2Left ) } , i . prototype . createEvents = function ( ) { var a = this ; this . events = { down : function ( b ) { return a . isBeingDragged = ! 0 , a . offsetY = b . pageY - a . slider . offset ( ) . top , a . pane . addClass ( "active" ) , a . doc . bind ( l , a . events [ h ] ) . bind ( m , a . events [ u ] ) , ! 1 } , down2 : function ( b ) { return a . isBeingDragged2 = ! 0 , a . offsetX = b . pageX - a . slider2 . offset ( ) . left , a . pane2 . addClass ( "active" ) , a . doc . bind ( l , a . events . drag2 ) . bind ( m , a . events . up2 ) , ! 1 } , drag : function ( b ) { return a . sliderY = b . pageY - a . $el . offset ( ) . top - a . offsetY , a . scroll ( ) , a . updateScrollValues ( ) , a . contentScrollTop >= a . maxScrollTop ? a . $el . trigger ( "scrollend" ) : 0 === a . contentScrollTop && a . $el . trigger ( "scrolltop" ) , ! 1 } , drag2 : function ( b ) { return a . slider2X = b . pageX - a . $el . offset ( ) . left - a . offsetX , a . scroll ( ) , a . updateScrollValues ( ) , ! 1 } , up : function ( ) { return a . isBeingDragged = ! 1 , a . pane . removeClass ( "active" ) , a . doc . unbind ( l , a . events [ h ] ) . unbind ( m , a . events [ u ] ) , ! 1 } , up2 : function ( ) { return a . isBeingDragged2 = ! 1 , a . pane2 . removeClass ( "active" ) , a . doc . unbind ( l , a . events . drag2 ) . unbind ( m , a . events . up2 ) , ! 1 } , resize : function ( ) { a . reset ( ) } , panedown : function ( b ) { return a . sliderY = ( b . offsetY || b . originalEvent . layerY ) - . 5 * a . sliderHeight , a . scroll ( ) , a . events . down ( b ) , ! 1 } , panedown2 : function ( b ) { return a . slider2X = ( b . offsetX || b . originalEvent . layerX ) - . 5 * a . slider2Width , a . scroll ( ) , a . events . down2 ( b ) , ! 1 } , scroll : function ( b ) { a . isBeingDragged || a . isBeingDragged2 || ( a . updateScrollValues ( ) , a . iOSNativeScrolling || ( a . sliderY = a . sliderTop , a . slider . css ( { top : a . sliderTop } ) , a . slider2X = a . slider2Left , a . slider2 . css ( { left : a . slider2Left } ) ) , b && ( a . contentScrollTop >= a . maxScrollTop ? ( a . options . preventPageScrolling && a . preventScrolling ( b , g ) , a . $el . trigger ( "scrollend" ) ) : 0 === a . contentScrollTop && ( a . options . preventPageScrolling && a . preventScrolling ( b , u ) , a . $el . trigger ( "scrolltop" ) ) ) ) } , wheel : function ( b ) { return b && void 0 !== b . wheelDeltaY && void 0 !== b . delta ? ( a . sliderY += - b . wheelDeltaY || - b . delta
/*! jQuery WakeUp plugin (c) 2013 Paul Okopny <paul.okopny@gmail.com> | MIT */
! function ( a ) { var b = 1e3 , c = new Array ; a . wakeUp = function ( a , d , e ) { if ( e && "number" == typeof e || ( e = b ) , "function" != typeof a ) return null ; var f = ( new Date ) . getTime ( ) , g = setInterval ( function ( ) { var b = ( new Date ) . getTime ( ) ; if ( b > f + e + 1e3 ) { var c = b - f ; f = b , d ? a ( c , d ) : a ( c ) } else f = b } , e ) ; return c . push ( g ) , g } , a . ignoreBell = function ( b ) { b && ( c . splice ( a . inArray ( b , c ) , 1 ) , clearInterval ( b ) ) } , a . dreamOn = function ( ) { a . each ( c , function ( a , b ) { clearInterval ( b ) } ) , c = new Array } } ( jQuery , document ) ;
/*! Inputosaurus Text v0.1.6 (c) 2013 Dan Kielp <dan@sproutsocial.com>; modified by RainLoop Team | MIT */
! function ( a ) { var b = { version : "0.1.6" , fakeSpan : a ( '<span class="inputosaurus-fake-span"></span>' ) , eventprefix : "inputosaurus" , options : { inputDelimiters : [ "," , ";" ] , outputDelimiter : "," , allowDuplicates : ! 1 , parseOnBlur : ! 1 , wrapperElement : null , width : null , autoCompleteSource : "" , activateFinalResult : ! 1 , parseHook : null , placeholder : null } , _create : function ( ) { var b = this , c = { } , d = b . options , e = d . placeholder || this . element . attr ( "placeholder" ) || null ; this . _chosenValues = [ ] , c . ul = a ( '<ul class="inputosaurus-container"></ul>' ) , c . ul . droppable ( { drop : function ( a , d ) { d . draggable . addClass ( "inputosaurus-dropped" ) , c . input . val ( d . draggable . data ( "inputosaurus-value" ) ) , d . draggable . _ _widget && d . draggable . _ _widget . _removeDraggedTag ( d . draggable ) , b . parseInput ( ) } } ) , c . input = a ( '<input type="email" />' ) , c . inputCont = a ( '<li class="inputosaurus-input inputosaurus-required"></li>' ) , c . origInputCont = a ( '<li class="inputosaurus-input-hidden inputosaurus-required"></li>' ) , c . lastEdit = "" , e && ( d . placeholder = e , c . input . attr ( "placeholder" , d . placeholder ) , d . width && c . input . css ( "min-width" , d . width - 50 ) ) , d . wrapperElement && d . wrapperElement . append ( c . ul ) , this . element . replaceWith ( d . wrapperElement || c . ul ) , c . origInputCont . append ( this . element ) . hide ( ) , c . inputCont . append ( c . input ) , c . ul . append ( c . inputCont ) , c . ul . append ( c . origInputCont ) , d . width && c . ul . css ( "width" , d . width ) , this . elements = c , b . _attachEvents ( ) , a . trim ( this . element . val ( ) ) && ( c . input . val ( this . element . val ( ) ) , this . parseInput ( ) ) , this . _instAutocomplete ( ) } , _instAutocomplete : function ( ) { if ( this . options . autoCompleteSource ) { var b = this ; this . elements . input . autocomplete ( { position : { of : this . elements . ul } , source : this . options . autoCompleteSource , minLength : 1 , select : function ( a , c ) { a . preventDefault ( ) , b . elements . input . val ( c . item . value ) , b . parseInput ( ) } , open : function ( ) { var c , d = a ( this ) . data ( "ui-autocomplete" ) . menu ; d . element . width ( b . elements . ul . outerWidth ( ) ) , b . options . activateFinalResult && ( c = d . element . find ( "li" ) , 1 === c . size ( ) && d [ d . activate ? "activate" : "focus" ] ( a . Event ( "click" ) , c ) ) } , focus : function ( ) { return ! 1 } } ) } } , _autoCompleteMenuPosition : function ( ) { var a ; this . options . autoCompleteSource && ( a = this . elements . input . data ( "ui-autocomplete" ) , a && a . menu . element . position ( { of : this . elements . ul , my : "left top" , at : "left bottom" , collision : "none" } ) ) } , parseInput : function ( b ) { var c , d = b && b . data . widget || this , e = ! 1 , f = [ ] ; c = d . elements . input . val ( ) , c && ( e = d . _containsDelimiter ( c ) ) , e !== ! 1 ? f = c . split ( e ) : b && ( b . which !== a . ui . keyCode . ENTER || a ( ".ui-menu-item .ui-state-focus" ) . size ( ) || a ( "#ui-active-menuitem" ) . size ( ) ) ? "blur" !== b . type || a ( "#ui-active-menuitem" ) . size ( ) || f . push ( c ) : ( f . push ( c ) , b && b . preventDefault ( ) ) , a . isFunction ( d . options . parseHook ) && ( f = d . options . parseHook ( f ) ) , f . length && ( d . _setChosen ( f ) , d . elements . input . val ( "" ) , d . _resizeInput ( ) ) , d . _resetPlaceholder ( ) } , _inputFocus : function ( a ) { var b = a . data . widget || this ; b . elements . input . value || b . options . autoCompleteSource . length && b . elements . input . autocomplete ( "search" , "" ) } , _inputKeypress : function ( b ) { var c = b . data . widget || this ; switch ( "keyup" === b . type && c . _trigger ( "keyup" , b , c ) , b . which ) { case a . ui . keyCode . BACKSPACE : "keydown" === b . type && c . _inputBackspace ( b ) ; break ; case a . ui . keyCode . LEFT : "keydown" === b . type && c . _inputBackspace ( b ) ; break ; default : c . parseInput ( b ) , c . _resizeInput ( b ) } c . options . autoCompleteSource && setTimeout ( function ( ) { c . _autoCompleteMenuPosition . call ( c ) } , 200 ) } , resizeInput : function ( ) { this . _resizeInput ( ) } , _resizeInput : function ( a ) { var c = a && a . data . widget || this ; b . fakeSpan . text ( c . elements . input . val ( ) ) ; var d = 25 + b . fakeSpan . width ( ) ; d = d > 50 ? d : 50 , d = 500 > d ? d : 500 , c . elements . input . width ( d ) } , _resetPlaceholder : function ( ) { var a = this . options . placeholder , b = this . elements . input , c = this . options . width || "inherit" ; a && 0 === this . element . val ( ) . length ? b . attr ( "placeholder" , a ) . css ( "min-width" , c - 50 ) : b . attr ( "placeholder" , "" ) . css ( "min-width" , "inherit" ) } , _inputBackspace : function ( b ) { var c = b && b . data . widget || this , d = c . elements . ul . find ( "li:not(.inputosaurus-required):last" ) ; b . stopPropagation ( ) , ( ! a ( b . currentTarget ) . val ( ) || "selectionStart" in b . currentTarget && 0 === b . currentTarget . selectionStart && 0 === b . currentTarget . selectionEnd ) && d . size ( ) && ( b . preventDefault ( ) , d . find ( "a" ) . focus ( ) ) } , _editTag : function ( b ) { var c = b && b . data . widget || this , d = ""
2013-11-07 05:09:36 +08:00
//! moment.js
//! version : 2.3.1
//! authors : Tim Wood, Iskren Chernev, Moment.js contributors
//! license : MIT
//! momentjs.com
2013-12-29 04:42:07 +08:00
( function ( a ) { function b ( a , b ) { return function ( c ) { return i ( a . call ( this , c ) , b ) } } function c ( a , b ) { return function ( c ) { return this . lang ( ) . ordinal ( a . call ( this , c ) , b ) } } function d ( ) { } function e ( a ) { u ( a ) , g ( this , a ) } function f ( a ) { var b = o ( a ) , c = b . year || 0 , d = b . month || 0 , e = b . week || 0 , f = b . day || 0 , g = b . hour || 0 , h = b . minute || 0 , i = b . second || 0 , j = b . millisecond || 0 ; this . _input = a , this . _milliseconds = + j + 1e3 * i + 6e4 * h + 36e5 * g , this . _days = + f + 7 * e , this . _months = + d + 12 * c , this . _data = { } , this . _bubble ( ) } function g ( a , b ) { for ( var c in b ) b . hasOwnProperty ( c ) && ( a [ c ] = b [ c ] ) ; return b . hasOwnProperty ( "toString" ) && ( a . toString = b . toString ) , b . hasOwnProperty ( "valueOf" ) && ( a . valueOf = b . valueOf ) , a } function h ( a ) { return 0 > a ? Math . ceil ( a ) : Math . floor ( a ) } function i ( a , b ) { for ( var c = a + "" ; c . length < b ; ) c = "0" + c ; return c } function j ( a , b , c , d ) { var e , f , g = b . _milliseconds , h = b . _days , i = b . _months ; g && a . _d . setTime ( + a . _d + g * c ) , ( h || i ) && ( e = a . minute ( ) , f = a . hour ( ) ) , h && a . date ( a . date ( ) + h * c ) , i && a . month ( a . month ( ) + i * c ) , g && ! d && bb . updateOffset ( a ) , ( h || i ) && ( a . minute ( e ) , a . hour ( f ) ) } function k ( a ) { return "[object Array]" === Object . prototype . toString . call ( a ) } function l ( a ) { return "[object Date]" === Object . prototype . toString . call ( a ) } function m ( a , b , c ) { var d , e = Math . min ( a . length , b . length ) , f = Math . abs ( a . length - b . length ) , g = 0 ; for ( d = 0 ; e > d ; d ++ ) ( c && a [ d ] !== b [ d ] || ! c && q ( a [ d ] ) !== q ( b [ d ] ) ) && g ++ ; return g + f } function n ( a ) { if ( a ) { var b = a . toLowerCase ( ) . replace ( /(.)s$/ , "$1" ) ; a = Jb [ a ] || Kb [ b ] || b } return a } function o ( a ) { var b , c , d = { } ; for ( c in a ) a . hasOwnProperty ( c ) && ( b = n ( c ) , b && ( d [ b ] = a [ c ] ) ) ; return d } function p ( b ) { var c , d ; if ( 0 === b . indexOf ( "week" ) ) c = 7 , d = "day" ; else { if ( 0 !== b . indexOf ( "month" ) ) return ; c = 12 , d = "month" } bb [ b ] = function ( e , f ) { var g , h , i = bb . fn . _lang [ b ] , j = [ ] ; if ( "number" == typeof e && ( f = e , e = a ) , h = function ( a ) { var b = bb ( ) . utc ( ) . set ( d , a ) ; return i . call ( bb . fn . _lang , b , e || "" ) } , null != f ) return h ( f ) ; for ( g = 0 ; c > g ; g ++ ) j . push ( h ( g ) ) ; return j } } function q ( a ) { var b = + a , c = 0 ; return 0 !== b && isFinite ( b ) && ( c = b >= 0 ? Math . floor ( b ) : Math . ceil ( b ) ) , c } function r ( a , b ) { return new Date ( Date . UTC ( a , b + 1 , 0 ) ) . getUTCDate ( ) } function s ( a ) { return t ( a ) ? 366 : 365 } function t ( a ) { return 0 === a % 4 && 0 !== a % 100 || 0 === a % 400 } function u ( a ) { var b ; a . _a && - 2 === a . _pf . overflow && ( b = a . _a [ gb ] < 0 || a . _a [ gb ] > 11 ? gb : a . _a [ hb ] < 1 || a . _a [ hb ] > r ( a . _a [ fb ] , a . _a [ gb ] ) ? hb : a . _a [ ib ] < 0 || a . _a [ ib ] > 23 ? ib : a . _a [ jb ] < 0 || a . _a [ jb ] > 59 ? jb : a . _a [ kb ] < 0 || a . _a [ kb ] > 59 ? kb : a . _a [ lb ] < 0 || a . _a [ lb ] > 999 ? lb : - 1 , a . _pf . _overflowDayOfYear && ( fb > b || b > hb ) && ( b = hb ) , a . _pf . overflow = b ) } function v ( a ) { a . _pf = { empty : ! 1 , unusedTokens : [ ] , unusedInput : [ ] , overflow : - 2 , charsLeftOver : 0 , nullInput : ! 1 , invalidMonth : null , invalidFormat : ! 1 , userInvalidated : ! 1 } } function w ( a ) { return null == a . _isValid && ( a . _isValid = ! isNaN ( a . _d . getTime ( ) ) && a . _pf . overflow < 0 && ! a . _pf . empty && ! a . _pf . invalidMonth && ! a . _pf . nullInput && ! a . _pf . invalidFormat && ! a . _pf . userInvalidated , a . _strict && ( a . _isValid = a . _isValid && 0 === a . _pf . charsLeftOver && 0 === a . _pf . unusedTokens . length ) ) , a . _isValid } function x ( a ) { return a ? a . toLowerCase ( ) . replace ( "_" , "-" ) : a } function y ( a , b ) { return b . abbr = a , mb [ a ] || ( mb [ a ] = new d ) , mb [ a ] . set ( b ) , mb [ a ] } function z ( a ) { delete mb [ a ] } function A ( a ) { var b , c , d , e , f = 0 , g = function ( a ) { if ( ! mb [ a ] && nb ) try { require ( "./lang/" + a ) } catch ( b ) { } return mb [ a ] } ; if ( ! a ) return bb . fn . _lang ; if ( ! k ( a ) ) { if ( c = g ( a ) ) return c ; a = [ a ] } for ( ; f < a . length ; ) { for ( e = x ( a [ f ] ) . split ( "-" ) , b = e . length , d = x ( a [ f + 1 ] ) , d = d ? d . split ( "-" ) : null ; b > 0 ; ) { if ( c = g ( e . slice ( 0 , b ) . join ( "-" ) ) ) return c ; if ( d && d . length >= b && m ( e , d , ! 0 ) >= b - 1 ) break ; b -- } f ++ } return bb . fn . _lang } function B ( a ) { return a . match ( /\[[\s\S]/ ) ? a . replace ( /^\[|\]$/g , "" ) : a . replace ( /\\/g , "" ) } function C ( a ) { var b , c , d = a . match ( rb ) ; for ( b = 0 , c = d . length ; c > b ; b ++ ) d [ b ] = Ob [ d [ b ] ] ? Ob [ d [ b ] ] : B ( d [ b ] ) ; return function ( e ) { var f = "" ; for ( b = 0 ; c > b ; b ++ ) f += d [ b ] instanceof Function ? d [ b ] . call ( e , a ) : d [ b ] ; return f } } function D ( a , b ) { return a . isValid ( ) ? ( b = E ( b , a . lang ( ) ) , Lb [ b ] || ( Lb [ b ] = C ( b ) ) , Lb [ b ] ( a ) ) : a . lang ( ) . invalidDate ( ) } function E ( a , b ) { function c ( a ) { return b . longDateFormat ( a ) || a } var d = 5 ; for ( sb . lastIndex = 0 ; d >= 0 && sb . test ( a ) ; ) a = a . replace ( sb , c ) , sb . lastIndex = 0 , d -= 1 ; return a } function F ( a , b ) { var c ; switch ( a ) { case "DDDD" : return vb ; case "YYYY" : case "GGGG" : case "gggg" : return wb ; case "YYYYY" : case "GGGGG" : case "ggggg" : return xb ; case "S" : case "SS" : case "SSS" : case "DDD" : return ub ; case "MMM" : case "MMMM" : case "dd" : case "ddd" : case "dddd" : r
2013-11-07 05:09:36 +08:00
/ *
JS Signals < http : //millermedeiros.github.com/js-signals/>
Released under the MIT license
Author : Miller Medeiros
Version : 1.0 . 0 - Build : 268 ( 2012 / 11 / 29 05 : 48 PM )
* /
( function ( i ) { function h ( a , b , c , d , e ) { this . _listener = b ; this . _isOnce = c ; this . context = d ; this . _signal = a ; this . _priority = e || 0 } function g ( a , b ) { if ( typeof a !== "function" ) throw Error ( "listener is a required param of {fn}() and should be a Function." . replace ( "{fn}" , b ) ) ; } function e ( ) { this . _bindings = [ ] ; this . _prevParams = null ; var a = this ; this . dispatch = function ( ) { e . prototype . dispatch . apply ( a , arguments ) } } h . prototype = { active : ! 0 , params : null , execute : function ( a ) { var b ; this . active && this . _listener && ( a = this . params ? this . params . concat ( a ) :
a , b = this . _listener . apply ( this . context , a ) , this . _isOnce && this . detach ( ) ) ; return b } , detach : function ( ) { return this . isBound ( ) ? this . _signal . remove ( this . _listener , this . context ) : null } , isBound : function ( ) { return ! ! this . _signal && ! ! this . _listener } , isOnce : function ( ) { return this . _isOnce } , getListener : function ( ) { return this . _listener } , getSignal : function ( ) { return this . _signal } , _destroy : function ( ) { delete this . _signal ; delete this . _listener ; delete this . context } , toString : function ( ) { return "[SignalBinding isOnce:" + this . _isOnce +
", isBound:" + this . isBound ( ) + ", active:" + this . active + "]" } } ; e . prototype = { VERSION : "1.0.0" , memorize : ! 1 , _shouldPropagate : ! 0 , active : ! 0 , _registerListener : function ( a , b , c , d ) { var e = this . _indexOfListener ( a , c ) ; if ( e !== - 1 ) { if ( a = this . _bindings [ e ] , a . isOnce ( ) !== b ) throw Error ( "You cannot add" + ( b ? "" : "Once" ) + "() then add" + ( ! b ? "" : "Once" ) + "() the same listener without removing the relationship first." ) ; } else a = new h ( this , a , b , c , d ) , this . _addBinding ( a ) ; this . memorize && this . _prevParams && a . execute ( this . _prevParams ) ; return a } ,
_addBinding : function ( a ) { var b = this . _bindings . length ; do -- b ; while ( this . _bindings [ b ] && a . _priority <= this . _bindings [ b ] . _priority ) ; this . _bindings . splice ( b + 1 , 0 , a ) } , _indexOfListener : function ( a , b ) { for ( var c = this . _bindings . length , d ; c -- ; ) if ( d = this . _bindings [ c ] , d . _listener === a && d . context === b ) return c ; return - 1 } , has : function ( a , b ) { return this . _indexOfListener ( a , b ) !== - 1 } , add : function ( a , b , c ) { g ( a , "add" ) ; return this . _registerListener ( a , ! 1 , b , c ) } , addOnce : function ( a , b , c ) { g ( a , "addOnce" ) ; return this . _registerListener ( a ,
! 0 , b , c ) } , remove : function ( a , b ) { g ( a , "remove" ) ; var c = this . _indexOfListener ( a , b ) ; c !== - 1 && ( this . _bindings [ c ] . _destroy ( ) , this . _bindings . splice ( c , 1 ) ) ; return a } , removeAll : function ( ) { for ( var a = this . _bindings . length ; a -- ; ) this . _bindings [ a ] . _destroy ( ) ; this . _bindings . length = 0 } , getNumListeners : function ( ) { return this . _bindings . length } , halt : function ( ) { this . _shouldPropagate = ! 1 } , dispatch : function ( a ) { if ( this . active ) { var b = Array . prototype . slice . call ( arguments ) , c = this . _bindings . length , d ; if ( this . memorize ) this . _prevParams =
b ; if ( c ) { d = this . _bindings . slice ( ) ; this . _shouldPropagate = ! 0 ; do c -- ; while ( d [ c ] && this . _shouldPropagate && d [ c ] . execute ( b ) !== ! 1 ) } } } , forget : function ( ) { this . _prevParams = null } , dispose : function ( ) { this . removeAll ( ) ; delete this . _bindings ; delete this . _prevParams } , toString : function ( ) { return "[Signal active:" + this . active + " numListeners:" + this . getNumListeners ( ) + "]" } } ; var f = e ; f . Signal = e ; typeof define === "function" && define . amd ? define ( function ( ) { return f } ) : typeof module !== "undefined" && module . exports ? module . exports = f : i . signals =
2013-12-29 04:42:07 +08:00
f } ) ( this ) ;
2013-11-07 05:09:36 +08:00
/ * !
* Hasher < http : //github.com/millermedeiros/hasher>
* @ author Miller Medeiros
* @ version 1.1 . 2 ( 2012 / 10 / 31 03 : 19 PM )
* Released under the MIT License
* /
2013-12-29 04:42:07 +08:00
( function ( a ) { a ( "hasher" , [ "signals" ] , function ( b ) { var c = ( function ( k ) { var o = 25 , q = k . document , n = k . history , w = b . Signal , f , u , m , E , d , C , s = /#(.*)$/ , j = /(\?.*)|(\#.*)/ , g = /^\#/ , i = ( ! + "\v1" ) , A = ( "onhashchange" in k ) && q . documentMode !== 7 , e = i && ! A , r = ( location . protocol === "file:" ) ; function t ( G ) { if ( ! G ) { return "" } var F = new RegExp ( "^\\" + f . prependHash + "|\\" + f . appendHash + "$" , "g" ) ; return G . replace ( F , "" ) } function D ( ) { var F = s . exec ( f . getURL ( ) ) ; return ( F && F [ 1 ] ) ? decodeURIComponent ( F [ 1 ] ) : "" } function z ( ) { return ( d ) ? d . contentWindow . frameHash : null } function y ( ) { d = q . createElement ( "iframe" ) ; d . src = "about:blank" ; d . style . display = "none" ; q . body . appendChild ( d ) } function h ( ) { if ( d && u !== z ( ) ) { var F = d . contentWindow . document ; F . open ( ) ; F . write ( "<html><head><title>" + q . title + '</title><script type="text/javascript">var frameHash="' + u + '";<\/script></head><body> </body></html>' ) ; F . close ( ) } } function l ( F , G ) { if ( u !== F ) { var H = u ; u = F ; if ( e ) { if ( ! G ) { h ( ) } else { d . contentWindow . frameHash = F } } f . changed . dispatch ( t ( F ) , t ( H ) ) } } if ( e ) { C = function ( ) { var G = D ( ) , F = z ( ) ; if ( F !== u && F !== G ) { f . setHash ( t ( F ) ) } else { if ( G !== u ) { l ( G ) } } } } else { C = function ( ) { var F = D ( ) ; if ( F !== u ) { l ( F ) } } } function B ( H , F , G ) { if ( H . addEventListener ) { H . addEventListener ( F , G , false ) } else { if ( H . attachEvent ) { H . attachEvent ( "on" + F , G ) } } } function x ( H , F , G ) { if ( H . removeEventListener ) { H . removeEventListener ( F , G , false ) } else { if ( H . detachEvent ) { H . detachEvent ( "on" + F , G ) } } } function p ( G ) { G = Array . prototype . slice . call ( arguments ) ; var F = G . join ( f . separator ) ; F = F ? f . prependHash + F . replace ( g , "" ) + f . appendHash : F ; return F } function v ( F ) { F = encodeURI ( F ) ; if ( i && r ) { F = F . replace ( /\?/ , "%3F" ) } return F } f = { VERSION : "1.1.2" , appendHash : "" , prependHash : "/" , separator : "/" , changed : new w ( ) , stopped : new w ( ) , initialized : new w ( ) , init : function ( ) { if ( E ) { return } u = D ( ) ; if ( A ) { B ( k , "hashchange" , C ) } else { if ( e ) { if ( ! d ) { y ( ) } h ( ) } m = setInterval ( C , o ) } E = true ; f . initialized . dispatch ( t ( u ) ) } , stop : function ( ) { if ( ! E ) { return } if ( A ) { x ( k , "hashchange" , C ) } else { clearInterval ( m ) ; m = null } E = false ; f . stopped . dispatch ( t ( u ) ) } , isActive : function ( ) { return E } , getURL : function ( ) { return k . location . href } , getBaseURL : function ( ) { return f . getURL ( ) . replace ( j , "" ) } , setHash : function ( F ) { F = p . apply ( null , arguments ) ; if ( F !== u ) { l ( F ) ; if ( F === u ) { k . location . hash = "#" + v ( F ) } } } , replaceHash : function ( F ) { F = p . apply ( null , arguments ) ; if ( F !== u ) { l ( F , true ) ; if ( F === u ) { k . location . replace ( "#" + v ( F ) ) } } } , getHash : function ( ) { return t ( u ) } , getHashAsArray : function ( ) { return f . getHash ( ) . split ( f . separator ) } , dispose : function ( ) { f . stop ( ) ; f . initialized . dispose ( ) ; f . stopped . dispose ( ) ; f . changed . dispose ( ) ; d = f = k . hasher = null } , toString : function ( ) { return '[hasher version="' + f . VERSION + '" hash="' + f . getHash ( ) + '"]' } } ; f . initialized . memorize = true ; return f } ( window ) ) ; return c } ) } ( typeof define === "function" && define . amd ? define : function ( c , b , a ) { window [ c ] = a ( window [ b [ 0 ] ] ) } ) ) ;
2013-11-07 05:09:36 +08:00
/ *
Crossroads . js < http : //millermedeiros.github.com/crossroads.js>
Released under the MIT license
Author : Miller Medeiros
Version : 0.7 . 1 - Build : 93 ( 2012 / 02 / 02 09 : 29 AM )
* /
( function ( f ) { f ( [ "signals" ] , function ( g ) { function f ( a , b ) { if ( a . indexOf ) return a . indexOf ( b ) ; else { for ( var c = a . length ; c -- ; ) if ( a [ c ] === b ) return c ; return - 1 } } function i ( a , b ) { return "[object " + b + "]" === Object . prototype . toString . call ( a ) } function n ( a ) { return a === null || a === "null" ? null : a === "true" ? ! 0 : a === "false" ? ! 1 : a === m || a === "undefined" ? m : a === "" || isNaN ( a ) ? a : parseFloat ( a ) } function k ( ) { this . _routes = [ ] ; this . bypassed = new g . Signal ; this . routed = new g . Signal } function o ( a , b , c , e ) { var d = i ( a , "RegExp" ) ; this . _router = e ; this . _pattern =
a ; this . _paramsIds = d ? null : h . getParamIds ( this . _pattern ) ; this . _optionalParamsIds = d ? null : h . getOptionalParamsIds ( this . _pattern ) ; this . _matchRegexp = d ? a : h . compilePattern ( a ) ; this . matched = new g . Signal ; b && this . matched . add ( b ) ; this . _priority = c || 0 } var j , h , m ; k . prototype = { normalizeFn : null , create : function ( ) { return new k } , shouldTypecast : ! 1 , addRoute : function ( a , b , c ) { a = new o ( a , b , c , this ) ; this . _sortedInsert ( a ) ; return a } , removeRoute : function ( a ) { var b = f ( this . _routes , a ) ; b !== - 1 && this . _routes . splice ( b , 1 ) ; a . _destroy ( ) } , removeAllRoutes : function ( ) { for ( var a =
this . getNumRoutes ( ) ; a -- ; ) this . _routes [ a ] . _destroy ( ) ; this . _routes . length = 0 } , parse : function ( a ) { var a = a || "" , b = this . _getMatchedRoutes ( a ) , c = 0 , e = b . length , d ; if ( e ) for ( ; c < e ; ) d = b [ c ] , d . route . matched . dispatch . apply ( d . route . matched , d . params ) , d . isFirst = ! c , this . routed . dispatch ( a , d ) , c += 1 ; else this . bypassed . dispatch ( a ) } , getNumRoutes : function ( ) { return this . _routes . length } , _sortedInsert : function ( a ) { var b = this . _routes , c = b . length ; do -- c ; while ( b [ c ] && a . _priority <= b [ c ] . _priority ) ; b . splice ( c + 1 , 0 , a ) } , _getMatchedRoutes : function ( a ) { for ( var b =
[ ] , c = this . _routes , e = c . length , d ; d = c [ -- e ] ; ) ( ! b . length || d . greedy ) && d . match ( a ) && b . push ( { route : d , params : d . _getParamsArray ( a ) } ) ; return b } , toString : function ( ) { return "[crossroads numRoutes:" + this . getNumRoutes ( ) + "]" } } ; j = new k ; j . VERSION = "0.7.1" ; o . prototype = { greedy : ! 1 , rules : void 0 , match : function ( a ) { return this . _matchRegexp . test ( a ) && this . _validateParams ( a ) } , _validateParams : function ( a ) { var b = this . rules , c = this . _getParamsObject ( a ) , e ; for ( e in b ) if ( e !== "normalize_" && b . hasOwnProperty ( e ) && ! this . _isValidParam ( a , e , c ) ) return ! 1 ;
return ! 0 } , _isValidParam : function ( a , b , c ) { var e = this . rules [ b ] , d = c [ b ] , l = ! 1 ; d == null && this . _optionalParamsIds && f ( this . _optionalParamsIds , b ) !== - 1 ? l = ! 0 : i ( e , "RegExp" ) ? l = e . test ( d ) : i ( e , "Array" ) ? l = f ( e , d ) !== - 1 : i ( e , "Function" ) && ( l = e ( d , a , c ) ) ; return l } , _getParamsObject : function ( a ) { for ( var b = this . _router . shouldTypecast , c = h . getParamValues ( a , this . _matchRegexp , b ) , e = { } , d = c . length ; d -- ; ) e [ d ] = c [ d ] , this . _paramsIds && ( e [ this . _paramsIds [ d ] ] = c [ d ] ) ; e . request _ = b ? n ( a ) : a ; e . vals _ = c ; return e } , _getParamsArray : function ( a ) { var b = this . rules ?
this . rules . normalize _ : null ; return ( b = b || this . _router . normalizeFn ) && i ( b , "Function" ) ? b ( a , this . _getParamsObject ( a ) ) : h . getParamValues ( a , this . _matchRegexp , this . _router . shouldTypecast ) } , dispose : function ( ) { this . _router . removeRoute ( this ) } , _destroy : function ( ) { this . matched . dispose ( ) ; this . matched = this . _pattern = this . _matchRegexp = null } , toString : function ( ) { return '[Route pattern:"' + this . _pattern + '", numListeners:' + this . matched . getNumListeners ( ) + "]" } } ; h = j . patternLexer = function ( ) { function a ( a , b ) { for ( var c = [ ] , d ; d = a . exec ( b ) ; ) c . push ( d [ 1 ] ) ;
return c } var b = /[\\.+*?\^$\[\](){}\/'#]/g , c = /\/$/g , e = /([:}]|\w(?=\/))\/?(:)/g , d = /([:}])\/?(\{)/g , f = /\{([^}]+)\}/g , g = /:([^:]+):/g , h = /(?:\{|:)([^}:]+)(?:\}|:)/g , i = RegExp ( "__CR_RP__" , "g" ) , j = RegExp ( "__CR_OP__" , "g" ) , k = RegExp ( "__CR_OS__" , "g" ) , m = RegExp ( "__CR_RS__" , "g" ) ; return { getParamIds : function ( b ) { return a ( h , b ) } , getOptionalParamsIds : function ( b ) { return a ( g , b ) } , getParamValues : function ( a , b , c ) { if ( a = b . exec ( a ) ) if ( a . shift ( ) , c ) { c = a ; a = c . length ; for ( b = [ ] ; a -- ; ) b [ a ] = n ( c [ a ] ) ; a = b } return a } , compilePattern : function ( a ) { if ( a =
2013-12-29 04:42:07 +08:00
a || "" ) a = a . replace ( c , "" ) , a = a . replace ( e , "$1__CR_OS__$2" ) , a = a . replace ( d , "$1__CR_RS__$2" ) , a = a . replace ( g , "__CR_OP__" ) , a = a . replace ( f , "__CR_RP__" ) , a = a . replace ( b , "\\$&" ) , a = a . replace ( k , "\\/?" ) , a = a . replace ( m , "\\/" ) , a = a . replace ( j , "([^\\/]+)?/?" ) , a = a . replace ( i , "([^\\/]+)" ) ; return RegExp ( "^" + a + "/?$" ) } } } ( ) ; return j } ) } ) ( typeof define === "function" && define . amd ? define : function ( f , g ) { typeof module !== "undefined" && module . exports ? module . exports = g ( require ( f [ 0 ] ) ) : window . crossroads = g ( window [ f [ 0 ] ] ) } ) ;
2013-11-07 05:09:36 +08:00
// Knockout JavaScript library v3.0.0
// (c) Steven Sanderson - http://knockoutjs.com/
// License: MIT (http://www.opensource.org/licenses/mit-license.php)
( function ( ) { ( function ( q ) { var y = this || ( 0 , eval ) ( "this" ) , w = y . document , K = y . navigator , u = y . jQuery , B = y . JSON ; ( function ( q ) { "function" === typeof require && "object" === typeof exports && "object" === typeof module ? q ( module . exports || exports ) : "function" === typeof define && define . amd ? define ( [ "exports" ] , q ) : q ( y . ko = { } ) } ) ( function ( F ) { function G ( a , c ) { return null === a || typeof a in N ? a === c : ! 1 } function H ( b , c , d , e ) { a . d [ b ] = { init : function ( b ) { a . a . f . set ( b , L , { } ) ; return { controlsDescendantBindings : ! 0 } } , update : function ( b , h , k , m , f ) { k = a . a . f . get ( b , L ) ; h = a . a . c ( h ( ) ) ;
m = ! d !== ! h ; var p = ! k . ob ; if ( p || c || m !== k . Db ) p && ( k . ob = a . a . Ya ( a . e . childNodes ( b ) , ! 0 ) ) , m ? ( p || a . e . S ( b , a . a . Ya ( k . ob ) ) , a . Ta ( e ? e ( f , h ) : f , b ) ) : a . e . Z ( b ) , k . Db = m } } ; a . g . Y [ b ] = ! 1 ; a . e . P [ b ] = ! 0 } var a = "undefined" !== typeof F ? F : { } ; a . b = function ( b , c ) { for ( var d = b . split ( "." ) , e = a , g = 0 ; g < d . length - 1 ; g ++ ) e = e [ d [ g ] ] ; e [ d [ d . length - 1 ] ] = c } ; a . s = function ( a , c , d ) { a [ c ] = d } ; a . version = "3.0.0" ; a . b ( "version" , a . version ) ; a . a = function ( ) { function b ( a , b ) { for ( var f in a ) a . hasOwnProperty ( f ) && b ( f , a [ f ] ) } function c ( k , b ) { if ( "input" !== a . a . v ( k ) || ! k . type || "click" !=
b . toLowerCase ( ) ) return ! 1 ; var f = k . type ; return "checkbox" == f || "radio" == f } var d = { } , e = { } ; d [ K && /Firefox\/2/i . test ( K . userAgent ) ? "KeyboardEvent" : "UIEvents" ] = [ "keyup" , "keydown" , "keypress" ] ; d . MouseEvents = "click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave" . split ( " " ) ; b ( d , function ( a , b ) { if ( b . length ) for ( var f = 0 , c = b . length ; f < c ; f ++ ) e [ b [ f ] ] = a } ) ; var g = { propertychange : ! 0 } , h = w && function ( ) { for ( var a = 3 , b = w . createElement ( "div" ) , f = b . getElementsByTagName ( "i" ) ; b . innerHTML = "\x3c!--[if gt IE " +
++ a + "]><i></i><![endif]--\x3e" , f [ 0 ] ; ) ; return 4 < a ? a : q } ( ) ; return { $a : [ "authenticity_token" , /^__RequestVerificationToken(_.*)?$/ ] , n : function ( a , b ) { for ( var f = 0 , c = a . length ; f < c ; f ++ ) b ( a [ f ] ) } , l : function ( a , b ) { if ( "function" == typeof Array . prototype . indexOf ) return Array . prototype . indexOf . call ( a , b ) ; for ( var f = 0 , c = a . length ; f < c ; f ++ ) if ( a [ f ] === b ) return f ; return - 1 } , Ua : function ( a , b , f ) { for ( var c = 0 , d = a . length ; c < d ; c ++ ) if ( b . call ( f , a [ c ] ) ) return a [ c ] ; return null } , ia : function ( b , c ) { var f = a . a . l ( b , c ) ; 0 <= f && b . splice ( f , 1 ) } , Va : function ( b ) { b =
b || [ ] ; for ( var c = [ ] , f = 0 , d = b . length ; f < d ; f ++ ) 0 > a . a . l ( c , b [ f ] ) && c . push ( b [ f ] ) ; return c } , ha : function ( a , b ) { a = a || [ ] ; for ( var f = [ ] , c = 0 , d = a . length ; c < d ; c ++ ) f . push ( b ( a [ c ] ) ) ; return f } , ga : function ( a , b ) { a = a || [ ] ; for ( var f = [ ] , c = 0 , d = a . length ; c < d ; c ++ ) b ( a [ c ] ) && f . push ( a [ c ] ) ; return f } , X : function ( a , b ) { if ( b instanceof Array ) a . push . apply ( a , b ) ; else for ( var f = 0 , c = b . length ; f < c ; f ++ ) a . push ( b [ f ] ) ; return a } , V : function ( b , c , f ) { var d = a . a . l ( a . a . Ha ( b ) , c ) ; 0 > d ? f && b . push ( c ) : f || b . splice ( d , 1 ) } , extend : function ( a , b ) { if ( b ) for ( var f in b ) b . hasOwnProperty ( f ) &&
( a [ f ] = b [ f ] ) ; return a } , K : b , Da : function ( a , b ) { if ( ! a ) return a ; var f = { } , c ; for ( c in a ) a . hasOwnProperty ( c ) && ( f [ c ] = b ( a [ c ] , c , a ) ) ; return f } , wa : function ( b ) { for ( ; b . firstChild ; ) a . removeNode ( b . firstChild ) } , Vb : function ( b ) { b = a . a . Q ( b ) ; for ( var c = w . createElement ( "div" ) , f = 0 , d = b . length ; f < d ; f ++ ) c . appendChild ( a . L ( b [ f ] ) ) ; return c } , Ya : function ( b , c ) { for ( var f = 0 , d = b . length , e = [ ] ; f < d ; f ++ ) { var g = b [ f ] . cloneNode ( ! 0 ) ; e . push ( c ? a . L ( g ) : g ) } return e } , S : function ( b , c ) { a . a . wa ( b ) ; if ( c ) for ( var f = 0 , d = c . length ; f < d ; f ++ ) b . appendChild ( c [ f ] ) } , nb : function ( b ,
c ) { var f = b . nodeType ? [ b ] : b ; if ( 0 < f . length ) { for ( var d = f [ 0 ] , e = d . parentNode , g = 0 , n = c . length ; g < n ; g ++ ) e . insertBefore ( c [ g ] , d ) ; g = 0 ; for ( n = f . length ; g < n ; g ++ ) a . removeNode ( f [ g ] ) } } , $ : function ( a , b ) { if ( a . length ) { for ( b = 8 === b . nodeType && b . parentNode || b ; a . length && a [ 0 ] . parentNode !== b ; ) a . splice ( 0 , 1 ) ; if ( 1 < a . length ) { var f = a [ 0 ] , c = a [ a . length - 1 ] ; for ( a . length = 0 ; f !== c ; ) if ( a . push ( f ) , f = f . nextSibling , ! f ) return ; a . push ( c ) } } return a } , qb : function ( a , b ) { 7 > h ? a . setAttribute ( "selected" , b ) : a . selected = b } , la : function ( a ) { return null === a || a ===
q ? "" : a . trim ? a . trim ( ) : a . toString ( ) . replace ( /^[\s\xa0]+|[\s\xa0]+$/g , "" ) } , ec : function ( b , c ) { for ( var f = [ ] , d = ( b || "" ) . split ( c ) , e = 0 , g = d . length ; e < g ; e ++ ) { var n = a . a . la ( d [ e ] ) ; "" !== n && f . push ( n ) } return f } , ac : function ( a , b ) { a = a || "" ; return b . length > a . length ? ! 1 : a . substring ( 0 , b . length ) === b } , Gb : function ( a , b ) { if ( a === b ) return ! 0 ; if ( 11 === a . nodeType ) return ! 1 ; if ( b . contains ) return b . contains ( 3 === a . nodeType ? a . parentNode : a ) ; if ( b . compareDocumentPosition ) return 16 == ( b . compareDocumentPosition ( a ) & 16 ) ; for ( ; a && a != b ; ) a = a . parentNode ;
return ! ! a } , va : function ( b ) { return a . a . Gb ( b , b . ownerDocument . documentElement ) } , Ra : function ( b ) { return ! ! a . a . Ua ( b , a . a . va ) } , v : function ( a ) { return a && a . tagName && a . tagName . toLowerCase ( ) } , r : function ( b , d , f ) { var e = h && g [ d ] ; if ( e || "undefined" == typeof u ) if ( e || "function" != typeof b . addEventListener ) if ( "undefined" != typeof b . attachEvent ) { var s = function ( a ) { f . call ( b , a ) } , l = "on" + d ; b . attachEvent ( l , s ) ; a . a . C . ea ( b , function ( ) { b . detachEvent ( l , s ) } ) } else throw Error ( "Browser doesn't support addEventListener or attachEvent" ) ; else b . addEventListener ( d ,
f , ! 1 ) ; else { if ( c ( b , d ) ) { var n = f ; f = function ( a , b ) { var f = this . checked ; b && ( this . checked = ! 0 !== b . Ab ) ; n . call ( this , a ) ; this . checked = f } } u ( b ) . bind ( d , f ) } } , da : function ( a , b ) { if ( ! a || ! a . nodeType ) throw Error ( "element must be a DOM node when calling triggerEvent" ) ; if ( "undefined" != typeof u ) { var f = [ ] ; c ( a , b ) && f . push ( { Ab : a . checked } ) ; u ( a ) . trigger ( b , f ) } else if ( "function" == typeof w . createEvent ) if ( "function" == typeof a . dispatchEvent ) f = w . createEvent ( e [ b ] || "HTMLEvents" ) , f . initEvent ( b , ! 0 , ! 0 , y , 0 , 0 , 0 , 0 , 0 , ! 1 , ! 1 , ! 1 , ! 1 , 0 , a ) , a . dispatchEvent ( f ) ;
else throw Error ( "The supplied element doesn't support dispatchEvent" ) ; else if ( "undefined" != typeof a . fireEvent ) c ( a , b ) && ( a . checked = ! 0 !== a . checked ) , a . fireEvent ( "on" + b ) ; else throw Error ( "Browser doesn't support triggering events" ) ; } , c : function ( b ) { return a . M ( b ) ? b ( ) : b } , Ha : function ( b ) { return a . M ( b ) ? b . t ( ) : b } , ma : function ( b , c , f ) { if ( c ) { var d = /\S+/g , e = b . className . match ( d ) || [ ] ; a . a . n ( c . match ( d ) , function ( b ) { a . a . V ( e , b , f ) } ) ; b . className = e . join ( " " ) } } , Ma : function ( b , c ) { var f = a . a . c ( c ) ; if ( null === f || f === q ) f = "" ; var d = a . e . firstChild ( b ) ;
! d || 3 != d . nodeType || a . e . nextSibling ( d ) ? a . e . S ( b , [ w . createTextNode ( f ) ] ) : d . data = f ; a . a . Jb ( b ) } , pb : function ( a , b ) { a . name = b ; if ( 7 >= h ) try { a . mergeAttributes ( w . createElement ( "<input name='" + a . name + "'/>" ) , ! 1 ) } catch ( f ) { } } , Jb : function ( a ) { 9 <= h && ( a = 1 == a . nodeType ? a : a . parentNode , a . style && ( a . style . zoom = a . style . zoom ) ) } , Hb : function ( a ) { if ( h ) { var b = a . style . width ; a . style . width = 0 ; a . style . width = b } } , Zb : function ( b , c ) { b = a . a . c ( b ) ; c = a . a . c ( c ) ; for ( var f = [ ] , d = b ; d <= c ; d ++ ) f . push ( d ) ; return f } , Q : function ( a ) { for ( var b = [ ] , c = 0 , d = a . length ; c <
d ; c ++ ) b . push ( a [ c ] ) ; return b } , cc : 6 === h , dc : 7 === h , ja : h , ab : function ( b , c ) { for ( var f = a . a . Q ( b . getElementsByTagName ( "input" ) ) . concat ( a . a . Q ( b . getElementsByTagName ( "textarea" ) ) ) , d = "string" == typeof c ? function ( a ) { return a . name === c } : function ( a ) { return c . test ( a . name ) } , e = [ ] , g = f . length - 1 ; 0 <= g ; g -- ) d ( f [ g ] ) && e . push ( f [ g ] ) ; return e } , Wb : function ( b ) { return "string" == typeof b && ( b = a . a . la ( b ) ) ? B && B . parse ? B . parse ( b ) : ( new Function ( "return " + b ) ) ( ) : null } , Na : function ( b , c , f ) { if ( ! B || ! B . stringify ) throw Error ( "Cannot find JSON.stringify(). Some browsers (e.g., IE < 8) don't support it natively, but you can overcome this by adding a script reference to json2.js, downloadable from http://www.json.org/json2.js" ) ;
return B . stringify ( a . a . c ( b ) , c , f ) } , Xb : function ( c , d , f ) { f = f || { } ; var e = f . params || { } , g = f . includeFields || this . $a , h = c ; if ( "object" == typeof c && "form" === a . a . v ( c ) ) for ( var h = c . action , n = g . length - 1 ; 0 <= n ; n -- ) for ( var r = a . a . ab ( c , g [ n ] ) , v = r . length - 1 ; 0 <= v ; v -- ) e [ r [ v ] . name ] = r [ v ] . value ; d = a . a . c ( d ) ; var t = w . createElement ( "form" ) ; t . style . display = "none" ; t . action = h ; t . method = "post" ; for ( var E in d ) c = w . createElement ( "input" ) , c . name = E , c . value = a . a . Na ( a . a . c ( d [ E ] ) ) , t . appendChild ( c ) ; b ( e , function ( a , b ) { var c = w . createElement ( "input" ) ; c . name =
a ; c . value = b ; t . appendChild ( c ) } ) ; w . body . appendChild ( t ) ; f . submitter ? f . submitter ( t ) : t . submit ( ) ; setTimeout ( function ( ) { t . parentNode . removeChild ( t ) } , 0 ) } } } ( ) ; a . b ( "utils" , a . a ) ; a . b ( "utils.arrayForEach" , a . a . n ) ; a . b ( "utils.arrayFirst" , a . a . Ua ) ; a . b ( "utils.arrayFilter" , a . a . ga ) ; a . b ( "utils.arrayGetDistinctValues" , a . a . Va ) ; a . b ( "utils.arrayIndexOf" , a . a . l ) ; a . b ( "utils.arrayMap" , a . a . ha ) ; a . b ( "utils.arrayPushAll" , a . a . X ) ; a . b ( "utils.arrayRemoveItem" , a . a . ia ) ; a . b ( "utils.extend" , a . a . extend ) ; a . b ( "utils.fieldsIncludedWithJsonPost" ,
a . a . $a ) ; a . b ( "utils.getFormFields" , a . a . ab ) ; a . b ( "utils.peekObservable" , a . a . Ha ) ; a . b ( "utils.postJson" , a . a . Xb ) ; a . b ( "utils.parseJson" , a . a . Wb ) ; a . b ( "utils.registerEventHandler" , a . a . r ) ; a . b ( "utils.stringifyJson" , a . a . Na ) ; a . b ( "utils.range" , a . a . Zb ) ; a . b ( "utils.toggleDomNodeCssClass" , a . a . ma ) ; a . b ( "utils.triggerEvent" , a . a . da ) ; a . b ( "utils.unwrapObservable" , a . a . c ) ; a . b ( "utils.objectForEach" , a . a . K ) ; a . b ( "utils.addOrRemoveItem" , a . a . V ) ; a . b ( "unwrap" , a . a . c ) ; Function . prototype . bind || ( Function . prototype . bind = function ( a ) { var c =
this , d = Array . prototype . slice . call ( arguments ) ; a = d . shift ( ) ; return function ( ) { return c . apply ( a , d . concat ( Array . prototype . slice . call ( arguments ) ) ) } } ) ; a . a . f = new function ( ) { function a ( b , h ) { var k = b [ d ] ; if ( ! k || "null" === k || ! e [ k ] ) { if ( ! h ) return q ; k = b [ d ] = "ko" + c ++ ; e [ k ] = { } } return e [ k ] } var c = 0 , d = "__ko__" + ( new Date ) . getTime ( ) , e = { } ; return { get : function ( c , d ) { var e = a ( c , ! 1 ) ; return e === q ? q : e [ d ] } , set : function ( c , d , e ) { if ( e !== q || a ( c , ! 1 ) !== q ) a ( c , ! 0 ) [ d ] = e } , clear : function ( a ) { var b = a [ d ] ; return b ? ( delete e [ b ] , a [ d ] = null , ! 0 ) : ! 1 } , D : function ( ) { return c ++ +
d } } } ; a . b ( "utils.domData" , a . a . f ) ; a . b ( "utils.domData.clear" , a . a . f . clear ) ; a . a . C = new function ( ) { function b ( b , c ) { var e = a . a . f . get ( b , d ) ; e === q && c && ( e = [ ] , a . a . f . set ( b , d , e ) ) ; return e } function c ( d ) { var e = b ( d , ! 1 ) ; if ( e ) for ( var e = e . slice ( 0 ) , m = 0 ; m < e . length ; m ++ ) e [ m ] ( d ) ; a . a . f . clear ( d ) ; "function" == typeof u && "function" == typeof u . cleanData && u . cleanData ( [ d ] ) ; if ( g [ d . nodeType ] ) for ( e = d . firstChild ; d = e ; ) e = d . nextSibling , 8 === d . nodeType && c ( d ) } var d = a . a . f . D ( ) , e = { 1 : ! 0 , 8 : ! 0 , 9 : ! 0 } , g = { 1 : ! 0 , 9 : ! 0 } ; return { ea : function ( a , c ) { if ( "function" !=
typeof c ) throw Error ( "Callback must be a function" ) ; b ( a , ! 0 ) . push ( c ) } , mb : function ( c , e ) { var g = b ( c , ! 1 ) ; g && ( a . a . ia ( g , e ) , 0 == g . length && a . a . f . set ( c , d , q ) ) } , L : function ( b ) { if ( e [ b . nodeType ] && ( c ( b ) , g [ b . nodeType ] ) ) { var d = [ ] ; a . a . X ( d , b . getElementsByTagName ( "*" ) ) ; for ( var m = 0 , f = d . length ; m < f ; m ++ ) c ( d [ m ] ) } return b } , removeNode : function ( b ) { a . L ( b ) ; b . parentNode && b . parentNode . removeChild ( b ) } } } ; a . L = a . a . C . L ; a . removeNode = a . a . C . removeNode ; a . b ( "cleanNode" , a . L ) ; a . b ( "removeNode" , a . removeNode ) ; a . b ( "utils.domNodeDisposal" , a . a . C ) ;
a . b ( "utils.domNodeDisposal.addDisposeCallback" , a . a . C . ea ) ; a . b ( "utils.domNodeDisposal.removeDisposeCallback" , a . a . C . mb ) ; ( function ( ) { a . a . Fa = function ( b ) { var c ; if ( "undefined" != typeof u ) if ( u . parseHTML ) c = u . parseHTML ( b ) || [ ] ; else { if ( ( c = u . clean ( [ b ] ) ) && c [ 0 ] ) { for ( b = c [ 0 ] ; b . parentNode && 11 !== b . parentNode . nodeType ; ) b = b . parentNode ; b . parentNode && b . parentNode . removeChild ( b ) } } else { var d = a . a . la ( b ) . toLowerCase ( ) ; c = w . createElement ( "div" ) ; d = d . match ( /^<(thead|tbody|tfoot)/ ) && [ 1 , "<table>" , "</table>" ] || ! d . indexOf ( "<tr" ) && [ 2 ,
"<table><tbody>" , "</tbody></table>" ] || ( ! d . indexOf ( "<td" ) || ! d . indexOf ( "<th" ) ) && [ 3 , "<table><tbody><tr>" , "</tr></tbody></table>" ] || [ 0 , "" , "" ] ; b = "ignored<div>" + d [ 1 ] + b + d [ 2 ] + "</div>" ; for ( "function" == typeof y . innerShiv ? c . appendChild ( y . innerShiv ( b ) ) : c . innerHTML = b ; d [ 0 ] -- ; ) c = c . lastChild ; c = a . a . Q ( c . lastChild . childNodes ) } return c } ; a . a . Ka = function ( b , c ) { a . a . wa ( b ) ; c = a . a . c ( c ) ; if ( null !== c && c !== q ) if ( "string" != typeof c && ( c = c . toString ( ) ) , "undefined" != typeof u ) u ( b ) . html ( c ) ; else for ( var d = a . a . Fa ( c ) , e = 0 ; e < d . length ; e ++ ) b . appendChild ( d [ e ] ) } } ) ( ) ;
a . b ( "utils.parseHtmlFragment" , a . a . Fa ) ; a . b ( "utils.setHtml" , a . a . Ka ) ; a . u = function ( ) { function b ( c , e ) { if ( c ) if ( 8 == c . nodeType ) { var g = a . u . jb ( c . nodeValue ) ; null != g && e . push ( { Fb : c , Tb : g } ) } else if ( 1 == c . nodeType ) for ( var g = 0 , h = c . childNodes , k = h . length ; g < k ; g ++ ) b ( h [ g ] , e ) } var c = { } ; return { Ca : function ( a ) { if ( "function" != typeof a ) throw Error ( "You can only pass a function to ko.memoization.memoize()" ) ; var b = ( 4294967296 * ( 1 + Math . random ( ) ) | 0 ) . toString ( 16 ) . substring ( 1 ) + ( 4294967296 * ( 1 + Math . random ( ) ) | 0 ) . toString ( 16 ) . substring ( 1 ) ;
c [ b ] = a ; return "\x3c!--[ko_memo:" + b + "]--\x3e" } , ub : function ( a , b ) { var g = c [ a ] ; if ( g === q ) throw Error ( "Couldn't find any memo with ID " + a + ". Perhaps it's already been unmemoized." ) ; try { return g . apply ( null , b || [ ] ) , ! 0 } finally { delete c [ a ] } } , vb : function ( c , e ) { var g = [ ] ; b ( c , g ) ; for ( var h = 0 , k = g . length ; h < k ; h ++ ) { var m = g [ h ] . Fb , f = [ m ] ; e && a . a . X ( f , e ) ; a . u . ub ( g [ h ] . Tb , f ) ; m . nodeValue = "" ; m . parentNode && m . parentNode . removeChild ( m ) } } , jb : function ( a ) { return ( a = a . match ( /^\[ko_memo\:(.*?)\]$/ ) ) ? a [ 1 ] : null } } } ( ) ; a . b ( "memoization" , a . u ) ; a . b ( "memoization.memoize" ,
a . u . Ca ) ; a . b ( "memoization.unmemoize" , a . u . ub ) ; a . b ( "memoization.parseMemoText" , a . u . jb ) ; a . b ( "memoization.unmemoizeDomNodeAndDescendants" , a . u . vb ) ; a . xa = { throttle : function ( b , c ) { b . throttleEvaluation = c ; var d = null ; return a . h ( { read : b , write : function ( a ) { clearTimeout ( d ) ; d = setTimeout ( function ( ) { b ( a ) } , c ) } } ) } , notify : function ( a , c ) { a . equalityComparer = "always" == c ? null : G } } ; var N = { undefined : 1 , "boolean" : 1 , number : 1 , string : 1 } ; a . b ( "extenders" , a . xa ) ; a . sb = function ( b , c , d ) { this . target = b ; this . qa = c ; this . Eb = d ; a . s ( this , "dispose" ,
this . B ) } ; a . sb . prototype . B = function ( ) { this . Qb = ! 0 ; this . Eb ( ) } ; a . ca = function ( ) { this . F = { } ; a . a . extend ( this , a . ca . fn ) ; a . s ( this , "subscribe" , this . T ) ; a . s ( this , "extend" , this . extend ) ; a . s ( this , "getSubscriptionsCount" , this . Lb ) } ; var I = "change" ; a . ca . fn = { T : function ( b , c , d ) { d = d || I ; var e = new a . sb ( this , c ? b . bind ( c ) : b , function ( ) { a . a . ia ( this . F [ d ] , e ) } . bind ( this ) ) ; this . F [ d ] || ( this . F [ d ] = [ ] ) ; this . F [ d ] . push ( e ) ; return e } , notifySubscribers : function ( b , c ) { c = c || I ; if ( this . cb ( c ) ) try { a . i . Wa ( ) ; for ( var d = this . F [ c ] . slice ( 0 ) , e = 0 , g ; g = d [ e ] ; ++ e ) g &&
! 0 !== g . Qb && g . qa ( b ) } finally { a . i . end ( ) } } , cb : function ( a ) { return this . F [ a ] && this . F [ a ] . length } , Lb : function ( ) { var b = 0 ; a . a . K ( this . F , function ( a , d ) { b += d . length } ) ; return b } , extend : function ( b ) { var c = this ; b && a . a . K ( b , function ( b , e ) { var g = a . xa [ b ] ; "function" == typeof g && ( c = g ( c , e ) || c ) } ) ; return c } } ; a . fb = function ( a ) { return null != a && "function" == typeof a . T && "function" == typeof a . notifySubscribers } ; a . b ( "subscribable" , a . ca ) ; a . b ( "isSubscribable" , a . fb ) ; a . i = function ( ) { var b = [ ] ; return { Wa : function ( a ) { b . push ( a && { qa : a , Za : [ ] } ) } ,
end : function ( ) { b . pop ( ) } , lb : function ( c ) { if ( ! a . fb ( c ) ) throw Error ( "Only subscribable things can act as dependencies" ) ; if ( 0 < b . length ) { var d = b [ b . length - 1 ] ; ! d || 0 <= a . a . l ( d . Za , c ) || ( d . Za . push ( c ) , d . qa ( c ) ) } } , p : function ( a , d , e ) { try { return b . push ( null ) , a . apply ( d , e || [ ] ) } finally { b . pop ( ) } } } } ( ) ; a . q = function ( b ) { function c ( ) { if ( 0 < arguments . length ) return c . equalityComparer && c . equalityComparer ( d , arguments [ 0 ] ) || ( c . O ( ) , d = arguments [ 0 ] , c . N ( ) ) , this ; a . i . lb ( c ) ; return d } var d = b ; a . ca . call ( c ) ; c . t = function ( ) { return d } ; c . N = function ( ) { c . notifySubscribers ( d ) } ;
c . O = function ( ) { c . notifySubscribers ( d , "beforeChange" ) } ; a . a . extend ( c , a . q . fn ) ; a . s ( c , "peek" , c . t ) ; a . s ( c , "valueHasMutated" , c . N ) ; a . s ( c , "valueWillMutate" , c . O ) ; return c } ; a . q . fn = { equalityComparer : G } ; var C = a . q . Yb = "__ko_proto__" ; a . q . fn [ C ] = a . q ; a . ya = function ( b , c ) { return null === b || b === q || b [ C ] === q ? ! 1 : b [ C ] === c ? ! 0 : a . ya ( b [ C ] , c ) } ; a . M = function ( b ) { return a . ya ( b , a . q ) } ; a . gb = function ( b ) { return "function" == typeof b && b [ C ] === a . q || "function" == typeof b && b [ C ] === a . h && b . Nb ? ! 0 : ! 1 } ; a . b ( "observable" , a . q ) ; a . b ( "isObservable" , a . M ) ; a . b ( "isWriteableObservable" ,
a . gb ) ; a . ba = function ( b ) { b = b || [ ] ; if ( "object" != typeof b || ! ( "length" in b ) ) throw Error ( "The argument passed when initializing an observable array must be an array, or null, or undefined." ) ; b = a . q ( b ) ; a . a . extend ( b , a . ba . fn ) ; return b . extend ( { trackArrayChanges : ! 0 } ) } ; a . ba . fn = { remove : function ( b ) { for ( var c = this . t ( ) , d = [ ] , e = "function" != typeof b || a . M ( b ) ? function ( a ) { return a === b } : b , g = 0 ; g < c . length ; g ++ ) { var h = c [ g ] ; e ( h ) && ( 0 === d . length && this . O ( ) , d . push ( h ) , c . splice ( g , 1 ) , g -- ) } d . length && this . N ( ) ; return d } , removeAll : function ( b ) { if ( b ===
q ) { var c = this . t ( ) , d = c . slice ( 0 ) ; this . O ( ) ; c . splice ( 0 , c . length ) ; this . N ( ) ; return d } return b ? this . remove ( function ( c ) { return 0 <= a . a . l ( b , c ) } ) : [ ] } , destroy : function ( b ) { var c = this . t ( ) , d = "function" != typeof b || a . M ( b ) ? function ( a ) { return a === b } : b ; this . O ( ) ; for ( var e = c . length - 1 ; 0 <= e ; e -- ) d ( c [ e ] ) && ( c [ e ] . _destroy = ! 0 ) ; this . N ( ) } , destroyAll : function ( b ) { return b === q ? this . destroy ( function ( ) { return ! 0 } ) : b ? this . destroy ( function ( c ) { return 0 <= a . a . l ( b , c ) } ) : [ ] } , indexOf : function ( b ) { var c = this ( ) ; return a . a . l ( c , b ) } , replace : function ( a ,
c ) { var d = this . indexOf ( a ) ; 0 <= d && ( this . O ( ) , this . t ( ) [ d ] = c , this . N ( ) ) } } ; a . a . n ( "pop push reverse shift sort splice unshift" . split ( " " ) , function ( b ) { a . ba . fn [ b ] = function ( ) { var a = this . t ( ) ; this . O ( ) ; this . Xa ( a , b , arguments ) ; a = a [ b ] . apply ( a , arguments ) ; this . N ( ) ; return a } } ) ; a . a . n ( [ "slice" ] , function ( b ) { a . ba . fn [ b ] = function ( ) { var a = this ( ) ; return a [ b ] . apply ( a , arguments ) } } ) ; a . b ( "observableArray" , a . ba ) ; var J = "arrayChange" ; a . xa . trackArrayChanges = function ( b ) { function c ( ) { if ( ! d ) { d = ! 0 ; var c = b . notifySubscribers ; b . notifySubscribers =
function ( a , b ) { b && b !== I || ++ g ; return c . apply ( this , arguments ) } ; var m = [ ] . concat ( b . t ( ) || [ ] ) ; e = null ; b . T ( function ( c ) { c = [ ] . concat ( c || [ ] ) ; if ( b . cb ( J ) ) { var d ; if ( ! e || 1 < g ) e = a . a . ra ( m , c , { sparse : ! 0 } ) ; d = e ; d . length && b . notifySubscribers ( d , J ) } m = c ; e = null ; g = 0 } ) } } if ( ! b . Xa ) { var d = ! 1 , e = null , g = 0 , h = b . T ; b . T = b . subscribe = function ( a , b , f ) { f === J && c ( ) ; return h . apply ( this , arguments ) } ; b . Xa = function ( a , b , c ) { function p ( a , b , c ) { h . push ( { status : a , value : b , index : c } ) } if ( d && ! g ) { var h = [ ] , l = a . length , n = c . length , r = 0 ; switch ( b ) { case "push" : r = l ; case "unshift" : for ( b =
0 ; b < n ; b ++ ) p ( "added" , c [ b ] , r + b ) ; break ; case "pop" : r = l - 1 ; case "shift" : l && p ( "deleted" , a [ r ] , r ) ; break ; case "splice" : b = Math . min ( Math . max ( 0 , 0 > c [ 0 ] ? l + c [ 0 ] : c [ 0 ] ) , l ) ; for ( var l = 1 === n ? l : Math . min ( b + ( c [ 1 ] || 0 ) , l ) , n = b + n - 2 , r = Math . max ( l , n ) , v = 2 ; b < r ; ++ b , ++ v ) b < l && p ( "deleted" , a [ b ] , b ) , b < n && p ( "added" , c [ v ] , b ) ; break ; default : return } e = h } } } } ; a . h = function ( b , c , d ) { function e ( ) { a . a . n ( z , function ( a ) { a . B ( ) } ) ; z = [ ] } function g ( ) { var a = k . throttleEvaluation ; a && 0 <= a ? ( clearTimeout ( x ) , x = setTimeout ( h , a ) ) : h ( ) } function h ( ) { if ( ! s ) { if ( E && E ( ) ) { if ( ! l ) { D ( ) ;
p = ! 0 ; return } } else l = ! 1 ; s = ! 0 ; try { var b = a . a . ha ( z , function ( a ) { return a . target } ) ; a . i . Wa ( function ( c ) { var d ; 0 <= ( d = a . a . l ( b , c ) ) ? b [ d ] = q : z . push ( c . T ( g ) ) } ) ; for ( var d = c ? n . call ( c ) : n ( ) , e = b . length - 1 ; 0 <= e ; e -- ) b [ e ] && z . splice ( e , 1 ) [ 0 ] . B ( ) ; p = ! 0 ; k . equalityComparer && k . equalityComparer ( f , d ) || ( k . notifySubscribers ( f , "beforeChange" ) , f = d , k . notifySubscribers ( f ) ) } finally { a . i . end ( ) , s = ! 1 } z . length || D ( ) } } function k ( ) { if ( 0 < arguments . length ) { if ( "function" === typeof r ) r . apply ( c , arguments ) ; else throw Error ( "Cannot write a value to a ko.computed unless you specify a 'write' option. If you wish to read the current value, don't pass any parameters." ) ;
return this } p || h ( ) ; a . i . lb ( k ) ; return f } function m ( ) { return ! p || 0 < z . length } var f , p = ! 1 , s = ! 1 , l = ! 1 , n = b ; n && "object" == typeof n ? ( d = n , n = d . read ) : ( d = d || { } , n || ( n = d . read ) ) ; if ( "function" != typeof n ) throw Error ( "Pass a function that returns the value of the ko.computed" ) ; var r = d . write , v = d . disposeWhenNodeIsRemoved || d . I || null , t = d . disposeWhen || d . ua , E = t , D = e , z = [ ] , x = null ; c || ( c = d . owner ) ; k . t = function ( ) { p || h ( ) ; return f } ; k . Kb = function ( ) { return z . length } ; k . Nb = "function" === typeof d . write ; k . B = function ( ) { D ( ) } ; k . aa = m ; a . ca . call ( k ) ;
a . a . extend ( k , a . h . fn ) ; a . s ( k , "peek" , k . t ) ; a . s ( k , "dispose" , k . B ) ; a . s ( k , "isActive" , k . aa ) ; a . s ( k , "getDependenciesCount" , k . Kb ) ; v && ( l = ! 0 , v . nodeType && ( E = function ( ) { return ! a . a . va ( v ) || t && t ( ) } ) ) ; ! 0 !== d . deferEvaluation && h ( ) ; v && m ( ) && ( D = function ( ) { a . a . C . mb ( v , D ) ; e ( ) } , a . a . C . ea ( v , D ) ) ; return k } ; a . Pb = function ( b ) { return a . ya ( b , a . h ) } ; F = a . q . Yb ; a . h [ F ] = a . q ; a . h . fn = { equalityComparer : G } ; a . h . fn [ F ] = a . h ; a . b ( "dependentObservable" , a . h ) ; a . b ( "computed" , a . h ) ; a . b ( "isComputed" , a . Pb ) ; ( function ( ) { function b ( a , g , h ) { h = h || new d ; a = g ( a ) ; if ( "object" !=
typeof a || null === a || a === q || a instanceof Date || a instanceof String || a instanceof Number || a instanceof Boolean ) return a ; var k = a instanceof Array ? [ ] : { } ; h . save ( a , k ) ; c ( a , function ( c ) { var d = g ( a [ c ] ) ; switch ( typeof d ) { case "boolean" : case "number" : case "string" : case "function" : k [ c ] = d ; break ; case "object" : case "undefined" : var p = h . get ( d ) ; k [ c ] = p !== q ? p : b ( d , g , h ) } } ) ; return k } function c ( a , b ) { if ( a instanceof Array ) { for ( var c = 0 ; c < a . length ; c ++ ) b ( c ) ; "function" == typeof a . toJSON && b ( "toJSON" ) } else for ( c in a ) b ( c ) } function d ( ) { this . keys =
[ ] ; this . Qa = [ ] } a . tb = function ( c ) { if ( 0 == arguments . length ) throw Error ( "When calling ko.toJS, pass the object you want to convert." ) ; return b ( c , function ( b ) { for ( var c = 0 ; a . M ( b ) && 10 > c ; c ++ ) b = b ( ) ; return b } ) } ; a . toJSON = function ( b , c , d ) { b = a . tb ( b ) ; return a . a . Na ( b , c , d ) } ; d . prototype = { save : function ( b , c ) { var d = a . a . l ( this . keys , b ) ; 0 <= d ? this . Qa [ d ] = c : ( this . keys . push ( b ) , this . Qa . push ( c ) ) } , get : function ( b ) { b = a . a . l ( this . keys , b ) ; return 0 <= b ? this . Qa [ b ] : q } } } ) ( ) ; a . b ( "toJS" , a . tb ) ; a . b ( "toJSON" , a . toJSON ) ; ( function ( ) { a . k = { o : function ( b ) { switch ( a . a . v ( b ) ) { case "option" : return ! 0 ===
b . _ _ko _ _hasDomDataOptionValue _ _ ? a . a . f . get ( b , a . d . options . Ea ) : 7 >= a . a . ja ? b . getAttributeNode ( "value" ) && b . getAttributeNode ( "value" ) . specified ? b . value : b . text : b . value ; case "select" : return 0 <= b . selectedIndex ? a . k . o ( b . options [ b . selectedIndex ] ) : q ; default : return b . value } } , na : function ( b , c ) { switch ( a . a . v ( b ) ) { case "option" : switch ( typeof c ) { case "string" : a . a . f . set ( b , a . d . options . Ea , q ) ; "__ko__hasDomDataOptionValue__" in b && delete b . _ _ko _ _hasDomDataOptionValue _ _ ; b . value = c ; break ; default : a . a . f . set ( b , a . d . options . Ea , c ) , b . _ _ko _ _hasDomDataOptionValue _ _ =
! 0 , b . value = "number" === typeof c ? c : "" } break ; case "select" : "" === c && ( c = q ) ; if ( null === c || c === q ) b . selectedIndex = - 1 ; for ( var d = b . options . length - 1 ; 0 <= d ; d -- ) if ( a . k . o ( b . options [ d ] ) == c ) { b . selectedIndex = d ; break } 1 < b . size || - 1 !== b . selectedIndex || ( b . selectedIndex = 0 ) ; break ; default : if ( null === c || c === q ) c = "" ; b . value = c } } } } ) ( ) ; a . b ( "selectExtensions" , a . k ) ; a . b ( "selectExtensions.readValue" , a . k . o ) ; a . b ( "selectExtensions.writeValue" , a . k . na ) ; a . g = function ( ) { function b ( b ) { b = a . a . la ( b ) ; 123 === b . charCodeAt ( 0 ) && ( b = b . slice ( 1 , - 1 ) ) ; var c =
[ ] , d = b . match ( e ) , k , l , n = 0 ; if ( d ) { d . push ( "," ) ; for ( var r = 0 , v ; v = d [ r ] ; ++ r ) { var t = v . charCodeAt ( 0 ) ; if ( 44 === t ) { if ( 0 >= n ) { k && c . push ( l ? { key : k , value : l . join ( "" ) } : { unknown : k } ) ; k = l = n = 0 ; continue } } else if ( 58 === t ) { if ( ! l ) continue } else if ( 47 === t && r && 1 < v . length ) ( t = d [ r - 1 ] . match ( g ) ) && ! h [ t [ 0 ] ] && ( b = b . substr ( b . indexOf ( v ) + 1 ) , d = b . match ( e ) , d . push ( "," ) , r = - 1 , v = "/" ) ; else if ( 40 === t || 123 === t || 91 === t ) ++ n ; else if ( 41 === t || 125 === t || 93 === t ) -- n ; else if ( ! k && ! l ) { k = 34 === t || 39 === t ? v . slice ( 1 , - 1 ) : v ; continue } l ? l . push ( v ) : l = [ v ] } } return c } var c = [ "true" ,
"false" , "null" , "undefined" ] , d = /^(?:[$_a-z][$\w]*|(.+)(\.\s*[$_a-z][$\w]*|\[.+\]))$/i , e = RegExp ( "\"(?:[^\"\\\\]|\\\\.)*\"|'(?:[^'\\\\]|\\\\.)*'|/(?:[^/\\\\]|\\\\.)*/w*|[^\\s:,/][^,\"'{}()/:[\\]]*[^\\s,\"'{}()/:[\\]]|[^\\s]" , "g" ) , g = /[\])"'A-Za-z0-9_$]+$/ , h = { "in" : 1 , "return" : 1 , "typeof" : 1 } , k = { } ; return { Y : [ ] , U : k , Ga : b , ka : function ( e , f ) { function g ( b , f ) { var e , r = a . getBindingHandler ( b ) ; if ( r && r . preprocess ? f = r . preprocess ( f , b , g ) : 1 ) { if ( r = k [ b ] ) e = f , 0 <= a . a . l ( c , e ) ? e = ! 1 : ( r = e . match ( d ) , e = null === r ? ! 1 : r [ 1 ] ? "Object(" + r [ 1 ] + ")" +
r [ 2 ] : e ) , r = e ; r && l . push ( "'" + b + "':function(_z){" + e + "=_z}" ) ; n && ( f = "function(){return " + f + " }" ) ; h . push ( "'" + b + "':" + f ) } } f = f || { } ; var h = [ ] , l = [ ] , n = f . valueAccessors , r = "string" === typeof e ? b ( e ) : e ; a . a . n ( r , function ( a ) { g ( a . key || a . unknown , a . value ) } ) ; l . length && g ( "_ko_property_writers" , "{" + l . join ( "," ) + "}" ) ; return h . join ( "," ) } , Sb : function ( a , b ) { for ( var c = 0 ; c < a . length ; c ++ ) if ( a [ c ] . key == b ) return ! 0 ; return ! 1 } , oa : function ( b , c , d , e , k ) { if ( b && a . M ( b ) ) ! a . gb ( b ) || k && b . t ( ) === e || b ( e ) ; else if ( ( b = c . get ( "_ko_property_writers" ) ) && b [ d ] ) b [ d ] ( e ) } } } ( ) ;
a . b ( "expressionRewriting" , a . g ) ; a . b ( "expressionRewriting.bindingRewriteValidators" , a . g . Y ) ; a . b ( "expressionRewriting.parseObjectLiteral" , a . g . Ga ) ; a . b ( "expressionRewriting.preProcessBindings" , a . g . ka ) ; a . b ( "expressionRewriting._twoWayBindings" , a . g . U ) ; a . b ( "jsonExpressionRewriting" , a . g ) ; a . b ( "jsonExpressionRewriting.insertPropertyAccessorsIntoJson" , a . g . ka ) ; ( function ( ) { function b ( a ) { return 8 == a . nodeType && h . test ( g ? a . text : a . nodeValue ) } function c ( a ) { return 8 == a . nodeType && k . test ( g ? a . text : a . nodeValue ) } function d ( a ,
d ) { for ( var e = a , k = 1 , n = [ ] ; e = e . nextSibling ; ) { if ( c ( e ) && ( k -- , 0 === k ) ) return n ; n . push ( e ) ; b ( e ) && k ++ } if ( ! d ) throw Error ( "Cannot find closing comment tag to match: " + a . nodeValue ) ; return null } function e ( a , b ) { var c = d ( a , b ) ; return c ? 0 < c . length ? c [ c . length - 1 ] . nextSibling : a . nextSibling : null } var g = w && "\x3c!--test--\x3e" === w . createComment ( "test" ) . text , h = g ? /^\x3c!--\s*ko(?:\s+([\s\S]+))?\s*--\x3e$/ : /^\s*ko(?:\s+([\s\S]+))?\s*$/ , k = g ? /^\x3c!--\s*\/ko\s*--\x3e$/ : /^\s*\/ko\s*$/ , m = { ul : ! 0 , ol : ! 0 } ; a . e = { P : { } , childNodes : function ( a ) { return b ( a ) ?
d ( a ) : a . childNodes } , Z : function ( c ) { if ( b ( c ) ) { c = a . e . childNodes ( c ) ; for ( var d = 0 , e = c . length ; d < e ; d ++ ) a . removeNode ( c [ d ] ) } else a . a . wa ( c ) } , S : function ( c , d ) { if ( b ( c ) ) { a . e . Z ( c ) ; for ( var e = c . nextSibling , k = 0 , n = d . length ; k < n ; k ++ ) e . parentNode . insertBefore ( d [ k ] , e ) } else a . a . S ( c , d ) } , kb : function ( a , c ) { b ( a ) ? a . parentNode . insertBefore ( c , a . nextSibling ) : a . firstChild ? a . insertBefore ( c , a . firstChild ) : a . appendChild ( c ) } , eb : function ( c , d , e ) { e ? b ( c ) ? c . parentNode . insertBefore ( d , e . nextSibling ) : e . nextSibling ? c . insertBefore ( d , e . nextSibling ) :
c . appendChild ( d ) : a . e . kb ( c , d ) } , firstChild : function ( a ) { return b ( a ) ? ! a . nextSibling || c ( a . nextSibling ) ? null : a . nextSibling : a . firstChild } , nextSibling : function ( a ) { b ( a ) && ( a = e ( a ) ) ; return a . nextSibling && c ( a . nextSibling ) ? null : a . nextSibling } , Mb : b , bc : function ( a ) { return ( a = ( g ? a . text : a . nodeValue ) . match ( h ) ) ? a [ 1 ] : null } , ib : function ( d ) { if ( m [ a . a . v ( d ) ] ) { var k = d . firstChild ; if ( k ) { do if ( 1 === k . nodeType ) { var g ; g = k . firstChild ; var h = null ; if ( g ) { do if ( h ) h . push ( g ) ; else if ( b ( g ) ) { var n = e ( g , ! 0 ) ; n ? g = n : h = [ g ] } else c ( g ) && ( h = [ g ] ) ; while ( g =
g . nextSibling ) } if ( g = h ) for ( h = k . nextSibling , n = 0 ; n < g . length ; n ++ ) h ? d . insertBefore ( g [ n ] , h ) : d . appendChild ( g [ n ] ) } while ( k = k . nextSibling ) } } } } } ) ( ) ; a . b ( "virtualElements" , a . e ) ; a . b ( "virtualElements.allowedBindings" , a . e . P ) ; a . b ( "virtualElements.emptyNode" , a . e . Z ) ; a . b ( "virtualElements.insertAfter" , a . e . eb ) ; a . b ( "virtualElements.prepend" , a . e . kb ) ; a . b ( "virtualElements.setDomNodeChildren" , a . e . S ) ; ( function ( ) { a . H = function ( ) { this . zb = { } } ; a . a . extend ( a . H . prototype , { nodeHasBindings : function ( b ) { switch ( b . nodeType ) { case 1 : return null !=
b . getAttribute ( "data-bind" ) ; case 8 : return a . e . Mb ( b ) ; default : return ! 1 } } , getBindings : function ( a , c ) { var d = this . getBindingsString ( a , c ) ; return d ? this . parseBindingsString ( d , c , a ) : null } , getBindingAccessors : function ( a , c ) { var d = this . getBindingsString ( a , c ) ; return d ? this . parseBindingsString ( d , c , a , { valueAccessors : ! 0 } ) : null } , getBindingsString : function ( b ) { switch ( b . nodeType ) { case 1 : return b . getAttribute ( "data-bind" ) ; case 8 : return a . e . bc ( b ) ; default : return null } } , parseBindingsString : function ( b , c , d , e ) { try { var g = this . zb ,
h = b + ( e && e . valueAccessors || "" ) , k ; if ( ! ( k = g [ h ] ) ) { var m , f = "with($context){with($data||{}){return{" + a . g . ka ( b , e ) + "}}}" ; m = new Function ( "$context" , "$element" , f ) ; k = g [ h ] = m } return k ( c , d ) } catch ( p ) { throw p . message = "Unable to parse bindings.\nBindings value: " + b + "\nMessage: " + p . message , p ; } } } ) ; a . H . instance = new a . H } ) ( ) ; a . b ( "bindingProvider" , a . H ) ; ( function ( ) { function b ( a ) { return function ( ) { return a } } function c ( a ) { return a ( ) } function d ( b ) { return a . a . Da ( a . i . p ( b ) , function ( a , c ) { return function ( ) { return b ( ) [ c ] } } ) } function e ( a ,
b ) { return d ( this . getBindings . bind ( this , a , b ) ) } function g ( b , c , d ) { var f , e = a . e . firstChild ( c ) , k = a . H . instance , g = k . preprocessNode ; if ( g ) { for ( ; f = e ; ) e = a . e . nextSibling ( f ) , g . call ( k , f ) ; e = a . e . firstChild ( c ) } for ( ; f = e ; ) e = a . e . nextSibling ( f ) , h ( b , f , d ) } function h ( b , c , d ) { var f = ! 0 , e = 1 === c . nodeType ; e && a . e . ib ( c ) ; if ( e && d || a . H . instance . nodeHasBindings ( c ) ) f = m ( c , null , b , d ) . shouldBindDescendants ; f && ! p [ a . a . v ( c ) ] && g ( b , c , ! e ) } function k ( b ) { var c = [ ] , d = { } , f = [ ] ; a . a . K ( b , function D ( e ) { if ( ! d [ e ] ) { var k = a . getBindingHandler ( e ) ; k && ( k . after &&
( f . push ( e ) , a . a . n ( k . after , function ( c ) { if ( b [ c ] ) { if ( - 1 !== a . a . l ( f , c ) ) throw Error ( "Cannot combine the following bindings, because they have a cyclic dependency: " + f . join ( ", " ) ) ; D ( c ) } } ) , f . pop ( ) ) , c . push ( { key : e , bb : k } ) ) ; d [ e ] = ! 0 } } ) ; return c } function m ( b , d , f , g ) { var h = a . a . f . get ( b , s ) ; if ( ! d ) { if ( h ) throw Error ( "You cannot apply bindings multiple times to the same element." ) ; a . a . f . set ( b , s , ! 0 ) } ! h && g && a . rb ( b , f ) ; var m ; if ( d && "function" !== typeof d ) m = d ; else { var p = a . H . instance , l = p . getBindingAccessors || e ; if ( d || f . A ) { var A =
a . h ( function ( ) { ( m = d ? d ( f , b ) : l . call ( p , b , f ) ) && f . A && f . A ( ) ; return m } , null , { I : b } ) ; m && A . aa ( ) || ( A = null ) } else m = a . i . p ( l , p , [ b , f ] ) } var u ; if ( m ) { var w = A ? function ( a ) { return function ( ) { return c ( A ( ) [ a ] ) } } : function ( a ) { return m [ a ] } , y = function ( ) { return a . a . Da ( A ? A ( ) : m , c ) } ; y . get = function ( a ) { return m [ a ] && c ( w ( a ) ) } ; y . has = function ( a ) { return a in m } ; g = k ( m ) ; a . a . n ( g , function ( c ) { var d = c . bb . init , e = c . bb . update , k = c . key ; if ( 8 === b . nodeType && ! a . e . P [ k ] ) throw Error ( "The binding '" + k + "' cannot be used with virtual elements" ) ; try { "function" ==
typeof d && a . i . p ( function ( ) { var a = d ( b , w ( k ) , y , f . $data , f ) ; if ( a && a . controlsDescendantBindings ) { if ( u !== q ) throw Error ( "Multiple bindings (" + u + " and " + k + ") are trying to control descendant bindings of the same element. You cannot use these bindings together on the same element." ) ; u = k } } ) , "function" == typeof e && a . h ( function ( ) { e ( b , w ( k ) , y , f . $data , f ) } , null , { I : b } ) } catch ( g ) { throw g . message = 'Unable to process binding "' + k + ": " + m [ k ] + '"\nMessage: ' + g . message , g ; } } ) } return { shouldBindDescendants : u === q } } function f ( b ) { return b &&
b instanceof a . G ? b : new a . G ( b ) } a . d = { } ; var p = { script : ! 0 } ; a . getBindingHandler = function ( b ) { return a . d [ b ] } ; a . G = function ( b , c , d , f ) { var e = this , k = "function" == typeof b , g , h = a . h ( function ( ) { var g = k ? b ( ) : b ; c ? ( c . A && c . A ( ) , a . a . extend ( e , c ) , h && ( e . A = h ) ) : ( e . $parents = [ ] , e . $root = g , e . ko = a ) ; e . $rawData = b ; e . $data = g ; d && ( e [ d ] = g ) ; f && f ( e , c , g ) ; return e . $data } , null , { ua : function ( ) { return g && ! a . a . Ra ( g ) } , I : ! 0 } ) ; h . aa ( ) && ( e . A = h , h . equalityComparer = null , g = [ ] , h . wb = function ( b ) { g . push ( b ) ; a . a . C . ea ( b , function ( b ) { a . a . ia ( g , b ) ; g . length || ( h . B ( ) ,
e . A = h = q ) } ) } ) } ; a . G . prototype . createChildContext = function ( b , c , d ) { return new a . G ( b , this , c , function ( a , b ) { a . $parentContext = b ; a . $parent = b . $data ; a . $parents = ( b . $parents || [ ] ) . slice ( 0 ) ; a . $parents . unshift ( a . $parent ) ; d && d ( a ) } ) } ; a . G . prototype . extend = function ( b ) { return new a . G ( this . $rawData , this , null , function ( c ) { a . a . extend ( c , "function" == typeof b ? b ( ) : b ) } ) } ; var s = a . a . f . D ( ) , l = a . a . f . D ( ) ; a . rb = function ( b , c ) { if ( 2 == arguments . length ) a . a . f . set ( b , l , c ) , c . A && c . A . wb ( b ) ; else return a . a . f . get ( b , l ) } ; a . pa = function ( b , c , d ) { 1 === b . nodeType &&
a . e . ib ( b ) ; return m ( b , c , f ( d ) , ! 0 ) } ; a . xb = function ( c , e , k ) { k = f ( k ) ; return a . pa ( c , "function" === typeof e ? d ( e . bind ( null , k , c ) ) : a . a . Da ( e , b ) , k ) } ; a . Ta = function ( a , b ) { 1 !== b . nodeType && 8 !== b . nodeType || g ( f ( a ) , b , ! 0 ) } ; a . Sa = function ( a , b ) { if ( b && 1 !== b . nodeType && 8 !== b . nodeType ) throw Error ( "ko.applyBindings: first parameter should be your view model; second parameter should be a DOM node" ) ; b = b || y . document . body ; h ( f ( a ) , b , ! 0 ) } ; a . ta = function ( b ) { switch ( b . nodeType ) { case 1 : case 8 : var c = a . rb ( b ) ; if ( c ) return c ; if ( b . parentNode ) return a . ta ( b . parentNode ) } return q } ;
a . Cb = function ( b ) { return ( b = a . ta ( b ) ) ? b . $data : q } ; a . b ( "bindingHandlers" , a . d ) ; a . b ( "applyBindings" , a . Sa ) ; a . b ( "applyBindingsToDescendants" , a . Ta ) ; a . b ( "applyBindingAccessorsToNode" , a . pa ) ; a . b ( "applyBindingsToNode" , a . xb ) ; a . b ( "contextFor" , a . ta ) ; a . b ( "dataFor" , a . Cb ) } ) ( ) ; var M = { "class" : "className" , "for" : "htmlFor" } ; a . d . attr = { update : function ( b , c ) { var d = a . a . c ( c ( ) ) || { } ; a . a . K ( d , function ( c , d ) { d = a . a . c ( d ) ; var h = ! 1 === d || null === d || d === q ; h && b . removeAttribute ( c ) ; 8 >= a . a . ja && c in M ? ( c = M [ c ] , h ? b . removeAttribute ( c ) : b [ c ] = d ) : h || b . setAttribute ( c ,
d . toString ( ) ) ; "name" === c && a . a . pb ( b , h ? "" : d . toString ( ) ) } ) } } ; ( function ( ) { a . d . checked = { after : [ "value" , "attr" ] , init : function ( b , c , d ) { function e ( ) { return d . has ( "checkedValue" ) ? a . a . c ( d . get ( "checkedValue" ) ) : b . value } function g ( ) { var k = b . checked , g = s ? e ( ) : k ; if ( l && ( ! m || k ) ) { var h = a . i . p ( c ) ; f ? p !== g ? ( k && ( a . a . V ( h , g , ! 0 ) , a . a . V ( h , p , ! 1 ) ) , p = g ) : a . a . V ( h , g , k ) : a . g . oa ( h , d , "checked" , g , ! 0 ) } } function h ( ) { var d = a . a . c ( c ( ) ) ; b . checked = f ? 0 <= a . a . l ( d , e ( ) ) : k ? d : e ( ) === d } var k = "checkbox" == b . type , m = "radio" == b . type ; if ( k || m ) { var f = k && a . a . c ( c ( ) ) instanceof
Array , p = f ? e ( ) : q , s = m || f , l = ! 1 ; m && ! b . name && a . d . uniqueName . init ( b , function ( ) { return ! 0 } ) ; a . h ( g , null , { I : b } ) ; a . a . r ( b , "click" , g ) ; a . h ( h , null , { I : b } ) ; l = ! 0 } } } ; a . g . U . checked = ! 0 ; a . d . checkedValue = { update : function ( b , c ) { b . value = a . a . c ( c ( ) ) } } } ) ( ) ; a . d . css = { update : function ( b , c ) { var d = a . a . c ( c ( ) ) ; "object" == typeof d ? a . a . K ( d , function ( c , d ) { d = a . a . c ( d ) ; a . a . ma ( b , c , d ) } ) : ( d = String ( d || "" ) , a . a . ma ( b , b . _ _ko _ _cssValue , ! 1 ) , b . _ _ko _ _cssValue = d , a . a . ma ( b , d , ! 0 ) ) } } ; a . d . enable = { update : function ( b , c ) { var d = a . a . c ( c ( ) ) ; d && b . disabled ? b . removeAttribute ( "disabled" ) :
d || b . disabled || ( b . disabled = ! 0 ) } } ; a . d . disable = { update : function ( b , c ) { a . d . enable . update ( b , function ( ) { return ! a . a . c ( c ( ) ) } ) } } ; a . d . event = { init : function ( b , c , d , e , g ) { var h = c ( ) || { } ; a . a . K ( h , function ( k ) { "string" == typeof k && a . a . r ( b , k , function ( b ) { var f , h = c ( ) [ k ] ; if ( h ) { try { var s = a . a . Q ( arguments ) ; e = g . $data ; s . unshift ( e ) ; f = h . apply ( e , s ) } finally { ! 0 !== f && ( b . preventDefault ? b . preventDefault ( ) : b . returnValue = ! 1 ) } ! 1 === d . get ( k + "Bubble" ) && ( b . cancelBubble = ! 0 , b . stopPropagation && b . stopPropagation ( ) ) } } ) } ) } } ; a . d . foreach = { hb : function ( b ) { return function ( ) { var c =
b ( ) , d = a . a . Ha ( c ) ; if ( ! d || "number" == typeof d . length ) return { foreach : c , templateEngine : a . J . Aa } ; a . a . c ( c ) ; return { foreach : d . data , as : d . as , includeDestroyed : d . includeDestroyed , afterAdd : d . afterAdd , beforeRemove : d . beforeRemove , afterRender : d . afterRender , beforeMove : d . beforeMove , afterMove : d . afterMove , templateEngine : a . J . Aa } } } , init : function ( b , c ) { return a . d . template . init ( b , a . d . foreach . hb ( c ) ) } , update : function ( b , c , d , e , g ) { return a . d . template . update ( b , a . d . foreach . hb ( c ) , d , e , g ) } } ; a . g . Y . foreach = ! 1 ; a . e . P . foreach = ! 0 ; a . d . hasfocus =
{ init : function ( b , c , d ) { function e ( e ) { b . _ _ko _hasfocusUpdating = ! 0 ; var g = b . ownerDocument ; if ( "activeElement" in g ) { var f ; try { f = g . activeElement } catch ( h ) { f = g . body } e = f === b } g = c ( ) ; a . g . oa ( g , d , "hasfocus" , e , ! 0 ) ; b . _ _ko _hasfocusLastValue = e ; b . _ _ko _hasfocusUpdating = ! 1 } var g = e . bind ( null , ! 0 ) , h = e . bind ( null , ! 1 ) ; a . a . r ( b , "focus" , g ) ; a . a . r ( b , "focusin" , g ) ; a . a . r ( b , "blur" , h ) ; a . a . r ( b , "focusout" , h ) } , update : function ( b , c ) { var d = ! ! a . a . c ( c ( ) ) ; b . _ _ko _hasfocusUpdating || b . _ _ko _hasfocusLastValue === d || ( d ? b . focus ( ) : b . blur ( ) , a . i . p ( a . a . da ,
null , [ b , d ? "focusin" : "focusout" ] ) ) } } ; a . g . U . hasfocus = ! 0 ; a . d . hasFocus = a . d . hasfocus ; a . g . U . hasFocus = ! 0 ; a . d . html = { init : function ( ) { return { controlsDescendantBindings : ! 0 } } , update : function ( b , c ) { a . a . Ka ( b , c ( ) ) } } ; var L = a . a . f . D ( ) ; H ( "if" ) ; H ( "ifnot" , ! 1 , ! 0 ) ; H ( "with" , ! 0 , ! 1 , function ( a , c ) { return a . createChildContext ( c ) } ) ; a . d . options = { init : function ( b ) { if ( "select" !== a . a . v ( b ) ) throw Error ( "options binding applies only to SELECT elements" ) ; for ( ; 0 < b . length ; ) b . remove ( 0 ) ; return { controlsDescendantBindings : ! 0 } } , update : function ( b ,
c , d ) { function e ( ) { return a . a . ga ( b . options , function ( a ) { return a . selected } ) } function g ( a , b , c ) { var d = typeof b ; return "function" == d ? b ( a ) : "string" == d ? a [ b ] : c } function h ( c , d ) { if ( p . length ) { var f = 0 <= a . a . l ( p , a . k . o ( d [ 0 ] ) ) ; a . a . qb ( d [ 0 ] , f ) ; l && ! f && a . i . p ( a . a . da , null , [ b , "change" ] ) } } var k = 0 != b . length && b . multiple ? b . scrollTop : null ; c = a . a . c ( c ( ) ) ; var m = d . get ( "optionsIncludeDestroyed" ) , f = { } , p ; p = b . multiple ? a . a . ha ( e ( ) , a . k . o ) : 0 <= b . selectedIndex ? [ a . k . o ( b . options [ b . selectedIndex ] ) ] : [ ] ; if ( c ) { "undefined" == typeof c . length && ( c = [ c ] ) ;
var s = a . a . ga ( c , function ( b ) { return m || b === q || null === b || ! a . a . c ( b . _destroy ) } ) ; d . has ( "optionsCaption" ) && ( c = a . a . c ( d . get ( "optionsCaption" ) ) , null !== c && c !== q && s . unshift ( f ) ) } else c = [ ] ; var l = ! 1 ; c = h ; d . has ( "optionsAfterRender" ) && ( c = function ( b , c ) { h ( 0 , c ) ; a . i . p ( d . get ( "optionsAfterRender" ) , null , [ c [ 0 ] , b !== f ? b : q ] ) } ) ; a . a . Ja ( b , s , function ( b , c , e ) { e . length && ( p = e [ 0 ] . selected ? [ a . k . o ( e [ 0 ] ) ] : [ ] , l = ! 0 ) ; c = w . createElement ( "option" ) ; b === f ? ( a . a . Ma ( c , d . get ( "optionsCaption" ) ) , a . k . na ( c , q ) ) : ( e = g ( b , d . get ( "optionsValue" ) , b ) , a . k . na ( c , a . a . c ( e ) ) ,
b = g ( b , d . get ( "optionsText" ) , e ) , a . a . Ma ( c , b ) ) ; return [ c ] } , null , c ) ; ( b . multiple ? p . length && e ( ) . length < p . length : p . length && 0 <= b . selectedIndex ? a . k . o ( b . options [ b . selectedIndex ] ) !== p [ 0 ] : p . length || 0 <= b . selectedIndex ) && a . i . p ( a . a . da , null , [ b , "change" ] ) ; a . a . Hb ( b ) ; k && 20 < Math . abs ( k - b . scrollTop ) && ( b . scrollTop = k ) } } ; a . d . options . Ea = a . a . f . D ( ) ; a . d . selectedOptions = { after : [ "options" , "foreach" ] , init : function ( b , c , d ) { a . a . r ( b , "change" , function ( ) { var e = c ( ) , g = [ ] ; a . a . n ( b . getElementsByTagName ( "option" ) , function ( b ) { b . selected && g . push ( a . k . o ( b ) ) } ) ;
a . g . oa ( e , d , "selectedOptions" , g ) } ) } , update : function ( b , c ) { if ( "select" != a . a . v ( b ) ) throw Error ( "values binding applies only to SELECT elements" ) ; var d = a . a . c ( c ( ) ) ; d && "number" == typeof d . length && a . a . n ( b . getElementsByTagName ( "option" ) , function ( b ) { var c = 0 <= a . a . l ( d , a . k . o ( b ) ) ; a . a . qb ( b , c ) } ) } } ; a . g . U . selectedOptions = ! 0 ; a . d . style = { update : function ( b , c ) { var d = a . a . c ( c ( ) || { } ) ; a . a . K ( d , function ( c , d ) { d = a . a . c ( d ) ; b . style [ c ] = d || "" } ) } } ; a . d . submit = { init : function ( b , c , d , e , g ) { if ( "function" != typeof c ( ) ) throw Error ( "The value for a submit binding must be a function" ) ;
a . a . r ( b , "submit" , function ( a ) { var d , e = c ( ) ; try { d = e . call ( g . $data , b ) } finally { ! 0 !== d && ( a . preventDefault ? a . preventDefault ( ) : a . returnValue = ! 1 ) } } ) } } ; a . d . text = { init : function ( ) { return { controlsDescendantBindings : ! 0 } } , update : function ( b , c ) { a . a . Ma ( b , c ( ) ) } } ; a . e . P . text = ! 0 ; a . d . uniqueName = { init : function ( b , c ) { if ( c ( ) ) { var d = "ko_unique_" + ++ a . d . uniqueName . Bb ; a . a . pb ( b , d ) } } } ; a . d . uniqueName . Bb = 0 ; a . d . value = { after : [ "options" , "foreach" ] , init : function ( b , c , d ) { function e ( ) { k = ! 1 ; var e = c ( ) , f = a . k . o ( b ) ; a . g . oa ( e , d , "value" , f ) } var g =
[ "change" ] , h = d . get ( "valueUpdate" ) , k = ! 1 ; h && ( "string" == typeof h && ( h = [ h ] ) , a . a . X ( g , h ) , g = a . a . Va ( g ) ) ; ! a . a . ja || "input" != b . tagName . toLowerCase ( ) || "text" != b . type || "off" == b . autocomplete || b . form && "off" == b . form . autocomplete || - 1 != a . a . l ( g , "propertychange" ) || ( a . a . r ( b , "propertychange" , function ( ) { k = ! 0 } ) , a . a . r ( b , "blur" , function ( ) { k && e ( ) } ) ) ; a . a . n ( g , function ( c ) { var d = e ; a . a . ac ( c , "after" ) && ( d = function ( ) { setTimeout ( e , 0 ) } , c = c . substring ( 5 ) ) ; a . a . r ( b , c , d ) } ) } , update : function ( b , c ) { var d = "select" === a . a . v ( b ) , e = a . a . c ( c ( ) ) , g = a . k . o ( b ) ;
e !== g && ( g = function ( ) { a . k . na ( b , e ) } , g ( ) , d && ( e !== a . k . o ( b ) ? a . i . p ( a . a . da , null , [ b , "change" ] ) : setTimeout ( g , 0 ) ) ) } } ; a . g . U . value = ! 0 ; a . d . visible = { update : function ( b , c ) { var d = a . a . c ( c ( ) ) , e = "none" != b . style . display ; d && ! e ? b . style . display = "" : ! d && e && ( b . style . display = "none" ) } } ; ( function ( b ) { a . d [ b ] = { init : function ( c , d , e , g , h ) { return a . d . event . init . call ( this , c , function ( ) { var a = { } ; a [ b ] = d ( ) ; return a } , e , g , h ) } } } ) ( "click" ) ; a . w = function ( ) { } ; a . w . prototype . renderTemplateSource = function ( ) { throw Error ( "Override renderTemplateSource" ) ;
} ; a . w . prototype . createJavaScriptEvaluatorBlock = function ( ) { throw Error ( "Override createJavaScriptEvaluatorBlock" ) ; } ; a . w . prototype . makeTemplateSource = function ( b , c ) { if ( "string" == typeof b ) { c = c || w ; var d = c . getElementById ( b ) ; if ( ! d ) throw Error ( "Cannot find template with ID " + b ) ; return new a . m . j ( d ) } if ( 1 == b . nodeType || 8 == b . nodeType ) return new a . m . W ( b ) ; throw Error ( "Unknown template type: " + b ) ; } ; a . w . prototype . renderTemplate = function ( a , c , d , e ) { a = this . makeTemplateSource ( a , e ) ; return this . renderTemplateSource ( a , c ,
d ) } ; a . w . prototype . isTemplateRewritten = function ( a , c ) { return ! 1 === this . allowTemplateRewriting ? ! 0 : this . makeTemplateSource ( a , c ) . data ( "isRewritten" ) } ; a . w . prototype . rewriteTemplate = function ( a , c , d ) { a = this . makeTemplateSource ( a , d ) ; c = c ( a . text ( ) ) ; a . text ( c ) ; a . data ( "isRewritten" , ! 0 ) } ; a . b ( "templateEngine" , a . w ) ; a . Oa = function ( ) { function b ( b , c , d , k ) { b = a . g . Ga ( b ) ; for ( var m = a . g . Y , f = 0 ; f < b . length ; f ++ ) { var p = b [ f ] . key ; if ( m . hasOwnProperty ( p ) ) { var s = m [ p ] ; if ( "function" === typeof s ) { if ( p = s ( b [ f ] . value ) ) throw Error ( p ) ; } else if ( ! s ) throw Error ( "This template engine does not support the '" +
p + "' binding within its templates" ) ; } } d = "ko.__tr_ambtns(function($context,$element){return(function(){return{ " + a . g . ka ( b , { valueAccessors : ! 0 } ) + " } })()},'" + d . toLowerCase ( ) + "')" ; return k . createJavaScriptEvaluatorBlock ( d ) + c } var c = /(<([a-z]+\d*)(?:\s+(?!data-bind\s*=\s*)[a-z0-9\-]+(?:=(?:\"[^\"]*\"|\'[^\']*\'))?)*\s+)data-bind\s*=\s*(["'])([\s\S]*?)\3/gi , d = /\x3c!--\s*ko\b\s*([\s\S]*?)\s*--\x3e/g ; return { Ib : function ( b , c , d ) { c . isTemplateRewritten ( b , d ) || c . rewriteTemplate ( b , function ( b ) { return a . Oa . Ub ( b , c ) } ,
d ) } , Ub : function ( a , g ) { return a . replace ( c , function ( a , c , d , f , e ) { return b ( e , c , d , g ) } ) . replace ( d , function ( a , c ) { return b ( c , "\x3c!-- ko --\x3e" , "#comment" , g ) } ) } , yb : function ( b , c ) { return a . u . Ca ( function ( d , k ) { var m = d . nextSibling ; m && m . nodeName . toLowerCase ( ) === c && a . pa ( m , b , k ) } ) } } } ( ) ; a . b ( "__tr_ambtns" , a . Oa . yb ) ; ( function ( ) { a . m = { } ; a . m . j = function ( a ) { this . j = a } ; a . m . j . prototype . text = function ( ) { var b = a . a . v ( this . j ) , b = "script" === b ? "text" : "textarea" === b ? "value" : "innerHTML" ; if ( 0 == arguments . length ) return this . j [ b ] ; var c = arguments [ 0 ] ;
"innerHTML" === b ? a . a . Ka ( this . j , c ) : this . j [ b ] = c } ; var b = a . a . f . D ( ) + "_" ; a . m . j . prototype . data = function ( c ) { if ( 1 === arguments . length ) return a . a . f . get ( this . j , b + c ) ; a . a . f . set ( this . j , b + c , arguments [ 1 ] ) } ; var c = a . a . f . D ( ) ; a . m . W = function ( a ) { this . j = a } ; a . m . W . prototype = new a . m . j ; a . m . W . prototype . text = function ( ) { if ( 0 == arguments . length ) { var b = a . a . f . get ( this . j , c ) || { } ; b . Pa === q && b . sa && ( b . Pa = b . sa . innerHTML ) ; return b . Pa } a . a . f . set ( this . j , c , { Pa : arguments [ 0 ] } ) } ; a . m . j . prototype . nodes = function ( ) { if ( 0 == arguments . length ) return ( a . a . f . get ( this . j ,
c ) || { } ) . sa ; a . a . f . set ( this . j , c , { sa : arguments [ 0 ] } ) } ; a . b ( "templateSources" , a . m ) ; a . b ( "templateSources.domElement" , a . m . j ) ; a . b ( "templateSources.anonymousTemplate" , a . m . W ) } ) ( ) ; ( function ( ) { function b ( b , c , d ) { var e ; for ( c = a . e . nextSibling ( c ) ; b && ( e = b ) !== c ; ) b = a . e . nextSibling ( e ) , d ( e , b ) } function c ( c , d ) { if ( c . length ) { var f = c [ 0 ] , e = c [ c . length - 1 ] , g = f . parentNode , h = a . H . instance , n = h . preprocessNode ; if ( n ) { b ( f , e , function ( a , b ) { var c = a . previousSibling , d = n . call ( h , a ) ; d && ( a === f && ( f = d [ 0 ] || b ) , a === e && ( e = d [ d . length - 1 ] || c ) ) } ) ; c . length =
0 ; if ( ! f ) return ; f === e ? c . push ( f ) : ( c . push ( f , e ) , a . a . $ ( c , g ) ) } b ( f , e , function ( b ) { 1 !== b . nodeType && 8 !== b . nodeType || a . Sa ( d , b ) } ) ; b ( f , e , function ( b ) { 1 !== b . nodeType && 8 !== b . nodeType || a . u . vb ( b , [ d ] ) } ) ; a . a . $ ( c , g ) } } function d ( a ) { return a . nodeType ? a : 0 < a . length ? a [ 0 ] : null } function e ( b , e , f , h , s ) { s = s || { } ; var l = b && d ( b ) , l = l && l . ownerDocument , n = s . templateEngine || g ; a . Oa . Ib ( f , n , l ) ; f = n . renderTemplate ( f , h , s , l ) ; if ( "number" != typeof f . length || 0 < f . length && "number" != typeof f [ 0 ] . nodeType ) throw Error ( "Template engine must return an array of DOM nodes" ) ;
l = ! 1 ; switch ( e ) { case "replaceChildren" : a . e . S ( b , f ) ; l = ! 0 ; break ; case "replaceNode" : a . a . nb ( b , f ) ; l = ! 0 ; break ; case "ignoreTargetNode" : break ; default : throw Error ( "Unknown renderMode: " + e ) ; } l && ( c ( f , h ) , s . afterRender && a . i . p ( s . afterRender , null , [ f , h . $data ] ) ) ; return f } var g ; a . La = function ( b ) { if ( b != q && ! ( b instanceof a . w ) ) throw Error ( "templateEngine must inherit from ko.templateEngine" ) ; g = b } ; a . Ia = function ( b , c , f , h , s ) { f = f || { } ; if ( ( f . templateEngine || g ) == q ) throw Error ( "Set a template engine before calling renderTemplate" ) ;
s = s || "replaceChildren" ; if ( h ) { var l = d ( h ) ; return a . h ( function ( ) { var g = c && c instanceof a . G ? c : new a . G ( a . a . c ( c ) ) , r = "function" == typeof b ? b ( g . $data , g ) : b , g = e ( h , s , r , g , f ) ; "replaceNode" == s && ( h = g , l = d ( h ) ) } , null , { ua : function ( ) { return ! l || ! a . a . va ( l ) } , I : l && "replaceNode" == s ? l . parentNode : l } ) } return a . u . Ca ( function ( d ) { a . Ia ( b , c , f , d , "replaceNode" ) } ) } ; a . $b = function ( b , d , f , g , h ) { function l ( a , b ) { c ( b , r ) ; f . afterRender && f . afterRender ( b , a ) } function n ( a , c ) { r = h . createChildContext ( a , f . as , function ( a ) { a . $index = c } ) ; var d = "function" ==
typeof b ? b ( a , r ) : b ; return e ( null , "ignoreTargetNode" , d , r , f ) } var r ; return a . h ( function ( ) { var b = a . a . c ( d ) || [ ] ; "undefined" == typeof b . length && ( b = [ b ] ) ; b = a . a . ga ( b , function ( b ) { return f . includeDestroyed || b === q || null === b || ! a . a . c ( b . _destroy ) } ) ; a . i . p ( a . a . Ja , null , [ g , b , n , f , l ] ) } , null , { I : g } ) } ; var h = a . a . f . D ( ) ; a . d . template = { init : function ( b , c ) { var d = a . a . c ( c ( ) ) ; "string" == typeof d || d . name ? a . e . Z ( b ) : ( d = a . e . childNodes ( b ) , d = a . a . Vb ( d ) , ( new a . m . W ( b ) ) . nodes ( d ) ) ; return { controlsDescendantBindings : ! 0 } } , update : function ( b , c , d , e , g ) { c =
a . a . c ( c ( ) ) ; d = { } ; e = ! 0 ; var l , n = null ; "string" != typeof c && ( d = c , c = a . a . c ( d . name ) , "if" in d && ( e = a . a . c ( d [ "if" ] ) ) , e && "ifnot" in d && ( e = ! a . a . c ( d . ifnot ) ) , l = a . a . c ( d . data ) ) ; "foreach" in d ? n = a . $b ( c || b , e && d . foreach || [ ] , d , b , g ) : e ? ( g = "data" in d ? g . createChildContext ( l , d . as ) : g , n = a . Ia ( c || b , g , d , b ) ) : a . e . Z ( b ) ; g = n ; ( l = a . a . f . get ( b , h ) ) && "function" == typeof l . B && l . B ( ) ; a . a . f . set ( b , h , g && g . aa ( ) ? g : q ) } } ; a . g . Y . template = function ( b ) { b = a . g . Ga ( b ) ; return 1 == b . length && b [ 0 ] . unknown || a . g . Sb ( b , "name" ) ? null : "This template engine does not support anonymous templates nested within its templates" } ;
a . e . P . template = ! 0 } ) ( ) ; a . b ( "setTemplateEngine" , a . La ) ; a . b ( "renderTemplate" , a . Ia ) ; a . a . ra = function ( ) { function a ( b , d , e , g , h ) { var k = Math . min , m = Math . max , f = [ ] , p , q = b . length , l , n = d . length , r = n - q || 1 , v = q + n + 1 , t , u , w ; for ( p = 0 ; p <= q ; p ++ ) for ( u = t , f . push ( t = [ ] ) , w = k ( n , p + r ) , l = m ( 0 , p - 1 ) ; l <= w ; l ++ ) t [ l ] = l ? p ? b [ p - 1 ] === d [ l - 1 ] ? u [ l - 1 ] : k ( u [ l ] || v , t [ l - 1 ] || v ) + 1 : l + 1 : p + 1 ; k = [ ] ; m = [ ] ; r = [ ] ; p = q ; for ( l = n ; p || l ; ) n = f [ p ] [ l ] - 1 , l && n === f [ p ] [ l - 1 ] ? m . push ( k [ k . length ] = { status : e , value : d [ -- l ] , index : l } ) : p && n === f [ p - 1 ] [ l ] ? r . push ( k [ k . length ] = { status : g , value : b [ -- p ] ,
index : p } ) : ( -- l , -- p , h . sparse || k . push ( { status : "retained" , value : d [ l ] } ) ) ; if ( m . length && r . length ) { b = 10 * q ; var z ; for ( d = e = 0 ; ( h . dontLimitMoves || d < b ) && ( z = m [ e ] ) ; e ++ ) { for ( g = 0 ; f = r [ g ] ; g ++ ) if ( z . value === f . value ) { z . moved = f . index ; f . moved = z . index ; r . splice ( g , 1 ) ; d = g = 0 ; break } d += g } } return k . reverse ( ) } return function ( c , d , e ) { e = "boolean" === typeof e ? { dontLimitMoves : e } : e || { } ; c = c || [ ] ; d = d || [ ] ; return c . length <= d . length ? a ( c , d , "added" , "deleted" , e ) : a ( d , c , "deleted" , "added" , e ) } } ( ) ; a . b ( "utils.compareArrays" , a . a . ra ) ; ( function ( ) { function b ( b ,
c , g , h , k ) { var m = [ ] , f = a . h ( function ( ) { var f = c ( g , k , a . a . $ ( m , b ) ) || [ ] ; 0 < m . length && ( a . a . nb ( m , f ) , h && a . i . p ( h , null , [ g , f , k ] ) ) ; m . splice ( 0 , m . length ) ; a . a . X ( m , f ) } , null , { I : b , ua : function ( ) { return ! a . a . Ra ( m ) } } ) ; return { R : m , h : f . aa ( ) ? f : q } } var c = a . a . f . D ( ) ; a . a . Ja = function ( d , e , g , h , k ) { function m ( b , c ) { x = s [ c ] ; t !== c && ( z [ b ] = x ) ; x . za ( t ++ ) ; a . a . $ ( x . R , d ) ; r . push ( x ) ; w . push ( x ) } function f ( b , c ) { if ( b ) for ( var d = 0 , e = c . length ; d < e ; d ++ ) c [ d ] && a . a . n ( c [ d ] . R , function ( a ) { b ( a , d , c [ d ] . fa ) } ) } e = e || [ ] ; h = h || { } ; var p = a . a . f . get ( d , c ) === q , s = a . a . f . get ( d , c ) || [ ] ,
l = a . a . ha ( s , function ( a ) { return a . fa } ) , n = a . a . ra ( l , e , h . dontLimitMoves ) , r = [ ] , v = 0 , t = 0 , u = [ ] , w = [ ] ; e = [ ] ; for ( var z = [ ] , l = [ ] , x , A = 0 , y , B ; y = n [ A ] ; A ++ ) switch ( B = y . moved , y . status ) { case "deleted" : B === q && ( x = s [ v ] , x . h && x . h . B ( ) , u . push . apply ( u , a . a . $ ( x . R , d ) ) , h . beforeRemove && ( e [ A ] = x , w . push ( x ) ) ) ; v ++ ; break ; case "retained" : m ( A , v ++ ) ; break ; case "added" : B !== q ? m ( A , B ) : ( x = { fa : y . value , za : a . q ( t ++ ) } , r . push ( x ) , w . push ( x ) , p || ( l [ A ] = x ) ) } f ( h . beforeMove , z ) ; a . a . n ( u , h . beforeRemove ? a . L : a . removeNode ) ; for ( var A = 0 , p = a . e . firstChild ( d ) , C ; x = w [ A ] ; A ++ ) { x . R ||
a . a . extend ( x , b ( d , g , x . fa , k , x . za ) ) ; for ( v = 0 ; n = x . R [ v ] ; p = n . nextSibling , C = n , v ++ ) n !== p && a . e . eb ( d , n , C ) ; ! x . Ob && k && ( k ( x . fa , x . R , x . za ) , x . Ob = ! 0 ) } f ( h . beforeRemove , e ) ; f ( h . afterMove , z ) ; f ( h . afterAdd , l ) ; a . a . f . set ( d , c , r ) } } ) ( ) ; a . b ( "utils.setDomNodeChildrenFromArrayMapping" , a . a . Ja ) ; a . J = function ( ) { this . allowTemplateRewriting = ! 1 } ; a . J . prototype = new a . w ; a . J . prototype . renderTemplateSource = function ( b ) { var c = ( 9 > a . a . ja ? 0 : b . nodes ) ? b . nodes ( ) : null ; if ( c ) return a . a . Q ( c . cloneNode ( ! 0 ) . childNodes ) ; b = b . text ( ) ; return a . a . Fa ( b ) } ; a . J . Aa =
new a . J ; a . La ( a . J . Aa ) ; a . b ( "nativeTemplateEngine" , a . J ) ; ( function ( ) { a . Ba = function ( ) { var a = this . Rb = function ( ) { if ( "undefined" == typeof u || ! u . tmpl ) return 0 ; try { if ( 0 <= u . tmpl . tag . tmpl . open . toString ( ) . indexOf ( "__" ) ) return 2 } catch ( a ) { } return 1 } ( ) ; this . renderTemplateSource = function ( b , e , g ) { g = g || { } ; if ( 2 > a ) throw Error ( "Your version of jQuery.tmpl is too old. Please upgrade to jQuery.tmpl 1.0.0pre or later." ) ; var h = b . data ( "precompiled" ) ; h || ( h = b . text ( ) || "" , h = u . template ( null , "{{ko_with $item.koBindingContext}}" + h +
"{{/ko_with}}" ) , b . data ( "precompiled" , h ) ) ; b = [ e . $data ] ; e = u . extend ( { koBindingContext : e } , g . templateOptions ) ; e = u . tmpl ( h , b , e ) ; e . appendTo ( w . createElement ( "div" ) ) ; u . fragments = { } ; return e } ; this . createJavaScriptEvaluatorBlock = function ( a ) { return "{{ko_code ((function() { return " + a + " })()) }}" } ; this . addTemplate = function ( a , b ) { w . write ( "<script type='text/html' id='" + a + "'>" + b + "\x3c/script>" ) } ; 0 < a && ( u . tmpl . tag . ko _code = { open : "__.push($1 || '');" } , u . tmpl . tag . ko _with = { open : "with($1) {" , close : "} " } ) } ; a . Ba . prototype =
new a . w ; var b = new a . Ba ; 0 < b . Rb && a . La ( b ) ; a . b ( "jqueryTmplTemplateEngine" , a . Ba ) } ) ( ) } ) } ) ( ) ; } ) ( ) ;
2013-12-29 04:42:07 +08:00
2013-12-07 05:50:19 +08:00
/ * ! K n o c k o u t p r o j e c t i o n s p l u g i n
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
Copyright ( c ) Microsoft Corporation
All rights reserved .
Licensed under the Apache License , Version 2.0 ( the "License" ) ; you may not use this file except in compliance with the License . You may obtain a copy of the License at http : //www.apache.org/licenses/LICENSE-2.0
THIS CODE IS PROVIDED * AS IS * BASIS , WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND , EITHER EXPRESS OR IMPLIED , INCLUDING WITHOUT LIMITATION ANY IMPLIED WARRANTIES OR CONDITIONS OF TITLE , FITNESS FOR A PARTICULAR PURPOSE , MERCHANTABLITY OR NON - INFRINGEMENT .
See the Apache Version 2.0 License for specific language governing permissions and limitations under the License .
-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
* /
2013-12-29 04:42:07 +08:00
! function ( a ) { "use strict" ; function b ( a , b , c , d , e , f , g ) { this . inputItem = b , this . stateArrayIndex = c , this . mapping = e , this . arrayOfState = f , this . outputObservableArray = g , this . outputArray = this . outputObservableArray . peek ( ) , this . isIncluded = null , this . suppressNotification = ! 1 , this . outputArrayIndex = a . observable ( d ) , this . mappedValueComputed = a . computed ( this . mappingEvaluator , this ) , this . mappedValueComputed . subscribe ( this . onMappingResultChanged , this ) , this . previousMappedValue = this . mappedValueComputed . peek ( ) } function c ( a , b ) { if ( ! a ) return null ; switch ( a . status ) { case "added" : return a . index ; case "deleted" : return a . index + b ; default : throw new Error ( "Unknown diff status: " + a . status ) } } function d ( a , c , d , e , f , g , h , i , j ) { var k = "number" == typeof c . moved , l = k ? d [ c . moved ] : new b ( a , c . value , e , f , g , h , i ) ; return h . splice ( e , 0 , l ) , l . isIncluded && j . splice ( f , 0 , l . mappedValueComputed . peek ( ) ) , k && ( l . stateArrayIndex = e , l . setOutputArrayIndexSilently ( f ) ) , l } function e ( a , b , c , d , e ) { var f = b . splice ( c , 1 ) [ 0 ] ; f . isIncluded && e . splice ( d , 1 ) , "number" != typeof a . moved && f . dispose ( ) } function f ( a , b , c ) { return a . stateArrayIndex = b , a . setOutputArrayIndexSilently ( c ) , c + ( a . isIncluded ? 1 : 0 ) } function g ( a , b ) { for ( var c = { } , d = 0 ; d < a . length ; d ++ ) { var e = a [ d ] ; "added" === e . status && "number" == typeof e . moved && ( c [ e . moved ] = b [ e . moved ] ) } return c } function h ( a , b , c ) { return c . length && b [ a . index ] ? b [ a . index ] . outputArrayIndex . peek ( ) : c . length } function i ( a , b , i , j , k , l ) { return b . subscribe ( function ( b ) { if ( b . length ) { for ( var m = g ( b , i ) , n = 0 , o = b [ 0 ] , p = 0 , q = o && h ( o , i , j ) , r = o . index ; o || r < i . length ; r ++ ) if ( c ( o , p ) === r ) { switch ( o . status ) { case "added" : var s = d ( a , o , m , r , q , l , i , k , j ) ; s . isIncluded && q ++ , p ++ ; break ; case "deleted" : e ( o , i , r , q , j ) , p -- , r -- ; break ; default : throw new Error ( "Unknown diff status: " + o . status ) } n ++ , o = b [ n ] } else r < i . length && ( q = f ( i [ r ] , r , q ) ) ; k . valueHasMutated ( ) } } , null , "arrayChange" ) } function j ( a , c ) { for ( var d = this , e = [ ] , f = [ ] , g = a . observableArray ( f ) , h = d . peek ( ) , j = 0 ; j < h . length ; j ++ ) { var k = h [ j ] , l = new b ( a , k , j , f . length , c , e , g ) , n = l . mappedValueComputed . peek ( ) ; e . push ( l ) , l . isIncluded && f . push ( n ) } var o = i ( a , d , e , f , g , c ) , p = a . computed ( g ) . extend ( { trackArrayChanges : ! 0 } ) , q = p . dispose ; return p . dispose = function ( ) { o . dispose ( ) , a . utils . arrayForEach ( e , function ( a ) { a . dispose ( ) } ) , q . call ( this , arguments ) } , m ( a , p ) , p } function k ( a , b ) { return j . call ( this , a , function ( a ) { return b ( a ) ? a : p } ) } function l ( a ) { function b ( a , b ) { return function ( ) { return b . apply ( this , [ a ] . concat ( Array . prototype . slice . call ( arguments , 0 ) ) ) } } a [ q ] = { map : b ( a , j ) , filter : b ( a , k ) } } function m ( a , b ) { return a . utils . extend ( b , a [ q ] ) , b } function n ( a ) { a . projections = { _exclusionMarker : p } , l ( a ) , m ( a , a . observableArray . fn ) } function o ( ) { if ( "undefined" != typeof module ) { var b = require ( "knockout" ) ; n ( b ) , module . exports = b } else "ko" in a && n ( a . ko ) } var p = { } ; b . prototype . dispose = function ( ) { this . mappedValueComputed . dispose ( ) } , b . prototype . mappingEvaluator = function ( ) { var a = this . mapping ( this . inputItem , this . outputArrayIndex ) , b = a !== p ; return this . isIncluded !== b && ( null !== this . isIncluded && this . moveSubsequentItemsBecauseInclusionStateChanged ( b ) , this . isIncluded = b ) , a } , b . prototype . onMappingResultChanged = function ( a ) { a !== this . previousMappedValue && ( this . isIncluded && this . outputArray . splice ( this . outputArrayIndex . peek ( ) , 1 , a ) , this . suppressNotification || this . outputObservableArray . valueHasMutated ( ) , this . previousMappedValue = a ) } , b . prototype . moveSubsequentItemsBecauseInclusionStateChanged = function ( a ) { var b , c , d = this . outputArrayIndex . peek ( ) ; if ( a ) for ( this . outputArray . splice ( d , 0 , null ) , b = this . stateArrayIndex + 1 ; b < this . arrayOfState . length ; b ++ ) c = this . arrayOfState [ b ] , c . setOutputArrayIndexSilently ( c . outputArrayIndex . peek ( ) + 1 ) ; else for ( this . outputArray . splice ( d , 1 ) , b = this . stateArrayIndex + 1 ; b < this . arrayOfState . length ; b ++ ) c = this . arrayOfState [ b ] , c . setOutputArrayIndexSilently ( c . outputArrayIndex . peek ( ) - 1 ) } , b . prototype . setOutputArrayIndexSilently = function ( a ) { this . suppressNotification = ! 0 , this . outputArrayIndex ( a ) , this . suppressNotification = ! 1 } ; var q = "_ko.projections.cache" ; o ( ) } ( this ) ;
2013-12-09 06:14:55 +08:00
( function ( ) { function a ( a ) { function l ( ) { if ( g && d < a ) { var b = g , c = b [ 0 ] , f = Array . prototype . slice . call ( b , 1 ) , m = b . index ; g === h ? g = h = null : g = g . next , ++ d , f . push ( function ( a , b ) { -- d ; if ( i ) return ; a ? e && k ( i = a , e = j = g = h = null ) : ( j [ m ] = b , -- e ? l ( ) : k ( null , j ) ) } ) , c . apply ( null , f ) } } var c = { } , d = 0 , e = 0 , f = - 1 , g , h , i = null , j = [ ] , k = b ; return arguments . length < 1 && ( a = Infinity ) , c . defer = function ( ) { if ( ! i ) { var a = arguments ; a . index = ++ f , h ? ( h . next = a , h = h . next ) : g = h = a , ++ e , l ( ) } return c } , c . await = function ( a ) { return k = a , e || k ( i , j ) , c } , c } function b ( ) { } typeof module == "undefined" ? self . queue = a : module . exports = a , a . version = "0.0.2" } ) ( ) ; var e = ! 0 , f = null , h = ! 1 , j , k = jQuery , l = window , m = queue ; function q ( a ) { return "undefined" === typeof a } function r ( a ) { 0 < a && clearTimeout ( a ) } function u ( a ) { a = a && ( a . originalEvent ? a . originalEvent : a ) || l . event ; return a . dataTransfer ? a : f } function v ( a , b , c ) { return ! a || ! b || q ( a [ b ] ) ? c : a [ b ] } function w ( ) { for ( var a = 16 , b = "" , a = q ( a ) ? 32 : parseInt ( a || 0 , 10 ) ; b . length < a ; ) b += "0123456789abcdefghijklmnopqrstuvwxyz" . substr ( Math . round ( 36 * Math . random ( ) ) , 1 ) ; return "jua-uid-" + b + "-" + ( new Date ) . getTime ( ) . toString ( ) }
function z ( a , b ) { return { FileName : q ( a . fileName ) ? q ( a . name ) ? f : a . name : a . fileName , Size : q ( a . fileSize ) ? q ( a . size ) ? f : a . size : a . fileSize , Type : q ( a . type ) ? f : a . type , Folder : q ( b ) ? "" : b , File : a } }
function A ( a , b , c , g , d , i ) { function n ( a , b , s , c ) { if ( a && ! q ( a . name ) ) if ( b = b || "" , a . isFile ) a . file ( function ( a ) { ! x || 0 <= -- d ? s ( z ( a , b ) ) : x && ! y && ( 0 > d && i ) && ( y = e , i ( t ) ) } ) ; else if ( g && a . isDirectory && a . createReader ) { var p = a . createReader ( ) , o = 0 , C = 0 ; p && p . readEntries && p . readEntries ( function ( d ) { if ( d && d && d . length && 0 < d . length ) { o = 0 ; for ( C = d . length ; o < C ; o ++ ) n ( d [ o ] , b + a . name + "/" , s , c ) } } ) } } var t = 0 , s = 0 , p = 0 , o = f , o = f , x = h , y = h , g = q ( g ) ? e : ! ! g , c = q ( c ) ? h : ! ! c , t = d = q ( d ) ? B . o : parseInt ( d || 0 , 10 ) , x = 0 < d ; if ( a = a && 0 < a . length ? a : f ) { p = 0 ; for ( s = a . length ; p < s ; p ++ ) if ( o =
a [ p ] ) c ? "file" === o . kind && o . webkitGetAsEntry && ( o = o . webkitGetAsEntry ( ) ) && n ( o , "" , b , i ) : ! x || 0 <= -- d ? b ( z ( o ) ) : x && ! y && ( 0 > d && i ) && ( y = e , i ( t ) ) } } function D ( a , b , c , g ) { var d = a && a . files && 0 < a . files . length ? a . files : f ; d ? A ( d , b , h , h , c , g ) : b ( { FileName : a . value . split ( "\\" ) . pop ( ) . split ( "/" ) . pop ( ) , Size : f , Type : f , Folder : "" , File : f } ) }
function E ( a ) { var b = h ; if ( a && a . dataTransfer && a . dataTransfer . types && a . dataTransfer . types . length ) for ( var c = 0 , g = a . dataTransfer . types . length ; c < g ; c ++ ) if ( "files" === a . dataTransfer . types [ c ] . toLowerCase ( ) ) { b = e ; break } return b } function F ( ) { return k ( '<label style="position: absolute; background-color:#fff; right: 0px; top: 0px; left: 0px; bottom: 0px; margin: 0px; padding: 0px; cursor: pointer;"></label>' ) . css ( { opacity : 0 } ) }
function G ( a , b ) { var a = q ( a ) ? "" : a . toString ( ) , c = k ( '<input type="file" tabindex="-1" hidefocus="hidefocus" style="position: absolute; left: -9999px;" />' ) ; 0 < a . length && c . attr ( "name" , a ) ; ( q ( b ) || b ) && c . prop ( "multiple" , e ) ; return c } function H ( a , b ) { return k . isFunction ( a ) ? a . apply ( f , k . isArray ( b ) ? b : [ ] ) . toString ( ) : a . toString ( ) } function I ( a , b ) { this . i = { } ; this . f = { } ; this . b = a ; this . a = b } function J ( a , b ) { this . f = { } ; this . j = { } ; this . b = a ; this . a = b }
function B ( a ) { var a = q ( a ) ? { } : a , b = this ; b . c = e ; b . m = { onDialog : f , onSelect : f , onStart : f , onComplete : f , onCompleteAll : f , onProgress : f , onDragEnter : f , onDragLeave : f , onDrop : f , onBodyDragEnter : f , onBodyDragLeave : f , onLimitReached : f } ; var c = { action : "" , name : "" , hidden : { } , queueSize : 10 , clickElement : h , dragAndDropElement : h , dragAndDropBodyElement : h , disableAjaxUpload : h , disableFolderDragAndDrop : e , disableDragAndDrop : h , disableMultiple : h , disableDocumentDropPrevent : h , multipleSizeLimit : 50 } ; if ( a ) for ( var g in a ) a . hasOwnProperty ( g ) && ( c [ g ] =
a [ g ] ) ; b . a = c ; b . q = m ( parseInt ( v ( b . a , "queueSize" , 10 ) || 0 , 10 ) ) ; b . g ( "onCompleteAll" ) && b . q . await ( function ( ) { b . g ( "onCompleteAll" ) } ) ; b . e = b . p ( ) && ! v ( b . a , "disableAjaxUpload" , h ) ? new I ( b , b . a ) : new J ( b , b . a ) ; b . l = v ( b . a , "clickElement" , f ) ; b . l && ( k ( b . l ) . css ( { position : "relative" , overflow : "hidden" } ) , "inline" === k ( this . l ) . css ( "display" ) && k ( this . l ) . css ( "display" , "inline-block" ) , this . e . n ( this . l ) ) ; if ( this . e . k ( ) && v ( this . a , "dragAndDropElement" , h ) && ! v ( this . a , "disableAjaxUpload" , h ) ) { g = k ( document ) ; var d = k ( v ( b . a , "dragAndDropBodyElement" ,
h ) || g ) , i = v ( b . a , "dragAndDropElement" , h ) , a = function ( a ) { if ( b . c && a ) if ( ( a = u ( a ) ) && E ( a ) ) { r ( b . h ) ; var c = a . dataTransfer . effectAllowed ; a . dataTransfer . dropEffect = c === "move" || c === "linkMove" ? "move" : "copy" ; a . stopPropagation ( ) ; a . preventDefault ( ) ; d . trigger ( "dragover" , a ) } } , c = function ( a ) { if ( b . c && a ) if ( ( a = u ( a ) ) && E ( a ) ) { a . preventDefault ( ) ; var c , d = function ( c ) { if ( c ) { b . g ( "onDrop" , [ c , a ] ) ; b . s ( c ) ; r ( b . h ) } } , g = v ( b . a , "multipleSizeLimit" , B . o ) , i = b . d ( "onLimitReached" ) , n = f ; c = f ; if ( c = u ( a ) ) if ( ( n = ( c . dataTransfer ? v ( c . dataTransfer , "items" ,
f ) : f ) || v ( c , "items" , f ) ) && 0 < n . length && n [ 0 ] && n [ 0 ] . webkitGetAsEntry ) A ( n , d , e , ! v ( b . a , "disableFolderDragAndDrop" , e ) , g , i ) ; else if ( E ( c ) ) ( c = v ( c , "files" , f ) || ( c . dataTransfer ? v ( c . dataTransfer , "files" , f ) : f ) ) && 0 < c . length && A ( c , d , h , h , g , i ) } b . g ( "onDragLeave" , [ a ] ) } , n = function ( a ) { if ( b . c && a ) if ( ( a = u ( a ) ) && E ( a ) ) { r ( b . h ) ; a . preventDefault ( ) ; b . g ( "onDragEnter" , [ i , a ] ) } } , t = function ( a ) { if ( b . c && a ) if ( a = u ( a ) ) { var c = document . elementFromPoint ? document . elementFromPoint ( a . clientX , a . clientY ) : f , d ; if ( ! ( d = ! c ) ) { d = h ; this && c && ( d = this === c ? e : this . contains ?
this . contains ( c ) : c . compareDocumentPosition ? ! ! ( c . compareDocumentPosition ( this ) & 8 ) : h ) ; d = ! d } if ( d ) { r ( b . h ) ; b . g ( "onDragLeave" , [ i , a ] ) } } } ; if ( i ) { if ( ! v ( b . a , "disableDocumentDropPrevent" , h ) ) g . on ( "dragover" , function ( a ) { if ( b . c && a ) if ( ( a = u ( a ) ) && E ( a ) ) { a . dataTransfer . dropEffect = "none" ; a . preventDefault ( ) } } ) ; if ( d && d [ 0 ] ) d . on ( "dragover" , function ( a ) { b . c && a && r ( b . h ) } ) . on ( "dragenter" , function ( a ) { if ( b . c && a ) if ( ( a = u ( a ) ) && E ( a ) ) { r ( b . h ) ; a . preventDefault ( ) ; b . g ( "onBodyDragEnter" , [ a ] ) } } ) . on ( "dragleave" , function ( a ) { if ( b . c && a ) if ( a = u ( a ) ) { r ( b . h ) ;
b . h = setTimeout ( function ( ) { b . g ( "onBodyDragLeave" , [ a ] ) } , 200 ) } } ) . on ( "drop" , function ( a ) { if ( b . c && a ) if ( a = u ( a ) ) { var c = E ( a ) ; c && a . preventDefault ( ) ; b . g ( "onBodyDragLeave" , [ a ] ) ; return ! c } return h } ) ; k ( i ) . bind ( "dragenter" , n ) . bind ( "dragover" , a ) . bind ( "dragleave" , t ) . bind ( "drop" , c ) } } else b . c = h ; b . on = b . on ; b . cancel = b . cancel ; b . isDragAndDropSupported = b . k ; b . isAjaxUploaderSupported = b . p ; b . setDragAndDropEnabledStatus = b . v } j = I . prototype ; j . i = { } ; j . f = { } ; j . b = f ; j . a = { } ; j . k = function ( ) { return e } ; j . t = function ( a ) { this . f [ a ] = e } ;
j . u = function ( a , b , c ) { if ( h === this . f [ a ] || ! b || ! b . File ) return c ( f , a ) , h ; try { var g = this , d = new XMLHttpRequest , i = new FormData , n = v ( this . a , "hidden" , { } ) , t = this . b . d ( "onStart" ) , s = this . b . d ( "onComplete" ) , p = this . b . d ( "onProgress" ) ; d . open ( "POST" , v ( this . a , "action" , "" ) , e ) ; p && d . upload && ( d . upload . onprogress = function ( b ) { b && ( b . lengthComputable && ! q ( b . loaded ) && ! q ( b . total ) ) && p ( a , b . loaded , b . total ) } ) ; d . onreadystatechange = function ( ) { if ( 4 === d . readyState && 200 === d . status ) { if ( s ) { var b = h , i = f ; try { i = k . parseJSON ( d . responseText ) ; b = e } catch ( n ) { i =
f } s ( a , b , i ) } q ( g . i [ a ] ) || ( g . i [ a ] = f ) ; c ( f , a ) } else if ( 4 === d . readyState ) { s ( a , h , f ) ; c ( f , a ) } } ; t && t ( a ) ; i . append ( "jua-post-type" , "ajax" ) ; i . append ( v ( this . a , "name" , "juaFile" ) , b . File ) ; k . each ( n , function ( a , c ) { i . append ( a , H ( c , [ b ] ) ) } ) ; d . send ( i ) ; this . i [ a ] = d ; return e } catch ( o ) { } c ( f , a ) ; return h } ;
j . n = function ( a ) { var b = this , c = f , g = f ; a && ( g = G ( "" , ! v ( this . a , "disableMultiple" , h ) ) , c = F ( ) , c . append ( g ) , k ( a ) . append ( c ) , g . on ( "click" , function ( ) { var a = b . b . d ( "onDialog" ) ; a && a ( ) } ) . on ( "change" , function ( ) { D ( this , function ( d ) { b . b . s ( d ) ; b . n ( a ) ; setTimeout ( function ( ) { c . remove ( ) } , 10 ) } , v ( b . a , "multipleSizeLimit" , B . o ) , b . b . d ( "onLimitReached" ) ) } ) ) } ; j . cancel = function ( a ) { this . f [ a ] = h ; if ( this . i [ a ] ) { try { this . i [ a ] . abort && this . i [ a ] . abort ( ) } catch ( b ) { } this . i [ a ] = f } } ; j = J . prototype ; j . f = { } ; j . j = { } ; j . b = f ; j . a = { } ; j . k = function ( ) { return h } ;
j . t = function ( a ) { this . f [ a ] = e } ;
j . u = function ( a , b , c ) { if ( h === this . f [ a ] ) return c ( f , a ) , h ; var g = this . j [ a ] , d = v ( this . a , "hidden" , { } ) , i = this . b . d ( "onStart" ) , n = this . b . d ( "onComplete" ) ; g ? ( g . append ( k ( '<input type="hidden" />' ) . attr ( "name" , "jua-post-type" ) . val ( "iframe" ) ) , k . each ( d , function ( a , c ) { g . append ( k ( '<input type="hidden" />' ) . attr ( "name" , a ) . val ( H ( c , [ b ] ) ) ) } ) , g . trigger ( "submit" ) , i && i ( a ) , g . find ( "iframe" ) . on ( "load" , function ( ) { var b = h , d = f , i = { } ; if ( n ) { try { d = this . contentDocument ? this . contentDocument : this . contentWindow . document , i = k . parseJSON ( d . body . innerHTML ) ,
b = e } catch ( o ) { i = { } } n ( a , b , i ) } c ( f , a ) ; l . setTimeout ( function ( ) { g . remove ( ) } , 100 ) } ) ) : c ( f , a ) ; return e } ;
j . n = function ( a ) { var b = this , c = "" , g = f , d = f , d = v ( this . a , "action" , "" ) , i = f ; a && ( c = w ( ) , g = G ( v ( this . a , "name" , "juaFile" ) , ! v ( this . a , "disableMultiple" , h ) ) , i = k ( '<form action="' + d + '" target="iframe-' + c + '" method="POST" enctype="multipart/form-data" style="display: block; cursor: pointer;"></form>' ) , d = k ( '<iframe name="iframe-' + c + '" tabindex="-1" src="javascript:void(0);" style="position: absolute; top: -1000px; left: -1000px; cursor: pointer;" />' ) . css ( { opacity : 0 } ) , i . append ( F ( ) . append ( g ) ) . append ( d ) , k ( a ) . append ( i ) ,
this . j [ c ] = i , g . on ( "click" , function ( ) { var a = b . b . d ( "onDialog" ) ; a && a ( ) } ) . on ( "change" , function ( ) { D ( this , function ( d ) { d && ( i . css ( { position : "absolute" , top : - 1E3 , left : - 1E3 } ) , b . b . r ( c , d ) , b . n ( a ) ) } , v ( b . a , "multipleSizeLimit" , B . o ) , b . b . d ( "onLimitReached" ) ) } ) ) } ; j . cancel = function ( a ) { this . f [ a ] = h ; this . j [ a ] && ( this . j [ a ] . remove ( ) , this . j [ a ] = h ) } ; B . w = function ( ) { } ; B . o = 20 ; var K = B , L = document . createElement ( "input" ) ; L . type = "file" ; K . p = ! ! ( "XMLHttpRequest" in l && "multiple" in L && "FormData" in l && ( new XMLHttpRequest ) . upload ) ; j = B . prototype ;
j . c = e ; j . h = 0 ; j . a = { } ; j . m = { } ; j . q = f ; j . e = f ; j . on = function ( a , b ) { this . m [ a ] = b ; return this } ; j . g = function ( a , b ) { this . m [ a ] && this . m [ a ] . apply ( f , b || [ ] ) } ; j . d = function ( a ) { return this . m [ a ] || f } ; j . cancel = function ( a ) { this . e . cancel ( a ) } ; j . p = function ( ) { return B . p } ; j . v = function ( a ) { this . c = ! ! a } ; j . k = function ( ) { return this . e . k ( ) } ; j . s = function ( a ) { this . r ( w ( ) , a ) } ;
2013-12-29 04:42:07 +08:00
j . r = function ( a , b ) { var c = this . d ( "onSelect" ) ; if ( b && ( ! c || h !== c ( a , b ) ) ) { this . e . t ( a ) ; var g = this . e . u , d = this . e ; this . q . defer ( function ( ) { return g . apply ( q ( d ) ? f : d , Array . prototype . slice . call ( arguments ) ) } , a , b ) } else this . e . cancel ( a ) } ; l . Jua = B ;
2013-11-16 06:21:12 +08:00
/ * ! M a g n i f i c P o p u p - v 0 . 9 . 8 - 2 0 1 3 - 1 0 - 2 6
* http : //dimsemenov.com/plugins/magnific-popup/
* Copyright ( c ) 2013 Dmitry Semenov ; MIT * /
2013-12-29 04:42:07 +08:00
( function ( e ) { var t , i , n , o , r , a , s , l = "Close" , c = "BeforeClose" , d = "AfterClose" , u = "BeforeAppend" , p = "MarkupParse" , f = "Open" , m = "Change" , g = "mfp" , v = "." + g , h = "mfp-ready" , C = "mfp-removing" , y = "mfp-prevent-close" , w = function ( ) { } , b = ! ! window . jQuery , I = e ( window ) , x = function ( e , i ) { t . ev . on ( g + e + v , i ) } , k = function ( t , i , n , o ) { var r = document . createElement ( "div" ) ; return r . className = "mfp-" + t , n && ( r . innerHTML = n ) , o ? i && i . appendChild ( r ) : ( r = e ( r ) , i && r . appendTo ( i ) ) , r } , T = function ( i , n ) { t . ev . triggerHandler ( g + i , n ) , t . st . callbacks && ( i = i . charAt ( 0 ) . toLowerCase ( ) + i . slice ( 1 ) , t . st . callbacks [ i ] && t . st . callbacks [ i ] . apply ( t , e . isArray ( n ) ? n : [ n ] ) ) } , E = function ( ) { ( t . st . focus ? t . content . find ( t . st . focus ) . eq ( 0 ) : t . wrap ) . focus ( ) } , S = function ( i ) { return i === s && t . currTemplate . closeBtn || ( t . currTemplate . closeBtn = e ( t . st . closeMarkup . replace ( "%title%" , t . st . tClose ) ) , s = i ) , t . currTemplate . closeBtn } , P = function ( ) { e . magnificPopup . instance || ( t = new w , t . init ( ) , e . magnificPopup . instance = t ) } , _ = function ( ) { var e = document . createElement ( "p" ) . style , t = [ "ms" , "O" , "Moz" , "Webkit" ] ; if ( void 0 !== e . transition ) return ! 0 ; for ( ; t . length ; ) if ( t . pop ( ) + "Transition" in e ) return ! 0 ; return ! 1 } ; w . prototype = { constructor : w , init : function ( ) { var i = navigator . appVersion ; t . isIE7 = - 1 !== i . indexOf ( "MSIE 7." ) , t . isIE8 = - 1 !== i . indexOf ( "MSIE 8." ) , t . isLowIE = t . isIE7 || t . isIE8 , t . isAndroid = /android/gi . test ( i ) , t . isIOS = /iphone|ipad|ipod/gi . test ( i ) , t . supportsTransition = _ ( ) , t . probablyMobile = t . isAndroid || t . isIOS || /(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i . test ( navigator . userAgent ) , n = e ( document . body ) , o = e ( document ) , t . popupsCache = { } } , open : function ( i ) { var n ; if ( i . isObj === ! 1 ) { t . items = i . items . toArray ( ) , t . index = 0 ; var r , s = i . items ; for ( n = 0 ; s . length > n ; n ++ ) if ( r = s [ n ] , r . parsed && ( r = r . el [ 0 ] ) , r === i . el [ 0 ] ) { t . index = n ; break } } else t . items = e . isArray ( i . items ) ? i . items : [ i . items ] , t . index = i . index || 0 ; if ( t . isOpen ) return t . updateItemHTML ( ) , void 0 ; t . types = [ ] , a = "" , t . ev = i . mainEl && i . mainEl . length ? i . mainEl . eq ( 0 ) : o , i . key ? ( t . popupsCache [ i . key ] || ( t . popupsCache [ i . key ] = { } ) , t . currTemplate = t . popupsCache [ i . key ] ) : t . currTemplate = { } , t . st = e . extend ( ! 0 , { } , e . magnificPopup . defaults , i ) , t . fixedContentPos = "auto" === t . st . fixedContentPos ? ! t . probablyMobile : t . st . fixedContentPos , t . st . modal && ( t . st . closeOnContentClick = ! 1 , t . st . closeOnBgClick = ! 1 , t . st . showCloseBtn = ! 1 , t . st . enableEscapeKey = ! 1 ) , t . bgOverlay || ( t . bgOverlay = k ( "bg" ) . on ( "click" + v , function ( ) { t . close ( ) } ) , t . wrap = k ( "wrap" ) . attr ( "tabindex" , - 1 ) . on ( "click" + v , function ( e ) { t . _checkIfClose ( e . target ) && t . close ( ) } ) , t . container = k ( "container" , t . wrap ) ) , t . contentContainer = k ( "content" ) , t . st . preloader && ( t . preloader = k ( "preloader" , t . container , t . st . tLoading ) ) ; var l = e . magnificPopup . modules ; for ( n = 0 ; l . length > n ; n ++ ) { var c = l [ n ] ; c = c . charAt ( 0 ) . toUpperCase ( ) + c . slice ( 1 ) , t [ "init" + c ] . call ( t ) } T ( "BeforeOpen" ) , t . st . showCloseBtn && ( t . st . closeBtnInside ? ( x ( p , function ( e , t , i , n ) { i . close _replaceWith = S ( n . type ) } ) , a += " mfp-close-btn-in" ) : t . wrap . append ( S ( ) ) ) , t . st . alignTop && ( a += " mfp-align-top" ) , t . fixedContentPos ? t . wrap . css ( { overflow : t . st . overflowY , overflowX : "hidden" , overflowY : t . st . overflowY } ) : t . wrap . css ( { top : I . scrollTop ( ) , position : "absolute" } ) , ( t . st . fixedBgPos === ! 1 || "auto" === t . st . fixedBgPos && ! t . fixedContentPos ) && t . bgOverlay . css ( { height : o . height ( ) , position : "absolute" } ) , t . st . enableEscapeKey && o . on ( "keyup" + v , function ( e ) { 27 === e . keyCode && t . close ( ) } ) , I . on ( "resize" + v , function ( ) { t . updateSize ( ) } ) , t . st . closeOnContentClick || ( a += " mfp-auto-cursor" ) , a && t . wrap . addClass ( a ) ; var d = t . wH = I . height ( ) , u = { } ; if ( t . fixedContentPos && t . _hasScrollBar ( d ) ) { var m = t . _getScrollbarSize ( ) ; m && ( u . marginRight = m ) } t . fixedContentPos && ( t . isIE7 ? e ( "body, html" ) . css ( "overflow" , "hidden" ) : u . overflow = "hidden" ) ; var g = t . st . mainClass ; return t . isIE7 && ( g += " mfp-ie7" ) , g && t . _addClassToMFP ( g ) , t . updateItemHTML ( ) , T ( "BuildControls" ) , e ( "html" ) . css ( u ) , t . bgOverlay . add ( t . wrap ) . prependTo ( document . body ) , t . _lastFocusedEl = document . activeElement , setTimeout ( function ( ) { t . content ? ( t . _addClassToMFP ( h ) , E ( ) ) : t . bgOverlay . addClass ( h ) , o . on ( "focusin" + v , function ( i ) { return i . target === t . wrap [ 0 ] || e . contains ( t . wrap [ 0 ] , i . target ) ? void 0 : ( E ( ) , ! 1 ) } ) } , 16 ) , t . isOpen = ! 0 , t . updateSize ( d ) , T ( f ) , i } , close : function ( ) { t . isOpen && ( T ( c ) , t . isOpen = ! 1 , t . st . removalDelay && ! t . isLowIE && t . supportsT
2013-11-07 05:09:36 +08:00
/ * !
* Bootstrap . js by @ fat & @ mdo
* Copyright 2012 Twitter , Inc .
* http : //www.apache.org/licenses/LICENSE-2.0.txt
* /
2013-12-29 04:42:07 +08:00
! function ( e ) { e ( function ( ) { "use strict" ; e . support . transition = function ( ) { var e = function ( ) { var e = document . createElement ( "bootstrap" ) , t = { WebkitTransition : "webkitTransitionEnd" , MozTransition : "transitionend" , OTransition : "oTransitionEnd otransitionend" , transition : "transitionend" } , n ; for ( n in t ) if ( e . style [ n ] !== undefined ) return t [ n ] } ( ) ; return e && { end : e } } ( ) } ) } ( window . jQuery ) , ! function ( e ) { "use strict" ; var t = '[data-dismiss="alert"]' , n = function ( n ) { e ( n ) . on ( "click" , t , this . close ) } ; n . prototype . close = function ( t ) { function s ( ) { i . trigger ( "closed" ) . remove ( ) } var n = e ( this ) , r = n . attr ( "data-target" ) , i ; r || ( r = n . attr ( "href" ) , r = r && r . replace ( /.*(?=#[^\s]*$)/ , "" ) ) , i = e ( r ) , t && t . preventDefault ( ) , i . length || ( i = n . hasClass ( "alert" ) ? n : n . parent ( ) ) , i . trigger ( t = e . Event ( "close" ) ) ; if ( t . isDefaultPrevented ( ) ) return ; i . removeClass ( "in" ) , e . support . transition && i . hasClass ( "fade" ) ? i . on ( e . support . transition . end , s ) : s ( ) } , e . fn . alert = function ( t ) { return this . each ( function ( ) { var r = e ( this ) , i = r . data ( "alert" ) ; i || r . data ( "alert" , i = new n ( this ) ) , typeof t == "string" && i [ t ] . call ( r ) } ) } , e . fn . alert . Constructor = n , e ( function ( ) { e ( "body" ) . on ( "click.alert.data-api" , t , n . prototype . close ) } ) } ( window . jQuery ) , ! function ( e ) { "use strict" ; var t = function ( t , n ) { this . $element = e ( t ) , this . options = e . extend ( { } , e . fn . button . defaults , n ) } ; t . prototype . setState = function ( e ) { var t = "disabled" , n = this . $element , r = n . data ( ) , i = n . is ( "input" ) ? "val" : "html" ; e += "Text" , r . resetText || n . data ( "resetText" , n [ i ] ( ) ) , n [ i ] ( r [ e ] || this . options [ e ] ) , setTimeout ( function ( ) { e == "loadingText" ? n . addClass ( t ) . attr ( t , t ) : n . removeClass ( t ) . removeAttr ( t ) } , 0 ) } , t . prototype . toggle = function ( ) { var e = this . $element . parent ( '[data-toggle="buttons-radio"]' ) ; e && e . find ( ".active" ) . removeClass ( "active" ) , this . $element . toggleClass ( "active" ) } , e . fn . button = function ( n ) { return this . each ( function ( ) { var r = e ( this ) , i = r . data ( "button" ) , s = typeof n == "object" && n ; i || r . data ( "button" , i = new t ( this , s ) ) , n == "toggle" ? i . toggle ( ) : n && i . setState ( n ) } ) } , e . fn . button . defaults = { loadingText : "loading..." } , e . fn . button . Constructor = t , e ( function ( ) { e ( "body" ) . on ( "click.button.data-api" , "[data-toggle^=button]" , function ( t ) { var n = e ( t . target ) ; n . hasClass ( "btn" ) || ( n = n . closest ( ".btn" ) ) , n . button ( "toggle" ) } ) } ) } ( window . jQuery ) , ! function ( e ) { "use strict" ; var t = function ( t , n ) { this . $element = e ( t ) , this . options = n , this . options . slide && this . slide ( this . options . slide ) , this . options . pause == "hover" && this . $element . on ( "mouseenter" , e . proxy ( this . pause , this ) ) . on ( "mouseleave" , e . proxy ( this . cycle , this ) ) } ; t . prototype = { cycle : function ( t ) { return t || ( this . paused = ! 1 ) , this . options . interval && ! this . paused && ( this . interval = setInterval ( e . proxy ( this . next , this ) , this . options . interval ) ) , this } , to : function ( t ) { var n = this . $element . find ( ".item.active" ) , r = n . parent ( ) . children ( ) , i = r . index ( n ) , s = this ; if ( t > r . length - 1 || t < 0 ) return ; return this . sliding ? this . $element . one ( "slid" , function ( ) { s . to ( t ) } ) : i == t ? this . pause ( ) . cycle ( ) : this . slide ( t > i ? "next" : "prev" , e ( r [ t ] ) ) } , pause : function ( t ) { return t || ( this . paused = ! 0 ) , this . $element . find ( ".next, .prev" ) . length && e . support . transition . end && ( this . $element . trigger ( e . support . transition . end ) , this . cycle ( ) ) , clearInterval ( this . interval ) , this . interval = null , this } , next : function ( ) { if ( this . sliding ) return ; return this . slide ( "next" ) } , prev : function ( ) { if ( this . sliding ) return ; return this . slide ( "prev" ) } , slide : function ( t , n ) { var r = this . $element . find ( ".item.active" ) , i = n || r [ t ] ( ) , s = this . interval , o = t == "next" ? "left" : "right" , u = t == "next" ? "first" : "last" , a = this , f = e . Event ( "slide" , { relatedTarget : i [ 0 ] } ) ; this . sliding = ! 0 , s && this . pause ( ) , i = i . length ? i : this . $element . find ( ".item" ) [ u ] ( ) ; if ( i . hasClass ( "active" ) ) return ; if ( e . support . transition && this . $element . hasClass ( "slide" ) ) { this . $element . trigger ( f ) ; if ( f . isDefaultPrevented ( ) ) return ; i . addClass ( t ) , i [ 0 ] . offsetWidth , r . addClass ( o ) , i . addClass ( o ) , this . $element . one ( e . support . transition . end , function ( ) { i . removeClass ( [ t , o ] . join ( " " ) ) . addClass ( "active" ) , r . removeClass ( [ "active" , o ] . join ( " " ) ) , a . sliding = ! 1 , setTimeout ( function ( ) { a . $element . trigger ( "slid" ) } , 0 ) } ) } else { this . $element . trigger ( f ) ; if ( f . isDefaultPrevented ( ) ) return ; r . removeClass ( "active" ) , i . addClass ( "active" ) , this . sliding = ! 1 , this . $element . trigger ( "slid" ) } return s && this . cycle ( ) , this } } , e . fn . carousel =
2013-11-16 06:21:12 +08:00
if ( window . SimplePace ) {
window . SimplePace . add ( 20 ) ;
}