2015-12-08 17:00:18 +00:00
! function ( a ) { "undefined" == typeof a . fn . each2 && a . extend ( a . fn , { each2 : function ( b ) { for ( var c = a ( [ 0 ] ) , d = - 1 , e = this . length ; ++ d < e && ( c . context = c [ 0 ] = this [ d ] ) && b . call ( c [ 0 ] , d , c ) !== ! 1 ; ) ; return this } } ) } ( jQuery ) , function ( a , b ) { "use strict" ; function c ( b ) { var c = a ( document . createTextNode ( "" ) ) ; b . before ( c ) , c . before ( b ) , c . remove ( ) } function d ( a ) { function b ( a ) { return O [ a ] || a } return a . replace ( /[^\u0000-\u007E]/g , b ) } function e ( a , b ) { for ( var c = 0 , d = b . length ; d > c ; c += 1 ) if ( g ( a , b [ c ] ) ) return c ; return - 1 } function f ( ) { var b = a ( N ) ; b . appendTo ( document . body ) ; var c = { width : b . width ( ) - b [ 0 ] . clientWidth , height : b . height ( ) - b [ 0 ] . clientHeight } ; return b . remove ( ) , c } function g ( a , c ) { return a === c ? ! 0 : a === b || c === b ? ! 1 : null === a || null === c ? ! 1 : a . constructor === String ? a + "" == c + "" : c . constructor === String ? c + "" == a + "" : ! 1 } function h ( a , b , c ) { var d , e , f ; if ( null === a || a . length < 1 ) return [ ] ; for ( d = a . split ( b ) , e = 0 , f = d . length ; f > e ; e += 1 ) d [ e ] = c ( d [ e ] ) ; return d } function i ( a ) { return a . outerWidth ( ! 1 ) - a . width ( ) } function j ( c ) { var d = "keyup-change-value" ; c . on ( "keydown" , function ( ) { a . data ( c , d ) === b && a . data ( c , d , c . val ( ) ) } ) , c . on ( "keyup" , function ( ) { var e = a . data ( c , d ) ; e !== b && c . val ( ) !== e && ( a . removeData ( c , d ) , c . trigger ( "keyup-change" ) ) } ) } function k ( c ) { c . on ( "mousemove" , function ( c ) { var d = L ; ( d === b || d . x !== c . pageX || d . y !== c . pageY ) && a ( c . target ) . trigger ( "mousemove-filtered" , c ) } ) } function l ( a , c , d ) { d = d || b ; var e ; return function ( ) { var b = arguments ; window . clearTimeout ( e ) , e = window . setTimeout ( function ( ) { c . apply ( d , b ) } , a ) } } function m ( a , b ) { var c = l ( a , function ( a ) { b . trigger ( "scroll-debounced" , a ) } ) ; b . on ( "scroll" , function ( a ) { e ( a . target , b . get ( ) ) >= 0 && c ( a ) } ) } function n ( a ) { a [ 0 ] !== document . activeElement && window . setTimeout ( function ( ) { var b , c = a [ 0 ] , d = a . val ( ) . length ; a . focus ( ) ; var e = c . offsetWidth > 0 || c . offsetHeight > 0 ; e && c === document . activeElement && ( c . setSelectionRange ? c . setSelectionRange ( d , d ) : c . createTextRange && ( b = c . createTextRange ( ) , b . collapse ( ! 1 ) , b . select ( ) ) ) } , 0 ) } function o ( b ) { b = a ( b ) [ 0 ] ; var c = 0 , d = 0 ; if ( "selectionStart" in b ) c = b . selectionStart , d = b . selectionEnd - c ; else if ( "selection" in document ) { b . focus ( ) ; var e = document . selection . createRange ( ) ; d = document . selection . createRange ( ) . text . length , e . moveStart ( "character" , - b . value . length ) , c = e . text . length - d } return { offset : c , length : d } } function p ( a ) { a . preventDefault ( ) , a . stopPropagation ( ) } function q ( a ) { a . preventDefault ( ) , a . stopImmediatePropagation ( ) } function r ( b ) { if ( ! I ) { var c = b [ 0 ] . currentStyle || window . getComputedStyle ( b [ 0 ] , null ) ; I = a ( document . createElement ( "div" ) ) . css ( { position : "absolute" , left : "-10000px" , top : "-10000px" , display : "none" , fontSize : c . fontSize , fontFamily : c . fontFamily , fontStyle : c . fontStyle , fontWeight : c . fontWeight , letterSpacing : c . letterSpacing , textTransform : c . textTransform , whiteSpace : "nowrap" } ) , I . attr ( "class" , "select2-sizer" ) , a ( document . body ) . append ( I ) } return I . text ( b . val ( ) ) , I . width ( ) } function s ( b , c , d ) { var e , f , g = [ ] ; e = a . trim ( b . attr ( "class" ) ) , e && ( e = "" + e , a ( e . split ( /\s+/ ) ) . each2 ( function ( ) { 0 === this . indexOf ( "select2-" ) && g . push ( this ) } ) ) , e = a . trim ( c . attr ( "class" ) ) , e && ( e = "" + e , a ( e . split ( /\s+/ ) ) . each2 ( function ( ) { 0 !== this . indexOf ( "select2-" ) && ( f = d ( this ) , f && g . push ( f ) ) } ) ) , b . attr ( "class" , g . join ( " " ) ) } function t ( a , b , c , e ) { var f = d ( a . toUpperCase ( ) ) . indexOf ( d ( b . toUpperCase ( ) ) ) , g = b . length ; return 0 > f ? void c . push ( e ( a ) ) : ( c . push ( e ( a . substring ( 0 , f ) ) ) , c . push ( "<span class='select2-match'>" ) , c . push ( e ( a . substring ( f , f + g ) ) ) , c . push ( "</span>" ) , void c . push ( e ( a . substring ( f + g , a . length ) ) ) ) } function u ( a ) { var b = { "\\" : "\" , "&" : "&" , "<" : "<" , ">" : ">" , '"' : """ , "'" : "'" , "/" : "/" } ; return String ( a ) . replace ( /[&<>"'\/\\]/g , function ( a ) { return b [ a ] } ) } function v ( c ) { var d , e = null , f = c . quietMillis || 100 , g = c . url , h = this ; return function ( i ) { window . clearTimeout ( d ) , d = window . setTimeout ( function ( ) { var d = c . data , f = g , j = c . transport || a . fn . select2 . ajaxDefaults . transport , k = { type : c . type || "GET" , cache : c . cache || ! 1 , jsonpCallback : c . jsonpCallback || b , dataType : c . dataType || "json" } , l = a . extend ( { } , a . fn . select2 . ajaxDefaults . params , k ) ; d = d ? d . call ( h , i . term , i . page , i . context ) : null , f = "function" == typeof f ? f . call ( h , i . term , i . page , i . context ) : f , e && "function" == typeof e . abort && e . abort ( ) , c . params && ( a . isFunction ( c . params ) ? a . extend ( l , c . params . call ( h ) ) : a . extend ( l , c . params ) ) , a . extend ( l , { url : f , dataType : c . d
var d = this . findHighlightableChoices ( ) ; this . highlight ( d . index ( c ) ) } else 0 == c . length && this . removeHighlight ( ) } , loadMoreIfNeeded : function ( ) { var a , b = this . results , c = b . find ( "li.select2-more-results" ) , d = this . resultsPage + 1 , e = this , f = this . search . val ( ) , g = this . context ; 0 !== c . length && ( a = c . offset ( ) . top - b . offset ( ) . top - b . height ( ) , a <= this . opts . loadMorePadding && ( c . addClass ( "select2-active" ) , this . opts . query ( { element : this . opts . element , term : f , page : d , context : g , matcher : this . opts . matcher , callback : this . bind ( function ( a ) { e . opened ( ) && ( e . opts . populateResults . call ( this , b , a . results , { term : f , page : d , context : g } ) , e . postprocessResults ( a , ! 1 , ! 1 ) , a . more === ! 0 ? ( c . detach ( ) . appendTo ( b ) . html ( e . opts . escapeMarkup ( z ( e . opts . formatLoadMore , e . opts . element , d + 1 ) ) ) , window . setTimeout ( function ( ) { e . loadMoreIfNeeded ( ) } , 10 ) ) : c . remove ( ) , e . positionDropdown ( ) , e . resultsPage = d , e . context = a . context , this . opts . element . trigger ( { type : "select2-loaded" , items : a } ) ) } ) } ) ) ) } , tokenize : function ( ) { } , updateResults : function ( c ) { function d ( ) { j . removeClass ( "select2-active" ) , m . positionDropdown ( ) , k . find ( ".select2-no-results,.select2-selection-limit,.select2-searching" ) . length ? m . liveRegion . text ( k . text ( ) ) : m . liveRegion . text ( m . opts . formatMatches ( k . find ( '.select2-result-selectable:not(".select2-selected")' ) . length ) ) } function e ( a ) { k . html ( a ) , d ( ) } var f , h , i , j = this . search , k = this . results , l = this . opts , m = this , n = j . val ( ) , o = a . data ( this . container , "select2-last-term" ) ; if ( ( c === ! 0 || ! o || ! g ( n , o ) ) && ( a . data ( this . container , "select2-last-term" , n ) , c === ! 0 || this . showSearchInput !== ! 1 && this . opened ( ) ) ) { i = ++ this . queryCount ; var p = this . getMaximumSelectionSize ( ) ; if ( p >= 1 && ( f = this . data ( ) , a . isArray ( f ) && f . length >= p && y ( l . formatSelectionTooBig , "formatSelectionTooBig" ) ) ) return void e ( "<li class='select2-selection-limit'>" + z ( l . formatSelectionTooBig , l . element , p ) + "</li>" ) ; if ( j . val ( ) . length < l . minimumInputLength ) return e ( y ( l . formatInputTooShort , "formatInputTooShort" ) ? "<li class='select2-no-results'>" + z ( l . formatInputTooShort , l . element , j . val ( ) , l . minimumInputLength ) + "</li>" : "" ) , void ( c && this . showSearch && this . showSearch ( ! 0 ) ) ; if ( l . maximumInputLength && j . val ( ) . length > l . maximumInputLength ) return void e ( y ( l . formatInputTooLong , "formatInputTooLong" ) ? "<li class='select2-no-results'>" + z ( l . formatInputTooLong , l . element , j . val ( ) , l . maximumInputLength ) + "</li>" : "" ) ; l . formatSearching && 0 === this . findHighlightableChoices ( ) . length && e ( "<li class='select2-searching'>" + z ( l . formatSearching , l . element ) + "</li>" ) , j . addClass ( "select2-active" ) , this . removeHighlight ( ) , h = this . tokenize ( ) , h != b && null != h && j . val ( h ) , this . resultsPage = 1 , l . query ( { element : l . element , term : j . val ( ) , page : this . resultsPage , context : null , matcher : l . matcher , callback : this . bind ( function ( f ) { var h ; if ( i == this . queryCount ) { if ( ! this . opened ( ) ) return void this . search . removeClass ( "select2-active" ) ; if ( f . hasError !== b && y ( l . formatAjaxError , "formatAjaxError" ) ) return void e ( "<li class='select2-ajax-error'>" + z ( l . formatAjaxError , l . element , f . jqXHR , f . textStatus , f . errorThrown ) + "</li>" ) ; if ( this . context = f . context === b ? null : f . context , this . opts . createSearchChoice && "" !== j . val ( ) && ( h = this . opts . createSearchChoice . call ( m , j . val ( ) , f . results ) , h !== b && null !== h && m . id ( h ) !== b && null !== m . id ( h ) && 0 === a ( f . results ) . filter ( function ( ) { return g ( m . id ( this ) , m . id ( h ) ) } ) . length && this . opts . createSearchChoicePosition ( f . results , h ) ) , 0 === f . results . length && y ( l . formatNoMatches , "formatNoMatches" ) ) return e ( "<li class='select2-no-results'>" + z ( l . formatNoMatches , l . element , j . val ( ) ) + "</li>" ) , void ( this . showSearch && this . showSearch ( j . val ( ) ) ) ; k . empty ( ) , m . opts . populateResults . call ( this , k , f . results , { term : j . val ( ) , page : this . resultsPage , context : null } ) , f . more === ! 0 && y ( l . formatLoadMore , "formatLoadMore" ) && ( k . append ( "<li class='select2-more-results'>" + l . escapeMarkup ( z ( l . formatLoadMore , l . element , this . resultsPage ) ) + "</li>" ) , window . setTimeout ( function ( ) { m . loadMoreIfNeeded ( ) } , 10 ) ) , this . postprocessResults ( f , c ) , d ( ) , this . opts . element . trigger ( { type : "select2-loaded" , items : f } ) } } ) } ) } } , cancel : function ( ) { this . close ( ) } , blur : function ( ) { this . opts . selectOnBlur && this . selectHighlighted ( { noFocus : ! 0 } ) , this . close ( ) , this . container . removeClass ( "select2-container-active" ) , this . search [ 0 ] === document . activeElement && this . search . blur ( ) , this .
return 1 === a ? "One result is available, press enter to select it." : a + " results are available, use up and down arrow keys to navigate." } , formatNoMatches : function ( ) { return "No matches found" } , formatAjaxError : function ( a , b , c ) { return "Loading failed" } , formatInputTooShort : function ( a , b ) { var c = b - a . length ; return "Please enter " + c + " or more character" + ( 1 == c ? "" : "s" ) } , formatInputTooLong : function ( a , b ) { var c = a . length - b ; return "Please delete " + c + " character" + ( 1 == c ? "" : "s" ) } , formatSelectionTooBig : function ( a ) { return "You can only select " + a + " item" + ( 1 == a ? "" : "s" ) } , formatLoadMore : function ( a ) { return "Loading more results…" } , formatSearching : function ( ) { return "Searching…" } } , a . extend ( a . fn . select2 . defaults , a . fn . select2 . locales . en ) , a . fn . select2 . ajaxDefaults = { transport : a . ajax , params : { type : "GET" , cache : ! 1 , dataType : "json" } } , window . Select2 = { query : { ajax : v , local : w , tags : x } , util : { debounce : l , markMatch : t , escapeMarkup : u , stripDiacritics : d } , "class" : { "abstract" : E , single : F , multi : G } } } } ( jQuery ) ;