2014-03-19 20:01:25 +01:00
/ *
2014-03-19 18:46:26 +01:00
2014-03-19 20:01:25 +01:00
( c ) 2009 - 2013 Michael Leibman
michael { dot } leibman { at } gmail { dot } com
http : //github.com/mleibman/slickgrid
2014-03-19 18:46:26 +01:00
2014-03-19 20:01:25 +01:00
Distributed under MIT license .
All rights reserved .
2014-03-19 18:46:26 +01:00
2014-03-19 20:01:25 +01:00
SlickGrid v2 . 2
2014-03-19 18:46:26 +01:00
2014-03-19 20:01:25 +01:00
NOTES :
Cell / row DOM manipulations are done directly bypassing jQuery ' s DOM manipulation methods .
This increases the speed dramatically , but can only be done safely because there are no event handlers
or data associated with any cell / row DOM nodes . Cell editors must make sure they implement . destroy ( )
and do proper cleanup .
2014-03-19 18:46:26 +01:00
* /
2014-03-19 20:01:25 +01:00
( function ( a , c ) { function b ( a ) { return k . isWindow ( a ) ? a : 9 === a . nodeType ? a . defaultView || a . parentWindow : ! 1 } function e ( a ) { if ( ! sb [ a ] ) { var c = u . body , d = k ( "<" + a + ">" ) . appendTo ( c ) , b = d . css ( "display" ) ; d . remove ( ) ; if ( "none" === b || "" === b ) la || ( la = u . createElement ( "iframe" ) , la . frameBorder = la . width = la . height = 0 ) , c . appendChild ( la ) , Pa && la . createElement || ( Pa = ( la . contentWindow || la . contentDocument ) . document , Pa . write ( ( "CSS1Compat" === u . compatMode ? "<!doctype html>" : "" ) + "<html><body>" ) , Pa . close ( ) ) , d = Pa . createElement ( a ) , Pa . body . appendChild ( d ) ,
b = k . css ( d , "display" ) , c . removeChild ( la ) ; sb [ a ] = b } return sb [ a ] } function g ( a , c ) { var d = { } ; k . each ( Ia . concat . apply ( [ ] , Ia . slice ( 0 , c ) ) , function ( ) { d [ this ] = a } ) ; return d } function f ( ) { xa = c } function h ( ) { setTimeout ( f , 0 ) ; return xa = k . now ( ) } function d ( ) { try { return new a . XMLHttpRequest } catch ( s ) { } } function l ( a , c , d , b ) { if ( k . isArray ( c ) ) k . each ( c , function ( c , e ) { d || tb . test ( a ) ? b ( a , e ) : l ( a + "[" + ( "object" == typeof e || k . isArray ( e ) ? c : "" ) + "]" , e , d , b ) } ) ; else if ( d || null == c || "object" != typeof c ) b ( a , c ) ; else for ( var e in c ) l ( a + "[" + e + "]" , c [ e ] ,
d , b ) } function m ( a , d ) { var b , e , g = k . ajaxSettings . flatOptions || { } ; for ( b in d ) d [ b ] !== c && ( ( g [ b ] ? a : e || ( e = { } ) ) [ b ] = d [ b ] ) ; e && k . extend ( ! 0 , a , e ) } function q ( a , d , b , e , g , f ) { g = g || d . dataTypes [ 0 ] ; f = f || { } ; f [ g ] = ! 0 ; g = a [ g ] ; for ( var k = 0 , h = g ? g . length : 0 , l = a === Qa , m ; k < h && ( l || ! m ) ; k ++ ) m = g [ k ] ( d , b , e ) , "string" == typeof m && ( ! l || f [ m ] ? m = c : ( d . dataTypes . unshift ( m ) , m = q ( a , d , b , e , m , f ) ) ) ; ! l && m || f [ "*" ] || ( m = q ( a , d , b , e , "*" , f ) ) ; return m } function r ( a ) { return function ( c , d ) { "string" != typeof c && ( d = c , c = "*" ) ; if ( k . isFunction ( d ) ) for ( var b = c . toLowerCase ( ) . split ( Pb ) ,
e = 0 , g = b . length , f , h ; e < g ; e ++ ) f = b [ e ] , ( h = /^\+/ . test ( f ) ) && ( f = f . substr ( 1 ) || "*" ) , f = a [ f ] = a [ f ] || [ ] , f [ h ? "unshift" : "push" ] ( d ) } } function n ( a , c , d ) { var b = "width" === c ? a . offsetWidth : a . offsetHeight , e = "width" === c ? Qb : Rb ; if ( 0 < b ) return "border" !== d && k . each ( e , function ( ) { d || ( b -= parseFloat ( k . css ( a , "padding" + this ) ) || 0 ) ; "margin" === d ? b += parseFloat ( k . css ( a , d + this ) ) || 0 : b -= parseFloat ( k . css ( a , "border" + this + "Width" ) ) || 0 } ) , b + "px" ; b = ya ( a , c , c ) ; if ( 0 > b || null == b ) b = a . style [ c ] || 0 ; b = parseFloat ( b ) || 0 ; d && k . each ( e , function ( ) { b += parseFloat ( k . css ( a ,
"padding" + this ) ) || 0 ; "padding" !== d && ( b += parseFloat ( k . css ( a , "border" + this + "Width" ) ) || 0 ) ; "margin" === d && ( b += parseFloat ( k . css ( a , d + this ) ) || 0 ) } ) ; return b + "px" } function t ( a , c ) { c . src ? k . ajax ( { url : c . src , async : ! 1 , dataType : "script" } ) : k . globalEval ( ( c . text || c . textContent || c . innerHTML || "" ) . replace ( Sb , "/*$0*/" ) ) ; c . parentNode && c . parentNode . removeChild ( c ) } function p ( a ) { var c = ( a . nodeName || "" ) . toLowerCase ( ) ; "input" === c ? x ( a ) : "script" !== c && "undefined" != typeof a . getElementsByTagName && k . grep ( a . getElementsByTagName ( "input" ) ,
x ) } function x ( a ) { if ( "checkbox" === a . type || "radio" === a . type ) a . defaultChecked = a . checked } function w ( a ) { return "undefined" != typeof a . getElementsByTagName ? a . getElementsByTagName ( "*" ) : "undefined" != typeof a . querySelectorAll ? a . querySelectorAll ( "*" ) : [ ] } function B ( a , c ) { var d ; if ( 1 === c . nodeType ) { c . clearAttributes && c . clearAttributes ( ) ; c . mergeAttributes && c . mergeAttributes ( a ) ; d = c . nodeName . toLowerCase ( ) ; if ( "object" === d ) c . outerHTML = a . outerHTML ; else if ( "input" !== d || "checkbox" !== a . type && "radio" !== a . type ) if ( "option" ===
d ) c . selected = a . defaultSelected ; else { if ( "input" === d || "textarea" === d ) c . defaultValue = a . defaultValue } else a . checked && ( c . defaultChecked = c . checked = a . checked ) , c . value !== a . value && ( c . value = a . value ) ; c . removeAttribute ( k . expando ) } } function A ( a , c ) { if ( 1 === c . nodeType && k . hasData ( a ) ) { var d , b , e ; b = k . _data ( a ) ; var g = k . _data ( c , b ) , f = b . events ; if ( f ) for ( d in delete g . handle , g . events = { } , f ) for ( b = 0 , e = f [ d ] . length ; b < e ; b ++ ) k . event . add ( c , d + ( f [ d ] [ b ] . namespace ? "." : "" ) + f [ d ] [ b ] . namespace , f [ d ] [ b ] , f [ d ] [ b ] . data ) ; g . data && ( g . data = k . extend ( { } ,
g . data ) ) } } function y ( a , c ) { return k . nodeName ( a , "table" ) ? a . getElementsByTagName ( "tbody" ) [ 0 ] || a . appendChild ( a . ownerDocument . createElement ( "tbody" ) ) : a } function z ( a ) { var c = Tb . split ( " " ) ; a = a . createDocumentFragment ( ) ; if ( a . createElement ) for ( ; c . length ; ) a . createElement ( c . pop ( ) ) ; return a } function v ( a , c , d ) { c = c || 0 ; if ( k . isFunction ( c ) ) return k . grep ( a , function ( a , s ) { return ! ! c . call ( a , s , a ) === d } ) ; if ( c . nodeType ) return k . grep ( a , function ( a , s ) { return a === c === d } ) ; if ( "string" == typeof c ) { var b = k . grep ( a , function ( a ) { return 1 ===
a . nodeType } ) ; if ( mc . test ( c ) ) return k . filter ( c , b , ! d ) ; c = k . filter ( c , b ) } return k . grep ( a , function ( a , s ) { return 0 <= k . inArray ( a , c ) === d } ) } function C ( a ) { return ! a || ! a . parentNode || 11 === a . parentNode . nodeType } function L ( ) { return ! 0 } function P ( ) { return ! 1 } function S ( a , c , d ) { var b = c + "defer" , e = c + "queue" , g = c + "mark" , f = k . _data ( a , b ) ; ! f || "queue" !== d && k . _data ( a , e ) || "mark" !== d && k . _data ( a , g ) || setTimeout ( function ( ) { k . _data ( a , e ) || k . _data ( a , g ) || ( k . removeData ( a , b , ! 0 ) , f . fire ( ) ) } , 0 ) } function ea ( a ) { for ( var c in a ) if ( ( "data" !== c || ! k . isEmptyObject ( a [ c ] ) ) &&
"toJSON" !== c ) return ! 1 ; return ! 0 } function za ( a , d , b ) { if ( b === c && 1 === a . nodeType ) if ( b = "data-" + d . replace ( M , "-$1" ) . toLowerCase ( ) , b = a . getAttribute ( b ) , "string" == typeof b ) { try { b = "true" === b ? ! 0 : "false" === b ? ! 1 : "null" === b ? null : k . isNumeric ( b ) ? parseFloat ( b ) : I . test ( b ) ? k . parseJSON ( b ) : b } catch ( e ) { } k . data ( a , d , b ) } else b = c ; return b } function hb ( a ) { var c = T [ a ] = { } , d , b ; a = a . split ( /\s+/ ) ; d = 0 ; for ( b = a . length ; d < b ; d ++ ) c [ a [ d ] ] = ! 0 ; return c } var u = a . document , Da = a . navigator , O = a . location , k = function ( ) { function d ( ) { if ( ! b . isReady ) { try { u . documentElement . doScroll ( "left" ) } catch ( a ) { setTimeout ( d ,
1 ) ; return } b . ready ( ) } } var b = function ( a , c ) { return new b . fn . init ( a , c , f ) } , e = a . jQuery , g = a . $ , f , k = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/ , h = /\S/ , l = /^\s+/ , m = /\s+$/ , r = /\d/ , n = /^<(\w+)\s*\/?>(?:<\/\1>)?$/ , t = /^[\],:{}\s]*$/ , p = /\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g , q = /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g , x = /(?:^|:|,)(?:\s*\[)+/g , w = /(webkit)[ \/]([\w.]+)/ , B = /(opera)(?:.*version)?[ \/]([\w.]+)/ , v = /(msie) ([\w.]+)/ , A = /(mozilla)(?:.*? rv:([\w.]+))?/ , z = /-([a-z]|[0-9])/ig , y = /^-ms-/ , C =
function ( a , c ) { return ( c + "" ) . toUpperCase ( ) } , N = Da . userAgent , W , aa , ub = Object . prototype . toString , Ea = Object . prototype . hasOwnProperty , ra = Array . prototype . push , Ja = Array . prototype . slice , $a = String . prototype . trim , ab = Array . prototype . indexOf , L = { } ; b . fn = b . prototype = { constructor : b , init : function ( a , d , s ) { var e , g ; if ( ! a ) return this ; if ( a . nodeType ) return this . context = this [ 0 ] = a , this . length = 1 , this ; if ( "body" === a && ! d && u . body ) return this . context = u , this [ 0 ] = u . body , this . selector = a , this . length = 1 , this ; if ( "string" == typeof a ) { "<" !==
a . charAt ( 0 ) || ">" !== a . charAt ( a . length - 1 ) || 3 > a . length ? e = k . exec ( a ) : e = [ null , a , null ] ; if ( e && ( e [ 1 ] || ! d ) ) { if ( e [ 1 ] ) return g = ( d = d instanceof b ? d [ 0 ] : d ) ? d . ownerDocument || d : u , ( s = n . exec ( a ) ) ? b . isPlainObject ( d ) ? ( a = [ u . createElement ( s [ 1 ] ) ] , b . fn . attr . call ( a , d , ! 0 ) ) : a = [ g . createElement ( s [ 1 ] ) ] : ( s = b . buildFragment ( [ e [ 1 ] ] , [ g ] ) , a = ( s . cacheable ? b . clone ( s . fragment ) : s . fragment ) . childNodes ) , b . merge ( this , a ) ; if ( ( d = u . getElementById ( e [ 2 ] ) ) && d . parentNode ) { if ( d . id !== e [ 2 ] ) return s . find ( a ) ; this . length = 1 ; this [ 0 ] = d } this . context = u ; this . selector =
a ; return this } return ! d || d . jquery ? ( d || s ) . find ( a ) : this . constructor ( d ) . find ( a ) } if ( b . isFunction ( a ) ) return s . ready ( a ) ; a . selector !== c && ( this . selector = a . selector , this . context = a . context ) ; return b . makeArray ( a , this ) } , selector : "" , jquery : "1.7" , length : 0 , size : function ( ) { return this . length } , toArray : function ( ) { return Ja . call ( this , 0 ) } , get : function ( a ) { return null == a ? this . toArray ( ) : 0 > a ? this [ this . length + a ] : this [ a ] } , pushStack : function ( a , c , d ) { var s = this . constructor ( ) ; b . isArray ( a ) ? ra . apply ( s , a ) : b . merge ( s , a ) ; s . prevObject =
this ; s . context = this . context ; "find" === c ? s . selector = this . selector + ( this . selector ? " " : "" ) + d : c && ( s . selector = this . selector + "." + c + "(" + d + ")" ) ; return s } , each : function ( a , c ) { return b . each ( this , a , c ) } , ready : function ( a ) { b . bindReady ( ) ; W . add ( a ) ; return this } , eq : function ( a ) { return - 1 === a ? this . slice ( a ) : this . slice ( a , + a + 1 ) } , first : function ( ) { return this . eq ( 0 ) } , last : function ( ) { return this . eq ( - 1 ) } , slice : function ( ) { return this . pushStack ( Ja . apply ( this , arguments ) , "slice" , Ja . call ( arguments ) . join ( "," ) ) } , map : function ( a ) { return this . pushStack ( b . map ( this ,
function ( c , d ) { return a . call ( c , d , c ) } ) ) } , end : function ( ) { return this . prevObject || this . constructor ( null ) } , push : ra , sort : [ ] . sort , splice : [ ] . splice } ; b . fn . init . prototype = b . fn ; b . extend = b . fn . extend = function ( ) { var a , d , s , e , g , f , k = arguments [ 0 ] || { } , h = 1 , l = arguments . length , Y = ! 1 ; "boolean" == typeof k && ( Y = k , k = arguments [ 1 ] || { } , h = 2 ) ; "object" != typeof k && ! b . isFunction ( k ) && ( k = { } ) ; for ( l === h && ( k = this , -- h ) ; h < l ; h ++ ) if ( null != ( a = arguments [ h ] ) ) for ( d in a ) s = k [ d ] , e = a [ d ] , k !== e && ( Y && e && ( b . isPlainObject ( e ) || ( g = b . isArray ( e ) ) ) ? ( g ? ( g = ! 1 ,
f = s && b . isArray ( s ) ? s : [ ] ) : f = s && b . isPlainObject ( s ) ? s : { } , k [ d ] = b . extend ( Y , f , e ) ) : e !== c && ( k [ d ] = e ) ) ; return k } ; b . extend ( { noConflict : function ( c ) { a . $ === b && ( a . $ = g ) ; c && a . jQuery === b && ( a . jQuery = e ) ; return b } , isReady : ! 1 , readyWait : 1 , holdReady : function ( a ) { a ? b . readyWait ++ : b . ready ( ! 0 ) } , ready : function ( a ) { if ( ! 0 === a && ! -- b . readyWait || ! 0 !== a && ! b . isReady ) { if ( ! u . body ) return setTimeout ( b . ready , 1 ) ; b . isReady = ! 0 ; ! 0 !== a && 0 < -- b . readyWait || ( W . fireWith ( u , [ b ] ) , b . fn . trigger && b ( u ) . trigger ( "ready" ) . unbind ( "ready" ) ) } } , bindReady : function ( ) { if ( ! W ) { W =
b . Callbacks ( "once memory" ) ; if ( "complete" === u . readyState ) return setTimeout ( b . ready , 1 ) ; if ( u . addEventListener ) u . addEventListener ( "DOMContentLoaded" , aa , ! 1 ) , a . addEventListener ( "load" , b . ready , ! 1 ) ; else if ( u . attachEvent ) { u . attachEvent ( "onreadystatechange" , aa ) ; a . attachEvent ( "onload" , b . ready ) ; var c = ! 1 ; try { c = null == a . frameElement } catch ( e ) { } u . documentElement . doScroll && c && d ( ) } } } , isFunction : function ( a ) { return "function" === b . type ( a ) } , isArray : Array . isArray || function ( a ) { return "array" === b . type ( a ) } , isWindow : function ( a ) { return a &&
"object" == typeof a && "setInterval" in a } , isNumeric : function ( a ) { return null != a && r . test ( a ) && ! isNaN ( a ) } , type : function ( a ) { return null == a ? String ( a ) : L [ ub . call ( a ) ] || "object" } , isPlainObject : function ( a ) { if ( ! a || "object" !== b . type ( a ) || a . nodeType || b . isWindow ( a ) ) return ! 1 ; try { if ( a . constructor && ! Ea . call ( a , "constructor" ) && ! Ea . call ( a . constructor . prototype , "isPrototypeOf" ) ) return ! 1 } catch ( d ) { return ! 1 } for ( var s in a ) ; return s === c || Ea . call ( a , s ) } , isEmptyObject : function ( a ) { for ( var c in a ) return ! 1 ; return ! 0 } , error : function ( a ) { throw a ;
} , parseJSON : function ( c ) { if ( "string" != typeof c || ! c ) return null ; c = b . trim ( c ) ; if ( a . JSON && a . JSON . parse ) return a . JSON . parse ( c ) ; if ( t . test ( c . replace ( p , "@" ) . replace ( q , "]" ) . replace ( x , "" ) ) ) return ( new Function ( "return " + c ) ) ( ) ; b . error ( "Invalid JSON: " + c ) } , parseXML : function ( d ) { var s , e ; try { a . DOMParser ? ( e = new DOMParser , s = e . parseFromString ( d , "text/xml" ) ) : ( s = new ActiveXObject ( "Microsoft.XMLDOM" ) , s . async = "false" , s . loadXML ( d ) ) } catch ( g ) { s = c } s && s . documentElement && ! s . getElementsByTagName ( "parsererror" ) . length || b . error ( "Invalid XML: " +
d ) ; return s } , noop : function ( ) { } , globalEval : function ( c ) { c && h . test ( c ) && ( a . execScript || function ( c ) { a . eval . call ( a , c ) } ) ( c ) } , camelCase : function ( a ) { return a . replace ( y , "ms-" ) . replace ( z , C ) } , nodeName : function ( a , c ) { return a . nodeName && a . nodeName . toUpperCase ( ) === c . toUpperCase ( ) } , each : function ( a , d , s ) { var e , g = 0 , f = a . length , k = f === c || b . isFunction ( a ) ; if ( s ) if ( k ) for ( e in a ) { if ( ! 1 === d . apply ( a [ e ] , s ) ) break } else for ( ; g < f && ! 1 !== d . apply ( a [ g ++ ] , s ) ; ) ; else if ( k ) for ( e in a ) { if ( ! 1 === d . call ( a [ e ] , e , a [ e ] ) ) break } else for ( ; g < f && ! 1 !==
d . call ( a [ g ] , g , a [ g ++ ] ) ; ) ; return a } , trim : $a ? function ( a ) { return null == a ? "" : $a . call ( a ) } : function ( a ) { return null == a ? "" : ( a + "" ) . replace ( l , "" ) . replace ( m , "" ) } , makeArray : function ( a , c ) { var d = c || [ ] ; if ( null != a ) { var s = b . type ( a ) ; null == a . length || "string" === s || "function" === s || "regexp" === s || b . isWindow ( a ) ? ra . call ( d , a ) : b . merge ( d , a ) } return d } , inArray : function ( a , c , d ) { var s ; if ( c ) { if ( ab ) return ab . call ( c , a , d ) ; s = c . length ; for ( d = d ? 0 > d ? Math . max ( 0 , s + d ) : d : 0 ; d < s ; d ++ ) if ( d in c && c [ d ] === a ) return d } return - 1 } , merge : function ( a , d ) { var s =
a . length , b = 0 ; if ( "number" == typeof d . length ) for ( var e = d . length ; b < e ; b ++ ) a [ s ++ ] = d [ b ] ; else for ( ; d [ b ] !== c ; ) a [ s ++ ] = d [ b ++ ] ; a . length = s ; return a } , grep : function ( a , c , d ) { var s = [ ] , b ; d = ! ! d ; for ( var e = 0 , g = a . length ; e < g ; e ++ ) b = ! ! c ( a [ e ] , e ) , d !== b && s . push ( a [ e ] ) ; return s } , map : function ( a , d , s ) { var e , g , f = [ ] , k = 0 , h = a . length ; if ( a instanceof b || h !== c && "number" == typeof h && ( 0 < h && a [ 0 ] && a [ h - 1 ] || 0 === h || b . isArray ( a ) ) ) for ( ; k < h ; k ++ ) e = d ( a [ k ] , k , s ) , null != e && ( f [ f . length ] = e ) ; else for ( g in a ) e = d ( a [ g ] , g , s ) , null != e && ( f [ f . length ] = e ) ; return f . concat . apply ( [ ] ,
f ) } , guid : 1 , proxy : function ( a , d ) { if ( "string" == typeof d ) { var s = a [ d ] ; d = a ; a = s } if ( ! b . isFunction ( a ) ) return c ; var e = Ja . call ( arguments , 2 ) , s = function ( ) { return a . apply ( d , e . concat ( Ja . call ( arguments ) ) ) } ; s . guid = a . guid = a . guid || s . guid || b . guid ++ ; return s } , access : function ( a , d , s , e , g , f ) { var k = a . length ; if ( "object" == typeof d ) { for ( var h in d ) b . access ( a , h , d [ h ] , e , g , s ) ; return a } if ( s !== c ) { e = ! f && e && b . isFunction ( s ) ; for ( h = 0 ; h < k ; h ++ ) g ( a [ h ] , d , e ? s . call ( a [ h ] , h , g ( a [ h ] , d ) ) : s , f ) ; return a } return k ? g ( a [ 0 ] , d ) : c } , now : function ( ) { return ( new Date ) . getTime ( ) } ,
uaMatch : function ( a ) { a = a . toLowerCase ( ) ; a = w . exec ( a ) || B . exec ( a ) || v . exec ( a ) || 0 > a . indexOf ( "compatible" ) && A . exec ( a ) || [ ] ; return { browser : a [ 1 ] || "" , version : a [ 2 ] || "0" } } , sub : function ( ) { function a ( d , c ) { return new a . fn . init ( d , c ) } b . extend ( ! 0 , a , this ) ; a . superclass = this ; a . fn = a . prototype = this ( ) ; a . fn . constructor = a ; a . sub = this . sub ; a . fn . init = function ( c , s ) { s && s instanceof b && ! ( s instanceof a ) && ( s = a ( s ) ) ; return b . fn . init . call ( this , c , s , d ) } ; a . fn . init . prototype = a . fn ; var d = a ( u ) ; return a } , browser : { } } ) ; b . each ( "Boolean Number String Function Array Date RegExp Object" . split ( " " ) ,
function ( a , d ) { L [ "[object " + d + "]" ] = d . toLowerCase ( ) } ) ; N = b . uaMatch ( N ) ; N . browser && ( b . browser [ N . browser ] = ! 0 , b . browser . version = N . version ) ; b . browser . webkit && ( b . browser . safari = ! 0 ) ; h . test ( "\u00a0" ) && ( l = /^[\s\xA0]+/ , m = /[\s\xA0]+$/ ) ; f = b ( u ) ; u . addEventListener ? aa = function ( ) { u . removeEventListener ( "DOMContentLoaded" , aa , ! 1 ) ; b . ready ( ) } : u . attachEvent && ( aa = function ( ) { "complete" === u . readyState && ( u . detachEvent ( "onreadystatechange" , aa ) , b . ready ( ) ) } ) ; "function" == typeof define && define . amd && define . amd . jQuery && define ( "jquery" ,
[ ] , function ( ) { return b } ) ; return b } ( ) , T = { } ; k . Callbacks = function ( a ) { a = a ? T [ a ] || hb ( a ) : { } ; var d = [ ] , b = [ ] , e , g , f , h , l , m = function ( c ) { var b , e , g , f ; b = 0 ; for ( e = c . length ; b < e ; b ++ ) g = c [ b ] , f = k . type ( g ) , "array" === f ? m ( g ) : "function" !== f || a . unique && n . has ( g ) || d . push ( g ) } , r = function ( c , k ) { k = k || [ ] ; e = ! a . memory || [ c , k ] ; g = ! 0 ; l = f || 0 ; f = 0 ; for ( h = d . length ; d && l < h ; l ++ ) if ( ! 1 === d [ l ] . apply ( c , k ) && a . stopOnFalse ) { e = ! 0 ; break } g = ! 1 ; d && ( a . once ? ! 0 === e ? n . disable ( ) : d = [ ] : b && b . length && ( e = b . shift ( ) , n . fireWith ( e [ 0 ] , e [ 1 ] ) ) ) } , n = { add : function ( ) { if ( d ) { var a =
d . length ; m ( arguments ) ; g ? h = d . length : e && ! 0 !== e && ( f = a , r ( e [ 0 ] , e [ 1 ] ) ) } return this } , remove : function ( ) { if ( d ) for ( var c = arguments , b = 0 , e = c . length ; b < e ; b ++ ) for ( var f = 0 ; f < d . length && ( c [ b ] !== d [ f ] || ( g && f <= h && ( h -- , f <= l && l -- ) , d . splice ( f -- , 1 ) , ! a . unique ) ) ; f ++ ) ; return this } , has : function ( a ) { if ( d ) for ( var c = 0 , s = d . length ; c < s ; c ++ ) if ( a === d [ c ] ) return ! 0 ; return ! 1 } , empty : function ( ) { d = [ ] ; return this } , disable : function ( ) { d = b = e = c ; return this } , disabled : function ( ) { return ! d } , lock : function ( ) { b = c ; e && ! 0 !== e || n . disable ( ) ; return this } , locked : function ( ) { return ! b } ,
fireWith : function ( d , c ) { b && ( g ? a . once || b . push ( [ d , c ] ) : ( ! a . once || ! e ) && r ( d , c ) ) ; return this } , fire : function ( ) { n . fireWith ( this , arguments ) ; return this } , fired : function ( ) { return ! ! e } } ; return n } ; var Ba = [ ] . slice ; k . extend ( { Deferred : function ( a ) { var d = k . Callbacks ( "once memory" ) , c = k . Callbacks ( "once memory" ) , b = k . Callbacks ( "memory" ) , e = "pending" , g = { resolve : d , reject : c , notify : b } , f = { done : d . add , fail : c . add , progress : b . add , state : function ( ) { return e } , isResolved : d . fired , isRejected : c . fired , then : function ( a , d , c ) { h . done ( a ) . fail ( d ) . progress ( c ) ;
return this } , always : function ( ) { return h . done . apply ( h , arguments ) . fail . apply ( h , arguments ) } , pipe : function ( a , d , c ) { return k . Deferred ( function ( b ) { k . each ( { done : [ a , "resolve" ] , fail : [ d , "reject" ] , progress : [ c , "notify" ] } , function ( a , d ) { var c = d [ 0 ] , s = d [ 1 ] , e ; k . isFunction ( c ) ? h [ a ] ( function ( ) { ( e = c . apply ( this , arguments ) ) && k . isFunction ( e . promise ) ? e . promise ( ) . then ( b . resolve , b . reject , b . notify ) : b [ s + "With" ] ( this === h ? b : this , [ e ] ) } ) : h [ a ] ( b [ s ] ) } ) } ) . promise ( ) } , promise : function ( a ) { if ( null == a ) a = f ; else for ( var d in f ) a [ d ] = f [ d ] ; return a } } ,
h = f . promise ( { } ) , l ; for ( l in g ) h [ l ] = g [ l ] . fire , h [ l + "With" ] = g [ l ] . fireWith ; h . done ( function ( ) { e = "resolved" } , c . disable , b . lock ) . fail ( function ( ) { e = "rejected" } , d . disable , b . lock ) ; a && a . call ( h , h ) ; return h } , when : function ( a ) { function d ( a ) { return function ( d ) { f [ a ] = 1 < arguments . length ? Ba . call ( arguments , 0 ) : d ; l . notifyWith ( m , f ) } } function c ( a ) { return function ( d ) { b [ a ] = 1 < arguments . length ? Ba . call ( arguments , 0 ) : d ; -- h || l . resolveWith ( l , b ) } } var b = Ba . call ( arguments , 0 ) , e = 0 , g = b . length , f = Array ( g ) , h = g , l = 1 >= g && a && k . isFunction ( a . promise ) ?
a : k . Deferred ( ) , m = l . promise ( ) ; if ( 1 < g ) { for ( ; e < g ; e ++ ) b [ e ] && b [ e ] . promise && k . isFunction ( b [ e ] . promise ) ? b [ e ] . promise ( ) . then ( c ( e ) , l . reject , d ( e ) ) : -- h ; h || l . resolveWith ( l , b ) } else l !== a && l . resolveWith ( l , g ? [ a ] : [ ] ) ; return m } } ) ; k . support = function ( ) { var a = u . createElement ( "div" ) , d = u . documentElement , c , b , e , g , f , h , l , m , n ; a . setAttribute ( "className" , "t" ) ; a . innerHTML = " <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/><nav></nav>" ; c = a . getElementsByTagName ( "*" ) ; b = a . getElementsByTagName ( "a" ) [ 0 ] ;
if ( ! c || ! c . length || ! b ) return { } ; e = u . createElement ( "select" ) ; g = e . appendChild ( u . createElement ( "option" ) ) ; c = a . getElementsByTagName ( "input" ) [ 0 ] ; h = { leadingWhitespace : 3 === a . firstChild . nodeType , tbody : ! a . getElementsByTagName ( "tbody" ) . length , htmlSerialize : ! ! a . getElementsByTagName ( "link" ) . length , style : /top/ . test ( b . getAttribute ( "style" ) ) , hrefNormalized : "/a" === b . getAttribute ( "href" ) , opacity : /^0.55/ . test ( b . style . opacity ) , cssFloat : ! ! b . style . cssFloat , unknownElems : ! ! a . getElementsByTagName ( "nav" ) . length , checkOn : "on" ===
c . value , optSelected : g . selected , getSetAttribute : "t" !== a . className , enctype : ! ! u . createElement ( "form" ) . enctype , submitBubbles : ! 0 , changeBubbles : ! 0 , focusinBubbles : ! 1 , deleteExpando : ! 0 , noCloneEvent : ! 0 , inlineBlockNeedsLayout : ! 1 , shrinkWrapBlocks : ! 1 , reliableMarginRight : ! 0 } ; c . checked = ! 0 ; h . noCloneChecked = c . cloneNode ( ! 0 ) . checked ; e . disabled = ! 0 ; h . optDisabled = ! g . disabled ; try { delete a . test } catch ( r ) { h . deleteExpando = ! 1 } ! a . addEventListener && a . attachEvent && a . fireEvent && ( a . attachEvent ( "onclick" , function ( ) { h . noCloneEvent =
! 1 } ) , a . cloneNode ( ! 0 ) . fireEvent ( "onclick" ) ) ; c = u . createElement ( "input" ) ; c . value = "t" ; c . setAttribute ( "type" , "radio" ) ; h . radioValue = "t" === c . value ; c . setAttribute ( "checked" , "checked" ) ; a . appendChild ( c ) ; b = u . createDocumentFragment ( ) ; b . appendChild ( a . lastChild ) ; h . checkClone = b . cloneNode ( ! 0 ) . cloneNode ( ! 0 ) . lastChild . checked ; a . innerHTML = "" ; a . style . width = a . style . paddingLeft = "1px" ; l = u . getElementsByTagName ( "body" ) [ 0 ] ; m = u . createElement ( l ? "div" : "body" ) ; b = { visibility : "hidden" , width : 0 , height : 0 , border : 0 , margin : 0 , background : "none" } ;
l && k . extend ( b , { position : "absolute" , left : "-999px" , top : "-999px" } ) ; for ( n in b ) m . style [ n ] = b [ n ] ; m . appendChild ( a ) ; d = l || d ; d . insertBefore ( m , d . firstChild ) ; h . appendChecked = c . checked ; h . boxModel = 2 === a . offsetWidth ; "zoom" in a . style && ( a . style . display = "inline" , a . style . zoom = 1 , h . inlineBlockNeedsLayout = 2 === a . offsetWidth , a . style . display = "" , a . innerHTML = "<div style='width:4px;'></div>" , h . shrinkWrapBlocks = 2 !== a . offsetWidth ) ; a . innerHTML = "<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>" ;
b = a . getElementsByTagName ( "td" ) ; c = 0 === b [ 0 ] . offsetHeight ; b [ 0 ] . style . display = "" ; b [ 1 ] . style . display = "none" ; h . reliableHiddenOffsets = c && 0 === b [ 0 ] . offsetHeight ; a . innerHTML = "" ; u . defaultView && u . defaultView . getComputedStyle && ( f = u . createElement ( "div" ) , f . style . width = "0" , f . style . marginRight = "0" , a . appendChild ( f ) , h . reliableMarginRight = 0 === ( parseInt ( ( u . defaultView . getComputedStyle ( f , null ) || { marginRight : 0 } ) . marginRight , 10 ) || 0 ) ) ; if ( a . attachEvent ) for ( n in { submit : 1 , change : 1 , focusin : 1 } ) f = "on" + n , ( c = f in a ) || ( a . setAttribute ( f ,
"return;" ) , c = "function" == typeof a [ f ] ) , h [ n + "Bubbles" ] = c ; k ( function ( ) { var a , d , c , b , s ; l = u . getElementsByTagName ( "body" ) [ 0 ] ; ! l || ( a = u . createElement ( "div" ) , a . style . cssText = "visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px" , l . insertBefore ( a , l . firstChild ) , m = u . createElement ( "div" ) , m . style . cssText = "position:absolute;top:0;left:0;width:1px;height:1px;margin:0;visibility:hidden;border:0;" , m . innerHTML = "<div style='position:absolute;top:0;left:0;width:1px;height:1px;margin:0;border:5px solid #000;padding:0;'><div></div></div><table style='position:absolute;top:0;left:0;width:1px;height:1px;margin:0;border:5px solid #000;padding:0;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>" ,
a . appendChild ( m ) , d = m . firstChild , c = d . firstChild , b = d . nextSibling . firstChild . firstChild , s = { doesNotAddBorder : 5 !== c . offsetTop , doesAddBorderForTableAndCells : 5 === b . offsetTop } , c . style . position = "fixed" , c . style . top = "20px" , s . fixedPosition = 20 === c . offsetTop || 15 === c . offsetTop , c . style . position = c . style . top = "" , d . style . overflow = "hidden" , d . style . position = "relative" , s . subtractsBorderForOverflowNotVisible = - 5 === c . offsetTop , s . doesNotIncludeMarginInBodyOffset = 1 !== l . offsetTop , l . removeChild ( a ) , m = null , k . extend ( h , s ) ) } ) ; m . innerHTML =
"" ; d . removeChild ( m ) ; m = b = e = g = l = f = a = c = null ; return h } ( ) ; k . boxModel = k . support . boxModel ; var I = /^(?:\{.*\}|\[.*\])$/ , M = /([A-Z])/g ; k . extend ( { cache : { } , uuid : 0 , expando : "jQuery" + ( k . fn . jquery + Math . random ( ) ) . replace ( /\D/g , "" ) , noData : { embed : ! 0 , object : "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" , applet : ! 0 } , hasData : function ( a ) { a = a . nodeType ? k . cache [ a [ k . expando ] ] : a [ k . expando ] ; return ! ! a && ! ea ( a ) } , data : function ( a , d , b , e ) { if ( k . acceptData ( a ) ) { var g , f , h = "string" == typeof d , l = ( g = a . nodeType ) ? k . cache : a , m = g ? a [ k . expando ] : a [ k . expando ] &&
k . expando , n = "events" === d ; if ( m && l [ m ] && ( n || e || l [ m ] . data ) || ! h || b !== c ) { m || ( g ? a [ k . expando ] = m = ++ k . uuid : m = k . expando ) ; l [ m ] || ( l [ m ] = { } , g || ( l [ m ] . toJSON = k . noop ) ) ; if ( "object" == typeof d || "function" == typeof d ) e ? l [ m ] = k . extend ( l [ m ] , d ) : l [ m ] . data = k . extend ( l [ m ] . data , d ) ; a = g = l [ m ] ; e || ( g . data || ( g . data = { } ) , g = g . data ) ; b !== c && ( g [ k . camelCase ( d ) ] = b ) ; if ( n && ! g [ d ] ) return a . events ; h ? ( f = g [ d ] , null == f && ( f = g [ k . camelCase ( d ) ] ) ) : f = g ; return f } } } , removeData : function ( a , d , c ) { if ( k . acceptData ( a ) ) { var b , e , g , f = a . nodeType , h = f ? k . cache : a , l = f ? a [ k . expando ] :
k . expando ; if ( h [ l ] ) { if ( d && ( b = c ? h [ l ] : h [ l ] . data ) ) { k . isArray ( d ) || ( d in b ? d = [ d ] : ( d = k . camelCase ( d ) , d in b ? d = [ d ] : d = d . split ( " " ) ) ) ; e = 0 ; for ( g = d . length ; e < g ; e ++ ) delete b [ d [ e ] ] ; if ( ! ( c ? ea : k . isEmptyObject ) ( b ) ) return } if ( ! c && ( delete h [ l ] . data , ! ea ( h [ l ] ) ) ) return ; k . support . deleteExpando || ! h . setInterval ? delete h [ l ] : h [ l ] = null ; f && ( k . support . deleteExpando ? delete a [ k . expando ] : a . removeAttribute ? a . removeAttribute ( k . expando ) : a [ k . expando ] = null ) } } } , _data : function ( a , d , c ) { return k . data ( a , d , c , ! 0 ) } , acceptData : function ( a ) { if ( a . nodeName ) { var d =
k . noData [ a . nodeName . toLowerCase ( ) ] ; if ( d ) return ! 0 !== d && a . getAttribute ( "classid" ) === d } return ! 0 } } ) ; k . fn . extend ( { data : function ( a , d ) { var b , e , g , f = null ; if ( "undefined" == typeof a ) { if ( this . length && ( f = k . data ( this [ 0 ] ) , 1 === this [ 0 ] . nodeType && ! k . _data ( this [ 0 ] , "parsedAttrs" ) ) ) { e = this [ 0 ] . attributes ; for ( var h = 0 , l = e . length ; h < l ; h ++ ) g = e [ h ] . name , 0 === g . indexOf ( "data-" ) && ( g = k . camelCase ( g . substring ( 5 ) ) , za ( this [ 0 ] , g , f [ g ] ) ) ; k . _data ( this [ 0 ] , "parsedAttrs" , ! 0 ) } return f } if ( "object" == typeof a ) return this . each ( function ( ) { k . data ( this ,
a ) } ) ; b = a . split ( "." ) ; b [ 1 ] = b [ 1 ] ? "." + b [ 1 ] : "" ; return d === c ? ( f = this . triggerHandler ( "getData" + b [ 1 ] + "!" , [ b [ 0 ] ] ) , f === c && this . length && ( f = k . data ( this [ 0 ] , a ) , f = za ( this [ 0 ] , a , f ) ) , f === c && b [ 1 ] ? this . data ( b [ 0 ] ) : f ) : this . each ( function ( ) { var c = k ( this ) , e = [ b [ 0 ] , d ] ; c . triggerHandler ( "setData" + b [ 1 ] + "!" , e ) ; k . data ( this , a , d ) ; c . triggerHandler ( "changeData" + b [ 1 ] + "!" , e ) } ) } , removeData : function ( a ) { return this . each ( function ( ) { k . removeData ( this , a ) } ) } } ) ; k . extend ( { _mark : function ( a , d ) { a && ( d = ( d || "fx" ) + "mark" , k . _data ( a , d , ( k . _data ( a , d ) || 0 ) +
1 ) ) } , _unmark : function ( a , d , c ) { ! 0 !== a && ( c = d , d = a , a = ! 1 ) ; if ( d ) { c = c || "fx" ; var b = c + "mark" ; ( a = a ? 0 : ( k . _data ( d , b ) || 1 ) - 1 ) ? k . _data ( d , b , a ) : ( k . removeData ( d , b , ! 0 ) , S ( d , c , "mark" ) ) } } , queue : function ( a , d , c ) { var b ; if ( a ) return d = ( d || "fx" ) + "queue" , b = k . _data ( a , d ) , c && ( ! b || k . isArray ( c ) ? b = k . _data ( a , d , k . makeArray ( c ) ) : b . push ( c ) ) , b || [ ] } , dequeue : function ( a , d ) { d = d || "fx" ; var c = k . queue ( a , d ) , b = c . shift ( ) , e = { } ; "inprogress" === b && ( b = c . shift ( ) ) ; b && ( "fx" === d && c . unshift ( "inprogress" ) , k . _data ( a , d + ".run" , e ) , b . call ( a , function ( ) { k . dequeue ( a ,
d ) } , e ) ) ; c . length || ( k . removeData ( a , d + "queue " + d + ".run" , ! 0 ) , S ( a , d , "queue" ) ) } } ) ; k . fn . extend ( { queue : function ( a , d ) { "string" != typeof a && ( d = a , a = "fx" ) ; return d === c ? k . queue ( this [ 0 ] , a ) : this . each ( function ( ) { var c = k . queue ( this , a , d ) ; "fx" === a && "inprogress" !== c [ 0 ] && k . dequeue ( this , a ) } ) } , dequeue : function ( a ) { return this . each ( function ( ) { k . dequeue ( this , a ) } ) } , delay : function ( a , d ) { a = k . fx ? k . fx . speeds [ a ] || a : a ; return this . queue ( d || "fx" , function ( d , c ) { var b = setTimeout ( d , a ) ; c . stop = function ( ) { clearTimeout ( b ) } } ) } , clearQueue : function ( a ) { return this . queue ( a ||
"fx" , [ ] ) } , promise : function ( a , d ) { function b ( ) { -- h || e . resolveWith ( g , [ g ] ) } "string" != typeof a && ( a = c ) ; a = a || "fx" ; for ( var e = k . Deferred ( ) , g = this , f = g . length , h = 1 , l = a + "defer" , m = a + "queue" , n = a + "mark" , r ; f -- ; ) if ( r = k . data ( g [ f ] , l , c , ! 0 ) || ( k . data ( g [ f ] , m , c , ! 0 ) || k . data ( g [ f ] , n , c , ! 0 ) ) && k . data ( g [ f ] , l , k . Callbacks ( "once memory" ) , ! 0 ) ) h ++ , r . add ( b ) ; b ( ) ; return e . promise ( ) } } ) ; var X = /[\n\t\r]/g , K = /\s+/ , bb = /\r/g , Sa = /^(?:button|input)$/i , ia = /^(?:button|input|object|select|textarea)$/i , na = /^a(?:rea)?$/i , Ka = /^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i ,
vb = k . support . getSetAttribute , oa , sa , cb ; k . fn . extend ( { attr : function ( a , d ) { return k . access ( this , a , d , ! 0 , k . attr ) } , removeAttr : function ( a ) { return this . each ( function ( ) { k . removeAttr ( this , a ) } ) } , prop : function ( a , d ) { return k . access ( this , a , d , ! 0 , k . prop ) } , removeProp : function ( a ) { a = k . propFix [ a ] || a ; return this . each ( function ( ) { try { this [ a ] = c , delete this [ a ] } catch ( d ) { } } ) } , addClass : function ( a ) { var d , c , b , e , g , f , h ; if ( k . isFunction ( a ) ) return this . each ( function ( d ) { k ( this ) . addClass ( a . call ( this , d , this . className ) ) } ) ; if ( a && "string" ==
typeof a ) for ( d = a . split ( K ) , c = 0 , b = this . length ; c < b ; c ++ ) if ( e = this [ c ] , 1 === e . nodeType ) if ( e . className || 1 !== d . length ) { g = " " + e . className + " " ; f = 0 ; for ( h = d . length ; f < h ; f ++ ) ~ g . indexOf ( " " + d [ f ] + " " ) || ( g += d [ f ] + " " ) ; e . className = k . trim ( g ) } else e . className = a ; return this } , removeClass : function ( a ) { var d , b , e , g , f , h , l ; if ( k . isFunction ( a ) ) return this . each ( function ( d ) { k ( this ) . removeClass ( a . call ( this , d , this . className ) ) } ) ; if ( a && "string" == typeof a || a === c ) for ( d = ( a || "" ) . split ( K ) , b = 0 , e = this . length ; b < e ; b ++ ) if ( g = this [ b ] , 1 === g . nodeType &&
g . className ) if ( a ) { f = ( " " + g . className + " " ) . replace ( X , " " ) ; h = 0 ; for ( l = d . length ; h < l ; h ++ ) f = f . replace ( " " + d [ h ] + " " , " " ) ; g . className = k . trim ( f ) } else g . className = "" ; return this } , toggleClass : function ( a , d ) { var c = typeof a , b = "boolean" == typeof d ; return k . isFunction ( a ) ? this . each ( function ( c ) { k ( this ) . toggleClass ( a . call ( this , c , this . className , d ) , d ) } ) : this . each ( function ( ) { if ( "string" === c ) for ( var e , g = 0 , f = k ( this ) , h = d , l = a . split ( K ) ; e = l [ g ++ ] ; ) h = b ? h : ! f . hasClass ( e ) , f [ h ? "addClass" : "removeClass" ] ( e ) ; else if ( "undefined" === c ||
"boolean" === c ) this . className && k . _data ( this , "__className__" , this . className ) , this . className = this . className || ! 1 === a ? "" : k . _data ( this , "__className__" ) || "" } ) } , hasClass : function ( a ) { a = " " + a + " " ; for ( var d = 0 , c = this . length ; d < c ; d ++ ) if ( 1 === this [ d ] . nodeType && - 1 < ( " " + this [ d ] . className + " " ) . replace ( X , " " ) . indexOf ( a ) ) return ! 0 ; return ! 1 } , val : function ( a ) { var d , b , e , g = this [ 0 ] ; if ( ! arguments . length ) { if ( g ) { if ( ( d = k . valHooks [ g . nodeName . toLowerCase ( ) ] || k . valHooks [ g . type ] ) && "get" in d && ( b = d . get ( g , "value" ) ) !== c ) return b ; b = g . value ;
return "string" == typeof b ? b . replace ( bb , "" ) : null == b ? "" : b } return c } e = k . isFunction ( a ) ; return this . each ( function ( b ) { var g = k ( this ) , f ; 1 === this . nodeType && ( e ? f = a . call ( this , b , g . val ( ) ) : f = a , null == f ? f = "" : "number" == typeof f ? f += "" : k . isArray ( f ) && ( f = k . map ( f , function ( a ) { return null == a ? "" : a + "" } ) ) , d = k . valHooks [ this . nodeName . toLowerCase ( ) ] || k . valHooks [ this . type ] , d && "set" in d && d . set ( this , f , "value" ) !== c || ( this . value = f ) ) } ) } } ) ; k . extend ( { valHooks : { option : { get : function ( a ) { var d = a . attributes . value ; return ! d || d . specified ? a . value :
a . text } } , select : { get : function ( a ) { var d , c , b = a . selectedIndex , e = [ ] , g = a . options , f = "select-one" === a . type ; if ( 0 > b ) return null ; a = f ? b : 0 ; for ( c = f ? b + 1 : g . length ; a < c ; a ++ ) if ( d = g [ a ] , d . selected && ! ( ( k . support . optDisabled ? d . disabled : null !== d . getAttribute ( "disabled" ) ) || d . parentNode . disabled && k . nodeName ( d . parentNode , "optgroup" ) ) ) { d = k ( d ) . val ( ) ; if ( f ) return d ; e . push ( d ) } return f && ! e . length && g . length ? k ( g [ b ] ) . val ( ) : e } , set : function ( a , d ) { var c = k . makeArray ( d ) ; k ( a ) . find ( "option" ) . each ( function ( ) { this . selected = 0 <= k . inArray ( k ( this ) . val ( ) ,
c ) } ) ; c . length || ( a . selectedIndex = - 1 ) ; return c } } } , attrFn : { val : ! 0 , css : ! 0 , html : ! 0 , text : ! 0 , data : ! 0 , width : ! 0 , height : ! 0 , offset : ! 0 } , attr : function ( a , d , b , e ) { var g , f , h = a . nodeType ; if ( ! a || 3 === h || 8 === h || 2 === h ) return c ; if ( e && d in k . attrFn ) return k ( a ) [ d ] ( b ) ; if ( ! ( "getAttribute" in a ) ) return k . prop ( a , d , b ) ; ( e = 1 !== h || ! k . isXMLDoc ( a ) ) && ( d = d . toLowerCase ( ) , f = k . attrHooks [ d ] || ( Ka . test ( d ) ? sa : oa ) ) ; if ( b !== c ) { if ( null === b ) return k . removeAttr ( a , d ) , c ; if ( f && "set" in f && e && ( g = f . set ( a , b , d ) ) !== c ) return g ; a . setAttribute ( d , "" + b ) ; return b } if ( f &&
"get" in f && e && null !== ( g = f . get ( a , d ) ) ) return g ; g = a . getAttribute ( d ) ; return null === g ? c : g } , removeAttr : function ( a , d ) { var c , b , e , g , f = 0 ; if ( 1 === a . nodeType ) for ( b = ( d || "" ) . split ( K ) , g = b . length ; f < g ; f ++ ) e = b [ f ] . toLowerCase ( ) , c = k . propFix [ e ] || e , k . attr ( a , e , "" ) , a . removeAttribute ( vb ? e : c ) , Ka . test ( e ) && c in a && ( a [ c ] = ! 1 ) } , attrHooks : { type : { set : function ( a , d ) { if ( Sa . test ( a . nodeName ) && a . parentNode ) k . error ( "type property can't be changed" ) ; else if ( ! k . support . radioValue && "radio" === d && k . nodeName ( a , "input" ) ) { var c = a . value ; a . setAttribute ( "type" ,
d ) ; c && ( a . value = c ) ; return d } } } , value : { get : function ( a , d ) { return oa && k . nodeName ( a , "button" ) ? oa . get ( a , d ) : d in a ? a . value : null } , set : function ( a , d , c ) { if ( oa && k . nodeName ( a , "button" ) ) return oa . set ( a , d , c ) ; a . value = d } } } , propFix : { tabindex : "tabIndex" , readonly : "readOnly" , "for" : "htmlFor" , "class" : "className" , maxlength : "maxLength" , cellspacing : "cellSpacing" , cellpadding : "cellPadding" , rowspan : "rowSpan" , colspan : "colSpan" , usemap : "useMap" , frameborder : "frameBorder" , contenteditable : "contentEditable" } , prop : function ( a , d , b ) { var e ,
g , f = a . nodeType ; if ( ! a || 3 === f || 8 === f || 2 === f ) return c ; ( 1 !== f || ! k . isXMLDoc ( a ) ) && ( d = k . propFix [ d ] || d , g = k . propHooks [ d ] ) ; return b !== c ? g && "set" in g && ( e = g . set ( a , b , d ) ) !== c ? e : a [ d ] = b : g && "get" in g && null !== ( e = g . get ( a , d ) ) ? e : a [ d ] } , propHooks : { tabIndex : { get : function ( a ) { var d = a . getAttributeNode ( "tabindex" ) ; return d && d . specified ? parseInt ( d . value , 10 ) : ia . test ( a . nodeName ) || na . test ( a . nodeName ) && a . href ? 0 : c } } } } ) ; k . attrHooks . tabindex = k . propHooks . tabIndex ; sa = { get : function ( a , d ) { var b , e = k . prop ( a , d ) ; return ! 0 === e || "boolean" != typeof e &&
( b = a . getAttributeNode ( d ) ) && ! 1 !== b . nodeValue ? d . toLowerCase ( ) : c } , set : function ( a , d , c ) { var b ; ! 1 === d ? k . removeAttr ( a , c ) : ( b = k . propFix [ c ] || c , b in a && ( a [ b ] = ! 0 ) , a . setAttribute ( c , c . toLowerCase ( ) ) ) ; return c } } ; vb || ( cb = { name : ! 0 , id : ! 0 } , oa = k . valHooks . button = { get : function ( a , d ) { var b ; return ( b = a . getAttributeNode ( d ) ) && ( cb [ d ] ? "" !== b . nodeValue : b . specified ) ? b . nodeValue : c } , set : function ( a , d , c ) { var b = a . getAttributeNode ( c ) ; b || ( b = u . createAttribute ( c ) , a . setAttributeNode ( b ) ) ; return b . nodeValue = d + "" } } , k . attrHooks . tabindex . set =
oa . set , k . each ( [ "width" , "height" ] , function ( a , d ) { k . attrHooks [ d ] = k . extend ( k . attrHooks [ d ] , { set : function ( a , c ) { if ( "" === c ) return a . setAttribute ( d , "auto" ) , c } } ) } ) , k . attrHooks . contenteditable = { get : oa . get , set : function ( a , d , c ) { "" === d && ( d = "false" ) ; oa . set ( a , d , c ) } } ) ; k . support . hrefNormalized || k . each ( [ "href" , "src" , "width" , "height" ] , function ( a , d ) { k . attrHooks [ d ] = k . extend ( k . attrHooks [ d ] , { get : function ( a ) { a = a . getAttribute ( d , 2 ) ; return null === a ? c : a } } ) } ) ; k . support . style || ( k . attrHooks . style = { get : function ( a ) { return a . style . cssText . toLowerCase ( ) ||
c } , set : function ( a , d ) { return a . style . cssText = "" + d } } ) ; k . support . optSelected || ( k . propHooks . selected = k . extend ( k . propHooks . selected , { get : function ( a ) { a = a . parentNode ; a && ( a . selectedIndex , a . parentNode && a . parentNode . selectedIndex ) ; return null } } ) ) ; k . support . enctype || ( k . propFix . enctype = "encoding" ) ; k . support . checkOn || k . each ( [ "radio" , "checkbox" ] , function ( ) { k . valHooks [ this ] = { get : function ( a ) { return null === a . getAttribute ( "value" ) ? "on" : a . value } } } ) ; k . each ( [ "radio" , "checkbox" ] , function ( ) { k . valHooks [ this ] = k . extend ( k . valHooks [ this ] ,
{ set : function ( a , d ) { if ( k . isArray ( d ) ) return a . checked = 0 <= k . inArray ( k ( a ) . val ( ) , d ) } } ) } ) ; var Ta = /^(?:textarea|input|select)$/i , wb = /^([^\.]*)?(?:\.(.+))?$/ , kb = /\bhover(\.\S+)?/ , Vb = /^key/ , xb = /^(?:mouse|contextmenu)|click/ , ca = /^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/ , qc = function ( a ) { ( a = ca . exec ( a ) ) && ( a [ 1 ] = ( a [ 1 ] || "" ) . toLowerCase ( ) , a [ 3 ] = a [ 3 ] && RegExp ( "(?:^|\\s)" + a [ 3 ] + "(?:\\s|$)" ) ) ; return a } , Ua = function ( a ) { return k . event . special . hover ? a : a . replace ( kb , "mouseenter$1 mouseleave$1" ) } ; k . event = { add : function ( a , d , b , e , g ) { var f ,
h , l , m , n , r , t , p , q ; if ( 3 !== a . nodeType && 8 !== a . nodeType && d && b && ( f = k . _data ( a ) ) ) { b . handler && ( t = b , b = t . handler ) ; b . guid || ( b . guid = k . guid ++ ) ; ( l = f . events ) || ( f . events = l = { } ) ; ( h = f . handle ) || ( f . handle = h = function ( a ) { return "undefined" == typeof k || a && k . event . triggered === a . type ? c : k . event . dispatch . apply ( h . elem , arguments ) } , h . elem = a ) ; d = Ua ( d ) . split ( " " ) ; for ( f = 0 ; f < d . length ; f ++ ) m = wb . exec ( d [ f ] ) || [ ] , n = m [ 1 ] , r = ( m [ 2 ] || "" ) . split ( "." ) . sort ( ) , q = k . event . special [ n ] || { } , n = ( g ? q . delegateType : q . bindType ) || n , q = k . event . special [ n ] || { } , m = k . extend ( { type : n ,
origType : m [ 1 ] , data : e , handler : b , guid : b . guid , selector : g , namespace : r . join ( "." ) } , t ) , g && ( m . quick = qc ( g ) , ! m . quick && k . expr . match . POS . test ( g ) && ( m . isPositional = ! 0 ) ) , p = l [ n ] , p || ( p = l [ n ] = [ ] , p . delegateCount = 0 , q . setup && ! 1 !== q . setup . call ( a , e , r , h ) || ( a . addEventListener ? a . addEventListener ( n , h , ! 1 ) : a . attachEvent && a . attachEvent ( "on" + n , h ) ) ) , q . add && ( q . add . call ( a , m ) , m . handler . guid || ( m . handler . guid = b . guid ) ) , g ? p . splice ( p . delegateCount ++ , 0 , m ) : p . push ( m ) , k . event . global [ n ] = ! 0 ; a = null } } , global : { } , remove : function ( a , d , c , b ) { var e = k . hasData ( a ) &&
k . _data ( a ) , g , f , h , l , m , n , r , t , p , q ; if ( e && ( n = e . events ) ) { d = Ua ( d || "" ) . split ( " " ) ; for ( g = 0 ; g < d . length ; g ++ ) { f = wb . exec ( d [ g ] ) || [ ] ; h = f [ 1 ] ; f = f [ 2 ] ; if ( ! h ) { f = f ? "." + f : "" ; for ( m in n ) k . event . remove ( a , m + f , c , b ) ; return } r = k . event . special [ h ] || { } ; h = ( b ? r . delegateType : r . bindType ) || h ; p = n [ h ] || [ ] ; l = p . length ; f = f ? RegExp ( "(^|\\.)" + f . split ( "." ) . sort ( ) . join ( "\\.(?:.*\\.)?" ) + "(\\.|$)" ) : null ; if ( c || f || b || r . remove ) for ( m = 0 ; m < p . length ; m ++ ) { if ( q = p [ m ] , ! c || c . guid === q . guid ) if ( ! f || f . test ( q . namespace ) ) if ( ! b || b === q . selector || "**" === b && q . selector ) p . splice ( m -- ,
1 ) , q . selector && p . delegateCount -- , r . remove && r . remove . call ( a , q ) } else p . length = 0 ; 0 === p . length && l !== p . length && ( ( ! r . teardown || ! 1 === r . teardown . call ( a , f ) ) && k . removeEvent ( a , h , e . handle ) , delete n [ h ] ) } k . isEmptyObject ( n ) && ( t = e . handle , t && ( t . elem = null ) , k . removeData ( a , [ "events" , "handle" ] , ! 0 ) ) } } , customEvent : { getData : ! 0 , setData : ! 0 , changeData : ! 0 } , trigger : function ( d , b , e , g ) { if ( ! e || 3 !== e . nodeType && 8 !== e . nodeType ) { var f = d . type || d , h = [ ] , l , m , n , r , p ; 0 <= f . indexOf ( "!" ) && ( f = f . slice ( 0 , - 1 ) , l = ! 0 ) ; 0 <= f . indexOf ( "." ) && ( h = f . split ( "." ) ,
f = h . shift ( ) , h . sort ( ) ) ; if ( e && ! k . event . customEvent [ f ] || k . event . global [ f ] ) if ( d = "object" == typeof d ? d [ k . expando ] ? d : new k . Event ( f , d ) : new k . Event ( f ) , d . type = f , d . isTrigger = ! 0 , d . exclusive = l , d . namespace = h . join ( "." ) , d . namespace _re = d . namespace ? RegExp ( "(^|\\.)" + h . join ( "\\.(?:.*\\.)?" ) + "(\\.|$)" ) : null , h = 0 > f . indexOf ( ":" ) ? "on" + f : "" , ! g && e || d . preventDefault ( ) , e ) { if ( d . result = c , d . target || ( d . target = e ) , b = null != b ? k . makeArray ( b ) : [ ] , b . unshift ( d ) , l = k . event . special [ f ] || { } , ! l . trigger || ! 1 !== l . trigger . apply ( e , b ) ) { p = [ [ e , l . bindType ||
f ] ] ; if ( ! g && ! l . noBubble && ! k . isWindow ( e ) ) { m = l . delegateType || f ; n = null ; for ( g = e . parentNode ; g ; g = g . parentNode ) p . push ( [ g , m ] ) , n = g ; n && n === e . ownerDocument && p . push ( [ n . defaultView || n . parentWindow || a , m ] ) } for ( m = 0 ; m < p . length && ( g = p [ m ] [ 0 ] , d . type = p [ m ] [ 1 ] , ( r = ( k . _data ( g , "events" ) || { } ) [ d . type ] && k . _data ( g , "handle" ) ) && r . apply ( g , b ) , ( r = h && g [ h ] ) && k . acceptData ( g ) && r . apply ( g , b ) , ! d . isPropagationStopped ( ) ) ; m ++ ) ; d . type = f ; d . isDefaultPrevented ( ) || ! ( l . _default && ! 1 !== l . _default . apply ( e . ownerDocument , b ) || "click" === f && k . nodeName ( e , "a" ) ) &&
k . acceptData ( e ) && h && e [ f ] && ( "focus" !== f && "blur" !== f || 0 !== d . target . offsetWidth ) && ! k . isWindow ( e ) && ( n = e [ h ] , n && ( e [ h ] = null ) , k . event . triggered = f , e [ f ] ( ) , k . event . triggered = c , n && ( e [ h ] = n ) ) ; return d . result } } else for ( m in e = k . cache , e ) e [ m ] . events && e [ m ] . events [ f ] && k . event . trigger ( d , b , e [ m ] . handle . elem , ! 0 ) } } , dispatch : function ( d ) { d = k . event . fix ( d || a . event ) ; var b = ( k . _data ( this , "events" ) || { } ) [ d . type ] || [ ] , e = b . delegateCount , g = [ ] . slice . call ( arguments , 0 ) , f = ! d . exclusive && ! d . namespace , h = ( k . event . special [ d . type ] || { } ) . handle ,
l = [ ] , m , n , r , p , t , q , x ; g [ 0 ] = d ; d . delegateTarget = this ; if ( e && ! ( d . target . disabled || d . button && "click" === d . type ) ) for ( n = d . target ; n != this ; n = n . parentNode || this ) { p = { } ; t = [ ] ; for ( m = 0 ; m < e ; m ++ ) { r = b [ m ] ; q = r . selector ; x = p [ q ] ; if ( r . isPositional ) x = 0 <= ( x || ( p [ q ] = k ( q ) ) ) . index ( n ) ; else if ( x === c ) { x = p ; var w = q ; if ( r . quick ) { q = n ; var B = r . quick ; q = ( ! B [ 1 ] || q . nodeName . toLowerCase ( ) === B [ 1 ] ) && ( ! B [ 2 ] || q . id === B [ 2 ] ) && ( ! B [ 3 ] || B [ 3 ] . test ( q . className ) ) } else q = k ( n ) . is ( q ) ; x = x [ w ] = q } x && t . push ( r ) } t . length && l . push ( { elem : n , matches : t } ) } b . length > e && l . push ( { elem : this ,
matches : b . slice ( e ) } ) ; for ( m = 0 ; m < l . length && ! d . isPropagationStopped ( ) ; m ++ ) for ( e = l [ m ] , d . currentTarget = e . elem , b = 0 ; b < e . matches . length && ! d . isImmediatePropagationStopped ( ) ; b ++ ) if ( r = e . matches [ b ] , f || ! d . namespace && ! r . namespace || d . namespace _re && d . namespace _re . test ( r . namespace ) ) d . data = r . data , d . handleObj = r , r = ( h || r . handler ) . apply ( e . elem , g ) , r !== c && ( d . result = r , ! 1 === r && ( d . preventDefault ( ) , d . stopPropagation ( ) ) ) ; return d . result } , props : "attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which" . split ( " " ) ,
fixHooks : { } , keyHooks : { props : [ "char" , "charCode" , "key" , "keyCode" ] , filter : function ( a , d ) { null == a . which && ( a . which = null != d . charCode ? d . charCode : d . keyCode ) ; return a } } , mouseHooks : { props : "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement wheelDelta" . split ( " " ) , filter : function ( a , d ) { var b , e , g , f = d . button , h = d . fromElement ; null == a . pageX && null != d . clientX && ( b = a . target . ownerDocument || u , e = b . documentElement , g = b . body , a . pageX = d . clientX + ( e && e . scrollLeft || g && g . scrollLeft || 0 ) -
( e && e . clientLeft || g && g . clientLeft || 0 ) , a . pageY = d . clientY + ( e && e . scrollTop || g && g . scrollTop || 0 ) - ( e && e . clientTop || g && g . clientTop || 0 ) ) ; ! a . relatedTarget && h && ( a . relatedTarget = h === a . target ? d . toElement : h ) ; ! a . which && f !== c && ( a . which = f & 1 ? 1 : f & 2 ? 3 : f & 4 ? 2 : 0 ) ; return a } } , fix : function ( a ) { if ( a [ k . expando ] ) return a ; var d , b , e = a , g = k . event . fixHooks [ a . type ] || { } , f = g . props ? this . props . concat ( g . props ) : this . props ; a = k . Event ( e ) ; for ( d = f . length ; d ; ) b = f [ -- d ] , a [ b ] = e [ b ] ; a . target || ( a . target = e . srcElement || u ) ; 3 === a . target . nodeType && ( a . target =
a . target . parentNode ) ; a . metaKey === c && ( a . metaKey = a . ctrlKey ) ; return g . filter ? g . filter ( a , e ) : a } , special : { ready : { setup : k . bindReady } , focus : { delegateType : "focusin" , noBubble : ! 0 } , blur : { delegateType : "focusout" , noBubble : ! 0 } , beforeunload : { setup : function ( a , d , c ) { k . isWindow ( this ) && ( this . onbeforeunload = c ) } , teardown : function ( a , d ) { this . onbeforeunload === d && ( this . onbeforeunload = null ) } } } , simulate : function ( a , d , c , b ) { a = k . extend ( new k . Event , c , { type : a , isSimulated : ! 0 , originalEvent : { } } ) ; b ? k . event . trigger ( a , null , d ) : k . event . dispatch . call ( d ,
a ) ; a . isDefaultPrevented ( ) && c . preventDefault ( ) } } ; k . event . handle = k . event . dispatch ; k . removeEvent = u . removeEventListener ? function ( a , d , c ) { a . removeEventListener && a . removeEventListener ( d , c , ! 1 ) } : function ( a , d , c ) { a . detachEvent && a . detachEvent ( "on" + d , c ) } ; k . Event = function ( a , d ) { if ( ! ( this instanceof k . Event ) ) return new k . Event ( a , d ) ; a && a . type ? ( this . originalEvent = a , this . type = a . type , this . isDefaultPrevented = a . defaultPrevented || ! 1 === a . returnValue || a . getPreventDefault && a . getPreventDefault ( ) ? L : P ) : this . type = a ; d && k . extend ( this ,
d ) ; this . timeStamp = a && a . timeStamp || k . now ( ) ; this [ k . expando ] = ! 0 } ; k . Event . prototype = { preventDefault : function ( ) { this . isDefaultPrevented = L ; var a = this . originalEvent ; ! a || ( a . preventDefault ? a . preventDefault ( ) : a . returnValue = ! 1 ) } , stopPropagation : function ( ) { this . isPropagationStopped = L ; var a = this . originalEvent ; ! a || ( a . stopPropagation && a . stopPropagation ( ) , a . cancelBubble = ! 0 ) } , stopImmediatePropagation : function ( ) { this . isImmediatePropagationStopped = L ; this . stopPropagation ( ) } , isDefaultPrevented : P , isPropagationStopped : P ,
isImmediatePropagationStopped : P } ; k . each ( { mouseenter : "mouseover" , mouseleave : "mouseout" } , function ( a , d ) { k . event . special [ a ] = k . event . special [ d ] = { delegateType : d , bindType : d , handle : function ( a ) { var d = a . relatedTarget , c = a . handleObj , b ; if ( ! d || c . origType === a . type || d !== this && ! k . contains ( this , d ) ) d = a . type , a . type = c . origType , b = c . handler . apply ( this , arguments ) , a . type = d ; return b } } } ) ; k . support . submitBubbles || ( k . event . special . submit = { setup : function ( ) { if ( k . nodeName ( this , "form" ) ) return ! 1 ; k . event . add ( this , "click._submit keypress._submit" ,
function ( a ) { a = a . target ; ( a = k . nodeName ( a , "input" ) || k . nodeName ( a , "button" ) ? a . form : c ) && ! a . _submit _attached && ( k . event . add ( a , "submit._submit" , function ( a ) { this . parentNode && k . event . simulate ( "submit" , this . parentNode , a , ! 0 ) } ) , a . _submit _attached = ! 0 ) } ) } , teardown : function ( ) { if ( k . nodeName ( this , "form" ) ) return ! 1 ; k . event . remove ( this , "._submit" ) } } ) ; k . support . changeBubbles || ( k . event . special . change = { setup : function ( ) { if ( Ta . test ( this . nodeName ) ) { if ( "checkbox" === this . type || "radio" === this . type ) k . event . add ( this , "propertychange._change" ,
function ( a ) { "checked" === a . originalEvent . propertyName && ( this . _just _changed = ! 0 ) } ) , k . event . add ( this , "click._change" , function ( a ) { this . _just _changed && ( this . _just _changed = ! 1 , k . event . simulate ( "change" , this , a , ! 0 ) ) } ) ; return ! 1 } k . event . add ( this , "beforeactivate._change" , function ( a ) { a = a . target ; Ta . test ( a . nodeName ) && ! a . _change _attached && ( k . event . add ( a , "change._change" , function ( a ) { this . parentNode && ! a . isSimulated && k . event . simulate ( "change" , this . parentNode , a , ! 0 ) } ) , a . _change _attached = ! 0 ) } ) } , handle : function ( a ) { var d =
a . target ; if ( this !== d || a . isSimulated || a . isTrigger || "radio" !== d . type && "checkbox" !== d . type ) return a . handleObj . handler . apply ( this , arguments ) } , teardown : function ( ) { k . event . remove ( this , "._change" ) ; return Ta . test ( this . nodeName ) } } ) ; k . support . focusinBubbles || k . each ( { focus : "focusin" , blur : "focusout" } , function ( a , d ) { var c = 0 , b = function ( a ) { k . event . simulate ( d , a . target , k . event . fix ( a ) , ! 0 ) } ; k . event . special [ d ] = { setup : function ( ) { 0 === c ++ && u . addEventListener ( a , b , ! 0 ) } , teardown : function ( ) { 0 === -- c && u . removeEventListener ( a ,
b , ! 0 ) } } } ) ; k . fn . extend ( { on : function ( a , d , b , e , g ) { var f , h ; if ( "object" == typeof a ) { "string" != typeof d && ( b = d , d = c ) ; for ( h in a ) this . on ( h , d , b , a [ h ] , g ) ; return this } null == b && null == e ? ( e = d , b = d = c ) : null == e && ( "string" == typeof d ? ( e = b , b = c ) : ( e = b , b = d , d = c ) ) ; if ( ! 1 === e ) e = P ; else if ( ! e ) return this ; 1 === g && ( f = e , e = function ( a ) { k ( ) . off ( a ) ; return f . apply ( this , arguments ) } , e . guid = f . guid || ( f . guid = k . guid ++ ) ) ; return this . each ( function ( ) { k . event . add ( this , a , e , b , d ) } ) } , one : function ( a , d , c , b ) { return this . on . call ( this , a , d , c , b , 1 ) } , off : function ( a ,
d , b ) { if ( a && a . preventDefault && a . handleObj ) { var e = a . handleObj ; k ( a . delegateTarget ) . off ( e . namespace ? e . type + "." + e . namespace : e . type , e . selector , e . handler ) ; return this } if ( "object" == typeof a ) { for ( e in a ) this . off ( e , d , a [ e ] ) ; return this } if ( ! 1 === d || "function" == typeof d ) b = d , d = c ; ! 1 === b && ( b = P ) ; return this . each ( function ( ) { k . event . remove ( this , a , b , d ) } ) } , bind : function ( a , d , b ) { return this . on ( a , null , d , b ) } , unbind : function ( a , d ) { return this . off ( a , null , d ) } , live : function ( a , d , b ) { k ( this . context ) . on ( a , this . selector , d , b ) ; return this } ,
die : function ( a , d ) { k ( this . context ) . off ( a , this . selector || "**" , d ) ; return this } , delegate : function ( a , d , b , c ) { return this . on ( d , a , b , c ) } , undelegate : function ( a , d , b ) { return 1 == arguments . length ? this . off ( a , "**" ) : this . off ( d , a , b ) } , trigger : function ( a , d ) { return this . each ( function ( ) { k . event . trigger ( a , d , this ) } ) } , triggerHandler : function ( a , d ) { if ( this [ 0 ] ) return k . event . trigger ( a , d , this [ 0 ] , ! 0 ) } , toggle : function ( a ) { var d = arguments , b = a . guid || k . guid ++ , c = 0 , e = function ( b ) { var e = ( k . _data ( this , "lastToggle" + a . guid ) || 0 ) % c ; k . _data ( this ,
"lastToggle" + a . guid , e + 1 ) ; b . preventDefault ( ) ; return d [ e ] . apply ( this , arguments ) || ! 1 } ; for ( e . guid = b ; c < d . length ; ) d [ c ++ ] . guid = b ; return this . click ( e ) } , hover : function ( a , d ) { return this . mouseenter ( a ) . mouseleave ( d || a ) } } ) ; k . each ( "blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu" . split ( " " ) , function ( a , d ) { k . fn [ d ] = function ( a , b ) { null == b && ( b = a , a = null ) ; return 0 < arguments . length ?
this . bind ( d , a , b ) : this . trigger ( d ) } ; k . attrFn && ( k . attrFn [ d ] = ! 0 ) ; Vb . test ( d ) && ( k . event . fixHooks [ d ] = k . event . keyHooks ) ; xb . test ( d ) && ( k . event . fixHooks [ d ] = k . event . mouseHooks ) } ) ; ( function ( ) { function a ( d , b , c , g , f , h ) { f = 0 ; for ( var l = g . length ; f < l ; f ++ ) { var k = g [ f ] ; if ( k ) { for ( var s = ! 1 , k = k [ d ] ; k ; ) { if ( k [ e ] === c ) { s = g [ k . sizset ] ; break } if ( 1 === k . nodeType ) if ( h || ( k [ e ] = c , k . sizset = f ) , "string" != typeof b ) { if ( k === b ) { s = ! 0 ; break } } else if ( 0 < p . filter ( b , [ k ] ) . length ) { s = k ; break } k = k [ d ] } g [ f ] = s } } } function d ( a , b , c , g , f , h ) { f = 0 ; for ( var l = g . length ; f <
l ; f ++ ) { var k = g [ f ] ; if ( k ) { for ( var s = ! 1 , k = k [ a ] ; k ; ) { if ( k [ e ] === c ) { s = g [ k . sizset ] ; break } 1 === k . nodeType && ! h && ( k [ e ] = c , k . sizset = f ) ; if ( k . nodeName . toLowerCase ( ) === b ) { s = k ; break } k = k [ a ] } g [ f ] = s } } } var b = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g , e = "sizcache" + ( Math . random ( ) + "" ) . replace ( "." , "" ) , g = 0 , f = Object . prototype . toString , h = ! 1 , l = ! 0 , m = /\\/g , n = /\r\n/g , r = /\W/ ; [ 0 , 0 ] . sort ( function ( ) { l = ! 1 ; return 0 } ) ; var p = function ( a , d , c , e ) { c = c ||
[ ] ; var g = d = d || u ; if ( 1 !== d . nodeType && 9 !== d . nodeType ) return [ ] ; if ( ! a || "string" != typeof a ) return c ; var h , k , l , s , m , n , r = ! 0 , R = p . isXML ( d ) , t = [ ] , Q = a ; do if ( b . exec ( "" ) , h = b . exec ( Q ) ) if ( Q = h [ 3 ] , t . push ( h [ 1 ] ) , h [ 2 ] ) { s = h [ 3 ] ; break } while ( h ) ; if ( 1 < t . length && x . exec ( a ) ) if ( 2 === t . length && q . relative [ t [ 0 ] ] ) k = C ( t [ 0 ] + t [ 1 ] , d , e ) ; else for ( k = q . relative [ t [ 0 ] ] ? [ d ] : p ( t . shift ( ) , d ) ; t . length ; ) a = t . shift ( ) , q . relative [ a ] && ( a += t . shift ( ) ) , k = C ( a , k , e ) ; else if ( ! e && 1 < t . length && 9 === d . nodeType && ! R && q . match . ID . test ( t [ 0 ] ) && ! q . match . ID . test ( t [ t . length - 1 ] ) &&
( m = p . find ( t . shift ( ) , d , R ) , d = m . expr ? p . filter ( m . expr , m . set ) [ 0 ] : m . set [ 0 ] ) , d ) for ( m = e ? { expr : t . pop ( ) , set : v ( e ) } : p . find ( t . pop ( ) , 1 !== t . length || "~" !== t [ 0 ] && "+" !== t [ 0 ] || ! d . parentNode ? d : d . parentNode , R ) , k = m . expr ? p . filter ( m . expr , m . set ) : m . set , 0 < t . length ? l = v ( k ) : r = ! 1 ; t . length ; ) h = n = t . pop ( ) , q . relative [ n ] ? h = t . pop ( ) : n = "" , null == h && ( h = d ) , q . relative [ n ] ( l , h , R ) ; else l = [ ] ; l || ( l = k ) ; l || p . error ( n || a ) ; if ( "[object Array]" === f . call ( l ) ) if ( r ) if ( d && 1 === d . nodeType ) for ( a = 0 ; null != l [ a ] ; a ++ ) l [ a ] && ( ! 0 === l [ a ] || 1 === l [ a ] . nodeType && p . contains ( d ,
l [ a ] ) ) && c . push ( k [ a ] ) ; else for ( a = 0 ; null != l [ a ] ; a ++ ) l [ a ] && 1 === l [ a ] . nodeType && c . push ( k [ a ] ) ; else c . push . apply ( c , l ) ; else v ( l , c ) ; s && ( p ( s , g , c , e ) , p . uniqueSort ( c ) ) ; return c } ; p . uniqueSort = function ( a ) { if ( z && ( h = l , a . sort ( z ) , h ) ) for ( var d = 1 ; d < a . length ; d ++ ) a [ d ] === a [ d - 1 ] && a . splice ( d -- , 1 ) ; return a } ; p . matches = function ( a , d ) { return p ( a , null , null , d ) } ; p . matchesSelector = function ( a , d ) { return 0 < p ( d , null , null , [ a ] ) . length } ; p . find = function ( a , d , b ) { var c , e , g , f , h , l ; if ( ! a ) return [ ] ; e = 0 ; for ( g = q . order . length ; e < g ; e ++ ) if ( h = q . order [ e ] ,
f = q . leftMatch [ h ] . exec ( a ) ) if ( l = f [ 1 ] , f . splice ( 1 , 1 ) , "\\" !== l . substr ( l . length - 1 ) && ( f [ 1 ] = ( f [ 1 ] || "" ) . replace ( m , "" ) , c = q . find [ h ] ( f , d , b ) , null != c ) ) { a = a . replace ( q . match [ h ] , "" ) ; break } c || ( c = "undefined" != typeof d . getElementsByTagName ? d . getElementsByTagName ( "*" ) : [ ] ) ; return { set : c , expr : a } } ; p . filter = function ( a , d , b , e ) { for ( var g , f , h , l , k , s , m , n , r = a , t = [ ] , R = d , Q = d && d [ 0 ] && p . isXML ( d [ 0 ] ) ; a && d . length ; ) { for ( h in q . filter ) if ( null != ( g = q . leftMatch [ h ] . exec ( a ) ) && g [ 2 ] && ( s = q . filter [ h ] , k = g [ 1 ] , f = ! 1 , g . splice ( 1 , 1 ) , "\\" !== k . substr ( k . length -
1 ) ) ) { R === t && ( t = [ ] ) ; if ( q . preFilter [ h ] ) if ( g = q . preFilter [ h ] ( g , R , b , t , e , Q ) , ! g ) f = l = ! 0 ; else if ( ! 0 === g ) continue ; if ( g ) for ( m = 0 ; null != ( k = R [ m ] ) ; m ++ ) k && ( l = s ( k , g , m , R ) , n = e ^ l , b && null != l ? n ? f = ! 0 : R [ m ] = ! 1 : n && ( t . push ( k ) , f = ! 0 ) ) ; if ( l !== c ) { b || ( R = t ) ; a = a . replace ( q . match [ h ] , "" ) ; if ( ! f ) return [ ] ; break } } if ( a === r ) if ( null == f ) p . error ( a ) ; else break ; r = a } return R } ; p . error = function ( a ) { throw "Syntax error, unrecognized expression: " + a ; } ; var t = p . getText = function ( a ) { var d , b ; d = a . nodeType ; var c = "" ; if ( d ) if ( 1 === d ) { if ( "string" == typeof a . textContent ) return a . textContent ;
if ( "string" == typeof a . innerText ) return a . innerText . replace ( n , "" ) ; for ( a = a . firstChild ; a ; a = a . nextSibling ) c += t ( a ) } else { if ( 3 === d || 4 === d ) return a . nodeValue } else for ( d = 0 ; b = a [ d ] ; d ++ ) 8 !== b . nodeType && ( c += t ( b ) ) ; return c } , q = p . selectors = { order : [ "ID" , "NAME" , "TAG" ] , match : { ID : /#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/ , CLASS : /\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/ , NAME : /\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/ , ATTR : /\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/ ,
TAG : /^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/ , CHILD : /:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/ , POS : /:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/ , PSEUDO : /:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/ } , leftMatch : { } , attrMap : { "class" : "className" , "for" : "htmlFor" } , attrHandle : { href : function ( a ) { return a . getAttribute ( "href" ) } , type : function ( a ) { return a . getAttribute ( "type" ) } } , relative : { "+" : function ( a , d ) { var b =
"string" == typeof d , c = b && ! r . test ( d ) , b = b && ! c ; c && ( d = d . toLowerCase ( ) ) ; for ( var c = 0 , e = a . length , g ; c < e ; c ++ ) if ( g = a [ c ] ) { for ( ; ( g = g . previousSibling ) && 1 !== g . nodeType ; ) ; a [ c ] = b || g && g . nodeName . toLowerCase ( ) === d ? g || ! 1 : g === d } b && p . filter ( d , a , ! 0 ) } , ">" : function ( a , d ) { var b , c = "string" == typeof d , e = 0 , g = a . length ; if ( c && ! r . test ( d ) ) for ( d = d . toLowerCase ( ) ; e < g ; e ++ ) { if ( b = a [ e ] ) b = b . parentNode , a [ e ] = b . nodeName . toLowerCase ( ) === d ? b : ! 1 } else { for ( ; e < g ; e ++ ) ( b = a [ e ] ) && ( a [ e ] = c ? b . parentNode : b . parentNode === d ) ; c && p . filter ( d , a , ! 0 ) } } , "" : function ( b ,
c , e ) { var f , h = g ++ , l = a ; "string" == typeof c && ! r . test ( c ) && ( c = c . toLowerCase ( ) , f = c , l = d ) ; l ( "parentNode" , c , h , b , f , e ) } , "~" : function ( b , c , e ) { var f , h = g ++ , l = a ; "string" == typeof c && ! r . test ( c ) && ( c = c . toLowerCase ( ) , f = c , l = d ) ; l ( "previousSibling" , c , h , b , f , e ) } } , find : { ID : function ( a , d , c ) { if ( "undefined" != typeof d . getElementById && ! c ) return ( a = d . getElementById ( a [ 1 ] ) ) && a . parentNode ? [ a ] : [ ] } , NAME : function ( a , d ) { if ( "undefined" != typeof d . getElementsByName ) { for ( var c = [ ] , b = d . getElementsByName ( a [ 1 ] ) , e = 0 , g = b . length ; e < g ; e ++ ) b [ e ] . getAttribute ( "name" ) ===
a [ 1 ] && c . push ( b [ e ] ) ; return 0 === c . length ? null : c } } , TAG : function ( a , d ) { if ( "undefined" != typeof d . getElementsByTagName ) return d . getElementsByTagName ( a [ 1 ] ) } } , preFilter : { CLASS : function ( a , d , c , b , e , g ) { a = " " + a [ 1 ] . replace ( m , "" ) + " " ; if ( g ) return a ; g = 0 ; for ( var f ; null != ( f = d [ g ] ) ; g ++ ) f && ( e ^ ( f . className && 0 <= ( " " + f . className + " " ) . replace ( /[\t\n\r]/g , " " ) . indexOf ( a ) ) ? c || b . push ( f ) : c && ( d [ g ] = ! 1 ) ) ; return ! 1 } , ID : function ( a ) { return a [ 1 ] . replace ( m , "" ) } , TAG : function ( a , d ) { return a [ 1 ] . replace ( m , "" ) . toLowerCase ( ) } , CHILD : function ( a ) { if ( "nth" ===
a [ 1 ] ) { a [ 2 ] || p . error ( a [ 0 ] ) ; a [ 2 ] = a [ 2 ] . replace ( /^\+|\s*/g , "" ) ; var d = /(-?)(\d*)(?:n([+\-]?\d*))?/ . exec ( "even" === a [ 2 ] && "2n" || "odd" === a [ 2 ] && "2n+1" || ! /\D/ . test ( a [ 2 ] ) && "0n+" + a [ 2 ] || a [ 2 ] ) ; a [ 2 ] = d [ 1 ] + ( d [ 2 ] || 1 ) - 0 ; a [ 3 ] = d [ 3 ] - 0 } else a [ 2 ] && p . error ( a [ 0 ] ) ; a [ 0 ] = g ++ ; return a } , ATTR : function ( a , d , c , b , e , g ) { d = a [ 1 ] = a [ 1 ] . replace ( m , "" ) ; ! g && q . attrMap [ d ] && ( a [ 1 ] = q . attrMap [ d ] ) ; a [ 4 ] = ( a [ 4 ] || a [ 5 ] || "" ) . replace ( m , "" ) ; "~=" === a [ 2 ] && ( a [ 4 ] = " " + a [ 4 ] + " " ) ; return a } , PSEUDO : function ( a , d , c , e , g ) { if ( "not" === a [ 1 ] ) if ( 1 < ( b . exec ( a [ 3 ] ) || "" ) . length ||
/^\w/ . test ( a [ 3 ] ) ) a [ 3 ] = p ( a [ 3 ] , null , null , d ) ; else return a = p . filter ( a [ 3 ] , d , c , 1 ^ g ) , c || e . push . apply ( e , a ) , ! 1 ; else if ( q . match . POS . test ( a [ 0 ] ) || q . match . CHILD . test ( a [ 0 ] ) ) return ! 0 ; return a } , POS : function ( a ) { a . unshift ( ! 0 ) ; return a } } , filters : { enabled : function ( a ) { return ! 1 === a . disabled && "hidden" !== a . type } , disabled : function ( a ) { return ! 0 === a . disabled } , checked : function ( a ) { return ! 0 === a . checked } , selected : function ( a ) { a . parentNode && a . parentNode . selectedIndex ; return ! 0 === a . selected } , parent : function ( a ) { return ! ! a . firstChild } ,
empty : function ( a ) { return ! a . firstChild } , has : function ( a , d , c ) { return ! ! p ( c [ 3 ] , a ) . length } , header : function ( a ) { return /h\d/i . test ( a . nodeName ) } , text : function ( a ) { var d = a . getAttribute ( "type" ) , c = a . type ; return "input" === a . nodeName . toLowerCase ( ) && "text" === c && ( d === c || null === d ) } , radio : function ( a ) { return "input" === a . nodeName . toLowerCase ( ) && "radio" === a . type } , checkbox : function ( a ) { return "input" === a . nodeName . toLowerCase ( ) && "checkbox" === a . type } , file : function ( a ) { return "input" === a . nodeName . toLowerCase ( ) && "file" === a . type } ,
password : function ( a ) { return "input" === a . nodeName . toLowerCase ( ) && "password" === a . type } , submit : function ( a ) { var d = a . nodeName . toLowerCase ( ) ; return ( "input" === d || "button" === d ) && "submit" === a . type } , image : function ( a ) { return "input" === a . nodeName . toLowerCase ( ) && "image" === a . type } , reset : function ( a ) { var d = a . nodeName . toLowerCase ( ) ; return ( "input" === d || "button" === d ) && "reset" === a . type } , button : function ( a ) { var d = a . nodeName . toLowerCase ( ) ; return "input" === d && "button" === a . type || "button" === d } , input : function ( a ) { return /input|select|textarea|button/i . test ( a . nodeName ) } ,
focus : function ( a ) { return a === a . ownerDocument . activeElement } } , setFilters : { first : function ( a , d ) { return 0 === d } , last : function ( a , d , c , b ) { return d === b . length - 1 } , even : function ( a , d ) { return 0 === d % 2 } , odd : function ( a , d ) { return 1 === d % 2 } , lt : function ( a , d , c ) { return d < c [ 3 ] - 0 } , gt : function ( a , d , c ) { return d > c [ 3 ] - 0 } , nth : function ( a , d , c ) { return c [ 3 ] - 0 === d } , eq : function ( a , d , c ) { return c [ 3 ] - 0 === d } } , filter : { PSEUDO : function ( a , d , c , b ) { var e = d [ 1 ] , g = q . filters [ e ] ; if ( g ) return g ( a , c , d , b ) ; if ( "contains" === e ) return 0 <= ( a . textContent || a . innerText ||
t ( [ a ] ) || "" ) . indexOf ( d [ 3 ] ) ; if ( "not" === e ) { d = d [ 3 ] ; c = 0 ; for ( b = d . length ; c < b ; c ++ ) if ( d [ c ] === a ) return ! 1 ; return ! 0 } p . error ( e ) } , CHILD : function ( a , d ) { var c , b , g , f , h , l ; c = d [ 1 ] ; l = a ; switch ( c ) { case "only" : case "first" : for ( ; l = l . previousSibling ; ) if ( 1 === l . nodeType ) return ! 1 ; if ( "first" === c ) return ! 0 ; l = a ; case "last" : for ( ; l = l . nextSibling ; ) if ( 1 === l . nodeType ) return ! 1 ; return ! 0 ; case "nth" : c = d [ 2 ] ; b = d [ 3 ] ; if ( 1 === c && 0 === b ) return ! 0 ; g = d [ 0 ] ; if ( ( f = a . parentNode ) && ( f [ e ] !== g || ! a . nodeIndex ) ) { h = 0 ; for ( l = f . firstChild ; l ; l = l . nextSibling ) 1 === l . nodeType &&
( l . nodeIndex = ++ h ) ; f [ e ] = g } l = a . nodeIndex - b ; return 0 === c ? 0 === l : 0 === l % c && 0 <= l / c } } , ID : function ( a , d ) { return 1 === a . nodeType && a . getAttribute ( "id" ) === d } , TAG : function ( a , d ) { return "*" === d && 1 === a . nodeType || ! ! a . nodeName && a . nodeName . toLowerCase ( ) === d } , CLASS : function ( a , d ) { return - 1 < ( " " + ( a . className || a . getAttribute ( "class" ) ) + " " ) . indexOf ( d ) } , ATTR : function ( a , d ) { var c = d [ 1 ] , c = p . attr ? p . attr ( a , c ) : q . attrHandle [ c ] ? q . attrHandle [ c ] ( a ) : null != a [ c ] ? a [ c ] : a . getAttribute ( c ) , b = c + "" , e = d [ 2 ] , g = d [ 4 ] ; return null == c ? "!=" === e : ! e && p . attr ?
null != c : "=" === e ? b === g : "*=" === e ? 0 <= b . indexOf ( g ) : "~=" === e ? 0 <= ( " " + b + " " ) . indexOf ( g ) : g ? "!=" === e ? b !== g : "^=" === e ? 0 === b . indexOf ( g ) : "$=" === e ? b . substr ( b . length - g . length ) === g : "|=" === e ? b === g || b . substr ( 0 , g . length + 1 ) === g + "-" : ! 1 : b && ! 1 !== c } , POS : function ( a , d , c , b ) { var e = q . setFilters [ d [ 2 ] ] ; if ( e ) return e ( a , c , d , b ) } } } , x = q . match . POS , w = function ( a , d ) { return "\\" + ( d - 0 + 1 ) } , B ; for ( B in q . match ) q . match [ B ] = RegExp ( q . match [ B ] . source + /(?![^\[]*\])(?![^\(]*\))/ . source ) , q . leftMatch [ B ] = RegExp ( /(^(?:.|\r|\n)*?)/ . source + q . match [ B ] . source . replace ( /\\(\d+)/g ,
w ) ) ; var v = function ( a , d ) { a = Array . prototype . slice . call ( a , 0 ) ; return d ? ( d . push . apply ( d , a ) , d ) : a } ; try { Array . prototype . slice . call ( u . documentElement . childNodes , 0 ) [ 0 ] . nodeType } catch ( A ) { v = function ( a , d ) { var c = 0 , b = d || [ ] ; if ( "[object Array]" === f . call ( a ) ) Array . prototype . push . apply ( b , a ) ; else if ( "number" == typeof a . length ) for ( var e = a . length ; c < e ; c ++ ) b . push ( a [ c ] ) ; else for ( ; a [ c ] ; c ++ ) b . push ( a [ c ] ) ; return b } } var z , y ; u . documentElement . compareDocumentPosition ? z = function ( a , d ) { return a === d ? ( h = ! 0 , 0 ) : a . compareDocumentPosition &&
d . compareDocumentPosition ? a . compareDocumentPosition ( d ) & 4 ? - 1 : 1 : a . compareDocumentPosition ? - 1 : 1 } : ( z = function ( a , d ) { if ( a === d ) return h = ! 0 , 0 ; if ( a . sourceIndex && d . sourceIndex ) return a . sourceIndex - d . sourceIndex ; var c , b , e = [ ] , g = [ ] ; c = a . parentNode ; b = d . parentNode ; var f = c ; if ( c === b ) return y ( a , d ) ; if ( ! c ) return - 1 ; if ( ! b ) return 1 ; for ( ; f ; ) e . unshift ( f ) , f = f . parentNode ; for ( f = b ; f ; ) g . unshift ( f ) , f = f . parentNode ; c = e . length ; b = g . length ; for ( f = 0 ; f < c && f < b ; f ++ ) if ( e [ f ] !== g [ f ] ) return y ( e [ f ] , g [ f ] ) ; return f === c ? y ( a , g [ f ] , - 1 ) : y ( e [ f ] , d , 1 ) } ,
y = function ( a , d , c ) { if ( a === d ) return c ; for ( a = a . nextSibling ; a ; ) { if ( a === d ) return - 1 ; a = a . nextSibling } return 1 } ) ; ( function ( ) { var a = u . createElement ( "div" ) , d = "script" + ( new Date ) . getTime ( ) , b = u . documentElement ; a . innerHTML = "<a name='" + d + "'/>" ; b . insertBefore ( a , b . firstChild ) ; u . getElementById ( d ) && ( q . find . ID = function ( a , d , b ) { if ( "undefined" != typeof d . getElementById && ! b ) return ( d = d . getElementById ( a [ 1 ] ) ) ? d . id === a [ 1 ] || "undefined" != typeof d . getAttributeNode && d . getAttributeNode ( "id" ) . nodeValue === a [ 1 ] ? [ d ] : c : [ ] } , q . filter . ID =
function ( a , d ) { var c = "undefined" != typeof a . getAttributeNode && a . getAttributeNode ( "id" ) ; return 1 === a . nodeType && c && c . nodeValue === d } ) ; b . removeChild ( a ) ; b = a = null } ) ( ) ; ( function ( ) { var a = u . createElement ( "div" ) ; a . appendChild ( u . createComment ( "" ) ) ; 0 < a . getElementsByTagName ( "*" ) . length && ( q . find . TAG = function ( a , d ) { var c = d . getElementsByTagName ( a [ 1 ] ) ; if ( "*" === a [ 1 ] ) { for ( var b = [ ] , e = 0 ; c [ e ] ; e ++ ) 1 === c [ e ] . nodeType && b . push ( c [ e ] ) ; c = b } return c } ) ; a . innerHTML = "<a href='#'></a>" ; a . firstChild && "undefined" != typeof a . firstChild . getAttribute &&
"#" !== a . firstChild . getAttribute ( "href" ) && ( q . attrHandle . href = function ( a ) { return a . getAttribute ( "href" , 2 ) } ) ; a = null } ) ( ) ; u . querySelectorAll && function ( ) { var a = p , d = u . createElement ( "div" ) ; d . innerHTML = "<p class='TEST'></p>" ; if ( ! d . querySelectorAll || 0 !== d . querySelectorAll ( ".TEST" ) . length ) { p = function ( d , c , b , e ) { c = c || u ; if ( ! e && ! p . isXML ( c ) ) { var g = /^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/ . exec ( d ) ; if ( g && ( 1 === c . nodeType || 9 === c . nodeType ) ) { if ( g [ 1 ] ) return v ( c . getElementsByTagName ( d ) , b ) ; if ( g [ 2 ] && q . find . CLASS && c . getElementsByClassName ) return v ( c . getElementsByClassName ( g [ 2 ] ) ,
b ) } if ( 9 === c . nodeType ) { if ( "body" === d && c . body ) return v ( [ c . body ] , b ) ; if ( g && g [ 3 ] ) { var f = c . getElementById ( g [ 3 ] ) ; if ( ! f || ! f . parentNode ) return v ( [ ] , b ) ; if ( f . id === g [ 3 ] ) return v ( [ f ] , b ) } try { return v ( c . querySelectorAll ( d ) , b ) } catch ( h ) { } } else if ( 1 === c . nodeType && "object" !== c . nodeName . toLowerCase ( ) ) { var g = c , l = ( f = c . getAttribute ( "id" ) ) || "__sizzle__" , k = c . parentNode , s = /^\s*[+~]/ . test ( d ) ; f ? l = l . replace ( /'/g , "\\$&" ) : c . setAttribute ( "id" , l ) ; s && k && ( c = c . parentNode ) ; try { if ( ! s || k ) return v ( c . querySelectorAll ( "[id='" + l + "'] " + d ) ,
b ) } catch ( m ) { } finally { f || g . removeAttribute ( "id" ) } } } return a ( d , c , b , e ) } ; for ( var c in a ) p [ c ] = a [ c ] ; d = null } } ( ) ; ( function ( ) { var a = u . documentElement , d = a . matchesSelector || a . mozMatchesSelector || a . webkitMatchesSelector || a . msMatchesSelector ; if ( d ) { var c = ! d . call ( u . createElement ( "div" ) , "div" ) , b = ! 1 ; try { d . call ( u . documentElement , "[test!='']:sizzle" ) } catch ( e ) { b = ! 0 } p . matchesSelector = function ( a , e ) { e = e . replace ( /\=\s*([^'"\]]*)\s*\]/g , "='$1']" ) ; if ( ! p . isXML ( a ) ) try { if ( b || ! q . match . PSEUDO . test ( e ) && ! /!=/ . test ( e ) ) { var g = d . call ( a ,
e ) ; if ( g || ! c || a . document && 11 !== a . document . nodeType ) return g } } catch ( f ) { } return 0 < p ( e , null , null , [ a ] ) . length } } } ) ( ) ; ( function ( ) { var a = u . createElement ( "div" ) ; a . innerHTML = "<div class='test e'></div><div class='test'></div>" ; a . getElementsByClassName && 0 !== a . getElementsByClassName ( "e" ) . length && ( a . lastChild . className = "e" , 1 !== a . getElementsByClassName ( "e" ) . length && ( q . order . splice ( 1 , 0 , "CLASS" ) , q . find . CLASS = function ( a , d , c ) { if ( "undefined" != typeof d . getElementsByClassName && ! c ) return d . getElementsByClassName ( a [ 1 ] ) } ,
a = null ) ) } ) ( ) ; u . documentElement . contains ? p . contains = function ( a , d ) { return a !== d && ( a . contains ? a . contains ( d ) : ! 0 ) } : u . documentElement . compareDocumentPosition ? p . contains = function ( a , d ) { return ! ! ( a . compareDocumentPosition ( d ) & 16 ) } : p . contains = function ( ) { return ! 1 } ; p . isXML = function ( a ) { return ( a = ( a ? a . ownerDocument || a : 0 ) . documentElement ) ? "HTML" !== a . nodeName : ! 1 } ; var C = function ( a , d , c ) { var b , e = [ ] , g = "" ; for ( d = d . nodeType ? [ d ] : d ; b = q . match . PSEUDO . exec ( a ) ; ) g += b [ 0 ] , a = a . replace ( q . match . PSEUDO , "" ) ; a = q . relative [ a ] ? a + "*" : a ; b = 0 ;
for ( var f = d . length ; b < f ; b ++ ) p ( a , d [ b ] , e , c ) ; return p . filter ( g , e ) } ; p . attr = k . attr ; p . selectors . attrMap = { } ; k . find = p ; k . expr = p . selectors ; k . expr [ ":" ] = k . expr . filters ; k . unique = p . uniqueSort ; k . text = p . getText ; k . isXMLDoc = p . isXML ; k . contains = p . contains } ) ( ) ; var Wb = /Until$/ , yb = /^(?:parents|prevUntil|prevAll)/ , Xb = /,/ , mc = /^.[^:#\[\.,]*$/ , rc = Array . prototype . slice , Yb = k . expr . match . POS , sc = { children : ! 0 , contents : ! 0 , next : ! 0 , prev : ! 0 } ; k . fn . extend ( { find : function ( a ) { var d = this , c , b ; if ( "string" != typeof a ) return k ( a ) . filter ( function ( ) { c =
0 ; for ( b = d . length ; c < b ; c ++ ) if ( k . contains ( d [ c ] , this ) ) return ! 0 } ) ; var e = this . pushStack ( "" , "find" , a ) , g , f , h ; c = 0 ; for ( b = this . length ; c < b ; c ++ ) if ( g = e . length , k . find ( a , this [ c ] , e ) , 0 < c ) for ( f = g ; f < e . length ; f ++ ) for ( h = 0 ; h < g ; h ++ ) if ( e [ h ] === e [ f ] ) { e . splice ( f -- , 1 ) ; break } return e } , has : function ( a ) { var d = k ( a ) ; return this . filter ( function ( ) { for ( var a = 0 , c = d . length ; a < c ; a ++ ) if ( k . contains ( this , d [ a ] ) ) return ! 0 } ) } , not : function ( a ) { return this . pushStack ( v ( this , a , ! 1 ) , "not" , a ) } , filter : function ( a ) { return this . pushStack ( v ( this , a , ! 0 ) , "filter" ,
a ) } , is : function ( a ) { return ! ! a && ( "string" == typeof a ? Yb . test ( a ) ? 0 <= k ( a , this . context ) . index ( this [ 0 ] ) : 0 < k . filter ( a , this ) . length : 0 < this . filter ( a ) . length ) } , closest : function ( a , d ) { var c = [ ] , b , e , g = this [ 0 ] ; if ( k . isArray ( a ) ) { for ( e = 1 ; g && g . ownerDocument && g !== d ; ) { for ( b = 0 ; b < a . length ; b ++ ) k ( g ) . is ( a [ b ] ) && c . push ( { selector : a [ b ] , elem : g , level : e } ) ; g = g . parentNode ; e ++ } return c } var f = Yb . test ( a ) || "string" != typeof a ? k ( a , d || this . context ) : 0 ; b = 0 ; for ( e = this . length ; b < e ; b ++ ) for ( g = this [ b ] ; g ; ) { if ( f ? - 1 < f . index ( g ) : k . find . matchesSelector ( g ,
a ) ) { c . push ( g ) ; break } g = g . parentNode ; if ( ! g || ! g . ownerDocument || g === d || 11 === g . nodeType ) break } c = 1 < c . length ? k . unique ( c ) : c ; return this . pushStack ( c , "closest" , a ) } , index : function ( a ) { return a ? "string" == typeof a ? k . inArray ( this [ 0 ] , k ( a ) ) : k . inArray ( a . jquery ? a [ 0 ] : a , this ) : this [ 0 ] && this [ 0 ] . parentNode ? this . prevAll ( ) . length : - 1 } , add : function ( a , d ) { var c = "string" == typeof a ? k ( a , d ) : k . makeArray ( a && a . nodeType ? [ a ] : a ) , b = k . merge ( this . get ( ) , c ) ; return this . pushStack ( C ( c [ 0 ] ) || C ( b [ 0 ] ) ? b : k . unique ( b ) ) } , andSelf : function ( ) { return this . add ( this . prevObject ) } } ) ;
k . each ( { parent : function ( a ) { return ( a = a . parentNode ) && 11 !== a . nodeType ? a : null } , parents : function ( a ) { return k . dir ( a , "parentNode" ) } , parentsUntil : function ( a , d , c ) { return k . dir ( a , "parentNode" , c ) } , next : function ( a ) { return k . nth ( a , 2 , "nextSibling" ) } , prev : function ( a ) { return k . nth ( a , 2 , "previousSibling" ) } , nextAll : function ( a ) { return k . dir ( a , "nextSibling" ) } , prevAll : function ( a ) { return k . dir ( a , "previousSibling" ) } , nextUntil : function ( a , d , c ) { return k . dir ( a , "nextSibling" , c ) } , prevUntil : function ( a , d , c ) { return k . dir ( a , "previousSibling" ,
c ) } , siblings : function ( a ) { return k . sibling ( a . parentNode . firstChild , a ) } , children : function ( a ) { return k . sibling ( a . firstChild ) } , contents : function ( a ) { return k . nodeName ( a , "iframe" ) ? a . contentDocument || a . contentWindow . document : k . makeArray ( a . childNodes ) } } , function ( a , d ) { k . fn [ a ] = function ( c , b ) { var e = k . map ( this , d , c ) , g = rc . call ( arguments ) ; Wb . test ( a ) || ( b = c ) ; b && "string" == typeof b && ( e = k . filter ( b , e ) ) ; e = 1 < this . length && ! sc [ a ] ? k . unique ( e ) : e ; ( 1 < this . length || Xb . test ( b ) ) && yb . test ( a ) && ( e = e . reverse ( ) ) ; return this . pushStack ( e ,
a , g . join ( "," ) ) } } ) ; k . extend ( { filter : function ( a , d , c ) { c && ( a = ":not(" + a + ")" ) ; return 1 === d . length ? k . find . matchesSelector ( d [ 0 ] , a ) ? [ d [ 0 ] ] : [ ] : k . find . matches ( a , d ) } , dir : function ( a , d , b ) { var e = [ ] ; for ( a = a [ d ] ; a && 9 !== a . nodeType && ( b === c || 1 !== a . nodeType || ! k ( a ) . is ( b ) ) ; ) 1 === a . nodeType && e . push ( a ) , a = a [ d ] ; return e } , nth : function ( a , d , c , b ) { d = d || 1 ; for ( b = 0 ; a && ( 1 !== a . nodeType || ++ b !== d ) ; a = a [ c ] ) ; return a } , sibling : function ( a , d ) { for ( var c = [ ] ; a ; a = a . nextSibling ) 1 === a . nodeType && a !== d && c . push ( a ) ; return c } } ) ; var Tb = "abbr article aside audio canvas datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video" ,
Zb = / jQuery\d+="(?:\d+|null)"/g , zb = /^\s+/ , $b = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig , ac = /<([\w:]+)/ , tc = /<tbody/i , uc = /<|&#?\w+;/ , vc = /<(?:script|style)/i , wc = /<(?:script|object|embed|option|style)/i , xc = RegExp ( "<(?:" + Tb . replace ( " " , "|" ) + ")" , "i" ) , bc = /checked\s*(?:[^=]|=\s*.checked.)/i , Ab = /\/(java|ecma)script/i , Sb = /^\s*<!(?:\[CDATA\[|\-\-)/ , da = { option : [ 1 , "<select multiple='multiple'>" , "</select>" ] , legend : [ 1 , "<fieldset>" , "</fieldset>" ] , thead : [ 1 , "<table>" , "</table>" ] , tr : [ 2 ,
"<table><tbody>" , "</tbody></table>" ] , td : [ 3 , "<table><tbody><tr>" , "</tr></tbody></table>" ] , col : [ 2 , "<table><tbody></tbody><colgroup>" , "</colgroup></table>" ] , area : [ 1 , "<map>" , "</map>" ] , _default : [ 0 , "" , "" ] } , db = z ( u ) ; da . optgroup = da . option ; da . tbody = da . tfoot = da . colgroup = da . caption = da . thead ; da . th = da . td ; k . support . htmlSerialize || ( da . _default = [ 1 , "div<div>" , "</div>" ] ) ; k . fn . extend ( { text : function ( a ) { return k . isFunction ( a ) ? this . each ( function ( d ) { var c = k ( this ) ; c . text ( a . call ( this , d , c . text ( ) ) ) } ) : "object" != typeof a && a !==
c ? this . empty ( ) . append ( ( this [ 0 ] && this [ 0 ] . ownerDocument || u ) . createTextNode ( a ) ) : k . text ( this ) } , wrapAll : function ( a ) { if ( k . isFunction ( a ) ) return this . each ( function ( d ) { k ( this ) . wrapAll ( a . call ( this , d ) ) } ) ; if ( this [ 0 ] ) { var d = k ( a , this [ 0 ] . ownerDocument ) . eq ( 0 ) . clone ( ! 0 ) ; this [ 0 ] . parentNode && d . insertBefore ( this [ 0 ] ) ; d . map ( function ( ) { for ( var a = this ; a . firstChild && 1 === a . firstChild . nodeType ; ) a = a . firstChild ; return a } ) . append ( this ) } return this } , wrapInner : function ( a ) { return k . isFunction ( a ) ? this . each ( function ( d ) { k ( this ) . wrapInner ( a . call ( this ,
d ) ) } ) : this . each ( function ( ) { var d = k ( this ) , c = d . contents ( ) ; c . length ? c . wrapAll ( a ) : d . append ( a ) } ) } , wrap : function ( a ) { return this . each ( function ( ) { k ( this ) . wrapAll ( a ) } ) } , unwrap : function ( ) { return this . parent ( ) . each ( function ( ) { k . nodeName ( this , "body" ) || k ( this ) . replaceWith ( this . childNodes ) } ) . end ( ) } , append : function ( ) { return this . domManip ( arguments , ! 0 , function ( a ) { 1 === this . nodeType && this . appendChild ( a ) } ) } , prepend : function ( ) { return this . domManip ( arguments , ! 0 , function ( a ) { 1 === this . nodeType && this . insertBefore ( a , this . firstChild ) } ) } ,
before : function ( ) { if ( this [ 0 ] && this [ 0 ] . parentNode ) return this . domManip ( arguments , ! 1 , function ( a ) { this . parentNode . insertBefore ( a , this ) } ) ; if ( arguments . length ) { var a = k ( arguments [ 0 ] ) ; a . push . apply ( a , this . toArray ( ) ) ; return this . pushStack ( a , "before" , arguments ) } } , after : function ( ) { if ( this [ 0 ] && this [ 0 ] . parentNode ) return this . domManip ( arguments , ! 1 , function ( a ) { this . parentNode . insertBefore ( a , this . nextSibling ) } ) ; if ( arguments . length ) { var a = this . pushStack ( this , "after" , arguments ) ; a . push . apply ( a , k ( arguments [ 0 ] ) . toArray ( ) ) ;
return a } } , remove : function ( a , d ) { for ( var c = 0 , b ; null != ( b = this [ c ] ) ; c ++ ) if ( ! a || k . filter ( a , [ b ] ) . length ) ! d && 1 === b . nodeType && ( k . cleanData ( b . getElementsByTagName ( "*" ) ) , k . cleanData ( [ b ] ) ) , b . parentNode && b . parentNode . removeChild ( b ) ; return this } , empty : function ( ) { for ( var a = 0 , d ; null != ( d = this [ a ] ) ; a ++ ) for ( 1 === d . nodeType && k . cleanData ( d . getElementsByTagName ( "*" ) ) ; d . firstChild ; ) d . removeChild ( d . firstChild ) ; return this } , clone : function ( a , d ) { a = null == a ? ! 1 : a ; d = null == d ? a : d ; return this . map ( function ( ) { return k . clone ( this , a , d ) } ) } ,
html : function ( a ) { if ( a === c ) return this [ 0 ] && 1 === this [ 0 ] . nodeType ? this [ 0 ] . innerHTML . replace ( Zb , "" ) : null ; if ( "string" != typeof a || vc . test ( a ) || ! k . support . leadingWhitespace && zb . test ( a ) || da [ ( ac . exec ( a ) || [ "" , "" ] ) [ 1 ] . toLowerCase ( ) ] ) k . isFunction ( a ) ? this . each ( function ( d ) { var c = k ( this ) ; c . html ( a . call ( this , d , c . html ( ) ) ) } ) : this . empty ( ) . append ( a ) ; else { a = a . replace ( $b , "<$1></$2>" ) ; try { for ( var d = 0 , b = this . length ; d < b ; d ++ ) 1 === this [ d ] . nodeType && ( k . cleanData ( this [ d ] . getElementsByTagName ( "*" ) ) , this [ d ] . innerHTML = a ) } catch ( e ) { this . empty ( ) . append ( a ) } } return this } ,
replaceWith : function ( a ) { if ( this [ 0 ] && this [ 0 ] . parentNode ) { if ( k . isFunction ( a ) ) return this . each ( function ( d ) { var c = k ( this ) , b = c . html ( ) ; c . replaceWith ( a . call ( this , d , b ) ) } ) ; "string" != typeof a && ( a = k ( a ) . detach ( ) ) ; return this . each ( function ( ) { var d = this . nextSibling , c = this . parentNode ; k ( this ) . remove ( ) ; d ? k ( d ) . before ( a ) : k ( c ) . append ( a ) } ) } return this . length ? this . pushStack ( k ( k . isFunction ( a ) ? a ( ) : a ) , "replaceWith" , a ) : this } , detach : function ( a ) { return this . remove ( a , ! 0 ) } , domManip : function ( a , d , b ) { var e , g , f , h = a [ 0 ] , l = [ ] ; if ( ! k . support . checkClone &&
3 === arguments . length && "string" == typeof h && bc . test ( h ) ) return this . each ( function ( ) { k ( this ) . domManip ( a , d , b , ! 0 ) } ) ; if ( k . isFunction ( h ) ) return this . each ( function ( e ) { var g = k ( this ) ; a [ 0 ] = h . call ( this , e , d ? g . html ( ) : c ) ; g . domManip ( a , d , b ) } ) ; if ( this [ 0 ] ) { f = h && h . parentNode ; k . support . parentNode && f && 11 === f . nodeType && f . childNodes . length === this . length ? e = { fragment : f } : e = k . buildFragment ( a , this , l ) ; f = e . fragment ; 1 === f . childNodes . length ? g = f = f . firstChild : g = f . firstChild ; if ( g ) { d = d && k . nodeName ( g , "tr" ) ; for ( var m = 0 , n = this . length , r =
n - 1 ; m < n ; m ++ ) b . call ( d ? y ( this [ m ] , g ) : this [ m ] , e . cacheable || 1 < n && m < r ? k . clone ( f , ! 0 , ! 0 ) : f ) } l . length && k . each ( l , t ) } return this } } ) ; k . buildFragment = function ( a , d , c ) { var b , e , g , f , h = a [ 0 ] ; d && d [ 0 ] && ( f = d [ 0 ] . ownerDocument || d [ 0 ] ) ; f . createDocumentFragment || ( f = u ) ; 1 === a . length && "string" == typeof h && 512 > h . length && f === u && "<" === h . charAt ( 0 ) && ! ( wc . test ( h ) || ! k . support . checkClone && bc . test ( h ) || k . support . unknownElems ) && xc . test ( h ) && ( e = ! 0 , g = k . fragments [ h ] , g && 1 !== g && ( b = g ) ) ; b || ( b = f . createDocumentFragment ( ) , k . clean ( a , f , b , c ) ) ; e && ( k . fragments [ h ] =
g ? b : 1 ) ; return { fragment : b , cacheable : e } } ; k . fragments = { } ; k . each ( { appendTo : "append" , prependTo : "prepend" , insertBefore : "before" , insertAfter : "after" , replaceAll : "replaceWith" } , function ( a , d ) { k . fn [ a ] = function ( c ) { var b = [ ] ; c = k ( c ) ; var e = 1 === this . length && this [ 0 ] . parentNode ; if ( e && 11 === e . nodeType && 1 === e . childNodes . length && 1 === c . length ) return c [ d ] ( this [ 0 ] ) , this ; for ( var e = 0 , g = c . length ; e < g ; e ++ ) { var f = ( 0 < e ? this . clone ( ! 0 ) : this ) . get ( ) ; k ( c [ e ] ) [ d ] ( f ) ; b = b . concat ( f ) } return this . pushStack ( b , a , c . selector ) } } ) ; k . extend ( { clone : function ( a ,
d , c ) { var b = a . cloneNode ( ! 0 ) , e , g , f ; if ( ! ( k . support . noCloneEvent && k . support . noCloneChecked || 1 !== a . nodeType && 11 !== a . nodeType || k . isXMLDoc ( a ) ) ) for ( B ( a , b ) , e = w ( a ) , g = w ( b ) , f = 0 ; e [ f ] ; ++ f ) g [ f ] && B ( e [ f ] , g [ f ] ) ; if ( d && ( A ( a , b ) , c ) ) for ( e = w ( a ) , g = w ( b ) , f = 0 ; e [ f ] ; ++ f ) A ( e [ f ] , g [ f ] ) ; return b } , clean : function ( a , d , c , b ) { d = d || u ; "undefined" == typeof d . createElement && ( d = d . ownerDocument || d [ 0 ] && d [ 0 ] . ownerDocument || u ) ; for ( var e = [ ] , g , f = 0 , h ; null != ( h = a [ f ] ) ; f ++ ) if ( "number" == typeof h && ( h += "" ) , h ) { if ( "string" == typeof h ) if ( uc . test ( h ) ) { h = h . replace ( $b ,
"<$1></$2>" ) ; g = ( ac . exec ( h ) || [ "" , "" ] ) [ 1 ] . toLowerCase ( ) ; var l = da [ g ] || da . _default , m = l [ 0 ] , n = d . createElement ( "div" ) ; d === u ? db . appendChild ( n ) : z ( d ) . appendChild ( n ) ; for ( n . innerHTML = l [ 1 ] + h + l [ 2 ] ; m -- ; ) n = n . lastChild ; if ( ! k . support . tbody ) for ( m = tc . test ( h ) , l = "table" !== g || m ? "<table>" !== l [ 1 ] || m ? [ ] : n . childNodes : n . firstChild && n . firstChild . childNodes , g = l . length - 1 ; 0 <= g ; -- g ) k . nodeName ( l [ g ] , "tbody" ) && ! l [ g ] . childNodes . length && l [ g ] . parentNode . removeChild ( l [ g ] ) ; ! k . support . leadingWhitespace && zb . test ( h ) && n . insertBefore ( d . createTextNode ( zb . exec ( h ) [ 0 ] ) ,
n . firstChild ) ; h = n . childNodes } else h = d . createTextNode ( h ) ; var r ; if ( ! k . support . appendChecked ) if ( h [ 0 ] && "number" == typeof ( r = h . length ) ) for ( g = 0 ; g < r ; g ++ ) p ( h [ g ] ) ; else p ( h ) ; h . nodeType ? e . push ( h ) : e = k . merge ( e , h ) } if ( c ) for ( a = function ( a ) { return ! a . type || Ab . test ( a . type ) } , f = 0 ; e [ f ] ; f ++ ) ! b || ! k . nodeName ( e [ f ] , "script" ) || e [ f ] . type && "text/javascript" !== e [ f ] . type . toLowerCase ( ) ? ( 1 === e [ f ] . nodeType && ( d = k . grep ( e [ f ] . getElementsByTagName ( "script" ) , a ) , e . splice . apply ( e , [ f + 1 , 0 ] . concat ( d ) ) ) , c . appendChild ( e [ f ] ) ) : b . push ( e [ f ] . parentNode ?
e [ f ] . parentNode . removeChild ( e [ f ] ) : e [ f ] ) ; return e } , cleanData : function ( a ) { for ( var d , c , b = k . cache , e = k . event . special , g = k . support . deleteExpando , f = 0 , h ; null != ( h = a [ f ] ) ; f ++ ) if ( ! h . nodeName || ! k . noData [ h . nodeName . toLowerCase ( ) ] ) if ( c = h [ k . expando ] ) { if ( ( d = b [ c ] ) && d . events ) { for ( var l in d . events ) e [ l ] ? k . event . remove ( h , l ) : k . removeEvent ( h , l , d . handle ) ; d . handle && ( d . handle . elem = null ) } g ? delete h [ k . expando ] : h . removeAttribute && h . removeAttribute ( k . expando ) ; delete b [ c ] } } } ) ; var eb = /alpha\([^)]*\)/i , La = /opacity=([^)]*)/ , lb = /([A-Z]|^ms)/g ,
Fa = /^-?\d+(?:px)?$/i , cc = /^-?\d/ , ta = /^([\-+])=([\-+.\de]+)/ , mb = { position : "absolute" , visibility : "hidden" , display : "block" } , Qb = [ "Left" , "Right" ] , Rb = [ "Top" , "Bottom" ] , ya , Bb , Cb ; k . fn . css = function ( a , d ) { return 2 === arguments . length && d === c ? this : k . access ( this , a , d , ! 0 , function ( a , d , b ) { return b !== c ? k . style ( a , d , b ) : k . css ( a , d ) } ) } ; k . extend ( { cssHooks : { opacity : { get : function ( a , d ) { if ( d ) { var c = ya ( a , "opacity" , "opacity" ) ; return "" === c ? "1" : c } return a . style . opacity } } } , cssNumber : { fillOpacity : ! 0 , fontWeight : ! 0 , lineHeight : ! 0 , opacity : ! 0 ,
orphans : ! 0 , widows : ! 0 , zIndex : ! 0 , zoom : ! 0 } , cssProps : { "float" : k . support . cssFloat ? "cssFloat" : "styleFloat" } , style : function ( a , d , b , e ) { if ( a && 3 !== a . nodeType && 8 !== a . nodeType && a . style ) { var g , f = k . camelCase ( d ) , h = a . style , l = k . cssHooks [ f ] ; d = k . cssProps [ f ] || f ; if ( b === c ) return l && "get" in l && ( g = l . get ( a , ! 1 , e ) ) !== c ? g : h [ d ] ; e = typeof b ; "string" === e && ( g = ta . exec ( b ) ) && ( b = + ( g [ 1 ] + 1 ) * + g [ 2 ] + parseFloat ( k . css ( a , d ) ) , e = "number" ) ; if ( ! ( null == b || "number" === e && isNaN ( b ) || ( "number" === e && ! k . cssNumber [ f ] && ( b += "px" ) , l && "set" in l && ( b = l . set ( a , b ) ) ===
c ) ) ) try { h [ d ] = b } catch ( m ) { } } } , css : function ( a , d , b ) { var e , g ; d = k . camelCase ( d ) ; g = k . cssHooks [ d ] ; d = k . cssProps [ d ] || d ; "cssFloat" === d && ( d = "float" ) ; if ( g && "get" in g && ( e = g . get ( a , ! 0 , b ) ) !== c ) return e ; if ( ya ) return ya ( a , d ) } , swap : function ( a , d , c ) { var b = { } , e ; for ( e in d ) b [ e ] = a . style [ e ] , a . style [ e ] = d [ e ] ; c . call ( a ) ; for ( e in d ) a . style [ e ] = b [ e ] } } ) ; k . curCSS = k . css ; k . each ( [ "height" , "width" ] , function ( a , d ) { k . cssHooks [ d ] = { get : function ( a , c , b ) { var e ; if ( c ) { if ( 0 !== a . offsetWidth ) return n ( a , d , b ) ; k . swap ( a , mb , function ( ) { e = n ( a , d , b ) } ) ; return e } } ,
set : function ( a , d ) { if ( ! Fa . test ( d ) ) return d ; d = parseFloat ( d ) ; if ( 0 <= d ) return d + "px" } } } ) ; k . support . opacity || ( k . cssHooks . opacity = { get : function ( a , d ) { return La . test ( ( d && a . currentStyle ? a . currentStyle . filter : a . style . filter ) || "" ) ? parseFloat ( RegExp . $1 ) / 100 + "" : d ? "1" : "" } , set : function ( a , d ) { var c = a . style , b = a . currentStyle , e = k . isNumeric ( d ) ? "alpha(opacity=" + 100 * d + ")" : "" , g = b && b . filter || c . filter || "" ; c . zoom = 1 ; if ( 1 <= d && "" === k . trim ( g . replace ( eb , "" ) ) && ( c . removeAttribute ( "filter" ) , b && ! b . filter ) ) return ; c . filter = eb . test ( g ) ?
g . replace ( eb , e ) : g + " " + e } } ) ; k ( function ( ) { k . support . reliableMarginRight || ( k . cssHooks . marginRight = { get : function ( a , d ) { var c ; k . swap ( a , { display : "inline-block" } , function ( ) { d ? c = ya ( a , "margin-right" , "marginRight" ) : c = a . style . marginRight } ) ; return c } } ) } ) ; u . defaultView && u . defaultView . getComputedStyle && ( Bb = function ( a , d ) { var b , e ; d = d . replace ( lb , "-$1" ) . toLowerCase ( ) ; if ( ! ( e = a . ownerDocument . defaultView ) ) return c ; if ( e = e . getComputedStyle ( a , null ) ) b = e . getPropertyValue ( d ) , "" === b && ! k . contains ( a . ownerDocument . documentElement ,
a ) && ( b = k . style ( a , d ) ) ; return b } ) ; u . documentElement . currentStyle && ( Cb = function ( a , d ) { var c , b , e , g = a . currentStyle && a . currentStyle [ d ] , f = a . style ; null === g && f && ( e = f [ d ] ) && ( g = e ) ; ! Fa . test ( g ) && cc . test ( g ) && ( c = f . left , b = a . runtimeStyle && a . runtimeStyle . left , b && ( a . runtimeStyle . left = a . currentStyle . left ) , f . left = "fontSize" === d ? "1em" : g || 0 , g = f . pixelLeft + "px" , f . left = c , b && ( a . runtimeStyle . left = b ) ) ; return "" === g ? "auto" : g } ) ; ya = Bb || Cb ; k . expr && k . expr . filters && ( k . expr . filters . hidden = function ( a ) { var d = a . offsetHeight ; return 0 === a . offsetWidth &&
0 === d || ! k . support . reliableHiddenOffsets && "none" === ( a . style && a . style . display || k . css ( a , "display" ) ) } , k . expr . filters . visible = function ( a ) { return ! k . expr . filters . hidden ( a ) } ) ; var dc = /%20/g , tb = /\[\]$/ , Db = /\r?\n/g , ec = /#.*$/ , fc = /^(.*?):[ \t]*([^\r\n]*)\r?$/mg , Ma = /^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i , gc = /^(?:GET|HEAD)$/ , Eb = /^\/\// , Fb = /\?/ , yc = /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi , zc = /^(?:select|textarea)/i , Pb = /\s+/ , Ac =
/([?&])_=[^&]*/ , Gb = /^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/ , Hb = k . fn . load , Qa = { } , Ib = { } , Ga , Ha , Na = [ "*/" ] + [ "*" ] ; try { Ga = O . href } catch ( pa ) { Ga = u . createElement ( "a" ) , Ga . href = "" , Ga = Ga . href } Ha = Gb . exec ( Ga . toLowerCase ( ) ) || [ ] ; k . fn . extend ( { load : function ( a , d , b ) { if ( "string" != typeof a && Hb ) return Hb . apply ( this , arguments ) ; if ( ! this . length ) return this ; var e = a . indexOf ( " " ) ; if ( 0 <= e ) { var g = a . slice ( e , a . length ) ; a = a . slice ( 0 , e ) } e = "GET" ; d && ( k . isFunction ( d ) ? ( b = d , d = c ) : "object" == typeof d && ( d = k . param ( d , k . ajaxSettings . traditional ) ,
e = "POST" ) ) ; var f = this ; k . ajax ( { url : a , type : e , dataType : "html" , data : d , complete : function ( a , d , c ) { c = a . responseText ; a . isResolved ( ) && ( a . done ( function ( a ) { c = a } ) , f . html ( g ? k ( "<div>" ) . append ( c . replace ( yc , "" ) ) . find ( g ) : c ) ) ; b && f . each ( b , [ c , d , a ] ) } } ) ; return this } , serialize : function ( ) { return k . param ( this . serializeArray ( ) ) } , serializeArray : function ( ) { return this . map ( function ( ) { return this . elements ? k . makeArray ( this . elements ) : this } ) . filter ( function ( ) { return this . name && ! this . disabled && ( this . checked || zc . test ( this . nodeName ) ||
Ma . test ( this . type ) ) } ) . map ( function ( a , d ) { var c = k ( this ) . val ( ) ; return null == c ? null : k . isArray ( c ) ? k . map ( c , function ( a , c ) { return { name : d . name , value : a . replace ( Db , "\r\n" ) } } ) : { name : d . name , value : c . replace ( Db , "\r\n" ) } } ) . get ( ) } } ) ; k . each ( "ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend" . split ( " " ) , function ( a , d ) { k . fn [ d ] = function ( a ) { return this . bind ( d , a ) } } ) ; k . each ( [ "get" , "post" ] , function ( a , d ) { k [ d ] = function ( a , b , e , g ) { k . isFunction ( b ) && ( g = g || e , e = b , b = c ) ; return k . ajax ( { type : d , url : a , data : b , success : e , dataType : g } ) } } ) ;
k . extend ( { getScript : function ( a , d ) { return k . get ( a , c , d , "script" ) } , getJSON : function ( a , d , c ) { return k . get ( a , d , c , "json" ) } , ajaxSetup : function ( a , d ) { d ? m ( a , k . ajaxSettings ) : ( d = a , a = k . ajaxSettings ) ; m ( a , d ) ; return a } , ajaxSettings : { url : Ga , isLocal : /^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/ . test ( Ha [ 1 ] ) , global : ! 0 , type : "GET" , contentType : "application/x-www-form-urlencoded" , processData : ! 0 , async : ! 0 , accepts : { xml : "application/xml, text/xml" , html : "text/html" , text : "text/plain" , json : "application/json, text/javascript" ,
"*" : Na } , contents : { xml : /xml/ , html : /html/ , json : /json/ } , responseFields : { xml : "responseXML" , text : "responseText" } , converters : { "* text" : a . String , "text html" : ! 0 , "text json" : k . parseJSON , "text xml" : k . parseXML } , flatOptions : { context : ! 0 , url : ! 0 } } , ajaxPrefilter : r ( Qa ) , ajaxTransport : r ( Ib ) , ajax : function ( a , d ) { function b ( a , d , r , p ) { if ( 2 !== u ) { u = 2 ; B && clearTimeout ( B ) ; w = c ; t = p || "" ; y . readyState = 0 < a ? 4 : 0 ; var q , s , x ; p = d ; if ( r ) { var R = e , Y = y , v = R . contents , z = R . dataTypes , C = R . responseFields , G , D , E , L ; for ( D in C ) D in r && ( Y [ C [ D ] ] = r [ D ] ) ; for ( ; "*" ===
z [ 0 ] ; ) z . shift ( ) , G === c && ( G = R . mimeType || Y . getResponseHeader ( "content-type" ) ) ; if ( G ) for ( D in v ) if ( v [ D ] && v [ D ] . test ( G ) ) { z . unshift ( D ) ; break } if ( z [ 0 ] in r ) E = z [ 0 ] ; else { for ( D in r ) { if ( ! z [ 0 ] || R . converters [ D + " " + z [ 0 ] ] ) { E = D ; break } L || ( L = D ) } E = E || L } E ? ( E !== z [ 0 ] && z . unshift ( E ) , r = r [ E ] ) : r = void 0 } else r = c ; if ( 200 <= a && 300 > a || 304 === a ) { if ( e . ifModified ) { if ( G = y . getResponseHeader ( "Last-Modified" ) ) k . lastModified [ n ] = G ; if ( G = y . getResponseHeader ( "Etag" ) ) k . etag [ n ] = G } if ( 304 === a ) p = "notmodified" , q = ! 0 ; else try { G = e ; G . dataFilter && ( r = G . dataFilter ( r ,
G . dataType ) ) ; var Aa = G . dataTypes ; D = { } ; var J , fa , K = Aa . length , ea , I = Aa [ 0 ] , O , M , N , ga , P ; for ( J = 1 ; J < K ; J ++ ) { if ( 1 === J ) for ( fa in G . converters ) "string" == typeof fa && ( D [ fa . toLowerCase ( ) ] = G . converters [ fa ] ) ; O = I ; I = Aa [ J ] ; if ( "*" === I ) I = O ; else if ( "*" !== O && O !== I ) { M = O + " " + I ; N = D [ M ] || D [ "* " + I ] ; if ( ! N ) for ( ga in P = c , D ) if ( ea = ga . split ( " " ) , ea [ 0 ] === O || "*" === ea [ 0 ] ) if ( P = D [ ea [ 1 ] + " " + I ] ) { ga = D [ ga ] ; ! 0 === ga ? N = P : ! 0 === P && ( N = ga ) ; break } N || P || k . error ( "No conversion from " + M . replace ( " " , " to " ) ) ; ! 0 !== N && ( r = N ? N ( r ) : P ( ga ( r ) ) ) } } s = r ; p = "success" ; q =
! 0 } catch ( ba ) { p = "parsererror" , x = ba } } else if ( x = p , ! p || a ) p = "error" , 0 > a && ( a = 0 ) ; y . status = a ; y . statusText = "" + ( d || p ) ; q ? h . resolveWith ( g , [ s , p , y ] ) : h . rejectWith ( g , [ y , p , x ] ) ; y . statusCode ( m ) ; m = c ; A && f . trigger ( "ajax" + ( q ? "Success" : "Error" ) , [ y , e , q ? s : x ] ) ; l . fireWith ( g , [ y , p ] ) ; A && ( f . trigger ( "ajaxComplete" , [ y , e ] ) , -- k . active || k . event . trigger ( "ajaxStop" ) ) } } "object" == typeof a && ( d = a , a = c ) ; d = d || { } ; var e = k . ajaxSetup ( { } , d ) , g = e . context || e , f = g !== e && ( g . nodeType || g instanceof k ) ? k ( g ) : k . event , h = k . Deferred ( ) , l = k . Callbacks ( "once memory" ) ,
m = e . statusCode || { } , n , r = { } , p = { } , t , x , w , B , v , u = 0 , A , z , y = { readyState : 0 , setRequestHeader : function ( a , d ) { if ( ! u ) { var c = a . toLowerCase ( ) ; a = p [ c ] = p [ c ] || a ; r [ a ] = d } return this } , getAllResponseHeaders : function ( ) { return 2 === u ? t : null } , getResponseHeader : function ( a ) { var d ; if ( 2 === u ) { if ( ! x ) for ( x = { } ; d = fc . exec ( t ) ; ) x [ d [ 1 ] . toLowerCase ( ) ] = d [ 2 ] ; d = x [ a . toLowerCase ( ) ] } return d === c ? null : d } , overrideMimeType : function ( a ) { u || ( e . mimeType = a ) ; return this } , abort : function ( a ) { a = a || "abort" ; w && w . abort ( a ) ; b ( 0 , a ) ; return this } } ; h . promise ( y ) ; y . success =
y . done ; y . error = y . fail ; y . complete = l . add ; y . statusCode = function ( a ) { if ( a ) { var d ; if ( 2 > u ) for ( d in a ) m [ d ] = [ m [ d ] , a [ d ] ] ; else d = a [ y . status ] , y . then ( d , d ) } return this } ; e . url = ( ( a || e . url ) + "" ) . replace ( ec , "" ) . replace ( Eb , Ha [ 1 ] + "//" ) ; e . dataTypes = k . trim ( e . dataType || "*" ) . toLowerCase ( ) . split ( Pb ) ; null == e . crossDomain && ( v = Gb . exec ( e . url . toLowerCase ( ) ) , e . crossDomain = ! ( ! v || v [ 1 ] == Ha [ 1 ] && v [ 2 ] == Ha [ 2 ] && ( v [ 3 ] || ( "http:" === v [ 1 ] ? 80 : 443 ) ) == ( Ha [ 3 ] || ( "http:" === Ha [ 1 ] ? 80 : 443 ) ) ) ) ; e . data && e . processData && "string" != typeof e . data && ( e . data = k . param ( e . data ,
e . traditional ) ) ; q ( Qa , e , d , y ) ; if ( 2 === u ) return ! 1 ; A = e . global ; e . type = e . type . toUpperCase ( ) ; e . hasContent = ! gc . test ( e . type ) ; A && 0 === k . active ++ && k . event . trigger ( "ajaxStart" ) ; if ( ! e . hasContent && ( e . data && ( e . url += ( Fb . test ( e . url ) ? "&" : "?" ) + e . data , delete e . data ) , n = e . url , ! 1 === e . cache ) ) { v = k . now ( ) ; var C = e . url . replace ( Ac , "$1_=" + v ) ; e . url = C + ( C === e . url ? ( Fb . test ( e . url ) ? "&" : "?" ) + "_=" + v : "" ) } ( e . data && e . hasContent && ! 1 !== e . contentType || d . contentType ) && y . setRequestHeader ( "Content-Type" , e . contentType ) ; e . ifModified && ( n = n || e . url , k . lastModified [ n ] &&
y . setRequestHeader ( "If-Modified-Since" , k . lastModified [ n ] ) , k . etag [ n ] && y . setRequestHeader ( "If-None-Match" , k . etag [ n ] ) ) ; y . setRequestHeader ( "Accept" , e . dataTypes [ 0 ] && e . accepts [ e . dataTypes [ 0 ] ] ? e . accepts [ e . dataTypes [ 0 ] ] + ( "*" !== e . dataTypes [ 0 ] ? ", " + Na + "; q=0.01" : "" ) : e . accepts [ "*" ] ) ; for ( z in e . headers ) y . setRequestHeader ( z , e . headers [ z ] ) ; if ( e . beforeSend && ( ! 1 === e . beforeSend . call ( g , y , e ) || 2 === u ) ) return y . abort ( ) , ! 1 ; for ( z in { success : 1 , error : 1 , complete : 1 } ) y [ z ] ( e [ z ] ) ; if ( w = q ( Ib , e , d , y ) ) { y . readyState = 1 ; A && f . trigger ( "ajaxSend" ,
[ y , e ] ) ; e . async && 0 < e . timeout && ( B = setTimeout ( function ( ) { y . abort ( "timeout" ) } , e . timeout ) ) ; try { u = 1 , w . send ( r , b ) } catch ( L ) { 2 > u ? b ( - 1 , L ) : k . error ( L ) } } else b ( - 1 , "No Transport" ) ; return y } , param : function ( a , d ) { var b = [ ] , e = function ( a , d ) { d = k . isFunction ( d ) ? d ( ) : d ; b [ b . length ] = encodeURIComponent ( a ) + "=" + encodeURIComponent ( d ) } ; d === c && ( d = k . ajaxSettings . traditional ) ; if ( k . isArray ( a ) || a . jquery && ! k . isPlainObject ( a ) ) k . each ( a , function ( ) { e ( this . name , this . value ) } ) ; else for ( var g in a ) l ( g , a [ g ] , d , e ) ; return b . join ( "&" ) . replace ( dc , "+" ) } } ) ;
k . extend ( { active : 0 , lastModified : { } , etag : { } } ) ; var qa = k . now ( ) , fb = /(\=)\?(&|$)|\?\?/i ; k . ajaxSetup ( { jsonp : "callback" , jsonpCallback : function ( ) { return k . expando + "_" + qa ++ } } ) ; k . ajaxPrefilter ( "json jsonp" , function ( d , c , b ) { c = "application/x-www-form-urlencoded" === d . contentType && "string" == typeof d . data ; if ( "jsonp" === d . dataTypes [ 0 ] || ! 1 !== d . jsonp && ( fb . test ( d . url ) || c && fb . test ( d . data ) ) ) { var e , g = d . jsonpCallback = k . isFunction ( d . jsonpCallback ) ? d . jsonpCallback ( ) : d . jsonpCallback , f = a [ g ] , h = d . url , l = d . data , m = "$1" + g + "$2" ; ! 1 !==
d . jsonp && ( h = h . replace ( fb , m ) , d . url === h && ( c && ( l = l . replace ( fb , m ) ) , d . data === l && ( h += ( /\?/ . test ( h ) ? "&" : "?" ) + d . jsonp + "=" + g ) ) ) ; d . url = h ; d . data = l ; a [ g ] = function ( a ) { e = [ a ] } ; b . always ( function ( ) { a [ g ] = f ; e && k . isFunction ( f ) && a [ g ] ( e [ 0 ] ) } ) ; d . converters [ "script json" ] = function ( ) { e || k . error ( g + " was not called" ) ; return e [ 0 ] } ; d . dataTypes [ 0 ] = "json" ; return "script" } } ) ; k . ajaxSetup ( { accepts : { script : "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" } , contents : { script : /javascript|ecmascript/ } ,
converters : { "text script" : function ( a ) { k . globalEval ( a ) ; return a } } } ) ; k . ajaxPrefilter ( "script" , function ( a ) { a . cache === c && ( a . cache = ! 1 ) ; a . crossDomain && ( a . type = "GET" , a . global = ! 1 ) } ) ; k . ajaxTransport ( "script" , function ( a ) { if ( a . crossDomain ) { var d , b = u . head || u . getElementsByTagName ( "head" ) [ 0 ] || u . documentElement ; return { send : function ( e , g ) { d = u . createElement ( "script" ) ; d . async = "async" ; a . scriptCharset && ( d . charset = a . scriptCharset ) ; d . src = a . url ; d . onload = d . onreadystatechange = function ( a , e ) { if ( e || ! d . readyState || /loaded|complete/ . test ( d . readyState ) ) d . onload =
d . onreadystatechange = null , b && d . parentNode && b . removeChild ( d ) , d = c , e || g ( 200 , "success" ) } ; b . insertBefore ( d , b . firstChild ) } , abort : function ( ) { d && d . onload ( 0 , 1 ) } } } } ) ; var ob = a . ActiveXObject ? function ( ) { for ( var a in Va ) Va [ a ] ( 0 , 1 ) } : ! 1 , Cc = 0 , Va ; k . ajaxSettings . xhr = a . ActiveXObject ? function ( ) { var c ; if ( ! ( c = ! this . isLocal && d ( ) ) ) a : { try { c = new a . ActiveXObject ( "Microsoft.XMLHTTP" ) ; break a } catch ( b ) { } c = void 0 } return c } : d ; ( function ( a ) { k . extend ( k . support , { ajax : ! ! a , cors : ! ! a && "withCredentials" in a } ) } ) ( k . ajaxSettings . xhr ( ) ) ; k . support . ajax &&
k . ajaxTransport ( function ( d ) { if ( ! d . crossDomain || k . support . cors ) { var b ; return { send : function ( e , g ) { var f = d . xhr ( ) , h , l ; d . username ? f . open ( d . type , d . url , d . async , d . username , d . password ) : f . open ( d . type , d . url , d . async ) ; if ( d . xhrFields ) for ( l in d . xhrFields ) f [ l ] = d . xhrFields [ l ] ; d . mimeType && f . overrideMimeType && f . overrideMimeType ( d . mimeType ) ; d . crossDomain || e [ "X-Requested-With" ] || ( e [ "X-Requested-With" ] = "XMLHttpRequest" ) ; try { for ( l in e ) f . setRequestHeader ( l , e [ l ] ) } catch ( m ) { } f . send ( d . hasContent && d . data || null ) ; b = function ( a ,
e ) { var l , m , n , r , p ; try { if ( b && ( e || 4 === f . readyState ) ) if ( b = c , h && ( f . onreadystatechange = k . noop , ob && delete Va [ h ] ) , e ) 4 !== f . readyState && f . abort ( ) ; else { l = f . status ; n = f . getAllResponseHeaders ( ) ; r = { } ; ( p = f . responseXML ) && p . documentElement && ( r . xml = p ) ; r . text = f . responseText ; try { m = f . statusText } catch ( t ) { m = "" } l || ! d . isLocal || d . crossDomain ? 1223 === l && ( l = 204 ) : l = r . text ? 200 : 404 } } catch ( q ) { e || g ( - 1 , q ) } r && g ( l , m , r , n ) } ; d . async && 4 !== f . readyState ? ( h = ++ Cc , ob && ( Va || ( Va = { } , k ( a ) . unload ( ob ) ) , Va [ h ] = b ) , f . onreadystatechange = b ) : b ( ) } , abort : function ( ) { b &&
b ( 0 , 1 ) } } } } ) ; var sb = { } , la , Pa , Kb = /^(?:toggle|show|hide)$/ , ua = /^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i , ha , Ia = [ [ "height" , "marginTop" , "marginBottom" , "paddingTop" , "paddingBottom" ] , [ "width" , "marginLeft" , "marginRight" , "paddingLeft" , "paddingRight" ] , [ "opacity" ] ] , xa ; k . fn . extend ( { show : function ( a , d , c ) { var b ; if ( a || 0 === a ) return this . animate ( g ( "show" , 3 ) , a , d , c ) ; d = 0 ; for ( c = this . length ; d < c ; d ++ ) a = this [ d ] , a . style && ( b = a . style . display , ! k . _data ( a , "olddisplay" ) && "none" === b && ( b = a . style . display = "" ) , "" === b && "none" === k . css ( a , "display" ) &&
k . _data ( a , "olddisplay" , e ( a . nodeName ) ) ) ; for ( d = 0 ; d < c ; d ++ ) if ( a = this [ d ] , a . style && ( b = a . style . display , "" === b || "none" === b ) ) a . style . display = k . _data ( a , "olddisplay" ) || "" ; return this } , hide : function ( a , d , c ) { if ( a || 0 === a ) return this . animate ( g ( "hide" , 3 ) , a , d , c ) ; var b ; d = 0 ; for ( c = this . length ; d < c ; d ++ ) a = this [ d ] , a . style && ( b = k . css ( a , "display" ) , "none" !== b && ! k . _data ( a , "olddisplay" ) && k . _data ( a , "olddisplay" , b ) ) ; for ( d = 0 ; d < c ; d ++ ) this [ d ] . style && ( this [ d ] . style . display = "none" ) ; return this } , _toggle : k . fn . toggle , toggle : function ( a , d ,
c ) { var b = "boolean" == typeof a ; k . isFunction ( a ) && k . isFunction ( d ) ? this . _toggle . apply ( this , arguments ) : null == a || b ? this . each ( function ( ) { var d = b ? a : k ( this ) . is ( ":hidden" ) ; k ( this ) [ d ? "show" : "hide" ] ( ) } ) : this . animate ( g ( "toggle" , 3 ) , a , d , c ) ; return this } , fadeTo : function ( a , d , c , b ) { return this . filter ( ":hidden" ) . css ( "opacity" , 0 ) . show ( ) . end ( ) . animate ( { opacity : d } , a , c , b ) } , animate : function ( a , d , c , b ) { function g ( ) { ! 1 === f . queue && k . _mark ( this ) ; var d = k . extend ( { } , f ) , c = 1 === this . nodeType , b = c && k ( this ) . is ( ":hidden" ) , h , l , m , n , r , p , t , q ;
d . animatedProperties = { } ; for ( m in a ) { h = k . camelCase ( m ) ; m !== h && ( a [ h ] = a [ m ] , delete a [ m ] ) ; l = a [ h ] ; k . isArray ( l ) ? ( d . animatedProperties [ h ] = l [ 1 ] , l = a [ h ] = l [ 0 ] ) : d . animatedProperties [ h ] = d . specialEasing && d . specialEasing [ h ] || d . easing || "swing" ; if ( "hide" === l && b || "show" === l && ! b ) return d . complete . call ( this ) ; c && ( "height" === h || "width" === h ) && ( d . overflow = [ this . style . overflow , this . style . overflowX , this . style . overflowY ] , "inline" === k . css ( this , "display" ) && "none" === k . css ( this , "float" ) && ( k . support . inlineBlockNeedsLayout && "inline" !==
e ( this . nodeName ) ? this . style . zoom = 1 : this . style . display = "inline-block" ) ) } null != d . overflow && ( this . style . overflow = "hidden" ) ; for ( m in a ) c = new k . fx ( this , d , m ) , l = a [ m ] , Kb . test ( l ) ? ( q = k . _data ( this , "toggle" + m ) || ( "toggle" === l ? b ? "show" : "hide" : 0 ) , q ? ( k . _data ( this , "toggle" + m , "show" === q ? "hide" : "show" ) , c [ q ] ( ) ) : c [ l ] ( ) ) : ( n = ua . exec ( l ) , r = c . cur ( ) , n ? ( p = parseFloat ( n [ 2 ] ) , t = n [ 3 ] || ( k . cssNumber [ m ] ? "" : "px" ) , "px" !== t && ( k . style ( this , m , ( p || 1 ) + t ) , r *= ( p || 1 ) / c . cur ( ) , k . style ( this , m , r + t ) ) , n [ 1 ] && ( p = ( "-=" === n [ 1 ] ? - 1 : 1 ) * p + r ) , c . custom ( r , p ,
t ) ) : c . custom ( r , l , "" ) ) ; return ! 0 } var f = k . speed ( d , c , b ) ; if ( k . isEmptyObject ( a ) ) return this . each ( f . complete , [ ! 1 ] ) ; a = k . extend ( { } , a ) ; return ! 1 === f . queue ? this . each ( g ) : this . queue ( f . queue , g ) } , stop : function ( a , d , b ) { "string" != typeof a && ( b = d , d = a , a = c ) ; d && ! 1 !== a && this . queue ( a || "fx" , [ ] ) ; return this . each ( function ( ) { var d , c = ! 1 , e = k . timers , g = k . _data ( this ) ; b || k . _unmark ( ! 0 , this ) ; if ( null == a ) for ( d in g ) { if ( g [ d ] . stop && d . indexOf ( ".run" ) === d . length - 4 ) { var f = g [ d ] ; k . removeData ( this , d , ! 0 ) ; f . stop ( b ) } } else g [ d = a + ".run" ] && g [ d ] . stop &&
( g = g [ d ] , k . removeData ( this , d , ! 0 ) , g . stop ( b ) ) ; for ( d = e . length ; d -- ; ) e [ d ] . elem !== this || null != a && e [ d ] . queue !== a || ( b ? e [ d ] ( ! 0 ) : e [ d ] . saveState ( ) , c = ! 0 , e . splice ( d , 1 ) ) ; b && c || k . dequeue ( this , a ) } ) } } ) ; k . each ( { slideDown : g ( "show" , 1 ) , slideUp : g ( "hide" , 1 ) , slideToggle : g ( "toggle" , 1 ) , fadeIn : { opacity : "show" } , fadeOut : { opacity : "hide" } , fadeToggle : { opacity : "toggle" } } , function ( a , d ) { k . fn [ a ] = function ( a , c , b ) { return this . animate ( d , a , c , b ) } } ) ; k . extend ( { speed : function ( a , d , c ) { var b = a && "object" == typeof a ? k . extend ( { } , a ) : { complete : c || ! c &&
d || k . isFunction ( a ) && a , duration : a , easing : c && d || d && ! k . isFunction ( d ) && d } ; b . duration = k . fx . off ? 0 : "number" == typeof b . duration ? b . duration : b . duration in k . fx . speeds ? k . fx . speeds [ b . duration ] : k . fx . speeds . _default ; if ( null == b . queue || ! 0 === b . queue ) b . queue = "fx" ; b . old = b . complete ; b . complete = function ( a ) { k . isFunction ( b . old ) && b . old . call ( this ) ; b . queue ? k . dequeue ( this , b . queue ) : ! 1 !== a && k . _unmark ( this ) } ; return b } , easing : { linear : function ( a , d , c , b ) { return c + b * a } , swing : function ( a , d , c , b ) { return ( - Math . cos ( a * Math . PI ) / 2 + 0.5 ) * b + c } } ,
timers : [ ] , fx : function ( a , d , c ) { this . options = d ; this . elem = a ; this . prop = c ; d . orig = d . orig || { } } } ) ; k . fx . prototype = { update : function ( ) { this . options . step && this . options . step . call ( this . elem , this . now , this ) ; ( k . fx . step [ this . prop ] || k . fx . step . _default ) ( this ) } , cur : function ( ) { if ( null != this . elem [ this . prop ] && ( ! this . elem . style || null == this . elem . style [ this . prop ] ) ) return this . elem [ this . prop ] ; var a , d = k . css ( this . elem , this . prop ) ; return isNaN ( a = parseFloat ( d ) ) ? d && "auto" !== d ? d : 0 : a } , custom : function ( a , d , b ) { function e ( a ) { return g . step ( a ) }
var g = this , f = k . fx ; this . startTime = xa || h ( ) ; this . end = d ; this . now = this . start = a ; this . pos = this . state = 0 ; this . unit = b || this . unit || ( k . cssNumber [ this . prop ] ? "" : "px" ) ; e . queue = this . options . queue ; e . elem = this . elem ; e . saveState = function ( ) { g . options . hide && k . _data ( g . elem , "fxshow" + g . prop ) === c && k . _data ( g . elem , "fxshow" + g . prop , g . start ) } ; e ( ) && k . timers . push ( e ) && ! ha && ( ha = setInterval ( f . tick , f . interval ) ) } , show : function ( ) { var a = k . _data ( this . elem , "fxshow" + this . prop ) ; this . options . orig [ this . prop ] = a || k . style ( this . elem , this . prop ) ; this . options . show =
! 0 ; a !== c ? this . custom ( this . cur ( ) , a ) : this . custom ( "width" === this . prop || "height" === this . prop ? 1 : 0 , this . cur ( ) ) ; k ( this . elem ) . show ( ) } , hide : function ( ) { this . options . orig [ this . prop ] = k . _data ( this . elem , "fxshow" + this . prop ) || k . style ( this . elem , this . prop ) ; this . options . hide = ! 0 ; this . custom ( this . cur ( ) , 0 ) } , step : function ( a ) { var d , c , b = xa || h ( ) , e = ! 0 , g = this . elem , f = this . options ; if ( a || b >= f . duration + this . startTime ) { this . now = this . end ; this . pos = this . state = 1 ; this . update ( ) ; f . animatedProperties [ this . prop ] = ! 0 ; for ( d in f . animatedProperties ) ! 0 !==
f . animatedProperties [ d ] && ( e = ! 1 ) ; if ( e ) { null != f . overflow && ! k . support . shrinkWrapBlocks && k . each ( [ "" , "X" , "Y" ] , function ( a , d ) { g . style [ "overflow" + d ] = f . overflow [ a ] } ) ; f . hide && k ( g ) . hide ( ) ; if ( f . hide || f . show ) for ( d in f . animatedProperties ) k . style ( g , d , f . orig [ d ] ) , k . removeData ( g , "fxshow" + d , ! 0 ) , k . removeData ( g , "toggle" + d , ! 0 ) ; ( a = f . complete ) && ( f . complete = ! 1 , a . call ( g ) ) } return ! 1 } Infinity == f . duration ? this . now = b : ( c = b - this . startTime , this . state = c / f . duration , this . pos = k . easing [ f . animatedProperties [ this . prop ] ] ( this . state , c , 0 ,
1 , f . duration ) , this . now = this . start + ( this . end - this . start ) * this . pos ) ; this . update ( ) ; return ! 0 } } ; k . extend ( k . fx , { tick : function ( ) { for ( var a , d = k . timers , c = 0 ; c < d . length ; c ++ ) a = d [ c ] , ! a ( ) && d [ c ] === a && d . splice ( c -- , 1 ) ; d . length || k . fx . stop ( ) } , interval : 13 , stop : function ( ) { clearInterval ( ha ) ; ha = null } , speeds : { slow : 600 , fast : 200 , _default : 400 } , step : { opacity : function ( a ) { k . style ( a . elem , "opacity" , a . now ) } , _default : function ( a ) { a . elem . style && null != a . elem . style [ a . prop ] ? a . elem . style [ a . prop ] = a . now + a . unit : a . elem [ a . prop ] = a . now } } } ) ; k . each ( [ "width" ,
"height" ] , function ( a , d ) { k . fx . step [ d ] = function ( a ) { k . style ( a . elem , d , Math . max ( 0 , a . now ) ) } } ) ; k . expr && k . expr . filters && ( k . expr . filters . animated = function ( a ) { return k . grep ( k . timers , function ( d ) { return a === d . elem } ) . length } ) ; var pb = /^t(?:able|d|h)$/i , Oa = /^(?:body|html)$/i ; "getBoundingClientRect" in u . documentElement ? k . fn . offset = function ( a ) { var d = this [ 0 ] , c ; if ( a ) return this . each ( function ( d ) { k . offset . setOffset ( this , a , d ) } ) ; if ( ! d || ! d . ownerDocument ) return null ; if ( d === d . ownerDocument . body ) return k . offset . bodyOffset ( d ) ;
try { c = d . getBoundingClientRect ( ) } catch ( e ) { } var g = d . ownerDocument , f = g . documentElement ; if ( ! c || ! k . contains ( f , d ) ) return c ? { top : c . top , left : c . left } : { top : 0 , left : 0 } ; d = g . body ; g = b ( g ) ; return { top : c . top + ( g . pageYOffset || k . support . boxModel && f . scrollTop || d . scrollTop ) - ( f . clientTop || d . clientTop || 0 ) , left : c . left + ( g . pageXOffset || k . support . boxModel && f . scrollLeft || d . scrollLeft ) - ( f . clientLeft || d . clientLeft || 0 ) } } : k . fn . offset = function ( a ) { var d = this [ 0 ] ; if ( a ) return this . each ( function ( d ) { k . offset . setOffset ( this , a , d ) } ) ; if ( ! d ||
! d . ownerDocument ) return null ; if ( d === d . ownerDocument . body ) return k . offset . bodyOffset ( d ) ; var c , b = d . offsetParent , e = d . ownerDocument , g = e . documentElement , f = e . body ; c = ( e = e . defaultView ) ? e . getComputedStyle ( d , null ) : d . currentStyle ; for ( var h = d . offsetTop , l = d . offsetLeft ; ( d = d . parentNode ) && d !== f && d !== g && ( ! k . support . fixedPosition || "fixed" !== c . position ) ; ) c = e ? e . getComputedStyle ( d , null ) : d . currentStyle , h -= d . scrollTop , l -= d . scrollLeft , d === b && ( h += d . offsetTop , l += d . offsetLeft , k . support . doesNotAddBorder && ( ! k . support . doesAddBorderForTableAndCells ||
! pb . test ( d . nodeName ) ) && ( h += parseFloat ( c . borderTopWidth ) || 0 , l += parseFloat ( c . borderLeftWidth ) || 0 ) , b = d . offsetParent ) , k . support . subtractsBorderForOverflowNotVisible && "visible" !== c . overflow && ( h += parseFloat ( c . borderTopWidth ) || 0 , l += parseFloat ( c . borderLeftWidth ) || 0 ) ; if ( "relative" === c . position || "static" === c . position ) h += f . offsetTop , l += f . offsetLeft ; k . support . fixedPosition && "fixed" === c . position && ( h += Math . max ( g . scrollTop , f . scrollTop ) , l += Math . max ( g . scrollLeft , f . scrollLeft ) ) ; return { top : h , left : l } } ; k . offset = { bodyOffset : function ( a ) { var d =
a . offsetTop , c = a . offsetLeft ; k . support . doesNotIncludeMarginInBodyOffset && ( d += parseFloat ( k . css ( a , "marginTop" ) ) || 0 , c += parseFloat ( k . css ( a , "marginLeft" ) ) || 0 ) ; return { top : d , left : c } } , setOffset : function ( a , d , c ) { var b = k . css ( a , "position" ) ; "static" === b && ( a . style . position = "relative" ) ; var e = k ( a ) , g = e . offset ( ) , f = k . css ( a , "top" ) , h = k . css ( a , "left" ) , l = { } , m = { } , n , r ; ( "absolute" === b || "fixed" === b ) && - 1 < k . inArray ( "auto" , [ f , h ] ) ? ( m = e . position ( ) , n = m . top , r = m . left ) : ( n = parseFloat ( f ) || 0 , r = parseFloat ( h ) || 0 ) ; k . isFunction ( d ) && ( d = d . call ( a ,
c , g ) ) ; null != d . top && ( l . top = d . top - g . top + n ) ; null != d . left && ( l . left = d . left - g . left + r ) ; "using" in d ? d . using . call ( a , l ) : e . css ( l ) } } ; k . fn . extend ( { position : function ( ) { if ( ! this [ 0 ] ) return null ; var a = this [ 0 ] , d = this . offsetParent ( ) , c = this . offset ( ) , b = Oa . test ( d [ 0 ] . nodeName ) ? { top : 0 , left : 0 } : d . offset ( ) ; c . top -= parseFloat ( k . css ( a , "marginTop" ) ) || 0 ; c . left -= parseFloat ( k . css ( a , "marginLeft" ) ) || 0 ; b . top += parseFloat ( k . css ( d [ 0 ] , "borderTopWidth" ) ) || 0 ; b . left += parseFloat ( k . css ( d [ 0 ] , "borderLeftWidth" ) ) || 0 ; return { top : c . top - b . top , left : c . left -
b . left } } , offsetParent : function ( ) { return this . map ( function ( ) { for ( var a = this . offsetParent || u . body ; a && ! Oa . test ( a . nodeName ) && "static" === k . css ( a , "position" ) ; ) a = a . offsetParent ; return a } ) } } ) ; k . each ( [ "Left" , "Top" ] , function ( a , d ) { var e = "scroll" + d ; k . fn [ e ] = function ( d ) { var g , f ; return d === c ? ( g = this [ 0 ] , g ? ( f = b ( g ) ) ? "pageXOffset" in f ? f [ a ? "pageYOffset" : "pageXOffset" ] : k . support . boxModel && f . document . documentElement [ e ] || f . document . body [ e ] : g [ e ] : null ) : this . each ( function ( ) { ( f = b ( this ) ) ? f . scrollTo ( a ? k ( f ) . scrollLeft ( ) : d , a ? d :
k ( f ) . scrollTop ( ) ) : this [ e ] = d } ) } } ) ; k . each ( [ "Height" , "Width" ] , function ( a , d ) { var b = d . toLowerCase ( ) ; k . fn [ "inner" + d ] = function ( ) { var a = this [ 0 ] ; return a ? a . style ? parseFloat ( k . css ( a , b , "padding" ) ) : this [ b ] ( ) : null } ; k . fn [ "outer" + d ] = function ( a ) { var d = this [ 0 ] ; return d ? d . style ? parseFloat ( k . css ( d , b , a ? "margin" : "border" ) ) : this [ b ] ( ) : null } ; k . fn [ b ] = function ( a ) { var e = this [ 0 ] ; if ( ! e ) return null == a ? null : this ; if ( k . isFunction ( a ) ) return this . each ( function ( d ) { var c = k ( this ) ; c [ b ] ( a . call ( this , d , c [ b ] ( ) ) ) } ) ; if ( k . isWindow ( e ) ) { var g =
e . document . documentElement [ "client" + d ] , f = e . document . body ; return "CSS1Compat" === e . document . compatMode && g || f && f [ "client" + d ] || g } return 9 === e . nodeType ? Math . max ( e . documentElement [ "client" + d ] , e . body [ "scroll" + d ] , e . documentElement [ "scroll" + d ] , e . body [ "offset" + d ] , e . documentElement [ "offset" + d ] ) : a === c ? ( e = k . css ( e , b ) , g = parseFloat ( e ) , k . isNumeric ( g ) ? g : e ) : this . css ( b , "string" == typeof a ? a : a + "px" ) } } ) ; a . jQuery = a . $ = k } ) ( window ) ;
( function ( a , c ) { function b ( c , b ) { var h = c . nodeName . toLowerCase ( ) ; if ( "area" === h ) { b = c . parentNode ; h = b . name ; if ( ! c . href || ! h || "map" !== b . nodeName . toLowerCase ( ) ) return ! 1 ; c = a ( "img[usemap=#" + h + "]" ) [ 0 ] ; return ! ! c && e ( c ) } return ( /input|select|textarea|button|object/ . test ( h ) ? ! c . disabled : "a" == h ? c . href || b : b ) && e ( c ) } function e ( c ) { return ! a ( c ) . parents ( ) . andSelf ( ) . filter ( function ( ) { return "hidden" === a . curCSS ( this , "visibility" ) || a . expr . filters . hidden ( this ) } ) . length } a . ui = a . ui || { } ; a . ui . version || ( a . extend ( a . ui , { version : "1.8.16" ,
keyCode : { ALT : 18 , BACKSPACE : 8 , CAPS _LOCK : 20 , COMMA : 188 , COMMAND : 91 , COMMAND _LEFT : 91 , COMMAND _RIGHT : 93 , CONTROL : 17 , DELETE : 46 , DOWN : 40 , END : 35 , ENTER : 13 , ESCAPE : 27 , HOME : 36 , INSERT : 45 , LEFT : 37 , MENU : 93 , 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 , SHIFT : 16 , SPACE : 32 , TAB : 9 , UP : 38 , WINDOWS : 91 } } ) , a . fn . extend ( { propAttr : a . fn . prop || a . fn . attr , _focus : a . fn . focus , focus : function ( c , b ) { return "number" === typeof c ? this . each ( function ( ) { var e =
this ; setTimeout ( function ( ) { a ( e ) . focus ( ) ; b && b . call ( e ) } , c ) } ) : this . _focus . apply ( this , arguments ) } , scrollParent : function ( ) { var c ; c = a . browser . msie && /(static|relative)/ . test ( this . css ( "position" ) ) || /absolute/ . test ( this . css ( "position" ) ) ? this . parents ( ) . filter ( function ( ) { return /(relative|absolute|fixed)/ . test ( a . curCSS ( this , "position" , 1 ) ) && /(auto|scroll)/ . test ( a . curCSS ( this , "overflow" , 1 ) + a . curCSS ( this , "overflow-y" , 1 ) + a . curCSS ( this , "overflow-x" , 1 ) ) } ) . eq ( 0 ) : this . parents ( ) . filter ( function ( ) { return /(auto|scroll)/ . test ( a . curCSS ( this ,
"overflow" , 1 ) + a . curCSS ( this , "overflow-y" , 1 ) + a . curCSS ( this , "overflow-x" , 1 ) ) } ) . eq ( 0 ) ; return /fixed/ . test ( this . css ( "position" ) ) || ! c . length ? a ( document ) : c } , zIndex : function ( b ) { if ( b !== c ) return this . css ( "zIndex" , b ) ; if ( this . length ) { b = a ( this [ 0 ] ) ; for ( var e ; b . length && b [ 0 ] !== document ; ) { e = b . css ( "position" ) ; if ( "absolute" === e || "relative" === e || "fixed" === e ) if ( e = parseInt ( b . css ( "zIndex" ) , 10 ) , ! isNaN ( e ) && 0 !== e ) return e ; b = b . parent ( ) } } return 0 } , disableSelection : function ( ) { return this . bind ( ( a . support . selectstart ? "selectstart" :
"mousedown" ) + ".ui-disableSelection" , function ( a ) { a . preventDefault ( ) } ) } , enableSelection : function ( ) { return this . unbind ( ".ui-disableSelection" ) } } ) , a . each ( [ "Width" , "Height" ] , function ( b , e ) { function h ( c , b , e , g ) { a . each ( d , function ( ) { b -= parseFloat ( a . curCSS ( c , "padding" + this , ! 0 ) ) || 0 ; e && ( b -= parseFloat ( a . curCSS ( c , "border" + this + "Width" , ! 0 ) ) || 0 ) ; g && ( b -= parseFloat ( a . curCSS ( c , "margin" + this , ! 0 ) ) || 0 ) } ) ; return b } var d = "Width" === e ? [ "Left" , "Right" ] : [ "Top" , "Bottom" ] , l = e . toLowerCase ( ) , m = { innerWidth : a . fn . innerWidth , innerHeight : a . fn . innerHeight ,
outerWidth : a . fn . outerWidth , outerHeight : a . fn . outerHeight } ; a . fn [ "inner" + e ] = function ( d ) { return d === c ? m [ "inner" + e ] . call ( this ) : this . each ( function ( ) { a ( this ) . css ( l , h ( this , d ) + "px" ) } ) } ; a . fn [ "outer" + e ] = function ( d , c ) { return "number" !== typeof d ? m [ "outer" + e ] . call ( this , d ) : this . each ( function ( ) { a ( this ) . css ( l , h ( this , d , ! 0 , c ) + "px" ) } ) } } ) , a . extend ( a . expr [ ":" ] , { data : function ( c , b , e ) { return ! ! a . data ( c , e [ 3 ] ) } , focusable : function ( c ) { return b ( c , ! isNaN ( a . attr ( c , "tabindex" ) ) ) } , tabbable : function ( c ) { var e = a . attr ( c , "tabindex" ) , h = isNaN ( e ) ;
return ( h || 0 <= e ) && b ( c , ! h ) } } ) , a ( function ( ) { var c = document . body , b = c . appendChild ( b = document . createElement ( "div" ) ) ; a . extend ( b . style , { minHeight : "100px" , height : "auto" , padding : 0 , borderWidth : 0 } ) ; a . support . minHeight = 100 === b . offsetHeight ; a . support . selectstart = "onselectstart" in b ; c . removeChild ( b ) . style . display = "none" } ) , a . extend ( a . ui , { plugin : { add : function ( c , b , e ) { c = a . ui [ c ] . prototype ; for ( var d in e ) c . plugins [ d ] = c . plugins [ d ] || [ ] , c . plugins [ d ] . push ( [ b , e [ d ] ] ) } , call : function ( a , c , b ) { if ( ( c = a . plugins [ c ] ) && a . element [ 0 ] . parentNode ) for ( var d =
0 ; d < c . length ; d ++ ) a . options [ c [ d ] [ 0 ] ] && c [ d ] [ 1 ] . apply ( a . element , b ) } } , contains : function ( a , c ) { return document . compareDocumentPosition ? a . compareDocumentPosition ( c ) & 16 : a !== c && a . contains ( c ) } , hasScroll : function ( c , b ) { if ( "hidden" === a ( c ) . css ( "overflow" ) ) return ! 1 ; b = b && "left" === b ? "scrollLeft" : "scrollTop" ; var e = ! 1 ; if ( 0 < c [ b ] ) return ! 0 ; c [ b ] = 1 ; e = 0 < c [ b ] ; c [ b ] = 0 ; return e } , isOverAxis : function ( a , c , b ) { return a > c && a < c + b } , isOver : function ( c , b , e , d , l , m ) { return a . ui . isOverAxis ( c , e , l ) && a . ui . isOverAxis ( b , d , m ) } } ) ) } ) ( jQuery ) ;
( function ( a , c ) { if ( a . cleanData ) { var b = a . cleanData ; a . cleanData = function ( c ) { for ( var e = 0 , h ; null != ( h = c [ e ] ) ; e ++ ) try { a ( h ) . triggerHandler ( "remove" ) } catch ( d ) { } b ( c ) } } else { var e = a . fn . remove ; a . fn . remove = function ( c , b ) { return this . each ( function ( ) { b || c && ! a . filter ( c , [ this ] ) . length || a ( "*" , this ) . add ( [ this ] ) . each ( function ( ) { try { a ( this ) . triggerHandler ( "remove" ) } catch ( c ) { } } ) ; return e . call ( a ( this ) , c , b ) } ) } } a . widget = function ( c , b , e ) { var d = c . split ( "." ) [ 0 ] , l ; c = c . split ( "." ) [ 1 ] ; l = d + "-" + c ; e || ( e = b , b = a . Widget ) ; a . expr [ ":" ] [ l ] = function ( d ) { return ! ! a . data ( d ,
c ) } ; a [ d ] = a [ d ] || { } ; a [ d ] [ c ] = function ( a , d ) { arguments . length && this . _createWidget ( a , d ) } ; b = new b ; b . options = a . extend ( ! 0 , { } , b . options ) ; a [ d ] [ c ] . prototype = a . extend ( ! 0 , b , { namespace : d , widgetName : c , widgetEventPrefix : a [ d ] [ c ] . prototype . widgetEventPrefix || c , widgetBaseClass : l } , e ) ; a . widget . bridge ( c , a [ d ] [ c ] ) } ; a . widget . bridge = function ( b , e ) { a . fn [ b ] = function ( h ) { var d = "string" === typeof h , l = Array . prototype . slice . call ( arguments , 1 ) , m = this ; h = ! d && l . length ? a . extend . apply ( null , [ ! 0 , h ] . concat ( l ) ) : h ; if ( d && "_" === h . charAt ( 0 ) ) return m ;
d ? this . each ( function ( ) { var d = a . data ( this , b ) , e = d && a . isFunction ( d [ h ] ) ? d [ h ] . apply ( d , l ) : d ; if ( e !== d && e !== c ) return m = e , ! 1 } ) : this . each ( function ( ) { var d = a . data ( this , b ) ; d ? d . option ( h || { } ) . _init ( ) : a . data ( this , b , new e ( h , this ) ) } ) ; return m } } ; a . Widget = function ( a , c ) { arguments . length && this . _createWidget ( a , c ) } ; a . Widget . prototype = { widgetName : "widget" , widgetEventPrefix : "" , options : { disabled : ! 1 } , _createWidget : function ( c , b ) { a . data ( b , this . widgetName , this ) ; this . element = a ( b ) ; this . options = a . extend ( ! 0 , { } , this . options , this . _getCreateOptions ( ) ,
c ) ; var e = this ; this . element . bind ( "remove." + this . widgetName , function ( ) { e . destroy ( ) } ) ; this . _create ( ) ; this . _trigger ( "create" ) ; this . _init ( ) } , _getCreateOptions : function ( ) { return a . metadata && a . metadata . get ( this . element [ 0 ] ) [ this . widgetName ] } , _create : function ( ) { } , _init : function ( ) { } , destroy : function ( ) { this . element . unbind ( "." + this . widgetName ) . removeData ( this . widgetName ) ; this . widget ( ) . unbind ( "." + this . widgetName ) . removeAttr ( "aria-disabled" ) . removeClass ( this . widgetBaseClass + "-disabled ui-state-disabled" ) } , widget : function ( ) { return this . element } ,
option : function ( b , e ) { var h = b ; if ( 0 === arguments . length ) return a . extend ( { } , this . options ) ; if ( "string" === typeof b ) { if ( e === c ) return this . options [ b ] ; h = { } ; h [ b ] = e } this . _setOptions ( h ) ; return this } , _setOptions : function ( c ) { var b = this ; a . each ( c , function ( a , d ) { b . _setOption ( a , d ) } ) ; return this } , _setOption : function ( a , c ) { this . options [ a ] = c ; "disabled" === a && this . widget ( ) [ c ? "addClass" : "removeClass" ] ( this . widgetBaseClass + "-disabled ui-state-disabled" ) . attr ( "aria-disabled" , c ) ; return this } , enable : function ( ) { return this . _setOption ( "disabled" ,
! 1 ) } , disable : function ( ) { return this . _setOption ( "disabled" , ! 0 ) } , _trigger : function ( c , b , e ) { var d = this . options [ c ] ; b = a . Event ( b ) ; b . type = ( c === this . widgetEventPrefix ? c : this . widgetEventPrefix + c ) . toLowerCase ( ) ; e = e || { } ; if ( b . originalEvent ) { c = a . event . props . length ; for ( var l ; c ; ) l = a . event . props [ -- c ] , b [ l ] = b . originalEvent [ l ] } this . element . trigger ( b , e ) ; return ! ( a . isFunction ( d ) && ! 1 === d . call ( this . element [ 0 ] , b , e ) || b . isDefaultPrevented ( ) ) } } } ) ( jQuery ) ;
( function ( a ) { var c = ! 1 ; a ( document ) . mouseup ( function ( ) { c = ! 1 } ) ; a . widget ( "ui.mouse" , { options : { cancel : ":input,option" , distance : 1 , delay : 0 } , _mouseInit : function ( ) { var c = this ; this . element . bind ( "mousedown." + this . widgetName , function ( a ) { return c . _mouseDown ( a ) } ) . bind ( "click." + this . widgetName , function ( e ) { if ( ! 0 === a . data ( e . target , c . widgetName + ".preventClickEvent" ) ) return a . removeData ( e . target , c . widgetName + ".preventClickEvent" ) , e . stopImmediatePropagation ( ) , ! 1 } ) ; this . started = ! 1 } , _mouseDestroy : function ( ) { this . element . unbind ( "." +
this . widgetName ) } , _mouseDown : function ( b ) { if ( ! c ) { this . _mouseStarted && this . _mouseUp ( b ) ; this . _mouseDownEvent = b ; var e = this , g = 1 == b . which , f = "string" == typeof this . options . cancel && b . target . nodeName ? a ( b . target ) . closest ( this . options . cancel ) . length : ! 1 ; if ( ! g || f || ! this . _mouseCapture ( b ) ) return ! 0 ; this . mouseDelayMet = ! this . options . delay ; this . mouseDelayMet || ( this . _mouseDelayTimer = setTimeout ( function ( ) { e . mouseDelayMet = ! 0 } , this . options . delay ) ) ; if ( this . _mouseDistanceMet ( b ) && this . _mouseDelayMet ( b ) && ( this . _mouseStarted =
! 1 !== this . _mouseStart ( b ) , ! this . _mouseStarted ) ) return b . preventDefault ( ) , ! 0 ; ! 0 === a . data ( b . target , this . widgetName + ".preventClickEvent" ) && a . removeData ( b . target , this . widgetName + ".preventClickEvent" ) ; this . _mouseMoveDelegate = function ( a ) { return e . _mouseMove ( a ) } ; this . _mouseUpDelegate = function ( a ) { return e . _mouseUp ( a ) } ; a ( document ) . bind ( "mousemove." + this . widgetName , this . _mouseMoveDelegate ) . bind ( "mouseup." + this . widgetName , this . _mouseUpDelegate ) ; b . preventDefault ( ) ; return c = ! 0 } } , _mouseMove : function ( c ) { if ( a . browser . msie &&
! ( 9 <= document . documentMode || c . button ) ) return this . _mouseUp ( c ) ; if ( this . _mouseStarted ) return this . _mouseDrag ( c ) , c . preventDefault ( ) ; this . _mouseDistanceMet ( c ) && this . _mouseDelayMet ( c ) && ( ( this . _mouseStarted = ! 1 !== this . _mouseStart ( this . _mouseDownEvent , c ) ) ? this . _mouseDrag ( c ) : this . _mouseUp ( c ) ) ; return ! this . _mouseStarted } , _mouseUp : function ( c ) { a ( document ) . unbind ( "mousemove." + this . widgetName , this . _mouseMoveDelegate ) . unbind ( "mouseup." + this . widgetName , this . _mouseUpDelegate ) ; this . _mouseStarted && ( this . _mouseStarted =
! 1 , c . target == this . _mouseDownEvent . target && a . data ( c . target , this . widgetName + ".preventClickEvent" , ! 0 ) , this . _mouseStop ( c ) ) ; return ! 1 } , _mouseDistanceMet : function ( a ) { return Math . max ( Math . abs ( this . _mouseDownEvent . pageX - a . pageX ) , Math . abs ( this . _mouseDownEvent . pageY - a . pageY ) ) >= this . options . distance } , _mouseDelayMet : function ( ) { return this . mouseDelayMet } , _mouseStart : function ( ) { } , _mouseDrag : function ( ) { } , _mouseStop : function ( ) { } , _mouseCapture : function ( ) { return ! 0 } } ) } ) ( jQuery ) ;
( function ( a ) { a . ui = a . ui || { } ; var c = /left|center|right/ , b = /top|center|bottom/ , e = a . fn . position , g = a . fn . offset ; a . fn . position = function ( g ) { if ( ! g || ! g . of ) return e . apply ( this , arguments ) ; g = a . extend ( { } , g ) ; var h = a ( g . of ) , d = h [ 0 ] , l = ( g . collision || "flip" ) . split ( " " ) , m = g . offset ? g . offset . split ( " " ) : [ 0 , 0 ] , q , r , n ; 9 === d . nodeType ? ( q = h . width ( ) , r = h . height ( ) , n = { top : 0 , left : 0 } ) : d . setTimeout ? ( q = h . width ( ) , r = h . height ( ) , n = { top : h . scrollTop ( ) , left : h . scrollLeft ( ) } ) : d . preventDefault ? ( g . at = "left top" , q = r = 0 , n = { top : g . of . pageY , left : g . of . pageX } ) :
( q = h . outerWidth ( ) , r = h . outerHeight ( ) , n = h . offset ( ) ) ; a . each ( [ "my" , "at" ] , function ( ) { var a = ( g [ this ] || "" ) . split ( " " ) ; 1 === a . length && ( a = c . test ( a [ 0 ] ) ? a . concat ( [ "center" ] ) : b . test ( a [ 0 ] ) ? [ "center" ] . concat ( a ) : [ "center" , "center" ] ) ; a [ 0 ] = c . test ( a [ 0 ] ) ? a [ 0 ] : "center" ; a [ 1 ] = b . test ( a [ 1 ] ) ? a [ 1 ] : "center" ; g [ this ] = a } ) ; 1 === l . length && ( l [ 1 ] = l [ 0 ] ) ; m [ 0 ] = parseInt ( m [ 0 ] , 10 ) || 0 ; 1 === m . length && ( m [ 1 ] = m [ 0 ] ) ; m [ 1 ] = parseInt ( m [ 1 ] , 10 ) || 0 ; "right" === g . at [ 0 ] ? n . left += q : "center" === g . at [ 0 ] && ( n . left += q / 2 ) ; "bottom" === g . at [ 1 ] ? n . top += r : "center" === g . at [ 1 ] &&
( n . top += r / 2 ) ; n . left += m [ 0 ] ; n . top += m [ 1 ] ; return this . each ( function ( ) { var d = a ( this ) , c = d . outerWidth ( ) , b = d . outerHeight ( ) , e = parseInt ( a . curCSS ( this , "marginLeft" , ! 0 ) ) || 0 , h = parseInt ( a . curCSS ( this , "marginTop" , ! 0 ) ) || 0 , A = c + e + ( parseInt ( a . curCSS ( this , "marginRight" , ! 0 ) ) || 0 ) , y = b + h + ( parseInt ( a . curCSS ( this , "marginBottom" , ! 0 ) ) || 0 ) , z = a . extend ( { } , n ) , v ; "right" === g . my [ 0 ] ? z . left -= c : "center" === g . my [ 0 ] && ( z . left -= c / 2 ) ; "bottom" === g . my [ 1 ] ? z . top -= b : "center" === g . my [ 1 ] && ( z . top -= b / 2 ) ; z . left = Math . round ( z . left ) ; z . top = Math . round ( z . top ) ;
v = { left : z . left - e , top : z . top - h } ; a . each ( [ "left" , "top" ] , function ( d , e ) { a . ui . position [ l [ d ] ] && a . ui . position [ l [ d ] ] [ e ] ( z , { targetWidth : q , targetHeight : r , elemWidth : c , elemHeight : b , collisionPosition : v , collisionWidth : A , collisionHeight : y , offset : m , my : g . my , at : g . at } ) } ) ; a . fn . bgiframe && d . bgiframe ( ) ; d . offset ( a . extend ( z , { using : g . using } ) ) } ) } ; a . ui . position = { fit : { left : function ( c , b ) { var d = a ( window ) , d = b . collisionPosition . left + b . collisionWidth - d . width ( ) - d . scrollLeft ( ) ; c . left = 0 < d ? c . left - d : Math . max ( c . left - b . collisionPosition . left ,
c . left ) } , top : function ( c , b ) { var d = a ( window ) , d = b . collisionPosition . top + b . collisionHeight - d . height ( ) - d . scrollTop ( ) ; c . top = 0 < d ? c . top - d : Math . max ( c . top - b . collisionPosition . top , c . top ) } } , flip : { left : function ( c , b ) { if ( "center" !== b . at [ 0 ] ) { var d = a ( window ) , d = b . collisionPosition . left + b . collisionWidth - d . width ( ) - d . scrollLeft ( ) , e = "left" === b . my [ 0 ] ? - b . elemWidth : "right" === b . my [ 0 ] ? b . elemWidth : 0 , g = "left" === b . at [ 0 ] ? b . targetWidth : - b . targetWidth , q = - 2 * b . offset [ 0 ] ; c . left += 0 > b . collisionPosition . left ? e + g + q : 0 < d ? e + g + q : 0 } } , top : function ( c ,
b ) { if ( "center" !== b . at [ 1 ] ) { var d = a ( window ) , d = b . collisionPosition . top + b . collisionHeight - d . height ( ) - d . scrollTop ( ) , e = "top" === b . my [ 1 ] ? - b . elemHeight : "bottom" === b . my [ 1 ] ? b . elemHeight : 0 , g = "top" === b . at [ 1 ] ? b . targetHeight : - b . targetHeight , q = - 2 * b . offset [ 1 ] ; c . top += 0 > b . collisionPosition . top ? e + g + q : 0 < d ? e + g + q : 0 } } } } ; a . offset . setOffset || ( a . offset . setOffset = function ( c , b ) { /static/ . test ( a . curCSS ( c , "position" ) ) && ( c . style . position = "relative" ) ; var d = a ( c ) , e = d . offset ( ) , g = parseInt ( a . curCSS ( c , "top" , ! 0 ) , 10 ) || 0 , q = parseInt ( a . curCSS ( c ,
"left" , ! 0 ) , 10 ) || 0 , e = { top : b . top - e . top + g , left : b . left - e . left + q } ; "using" in b ? b . using . call ( c , e ) : d . css ( e ) } , a . fn . offset = function ( c ) { var b = this [ 0 ] ; return b && b . ownerDocument ? c ? this . each ( function ( ) { a . offset . setOffset ( this , c ) } ) : g . call ( this ) : null } ) } ) ( jQuery ) ;
( function ( a ) { a . widget ( "ui.draggable" , a . ui . mouse , { widgetEventPrefix : "drag" , options : { addClasses : ! 0 , appendTo : "parent" , axis : ! 1 , connectToSortable : ! 1 , containment : ! 1 , cursor : "auto" , cursorAt : ! 1 , grid : ! 1 , handle : ! 1 , helper : "original" , iframeFix : ! 1 , opacity : ! 1 , refreshPositions : ! 1 , revert : ! 1 , revertDuration : 500 , scope : "default" , scroll : ! 0 , scrollSensitivity : 20 , scrollSpeed : 20 , snap : ! 1 , snapMode : "both" , snapTolerance : 20 , stack : ! 1 , zIndex : ! 1 } , _create : function ( ) { "original" != this . options . helper || /^(?:r|a|f)/ . test ( this . element . css ( "position" ) ) ||
( this . element [ 0 ] . style . position = "relative" ) ; this . options . addClasses && this . element . addClass ( "ui-draggable" ) ; this . options . disabled && this . element . addClass ( "ui-draggable-disabled" ) ; this . _mouseInit ( ) } , destroy : function ( ) { if ( this . element . data ( "draggable" ) ) return this . element . removeData ( "draggable" ) . unbind ( ".draggable" ) . removeClass ( "ui-draggable ui-draggable-dragging ui-draggable-disabled" ) , this . _mouseDestroy ( ) , this } , _mouseCapture : function ( c ) { var b = this . options ; if ( this . helper || b . disabled || a ( c . target ) . is ( ".ui-resizable-handle" ) ) return ! 1 ;
this . handle = this . _getHandle ( c ) ; if ( ! this . handle ) return ! 1 ; b . iframeFix && a ( ! 0 === b . iframeFix ? "iframe" : b . iframeFix ) . each ( function ( ) { a ( '<div class="ui-draggable-iframeFix" style="background: #fff;"></div>' ) . css ( { width : this . offsetWidth + "px" , height : this . offsetHeight + "px" , position : "absolute" , opacity : "0.001" , zIndex : 1E3 } ) . css ( a ( this ) . offset ( ) ) . appendTo ( "body" ) } ) ; return ! 0 } , _mouseStart : function ( c ) { var b = this . options ; this . helper = this . _createHelper ( c ) ; this . _cacheHelperProportions ( ) ; a . ui . ddmanager && ( a . ui . ddmanager . current =
this ) ; this . _cacheMargins ( ) ; this . cssPosition = this . helper . css ( "position" ) ; this . scrollParent = this . helper . scrollParent ( ) ; this . offset = this . positionAbs = this . element . offset ( ) ; this . offset = { top : this . offset . top - this . margins . top , left : this . offset . left - this . margins . left } ; a . extend ( this . offset , { click : { left : c . pageX - this . offset . left , top : c . pageY - this . offset . top } , parent : this . _getParentOffset ( ) , relative : this . _getRelativeOffset ( ) } ) ; this . originalPosition = this . position = this . _generatePosition ( c ) ; this . originalPageX = c . pageX ;
this . originalPageY = c . pageY ; b . cursorAt && this . _adjustOffsetFromHelper ( b . cursorAt ) ; b . containment && this . _setContainment ( ) ; if ( ! 1 === this . _trigger ( "start" , c ) ) return this . _clear ( ) , ! 1 ; this . _cacheHelperProportions ( ) ; a . ui . ddmanager && ! b . dropBehaviour && a . ui . ddmanager . prepareOffsets ( this , c ) ; this . helper . addClass ( "ui-draggable-dragging" ) ; this . _mouseDrag ( c , ! 0 ) ; a . ui . ddmanager && a . ui . ddmanager . dragStart ( this , c ) ; return ! 0 } , _mouseDrag : function ( c , b ) { this . position = this . _generatePosition ( c ) ; this . positionAbs = this . _convertPositionTo ( "absolute" ) ;
if ( ! b ) { b = this . _uiHash ( ) ; if ( ! 1 === this . _trigger ( "drag" , c , b ) ) return this . _mouseUp ( { } ) , ! 1 ; this . position = b . position } this . options . axis && "y" == this . options . axis || ( this . helper [ 0 ] . style . left = this . position . left + "px" ) ; this . options . axis && "x" == this . options . axis || ( this . helper [ 0 ] . style . top = this . position . top + "px" ) ; a . ui . ddmanager && a . ui . ddmanager . drag ( this , c ) ; return ! 1 } , _mouseStop : function ( c ) { var b = ! 1 ; a . ui . ddmanager && ! this . options . dropBehaviour && ( b = a . ui . ddmanager . drop ( this , c ) ) ; this . dropped && ( b = this . dropped , this . dropped =
! 1 ) ; if ( ! ( this . element [ 0 ] && this . element [ 0 ] . parentNode || "original" != this . options . helper ) ) return ! 1 ; if ( "invalid" == this . options . revert && ! b || "valid" == this . options . revert && b || ! 0 === this . options . revert || a . isFunction ( this . options . revert ) && this . options . revert . call ( this . element , b ) ) { var e = this ; a ( this . helper ) . animate ( this . originalPosition , parseInt ( this . options . revertDuration , 10 ) , function ( ) { ! 1 !== e . _trigger ( "stop" , c ) && e . _clear ( ) } ) } else ! 1 !== this . _trigger ( "stop" , c ) && this . _clear ( ) ; return ! 1 } , _mouseUp : function ( c ) { ! 0 ===
this . options . iframeFix && a ( "div.ui-draggable-iframeFix" ) . each ( function ( ) { this . parentNode . removeChild ( this ) } ) ; a . ui . ddmanager && a . ui . ddmanager . dragStop ( this , c ) ; return a . ui . mouse . prototype . _mouseUp . call ( this , c ) } , cancel : function ( ) { this . helper . is ( ".ui-draggable-dragging" ) ? this . _mouseUp ( { } ) : this . _clear ( ) ; return this } , _getHandle : function ( c ) { var b = this . options . handle && a ( this . options . handle , this . element ) . length ? ! 1 : ! 0 ; a ( this . options . handle , this . element ) . find ( "*" ) . andSelf ( ) . each ( function ( ) { this == c . target && ( b =
! 0 ) } ) ; return b } , _createHelper : function ( c ) { var b = this . options ; c = a . isFunction ( b . helper ) ? a ( b . helper . apply ( this . element [ 0 ] , [ c ] ) ) : "clone" == b . helper ? this . element . clone ( ) . removeAttr ( "id" ) : this . element ; c . parents ( "body" ) . length || c . appendTo ( "parent" == b . appendTo ? this . element [ 0 ] . parentNode : b . appendTo ) ; c [ 0 ] != this . element [ 0 ] && ! /(fixed|absolute)/ . test ( c . css ( "position" ) ) && c . css ( "position" , "absolute" ) ; return c } , _adjustOffsetFromHelper : function ( c ) { "string" == typeof c && ( c = c . split ( " " ) ) ; a . isArray ( c ) && ( c = { left : + c [ 0 ] , top : + c [ 1 ] ||
0 } ) ; "left" in c && ( this . offset . click . left = c . left + this . margins . left ) ; "right" in c && ( this . offset . click . left = this . helperProportions . width - c . right + this . margins . left ) ; "top" in c && ( this . offset . click . top = c . top + this . margins . top ) ; "bottom" in c && ( this . offset . click . top = this . helperProportions . height - c . bottom + this . margins . top ) } , _getParentOffset : function ( ) { this . offsetParent = this . helper . offsetParent ( ) ; var c = this . offsetParent . offset ( ) ; "absolute" == this . cssPosition && this . scrollParent [ 0 ] != document && a . ui . contains ( this . scrollParent [ 0 ] ,
this . offsetParent [ 0 ] ) && ( c . left += this . scrollParent . scrollLeft ( ) , c . top += this . scrollParent . scrollTop ( ) ) ; if ( this . offsetParent [ 0 ] == document . body || this . offsetParent [ 0 ] . tagName && "html" == this . offsetParent [ 0 ] . tagName . toLowerCase ( ) && a . browser . msie ) c = { top : 0 , left : 0 } ; return { top : c . top + ( parseInt ( this . offsetParent . css ( "borderTopWidth" ) , 10 ) || 0 ) , left : c . left + ( parseInt ( this . offsetParent . css ( "borderLeftWidth" ) , 10 ) || 0 ) } } , _getRelativeOffset : function ( ) { if ( "relative" == this . cssPosition ) { var a = this . element . position ( ) ; return { top : a . top -
( parseInt ( this . helper . css ( "top" ) , 10 ) || 0 ) + this . scrollParent . scrollTop ( ) , left : a . left - ( parseInt ( this . helper . css ( "left" ) , 10 ) || 0 ) + this . scrollParent . scrollLeft ( ) } } return { top : 0 , left : 0 } } , _cacheMargins : function ( ) { this . margins = { left : parseInt ( this . element . css ( "marginLeft" ) , 10 ) || 0 , top : parseInt ( this . element . css ( "marginTop" ) , 10 ) || 0 , right : parseInt ( this . element . css ( "marginRight" ) , 10 ) || 0 , bottom : parseInt ( this . element . css ( "marginBottom" ) , 10 ) || 0 } } , _cacheHelperProportions : function ( ) { this . helperProportions = { width : this . helper . outerWidth ( ) ,
height : this . helper . outerHeight ( ) } } , _setContainment : function ( ) { var c = this . options ; "parent" == c . containment && ( c . containment = this . helper [ 0 ] . parentNode ) ; if ( "document" == c . containment || "window" == c . containment ) this . containment = [ "document" == c . containment ? 0 : a ( window ) . scrollLeft ( ) - this . offset . relative . left - this . offset . parent . left , "document" == c . containment ? 0 : a ( window ) . scrollTop ( ) - this . offset . relative . top - this . offset . parent . top , ( "document" == c . containment ? 0 : a ( window ) . scrollLeft ( ) ) + a ( "document" == c . containment ? document :
window ) . width ( ) - this . helperProportions . width - this . margins . left , ( "document" == c . containment ? 0 : a ( window ) . scrollTop ( ) ) + ( a ( "document" == c . containment ? document : window ) . height ( ) || document . body . parentNode . scrollHeight ) - this . helperProportions . height - this . margins . top ] ; if ( /^(document|window|parent)$/ . test ( c . containment ) || c . containment . constructor == Array ) c . containment . constructor == Array && ( this . containment = c . containment ) ; else { var c = a ( c . containment ) , b = c [ 0 ] ; if ( b ) { c . offset ( ) ; var e = "hidden" != a ( b ) . css ( "overflow" ) ; this . containment =
[ ( parseInt ( a ( b ) . css ( "borderLeftWidth" ) , 10 ) || 0 ) + ( parseInt ( a ( b ) . css ( "paddingLeft" ) , 10 ) || 0 ) , ( parseInt ( a ( b ) . css ( "borderTopWidth" ) , 10 ) || 0 ) + ( parseInt ( a ( b ) . css ( "paddingTop" ) , 10 ) || 0 ) , ( e ? Math . max ( b . scrollWidth , b . offsetWidth ) : b . offsetWidth ) - ( parseInt ( a ( b ) . css ( "borderLeftWidth" ) , 10 ) || 0 ) - ( parseInt ( a ( b ) . css ( "paddingRight" ) , 10 ) || 0 ) - this . helperProportions . width - this . margins . left - this . margins . right , ( e ? Math . max ( b . scrollHeight , b . offsetHeight ) : b . offsetHeight ) - ( parseInt ( a ( b ) . css ( "borderTopWidth" ) , 10 ) || 0 ) - ( parseInt ( a ( b ) . css ( "paddingBottom" ) ,
10 ) || 0 ) - this . helperProportions . height - this . margins . top - this . margins . bottom ] ; this . relative _container = c } } } , _convertPositionTo : function ( c , b ) { b || ( b = this . position ) ; c = "absolute" == c ? 1 : - 1 ; var e = "absolute" != this . cssPosition || this . scrollParent [ 0 ] != document && a . ui . contains ( this . scrollParent [ 0 ] , this . offsetParent [ 0 ] ) ? this . scrollParent : this . offsetParent , g = /(html|body)/i . test ( e [ 0 ] . tagName ) ; return { top : b . top + this . offset . relative . top * c + this . offset . parent . top * c - ( a . browser . safari && 526 > a . browser . version && "fixed" == this . cssPosition ?
0 : ( "fixed" == this . cssPosition ? - this . scrollParent . scrollTop ( ) : g ? 0 : e . scrollTop ( ) ) * c ) , left : b . left + this . offset . relative . left * c + this . offset . parent . left * c - ( a . browser . safari && 526 > a . browser . version && "fixed" == this . cssPosition ? 0 : ( "fixed" == this . cssPosition ? - this . scrollParent . scrollLeft ( ) : g ? 0 : e . scrollLeft ( ) ) * c ) } } , _generatePosition : function ( c ) { var b = this . options , e = "absolute" != this . cssPosition || this . scrollParent [ 0 ] != document && a . ui . contains ( this . scrollParent [ 0 ] , this . offsetParent [ 0 ] ) ? this . scrollParent : this . offsetParent ,
g = /(html|body)/i . test ( e [ 0 ] . tagName ) , f = c . pageX , h = c . pageY ; if ( this . originalPosition ) { var d ; this . containment && ( this . relative _container ? ( d = this . relative _container . offset ( ) , d = [ this . containment [ 0 ] + d . left , this . containment [ 1 ] + d . top , this . containment [ 2 ] + d . left , this . containment [ 3 ] + d . top ] ) : d = this . containment , c . pageX - this . offset . click . left < d [ 0 ] && ( f = d [ 0 ] + this . offset . click . left ) , c . pageY - this . offset . click . top < d [ 1 ] && ( h = d [ 1 ] + this . offset . click . top ) , c . pageX - this . offset . click . left > d [ 2 ] && ( f = d [ 2 ] + this . offset . click . left ) ,
c . pageY - this . offset . click . top > d [ 3 ] && ( h = d [ 3 ] + this . offset . click . top ) ) ; b . grid && ( h = b . grid [ 1 ] ? this . originalPageY + Math . round ( ( h - this . originalPageY ) / b . grid [ 1 ] ) * b . grid [ 1 ] : this . originalPageY , h = d ? h - this . offset . click . top < d [ 1 ] || h - this . offset . click . top > d [ 3 ] ? h - this . offset . click . top < d [ 1 ] ? h + b . grid [ 1 ] : h - b . grid [ 1 ] : h : h , f = b . grid [ 0 ] ? this . originalPageX + Math . round ( ( f - this . originalPageX ) / b . grid [ 0 ] ) * b . grid [ 0 ] : this . originalPageX , f = d ? f - this . offset . click . left < d [ 0 ] || f - this . offset . click . left > d [ 2 ] ? f - this . offset . click . left < d [ 0 ] ?
f + b . grid [ 0 ] : f - b . grid [ 0 ] : f : f ) } return { top : h - this . offset . click . top - this . offset . relative . top - this . offset . parent . top + ( a . browser . safari && 526 > a . browser . version && "fixed" == this . cssPosition ? 0 : "fixed" == this . cssPosition ? - this . scrollParent . scrollTop ( ) : g ? 0 : e . scrollTop ( ) ) , left : f - this . offset . click . left - this . offset . relative . left - this . offset . parent . left + ( a . browser . safari && 526 > a . browser . version && "fixed" == this . cssPosition ? 0 : "fixed" == this . cssPosition ? - this . scrollParent . scrollLeft ( ) : g ? 0 : e . scrollLeft ( ) ) } } , _clear : function ( ) { this . helper . removeClass ( "ui-draggable-dragging" ) ;
this . helper [ 0 ] != this . element [ 0 ] && ! this . cancelHelperRemoval && this . helper . remove ( ) ; this . helper = null ; this . cancelHelperRemoval = ! 1 } , _trigger : function ( c , b , e ) { e = e || this . _uiHash ( ) ; a . ui . plugin . call ( this , c , [ b , e ] ) ; "drag" == c && ( this . positionAbs = this . _convertPositionTo ( "absolute" ) ) ; return a . Widget . prototype . _trigger . call ( this , c , b , e ) } , plugins : { } , _uiHash : function ( ) { return { helper : this . helper , position : this . position , originalPosition : this . originalPosition , offset : this . positionAbs } } } ) ; a . extend ( a . ui . draggable , { version : "1.8.16" } ) ;
a . ui . plugin . add ( "draggable" , "connectToSortable" , { start : function ( c , b ) { var e = a ( this ) . data ( "draggable" ) , g = e . options , f = a . extend ( { } , b , { item : e . element } ) ; e . sortables = [ ] ; a ( g . connectToSortable ) . each ( function ( ) { var b = a . data ( this , "sortable" ) ; b && ! b . options . disabled && ( e . sortables . push ( { instance : b , shouldRevert : b . options . revert } ) , b . refreshPositions ( ) , b . _trigger ( "activate" , c , f ) ) } ) } , stop : function ( c , b ) { var e = a ( this ) . data ( "draggable" ) , g = a . extend ( { } , b , { item : e . element } ) ; a . each ( e . sortables , function ( ) { this . instance . isOver ?
( this . instance . isOver = 0 , e . cancelHelperRemoval = ! 0 , this . instance . cancelHelperRemoval = ! 1 , this . shouldRevert && ( this . instance . options . revert = ! 0 ) , this . instance . _mouseStop ( c ) , this . instance . options . helper = this . instance . options . _helper , "original" == e . options . helper && this . instance . currentItem . css ( { top : "auto" , left : "auto" } ) ) : ( this . instance . cancelHelperRemoval = ! 1 , this . instance . _trigger ( "deactivate" , c , g ) ) } ) } , drag : function ( c , b ) { var e = a ( this ) . data ( "draggable" ) , g = this ; a . each ( e . sortables , function ( ) { this . instance . positionAbs =
e . positionAbs ; this . instance . helperProportions = e . helperProportions ; this . instance . offset . click = e . offset . click ; this . instance . _intersectsWith ( this . instance . containerCache ) ? ( this . instance . isOver || ( this . instance . isOver = 1 , this . instance . currentItem = a ( g ) . clone ( ) . removeAttr ( "id" ) . appendTo ( this . instance . element ) . data ( "sortable-item" , ! 0 ) , this . instance . options . _helper = this . instance . options . helper , this . instance . options . helper = function ( ) { return b . helper [ 0 ] } , c . target = this . instance . currentItem [ 0 ] , this . instance . _mouseCapture ( c ,
! 0 ) , this . instance . _mouseStart ( c , ! 0 , ! 0 ) , this . instance . offset . click . top = e . offset . click . top , this . instance . offset . click . left = e . offset . click . left , this . instance . offset . parent . left -= e . offset . parent . left - this . instance . offset . parent . left , this . instance . offset . parent . top -= e . offset . parent . top - this . instance . offset . parent . top , e . _trigger ( "toSortable" , c ) , e . dropped = this . instance . element , e . currentItem = e . element , this . instance . fromOutside = e ) , this . instance . currentItem && this . instance . _mouseDrag ( c ) ) : this . instance . isOver &&
( this . instance . isOver = 0 , this . instance . cancelHelperRemoval = ! 0 , this . instance . options . revert = ! 1 , this . instance . _trigger ( "out" , c , this . instance . _uiHash ( this . instance ) ) , this . instance . _mouseStop ( c , ! 0 ) , this . instance . options . helper = this . instance . options . _helper , this . instance . currentItem . remove ( ) , this . instance . placeholder && this . instance . placeholder . remove ( ) , e . _trigger ( "fromSortable" , c ) , e . dropped = ! 1 ) } ) } } ) ; a . ui . plugin . add ( "draggable" , "cursor" , { start : function ( ) { var c = a ( "body" ) , b = a ( this ) . data ( "draggable" ) . options ;
c . css ( "cursor" ) && ( b . _cursor = c . css ( "cursor" ) ) ; c . css ( "cursor" , b . cursor ) } , stop : function ( ) { var c = a ( this ) . data ( "draggable" ) . options ; c . _cursor && a ( "body" ) . css ( "cursor" , c . _cursor ) } } ) ; a . ui . plugin . add ( "draggable" , "opacity" , { start : function ( c , b ) { c = a ( b . helper ) ; b = a ( this ) . data ( "draggable" ) . options ; c . css ( "opacity" ) && ( b . _opacity = c . css ( "opacity" ) ) ; c . css ( "opacity" , b . opacity ) } , stop : function ( c , b ) { c = a ( this ) . data ( "draggable" ) . options ; c . _opacity && a ( b . helper ) . css ( "opacity" , c . _opacity ) } } ) ; a . ui . plugin . add ( "draggable" , "scroll" ,
{ start : function ( ) { var c = a ( this ) . data ( "draggable" ) ; c . scrollParent [ 0 ] != document && "HTML" != c . scrollParent [ 0 ] . tagName && ( c . overflowOffset = c . scrollParent . offset ( ) ) } , drag : function ( c ) { var b = a ( this ) . data ( "draggable" ) , e = b . options , g = ! 1 ; b . scrollParent [ 0 ] != document && "HTML" != b . scrollParent [ 0 ] . tagName ? ( e . axis && "x" == e . axis || ( b . overflowOffset . top + b . scrollParent [ 0 ] . offsetHeight - c . pageY < e . scrollSensitivity ? b . scrollParent [ 0 ] . scrollTop = g = b . scrollParent [ 0 ] . scrollTop + e . scrollSpeed : c . pageY - b . overflowOffset . top < e . scrollSensitivity &&
( b . scrollParent [ 0 ] . scrollTop = g = b . scrollParent [ 0 ] . scrollTop - e . scrollSpeed ) ) , e . axis && "y" == e . axis || ( b . overflowOffset . left + b . scrollParent [ 0 ] . offsetWidth - c . pageX < e . scrollSensitivity ? b . scrollParent [ 0 ] . scrollLeft = g = b . scrollParent [ 0 ] . scrollLeft + e . scrollSpeed : c . pageX - b . overflowOffset . left < e . scrollSensitivity && ( b . scrollParent [ 0 ] . scrollLeft = g = b . scrollParent [ 0 ] . scrollLeft - e . scrollSpeed ) ) ) : ( e . axis && "x" == e . axis || ( c . pageY - a ( document ) . scrollTop ( ) < e . scrollSensitivity ? g = a ( document ) . scrollTop ( a ( document ) . scrollTop ( ) -
e . scrollSpeed ) : a ( window ) . height ( ) - ( c . pageY - a ( document ) . scrollTop ( ) ) < e . scrollSensitivity && ( g = a ( document ) . scrollTop ( a ( document ) . scrollTop ( ) + e . scrollSpeed ) ) ) , e . axis && "y" == e . axis || ( c . pageX - a ( document ) . scrollLeft ( ) < e . scrollSensitivity ? g = a ( document ) . scrollLeft ( a ( document ) . scrollLeft ( ) - e . scrollSpeed ) : a ( window ) . width ( ) - ( c . pageX - a ( document ) . scrollLeft ( ) ) < e . scrollSensitivity && ( g = a ( document ) . scrollLeft ( a ( document ) . scrollLeft ( ) + e . scrollSpeed ) ) ) ) ; ! 1 !== g && a . ui . ddmanager && ! e . dropBehaviour && a . ui . ddmanager . prepareOffsets ( b ,
c ) } } ) ; a . ui . plugin . add ( "draggable" , "snap" , { start : function ( ) { var c = a ( this ) . data ( "draggable" ) , b = c . options ; c . snapElements = [ ] ; a ( b . snap . constructor != String ? b . snap . items || ":data(draggable)" : b . snap ) . each ( function ( ) { var b = a ( this ) , g = b . offset ( ) ; this != c . element [ 0 ] && c . snapElements . push ( { item : this , width : b . outerWidth ( ) , height : b . outerHeight ( ) , top : g . top , left : g . left } ) } ) } , drag : function ( c , b ) { for ( var e = a ( this ) . data ( "draggable" ) , g = e . options , f = g . snapTolerance , h = b . offset . left , d = h + e . helperProportions . width , l = b . offset . top ,
m = l + e . helperProportions . height , q = e . snapElements . length - 1 ; 0 <= q ; q -- ) { var r = e . snapElements [ q ] . left , n = r + e . snapElements [ q ] . width , t = e . snapElements [ q ] . top , p = t + e . snapElements [ q ] . height ; if ( r - f < h && h < n + f && t - f < l && l < p + f || r - f < h && h < n + f && t - f < m && m < p + f || r - f < d && d < n + f && t - f < l && l < p + f || r - f < d && d < n + f && t - f < m && m < p + f ) { if ( "inner" != g . snapMode ) { var x = Math . abs ( t - m ) <= f , w = Math . abs ( p - l ) <= f , B = Math . abs ( r - d ) <= f , A = Math . abs ( n - h ) <= f ; x && ( b . position . top = e . _convertPositionTo ( "relative" , { top : t - e . helperProportions . height , left : 0 } ) . top - e . margins . top ) ;
w && ( b . position . top = e . _convertPositionTo ( "relative" , { top : p , left : 0 } ) . top - e . margins . top ) ; B && ( b . position . left = e . _convertPositionTo ( "relative" , { top : 0 , left : r - e . helperProportions . width } ) . left - e . margins . left ) ; A && ( b . position . left = e . _convertPositionTo ( "relative" , { top : 0 , left : n } ) . left - e . margins . left ) } var y = x || w || B || A ; "outer" != g . snapMode && ( x = Math . abs ( t - l ) <= f , w = Math . abs ( p - m ) <= f , B = Math . abs ( r - h ) <= f , A = Math . abs ( n - d ) <= f , x && ( b . position . top = e . _convertPositionTo ( "relative" , { top : t , left : 0 } ) . top - e . margins . top ) , w && ( b . position . top =
e . _convertPositionTo ( "relative" , { top : p - e . helperProportions . height , left : 0 } ) . top - e . margins . top ) , B && ( b . position . left = e . _convertPositionTo ( "relative" , { top : 0 , left : r } ) . left - e . margins . left ) , A && ( b . position . left = e . _convertPositionTo ( "relative" , { top : 0 , left : n - e . helperProportions . width } ) . left - e . margins . left ) ) ; ! e . snapElements [ q ] . snapping && ( x || w || B || A || y ) && e . options . snap . snap && e . options . snap . snap . call ( e . element , c , a . extend ( e . _uiHash ( ) , { snapItem : e . snapElements [ q ] . item } ) ) ; e . snapElements [ q ] . snapping = x || w || B || A || y } else e . snapElements [ q ] . snapping &&
e . options . snap . release && e . options . snap . release . call ( e . element , c , a . extend ( e . _uiHash ( ) , { snapItem : e . snapElements [ q ] . item } ) ) , e . snapElements [ q ] . snapping = ! 1 } } } ) ; a . ui . plugin . add ( "draggable" , "stack" , { start : function ( ) { var c = a ( this ) . data ( "draggable" ) . options , c = a . makeArray ( a ( c . stack ) ) . sort ( function ( c , b ) { return ( parseInt ( a ( c ) . css ( "zIndex" ) , 10 ) || 0 ) - ( parseInt ( a ( b ) . css ( "zIndex" ) , 10 ) || 0 ) } ) ; if ( c . length ) { var b = parseInt ( c [ 0 ] . style . zIndex ) || 0 ; a ( c ) . each ( function ( a ) { this . style . zIndex = b + a } ) ; this [ 0 ] . style . zIndex = b + c . length } } } ) ;
a . ui . plugin . add ( "draggable" , "zIndex" , { start : function ( c , b ) { c = a ( b . helper ) ; b = a ( this ) . data ( "draggable" ) . options ; c . css ( "zIndex" ) && ( b . _zIndex = c . css ( "zIndex" ) ) ; c . css ( "zIndex" , b . zIndex ) } , stop : function ( c , b ) { c = a ( this ) . data ( "draggable" ) . options ; c . _zIndex && a ( b . helper ) . css ( "zIndex" , c . _zIndex ) } } ) } ) ( jQuery ) ;
( function ( a ) { a . widget ( "ui.droppable" , { widgetEventPrefix : "drop" , options : { accept : "*" , activeClass : ! 1 , addClasses : ! 0 , greedy : ! 1 , hoverClass : ! 1 , scope : "default" , tolerance : "intersect" } , _create : function ( ) { var c = this . options , b = c . accept ; this . isover = 0 ; this . isout = 1 ; this . accept = a . isFunction ( b ) ? b : function ( a ) { return a . is ( b ) } ; this . proportions = { width : this . element [ 0 ] . offsetWidth , height : this . element [ 0 ] . offsetHeight } ; a . ui . ddmanager . droppables [ c . scope ] = a . ui . ddmanager . droppables [ c . scope ] || [ ] ; a . ui . ddmanager . droppables [ c . scope ] . push ( this ) ;
c . addClasses && this . element . addClass ( "ui-droppable" ) } , destroy : function ( ) { for ( var c = a . ui . ddmanager . droppables [ this . options . scope ] , b = 0 ; b < c . length ; b ++ ) c [ b ] == this && c . splice ( b , 1 ) ; this . element . removeClass ( "ui-droppable ui-droppable-disabled" ) . removeData ( "droppable" ) . unbind ( ".droppable" ) ; return this } , _setOption : function ( c , b ) { "accept" == c && ( this . accept = a . isFunction ( b ) ? b : function ( a ) { return a . is ( b ) } ) ; a . Widget . prototype . _setOption . apply ( this , arguments ) } , _activate : function ( c ) { var b = a . ui . ddmanager . current ; this . options . activeClass &&
this . element . addClass ( this . options . activeClass ) ; b && this . _trigger ( "activate" , c , this . ui ( b ) ) } , _deactivate : function ( c ) { var b = a . ui . ddmanager . current ; this . options . activeClass && this . element . removeClass ( this . options . activeClass ) ; b && this . _trigger ( "deactivate" , c , this . ui ( b ) ) } , _over : function ( c ) { var b = a . ui . ddmanager . current ; b && ( b . currentItem || b . element ) [ 0 ] != this . element [ 0 ] && this . accept . call ( this . element [ 0 ] , b . currentItem || b . element ) && ( this . options . hoverClass && this . element . addClass ( this . options . hoverClass ) , this . _trigger ( "over" ,
c , this . ui ( b ) ) ) } , _out : function ( c ) { var b = a . ui . ddmanager . current ; b && ( b . currentItem || b . element ) [ 0 ] != this . element [ 0 ] && this . accept . call ( this . element [ 0 ] , b . currentItem || b . element ) && ( this . options . hoverClass && this . element . removeClass ( this . options . hoverClass ) , this . _trigger ( "out" , c , this . ui ( b ) ) ) } , _drop : function ( c , b ) { var e = b || a . ui . ddmanager . current ; if ( ! e || ( e . currentItem || e . element ) [ 0 ] == this . element [ 0 ] ) return ! 1 ; var g = ! 1 ; this . element . find ( ":data(droppable)" ) . not ( ".ui-draggable-dragging" ) . each ( function ( ) { var c = a . data ( this ,
"droppable" ) ; if ( c . options . greedy && ! c . options . disabled && c . options . scope == e . options . scope && c . accept . call ( c . element [ 0 ] , e . currentItem || e . element ) && a . ui . intersect ( e , a . extend ( c , { offset : c . element . offset ( ) } ) , c . options . tolerance ) ) return g = ! 0 , ! 1 } ) ; return g ? ! 1 : this . accept . call ( this . element [ 0 ] , e . currentItem || e . element ) ? ( this . options . activeClass && this . element . removeClass ( this . options . activeClass ) , this . options . hoverClass && this . element . removeClass ( this . options . hoverClass ) , this . _trigger ( "drop" , c , this . ui ( e ) ) , this . element ) :
! 1 } , ui : function ( a ) { return { draggable : a . currentItem || a . element , helper : a . helper , position : a . position , offset : a . positionAbs } } } ) ; a . extend ( a . ui . droppable , { version : "1.8.16" } ) ; a . ui . intersect = function ( c , b , e ) { if ( ! b . offset ) return ! 1 ; var g = ( c . positionAbs || c . position . absolute ) . left , f = g + c . helperProportions . width , h = ( c . positionAbs || c . position . absolute ) . top , d = h + c . helperProportions . height , l = b . offset . left , m = l + b . proportions . width , q = b . offset . top , r = q + b . proportions . height ; switch ( e ) { case "fit" : return l <= g && f <= m && q <= h && d <= r ;
case "intersect" : return l < g + c . helperProportions . width / 2 && f - c . helperProportions . width / 2 < m && q < h + c . helperProportions . height / 2 && d - c . helperProportions . height / 2 < r ; case "pointer" : return a . ui . isOver ( ( c . positionAbs || c . position . absolute ) . top + ( c . clickOffset || c . offset . click ) . top , ( c . positionAbs || c . position . absolute ) . left + ( c . clickOffset || c . offset . click ) . left , q , l , b . proportions . height , b . proportions . width ) ; case "touch" : return ( h >= q && h <= r || d >= q && d <= r || h < q && d > r ) && ( g >= l && g <= m || f >= l && f <= m || g < l && f > m ) ; default : return ! 1 } } ;
a . ui . ddmanager = { current : null , droppables : { "default" : [ ] } , prepareOffsets : function ( c , b ) { var e = a . ui . ddmanager . droppables [ c . options . scope ] || [ ] , g = b ? b . type : null , f = ( c . currentItem || c . element ) . find ( ":data(droppable)" ) . andSelf ( ) , h = 0 ; a : for ( ; h < e . length ; h ++ ) if ( ! ( e [ h ] . options . disabled || c && ! e [ h ] . accept . call ( e [ h ] . element [ 0 ] , c . currentItem || c . element ) ) ) { for ( var d = 0 ; d < f . length ; d ++ ) if ( f [ d ] == e [ h ] . element [ 0 ] ) { e [ h ] . proportions . height = 0 ; continue a } e [ h ] . visible = "none" != e [ h ] . element . css ( "display" ) ; e [ h ] . visible && ( "mousedown" ==
g && e [ h ] . _activate . call ( e [ h ] , b ) , e [ h ] . offset = e [ h ] . element . offset ( ) , e [ h ] . proportions = { width : e [ h ] . element [ 0 ] . offsetWidth , height : e [ h ] . element [ 0 ] . offsetHeight } ) } } , drop : function ( c , b ) { var e = ! 1 ; a . each ( a . ui . ddmanager . droppables [ c . options . scope ] || [ ] , function ( ) { this . options && ( ! this . options . disabled && this . visible && a . ui . intersect ( c , this , this . options . tolerance ) && ( e = e || this . _drop . call ( this , b ) ) , ! this . options . disabled && this . visible && this . accept . call ( this . element [ 0 ] , c . currentItem || c . element ) && ( this . isout = 1 , this . isover =
0 , this . _deactivate . call ( this , b ) ) ) } ) ; return e } , dragStart : function ( c , b ) { c . element . parents ( ":not(body,html)" ) . bind ( "scroll.droppable" , function ( ) { c . options . refreshPositions || a . ui . ddmanager . prepareOffsets ( c , b ) } ) } , drag : function ( c , b ) { c . options . refreshPositions && a . ui . ddmanager . prepareOffsets ( c , b ) ; a . each ( a . ui . ddmanager . droppables [ c . options . scope ] || [ ] , function ( ) { if ( ! this . options . disabled && ! this . greedyChild && this . visible ) { var e = a . ui . intersect ( c , this , this . options . tolerance ) ; if ( e = e || 1 != this . isover ? e && 0 == this . isover ?
"isover" : null : "isout" ) { var g ; if ( this . options . greedy ) { var f = this . element . parents ( ":data(droppable):eq(0)" ) ; f . length && ( g = a . data ( f [ 0 ] , "droppable" ) , g . greedyChild = "isover" == e ? 1 : 0 ) } g && "isover" == e && ( g . isover = 0 , g . isout = 1 , g . _out . call ( g , b ) ) ; this [ e ] = 1 ; this [ "isout" == e ? "isover" : "isout" ] = 0 ; this [ "isover" == e ? "_over" : "_out" ] . call ( this , b ) ; g && "isout" == e && ( g . isout = 0 , g . isover = 1 , g . _over . call ( g , b ) ) } } } ) } , dragStop : function ( c , b ) { c . element . parents ( ":not(body,html)" ) . unbind ( "scroll.droppable" ) ; c . options . refreshPositions || a . ui . ddmanager . prepareOffsets ( c ,
b ) } } } ) ( jQuery ) ;
( function ( a ) { a . widget ( "ui.resizable" , a . ui . mouse , { widgetEventPrefix : "resize" , options : { alsoResize : ! 1 , animate : ! 1 , animateDuration : "slow" , animateEasing : "swing" , aspectRatio : ! 1 , autoHide : ! 1 , containment : ! 1 , ghost : ! 1 , grid : ! 1 , handles : "e,s,se" , helper : ! 1 , maxHeight : null , maxWidth : null , minHeight : 10 , minWidth : 10 , zIndex : 1E3 } , _create : function ( ) { var c = this , b = this . options ; this . element . addClass ( "ui-resizable" ) ; a . extend ( this , { _aspectRatio : ! ! b . aspectRatio , aspectRatio : b . aspectRatio , originalElement : this . element , _proportionallyResizeElements : [ ] ,
_helper : b . helper || b . ghost || b . animate ? b . helper || "ui-resizable-helper" : null } ) ; this . element [ 0 ] . nodeName . match ( /canvas|textarea|input|select|button|img/i ) && ( /relative/ . test ( this . element . css ( "position" ) ) && a . browser . opera && this . element . css ( { position : "relative" , top : "auto" , left : "auto" } ) , this . element . wrap ( a ( '<div class="ui-wrapper" style="overflow: hidden;"></div>' ) . css ( { position : this . element . css ( "position" ) , width : this . element . outerWidth ( ) , height : this . element . outerHeight ( ) , top : this . element . css ( "top" ) , left : this . element . css ( "left" ) } ) ) ,
this . element = this . element . parent ( ) . data ( "resizable" , this . element . data ( "resizable" ) ) , this . elementIsWrapper = ! 0 , this . element . css ( { marginLeft : this . originalElement . css ( "marginLeft" ) , marginTop : this . originalElement . css ( "marginTop" ) , marginRight : this . originalElement . css ( "marginRight" ) , marginBottom : this . originalElement . css ( "marginBottom" ) } ) , this . originalElement . css ( { marginLeft : 0 , marginTop : 0 , marginRight : 0 , marginBottom : 0 } ) , this . originalResizeStyle = this . originalElement . css ( "resize" ) , this . originalElement . css ( "resize" ,
"none" ) , this . _proportionallyResizeElements . push ( this . originalElement . css ( { position : "static" , zoom : 1 , display : "block" } ) ) , this . originalElement . css ( { margin : this . originalElement . css ( "margin" ) } ) , this . _proportionallyResize ( ) ) ; this . handles = b . handles || ( a ( ".ui-resizable-handle" , this . element ) . length ? { n : ".ui-resizable-n" , e : ".ui-resizable-e" , s : ".ui-resizable-s" , w : ".ui-resizable-w" , se : ".ui-resizable-se" , sw : ".ui-resizable-sw" , ne : ".ui-resizable-ne" , nw : ".ui-resizable-nw" } : "e,s,se" ) ; if ( this . handles . constructor == String ) { "all" ==
this . handles && ( this . handles = "n,e,s,w,se,sw,ne,nw" ) ; var f = this . handles . split ( "," ) ; this . handles = { } ; for ( var h = 0 ; h < f . length ; h ++ ) { var d = a . trim ( f [ h ] ) , l = a ( '<div class="ui-resizable-handle ui-resizable-' + d + '"></div>' ) ; /sw|se|ne|nw/ . test ( d ) && l . css ( { zIndex : ++ b . zIndex } ) ; "se" == d && l . addClass ( "ui-icon ui-icon-gripsmall-diagonal-se" ) ; this . handles [ d ] = ".ui-resizable-" + d ; this . element . append ( l ) } } this . _renderAxis = function ( d ) { d = d || this . element ; for ( var c in this . handles ) { this . handles [ c ] . constructor == String && ( this . handles [ c ] =
a ( this . handles [ c ] , this . element ) . show ( ) ) ; if ( this . elementIsWrapper && this . originalElement [ 0 ] . nodeName . match ( /textarea|input|select|button/i ) ) { var b = a ( this . handles [ c ] , this . element ) , e = 0 , e = /sw|ne|nw|se|n|s/ . test ( c ) ? b . outerHeight ( ) : b . outerWidth ( ) , b = [ "padding" , /ne|nw|n/ . test ( c ) ? "Top" : /se|sw|s/ . test ( c ) ? "Bottom" : /^e$/ . test ( c ) ? "Right" : "Left" ] . join ( "" ) ; d . css ( b , e ) ; this . _proportionallyResize ( ) } a ( this . handles [ c ] ) } } ; this . _renderAxis ( this . element ) ; this . _handles = a ( ".ui-resizable-handle" , this . element ) . disableSelection ( ) ;
this . _handles . mouseover ( function ( ) { if ( ! c . resizing ) { if ( this . className ) var a = this . className . match ( /ui-resizable-(se|sw|ne|nw|n|e|s|w)/i ) ; c . axis = a && a [ 1 ] ? a [ 1 ] : "se" } } ) ; b . autoHide && ( this . _handles . hide ( ) , a ( this . element ) . addClass ( "ui-resizable-autohide" ) . hover ( function ( ) { b . disabled || ( a ( this ) . removeClass ( "ui-resizable-autohide" ) , c . _handles . show ( ) ) } , function ( ) { b . disabled || c . resizing || ( a ( this ) . addClass ( "ui-resizable-autohide" ) , c . _handles . hide ( ) ) } ) ) ; this . _mouseInit ( ) } , destroy : function ( ) { this . _mouseDestroy ( ) ;
var c = function ( c ) { a ( c ) . removeClass ( "ui-resizable ui-resizable-disabled ui-resizable-resizing" ) . removeData ( "resizable" ) . unbind ( ".resizable" ) . find ( ".ui-resizable-handle" ) . remove ( ) } ; if ( this . elementIsWrapper ) { c ( this . element ) ; var b = this . element ; b . after ( this . originalElement . css ( { position : b . css ( "position" ) , width : b . outerWidth ( ) , height : b . outerHeight ( ) , top : b . css ( "top" ) , left : b . css ( "left" ) } ) ) . remove ( ) } this . originalElement . css ( "resize" , this . originalResizeStyle ) ; c ( this . originalElement ) ; return this } , _mouseCapture : function ( c ) { var b =
! 1 , f ; for ( f in this . handles ) a ( this . handles [ f ] ) [ 0 ] == c . target && ( b = ! 0 ) ; return ! this . options . disabled && b } , _mouseStart : function ( b ) { var g = this . options , f = this . element . position ( ) , h = this . element ; this . resizing = ! 0 ; this . documentScroll = { top : a ( document ) . scrollTop ( ) , left : a ( document ) . scrollLeft ( ) } ; ( h . is ( ".ui-draggable" ) || /absolute/ . test ( h . css ( "position" ) ) ) && h . css ( { position : "absolute" , top : f . top , left : f . left } ) ; a . browser . opera && /relative/ . test ( h . css ( "position" ) ) && h . css ( { position : "relative" , top : "auto" , left : "auto" } ) ; this . _renderProxy ( ) ;
var f = c ( this . helper . css ( "left" ) ) , d = c ( this . helper . css ( "top" ) ) ; g . containment && ( f += a ( g . containment ) . scrollLeft ( ) || 0 , d += a ( g . containment ) . scrollTop ( ) || 0 ) ; this . offset = this . helper . offset ( ) ; this . position = { left : f , top : d } ; this . size = this . _helper ? { width : h . outerWidth ( ) , height : h . outerHeight ( ) } : { width : h . width ( ) , height : h . height ( ) } ; this . originalSize = this . _helper ? { width : h . outerWidth ( ) , height : h . outerHeight ( ) } : { width : h . width ( ) , height : h . height ( ) } ; this . originalPosition = { left : f , top : d } ; this . sizeDiff = { width : h . outerWidth ( ) -
h . width ( ) , height : h . outerHeight ( ) - h . height ( ) } ; this . originalMousePosition = { left : b . pageX , top : b . pageY } ; this . aspectRatio = "number" == typeof g . aspectRatio ? g . aspectRatio : this . originalSize . width / this . originalSize . height || 1 ; g = a ( ".ui-resizable-" + this . axis ) . css ( "cursor" ) ; a ( "body" ) . css ( "cursor" , "auto" == g ? this . axis + "-resize" : g ) ; h . addClass ( "ui-resizable-resizing" ) ; this . _propagate ( "start" , b ) ; return ! 0 } , _mouseDrag : function ( a ) { var c = this . helper , b = this . originalMousePosition , h = this . _change [ this . axis ] ; if ( ! h ) return ! 1 ; b =
h . apply ( this , [ a , a . pageX - b . left || 0 , a . pageY - b . top || 0 ] ) ; this . _updateVirtualBoundaries ( a . shiftKey ) ; if ( this . _aspectRatio || a . shiftKey ) b = this . _updateRatio ( b , a ) ; b = this . _respectSize ( b , a ) ; this . _propagate ( "resize" , a ) ; c . css ( { top : this . position . top + "px" , left : this . position . left + "px" , width : this . size . width + "px" , height : this . size . height + "px" } ) ; ! this . _helper && this . _proportionallyResizeElements . length && this . _proportionallyResize ( ) ; this . _updateCache ( b ) ; this . _trigger ( "resize" , a , this . ui ( ) ) ; return ! 1 } , _mouseStop : function ( c ) { this . resizing =
! 1 ; var b = this . options ; if ( this . _helper ) { var f = this . _proportionallyResizeElements , h = f . length && /textarea/i . test ( f [ 0 ] . nodeName ) , f = h && a . ui . hasScroll ( f [ 0 ] , "left" ) ? 0 : this . sizeDiff . height , h = h ? 0 : this . sizeDiff . width , h = { width : this . helper . width ( ) - h , height : this . helper . height ( ) - f } , f = parseInt ( this . element . css ( "left" ) , 10 ) + ( this . position . left - this . originalPosition . left ) || null , d = parseInt ( this . element . css ( "top" ) , 10 ) + ( this . position . top - this . originalPosition . top ) || null ; b . animate || this . element . css ( a . extend ( h , { top : d , left : f } ) ) ;
this . helper . height ( this . size . height ) ; this . helper . width ( this . size . width ) ; this . _helper && ! b . animate && this . _proportionallyResize ( ) } a ( "body" ) . css ( "cursor" , "auto" ) ; this . element . removeClass ( "ui-resizable-resizing" ) ; this . _propagate ( "stop" , c ) ; this . _helper && this . helper . remove ( ) ; return ! 1 } , _updateVirtualBoundaries : function ( a ) { var c = this . options , f , h , d , c = { minWidth : b ( c . minWidth ) ? c . minWidth : 0 , maxWidth : b ( c . maxWidth ) ? c . maxWidth : Infinity , minHeight : b ( c . minHeight ) ? c . minHeight : 0 , maxHeight : b ( c . maxHeight ) ? c . maxHeight : Infinity } ;
if ( this . _aspectRatio || a ) a = c . minHeight * this . aspectRatio , h = c . minWidth / this . aspectRatio , f = c . maxHeight * this . aspectRatio , d = c . maxWidth / this . aspectRatio , a > c . minWidth && ( c . minWidth = a ) , h > c . minHeight && ( c . minHeight = h ) , f < c . maxWidth && ( c . maxWidth = f ) , d < c . maxHeight && ( c . maxHeight = d ) ; this . _vBoundaries = c } , _updateCache : function ( a ) { this . offset = this . helper . offset ( ) ; b ( a . left ) && ( this . position . left = a . left ) ; b ( a . top ) && ( this . position . top = a . top ) ; b ( a . height ) && ( this . size . height = a . height ) ; b ( a . width ) && ( this . size . width = a . width ) } , _updateRatio : function ( a ) { var c =
this . position , f = this . size , h = this . axis ; b ( a . height ) ? a . width = a . height * this . aspectRatio : b ( a . width ) && ( a . height = a . width / this . aspectRatio ) ; "sw" == h && ( a . left = c . left + ( f . width - a . width ) , a . top = null ) ; "nw" == h && ( a . top = c . top + ( f . height - a . height ) , a . left = c . left + ( f . width - a . width ) ) ; return a } , _respectSize : function ( a ) { var c = this . _vBoundaries , f = this . axis , h = b ( a . width ) && c . maxWidth && c . maxWidth < a . width , d = b ( a . height ) && c . maxHeight && c . maxHeight < a . height , l = b ( a . width ) && c . minWidth && c . minWidth > a . width , m = b ( a . height ) && c . minHeight && c . minHeight >
a . height ; l && ( a . width = c . minWidth ) ; m && ( a . height = c . minHeight ) ; h && ( a . width = c . maxWidth ) ; d && ( a . height = c . maxHeight ) ; var q = this . originalPosition . left + this . originalSize . width , r = this . position . top + this . size . height , n = /sw|nw|w/ . test ( f ) , f = /nw|ne|n/ . test ( f ) ; l && n && ( a . left = q - c . minWidth ) ; h && n && ( a . left = q - c . maxWidth ) ; m && f && ( a . top = r - c . minHeight ) ; d && f && ( a . top = r - c . maxHeight ) ; ( c = ! a . width && ! a . height ) && ! a . left && a . top ? a . top = null : c && ! a . top && a . left && ( a . left = null ) ; return a } , _proportionallyResize : function ( ) { if ( this . _proportionallyResizeElements . length ) for ( var c =
this . helper || this . element , b = 0 ; b < this . _proportionallyResizeElements . length ; b ++ ) { var f = this . _proportionallyResizeElements [ b ] ; if ( ! this . borderDif ) { var h = [ f . css ( "borderTopWidth" ) , f . css ( "borderRightWidth" ) , f . css ( "borderBottomWidth" ) , f . css ( "borderLeftWidth" ) ] , d = [ f . css ( "paddingTop" ) , f . css ( "paddingRight" ) , f . css ( "paddingBottom" ) , f . css ( "paddingLeft" ) ] ; this . borderDif = a . map ( h , function ( a , c ) { a = parseInt ( a , 10 ) || 0 ; c = parseInt ( d [ c ] , 10 ) || 0 ; return a + c } ) } a . browser . msie && ( a ( c ) . is ( ":hidden" ) || a ( c ) . parents ( ":hidden" ) . length ) ||
f . css ( { height : c . height ( ) - this . borderDif [ 0 ] - this . borderDif [ 2 ] || 0 , width : c . width ( ) - this . borderDif [ 1 ] - this . borderDif [ 3 ] || 0 } ) } } , _renderProxy : function ( ) { var c = this . options ; this . elementOffset = this . element . offset ( ) ; if ( this . _helper ) { this . helper = this . helper || a ( '<div style="overflow:hidden;"></div>' ) ; var b = a . browser . msie && 7 > a . browser . version , f = b ? 1 : 0 , b = b ? 2 : - 1 ; this . helper . addClass ( this . _helper ) . css ( { width : this . element . outerWidth ( ) + b , height : this . element . outerHeight ( ) + b , position : "absolute" , left : this . elementOffset . left -
f + "px" , top : this . elementOffset . top - f + "px" , zIndex : ++ c . zIndex } ) ; this . helper . appendTo ( "body" ) . disableSelection ( ) } else this . helper = this . element } , _change : { e : function ( a , c ) { return { width : this . originalSize . width + c } } , w : function ( a , c ) { return { left : this . originalPosition . left + c , width : this . originalSize . width - c } } , n : function ( a , c , b ) { return { top : this . originalPosition . top + b , height : this . originalSize . height - b } } , s : function ( a , c , b ) { return { height : this . originalSize . height + b } } , se : function ( c , b , f ) { return a . extend ( this . _change . s . apply ( this ,
arguments ) , this . _change . e . apply ( this , [ c , b , f ] ) ) } , sw : function ( c , b , f ) { return a . extend ( this . _change . s . apply ( this , arguments ) , this . _change . w . apply ( this , [ c , b , f ] ) ) } , ne : function ( c , b , f ) { return a . extend ( this . _change . n . apply ( this , arguments ) , this . _change . e . apply ( this , [ c , b , f ] ) ) } , nw : function ( c , b , f ) { return a . extend ( this . _change . n . apply ( this , arguments ) , this . _change . w . apply ( this , [ c , b , f ] ) ) } } , _propagate : function ( c , b ) { a . ui . plugin . call ( this , c , [ b , this . ui ( ) ] ) ; "resize" != c && this . _trigger ( c , b , this . ui ( ) ) } , plugins : { } , ui : function ( ) { return { originalElement : this . originalElement ,
element : this . element , helper : this . helper , position : this . position , size : this . size , originalSize : this . originalSize , originalPosition : this . originalPosition } } } ) ; a . extend ( a . ui . resizable , { version : "1.8.16" } ) ; a . ui . plugin . add ( "resizable" , "alsoResize" , { start : function ( ) { var c = a ( this ) . data ( "resizable" ) . options , b = function ( c ) { a ( c ) . each ( function ( ) { var c = a ( this ) ; c . data ( "resizable-alsoresize" , { width : parseInt ( c . width ( ) , 10 ) , height : parseInt ( c . height ( ) , 10 ) , left : parseInt ( c . css ( "left" ) , 10 ) , top : parseInt ( c . css ( "top" ) , 10 ) , position : c . css ( "position" ) } ) } ) } ;
"object" != typeof c . alsoResize || c . alsoResize . parentNode ? b ( c . alsoResize ) : c . alsoResize . length ? ( c . alsoResize = c . alsoResize [ 0 ] , b ( c . alsoResize ) ) : a . each ( c . alsoResize , function ( a ) { b ( a ) } ) } , resize : function ( c , b ) { var f = a ( this ) . data ( "resizable" ) ; c = f . options ; var h = f . originalSize , d = f . originalPosition , l = { height : f . size . height - h . height || 0 , width : f . size . width - h . width || 0 , top : f . position . top - d . top || 0 , left : f . position . left - d . left || 0 } , m = function ( d , c ) { a ( d ) . each ( function ( ) { var d = a ( this ) , e = a ( this ) . data ( "resizable-alsoresize" ) ,
h = { } , m = c && c . length ? c : d . parents ( b . originalElement [ 0 ] ) . length ? [ "width" , "height" ] : [ "width" , "height" , "top" , "left" ] ; a . each ( m , function ( a , d ) { ( a = ( e [ d ] || 0 ) + ( l [ d ] || 0 ) ) && 0 <= a && ( h [ d ] = a || null ) } ) ; a . browser . opera && /relative/ . test ( d . css ( "position" ) ) && ( f . _revertToRelativePosition = ! 0 , d . css ( { position : "absolute" , top : "auto" , left : "auto" } ) ) ; d . css ( h ) } ) } ; "object" != typeof c . alsoResize || c . alsoResize . nodeType ? m ( c . alsoResize ) : a . each ( c . alsoResize , function ( a , d ) { m ( a , d ) } ) } , stop : function ( ) { var c = a ( this ) . data ( "resizable" ) , b = c . options ,
f = function ( c ) { a ( c ) . each ( function ( ) { var d = a ( this ) ; d . css ( { position : d . data ( "resizable-alsoresize" ) . position } ) } ) } ; c . _revertToRelativePosition && ( c . _revertToRelativePosition = ! 1 , "object" != typeof b . alsoResize || b . alsoResize . nodeType ? f ( b . alsoResize ) : a . each ( b . alsoResize , function ( a ) { f ( a ) } ) ) ; a ( this ) . removeData ( "resizable-alsoresize" ) } } ) ; a . ui . plugin . add ( "resizable" , "animate" , { stop : function ( c ) { var b = a ( this ) . data ( "resizable" ) , f = b . options , h = b . _proportionallyResizeElements , d = h . length && /textarea/i . test ( h [ 0 ] . nodeName ) ,
l = d && a . ui . hasScroll ( h [ 0 ] , "left" ) ? 0 : b . sizeDiff . height , d = { width : b . size . width - ( d ? 0 : b . sizeDiff . width ) , height : b . size . height - l } , l = parseInt ( b . element . css ( "left" ) , 10 ) + ( b . position . left - b . originalPosition . left ) || null , m = parseInt ( b . element . css ( "top" ) , 10 ) + ( b . position . top - b . originalPosition . top ) || null ; b . element . animate ( a . extend ( d , m && l ? { top : m , left : l } : { } ) , { duration : f . animateDuration , easing : f . animateEasing , step : function ( ) { var d = { width : parseInt ( b . element . css ( "width" ) , 10 ) , height : parseInt ( b . element . css ( "height" ) , 10 ) ,
top : parseInt ( b . element . css ( "top" ) , 10 ) , left : parseInt ( b . element . css ( "left" ) , 10 ) } ; h && h . length && a ( h [ 0 ] ) . css ( { width : d . width , height : d . height } ) ; b . _updateCache ( d ) ; b . _propagate ( "resize" , c ) } } ) } } ) ; a . ui . plugin . add ( "resizable" , "containment" , { start : function ( ) { var b = a ( this ) . data ( "resizable" ) , g = b . element , f = b . options . containment ; if ( g = f instanceof a ? f . get ( 0 ) : /parent/ . test ( f ) ? g . parent ( ) . get ( 0 ) : f ) if ( b . containerElement = a ( g ) , /document/ . test ( f ) || f == document ) b . containerOffset = { left : 0 , top : 0 } , b . containerPosition = { left : 0 , top : 0 } ,
b . parentData = { element : a ( document ) , left : 0 , top : 0 , width : a ( document ) . width ( ) , height : a ( document ) . height ( ) || document . body . parentNode . scrollHeight } ; else { var h = a ( g ) , d = [ ] ; a ( [ "Top" , "Right" , "Left" , "Bottom" ] ) . each ( function ( a , b ) { d [ a ] = c ( h . css ( "padding" + b ) ) } ) ; b . containerOffset = h . offset ( ) ; b . containerPosition = h . position ( ) ; b . containerSize = { height : h . innerHeight ( ) - d [ 3 ] , width : h . innerWidth ( ) - d [ 1 ] } ; var f = b . containerOffset , l = b . containerSize . height , m = b . containerSize . width , m = a . ui . hasScroll ( g , "left" ) ? g . scrollWidth : m , l = a . ui . hasScroll ( g ) ?
g . scrollHeight : l ; b . parentData = { element : g , left : f . left , top : f . top , width : m , height : l } } } , resize : function ( c ) { var b = a ( this ) . data ( "resizable" ) , f = b . options , h = b . containerOffset , d = b . position ; c = b . _aspectRatio || c . shiftKey ; var l = { top : 0 , left : 0 } , m = b . containerElement ; m [ 0 ] != document && /static/ . test ( m . css ( "position" ) ) && ( l = h ) ; d . left < ( b . _helper ? h . left : 0 ) && ( b . size . width += b . _helper ? b . position . left - h . left : b . position . left - l . left , c && ( b . size . height = b . size . width / f . aspectRatio ) , b . position . left = f . helper ? h . left : 0 ) ; d . top < ( b . _helper ?
h . top : 0 ) && ( b . size . height += b . _helper ? b . position . top - h . top : b . position . top , c && ( b . size . width = b . size . height * f . aspectRatio ) , b . position . top = b . _helper ? h . top : 0 ) ; b . offset . left = b . parentData . left + b . position . left ; b . offset . top = b . parentData . top + b . position . top ; f = Math . abs ( b . offset . left - l . left + b . sizeDiff . width ) ; h = Math . abs ( ( b . _helper ? b . offset . top - l . top : b . offset . top - h . top ) + b . sizeDiff . height ) ; d = b . containerElement . get ( 0 ) == b . element . parent ( ) . get ( 0 ) ; l = /relative|absolute/ . test ( b . containerElement . css ( "position" ) ) ; d && l && ( f -=
b . parentData . left ) ; f + b . size . width >= b . parentData . width && ( b . size . width = b . parentData . width - f , c && ( b . size . height = b . size . width / b . aspectRatio ) ) ; h + b . size . height >= b . parentData . height && ( b . size . height = b . parentData . height - h , c && ( b . size . width = b . size . height * b . aspectRatio ) ) } , stop : function ( ) { var c = a ( this ) . data ( "resizable" ) , b = c . options , f = c . containerOffset , h = c . containerPosition , d = c . containerElement , l = a ( c . helper ) , m = l . offset ( ) , q = l . outerWidth ( ) - c . sizeDiff . width , l = l . outerHeight ( ) - c . sizeDiff . height ; c . _helper && ! b . animate &&
/relative/ . test ( d . css ( "position" ) ) && a ( this ) . css ( { left : m . left - h . left - f . left , width : q , height : l } ) ; c . _helper && ! b . animate && /static/ . test ( d . css ( "position" ) ) && a ( this ) . css ( { left : m . left - h . left - f . left , width : q , height : l } ) } } ) ; a . ui . plugin . add ( "resizable" , "ghost" , { start : function ( ) { var c = a ( this ) . data ( "resizable" ) , b = c . options , f = c . size ; c . ghost = c . originalElement . clone ( ) ; c . ghost . css ( { opacity : 0.25 , display : "block" , position : "relative" , height : f . height , width : f . width , margin : 0 , left : 0 , top : 0 } ) . addClass ( "ui-resizable-ghost" ) . addClass ( "string" ==
typeof b . ghost ? b . ghost : "" ) ; c . ghost . appendTo ( c . helper ) } , resize : function ( ) { var c = a ( this ) . data ( "resizable" ) ; c . ghost && c . ghost . css ( { position : "relative" , height : c . size . height , width : c . size . width } ) } , stop : function ( ) { var c = a ( this ) . data ( "resizable" ) ; c . ghost && c . helper && c . helper . get ( 0 ) . removeChild ( c . ghost . get ( 0 ) ) } } ) ; a . ui . plugin . add ( "resizable" , "grid" , { resize : function ( ) { var c = a ( this ) . data ( "resizable" ) , b = c . options , f = c . size , h = c . originalSize , d = c . originalPosition , l = c . axis ; b . grid = "number" == typeof b . grid ? [ b . grid , b . grid ] :
b . grid ; var m = Math . round ( ( f . width - h . width ) / ( b . grid [ 0 ] || 1 ) ) * ( b . grid [ 0 ] || 1 ) , b = Math . round ( ( f . height - h . height ) / ( b . grid [ 1 ] || 1 ) ) * ( b . grid [ 1 ] || 1 ) ; /^(se|s|e)$/ . test ( l ) ? ( c . size . width = h . width + m , c . size . height = h . height + b ) : /^(ne)$/ . test ( l ) ? ( c . size . width = h . width + m , c . size . height = h . height + b , c . position . top = d . top - b ) : ( /^(sw)$/ . test ( l ) ? ( c . size . width = h . width + m , c . size . height = h . height + b ) : ( c . size . width = h . width + m , c . size . height = h . height + b , c . position . top = d . top - b ) , c . position . left = d . left - m ) } } ) ; var c = function ( a ) { return parseInt ( a ,
10 ) || 0 } , b = function ( a ) { return ! isNaN ( parseInt ( a , 10 ) ) } } ) ( jQuery ) ;
( function ( a ) { a . widget ( "ui.selectable" , a . ui . mouse , { options : { appendTo : "body" , autoRefresh : ! 0 , distance : 0 , filter : "*" , tolerance : "touch" } , _create : function ( ) { var c = this ; this . element . addClass ( "ui-selectable" ) ; this . dragged = ! 1 ; var b ; this . refresh = function ( ) { b = a ( c . options . filter , c . element [ 0 ] ) ; b . each ( function ( ) { var c = a ( this ) , b = c . offset ( ) ; a . data ( this , "selectable-item" , { element : this , $element : c , left : b . left , top : b . top , right : b . left + c . outerWidth ( ) , bottom : b . top + c . outerHeight ( ) , startselected : ! 1 , selected : c . hasClass ( "ui-selected" ) ,
selecting : c . hasClass ( "ui-selecting" ) , unselecting : c . hasClass ( "ui-unselecting" ) } ) } ) } ; this . refresh ( ) ; this . selectees = b . addClass ( "ui-selectee" ) ; this . _mouseInit ( ) ; this . helper = a ( "<div class='ui-selectable-helper'></div>" ) } , destroy : function ( ) { this . selectees . removeClass ( "ui-selectee" ) . removeData ( "selectable-item" ) ; this . element . removeClass ( "ui-selectable ui-selectable-disabled" ) . removeData ( "selectable" ) . unbind ( ".selectable" ) ; this . _mouseDestroy ( ) ; return this } , _mouseStart : function ( c ) { var b = this ; this . opos = [ c . pageX ,
c . pageY ] ; if ( ! this . options . disabled ) { var e = this . options ; this . selectees = a ( e . filter , this . element [ 0 ] ) ; this . _trigger ( "start" , c ) ; a ( e . appendTo ) . append ( this . helper ) ; this . helper . css ( { left : c . clientX , top : c . clientY , width : 0 , height : 0 } ) ; e . autoRefresh && this . refresh ( ) ; this . selectees . filter ( ".ui-selected" ) . each ( function ( ) { var e = a . data ( this , "selectable-item" ) ; e . startselected = ! 0 ; c . metaKey || ( e . $element . removeClass ( "ui-selected" ) , e . selected = ! 1 , e . $element . addClass ( "ui-unselecting" ) , e . unselecting = ! 0 , b . _trigger ( "unselecting" ,
c , { unselecting : e . element } ) ) } ) ; a ( c . target ) . parents ( ) . andSelf ( ) . each ( function ( ) { var e = a . data ( this , "selectable-item" ) ; if ( e ) { var f = ! c . metaKey || ! e . $element . hasClass ( "ui-selected" ) ; e . $element . removeClass ( f ? "ui-unselecting" : "ui-selected" ) . addClass ( f ? "ui-selecting" : "ui-unselecting" ) ; e . unselecting = ! f ; e . selecting = f ; ( e . selected = f ) ? b . _trigger ( "selecting" , c , { selecting : e . element } ) : b . _trigger ( "unselecting" , c , { unselecting : e . element } ) ; return ! 1 } } ) } } , _mouseDrag : function ( c ) { var b = this ; this . dragged = ! 0 ; if ( ! this . options . disabled ) { var e =
this . options , g = this . opos [ 0 ] , f = this . opos [ 1 ] , h = c . pageX , d = c . pageY ; if ( g > h ) var l = h , h = g , g = l ; f > d && ( l = d , d = f , f = l ) ; this . helper . css ( { left : g , top : f , width : h - g , height : d - f } ) ; this . selectees . each ( function ( ) { var l = a . data ( this , "selectable-item" ) ; if ( l && l . element != b . element [ 0 ] ) { var q = ! 1 ; "touch" == e . tolerance ? q = ! ( l . left > h || l . right < g || l . top > d || l . bottom < f ) : "fit" == e . tolerance && ( q = l . left > g && l . right < h && l . top > f && l . bottom < d ) ; q ? ( l . selected && ( l . $element . removeClass ( "ui-selected" ) , l . selected = ! 1 ) , l . unselecting && ( l . $element . removeClass ( "ui-unselecting" ) ,
l . unselecting = ! 1 ) , l . selecting || ( l . $element . addClass ( "ui-selecting" ) , l . selecting = ! 0 , b . _trigger ( "selecting" , c , { selecting : l . element } ) ) ) : ( l . selecting && ( c . metaKey && l . startselected ? ( l . $element . removeClass ( "ui-selecting" ) , l . selecting = ! 1 , l . $element . addClass ( "ui-selected" ) , l . selected = ! 0 ) : ( l . $element . removeClass ( "ui-selecting" ) , l . selecting = ! 1 , l . startselected && ( l . $element . addClass ( "ui-unselecting" ) , l . unselecting = ! 0 ) , b . _trigger ( "unselecting" , c , { unselecting : l . element } ) ) ) , ! l . selected || c . metaKey || l . startselected ||
( l . $element . removeClass ( "ui-selected" ) , l . selected = ! 1 , l . $element . addClass ( "ui-unselecting" ) , l . unselecting = ! 0 , b . _trigger ( "unselecting" , c , { unselecting : l . element } ) ) ) } } ) ; return ! 1 } } , _mouseStop : function ( c ) { var b = this ; this . dragged = ! 1 ; a ( ".ui-unselecting" , this . element [ 0 ] ) . each ( function ( ) { var e = a . data ( this , "selectable-item" ) ; e . $element . removeClass ( "ui-unselecting" ) ; e . unselecting = ! 1 ; e . startselected = ! 1 ; b . _trigger ( "unselected" , c , { unselected : e . element } ) } ) ; a ( ".ui-selecting" , this . element [ 0 ] ) . each ( function ( ) { var e =
a . data ( this , "selectable-item" ) ; e . $element . removeClass ( "ui-selecting" ) . addClass ( "ui-selected" ) ; e . selecting = ! 1 ; e . selected = ! 0 ; e . startselected = ! 0 ; b . _trigger ( "selected" , c , { selected : e . element } ) } ) ; this . _trigger ( "stop" , c ) ; this . helper . remove ( ) ; return ! 1 } } ) ; a . extend ( a . ui . selectable , { version : "1.8.16" } ) } ) ( jQuery ) ;
( function ( a ) { a . widget ( "ui.sortable" , a . ui . mouse , { widgetEventPrefix : "sort" , options : { appendTo : "parent" , axis : ! 1 , connectWith : ! 1 , containment : ! 1 , cursor : "auto" , cursorAt : ! 1 , dropOnEmpty : ! 0 , forcePlaceholderSize : ! 1 , forceHelperSize : ! 1 , grid : ! 1 , handle : ! 1 , helper : "original" , items : "> *" , opacity : ! 1 , placeholder : ! 1 , revert : ! 1 , scroll : ! 0 , scrollSensitivity : 20 , scrollSpeed : 20 , scope : "default" , tolerance : "intersect" , zIndex : 1E3 } , _create : function ( ) { var a = this . options ; this . containerCache = { } ; this . element . addClass ( "ui-sortable" ) ; this . refresh ( ) ;
this . floating = this . items . length ? "x" === a . axis || /left|right/ . test ( this . items [ 0 ] . item . css ( "float" ) ) || /inline|table-cell/ . test ( this . items [ 0 ] . item . css ( "display" ) ) : ! 1 ; this . offset = this . element . offset ( ) ; this . _mouseInit ( ) } , destroy : function ( ) { this . element . removeClass ( "ui-sortable ui-sortable-disabled" ) . removeData ( "sortable" ) . unbind ( ".sortable" ) ; this . _mouseDestroy ( ) ; for ( var a = this . items . length - 1 ; 0 <= a ; a -- ) this . items [ a ] . item . removeData ( "sortable-item" ) ; return this } , _setOption : function ( c , b ) { "disabled" === c ? ( this . options [ c ] =
b , this . widget ( ) [ b ? "addClass" : "removeClass" ] ( "ui-sortable-disabled" ) ) : a . Widget . prototype . _setOption . apply ( this , arguments ) } , _mouseCapture : function ( c , b ) { if ( this . reverting || this . options . disabled || "static" == this . options . type ) return ! 1 ; this . _refreshItems ( c ) ; var e = null , g = this ; a ( c . target ) . parents ( ) . each ( function ( ) { if ( a . data ( this , "sortable-item" ) == g ) return e = a ( this ) , ! 1 } ) ; a . data ( c . target , "sortable-item" ) == g && ( e = a ( c . target ) ) ; if ( ! e ) return ! 1 ; if ( this . options . handle && ! b ) { var f = ! 1 ; a ( this . options . handle , e ) . find ( "*" ) . andSelf ( ) . each ( function ( ) { this ==
c . target && ( f = ! 0 ) } ) ; if ( ! f ) return ! 1 } this . currentItem = e ; this . _removeCurrentsFromItems ( ) ; return ! 0 } , _mouseStart : function ( c , b , e ) { b = this . options ; this . currentContainer = this ; this . refreshPositions ( ) ; this . helper = this . _createHelper ( c ) ; this . _cacheHelperProportions ( ) ; this . _cacheMargins ( ) ; this . scrollParent = this . helper . scrollParent ( ) ; this . offset = this . currentItem . offset ( ) ; this . offset = { top : this . offset . top - this . margins . top , left : this . offset . left - this . margins . left } ; this . helper . css ( "position" , "absolute" ) ; this . cssPosition =
this . helper . css ( "position" ) ; a . extend ( this . offset , { click : { left : c . pageX - this . offset . left , top : c . pageY - this . offset . top } , parent : this . _getParentOffset ( ) , relative : this . _getRelativeOffset ( ) } ) ; this . originalPosition = this . _generatePosition ( c ) ; this . originalPageX = c . pageX ; this . originalPageY = c . pageY ; b . cursorAt && this . _adjustOffsetFromHelper ( b . cursorAt ) ; this . domPosition = { prev : this . currentItem . prev ( ) [ 0 ] , parent : this . currentItem . parent ( ) [ 0 ] } ; this . helper [ 0 ] != this . currentItem [ 0 ] && this . currentItem . hide ( ) ; this . _createPlaceholder ( ) ;
b . containment && this . _setContainment ( ) ; b . cursor && ( a ( "body" ) . css ( "cursor" ) && ( this . _storedCursor = a ( "body" ) . css ( "cursor" ) ) , a ( "body" ) . css ( "cursor" , b . cursor ) ) ; b . opacity && ( this . helper . css ( "opacity" ) && ( this . _storedOpacity = this . helper . css ( "opacity" ) ) , this . helper . css ( "opacity" , b . opacity ) ) ; b . zIndex && ( this . helper . css ( "zIndex" ) && ( this . _storedZIndex = this . helper . css ( "zIndex" ) ) , this . helper . css ( "zIndex" , b . zIndex ) ) ; this . scrollParent [ 0 ] != document && "HTML" != this . scrollParent [ 0 ] . tagName && ( this . overflowOffset = this . scrollParent . offset ( ) ) ;
this . _trigger ( "start" , c , this . _uiHash ( ) ) ; this . _preserveHelperProportions || this . _cacheHelperProportions ( ) ; if ( ! e ) for ( e = this . containers . length - 1 ; 0 <= e ; e -- ) this . containers [ e ] . _trigger ( "activate" , c , this . _uiHash ( this ) ) ; a . ui . ddmanager && ( a . ui . ddmanager . current = this ) ; a . ui . ddmanager && ! b . dropBehaviour && a . ui . ddmanager . prepareOffsets ( this , c ) ; this . dragging = ! 0 ; this . helper . addClass ( "ui-sortable-helper" ) ; this . _mouseDrag ( c ) ; return ! 0 } , _mouseDrag : function ( c ) { this . position = this . _generatePosition ( c ) ; this . positionAbs = this . _convertPositionTo ( "absolute" ) ;
this . lastPositionAbs || ( this . lastPositionAbs = this . positionAbs ) ; if ( this . options . scroll ) { var b = this . options , e = ! 1 ; this . scrollParent [ 0 ] != document && "HTML" != this . scrollParent [ 0 ] . tagName ? ( this . overflowOffset . top + this . scrollParent [ 0 ] . offsetHeight - c . pageY < b . scrollSensitivity ? this . scrollParent [ 0 ] . scrollTop = e = this . scrollParent [ 0 ] . scrollTop + b . scrollSpeed : c . pageY - this . overflowOffset . top < b . scrollSensitivity && ( this . scrollParent [ 0 ] . scrollTop = e = this . scrollParent [ 0 ] . scrollTop - b . scrollSpeed ) , this . overflowOffset . left +
this . scrollParent [ 0 ] . offsetWidth - c . pageX < b . scrollSensitivity ? this . scrollParent [ 0 ] . scrollLeft = e = this . scrollParent [ 0 ] . scrollLeft + b . scrollSpeed : c . pageX - this . overflowOffset . left < b . scrollSensitivity && ( this . scrollParent [ 0 ] . scrollLeft = e = this . scrollParent [ 0 ] . scrollLeft - b . scrollSpeed ) ) : ( c . pageY - a ( document ) . scrollTop ( ) < b . scrollSensitivity ? e = a ( document ) . scrollTop ( a ( document ) . scrollTop ( ) - b . scrollSpeed ) : a ( window ) . height ( ) - ( c . pageY - a ( document ) . scrollTop ( ) ) < b . scrollSensitivity && ( e = a ( document ) . scrollTop ( a ( document ) . scrollTop ( ) +
b . scrollSpeed ) ) , c . pageX - a ( document ) . scrollLeft ( ) < b . scrollSensitivity ? e = a ( document ) . scrollLeft ( a ( document ) . scrollLeft ( ) - b . scrollSpeed ) : a ( window ) . width ( ) - ( c . pageX - a ( document ) . scrollLeft ( ) ) < b . scrollSensitivity && ( e = a ( document ) . scrollLeft ( a ( document ) . scrollLeft ( ) + b . scrollSpeed ) ) ) ; ! 1 !== e && a . ui . ddmanager && ! b . dropBehaviour && a . ui . ddmanager . prepareOffsets ( this , c ) } this . positionAbs = this . _convertPositionTo ( "absolute" ) ; this . options . axis && "y" == this . options . axis || ( this . helper [ 0 ] . style . left = this . position . left + "px" ) ;
this . options . axis && "x" == this . options . axis || ( this . helper [ 0 ] . style . top = this . position . top + "px" ) ; for ( b = this . items . length - 1 ; 0 <= b ; b -- ) { var e = this . items [ b ] , g = e . item [ 0 ] , f = this . _intersectsWithPointer ( e ) ; if ( f && g != this . currentItem [ 0 ] && this . placeholder [ 1 == f ? "next" : "prev" ] ( ) [ 0 ] != g && ! a . ui . contains ( this . placeholder [ 0 ] , g ) && ( "semi-dynamic" == this . options . type ? ! a . ui . contains ( this . element [ 0 ] , g ) : 1 ) ) { this . direction = 1 == f ? "down" : "up" ; if ( "pointer" == this . options . tolerance || this . _intersectsWithSides ( e ) ) this . _rearrange ( c , e ) ;
else break ; this . _trigger ( "change" , c , this . _uiHash ( ) ) ; break } } this . _contactContainers ( c ) ; a . ui . ddmanager && a . ui . ddmanager . drag ( this , c ) ; this . _trigger ( "sort" , c , this . _uiHash ( ) ) ; this . lastPositionAbs = this . positionAbs ; return ! 1 } , _mouseStop : function ( c , b ) { if ( c ) { a . ui . ddmanager && ! this . options . dropBehaviour && a . ui . ddmanager . drop ( this , c ) ; if ( this . options . revert ) { var e = this ; b = e . placeholder . offset ( ) ; e . reverting = ! 0 ; a ( this . helper ) . animate ( { left : b . left - this . offset . parent . left - e . margins . left + ( this . offsetParent [ 0 ] == document . body ?
0 : this . offsetParent [ 0 ] . scrollLeft ) , top : b . top - this . offset . parent . top - e . margins . top + ( this . offsetParent [ 0 ] == document . body ? 0 : this . offsetParent [ 0 ] . scrollTop ) } , parseInt ( this . options . revert , 10 ) || 500 , function ( ) { e . _clear ( c ) } ) } else this . _clear ( c , b ) ; return ! 1 } } , cancel : function ( ) { if ( this . dragging ) { this . _mouseUp ( { target : null } ) ; "original" == this . options . helper ? this . currentItem . css ( this . _storedCSS ) . removeClass ( "ui-sortable-helper" ) : this . currentItem . show ( ) ; for ( var c = this . containers . length - 1 ; 0 <= c ; c -- ) this . containers [ c ] . _trigger ( "deactivate" ,
null , this . _uiHash ( this ) ) , this . containers [ c ] . containerCache . over && ( this . containers [ c ] . _trigger ( "out" , null , this . _uiHash ( this ) ) , this . containers [ c ] . containerCache . over = 0 ) } this . placeholder && ( this . placeholder [ 0 ] . parentNode && this . placeholder [ 0 ] . parentNode . removeChild ( this . placeholder [ 0 ] ) , "original" != this . options . helper && this . helper && this . helper [ 0 ] . parentNode && this . helper . remove ( ) , a . extend ( this , { helper : null , dragging : ! 1 , reverting : ! 1 , _noFinalSort : null } ) , this . domPosition . prev ? a ( this . domPosition . prev ) . after ( this . currentItem ) :
a ( this . domPosition . parent ) . prepend ( this . currentItem ) ) ; return this } , serialize : function ( c ) { var b = this . _getItemsAsjQuery ( c && c . connected ) , e = [ ] ; c = c || { } ; a ( b ) . each ( function ( ) { var b = ( a ( c . item || this ) . attr ( c . attribute || "id" ) || "" ) . match ( c . expression || /(.+)[-=_](.+)/ ) ; b && e . push ( ( c . key || b [ 1 ] + "[]" ) + "=" + ( c . key && c . expression ? b [ 1 ] : b [ 2 ] ) ) } ) ; ! e . length && c . key && e . push ( c . key + "=" ) ; return e . join ( "&" ) } , toArray : function ( c ) { var b = this . _getItemsAsjQuery ( c && c . connected ) , e = [ ] ; c = c || { } ; b . each ( function ( ) { e . push ( a ( c . item || this ) . attr ( c . attribute ||
"id" ) || "" ) } ) ; return e } , _intersectsWith : function ( a ) { var b = this . positionAbs . left , e = b + this . helperProportions . width , g = this . positionAbs . top , f = g + this . helperProportions . height , h = a . left , d = h + a . width , l = a . top , m = l + a . height , q = this . offset . click . top , r = this . offset . click . left ; return "pointer" == this . options . tolerance || this . options . forcePointerForContainers || "pointer" != this . options . tolerance && this . helperProportions [ this . floating ? "width" : "height" ] > a [ this . floating ? "width" : "height" ] ? g + q > l && g + q < m && b + r > h && b + r < d : h < b + this . helperProportions . width /
2 && e - this . helperProportions . width / 2 < d && l < g + this . helperProportions . height / 2 && f - this . helperProportions . height / 2 < m } , _intersectsWithPointer : function ( c ) { var b = a . ui . isOverAxis ( this . positionAbs . top + this . offset . click . top , c . top , c . height ) ; c = a . ui . isOverAxis ( this . positionAbs . left + this . offset . click . left , c . left , c . width ) ; b = b && c ; c = this . _getDragVerticalDirection ( ) ; var e = this . _getDragHorizontalDirection ( ) ; return b ? this . floating ? e && "right" == e || "down" == c ? 2 : 1 : c && ( "down" == c ? 2 : 1 ) : ! 1 } , _intersectsWithSides : function ( c ) { var b =
a . ui . isOverAxis ( this . positionAbs . top + this . offset . click . top , c . top + c . height / 2 , c . height ) ; c = a . ui . isOverAxis ( this . positionAbs . left + this . offset . click . left , c . left + c . width / 2 , c . width ) ; var e = this . _getDragVerticalDirection ( ) , g = this . _getDragHorizontalDirection ( ) ; return this . floating && g ? "right" == g && c || "left" == g && ! c : e && ( "down" == e && b || "up" == e && ! b ) } , _getDragVerticalDirection : function ( ) { var a = this . positionAbs . top - this . lastPositionAbs . top ; return 0 != a && ( 0 < a ? "down" : "up" ) } , _getDragHorizontalDirection : function ( ) { var a =
this . positionAbs . left - this . lastPositionAbs . left ; return 0 != a && ( 0 < a ? "right" : "left" ) } , refresh : function ( a ) { this . _refreshItems ( a ) ; this . refreshPositions ( ) ; return this } , _connectWith : function ( ) { var a = this . options ; return a . connectWith . constructor == String ? [ a . connectWith ] : a . connectWith } , _getItemsAsjQuery : function ( c ) { var b = [ ] , e = [ ] , g = this . _connectWith ( ) ; if ( g && c ) for ( c = g . length - 1 ; 0 <= c ; c -- ) for ( var f = a ( g [ c ] ) , h = f . length - 1 ; 0 <= h ; h -- ) { var d = a . data ( f [ h ] , "sortable" ) ; d && d != this && ! d . options . disabled && e . push ( [ a . isFunction ( d . options . items ) ?
d . options . items . call ( d . element ) : a ( d . options . items , d . element ) . not ( ".ui-sortable-helper" ) . not ( ".ui-sortable-placeholder" ) , d ] ) } e . push ( [ a . isFunction ( this . options . items ) ? this . options . items . call ( this . element , null , { options : this . options , item : this . currentItem } ) : a ( this . options . items , this . element ) . not ( ".ui-sortable-helper" ) . not ( ".ui-sortable-placeholder" ) , this ] ) ; for ( c = e . length - 1 ; 0 <= c ; c -- ) e [ c ] [ 0 ] . each ( function ( ) { b . push ( this ) } ) ; return a ( b ) } , _removeCurrentsFromItems : function ( ) { for ( var a = this . currentItem . find ( ":data(sortable-item)" ) ,
b = 0 ; b < this . items . length ; b ++ ) for ( var e = 0 ; e < a . length ; e ++ ) a [ e ] == this . items [ b ] . item [ 0 ] && this . items . splice ( b , 1 ) } , _refreshItems : function ( c ) { this . items = [ ] ; this . containers = [ this ] ; var b = this . items , e = [ [ a . isFunction ( this . options . items ) ? this . options . items . call ( this . element [ 0 ] , c , { item : this . currentItem } ) : a ( this . options . items , this . element ) , this ] ] , g = this . _connectWith ( ) ; if ( g ) for ( var f = g . length - 1 ; 0 <= f ; f -- ) for ( var h = a ( g [ f ] ) , d = h . length - 1 ; 0 <= d ; d -- ) { var l = a . data ( h [ d ] , "sortable" ) ; l && l != this && ! l . options . disabled && ( e . push ( [ a . isFunction ( l . options . items ) ?
l . options . items . call ( l . element [ 0 ] , c , { item : this . currentItem } ) : a ( l . options . items , l . element ) , l ] ) , this . containers . push ( l ) ) } for ( f = e . length - 1 ; 0 <= f ; f -- ) for ( c = e [ f ] [ 1 ] , g = e [ f ] [ 0 ] , d = 0 , h = g . length ; d < h ; d ++ ) l = a ( g [ d ] ) , l . data ( "sortable-item" , c ) , b . push ( { item : l , instance : c , width : 0 , height : 0 , left : 0 , top : 0 } ) } , refreshPositions : function ( c ) { this . offsetParent && this . helper && ( this . offset . parent = this . _getParentOffset ( ) ) ; for ( var b = this . items . length - 1 ; 0 <= b ; b -- ) { var e = this . items [ b ] ; if ( e . instance == this . currentContainer || ! this . currentContainer ||
e . item [ 0 ] == this . currentItem [ 0 ] ) { var g = this . options . toleranceElement ? a ( this . options . toleranceElement , e . item ) : e . item ; c || ( e . width = g . outerWidth ( ) , e . height = g . outerHeight ( ) ) ; g = g . offset ( ) ; e . left = g . left ; e . top = g . top } } if ( this . options . custom && this . options . custom . refreshContainers ) this . options . custom . refreshContainers . call ( this ) ; else for ( b = this . containers . length - 1 ; 0 <= b ; b -- ) g = this . containers [ b ] . element . offset ( ) , this . containers [ b ] . containerCache . left = g . left , this . containers [ b ] . containerCache . top = g . top , this . containers [ b ] . containerCache . width =
this . containers [ b ] . element . outerWidth ( ) , this . containers [ b ] . containerCache . height = this . containers [ b ] . element . outerHeight ( ) ; return this } , _createPlaceholder : function ( c ) { var b = c || this , e = b . options ; if ( ! e . placeholder || e . placeholder . constructor == String ) { var g = e . placeholder ; e . placeholder = { element : function ( ) { var c = a ( document . createElement ( b . currentItem [ 0 ] . nodeName ) ) . addClass ( g || b . currentItem [ 0 ] . className + " ui-sortable-placeholder" ) . removeClass ( "ui-sortable-helper" ) [ 0 ] ; g || ( c . style . visibility = "hidden" ) ; return c } ,
update : function ( a , c ) { if ( ! g || e . forcePlaceholderSize ) c . height ( ) || c . height ( b . currentItem . innerHeight ( ) - parseInt ( b . currentItem . css ( "paddingTop" ) || 0 , 10 ) - parseInt ( b . currentItem . css ( "paddingBottom" ) || 0 , 10 ) ) , c . width ( ) || c . width ( b . currentItem . innerWidth ( ) - parseInt ( b . currentItem . css ( "paddingLeft" ) || 0 , 10 ) - parseInt ( b . currentItem . css ( "paddingRight" ) || 0 , 10 ) ) } } } b . placeholder = a ( e . placeholder . element . call ( b . element , b . currentItem ) ) ; b . currentItem . after ( b . placeholder ) ; e . placeholder . update ( b , b . placeholder ) } , _contactContainers : function ( c ) { for ( var b =
null , e = null , g = this . containers . length - 1 ; 0 <= g ; g -- ) a . ui . contains ( this . currentItem [ 0 ] , this . containers [ g ] . element [ 0 ] ) || ( this . _intersectsWith ( this . containers [ g ] . containerCache ) ? b && a . ui . contains ( this . containers [ g ] . element [ 0 ] , b . element [ 0 ] ) || ( b = this . containers [ g ] , e = g ) : this . containers [ g ] . containerCache . over && ( this . containers [ g ] . _trigger ( "out" , c , this . _uiHash ( this ) ) , this . containers [ g ] . containerCache . over = 0 ) ) ; if ( b ) if ( 1 === this . containers . length ) this . containers [ e ] . _trigger ( "over" , c , this . _uiHash ( this ) ) , this . containers [ e ] . containerCache . over =
1 ; else if ( this . currentContainer != this . containers [ e ] ) { for ( var b = 1E4 , g = null , f = this . positionAbs [ this . containers [ e ] . floating ? "left" : "top" ] , h = this . items . length - 1 ; 0 <= h ; h -- ) if ( a . ui . contains ( this . containers [ e ] . element [ 0 ] , this . items [ h ] . item [ 0 ] ) ) { var d = this . items [ h ] [ this . containers [ e ] . floating ? "left" : "top" ] ; Math . abs ( d - f ) < b && ( b = Math . abs ( d - f ) , g = this . items [ h ] ) } if ( g || this . options . dropOnEmpty ) this . currentContainer = this . containers [ e ] , g ? this . _rearrange ( c , g , null , ! 0 ) : this . _rearrange ( c , null , this . containers [ e ] . element ,
! 0 ) , this . _trigger ( "change" , c , this . _uiHash ( ) ) , this . containers [ e ] . _trigger ( "change" , c , this . _uiHash ( this ) ) , this . options . placeholder . update ( this . currentContainer , this . placeholder ) , this . containers [ e ] . _trigger ( "over" , c , this . _uiHash ( this ) ) , this . containers [ e ] . containerCache . over = 1 } } , _createHelper : function ( c ) { var b = this . options ; c = a . isFunction ( b . helper ) ? a ( b . helper . apply ( this . element [ 0 ] , [ c , this . currentItem ] ) ) : "clone" == b . helper ? this . currentItem . clone ( ) : this . currentItem ; c . parents ( "body" ) . length || a ( "parent" != b . appendTo ?
b . appendTo : this . currentItem [ 0 ] . parentNode ) [ 0 ] . appendChild ( c [ 0 ] ) ; c [ 0 ] == this . currentItem [ 0 ] && ( this . _storedCSS = { width : this . currentItem [ 0 ] . style . width , height : this . currentItem [ 0 ] . style . height , position : this . currentItem . css ( "position" ) , top : this . currentItem . css ( "top" ) , left : this . currentItem . css ( "left" ) } ) ; ( "" == c [ 0 ] . style . width || b . forceHelperSize ) && c . width ( this . currentItem . width ( ) ) ; ( "" == c [ 0 ] . style . height || b . forceHelperSize ) && c . height ( this . currentItem . height ( ) ) ; return c } , _adjustOffsetFromHelper : function ( c ) { "string" ==
typeof c && ( c = c . split ( " " ) ) ; a . isArray ( c ) && ( c = { left : + c [ 0 ] , top : + c [ 1 ] || 0 } ) ; "left" in c && ( this . offset . click . left = c . left + this . margins . left ) ; "right" in c && ( this . offset . click . left = this . helperProportions . width - c . right + this . margins . left ) ; "top" in c && ( this . offset . click . top = c . top + this . margins . top ) ; "bottom" in c && ( this . offset . click . top = this . helperProportions . height - c . bottom + this . margins . top ) } , _getParentOffset : function ( ) { this . offsetParent = this . helper . offsetParent ( ) ; var c = this . offsetParent . offset ( ) ; "absolute" == this . cssPosition &&
this . scrollParent [ 0 ] != document && a . ui . contains ( this . scrollParent [ 0 ] , this . offsetParent [ 0 ] ) && ( c . left += this . scrollParent . scrollLeft ( ) , c . top += this . scrollParent . scrollTop ( ) ) ; if ( this . offsetParent [ 0 ] == document . body || this . offsetParent [ 0 ] . tagName && "html" == this . offsetParent [ 0 ] . tagName . toLowerCase ( ) && a . browser . msie ) c = { top : 0 , left : 0 } ; return { top : c . top + ( parseInt ( this . offsetParent . css ( "borderTopWidth" ) , 10 ) || 0 ) , left : c . left + ( parseInt ( this . offsetParent . css ( "borderLeftWidth" ) , 10 ) || 0 ) } } , _getRelativeOffset : function ( ) { if ( "relative" ==
this . cssPosition ) { var a = this . currentItem . position ( ) ; return { top : a . top - ( parseInt ( this . helper . css ( "top" ) , 10 ) || 0 ) + this . scrollParent . scrollTop ( ) , left : a . left - ( parseInt ( this . helper . css ( "left" ) , 10 ) || 0 ) + this . scrollParent . scrollLeft ( ) } } return { top : 0 , left : 0 } } , _cacheMargins : function ( ) { this . margins = { left : parseInt ( this . currentItem . css ( "marginLeft" ) , 10 ) || 0 , top : parseInt ( this . currentItem . css ( "marginTop" ) , 10 ) || 0 } } , _cacheHelperProportions : function ( ) { this . helperProportions = { width : this . helper . outerWidth ( ) , height : this . helper . outerHeight ( ) } } ,
_setContainment : function ( ) { var c = this . options ; "parent" == c . containment && ( c . containment = this . helper [ 0 ] . parentNode ) ; if ( "document" == c . containment || "window" == c . containment ) this . containment = [ 0 - this . offset . relative . left - this . offset . parent . left , 0 - this . offset . relative . top - this . offset . parent . top , a ( "document" == c . containment ? document : window ) . width ( ) - this . helperProportions . width - this . margins . left , ( a ( "document" == c . containment ? document : window ) . height ( ) || document . body . parentNode . scrollHeight ) - this . helperProportions . height -
this . margins . top ] ; if ( ! /^(document|window|parent)$/ . test ( c . containment ) ) { var b = a ( c . containment ) [ 0 ] , c = a ( c . containment ) . offset ( ) , e = "hidden" != a ( b ) . css ( "overflow" ) ; this . containment = [ c . left + ( parseInt ( a ( b ) . css ( "borderLeftWidth" ) , 10 ) || 0 ) + ( parseInt ( a ( b ) . css ( "paddingLeft" ) , 10 ) || 0 ) - this . margins . left , c . top + ( parseInt ( a ( b ) . css ( "borderTopWidth" ) , 10 ) || 0 ) + ( parseInt ( a ( b ) . css ( "paddingTop" ) , 10 ) || 0 ) - this . margins . top , c . left + ( e ? Math . max ( b . scrollWidth , b . offsetWidth ) : b . offsetWidth ) - ( parseInt ( a ( b ) . css ( "borderLeftWidth" ) , 10 ) ||
0 ) - ( parseInt ( a ( b ) . css ( "paddingRight" ) , 10 ) || 0 ) - this . helperProportions . width - this . margins . left , c . top + ( e ? Math . max ( b . scrollHeight , b . offsetHeight ) : b . offsetHeight ) - ( parseInt ( a ( b ) . css ( "borderTopWidth" ) , 10 ) || 0 ) - ( parseInt ( a ( b ) . css ( "paddingBottom" ) , 10 ) || 0 ) - this . helperProportions . height - this . margins . top ] } } , _convertPositionTo : function ( c , b ) { b || ( b = this . position ) ; c = "absolute" == c ? 1 : - 1 ; var e = "absolute" != this . cssPosition || this . scrollParent [ 0 ] != document && a . ui . contains ( this . scrollParent [ 0 ] , this . offsetParent [ 0 ] ) ? this . scrollParent :
this . offsetParent , g = /(html|body)/i . test ( e [ 0 ] . tagName ) ; return { top : b . top + this . offset . relative . top * c + this . offset . parent . top * c - ( a . browser . safari && "fixed" == this . cssPosition ? 0 : ( "fixed" == this . cssPosition ? - this . scrollParent . scrollTop ( ) : g ? 0 : e . scrollTop ( ) ) * c ) , left : b . left + this . offset . relative . left * c + this . offset . parent . left * c - ( a . browser . safari && "fixed" == this . cssPosition ? 0 : ( "fixed" == this . cssPosition ? - this . scrollParent . scrollLeft ( ) : g ? 0 : e . scrollLeft ( ) ) * c ) } } , _generatePosition : function ( c ) { var b = this . options , e = "absolute" !=
this . cssPosition || this . scrollParent [ 0 ] != document && a . ui . contains ( this . scrollParent [ 0 ] , this . offsetParent [ 0 ] ) ? this . scrollParent : this . offsetParent , g = /(html|body)/i . test ( e [ 0 ] . tagName ) ; "relative" != this . cssPosition || this . scrollParent [ 0 ] != document && this . scrollParent [ 0 ] != this . offsetParent [ 0 ] || ( this . offset . relative = this . _getRelativeOffset ( ) ) ; var f = c . pageX , h = c . pageY ; this . originalPosition && ( this . containment && ( c . pageX - this . offset . click . left < this . containment [ 0 ] && ( f = this . containment [ 0 ] + this . offset . click . left ) , c . pageY -
this . offset . click . top < this . containment [ 1 ] && ( h = this . containment [ 1 ] + this . offset . click . top ) , c . pageX - this . offset . click . left > this . containment [ 2 ] && ( f = this . containment [ 2 ] + this . offset . click . left ) , c . pageY - this . offset . click . top > this . containment [ 3 ] && ( h = this . containment [ 3 ] + this . offset . click . top ) ) , b . grid && ( h = this . originalPageY + Math . round ( ( h - this . originalPageY ) / b . grid [ 1 ] ) * b . grid [ 1 ] , h = this . containment ? h - this . offset . click . top < this . containment [ 1 ] || h - this . offset . click . top > this . containment [ 3 ] ? h - this . offset . click . top <
this . containment [ 1 ] ? h + b . grid [ 1 ] : h - b . grid [ 1 ] : h : h , f = this . originalPageX + Math . round ( ( f - this . originalPageX ) / b . grid [ 0 ] ) * b . grid [ 0 ] , f = this . containment ? f - this . offset . click . left < this . containment [ 0 ] || f - this . offset . click . left > this . containment [ 2 ] ? f - this . offset . click . left < this . containment [ 0 ] ? f + b . grid [ 0 ] : f - b . grid [ 0 ] : f : f ) ) ; return { top : h - this . offset . click . top - this . offset . relative . top - this . offset . parent . top + ( a . browser . safari && "fixed" == this . cssPosition ? 0 : "fixed" == this . cssPosition ? - this . scrollParent . scrollTop ( ) : g ? 0 : e . scrollTop ( ) ) ,
left : f - this . offset . click . left - this . offset . relative . left - this . offset . parent . left + ( a . browser . safari && "fixed" == this . cssPosition ? 0 : "fixed" == this . cssPosition ? - this . scrollParent . scrollLeft ( ) : g ? 0 : e . scrollLeft ( ) ) } } , _rearrange : function ( a , b , e , g ) { e ? e [ 0 ] . appendChild ( this . placeholder [ 0 ] ) : b . item [ 0 ] . parentNode . insertBefore ( this . placeholder [ 0 ] , "down" == this . direction ? b . item [ 0 ] : b . item [ 0 ] . nextSibling ) ; this . counter = this . counter ? ++ this . counter : 1 ; var f = this , h = this . counter ; window . setTimeout ( function ( ) { h == f . counter && f . refreshPositions ( ! g ) } ,
0 ) } , _clear : function ( c , b ) { this . reverting = ! 1 ; var e = [ ] ; ! this . _noFinalSort && this . currentItem . parent ( ) . length && this . placeholder . before ( this . currentItem ) ; this . _noFinalSort = null ; if ( this . helper [ 0 ] == this . currentItem [ 0 ] ) { for ( var g in this . _storedCSS ) if ( "auto" == this . _storedCSS [ g ] || "static" == this . _storedCSS [ g ] ) this . _storedCSS [ g ] = "" ; this . currentItem . css ( this . _storedCSS ) . removeClass ( "ui-sortable-helper" ) } else this . currentItem . show ( ) ; this . fromOutside && ! b && e . push ( function ( a ) { this . _trigger ( "receive" , a , this . _uiHash ( this . fromOutside ) ) } ) ;
! this . fromOutside && this . domPosition . prev == this . currentItem . prev ( ) . not ( ".ui-sortable-helper" ) [ 0 ] && this . domPosition . parent == this . currentItem . parent ( ) [ 0 ] || b || e . push ( function ( a ) { this . _trigger ( "update" , a , this . _uiHash ( ) ) } ) ; if ( ! a . ui . contains ( this . element [ 0 ] , this . currentItem [ 0 ] ) ) for ( b || e . push ( function ( a ) { this . _trigger ( "remove" , a , this . _uiHash ( ) ) } ) , g = this . containers . length - 1 ; 0 <= g ; g -- ) a . ui . contains ( this . containers [ g ] . element [ 0 ] , this . currentItem [ 0 ] ) && ! b && ( e . push ( function ( a ) { return function ( c ) { a . _trigger ( "receive" ,
c , this . _uiHash ( this ) ) } } . call ( this , this . containers [ g ] ) ) , e . push ( function ( a ) { return function ( c ) { a . _trigger ( "update" , c , this . _uiHash ( this ) ) } } . call ( this , this . containers [ g ] ) ) ) ; for ( g = this . containers . length - 1 ; 0 <= g ; g -- ) b || e . push ( function ( a ) { return function ( c ) { a . _trigger ( "deactivate" , c , this . _uiHash ( this ) ) } } . call ( this , this . containers [ g ] ) ) , this . containers [ g ] . containerCache . over && ( e . push ( function ( a ) { return function ( c ) { a . _trigger ( "out" , c , this . _uiHash ( this ) ) } } . call ( this , this . containers [ g ] ) ) , this . containers [ g ] . containerCache . over =
0 ) ; this . _storedCursor && a ( "body" ) . css ( "cursor" , this . _storedCursor ) ; this . _storedOpacity && this . helper . css ( "opacity" , this . _storedOpacity ) ; this . _storedZIndex && this . helper . css ( "zIndex" , "auto" == this . _storedZIndex ? "" : this . _storedZIndex ) ; this . dragging = ! 1 ; if ( this . cancelHelperRemoval ) { if ( ! b ) { this . _trigger ( "beforeStop" , c , this . _uiHash ( ) ) ; for ( g = 0 ; g < e . length ; g ++ ) e [ g ] . call ( this , c ) ; this . _trigger ( "stop" , c , this . _uiHash ( ) ) } return ! 1 } b || this . _trigger ( "beforeStop" , c , this . _uiHash ( ) ) ; this . placeholder [ 0 ] . parentNode . removeChild ( this . placeholder [ 0 ] ) ;
this . helper [ 0 ] != this . currentItem [ 0 ] && this . helper . remove ( ) ; this . helper = null ; if ( ! b ) { for ( g = 0 ; g < e . length ; g ++ ) e [ g ] . call ( this , c ) ; this . _trigger ( "stop" , c , this . _uiHash ( ) ) } this . fromOutside = ! 1 ; return ! 0 } , _trigger : function ( ) { ! 1 === a . Widget . prototype . _trigger . apply ( this , arguments ) && this . cancel ( ) } , _uiHash : function ( c ) { var b = c || this ; return { helper : b . helper , placeholder : b . placeholder || a ( [ ] ) , position : b . position , originalPosition : b . originalPosition , offset : b . positionAbs , item : b . currentItem , sender : c ? c . element : null } } } ) ; a . extend ( a . ui . sortable ,
{ version : "1.8.16" } ) } ) ( jQuery ) ;
( function ( a ) { a . widget ( "ui.slider" , a . ui . mouse , { widgetEventPrefix : "slide" , options : { animate : ! 1 , distance : 0 , max : 100 , min : 0 , orientation : "horizontal" , range : ! 1 , step : 1 , value : 0 , values : null } , _create : function ( ) { var c = this , b = this . options , e = this . element . find ( ".ui-slider-handle" ) . addClass ( "ui-state-default ui-corner-all" ) , g = b . values && b . values . length || 1 , f = [ ] ; this . _mouseSliding = this . _keySliding = ! 1 ; this . _animateOff = ! 0 ; this . _handleIndex = null ; this . _detectOrientation ( ) ; this . _mouseInit ( ) ; this . element . addClass ( "ui-slider ui-slider-" + this . orientation +
" ui-widget ui-widget-content ui-corner-all" + ( b . disabled ? " ui-slider-disabled ui-disabled" : "" ) ) ; this . range = a ( [ ] ) ; b . range && ( ! 0 === b . range && ( b . values || ( b . values = [ this . _valueMin ( ) , this . _valueMin ( ) ] ) , b . values . length && 2 !== b . values . length && ( b . values = [ b . values [ 0 ] , b . values [ 0 ] ] ) ) , this . range = a ( "<div></div>" ) . appendTo ( this . element ) . addClass ( "ui-slider-range ui-widget-header" + ( "min" === b . range || "max" === b . range ? " ui-slider-range-" + b . range : "" ) ) ) ; for ( var h = e . length ; h < g ; h += 1 ) f . push ( "<a class='ui-slider-handle ui-state-default ui-corner-all' href='#'></a>" ) ;
this . handles = e . add ( a ( f . join ( "" ) ) . appendTo ( c . element ) ) ; this . handle = this . handles . eq ( 0 ) ; this . handles . add ( this . range ) . filter ( "a" ) . click ( function ( a ) { a . preventDefault ( ) } ) . hover ( function ( ) { b . disabled || a ( this ) . addClass ( "ui-state-hover" ) } , function ( ) { a ( this ) . removeClass ( "ui-state-hover" ) } ) . focus ( function ( ) { b . disabled ? a ( this ) . blur ( ) : ( a ( ".ui-slider .ui-state-focus" ) . removeClass ( "ui-state-focus" ) , a ( this ) . addClass ( "ui-state-focus" ) ) } ) . blur ( function ( ) { a ( this ) . removeClass ( "ui-state-focus" ) } ) ; this . handles . each ( function ( d ) { a ( this ) . data ( "index.ui-slider-handle" ,
d ) } ) ; this . handles . keydown ( function ( d ) { var b = ! 0 , e = a ( this ) . data ( "index.ui-slider-handle" ) , f , g , h ; if ( ! c . options . disabled ) { switch ( d . keyCode ) { case a . ui . keyCode . HOME : case a . ui . keyCode . END : case a . ui . keyCode . PAGE _UP : case a . ui . keyCode . PAGE _DOWN : case a . ui . keyCode . UP : case a . ui . keyCode . RIGHT : case a . ui . keyCode . DOWN : case a . ui . keyCode . LEFT : if ( b = ! 1 , ! c . _keySliding && ( c . _keySliding = ! 0 , a ( this ) . addClass ( "ui-state-active" ) , f = c . _start ( d , e ) , ! 1 === f ) ) return } h = c . options . step ; f = c . options . values && c . options . values . length ? g = c . values ( e ) :
g = c . value ( ) ; switch ( d . keyCode ) { case a . ui . keyCode . HOME : g = c . _valueMin ( ) ; break ; case a . ui . keyCode . END : g = c . _valueMax ( ) ; break ; case a . ui . keyCode . PAGE _UP : g = c . _trimAlignValue ( f + ( c . _valueMax ( ) - c . _valueMin ( ) ) / 5 ) ; break ; case a . ui . keyCode . PAGE _DOWN : g = c . _trimAlignValue ( f - ( c . _valueMax ( ) - c . _valueMin ( ) ) / 5 ) ; break ; case a . ui . keyCode . UP : case a . ui . keyCode . RIGHT : if ( f === c . _valueMax ( ) ) return ; g = c . _trimAlignValue ( f + h ) ; break ; case a . ui . keyCode . DOWN : case a . ui . keyCode . LEFT : if ( f === c . _valueMin ( ) ) return ; g = c . _trimAlignValue ( f - h ) } c . _slide ( d ,
e , g ) ; return b } } ) . keyup ( function ( d ) { var b = a ( this ) . data ( "index.ui-slider-handle" ) ; c . _keySliding && ( c . _keySliding = ! 1 , c . _stop ( d , b ) , c . _change ( d , b ) , a ( this ) . removeClass ( "ui-state-active" ) ) } ) ; this . _refreshValue ( ) ; this . _animateOff = ! 1 } , destroy : function ( ) { this . handles . remove ( ) ; this . range . remove ( ) ; this . element . removeClass ( "ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all" ) . removeData ( "slider" ) . unbind ( ".slider" ) ; this . _mouseDestroy ( ) ; return this } , _mouseCapture : function ( c ) { var b =
this . options , e , g , f , h , d ; if ( b . disabled ) return ! 1 ; this . elementSize = { width : this . element . outerWidth ( ) , height : this . element . outerHeight ( ) } ; this . elementOffset = this . element . offset ( ) ; e = this . _normValueFromMouse ( { x : c . pageX , y : c . pageY } ) ; g = this . _valueMax ( ) - this . _valueMin ( ) + 1 ; h = this ; this . handles . each ( function ( c ) { var b = Math . abs ( e - h . values ( c ) ) ; g > b && ( g = b , f = a ( this ) , d = c ) } ) ; ! 0 === b . range && this . values ( 1 ) === b . min && ( d += 1 , f = a ( this . handles [ d ] ) ) ; if ( ! 1 === this . _start ( c , d ) ) return ! 1 ; this . _mouseSliding = ! 0 ; h . _handleIndex = d ; f . addClass ( "ui-state-active" ) . focus ( ) ;
b = f . offset ( ) ; this . _clickOffset = a ( c . target ) . parents ( ) . andSelf ( ) . is ( ".ui-slider-handle" ) ? { left : c . pageX - b . left - f . width ( ) / 2 , top : c . pageY - b . top - f . height ( ) / 2 - ( parseInt ( f . css ( "borderTopWidth" ) , 10 ) || 0 ) - ( parseInt ( f . css ( "borderBottomWidth" ) , 10 ) || 0 ) + ( parseInt ( f . css ( "marginTop" ) , 10 ) || 0 ) } : { left : 0 , top : 0 } ; this . handles . hasClass ( "ui-state-hover" ) || this . _slide ( c , d , e ) ; return this . _animateOff = ! 0 } , _mouseStart : function ( ) { return ! 0 } , _mouseDrag : function ( a ) { var b = this . _normValueFromMouse ( { x : a . pageX , y : a . pageY } ) ; this . _slide ( a ,
this . _handleIndex , b ) ; return ! 1 } , _mouseStop : function ( a ) { this . handles . removeClass ( "ui-state-active" ) ; this . _mouseSliding = ! 1 ; this . _stop ( a , this . _handleIndex ) ; this . _change ( a , this . _handleIndex ) ; this . _clickOffset = this . _handleIndex = null ; return this . _animateOff = ! 1 } , _detectOrientation : function ( ) { this . orientation = "vertical" === this . options . orientation ? "vertical" : "horizontal" } , _normValueFromMouse : function ( a ) { var b ; "horizontal" === this . orientation ? ( b = this . elementSize . width , a = a . x - this . elementOffset . left - ( this . _clickOffset ?
this . _clickOffset . left : 0 ) ) : ( b = this . elementSize . height , a = a . y - this . elementOffset . top - ( this . _clickOffset ? this . _clickOffset . top : 0 ) ) ; b = a / b ; 1 < b && ( b = 1 ) ; 0 > b && ( b = 0 ) ; "vertical" === this . orientation && ( b = 1 - b ) ; a = this . _valueMax ( ) - this . _valueMin ( ) ; return this . _trimAlignValue ( this . _valueMin ( ) + b * a ) } , _start : function ( a , b ) { var e = { handle : this . handles [ b ] , value : this . value ( ) } ; this . options . values && this . options . values . length && ( e . value = this . values ( b ) , e . values = this . values ( ) ) ; return this . _trigger ( "start" , a , e ) } , _slide : function ( a ,
b , e ) { var g ; this . options . values && this . options . values . length ? ( g = this . values ( b ? 0 : 1 ) , 2 === this . options . values . length && ! 0 === this . options . range && ( 0 === b && e > g || 1 === b && e < g ) && ( e = g ) , e !== this . values ( b ) && ( g = this . values ( ) , g [ b ] = e , a = this . _trigger ( "slide" , a , { handle : this . handles [ b ] , value : e , values : g } ) , this . values ( b ? 0 : 1 ) , ! 1 !== a && this . values ( b , e , ! 0 ) ) ) : e !== this . value ( ) && ( a = this . _trigger ( "slide" , a , { handle : this . handles [ b ] , value : e } ) , ! 1 !== a && this . value ( e ) ) } , _stop : function ( a , b ) { var e = { handle : this . handles [ b ] , value : this . value ( ) } ;
this . options . values && this . options . values . length && ( e . value = this . values ( b ) , e . values = this . values ( ) ) ; this . _trigger ( "stop" , a , e ) } , _change : function ( a , b ) { if ( ! this . _keySliding && ! this . _mouseSliding ) { var e = { handle : this . handles [ b ] , value : this . value ( ) } ; this . options . values && this . options . values . length && ( e . value = this . values ( b ) , e . values = this . values ( ) ) ; this . _trigger ( "change" , a , e ) } } , value : function ( a ) { if ( arguments . length ) this . options . value = this . _trimAlignValue ( a ) , this . _refreshValue ( ) , this . _change ( null , 0 ) ; else return this . _value ( ) } ,
values : function ( c , b ) { var e , g , f ; if ( 1 < arguments . length ) this . options . values [ c ] = this . _trimAlignValue ( b ) , this . _refreshValue ( ) , this . _change ( null , c ) ; else if ( arguments . length ) if ( a . isArray ( arguments [ 0 ] ) ) { e = this . options . values ; g = arguments [ 0 ] ; for ( f = 0 ; f < e . length ; f += 1 ) e [ f ] = this . _trimAlignValue ( g [ f ] ) , this . _change ( null , f ) ; this . _refreshValue ( ) } else return this . options . values && this . options . values . length ? this . _values ( c ) : this . value ( ) ; else return this . _values ( ) } , _setOption : function ( c , b ) { var e , g = 0 ; a . isArray ( this . options . values ) &&
( g = this . options . values . length ) ; a . Widget . prototype . _setOption . apply ( this , arguments ) ; switch ( c ) { case "disabled" : b ? ( this . handles . filter ( ".ui-state-focus" ) . blur ( ) , this . handles . removeClass ( "ui-state-hover" ) , this . handles . propAttr ( "disabled" , ! 0 ) , this . element . addClass ( "ui-disabled" ) ) : ( this . handles . propAttr ( "disabled" , ! 1 ) , this . element . removeClass ( "ui-disabled" ) ) ; break ; case "orientation" : this . _detectOrientation ( ) ; this . element . removeClass ( "ui-slider-horizontal ui-slider-vertical" ) . addClass ( "ui-slider-" + this . orientation ) ;
this . _refreshValue ( ) ; break ; case "value" : this . _animateOff = ! 0 ; this . _refreshValue ( ) ; this . _change ( null , 0 ) ; this . _animateOff = ! 1 ; break ; case "values" : this . _animateOff = ! 0 ; this . _refreshValue ( ) ; for ( e = 0 ; e < g ; e += 1 ) this . _change ( null , e ) ; this . _animateOff = ! 1 } } , _value : function ( ) { return this . _trimAlignValue ( this . options . value ) } , _values : function ( a ) { var b , e ; if ( arguments . length ) return b = this . options . values [ a ] , this . _trimAlignValue ( b ) ; b = this . options . values . slice ( ) ; for ( e = 0 ; e < b . length ; e += 1 ) b [ e ] = this . _trimAlignValue ( b [ e ] ) ; return b } ,
_trimAlignValue : function ( a ) { if ( a <= this . _valueMin ( ) ) return this . _valueMin ( ) ; if ( a >= this . _valueMax ( ) ) return this . _valueMax ( ) ; var b = 0 < this . options . step ? this . options . step : 1 , e = ( a - this . _valueMin ( ) ) % b ; a -= e ; 2 * Math . abs ( e ) >= b && ( a += 0 < e ? b : - b ) ; return parseFloat ( a . toFixed ( 5 ) ) } , _valueMin : function ( ) { return this . options . min } , _valueMax : function ( ) { return this . options . max } , _refreshValue : function ( ) { var c = this . options . range , b = this . options , e = this , g = this . _animateOff ? ! 1 : b . animate , f , h = { } , d , l , m , q ; if ( this . options . values && this . options . values . length ) this . handles . each ( function ( c ) { f =
( e . values ( c ) - e . _valueMin ( ) ) / ( e . _valueMax ( ) - e . _valueMin ( ) ) * 100 ; h [ "horizontal" === e . orientation ? "left" : "bottom" ] = f + "%" ; a ( this ) . stop ( 1 , 1 ) [ g ? "animate" : "css" ] ( h , b . animate ) ; if ( ! 0 === e . options . range ) if ( "horizontal" === e . orientation ) { if ( 0 === c ) e . range . stop ( 1 , 1 ) [ g ? "animate" : "css" ] ( { left : f + "%" } , b . animate ) ; if ( 1 === c ) e . range [ g ? "animate" : "css" ] ( { width : f - d + "%" } , { queue : ! 1 , duration : b . animate } ) } else { if ( 0 === c ) e . range . stop ( 1 , 1 ) [ g ? "animate" : "css" ] ( { bottom : f + "%" } , b . animate ) ; if ( 1 === c ) e . range [ g ? "animate" : "css" ] ( { height : f - d +
"%" } , { queue : ! 1 , duration : b . animate } ) } d = f } ) ; else { l = this . value ( ) ; m = this . _valueMin ( ) ; q = this . _valueMax ( ) ; f = q !== m ? ( l - m ) / ( q - m ) * 100 : 0 ; h [ "horizontal" === e . orientation ? "left" : "bottom" ] = f + "%" ; this . handle . stop ( 1 , 1 ) [ g ? "animate" : "css" ] ( h , b . animate ) ; if ( "min" === c && "horizontal" === this . orientation ) this . range . stop ( 1 , 1 ) [ g ? "animate" : "css" ] ( { width : f + "%" } , b . animate ) ; if ( "max" === c && "horizontal" === this . orientation ) this . range [ g ? "animate" : "css" ] ( { width : 100 - f + "%" } , { queue : ! 1 , duration : b . animate } ) ; if ( "min" === c && "vertical" === this . orientation ) this . range . stop ( 1 ,
1 ) [ g ? "animate" : "css" ] ( { height : f + "%" } , b . animate ) ; if ( "max" === c && "vertical" === this . orientation ) this . range [ g ? "animate" : "css" ] ( { height : 100 - f + "%" } , { queue : ! 1 , duration : b . animate } ) } } } ) ; a . extend ( a . ui . slider , { version : "1.8.16" } ) } ) ( jQuery ) ;
( function ( a , c ) { function b ( ) { this . debug = ! 1 ; this . _curInst = null ; this . _keyEvent = ! 1 ; this . _disabledInputs = [ ] ; this . _inDialog = this . _datepickerShowing = ! 1 ; this . _mainDivId = "ui-datepicker-div" ; this . _inlineClass = "ui-datepicker-inline" ; this . _appendClass = "ui-datepicker-append" ; this . _triggerClass = "ui-datepicker-trigger" ; this . _dialogClass = "ui-datepicker-dialog" ; this . _disableClass = "ui-datepicker-disabled" ; this . _unselectableClass = "ui-datepicker-unselectable" ; this . _currentClass = "ui-datepicker-current-day" ; this . _dayOverClass =
"ui-datepicker-days-cell-over" ; this . regional = [ ] ; this . regional [ "" ] = { closeText : "Done" , prevText : "Prev" , nextText : "Next" , currentText : "Today" , monthNames : "January February March April May June July August September October November December" . split ( " " ) , monthNamesShort : "Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec" . split ( " " ) , dayNames : "Sunday Monday Tuesday Wednesday Thursday Friday Saturday" . split ( " " ) , dayNamesShort : "Sun Mon Tue Wed Thu Fri Sat" . split ( " " ) , dayNamesMin : "Su Mo Tu We Th Fr Sa" . split ( " " ) ,
weekHeader : "Wk" , dateFormat : "mm/dd/yy" , firstDay : 0 , isRTL : ! 1 , showMonthAfterYear : ! 1 , yearSuffix : "" } ; this . _defaults = { showOn : "focus" , showAnim : "fadeIn" , showOptions : { } , defaultDate : null , appendText : "" , buttonText : "..." , buttonImage : "" , buttonImageOnly : ! 1 , hideIfNoPrevNext : ! 1 , navigationAsDateFormat : ! 1 , gotoCurrent : ! 1 , changeMonth : ! 1 , changeYear : ! 1 , yearRange : "c-10:c+10" , showOtherMonths : ! 1 , selectOtherMonths : ! 1 , showWeek : ! 1 , calculateWeek : this . iso8601Week , shortYearCutoff : "+10" , minDate : null , maxDate : null , duration : "fast" , beforeShowDay : null ,
beforeShow : null , onSelect : null , onChangeMonthYear : null , onClose : null , numberOfMonths : 1 , showCurrentAtPos : 0 , stepMonths : 1 , stepBigMonths : 12 , altField : "" , altFormat : "" , constrainInput : ! 0 , showButtonPanel : ! 1 , autoSize : ! 1 , disabled : ! 1 } ; a . extend ( this . _defaults , this . regional [ "" ] ) ; this . dpDiv = e ( a ( '<div id="' + this . _mainDivId + '" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>' ) ) } function e ( d ) { return d . bind ( "mouseout" , function ( d ) { d = a ( d . target ) . closest ( "button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a" ) ;
d . length && d . removeClass ( "ui-state-hover ui-datepicker-prev-hover ui-datepicker-next-hover" ) } ) . bind ( "mouseover" , function ( b ) { b = a ( b . target ) . closest ( "button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a" ) ; ! a . datepicker . _isDisabledDatepicker ( h . inline ? d . parent ( ) [ 0 ] : h . input [ 0 ] ) && b . length && ( b . parents ( ".ui-datepicker-calendar" ) . find ( "a" ) . removeClass ( "ui-state-hover" ) , b . addClass ( "ui-state-hover" ) , b . hasClass ( "ui-datepicker-prev" ) && b . addClass ( "ui-datepicker-prev-hover" ) , b . hasClass ( "ui-datepicker-next" ) &&
b . addClass ( "ui-datepicker-next-hover" ) ) } ) } function g ( d , b ) { a . extend ( d , b ) ; for ( var e in b ) if ( null == b [ e ] || b [ e ] == c ) d [ e ] = b [ e ] ; return d } a . extend ( a . ui , { datepicker : { version : "1.8.16" } } ) ; var f = ( new Date ) . getTime ( ) , h ; a . extend ( b . prototype , { markerClassName : "hasDatepicker" , maxRows : 4 , log : function ( ) { this . debug && console . log . apply ( "" , arguments ) } , _widgetDatepicker : function ( ) { return this . dpDiv } , setDefaults : function ( a ) { g ( this . _defaults , a || { } ) ; return this } , _attachDatepicker : function ( d , b ) { var c = null , e ; for ( e in this . _defaults ) { var f =
d . getAttribute ( "date:" + e ) ; if ( f ) { c = c || { } ; try { c [ e ] = eval ( f ) } catch ( g ) { c [ e ] = f } } } e = d . nodeName . toLowerCase ( ) ; f = "div" == e || "span" == e ; d . id || ( this . uuid += 1 , d . id = "dp" + this . uuid ) ; var h = this . _newInst ( a ( d ) , f ) ; h . settings = a . extend ( { } , b || { } , c || { } ) ; "input" == e ? this . _connectDatepicker ( d , h ) : f && this . _inlineDatepicker ( d , h ) } , _newInst : function ( d , b ) { return { id : d [ 0 ] . id . replace ( /([^A-Za-z0-9_-])/g , "\\\\$1" ) , input : d , selectedDay : 0 , selectedMonth : 0 , selectedYear : 0 , drawMonth : 0 , drawYear : 0 , inline : b , dpDiv : b ? e ( a ( '<div class="' + this . _inlineClass +
' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>' ) ) : this . dpDiv } } , _connectDatepicker : function ( d , b ) { var c = a ( d ) ; b . append = a ( [ ] ) ; b . trigger = a ( [ ] ) ; c . hasClass ( this . markerClassName ) || ( this . _attachments ( c , b ) , c . addClass ( this . markerClassName ) . keydown ( this . _doKeyDown ) . keypress ( this . _doKeyPress ) . keyup ( this . _doKeyUp ) . bind ( "setData.datepicker" , function ( a , d , c ) { b . settings [ d ] = c } ) . bind ( "getData.datepicker" , function ( a , d ) { return this . _get ( b , d ) } ) , this . _autoSize ( b ) , a . data ( d , "datepicker" ,
b ) , b . settings . disabled && this . _disableDatepicker ( d ) ) } , _attachments : function ( d , b ) { var c = this . _get ( b , "appendText" ) , e = this . _get ( b , "isRTL" ) ; b . append && b . append . remove ( ) ; c && ( b . append = a ( '<span class="' + this . _appendClass + '">' + c + "</span>" ) , d [ e ? "before" : "after" ] ( b . append ) ) ; d . unbind ( "focus" , this . _showDatepicker ) ; b . trigger && b . trigger . remove ( ) ; c = this . _get ( b , "showOn" ) ; "focus" != c && "both" != c || d . focus ( this . _showDatepicker ) ; if ( "button" == c || "both" == c ) { var c = this . _get ( b , "buttonText" ) , f = this . _get ( b , "buttonImage" ) ; b . trigger =
a ( this . _get ( b , "buttonImageOnly" ) ? a ( "<img/>" ) . addClass ( this . _triggerClass ) . attr ( { src : f , alt : c , title : c } ) : a ( '<button type="button"></button>' ) . addClass ( this . _triggerClass ) . html ( "" == f ? c : a ( "<img/>" ) . attr ( { src : f , alt : c , title : c } ) ) ) ; d [ e ? "before" : "after" ] ( b . trigger ) ; b . trigger . click ( function ( ) { a . datepicker . _datepickerShowing && a . datepicker . _lastInput == d [ 0 ] ? a . datepicker . _hideDatepicker ( ) : a . datepicker . _showDatepicker ( d [ 0 ] ) ; return ! 1 } ) } } , _autoSize : function ( a ) { if ( this . _get ( a , "autoSize" ) && ! a . inline ) { var b = new Date ( 2009 ,
11 , 20 ) , c = this . _get ( a , "dateFormat" ) ; if ( c . match ( /[DM]/ ) ) { var e = function ( a ) { for ( var d = 0 , b = 0 , c = 0 ; c < a . length ; c ++ ) a [ c ] . length > d && ( d = a [ c ] . length , b = c ) ; return b } ; b . setMonth ( e ( this . _get ( a , c . match ( /MM/ ) ? "monthNames" : "monthNamesShort" ) ) ) ; b . setDate ( e ( this . _get ( a , c . match ( /DD/ ) ? "dayNames" : "dayNamesShort" ) ) + 20 - b . getDay ( ) ) } a . input . attr ( "size" , this . _formatDate ( a , b ) . length ) } } , _inlineDatepicker : function ( d , b ) { var c = a ( d ) ; c . hasClass ( this . markerClassName ) || ( c . addClass ( this . markerClassName ) . append ( b . dpDiv ) . bind ( "setData.datepicker" ,
function ( a , d , c ) { b . settings [ d ] = c } ) . bind ( "getData.datepicker" , function ( a , d ) { return this . _get ( b , d ) } ) , a . data ( d , "datepicker" , b ) , this . _setDate ( b , this . _getDefaultDate ( b ) , ! 0 ) , this . _updateDatepicker ( b ) , this . _updateAlternate ( b ) , b . settings . disabled && this . _disableDatepicker ( d ) , b . dpDiv . css ( "display" , "block" ) ) } , _dialogDatepicker : function ( d , b , c , e , f ) { d = this . _dialogInst ; d || ( this . uuid += 1 , this . _dialogInput = a ( '<input type="text" id="dp' + this . uuid + '" style="position: absolute; top: -100px; width: 0px; z-index: -10;"/>' ) ,
this . _dialogInput . keydown ( this . _doKeyDown ) , a ( "body" ) . append ( this . _dialogInput ) , d = this . _dialogInst = this . _newInst ( this . _dialogInput , ! 1 ) , d . settings = { } , a . data ( this . _dialogInput [ 0 ] , "datepicker" , d ) ) ; g ( d . settings , e || { } ) ; b = b && b . constructor == Date ? this . _formatDate ( d , b ) : b ; this . _dialogInput . val ( b ) ; this . _pos = f ? f . length ? f : [ f . pageX , f . pageY ] : null ; this . _pos || ( this . _pos = [ document . documentElement . clientWidth / 2 - 100 + ( document . documentElement . scrollLeft || document . body . scrollLeft ) , document . documentElement . clientHeight /
2 - 150 + ( document . documentElement . scrollTop || document . body . scrollTop ) ] ) ; this . _dialogInput . css ( "left" , this . _pos [ 0 ] + 20 + "px" ) . css ( "top" , this . _pos [ 1 ] + "px" ) ; d . settings . onSelect = c ; this . _inDialog = ! 0 ; this . dpDiv . addClass ( this . _dialogClass ) ; this . _showDatepicker ( this . _dialogInput [ 0 ] ) ; a . blockUI && a . blockUI ( this . dpDiv ) ; a . data ( this . _dialogInput [ 0 ] , "datepicker" , d ) ; return this } , _destroyDatepicker : function ( d ) { var b = a ( d ) , c = a . data ( d , "datepicker" ) ; if ( b . hasClass ( this . markerClassName ) ) { var e = d . nodeName . toLowerCase ( ) ; a . removeData ( d ,
"datepicker" ) ; "input" == e ? ( c . append . remove ( ) , c . trigger . remove ( ) , b . removeClass ( this . markerClassName ) . unbind ( "focus" , this . _showDatepicker ) . unbind ( "keydown" , this . _doKeyDown ) . unbind ( "keypress" , this . _doKeyPress ) . unbind ( "keyup" , this . _doKeyUp ) ) : "div" != e && "span" != e || b . removeClass ( this . markerClassName ) . empty ( ) } } , _enableDatepicker : function ( d ) { var b = a ( d ) , c = a . data ( d , "datepicker" ) ; if ( b . hasClass ( this . markerClassName ) ) { var e = d . nodeName . toLowerCase ( ) ; if ( "input" == e ) d . disabled = ! 1 , c . trigger . filter ( "button" ) . each ( function ( ) { this . disabled =
! 1 } ) . end ( ) . filter ( "img" ) . css ( { opacity : "1.0" , cursor : "" } ) ; else if ( "div" == e || "span" == e ) b = b . children ( "." + this . _inlineClass ) , b . children ( ) . removeClass ( "ui-state-disabled" ) , b . find ( "select.ui-datepicker-month, select.ui-datepicker-year" ) . removeAttr ( "disabled" ) ; this . _disabledInputs = a . map ( this . _disabledInputs , function ( a ) { return a == d ? null : a } ) } } , _disableDatepicker : function ( d ) { var b = a ( d ) , c = a . data ( d , "datepicker" ) ; if ( b . hasClass ( this . markerClassName ) ) { var e = d . nodeName . toLowerCase ( ) ; if ( "input" == e ) d . disabled = ! 0 , c . trigger . filter ( "button" ) . each ( function ( ) { this . disabled =
! 0 } ) . end ( ) . filter ( "img" ) . css ( { opacity : "0.5" , cursor : "default" } ) ; else if ( "div" == e || "span" == e ) b = b . children ( "." + this . _inlineClass ) , b . children ( ) . addClass ( "ui-state-disabled" ) , b . find ( "select.ui-datepicker-month, select.ui-datepicker-year" ) . attr ( "disabled" , "disabled" ) ; this . _disabledInputs = a . map ( this . _disabledInputs , function ( a ) { return a == d ? null : a } ) ; this . _disabledInputs [ this . _disabledInputs . length ] = d } } , _isDisabledDatepicker : function ( a ) { if ( ! a ) return ! 1 ; for ( var b = 0 ; b < this . _disabledInputs . length ; b ++ ) if ( this . _disabledInputs [ b ] ==
a ) return ! 0 ; return ! 1 } , _getInst : function ( d ) { try { return a . data ( d , "datepicker" ) } catch ( b ) { throw "Missing instance data for this datepicker" ; } } , _optionDatepicker : function ( d , b , e ) { var f = this . _getInst ( d ) ; if ( 2 == arguments . length && "string" == typeof b ) return "defaults" == b ? a . extend ( { } , a . datepicker . _defaults ) : f ? "all" == b ? a . extend ( { } , f . settings ) : this . _get ( f , b ) : null ; var h = b || { } ; "string" == typeof b && ( h = { } , h [ b ] = e ) ; if ( f ) { this . _curInst == f && this . _hideDatepicker ( ) ; var n = this . _getDateDatepicker ( d , ! 0 ) , t = this . _getMinMaxDate ( f ,
"min" ) , p = this . _getMinMaxDate ( f , "max" ) ; g ( f . settings , h ) ; null !== t && h . dateFormat !== c && h . minDate === c && ( f . settings . minDate = this . _formatDate ( f , t ) ) ; null !== p && h . dateFormat !== c && h . maxDate === c && ( f . settings . maxDate = this . _formatDate ( f , p ) ) ; this . _attachments ( a ( d ) , f ) ; this . _autoSize ( f ) ; this . _setDate ( f , n ) ; this . _updateAlternate ( f ) ; this . _updateDatepicker ( f ) } } , _changeDatepicker : function ( a , b , c ) { this . _optionDatepicker ( a , b , c ) } , _refreshDatepicker : function ( a ) { ( a = this . _getInst ( a ) ) && this . _updateDatepicker ( a ) } , _setDateDatepicker : function ( a ,
b ) { if ( a = this . _getInst ( a ) ) this . _setDate ( a , b ) , this . _updateDatepicker ( a ) , this . _updateAlternate ( a ) } , _getDateDatepicker : function ( a , b ) { ( a = this . _getInst ( a ) ) && ! a . inline && this . _setDateFromField ( a , b ) ; return a ? this . _getDate ( a ) : null } , _doKeyDown : function ( d ) { var b = a . datepicker . _getInst ( d . target ) , c = ! 0 , e = b . dpDiv . is ( ".ui-datepicker-rtl" ) ; b . _keyEvent = ! 0 ; if ( a . datepicker . _datepickerShowing ) switch ( d . keyCode ) { case 9 : a . datepicker . _hideDatepicker ( ) ; c = ! 1 ; break ; case 13 : return c = a ( "td." + a . datepicker . _dayOverClass + ":not(." +
a . datepicker . _currentClass + ")" , b . dpDiv ) , c [ 0 ] && a . datepicker . _selectDay ( d . target , b . selectedMonth , b . selectedYear , c [ 0 ] ) , ( d = a . datepicker . _get ( b , "onSelect" ) ) ? ( c = a . datepicker . _formatDate ( b ) , d . apply ( b . input ? b . input [ 0 ] : null , [ c , b ] ) ) : a . datepicker . _hideDatepicker ( ) , ! 1 ; case 27 : a . datepicker . _hideDatepicker ( ) ; break ; case 33 : a . datepicker . _adjustDate ( d . target , d . ctrlKey ? - a . datepicker . _get ( b , "stepBigMonths" ) : - a . datepicker . _get ( b , "stepMonths" ) , "M" ) ; break ; case 34 : a . datepicker . _adjustDate ( d . target , d . ctrlKey ? + a . datepicker . _get ( b ,
"stepBigMonths" ) : + a . datepicker . _get ( b , "stepMonths" ) , "M" ) ; break ; case 35 : ( d . ctrlKey || d . metaKey ) && a . datepicker . _clearDate ( d . target ) ; c = d . ctrlKey || d . metaKey ; break ; case 36 : ( d . ctrlKey || d . metaKey ) && a . datepicker . _gotoToday ( d . target ) ; c = d . ctrlKey || d . metaKey ; break ; case 37 : ( d . ctrlKey || d . metaKey ) && a . datepicker . _adjustDate ( d . target , e ? 1 : - 1 , "D" ) ; c = d . ctrlKey || d . metaKey ; d . originalEvent . altKey && a . datepicker . _adjustDate ( d . target , d . ctrlKey ? - a . datepicker . _get ( b , "stepBigMonths" ) : - a . datepicker . _get ( b , "stepMonths" ) , "M" ) ; break ;
case 38 : ( d . ctrlKey || d . metaKey ) && a . datepicker . _adjustDate ( d . target , - 7 , "D" ) ; c = d . ctrlKey || d . metaKey ; break ; case 39 : ( d . ctrlKey || d . metaKey ) && a . datepicker . _adjustDate ( d . target , e ? - 1 : 1 , "D" ) ; c = d . ctrlKey || d . metaKey ; d . originalEvent . altKey && a . datepicker . _adjustDate ( d . target , d . ctrlKey ? + a . datepicker . _get ( b , "stepBigMonths" ) : + a . datepicker . _get ( b , "stepMonths" ) , "M" ) ; break ; case 40 : ( d . ctrlKey || d . metaKey ) && a . datepicker . _adjustDate ( d . target , 7 , "D" ) ; c = d . ctrlKey || d . metaKey ; break ; default : c = ! 1 } else 36 == d . keyCode && d . ctrlKey ?
a . datepicker . _showDatepicker ( this ) : c = ! 1 ; c && ( d . preventDefault ( ) , d . stopPropagation ( ) ) } , _doKeyPress : function ( d ) { var b = a . datepicker . _getInst ( d . target ) ; if ( a . datepicker . _get ( b , "constrainInput" ) ) { var b = a . datepicker . _possibleChars ( a . datepicker . _get ( b , "dateFormat" ) ) , e = String . fromCharCode ( d . charCode == c ? d . keyCode : d . charCode ) ; return d . ctrlKey || d . metaKey || " " > e || ! b || - 1 < b . indexOf ( e ) } } , _doKeyUp : function ( d ) { d = a . datepicker . _getInst ( d . target ) ; if ( d . input . val ( ) != d . lastVal ) try { a . datepicker . parseDate ( a . datepicker . _get ( d ,
"dateFormat" ) , d . input ? d . input . val ( ) : null , a . datepicker . _getFormatConfig ( d ) ) && ( a . datepicker . _setDateFromField ( d ) , a . datepicker . _updateAlternate ( d ) , a . datepicker . _updateDatepicker ( d ) ) } catch ( b ) { a . datepicker . log ( b ) } return ! 0 } , _showDatepicker : function ( d ) { d = d . target || d ; "input" != d . nodeName . toLowerCase ( ) && ( d = a ( "input" , d . parentNode ) [ 0 ] ) ; if ( ! a . datepicker . _isDisabledDatepicker ( d ) && a . datepicker . _lastInput != d ) { var b = a . datepicker . _getInst ( d ) ; a . datepicker . _curInst && a . datepicker . _curInst != b && ( a . datepicker . _datepickerShowing &&
a . datepicker . _triggerOnClose ( a . datepicker . _curInst ) , a . datepicker . _curInst . dpDiv . stop ( ! 0 , ! 0 ) ) ; var c = a . datepicker . _get ( b , "beforeShow" ) , c = c ? c . apply ( d , [ d , b ] ) : { } ; if ( ! 1 !== c ) { g ( b . settings , c ) ; b . lastVal = null ; a . datepicker . _lastInput = d ; a . datepicker . _setDateFromField ( b ) ; a . datepicker . _inDialog && ( d . value = "" ) ; a . datepicker . _pos || ( a . datepicker . _pos = a . datepicker . _findPos ( d ) , a . datepicker . _pos [ 1 ] += d . offsetHeight ) ; var e = ! 1 ; a ( d ) . parents ( ) . each ( function ( ) { e |= "fixed" == a ( this ) . css ( "position" ) ; return ! e } ) ; e && a . browser . opera &&
( a . datepicker . _pos [ 0 ] -= document . documentElement . scrollLeft , a . datepicker . _pos [ 1 ] -= document . documentElement . scrollTop ) ; c = { left : a . datepicker . _pos [ 0 ] , top : a . datepicker . _pos [ 1 ] } ; a . datepicker . _pos = null ; b . dpDiv . empty ( ) ; b . dpDiv . css ( { position : "absolute" , display : "block" , top : "-1000px" } ) ; a . datepicker . _updateDatepicker ( b ) ; c = a . datepicker . _checkOffset ( b , c , e ) ; b . dpDiv . css ( { position : a . datepicker . _inDialog && a . blockUI ? "static" : e ? "fixed" : "absolute" , display : "none" , left : c . left + "px" , top : c . top + "px" } ) ; if ( ! b . inline ) { var c = a . datepicker . _get ( b ,
"showAnim" ) , f = a . datepicker . _get ( b , "duration" ) , h = function ( ) { var d = b . dpDiv . find ( "iframe.ui-datepicker-cover" ) ; if ( d . length ) { var c = a . datepicker . _getBorders ( b . dpDiv ) ; d . css ( { left : - c [ 0 ] , top : - c [ 1 ] , width : b . dpDiv . outerWidth ( ) , height : b . dpDiv . outerHeight ( ) } ) } } ; b . dpDiv . zIndex ( a ( d ) . zIndex ( ) + 1 ) ; a . datepicker . _datepickerShowing = ! 0 ; a . effects && a . effects [ c ] ? b . dpDiv . show ( c , a . datepicker . _get ( b , "showOptions" ) , f , h ) : b . dpDiv [ c || "show" ] ( c ? f : null , h ) ; c && f || h ( ) ; b . input . is ( ":visible" ) && ! b . input . is ( ":disabled" ) && b . input . focus ( ) ;
a . datepicker . _curInst = b } } } } , _updateDatepicker : function ( d ) { this . maxRows = 4 ; var b = a . datepicker . _getBorders ( d . dpDiv ) ; h = d ; d . dpDiv . empty ( ) . append ( this . _generateHTML ( d ) ) ; var c = d . dpDiv . find ( "iframe.ui-datepicker-cover" ) ; c . length && c . css ( { left : - b [ 0 ] , top : - b [ 1 ] , width : d . dpDiv . outerWidth ( ) , height : d . dpDiv . outerHeight ( ) } ) ; d . dpDiv . find ( "." + this . _dayOverClass + " a" ) . mouseover ( ) ; b = this . _getNumberOfMonths ( d ) ; c = b [ 1 ] ; d . dpDiv . removeClass ( "ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4" ) . width ( "" ) ; 1 < c &&
d . dpDiv . addClass ( "ui-datepicker-multi-" + c ) . css ( "width" , 17 * c + "em" ) ; d . dpDiv [ ( 1 != b [ 0 ] || 1 != b [ 1 ] ? "add" : "remove" ) + "Class" ] ( "ui-datepicker-multi" ) ; d . dpDiv [ ( this . _get ( d , "isRTL" ) ? "add" : "remove" ) + "Class" ] ( "ui-datepicker-rtl" ) ; d == a . datepicker . _curInst && a . datepicker . _datepickerShowing && d . input && d . input . is ( ":visible" ) && ! d . input . is ( ":disabled" ) && d . input [ 0 ] != document . activeElement && d . input . focus ( ) ; if ( d . yearshtml ) { var e = d . yearshtml ; setTimeout ( function ( ) { e === d . yearshtml && d . yearshtml && d . dpDiv . find ( "select.ui-datepicker-year:first" ) . replaceWith ( d . yearshtml ) ;
e = d . yearshtml = null } , 0 ) } } , _getBorders : function ( a ) { var b = function ( a ) { return { thin : 1 , medium : 2 , thick : 3 } [ a ] || a } ; return [ parseFloat ( b ( a . css ( "border-left-width" ) ) ) , parseFloat ( b ( a . css ( "border-top-width" ) ) ) ] } , _checkOffset : function ( d , b , c ) { var e = d . dpDiv . outerWidth ( ) , f = d . dpDiv . outerHeight ( ) , g = d . input ? d . input . outerWidth ( ) : 0 , h = d . input ? d . input . outerHeight ( ) : 0 , p = document . documentElement . clientWidth + a ( document ) . scrollLeft ( ) , x = document . documentElement . clientHeight + a ( document ) . scrollTop ( ) ; b . left -= this . _get ( d , "isRTL" ) ?
e - g : 0 ; b . left -= c && b . left == d . input . offset ( ) . left ? a ( document ) . scrollLeft ( ) : 0 ; b . top -= c && b . top == d . input . offset ( ) . top + h ? a ( document ) . scrollTop ( ) : 0 ; b . left -= Math . min ( b . left , b . left + e > p && p > e ? Math . abs ( b . left + e - p ) : 0 ) ; b . top -= Math . min ( b . top , b . top + f > x && x > f ? Math . abs ( f + h ) : 0 ) ; return b } , _findPos : function ( d ) { for ( var b = this . _get ( this . _getInst ( d ) , "isRTL" ) ; d && ( "hidden" == d . type || 1 != d . nodeType || a . expr . filters . hidden ( d ) ) ; ) d = d [ b ? "previousSibling" : "nextSibling" ] ; d = a ( d ) . offset ( ) ; return [ d . left , d . top ] } , _triggerOnClose : function ( a ) { var b =
this . _get ( a , "onClose" ) ; b && b . apply ( a . input ? a . input [ 0 ] : null , [ a . input ? a . input . val ( ) : "" , a ] ) } , _hideDatepicker : function ( d ) { var b = this . _curInst ; if ( b && ( ! d || b == a . data ( d , "datepicker" ) ) && this . _datepickerShowing ) { d = this . _get ( b , "showAnim" ) ; var c = this . _get ( b , "duration" ) , e = function ( ) { a . datepicker . _tidyDialog ( b ) ; this . _curInst = null } ; a . effects && a . effects [ d ] ? b . dpDiv . hide ( d , a . datepicker . _get ( b , "showOptions" ) , c , e ) : b . dpDiv [ "slideDown" == d ? "slideUp" : "fadeIn" == d ? "fadeOut" : "hide" ] ( d ? c : null , e ) ; d || e ( ) ; a . datepicker . _triggerOnClose ( b ) ;
this . _datepickerShowing = ! 1 ; this . _lastInput = null ; this . _inDialog && ( this . _dialogInput . css ( { position : "absolute" , left : "0" , top : "-100px" } ) , a . blockUI && ( a . unblockUI ( ) , a ( "body" ) . append ( this . dpDiv ) ) ) ; this . _inDialog = ! 1 } } , _tidyDialog : function ( a ) { a . dpDiv . removeClass ( this . _dialogClass ) . unbind ( ".ui-datepicker-calendar" ) } , _checkExternalClick : function ( d ) { a . datepicker . _curInst && ( d = a ( d . target ) , d [ 0 ] . id == a . datepicker . _mainDivId || 0 != d . parents ( "#" + a . datepicker . _mainDivId ) . length || d . hasClass ( a . datepicker . markerClassName ) ||
d . hasClass ( a . datepicker . _triggerClass ) || ! a . datepicker . _datepickerShowing || a . datepicker . _inDialog && a . blockUI || a . datepicker . _hideDatepicker ( ) ) } , _adjustDate : function ( d , b , c ) { d = a ( d ) ; var e = this . _getInst ( d [ 0 ] ) ; this . _isDisabledDatepicker ( d [ 0 ] ) || ( this . _adjustInstDate ( e , b + ( "M" == c ? this . _get ( e , "showCurrentAtPos" ) : 0 ) , c ) , this . _updateDatepicker ( e ) ) } , _gotoToday : function ( d ) { d = a ( d ) ; var b = this . _getInst ( d [ 0 ] ) ; if ( this . _get ( b , "gotoCurrent" ) && b . currentDay ) b . selectedDay = b . currentDay , b . drawMonth = b . selectedMonth = b . currentMonth ,
b . drawYear = b . selectedYear = b . currentYear ; else { var c = new Date ; b . selectedDay = c . getDate ( ) ; b . drawMonth = b . selectedMonth = c . getMonth ( ) ; b . drawYear = b . selectedYear = c . getFullYear ( ) } this . _notifyChange ( b ) ; this . _adjustDate ( d ) } , _selectMonthYear : function ( d , b , c ) { d = a ( d ) ; var e = this . _getInst ( d [ 0 ] ) ; e [ "selected" + ( "M" == c ? "Month" : "Year" ) ] = e [ "draw" + ( "M" == c ? "Month" : "Year" ) ] = parseInt ( b . options [ b . selectedIndex ] . value , 10 ) ; this . _notifyChange ( e ) ; this . _adjustDate ( d ) } , _selectDay : function ( d , b , c , e ) { var f = a ( d ) ; a ( e ) . hasClass ( this . _unselectableClass ) ||
this . _isDisabledDatepicker ( f [ 0 ] ) || ( f = this . _getInst ( f [ 0 ] ) , f . selectedDay = f . currentDay = a ( "a" , e ) . html ( ) , f . selectedMonth = f . currentMonth = b , f . selectedYear = f . currentYear = c , this . _selectDate ( d , this . _formatDate ( f , f . currentDay , f . currentMonth , f . currentYear ) ) ) } , _clearDate : function ( d ) { d = a ( d ) ; this . _getInst ( d [ 0 ] ) ; this . _selectDate ( d , "" ) } , _selectDate : function ( d , b ) { d = this . _getInst ( a ( d ) [ 0 ] ) ; b = null != b ? b : this . _formatDate ( d ) ; d . input && d . input . val ( b ) ; this . _updateAlternate ( d ) ; var c = this . _get ( d , "onSelect" ) ; c ? c . apply ( d . input ?
d . input [ 0 ] : null , [ b , d ] ) : d . input && d . input . trigger ( "change" ) ; d . inline ? this . _updateDatepicker ( d ) : ( this . _hideDatepicker ( ) , this . _lastInput = d . input [ 0 ] , "object" != typeof d . input [ 0 ] && d . input . focus ( ) , this . _lastInput = null ) } , _updateAlternate : function ( d ) { var b = this . _get ( d , "altField" ) ; if ( b ) { var c = this . _get ( d , "altFormat" ) || this . _get ( d , "dateFormat" ) , e = this . _getDate ( d ) , f = this . formatDate ( c , e , this . _getFormatConfig ( d ) ) ; a ( b ) . each ( function ( ) { a ( this ) . val ( f ) } ) } } , noWeekends : function ( a ) { a = a . getDay ( ) ; return [ 0 < a && 6 > a , "" ] } , iso8601Week : function ( a ) { a =
new Date ( a . getTime ( ) ) ; a . setDate ( a . getDate ( ) + 4 - ( a . getDay ( ) || 7 ) ) ; var b = a . getTime ( ) ; a . setMonth ( 0 ) ; a . setDate ( 1 ) ; return Math . floor ( Math . round ( ( b - a ) / 864E5 ) / 7 ) + 1 } , parseDate : function ( d , b , c ) { if ( null == d || null == b ) throw "Invalid arguments" ; b = "object" == typeof b ? b . toString ( ) : b + "" ; if ( "" == b ) return null ; for ( var e = ( c ? c . shortYearCutoff : null ) || this . _defaults . shortYearCutoff , e = "string" != typeof e ? e : ( new Date ) . getFullYear ( ) % 100 + parseInt ( e , 10 ) , f = ( c ? c . dayNamesShort : null ) || this . _defaults . dayNamesShort , g = ( c ? c . dayNames : null ) ||
this . _defaults . dayNames , h = ( c ? c . monthNamesShort : null ) || this . _defaults . monthNamesShort , p = ( c ? c . monthNames : null ) || this . _defaults . monthNames , x = c = - 1 , w = - 1 , B = - 1 , A = ! 1 , y = function ( a ) { ( a = P + 1 < d . length && d . charAt ( P + 1 ) == a ) && P ++ ; return a } , z = function ( a ) { var d = y ( a ) ; a = RegExp ( "^\\d{1," + ( "@" == a ? 14 : "!" == a ? 20 : "y" == a && d ? 4 : "o" == a ? 3 : 2 ) + "}" ) ; a = b . substring ( L ) . match ( a ) ; if ( ! a ) throw "Missing number at position " + L ; L += a [ 0 ] . length ; return parseInt ( a [ 0 ] , 10 ) } , v = function ( d , c , e ) { d = a . map ( y ( d ) ? e : c , function ( a , d ) { return [ [ d , a ] ] } ) . sort ( function ( a ,
d ) { return - ( a [ 1 ] . length - d [ 1 ] . length ) } ) ; var f = - 1 ; a . each ( d , function ( a , d ) { a = d [ 1 ] ; if ( b . substr ( L , a . length ) . toLowerCase ( ) == a . toLowerCase ( ) ) return f = d [ 0 ] , L += a . length , ! 1 } ) ; if ( - 1 != f ) return f + 1 ; throw "Unknown name at position " + L ; } , C = function ( ) { if ( b . charAt ( L ) != d . charAt ( P ) ) throw "Unexpected literal at position " + L ; L ++ } , L = 0 , P = 0 ; P < d . length ; P ++ ) if ( A ) "'" != d . charAt ( P ) || y ( "'" ) ? C ( ) : A = ! 1 ; else switch ( d . charAt ( P ) ) { case "d" : w = z ( "d" ) ; break ; case "D" : v ( "D" , f , g ) ; break ; case "o" : B = z ( "o" ) ; break ; case "m" : x = z ( "m" ) ; break ; case "M" : x =
v ( "M" , h , p ) ; break ; case "y" : c = z ( "y" ) ; break ; case "@" : var S = new Date ( z ( "@" ) ) ; c = S . getFullYear ( ) ; x = S . getMonth ( ) + 1 ; w = S . getDate ( ) ; break ; case "!" : S = new Date ( ( z ( "!" ) - this . _ticksTo1970 ) / 1E4 ) ; c = S . getFullYear ( ) ; x = S . getMonth ( ) + 1 ; w = S . getDate ( ) ; break ; case "'" : y ( "'" ) ? C ( ) : A = ! 0 ; break ; default : C ( ) } if ( L < b . length ) throw "Extra/unparsed characters found in date: " + b . substring ( L ) ; - 1 == c ? c = ( new Date ) . getFullYear ( ) : 100 > c && ( c += ( new Date ) . getFullYear ( ) - ( new Date ) . getFullYear ( ) % 100 + ( c <= e ? 0 : - 100 ) ) ; if ( - 1 < B ) { x = 1 ; w = B ; do { e = this . _getDaysInMonth ( c ,
x - 1 ) ; if ( w <= e ) break ; x ++ ; w -= e } while ( 1 ) } S = this . _daylightSavingAdjust ( new Date ( c , x - 1 , w ) ) ; if ( S . getFullYear ( ) != c || S . getMonth ( ) + 1 != x || S . getDate ( ) != w ) throw "Invalid date" ; return S } , ATOM : "yy-mm-dd" , COOKIE : "D, dd M yy" , ISO _8601 : "yy-mm-dd" , RFC _822 : "D, d M y" , RFC _850 : "DD, dd-M-y" , RFC _1036 : "D, d M y" , RFC _1123 : "D, d M yy" , RFC _2822 : "D, d M yy" , RSS : "D, d M y" , TICKS : "!" , TIMESTAMP : "@" , W3C : "yy-mm-dd" , _ticksTo1970 : 864E9 * ( 718685 + Math . floor ( 492.5 ) - Math . floor ( 19.7 ) + Math . floor ( 4.925 ) ) , formatDate : function ( a , b , c ) { if ( ! b ) return "" ;
var e = ( c ? c . dayNamesShort : null ) || this . _defaults . dayNamesShort , f = ( c ? c . dayNames : null ) || this . _defaults . dayNames , g = ( c ? c . monthNamesShort : null ) || this . _defaults . monthNamesShort ; c = ( c ? c . monthNames : null ) || this . _defaults . monthNames ; var h = function ( b ) { ( b = A + 1 < a . length && a . charAt ( A + 1 ) == b ) && A ++ ; return b } , p = function ( a , d , b ) { d = "" + d ; if ( h ( a ) ) for ( ; d . length < b ; ) d = "0" + d ; return d } , x = function ( a , d , b , c ) { return h ( a ) ? c [ d ] : b [ d ] } , w = "" , B = ! 1 ; if ( b ) for ( var A = 0 ; A < a . length ; A ++ ) if ( B ) "'" != a . charAt ( A ) || h ( "'" ) ? w += a . charAt ( A ) : B = ! 1 ; else switch ( a . charAt ( A ) ) { case "d" : w +=
p ( "d" , b . getDate ( ) , 2 ) ; break ; case "D" : w += x ( "D" , b . getDay ( ) , e , f ) ; break ; case "o" : w += p ( "o" , Math . round ( ( ( new Date ( b . getFullYear ( ) , b . getMonth ( ) , b . getDate ( ) ) ) . getTime ( ) - ( new Date ( b . getFullYear ( ) , 0 , 0 ) ) . getTime ( ) ) / 864E5 ) , 3 ) ; break ; case "m" : w += p ( "m" , b . getMonth ( ) + 1 , 2 ) ; break ; case "M" : w += x ( "M" , b . getMonth ( ) , g , c ) ; break ; case "y" : w += h ( "y" ) ? b . getFullYear ( ) : ( 10 > b . getYear ( ) % 100 ? "0" : "" ) + b . getYear ( ) % 100 ; break ; case "@" : w += b . getTime ( ) ; break ; case "!" : w += 1E4 * b . getTime ( ) + this . _ticksTo1970 ; break ; case "'" : h ( "'" ) ? w += "'" : B = ! 0 ; break ;
default : w += a . charAt ( A ) } return w } , _possibleChars : function ( a ) { for ( var b = "" , c = ! 1 , e = function ( b ) { ( b = f + 1 < a . length && a . charAt ( f + 1 ) == b ) && f ++ ; return b } , f = 0 ; f < a . length ; f ++ ) if ( c ) "'" != a . charAt ( f ) || e ( "'" ) ? b += a . charAt ( f ) : c = ! 1 ; else switch ( a . charAt ( f ) ) { case "d" : case "m" : case "y" : case "@" : b += "0123456789" ; break ; case "D" : case "M" : return null ; case "'" : e ( "'" ) ? b += "'" : c = ! 0 ; break ; default : b += a . charAt ( f ) } return b } , _get : function ( a , b ) { return a . settings [ b ] !== c ? a . settings [ b ] : this . _defaults [ b ] } , _setDateFromField : function ( a , b ) { if ( a . input . val ( ) !=
a . lastVal ) { var c = this . _get ( a , "dateFormat" ) , e = a . lastVal = a . input ? a . input . val ( ) : null , f , g ; f = g = this . _getDefaultDate ( a ) ; var h = this . _getFormatConfig ( a ) ; try { f = this . parseDate ( c , e , h ) || g } catch ( p ) { this . log ( p ) , e = b ? "" : e } a . selectedDay = f . getDate ( ) ; a . drawMonth = a . selectedMonth = f . getMonth ( ) ; a . drawYear = a . selectedYear = f . getFullYear ( ) ; a . currentDay = e ? f . getDate ( ) : 0 ; a . currentMonth = e ? f . getMonth ( ) : 0 ; a . currentYear = e ? f . getFullYear ( ) : 0 ; this . _adjustInstDate ( a ) } } , _getDefaultDate : function ( a ) { return this . _restrictMinMax ( a , this . _determineDate ( a ,
this . _get ( a , "defaultDate" ) , new Date ) ) } , _determineDate : function ( b , c , e ) { var f = function ( a ) { var b = new Date ; b . setDate ( b . getDate ( ) + a ) ; return b } , g = function ( c ) { try { return a . datepicker . parseDate ( a . datepicker . _get ( b , "dateFormat" ) , c , a . datepicker . _getFormatConfig ( b ) ) } catch ( e ) { } for ( var f = ( c . toLowerCase ( ) . match ( /^c/ ) ? a . datepicker . _getDate ( b ) : null ) || new Date , g = f . getFullYear ( ) , h = f . getMonth ( ) , f = f . getDate ( ) , l = /([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g , m = l . exec ( c ) ; m ; ) { switch ( m [ 2 ] || "d" ) { case "d" : case "D" : f += parseInt ( m [ 1 ] ,
10 ) ; break ; case "w" : case "W" : f += 7 * parseInt ( m [ 1 ] , 10 ) ; break ; case "m" : case "M" : h += parseInt ( m [ 1 ] , 10 ) ; f = Math . min ( f , a . datepicker . _getDaysInMonth ( g , h ) ) ; break ; case "y" : case "Y" : g += parseInt ( m [ 1 ] , 10 ) , f = Math . min ( f , a . datepicker . _getDaysInMonth ( g , h ) ) } m = l . exec ( c ) } return new Date ( g , h , f ) } ; if ( c = ( c = null == c || "" === c ? e : "string" == typeof c ? g ( c ) : "number" == typeof c ? isNaN ( c ) ? e : f ( c ) : new Date ( c . getTime ( ) ) ) && "Invalid Date" == c . toString ( ) ? e : c ) c . setHours ( 0 ) , c . setMinutes ( 0 ) , c . setSeconds ( 0 ) , c . setMilliseconds ( 0 ) ; return this . _daylightSavingAdjust ( c ) } ,
_daylightSavingAdjust : function ( a ) { if ( ! a ) return null ; a . setHours ( 12 < a . getHours ( ) ? a . getHours ( ) + 2 : 0 ) ; return a } , _setDate : function ( a , b , c ) { var e = ! b , f = a . selectedMonth , g = a . selectedYear ; b = this . _restrictMinMax ( a , this . _determineDate ( a , b , new Date ) ) ; a . selectedDay = a . currentDay = b . getDate ( ) ; a . drawMonth = a . selectedMonth = a . currentMonth = b . getMonth ( ) ; a . drawYear = a . selectedYear = a . currentYear = b . getFullYear ( ) ; f == a . selectedMonth && g == a . selectedYear || c || this . _notifyChange ( a ) ; this . _adjustInstDate ( a ) ; a . input && a . input . val ( e ? "" :
this . _formatDate ( a ) ) } , _getDate : function ( a ) { return ! a . currentYear || a . input && "" == a . input . val ( ) ? null : this . _daylightSavingAdjust ( new Date ( a . currentYear , a . currentMonth , a . currentDay ) ) } , _generateHTML : function ( b ) { var c = new Date , c = this . _daylightSavingAdjust ( new Date ( c . getFullYear ( ) , c . getMonth ( ) , c . getDate ( ) ) ) , e = this . _get ( b , "isRTL" ) , g = this . _get ( b , "showButtonPanel" ) , h = this . _get ( b , "hideIfNoPrevNext" ) , n = this . _get ( b , "navigationAsDateFormat" ) , t = this . _getNumberOfMonths ( b ) , p = this . _get ( b , "showCurrentAtPos" ) , x = this . _get ( b ,
"stepMonths" ) , w = 1 != t [ 0 ] || 1 != t [ 1 ] , B = this . _daylightSavingAdjust ( b . currentDay ? new Date ( b . currentYear , b . currentMonth , b . currentDay ) : new Date ( 9999 , 9 , 9 ) ) , A = this . _getMinMaxDate ( b , "min" ) , y = this . _getMinMaxDate ( b , "max" ) , p = b . drawMonth - p , z = b . drawYear ; 0 > p && ( p += 12 , z -- ) ; if ( y ) for ( var v = this . _daylightSavingAdjust ( new Date ( y . getFullYear ( ) , y . getMonth ( ) - t [ 0 ] * t [ 1 ] + 1 , y . getDate ( ) ) ) , v = A && v < A ? A : v ; this . _daylightSavingAdjust ( new Date ( z , p , 1 ) ) > v ; ) p -- , 0 > p && ( p = 11 , z -- ) ; b . drawMonth = p ; b . drawYear = z ; var v = this . _get ( b , "prevText" ) , v = n ?
this . formatDate ( v , this . _daylightSavingAdjust ( new Date ( z , p - x , 1 ) ) , this . _getFormatConfig ( b ) ) : v , v = this . _canAdjustMonth ( b , - 1 , z , p ) ? '<a class="ui-datepicker-prev ui-corner-all" onclick="DP_jQuery_' + f + ".datepicker._adjustDate('#" + b . id + "', -" + x + ", 'M');\" title=\"" + v + '"><span class="ui-icon ui-icon-circle-triangle-' + ( e ? "e" : "w" ) + '">' + v + "</span></a>" : h ? "" : '<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="' + v + '"><span class="ui-icon ui-icon-circle-triangle-' + ( e ? "e" : "w" ) + '">' + v + "</span></a>" ,
C = this . _get ( b , "nextText" ) , C = n ? this . formatDate ( C , this . _daylightSavingAdjust ( new Date ( z , p + x , 1 ) ) , this . _getFormatConfig ( b ) ) : C , h = this . _canAdjustMonth ( b , 1 , z , p ) ? '<a class="ui-datepicker-next ui-corner-all" onclick="DP_jQuery_' + f + ".datepicker._adjustDate('#" + b . id + "', +" + x + ", 'M');\" title=\"" + C + '"><span class="ui-icon ui-icon-circle-triangle-' + ( e ? "w" : "e" ) + '">' + C + "</span></a>" : h ? "" : '<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="' + C + '"><span class="ui-icon ui-icon-circle-triangle-' + ( e ?
"w" : "e" ) + '">' + C + "</span></a>" , x = this . _get ( b , "currentText" ) , C = this . _get ( b , "gotoCurrent" ) && b . currentDay ? B : c , x = n ? this . formatDate ( x , C , this . _getFormatConfig ( b ) ) : x , n = b . inline ? "" : '<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" onclick="DP_jQuery_' + f + '.datepicker._hideDatepicker();">' + this . _get ( b , "closeText" ) + "</button>" , g = g ? '<div class="ui-datepicker-buttonpane ui-widget-content">' + ( e ? n : "" ) + ( this . _isInRange ( b , C ) ? '<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" onclick="DP_jQuery_' +
f + ".datepicker._gotoToday('#" + b . id + "');\">" + x + "</button>" : "" ) + ( e ? "" : n ) + "</div>" : "" , n = parseInt ( this . _get ( b , "firstDay" ) , 10 ) , n = isNaN ( n ) ? 0 : n , x = this . _get ( b , "showWeek" ) , C = this . _get ( b , "dayNames" ) ; this . _get ( b , "dayNamesShort" ) ; var L = this . _get ( b , "dayNamesMin" ) , P = this . _get ( b , "monthNames" ) , S = this . _get ( b , "monthNamesShort" ) , ea = this . _get ( b , "beforeShowDay" ) , za = this . _get ( b , "showOtherMonths" ) , hb = this . _get ( b , "selectOtherMonths" ) ; this . _get ( b , "calculateWeek" ) ; for ( var u = this . _getDefaultDate ( b ) , Da = "" , O = 0 ; O < t [ 0 ] ; O ++ ) { var k =
"" ; this . maxRows = 4 ; for ( var T = 0 ; T < t [ 1 ] ; T ++ ) { var Ba = this . _daylightSavingAdjust ( new Date ( z , p , b . selectedDay ) ) , I = " ui-corner-all" , M = "" ; if ( w ) { M += '<div class="ui-datepicker-group' ; if ( 1 < t [ 1 ] ) switch ( T ) { case 0 : M += " ui-datepicker-group-first" ; I = " ui-corner-" + ( e ? "right" : "left" ) ; break ; case t [ 1 ] - 1 : M += " ui-datepicker-group-last" ; I = " ui-corner-" + ( e ? "left" : "right" ) ; break ; default : M += " ui-datepicker-group-middle" , I = "" } M += '">' } for ( var M = M + ( '<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix' + I + '">' +
( /all|left/ . test ( I ) && 0 == O ? e ? h : v : "" ) + ( /all|right/ . test ( I ) && 0 == O ? e ? v : h : "" ) + this . _generateMonthYearHeader ( b , p , z , A , y , 0 < O || 0 < T , P , S ) + '</div><table class="ui-datepicker-calendar"><thead><tr>' ) , X = x ? '<th class="ui-datepicker-week-col">' + this . _get ( b , "weekHeader" ) + "</th>" : "" , I = 0 ; 7 > I ; I ++ ) var K = ( I + n ) % 7 , X = X + ( "<th" + ( 5 <= ( I + n + 6 ) % 7 ? ' class="ui-datepicker-week-end"' : "" ) + '><span title="' + C [ K ] + '">' + L [ K ] + "</span></th>" ) ; M += X + "</tr></thead><tbody>" ; X = this . _getDaysInMonth ( z , p ) ; z == b . selectedYear && p == b . selectedMonth && ( b . selectedDay =
Math . min ( b . selectedDay , X ) ) ; I = ( this . _getFirstDayOfMonth ( z , p ) - n + 7 ) % 7 ; X = Math . ceil ( ( I + X ) / 7 ) ; this . maxRows = X = w ? this . maxRows > X ? this . maxRows : X : X ; for ( var K = this . _daylightSavingAdjust ( new Date ( z , p , 1 - I ) ) , bb = 0 ; bb < X ; bb ++ ) { for ( var M = M + "<tr>" , Sa = x ? '<td class="ui-datepicker-week-col">' + this . _get ( b , "calculateWeek" ) ( K ) + "</td>" : "" , I = 0 ; 7 > I ; I ++ ) { var ia = ea ? ea . apply ( b . input ? b . input [ 0 ] : null , [ K ] ) : [ ! 0 , "" ] , na = K . getMonth ( ) != p , Ka = na && ! hb || ! ia [ 0 ] || A && K < A || y && K > y , Sa = Sa + ( '<td class="' + ( 5 <= ( I + n + 6 ) % 7 ? " ui-datepicker-week-end" : "" ) +
( na ? " ui-datepicker-other-month" : "" ) + ( K . getTime ( ) == Ba . getTime ( ) && p == b . selectedMonth && b . _keyEvent || u . getTime ( ) == K . getTime ( ) && u . getTime ( ) == Ba . getTime ( ) ? " " + this . _dayOverClass : "" ) + ( Ka ? " " + this . _unselectableClass + " ui-state-disabled" : "" ) + ( na && ! za ? "" : " " + ia [ 1 ] + ( K . getTime ( ) == B . getTime ( ) ? " " + this . _currentClass : "" ) + ( K . getTime ( ) == c . getTime ( ) ? " ui-datepicker-today" : "" ) ) + '"' + ( na && ! za || ! ia [ 2 ] ? "" : ' title="' + ia [ 2 ] + '"' ) + ( Ka ? "" : ' onclick="DP_jQuery_' + f + ".datepicker._selectDay('#" + b . id + "'," + K . getMonth ( ) + "," + K . getFullYear ( ) +
', this);return false;"' ) + ">" + ( na && ! za ? " " : Ka ? '<span class="ui-state-default">' + K . getDate ( ) + "</span>" : '<a class="ui-state-default' + ( K . getTime ( ) == c . getTime ( ) ? " ui-state-highlight" : "" ) + ( K . getTime ( ) == B . getTime ( ) ? " ui-state-active" : "" ) + ( na ? " ui-priority-secondary" : "" ) + '" href="#">' + K . getDate ( ) + "</a>" ) + "</td>" ) ; K . setDate ( K . getDate ( ) + 1 ) ; K = this . _daylightSavingAdjust ( K ) } M += Sa + "</tr>" } p ++ ; 11 < p && ( p = 0 , z ++ ) ; M += "</tbody></table>" + ( w ? "</div>" + ( 0 < t [ 0 ] && T == t [ 1 ] - 1 ? '<div class="ui-datepicker-row-break"></div>' :
"" ) : "" ) ; k += M } Da += k } Da += g + ( a . browser . msie && 7 > parseInt ( a . browser . version , 10 ) && ! b . inline ? '<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>' : "" ) ; b . _keyEvent = ! 1 ; return Da } , _generateMonthYearHeader : function ( a , b , c , e , g , h , t , p ) { var x = this . _get ( a , "changeMonth" ) , w = this . _get ( a , "changeYear" ) , B = this . _get ( a , "showMonthAfterYear" ) , A = '<div class="ui-datepicker-title">' , y = "" ; if ( h || ! x ) y += '<span class="ui-datepicker-month">' + t [ b ] + "</span>" ; else { t = e && e . getFullYear ( ) == c ; for ( var z = g &&
g . getFullYear ( ) == c , y = y + ( '<select class="ui-datepicker-month" onchange="DP_jQuery_' + f + ".datepicker._selectMonthYear('#" + a . id + "', this, 'M');\" >" ) , v = 0 ; 12 > v ; v ++ ) ( ! t || v >= e . getMonth ( ) ) && ( ! z || v <= g . getMonth ( ) ) && ( y += '<option value="' + v + '"' + ( v == b ? ' selected="selected"' : "" ) + ">" + p [ v ] + "</option>" ) ; y += "</select>" } B || ( A += y + ( ! h && x && w ? "" : " " ) ) ; if ( ! a . yearshtml ) if ( a . yearshtml = "" , h || ! w ) A += '<span class="ui-datepicker-year">' + c + "</span>" ; else { p = this . _get ( a , "yearRange" ) . split ( ":" ) ; var C = ( new Date ) . getFullYear ( ) ;
t = function ( a ) { a = a . match ( /c[+-].*/ ) ? c + parseInt ( a . substring ( 1 ) , 10 ) : a . match ( /[+-].*/ ) ? C + parseInt ( a , 10 ) : parseInt ( a , 10 ) ; return isNaN ( a ) ? C : a } ; b = t ( p [ 0 ] ) ; p = Math . max ( b , t ( p [ 1 ] || "" ) ) ; b = e ? Math . max ( b , e . getFullYear ( ) ) : b ; p = g ? Math . min ( p , g . getFullYear ( ) ) : p ; for ( a . yearshtml += '<select class="ui-datepicker-year" onchange="DP_jQuery_' + f + ".datepicker._selectMonthYear('#" + a . id + "', this, 'Y');\" >" ; b <= p ; b ++ ) a . yearshtml += '<option value="' + b + '"' + ( b == c ? ' selected="selected"' : "" ) + ">" + b + "</option>" ; a . yearshtml += "</select>" ; A +=
a . yearshtml ; a . yearshtml = null } A += this . _get ( a , "yearSuffix" ) ; B && ( A += ( ! h && x && w ? "" : " " ) + y ) ; return A + "</div>" } , _adjustInstDate : function ( a , b , c ) { var e = a . drawYear + ( "Y" == c ? b : 0 ) , f = a . drawMonth + ( "M" == c ? b : 0 ) ; b = Math . min ( a . selectedDay , this . _getDaysInMonth ( e , f ) ) + ( "D" == c ? b : 0 ) ; e = this . _restrictMinMax ( a , this . _daylightSavingAdjust ( new Date ( e , f , b ) ) ) ; a . selectedDay = e . getDate ( ) ; a . drawMonth = a . selectedMonth = e . getMonth ( ) ; a . drawYear = a . selectedYear = e . getFullYear ( ) ; "M" != c && "Y" != c || this . _notifyChange ( a ) } , _restrictMinMax : function ( a ,
b ) { var c = this . _getMinMaxDate ( a , "min" ) ; a = this . _getMinMaxDate ( a , "max" ) ; b = c && b < c ? c : b ; return a && b > a ? a : b } , _notifyChange : function ( a ) { var b = this . _get ( a , "onChangeMonthYear" ) ; b && b . apply ( a . input ? a . input [ 0 ] : null , [ a . selectedYear , a . selectedMonth + 1 , a ] ) } , _getNumberOfMonths : function ( a ) { a = this . _get ( a , "numberOfMonths" ) ; return null == a ? [ 1 , 1 ] : "number" == typeof a ? [ 1 , a ] : a } , _getMinMaxDate : function ( a , b ) { return this . _determineDate ( a , this . _get ( a , b + "Date" ) , null ) } , _getDaysInMonth : function ( a , b ) { return 32 - this . _daylightSavingAdjust ( new Date ( a ,
b , 32 ) ) . getDate ( ) } , _getFirstDayOfMonth : function ( a , b ) { return ( new Date ( a , b , 1 ) ) . getDay ( ) } , _canAdjustMonth : function ( a , b , c , e ) { var f = this . _getNumberOfMonths ( a ) ; c = this . _daylightSavingAdjust ( new Date ( c , e + ( 0 > b ? b : f [ 0 ] * f [ 1 ] ) , 1 ) ) ; 0 > b && c . setDate ( this . _getDaysInMonth ( c . getFullYear ( ) , c . getMonth ( ) ) ) ; return this . _isInRange ( a , c ) } , _isInRange : function ( a , b ) { var c = this . _getMinMaxDate ( a , "min" ) ; a = this . _getMinMaxDate ( a , "max" ) ; return ( ! c || b . getTime ( ) >= c . getTime ( ) ) && ( ! a || b . getTime ( ) <= a . getTime ( ) ) } , _getFormatConfig : function ( a ) { var b =
this . _get ( a , "shortYearCutoff" ) , b = "string" != typeof b ? b : ( new Date ) . getFullYear ( ) % 100 + parseInt ( b , 10 ) ; return { shortYearCutoff : b , dayNamesShort : this . _get ( a , "dayNamesShort" ) , dayNames : this . _get ( a , "dayNames" ) , monthNamesShort : this . _get ( a , "monthNamesShort" ) , monthNames : this . _get ( a , "monthNames" ) } } , _formatDate : function ( a , b , c , e ) { b || ( a . currentDay = a . selectedDay , a . currentMonth = a . selectedMonth , a . currentYear = a . selectedYear ) ; b = b ? "object" == typeof b ? b : this . _daylightSavingAdjust ( new Date ( e , c , b ) ) : this . _daylightSavingAdjust ( new Date ( a . currentYear ,
a . currentMonth , a . currentDay ) ) ; return this . formatDate ( this . _get ( a , "dateFormat" ) , b , this . _getFormatConfig ( a ) ) } } ) ; a . fn . datepicker = function ( b ) { if ( ! this . length ) return this ; a . datepicker . initialized || ( a ( document ) . mousedown ( a . datepicker . _checkExternalClick ) . find ( "body" ) . append ( a . datepicker . dpDiv ) , a . datepicker . initialized = ! 0 ) ; var c = Array . prototype . slice . call ( arguments , 1 ) ; return "string" == typeof b && ( "isDisabled" == b || "getDate" == b || "widget" == b ) || "option" == b && 2 == arguments . length && "string" == typeof arguments [ 1 ] ? a . datepicker [ "_" +
b + "Datepicker" ] . apply ( a . datepicker , [ this [ 0 ] ] . concat ( c ) ) : this . each ( function ( ) { "string" == typeof b ? a . datepicker [ "_" + b + "Datepicker" ] . apply ( a . datepicker , [ this ] . concat ( c ) ) : a . datepicker . _attachDatepicker ( this , b ) } ) } ; a . datepicker = new b ; a . datepicker . initialized = ! 1 ; a . datepicker . uuid = ( new Date ) . getTime ( ) ; a . datepicker . version = "1.8.16" ; window [ "DP_jQuery_" + f ] = a } ) ( jQuery ) ;
jQuery . effects || function ( a , c ) { function b ( b ) { var c ; return b && b . constructor == Array && 3 == b . length ? b : ( c = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/ . exec ( b ) ) ? [ parseInt ( c [ 1 ] , 10 ) , parseInt ( c [ 2 ] , 10 ) , parseInt ( c [ 3 ] , 10 ) ] : ( c = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/ . exec ( b ) ) ? [ 2.55 * parseFloat ( c [ 1 ] ) , 2.55 * parseFloat ( c [ 2 ] ) , 2.55 * parseFloat ( c [ 3 ] ) ] : ( c = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/ . exec ( b ) ) ? [ parseInt ( c [ 1 ] , 16 ) , parseInt ( c [ 2 ] ,
16 ) , parseInt ( c [ 3 ] , 16 ) ] : ( c = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/ . exec ( b ) ) ? [ parseInt ( c [ 1 ] + c [ 1 ] , 16 ) , parseInt ( c [ 2 ] + c [ 2 ] , 16 ) , parseInt ( c [ 3 ] + c [ 3 ] , 16 ) ] : /rgba\(0, 0, 0, 0\)/ . exec ( b ) ? l . transparent : l [ a . trim ( b ) . toLowerCase ( ) ] } function e ( ) { var a = document . defaultView ? document . defaultView . getComputedStyle ( this , null ) : this . currentStyle , b = { } , c , d ; if ( a && a . length && a [ 0 ] && a [ a [ 0 ] ] ) for ( var e = a . length ; e -- ; ) c = a [ e ] , "string" == typeof a [ c ] && ( d = c . replace ( /\-(\w)/g , function ( a , b ) { return b . toUpperCase ( ) } ) , b [ d ] = a [ c ] ) ; else for ( c in a ) "string" ===
typeof a [ c ] && ( b [ c ] = a [ c ] ) ; return b } function g ( b ) { var c , d ; for ( c in b ) d = b [ c ] , ( null == d || a . isFunction ( d ) || c in q || /scrollbar/ . test ( c ) || ! /color/i . test ( c ) && isNaN ( parseFloat ( d ) ) ) && delete b [ c ] ; return b } function f ( a , b ) { var c = { _ : 0 } , d ; for ( d in b ) a [ d ] != b [ d ] && ( c [ d ] = b [ d ] ) ; return c } function h ( b , c , d , e ) { "object" == typeof b && ( e = c , d = null , c = b , b = c . effect ) ; a . isFunction ( c ) && ( e = c , d = null , c = { } ) ; if ( "number" == typeof c || a . fx . speeds [ c ] ) e = d , d = c , c = { } ; a . isFunction ( d ) && ( e = d , d = null ) ; c = c || { } ; d = d || c . duration ; d = a . fx . off ? 0 : "number" == typeof d ?
d : d in a . fx . speeds ? a . fx . speeds [ d ] : a . fx . speeds . _default ; e = e || c . complete ; return [ b , c , d , e ] } function d ( b ) { return ! b || "number" === typeof b || a . fx . speeds [ b ] || "string" === typeof b && ! a . effects [ b ] ? ! 0 : ! 1 } a . effects = { } ; a . each ( "backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor borderColor color outlineColor" . split ( " " ) , function ( c , d ) { a . fx . step [ d ] = function ( c ) { if ( ! c . colorInit ) { var e ; e = c . elem ; var f = d , g ; do { g = a . curCSS ( e , f ) ; if ( "" != g && "transparent" != g || a . nodeName ( e , "body" ) ) break ; f = "backgroundColor" } while ( e =
e . parentNode ) ; e = b ( g ) ; c . start = e ; c . end = b ( c . end ) ; c . colorInit = ! 0 } c . elem . style [ d ] = "rgb(" + Math . max ( Math . min ( parseInt ( c . pos * ( c . end [ 0 ] - c . start [ 0 ] ) + c . start [ 0 ] , 10 ) , 255 ) , 0 ) + "," + Math . max ( Math . min ( parseInt ( c . pos * ( c . end [ 1 ] - c . start [ 1 ] ) + c . start [ 1 ] , 10 ) , 255 ) , 0 ) + "," + Math . max ( Math . min ( parseInt ( c . pos * ( c . end [ 2 ] - c . start [ 2 ] ) + c . start [ 2 ] , 10 ) , 255 ) , 0 ) + ")" } } ) ; var l = { aqua : [ 0 , 255 , 255 ] , azure : [ 240 , 255 , 255 ] , beige : [ 245 , 245 , 220 ] , black : [ 0 , 0 , 0 ] , blue : [ 0 , 0 , 255 ] , brown : [ 165 , 42 , 42 ] , cyan : [ 0 , 255 , 255 ] , darkblue : [ 0 , 0 , 139 ] , darkcyan : [ 0 , 139 , 139 ] ,
darkgrey : [ 169 , 169 , 169 ] , darkgreen : [ 0 , 100 , 0 ] , darkkhaki : [ 189 , 183 , 107 ] , darkmagenta : [ 139 , 0 , 139 ] , darkolivegreen : [ 85 , 107 , 47 ] , darkorange : [ 255 , 140 , 0 ] , darkorchid : [ 153 , 50 , 204 ] , darkred : [ 139 , 0 , 0 ] , darksalmon : [ 233 , 150 , 122 ] , darkviolet : [ 148 , 0 , 211 ] , fuchsia : [ 255 , 0 , 255 ] , gold : [ 255 , 215 , 0 ] , green : [ 0 , 128 , 0 ] , indigo : [ 75 , 0 , 130 ] , khaki : [ 240 , 230 , 140 ] , lightblue : [ 173 , 216 , 230 ] , lightcyan : [ 224 , 255 , 255 ] , lightgreen : [ 144 , 238 , 144 ] , lightgrey : [ 211 , 211 , 211 ] , lightpink : [ 255 , 182 , 193 ] , lightyellow : [ 255 , 255 , 224 ] , lime : [ 0 , 255 , 0 ] , magenta : [ 255 , 0 , 255 ] ,
maroon : [ 128 , 0 , 0 ] , navy : [ 0 , 0 , 128 ] , olive : [ 128 , 128 , 0 ] , orange : [ 255 , 165 , 0 ] , pink : [ 255 , 192 , 203 ] , purple : [ 128 , 0 , 128 ] , violet : [ 128 , 0 , 128 ] , red : [ 255 , 0 , 0 ] , silver : [ 192 , 192 , 192 ] , white : [ 255 , 255 , 255 ] , yellow : [ 255 , 255 , 0 ] , transparent : [ 255 , 255 , 255 ] } , m = [ "add" , "remove" , "toggle" ] , q = { border : 1 , borderBottom : 1 , borderColor : 1 , borderLeft : 1 , borderRight : 1 , borderTop : 1 , borderWidth : 1 , margin : 1 , padding : 1 } ; a . effects . animateClass = function ( b , c , d , h ) { a . isFunction ( d ) && ( h = d , d = null ) ; return this . queue ( function ( ) { var l = a ( this ) , q = l . attr ( "style" ) ||
" " , B = g ( e . call ( this ) ) , A , y = l . attr ( "class" ) ; a . each ( m , function ( a , c ) { b [ c ] && l [ c + "Class" ] ( b [ c ] ) } ) ; A = g ( e . call ( this ) ) ; l . attr ( "class" , y ) ; l . animate ( f ( B , A ) , { queue : ! 1 , duration : c , easing : d , complete : function ( ) { a . each ( m , function ( a , c ) { b [ c ] && l [ c + "Class" ] ( b [ c ] ) } ) ; "object" == typeof l . attr ( "style" ) ? ( l . attr ( "style" ) . cssText = "" , l . attr ( "style" ) . cssText = q ) : l . attr ( "style" , q ) ; h && h . apply ( this , arguments ) ; a . dequeue ( this ) } } ) } ) } ; a . fn . extend ( { _addClass : a . fn . addClass , addClass : function ( b , c , d , e ) { return c ? a . effects . animateClass . apply ( this ,
[ { add : b } , c , d , e ] ) : this . _addClass ( b ) } , _removeClass : a . fn . removeClass , removeClass : function ( b , c , d , e ) { return c ? a . effects . animateClass . apply ( this , [ { remove : b } , c , d , e ] ) : this . _removeClass ( b ) } , _toggleClass : a . fn . toggleClass , toggleClass : function ( b , d , e , f , g ) { return "boolean" == typeof d || d === c ? e ? a . effects . animateClass . apply ( this , [ d ? { add : b } : { remove : b } , e , f , g ] ) : this . _toggleClass ( b , d ) : a . effects . animateClass . apply ( this , [ { toggle : b } , d , e , f ] ) } , switchClass : function ( b , c , d , e , f ) { return a . effects . animateClass . apply ( this , [ { add : c ,
remove : b } , d , e , f ] ) } } ) ; a . extend ( a . effects , { version : "1.8.16" , save : function ( a , b ) { for ( var c = 0 ; c < b . length ; c ++ ) null !== b [ c ] && a . data ( "ec.storage." + b [ c ] , a [ 0 ] . style [ b [ c ] ] ) } , restore : function ( a , b ) { for ( var c = 0 ; c < b . length ; c ++ ) null !== b [ c ] && a . css ( b [ c ] , a . data ( "ec.storage." + b [ c ] ) ) } , setMode : function ( a , b ) { "toggle" == b && ( b = a . is ( ":hidden" ) ? "show" : "hide" ) ; return b } , getBaseline : function ( a , b ) { var c ; switch ( a [ 0 ] ) { case "top" : c = 0 ; break ; case "middle" : c = 0.5 ; break ; case "bottom" : c = 1 ; break ; default : c = a [ 0 ] / b . height } switch ( a [ 1 ] ) { case "left" : a =
0 ; break ; case "center" : a = 0.5 ; break ; case "right" : a = 1 ; break ; default : a = a [ 1 ] / b . width } return { x : a , y : c } } , createWrapper : function ( b ) { if ( b . parent ( ) . is ( ".ui-effects-wrapper" ) ) return b . parent ( ) ; var c = { width : b . outerWidth ( ! 0 ) , height : b . outerHeight ( ! 0 ) , "float" : b . css ( "float" ) } , d = a ( "<div></div>" ) . addClass ( "ui-effects-wrapper" ) . css ( { fontSize : "100%" , background : "transparent" , border : "none" , margin : 0 , padding : 0 } ) , e = document . activeElement ; b . wrap ( d ) ; ( b [ 0 ] === e || a . contains ( b [ 0 ] , e ) ) && a ( e ) . focus ( ) ; d = b . parent ( ) ; "static" == b . css ( "position" ) ?
( d . css ( { position : "relative" } ) , b . css ( { position : "relative" } ) ) : ( a . extend ( c , { position : b . css ( "position" ) , zIndex : b . css ( "z-index" ) } ) , a . each ( [ "top" , "left" , "bottom" , "right" ] , function ( a , d ) { c [ d ] = b . css ( d ) ; isNaN ( parseInt ( c [ d ] , 10 ) ) && ( c [ d ] = "auto" ) } ) , b . css ( { position : "relative" , top : 0 , left : 0 , right : "auto" , bottom : "auto" } ) ) ; return d . css ( c ) . show ( ) } , removeWrapper : function ( b ) { var c , d = document . activeElement ; return b . parent ( ) . is ( ".ui-effects-wrapper" ) ? ( c = b . parent ( ) . replaceWith ( b ) , ( b [ 0 ] === d || a . contains ( b [ 0 ] , d ) ) && a ( d ) . focus ( ) ,
c ) : b } , setTransition : function ( b , c , d , e ) { e = e || { } ; a . each ( c , function ( a , c ) { unit = b . cssUnit ( c ) ; 0 < unit [ 0 ] && ( e [ c ] = unit [ 0 ] * d + unit [ 1 ] ) } ) ; return e } } ) ; a . fn . extend ( { effect : function ( b ) { var c = h . apply ( this , arguments ) , d = { options : c [ 1 ] , duration : c [ 2 ] , callback : c [ 3 ] } , c = d . options . mode , e = a . effects [ b ] ; return a . fx . off || ! e ? c ? this [ c ] ( d . duration , d . callback ) : this . each ( function ( ) { d . callback && d . callback . call ( this ) } ) : e . call ( this , d ) } , _show : a . fn . show , show : function ( a ) { if ( d ( a ) ) return this . _show . apply ( this , arguments ) ; var b = h . apply ( this ,
arguments ) ; b [ 1 ] . mode = "show" ; return this . effect . apply ( this , b ) } , _hide : a . fn . hide , hide : function ( a ) { if ( d ( a ) ) return this . _hide . apply ( this , arguments ) ; var b = h . apply ( this , arguments ) ; b [ 1 ] . mode = "hide" ; return this . effect . apply ( this , b ) } , _ _toggle : a . fn . toggle , toggle : function ( b ) { if ( d ( b ) || "boolean" === typeof b || a . isFunction ( b ) ) return this . _ _toggle . apply ( this , arguments ) ; var c = h . apply ( this , arguments ) ; c [ 1 ] . mode = "toggle" ; return this . effect . apply ( this , c ) } , cssUnit : function ( b ) { var c = this . css ( b ) , d = [ ] ; a . each ( [ "em" , "px" , "%" ,
"pt" ] , function ( a , b ) { 0 < c . indexOf ( b ) && ( d = [ parseFloat ( c ) , b ] ) } ) ; return d } } ) ; a . easing . jswing = a . easing . swing ; a . extend ( a . easing , { def : "easeOutQuad" , swing : function ( b , c , d , e , f ) { return a . easing [ a . easing . def ] ( b , c , d , e , f ) } , easeInQuad : function ( a , b , c , d , e ) { return d * ( b /= e ) * b + c } , easeOutQuad : function ( a , b , c , d , e ) { return - d * ( b /= e ) * ( b - 2 ) + c } , easeInOutQuad : function ( a , b , c , d , e ) { return 1 > ( b /= e / 2 ) ? d / 2 * b * b + c : - d / 2 * ( -- b * ( b - 2 ) - 1 ) + c } , easeInCubic : function ( a , b , c , d , e ) { return d * ( b /= e ) * b * b + c } , easeOutCubic : function ( a , b , c , d , e ) { return d * ( ( b =
b / e - 1 ) * b * b + 1 ) + c } , easeInOutCubic : function ( a , b , c , d , e ) { return 1 > ( b /= e / 2 ) ? d / 2 * b * b * b + c : d / 2 * ( ( b -= 2 ) * b * b + 2 ) + c } , easeInQuart : function ( a , b , c , d , e ) { return d * ( b /= e ) * b * b * b + c } , easeOutQuart : function ( a , b , c , d , e ) { return - d * ( ( b = b / e - 1 ) * b * b * b - 1 ) + c } , easeInOutQuart : function ( a , b , c , d , e ) { return 1 > ( b /= e / 2 ) ? d / 2 * b * b * b * b + c : - d / 2 * ( ( b -= 2 ) * b * b * b - 2 ) + c } , easeInQuint : function ( a , b , c , d , e ) { return d * ( b /= e ) * b * b * b * b + c } , easeOutQuint : function ( a , b , c , d , e ) { return d * ( ( b = b / e - 1 ) * b * b * b * b + 1 ) + c } , easeInOutQuint : function ( a , b , c , d , e ) { return 1 > ( b /= e / 2 ) ? d / 2 *
b * b * b * b * b + c : d / 2 * ( ( b -= 2 ) * b * b * b * b + 2 ) + c } , easeInSine : function ( a , b , c , d , e ) { return - d * Math . cos ( b / e * ( Math . PI / 2 ) ) + d + c } , easeOutSine : function ( a , b , c , d , e ) { return d * Math . sin ( b / e * ( Math . PI / 2 ) ) + c } , easeInOutSine : function ( a , b , c , d , e ) { return - d / 2 * ( Math . cos ( Math . PI * b / e ) - 1 ) + c } , easeInExpo : function ( a , b , c , d , e ) { return 0 == b ? c : d * Math . pow ( 2 , 10 * ( b / e - 1 ) ) + c } , easeOutExpo : function ( a , b , c , d , e ) { return b == e ? c + d : d * ( - Math . pow ( 2 , - 10 * b / e ) + 1 ) + c } , easeInOutExpo : function ( a , b , c , d , e ) { return 0 == b ? c : b == e ? c + d : 1 > ( b /= e / 2 ) ? d / 2 * Math . pow ( 2 , 10 * ( b - 1 ) ) + c : d /
2 * ( - Math . pow ( 2 , - 10 * -- b ) + 2 ) + c } , easeInCirc : function ( a , b , c , d , e ) { return - d * ( Math . sqrt ( 1 - ( b /= e ) * b ) - 1 ) + c } , easeOutCirc : function ( a , b , c , d , e ) { return d * Math . sqrt ( 1 - ( b = b / e - 1 ) * b ) + c } , easeInOutCirc : function ( a , b , c , d , e ) { return 1 > ( b /= e / 2 ) ? - d / 2 * ( Math . sqrt ( 1 - b * b ) - 1 ) + c : d / 2 * ( Math . sqrt ( 1 - ( b -= 2 ) * b ) + 1 ) + c } , easeInElastic : function ( a , b , c , d , e ) { var f = 0 , g = d ; if ( 0 == b ) return c ; if ( 1 == ( b /= e ) ) return c + d ; f || ( f = 0.3 * e ) ; g < Math . abs ( d ) ? ( g = d , a = f / 4 ) : a = f / ( 2 * Math . PI ) * Math . asin ( d / g ) ; return - ( g * Math . pow ( 2 , 10 * ( b -= 1 ) ) * Math . sin ( 2 * ( b * e - a ) * Math . PI / f ) ) +
c } , easeOutElastic : function ( a , b , c , d , e ) { var f = 0 , g = d ; if ( 0 == b ) return c ; if ( 1 == ( b /= e ) ) return c + d ; f || ( f = 0.3 * e ) ; g < Math . abs ( d ) ? ( g = d , a = f / 4 ) : a = f / ( 2 * Math . PI ) * Math . asin ( d / g ) ; return g * Math . pow ( 2 , - 10 * b ) * Math . sin ( 2 * ( b * e - a ) * Math . PI / f ) + d + c } , easeInOutElastic : function ( a , b , c , d , e ) { var f = 0 , g = d ; if ( 0 == b ) return c ; if ( 2 == ( b /= e / 2 ) ) return c + d ; f || ( f = 0.3 * e * 1.5 ) ; g < Math . abs ( d ) ? ( g = d , a = f / 4 ) : a = f / ( 2 * Math . PI ) * Math . asin ( d / g ) ; return 1 > b ? - 0.5 * g * Math . pow ( 2 , 10 * ( b -= 1 ) ) * Math . sin ( 2 * ( b * e - a ) * Math . PI / f ) + c : g * Math . pow ( 2 , - 10 * ( b -= 1 ) ) * Math . sin ( 2 * ( b * e -
a ) * Math . PI / f ) * 0.5 + d + c } , easeInBack : function ( a , b , d , e , f , g ) { g == c && ( g = 1.70158 ) ; return e * ( b /= f ) * b * ( ( g + 1 ) * b - g ) + d } , easeOutBack : function ( a , b , d , e , f , g ) { g == c && ( g = 1.70158 ) ; return e * ( ( b = b / f - 1 ) * b * ( ( g + 1 ) * b + g ) + 1 ) + d } , easeInOutBack : function ( a , b , d , e , f , g ) { g == c && ( g = 1.70158 ) ; return 1 > ( b /= f / 2 ) ? e / 2 * b * b * ( ( ( g *= 1.525 ) + 1 ) * b - g ) + d : e / 2 * ( ( b -= 2 ) * b * ( ( ( g *= 1.525 ) + 1 ) * b + g ) + 2 ) + d } , easeInBounce : function ( b , c , d , e , f ) { return e - a . easing . easeOutBounce ( b , f - c , 0 , e , f ) + d } , easeOutBounce : function ( a , b , c , d , e ) { return ( b /= e ) < 1 / 2.75 ? 7.5625 * d * b * b + c : b < 2 / 2.75 ?
d * ( 7.5625 * ( b -= 1.5 / 2.75 ) * b + 0.75 ) + c : b < 2.5 / 2.75 ? d * ( 7.5625 * ( b -= 2.25 / 2.75 ) * b + 0.9375 ) + c : d * ( 7.5625 * ( b -= 2.625 / 2.75 ) * b + 0.984375 ) + c } , easeInOutBounce : function ( b , c , d , e , f ) { return c < f / 2 ? 0.5 * a . easing . easeInBounce ( b , 2 * c , 0 , e , f ) + d : 0.5 * a . easing . easeOutBounce ( b , 2 * c - f , 0 , e , f ) + 0.5 * e + d } } ) } ( jQuery ) ;
( function ( a ) { a . effects . blind = function ( c ) { return this . queue ( function ( ) { var b = a ( this ) , e = [ "position" , "top" , "bottom" , "left" , "right" ] , g = a . effects . setMode ( b , c . options . mode || "hide" ) , f = c . options . direction || "vertical" ; a . effects . save ( b , e ) ; b . show ( ) ; var h = a . effects . createWrapper ( b ) . css ( { overflow : "hidden" } ) , d = "vertical" == f ? "height" : "width" , f = "vertical" == f ? h . height ( ) : h . width ( ) ; "show" == g && h . css ( d , 0 ) ; var l = { } ; l [ d ] = "show" == g ? f : 0 ; h . animate ( l , c . duration , c . options . easing , function ( ) { "hide" == g && b . hide ( ) ; a . effects . restore ( b ,
e ) ; a . effects . removeWrapper ( b ) ; c . callback && c . callback . apply ( b [ 0 ] , arguments ) ; b . dequeue ( ) } ) } ) } } ) ( jQuery ) ;
( function ( a ) { a . effects . bounce = function ( c ) { return this . queue ( function ( ) { var b = a ( this ) , e = [ "position" , "top" , "bottom" , "left" , "right" ] , g = a . effects . setMode ( b , c . options . mode || "effect" ) , f = c . options . direction || "up" , h = c . options . distance || 20 , d = c . options . times || 5 , l = c . duration || 250 ; /show|hide/ . test ( g ) && e . push ( "opacity" ) ; a . effects . save ( b , e ) ; b . show ( ) ; a . effects . createWrapper ( b ) ; var m = "up" == f || "down" == f ? "top" : "left" , f = "up" == f || "left" == f ? "pos" : "neg" , h = c . options . distance || ( "top" == m ? b . outerHeight ( { margin : ! 0 } ) / 3 : b . outerWidth ( { margin : ! 0 } ) /
3 ) ; "show" == g && b . css ( "opacity" , 0 ) . css ( m , "pos" == f ? - h : h ) ; "hide" == g && ( h /= 2 * d ) ; "hide" != g && d -- ; if ( "show" == g ) { var q = { opacity : 1 } ; q [ m ] = ( "pos" == f ? "+=" : "-=" ) + h ; b . animate ( q , l / 2 , c . options . easing ) ; h /= 2 ; d -- } for ( q = 0 ; q < d ; q ++ ) { var r = { } , n = { } ; r [ m ] = ( "pos" == f ? "-=" : "+=" ) + h ; n [ m ] = ( "pos" == f ? "+=" : "-=" ) + h ; b . animate ( r , l / 2 , c . options . easing ) . animate ( n , l / 2 , c . options . easing ) ; h = "hide" == g ? 2 * h : h / 2 } "hide" == g ? ( q = { opacity : 0 } , q [ m ] = ( "pos" == f ? "-=" : "+=" ) + h , b . animate ( q , l / 2 , c . options . easing , function ( ) { b . hide ( ) ; a . effects . restore ( b , e ) ; a . effects . removeWrapper ( b ) ;
c . callback && c . callback . apply ( this , arguments ) } ) ) : ( r = { } , n = { } , r [ m ] = ( "pos" == f ? "-=" : "+=" ) + h , n [ m ] = ( "pos" == f ? "+=" : "-=" ) + h , b . animate ( r , l / 2 , c . options . easing ) . animate ( n , l / 2 , c . options . easing , function ( ) { a . effects . restore ( b , e ) ; a . effects . removeWrapper ( b ) ; c . callback && c . callback . apply ( this , arguments ) } ) ) ; b . queue ( "fx" , function ( ) { b . dequeue ( ) } ) ; b . dequeue ( ) } ) } } ) ( jQuery ) ;
( function ( a ) { a . effects . clip = function ( c ) { return this . queue ( function ( ) { var b = a ( this ) , e = "position top bottom left right height width" . split ( " " ) , g = a . effects . setMode ( b , c . options . mode || "hide" ) , f = c . options . direction || "vertical" ; a . effects . save ( b , e ) ; b . show ( ) ; var h = a . effects . createWrapper ( b ) . css ( { overflow : "hidden" } ) , h = "IMG" == b [ 0 ] . tagName ? h : b , d = "vertical" == f ? "height" : "width" , l = "vertical" == f ? "top" : "left" , f = "vertical" == f ? h . height ( ) : h . width ( ) ; "show" == g && ( h . css ( d , 0 ) , h . css ( l , f / 2 ) ) ; var m = { } ; m [ d ] = "show" == g ? f : 0 ; m [ l ] =
"show" == g ? 0 : f / 2 ; h . animate ( m , { queue : ! 1 , duration : c . duration , easing : c . options . easing , complete : function ( ) { "hide" == g && b . hide ( ) ; a . effects . restore ( b , e ) ; a . effects . removeWrapper ( b ) ; c . callback && c . callback . apply ( b [ 0 ] , arguments ) ; b . dequeue ( ) } } ) } ) } } ) ( jQuery ) ;
( function ( a ) { a . effects . drop = function ( c ) { return this . queue ( function ( ) { var b = a ( this ) , e = "position top bottom left right opacity" . split ( " " ) , g = a . effects . setMode ( b , c . options . mode || "hide" ) , f = c . options . direction || "left" ; a . effects . save ( b , e ) ; b . show ( ) ; a . effects . createWrapper ( b ) ; var h = "up" == f || "down" == f ? "top" : "left" , f = "up" == f || "left" == f ? "pos" : "neg" , d = c . options . distance || ( "top" == h ? b . outerHeight ( { margin : ! 0 } ) / 2 : b . outerWidth ( { margin : ! 0 } ) / 2 ) ; "show" == g && b . css ( "opacity" , 0 ) . css ( h , "pos" == f ? - d : d ) ; var l = { opacity : "show" ==
g ? 1 : 0 } ; l [ h ] = ( "show" == g ? "pos" == f ? "+=" : "-=" : "pos" == f ? "-=" : "+=" ) + d ; b . animate ( l , { queue : ! 1 , duration : c . duration , easing : c . options . easing , complete : function ( ) { "hide" == g && b . hide ( ) ; a . effects . restore ( b , e ) ; a . effects . removeWrapper ( b ) ; c . callback && c . callback . apply ( this , arguments ) ; b . dequeue ( ) } } ) } ) } } ) ( jQuery ) ;
( function ( a ) { a . effects . explode = function ( c ) { return this . queue ( function ( ) { var b = c . options . pieces ? Math . round ( Math . sqrt ( c . options . pieces ) ) : 3 , e = c . options . pieces ? Math . round ( Math . sqrt ( c . options . pieces ) ) : 3 ; c . options . mode = "toggle" == c . options . mode ? a ( this ) . is ( ":visible" ) ? "hide" : "show" : c . options . mode ; var g = a ( this ) . show ( ) . css ( "visibility" , "hidden" ) , f = g . offset ( ) ; f . top -= parseInt ( g . css ( "marginTop" ) , 10 ) || 0 ; f . left -= parseInt ( g . css ( "marginLeft" ) , 10 ) || 0 ; for ( var h = g . outerWidth ( ! 0 ) , d = g . outerHeight ( ! 0 ) , l = 0 ; l < b ; l ++ ) for ( var m =
0 ; m < e ; m ++ ) g . clone ( ) . appendTo ( "body" ) . wrap ( "<div></div>" ) . css ( { position : "absolute" , visibility : "visible" , left : h / e * - m , top : d / b * - l } ) . parent ( ) . addClass ( "ui-effects-explode" ) . css ( { position : "absolute" , overflow : "hidden" , width : h / e , height : d / b , left : f . left + h / e * m + ( "show" == c . options . mode ? h / e * ( m - Math . floor ( e / 2 ) ) : 0 ) , top : f . top + d / b * l + ( "show" == c . options . mode ? d / b * ( l - Math . floor ( b / 2 ) ) : 0 ) , opacity : "show" == c . options . mode ? 0 : 1 } ) . animate ( { left : f . left + h / e * m + ( "show" == c . options . mode ? 0 : h / e * ( m - Math . floor ( e / 2 ) ) ) , top : f . top + d / b * l + ( "show" ==
c . options . mode ? 0 : d / b * ( l - Math . floor ( b / 2 ) ) ) , opacity : "show" == c . options . mode ? 1 : 0 } , c . duration || 500 ) ; setTimeout ( function ( ) { "show" == c . options . mode ? g . css ( { visibility : "visible" } ) : g . css ( { visibility : "visible" } ) . hide ( ) ; c . callback && c . callback . apply ( g [ 0 ] ) ; g . dequeue ( ) ; a ( "div.ui-effects-explode" ) . remove ( ) } , c . duration || 500 ) } ) } } ) ( jQuery ) ;
( function ( a ) { a . effects . fade = function ( c ) { return this . queue ( function ( ) { var b = a ( this ) , e = a . effects . setMode ( b , c . options . mode || "hide" ) ; b . animate ( { opacity : e } , { queue : ! 1 , duration : c . duration , easing : c . options . easing , complete : function ( ) { c . callback && c . callback . apply ( this , arguments ) ; b . dequeue ( ) } } ) } ) } } ) ( jQuery ) ;
( function ( a ) { a . effects . fold = function ( c ) { return this . queue ( function ( ) { var b = a ( this ) , e = [ "position" , "top" , "bottom" , "left" , "right" ] , g = a . effects . setMode ( b , c . options . mode || "hide" ) , f = c . options . size || 15 , h = ! ! c . options . horizFirst , d = c . duration ? c . duration / 2 : a . fx . speeds . _default / 2 ; a . effects . save ( b , e ) ; b . show ( ) ; var l = a . effects . createWrapper ( b ) . css ( { overflow : "hidden" } ) , m = "show" == g != h , q = m ? [ "width" , "height" ] : [ "height" , "width" ] , m = m ? [ l . width ( ) , l . height ( ) ] : [ l . height ( ) , l . width ( ) ] , r = /([0-9]+)%/ . exec ( f ) ; r && ( f = parseInt ( r [ 1 ] ,
10 ) / 100 * m [ "hide" == g ? 0 : 1 ] ) ; "show" == g && l . css ( h ? { height : 0 , width : f } : { height : f , width : 0 } ) ; h = { } ; r = { } ; h [ q [ 0 ] ] = "show" == g ? m [ 0 ] : f ; r [ q [ 1 ] ] = "show" == g ? m [ 1 ] : 0 ; l . animate ( h , d , c . options . easing ) . animate ( r , d , c . options . easing , function ( ) { "hide" == g && b . hide ( ) ; a . effects . restore ( b , e ) ; a . effects . removeWrapper ( b ) ; c . callback && c . callback . apply ( b [ 0 ] , arguments ) ; b . dequeue ( ) } ) } ) } } ) ( jQuery ) ;
( function ( a ) { a . effects . highlight = function ( c ) { return this . queue ( function ( ) { var b = a ( this ) , e = [ "backgroundImage" , "backgroundColor" , "opacity" ] , g = a . effects . setMode ( b , c . options . mode || "show" ) , f = { backgroundColor : b . css ( "backgroundColor" ) } ; "hide" == g && ( f . opacity = 0 ) ; a . effects . save ( b , e ) ; b . show ( ) . css ( { backgroundImage : "none" , backgroundColor : c . options . color || "#ffff99" } ) . animate ( f , { queue : ! 1 , duration : c . duration , easing : c . options . easing , complete : function ( ) { "hide" == g && b . hide ( ) ; a . effects . restore ( b , e ) ; "show" == g && ! a . support . opacity &&
this . style . removeAttribute ( "filter" ) ; c . callback && c . callback . apply ( this , arguments ) ; b . dequeue ( ) } } ) } ) } } ) ( jQuery ) ;
( function ( a ) { a . effects . pulsate = function ( c ) { return this . queue ( function ( ) { var b = a ( this ) , e = a . effects . setMode ( b , c . options . mode || "show" ) ; times = 2 * ( c . options . times || 5 ) - 1 ; duration = c . duration ? c . duration / 2 : a . fx . speeds . _default / 2 ; isVisible = b . is ( ":visible" ) ; animateTo = 0 ; isVisible || ( b . css ( "opacity" , 0 ) . show ( ) , animateTo = 1 ) ; ( "hide" == e && isVisible || "show" == e && ! isVisible ) && times -- ; for ( e = 0 ; e < times ; e ++ ) b . animate ( { opacity : animateTo } , duration , c . options . easing ) , animateTo = ( animateTo + 1 ) % 2 ; b . animate ( { opacity : animateTo } , duration ,
c . options . easing , function ( ) { 0 == animateTo && b . hide ( ) ; c . callback && c . callback . apply ( this , arguments ) } ) ; b . queue ( "fx" , function ( ) { b . dequeue ( ) } ) . dequeue ( ) } ) } } ) ( jQuery ) ;
( function ( a ) { a . effects . puff = function ( c ) { return this . queue ( function ( ) { var b = a ( this ) , e = a . effects . setMode ( b , c . options . mode || "hide" ) , g = parseInt ( c . options . percent , 10 ) || 150 , f = g / 100 , h = { height : b . height ( ) , width : b . width ( ) } ; a . extend ( c . options , { fade : ! 0 , mode : e , percent : "hide" == e ? g : 100 , from : "hide" == e ? h : { height : h . height * f , width : h . width * f } } ) ; b . effect ( "scale" , c . options , c . duration , c . callback ) ; b . dequeue ( ) } ) } ; a . effects . scale = function ( c ) { return this . queue ( function ( ) { var b = a ( this ) , e = a . extend ( ! 0 , { } , c . options ) , g = a . effects . setMode ( b ,
c . options . mode || "effect" ) , f = parseInt ( c . options . percent , 10 ) || ( 0 == parseInt ( c . options . percent , 10 ) ? 0 : "hide" == g ? 0 : 100 ) , h = c . options . direction || "both" , d = c . options . origin ; "effect" != g && ( e . origin = d || [ "middle" , "center" ] , e . restore = ! 0 ) ; d = { height : b . height ( ) , width : b . width ( ) } ; b . from = c . options . from || ( "show" == g ? { height : 0 , width : 0 } : d ) ; f = { y : "horizontal" != h ? f / 100 : 1 , x : "vertical" != h ? f / 100 : 1 } ; b . to = { height : d . height * f . y , width : d . width * f . x } ; c . options . fade && ( "show" == g && ( b . from . opacity = 0 , b . to . opacity = 1 ) , "hide" == g && ( b . from . opacity =
1 , b . to . opacity = 0 ) ) ; e . from = b . from ; e . to = b . to ; e . mode = g ; b . effect ( "size" , e , c . duration , c . callback ) ; b . dequeue ( ) } ) } ; a . effects . size = function ( c ) { return this . queue ( function ( ) { var b = a ( this ) , e = "position top bottom left right width height overflow opacity" . split ( " " ) , g = "position top bottom left right overflow opacity" . split ( " " ) , f = [ "width" , "height" , "overflow" ] , h = [ "fontSize" ] , d = [ "borderTopWidth" , "borderBottomWidth" , "paddingTop" , "paddingBottom" ] , l = [ "borderLeftWidth" , "borderRightWidth" , "paddingLeft" , "paddingRight" ] ,
m = a . effects . setMode ( b , c . options . mode || "effect" ) , q = c . options . restore || ! 1 , r = c . options . scale || "both" , n = c . options . origin , t = { height : b . height ( ) , width : b . width ( ) } ; b . from = c . options . from || t ; b . to = c . options . to || t ; n && ( n = a . effects . getBaseline ( n , t ) , b . from . top = ( t . height - b . from . height ) * n . y , b . from . left = ( t . width - b . from . width ) * n . x , b . to . top = ( t . height - b . to . height ) * n . y , b . to . left = ( t . width - b . to . width ) * n . x ) ; var p = b . from . height / t . height , x = b . from . width / t . width , w = b . to . height / t . height , B = b . to . width / t . width ; if ( "box" == r || "both" ==
r ) p != w && ( e = e . concat ( d ) , b . from = a . effects . setTransition ( b , d , p , b . from ) , b . to = a . effects . setTransition ( b , d , w , b . to ) ) , x != B && ( e = e . concat ( l ) , b . from = a . effects . setTransition ( b , l , x , b . from ) , b . to = a . effects . setTransition ( b , l , B , b . to ) ) ; "content" != r && "both" != r || p == w || ( e = e . concat ( h ) , b . from = a . effects . setTransition ( b , h , p , b . from ) , b . to = a . effects . setTransition ( b , h , w , b . to ) ) ; a . effects . save ( b , q ? e : g ) ; b . show ( ) ; a . effects . createWrapper ( b ) ; b . css ( "overflow" , "hidden" ) . css ( b . from ) ; if ( "content" == r || "both" == r ) d = d . concat ( [ "marginTop" ,
"marginBottom" ] ) . concat ( h ) , l = l . concat ( [ "marginLeft" , "marginRight" ] ) , f = e . concat ( d ) . concat ( l ) , b . find ( "*[width]" ) . each ( function ( ) { child = a ( this ) ; q && a . effects . save ( child , f ) ; var b = child . height ( ) , e = child . width ( ) ; child . from = { height : b * p , width : e * x } ; child . to = { height : b * w , width : e * B } ; p != w && ( child . from = a . effects . setTransition ( child , d , p , child . from ) , child . to = a . effects . setTransition ( child , d , w , child . to ) ) ; x != B && ( child . from = a . effects . setTransition ( child , l , x , child . from ) , child . to = a . effects . setTransition ( child , l , B , child . to ) ) ;
child . css ( child . from ) ; child . animate ( child . to , c . duration , c . options . easing , function ( ) { q && a . effects . restore ( child , f ) } ) } ) ; b . animate ( b . to , { queue : ! 1 , duration : c . duration , easing : c . options . easing , complete : function ( ) { 0 === b . to . opacity && b . css ( "opacity" , b . from . opacity ) ; "hide" == m && b . hide ( ) ; a . effects . restore ( b , q ? e : g ) ; a . effects . removeWrapper ( b ) ; c . callback && c . callback . apply ( this , arguments ) ; b . dequeue ( ) } } ) } ) } } ) ( jQuery ) ;
( function ( a ) { a . effects . shake = function ( c ) { return this . queue ( function ( ) { var b = a ( this ) , e = [ "position" , "top" , "bottom" , "left" , "right" ] ; a . effects . setMode ( b , c . options . mode || "effect" ) ; var g = c . options . direction || "left" , f = c . options . distance || 20 , h = c . options . times || 3 , d = c . duration || c . options . duration || 140 ; a . effects . save ( b , e ) ; b . show ( ) ; a . effects . createWrapper ( b ) ; var l = "up" == g || "down" == g ? "top" : "left" , m = "up" == g || "left" == g ? "pos" : "neg" , g = { } , q = { } , r = { } ; g [ l ] = ( "pos" == m ? "-=" : "+=" ) + f ; q [ l ] = ( "pos" == m ? "+=" : "-=" ) + 2 * f ; r [ l ] = ( "pos" ==
m ? "-=" : "+=" ) + 2 * f ; b . animate ( g , d , c . options . easing ) ; for ( f = 1 ; f < h ; f ++ ) b . animate ( q , d , c . options . easing ) . animate ( r , d , c . options . easing ) ; b . animate ( q , d , c . options . easing ) . animate ( g , d / 2 , c . options . easing , function ( ) { a . effects . restore ( b , e ) ; a . effects . removeWrapper ( b ) ; c . callback && c . callback . apply ( this , arguments ) } ) ; b . queue ( "fx" , function ( ) { b . dequeue ( ) } ) ; b . dequeue ( ) } ) } } ) ( jQuery ) ;
( function ( a ) { a . effects . slide = function ( c ) { return this . queue ( function ( ) { var b = a ( this ) , e = [ "position" , "top" , "bottom" , "left" , "right" ] , g = a . effects . setMode ( b , c . options . mode || "show" ) , f = c . options . direction || "left" ; a . effects . save ( b , e ) ; b . show ( ) ; a . effects . createWrapper ( b ) . css ( { overflow : "hidden" } ) ; var h = "up" == f || "down" == f ? "top" : "left" , f = "up" == f || "left" == f ? "pos" : "neg" , d = c . options . distance || ( "top" == h ? b . outerHeight ( { margin : ! 0 } ) : b . outerWidth ( { margin : ! 0 } ) ) ; "show" == g && b . css ( h , "pos" == f ? isNaN ( d ) ? "-" + d : - d : d ) ; var l = { } ;
l [ h ] = ( "show" == g ? "pos" == f ? "+=" : "-=" : "pos" == f ? "-=" : "+=" ) + d ; b . animate ( l , { queue : ! 1 , duration : c . duration , easing : c . options . easing , complete : function ( ) { "hide" == g && b . hide ( ) ; a . effects . restore ( b , e ) ; a . effects . removeWrapper ( b ) ; c . callback && c . callback . apply ( this , arguments ) ; b . dequeue ( ) } } ) } ) } } ) ( jQuery ) ;
( function ( a ) { a . effects . transfer = function ( c ) { return this . queue ( function ( ) { var b = a ( this ) , e = a ( c . options . to ) , g = e . offset ( ) , e = { top : g . top , left : g . left , height : e . innerHeight ( ) , width : e . innerWidth ( ) } , g = b . offset ( ) , f = a ( '<div class="ui-effects-transfer"></div>' ) . appendTo ( document . body ) . addClass ( c . options . className ) . css ( { top : g . top , left : g . left , height : b . innerHeight ( ) , width : b . innerWidth ( ) , position : "absolute" } ) . animate ( e , c . duration , c . options . easing , function ( ) { f . remove ( ) ; c . callback && c . callback . apply ( b [ 0 ] , arguments ) ; b . dequeue ( ) } ) } ) } } ) ( jQuery ) ;
( function ( a , c , b ) { function e ( a , b , c ) { var d , e ; d = a . attr ( "data-dk-dropdown-value" ) ; a = a . text ( ) ; e = b . data ( "dropkick" ) ; $select = e . $select ; $select . val ( d ) ; b . find ( ".dk_label" ) . text ( a ) ; e . settings . change && ! c && e . settings . change . call ( $select , d , a ) } function g ( a , b ) { b . find ( ".dk_option_current" ) . removeClass ( "dk_option_current" ) ; a . addClass ( "dk_option_current" ) ; var c = a . prevAll ( "li" ) . outerHeight ( ) * a . prevAll ( "li" ) . length ; b . find ( ".dk_options_inner" ) . animate ( { scrollTop : c + "px" } , 0 ) } function f ( a ) { a . data ( "dropkick" ) ; a . find ( ".dk_options" ) . css ( { top : a . find ( ".dk_toggle" ) . outerHeight ( ) -
1 } ) ; a . toggleClass ( "dk_open" ) } function h ( b , c ) { var e , f = [ ] ; e = b . replace ( "{{ id }}" , c . id ) ; e = e . replace ( "{{ label }}" , c . label ) ; e = e . replace ( "{{ tabindex }}" , c . tabindex ) ; if ( c . options && c . options . length ) for ( var g = 0 , h = c . options . length ; g < h ; g ++ ) { var l = a ( c . options [ g ] ) , m = r , m = m . replace ( "{{ value }}" , l . val ( ) ) , m = m . replace ( "{{ current }}" , d ( l . val ( ) ) === c . value ? "dk_option_current" : "" ) , m = m . replace ( "{{ text }}" , l . text ( ) ) ; f [ f . length ] = m } e = a ( e ) ; e . find ( ".dk_options_inner" ) . html ( f . join ( "" ) ) ; return e } function d ( b ) { return 0 < a . trim ( b ) . length ?
b : ! 1 } var l = ! 1 ; a . browser . msie && 7 > a . browser . version . substr ( 0 , 1 ) ? l = ! 0 : b . documentElement . className += " dk_fouc" ; var m = { } , q = [ ] , r = '<li class="{{ current }}"><a data-dk-dropdown-value="{{ value }}">{{ text }}</a></li>' , n = { startSpeed : 1E3 , theme : ! 1 , change : ! 1 } ; m . init = function ( b ) { b = a . extend ( { } , n , b ) ; return this . each ( function ( ) { var c = a ( this ) , e = c . find ( ":selected" ) . first ( ) , f = c . find ( "option" ) , g = c . data ( "dropkick" ) || { } , l = c . attr ( "id" ) || c . attr ( "name" ) , m = b . width || c . outerWidth ( ) , r = c . attr ( "tabindex" ) ? c . attr ( "tabindex" ) : "" ,
n = ! 1 ; if ( g . id ) return c ; g . settings = b ; g . tabindex = r ; g . id = l ; g . $original = e ; g . $select = c ; g . value = d ( c . val ( ) ) || d ( e . attr ( "value" ) ) ; g . label = e . text ( ) ; g . options = f ; n = h ( '<div class="dk_container" id="dk_container_{{ id }}" tabindex="{{ tabindex }}"><a class="dk_toggle"><span class="dk_label">{{ label }}</span></a><div class="dk_options"><ul class="dk_options_inner"></ul></div></div>' , g ) ; n . find ( ".dk_toggle" ) . css ( { width : m + "px" } ) ; c . before ( n ) ; n = a ( "#dk_container_" + l ) . fadeIn ( b . startSpeed ) ; e = b . theme ? b . theme : "default" ; n . addClass ( "dk_theme_" +
e ) ; g . theme = e ; g . $dk = n ; c . data ( "dropkick" , g ) ; n . data ( "dropkick" , g ) ; q [ q . length ] = c ; n . bind ( "focus.dropkick" , function ( a ) { n . addClass ( "dk_focus" ) } ) . bind ( "blur.dropkick" , function ( a ) { n . removeClass ( "dk_open dk_focus" ) } ) ; setTimeout ( function ( ) { c . hide ( ) } , 0 ) } ) } ; m . theme = function ( b ) { var c = a ( this ) . data ( "dropkick" ) ; c . $dk . removeClass ( "dk_theme_" + c . theme ) . addClass ( "dk_theme_" + b ) ; c . theme = b } ; m . reset = function ( ) { for ( var a = 0 , b = q . length ; a < b ; a ++ ) { var c = q [ a ] . data ( "dropkick" ) , d = c . $dk , f = d . find ( "li" ) . first ( ) ; d . find ( ".dk_label" ) . text ( c . label ) ;
d . find ( ".dk_options_inner" ) . animate ( { scrollTop : 0 } , 0 ) ; g ( f , d ) ; e ( f , d , ! 0 ) } } ; a . fn . dropkick = function ( a ) { if ( ! l ) { if ( m [ a ] ) return m [ a ] . apply ( this , Array . prototype . slice . call ( arguments , 1 ) ) ; if ( "object" === typeof a || ! a ) return m . init . apply ( this , arguments ) } } ; a ( function ( ) { a ( ".dk_toggle" ) . live ( "click" , function ( b ) { var d = a ( this ) . parents ( ".dk_container" ) . first ( ) ; f ( d ) ; "ontouchstart" in c && ( d . addClass ( "dk_touch" ) , d . find ( ".dk_options_inner" ) . addClass ( "scrollable vertical" ) ) ; b . preventDefault ( ) ; return ! 1 } ) ; a ( ".dk_options a" ) . live ( a . browser . msie ?
"mousedown" : "click" , function ( b ) { var c = a ( this ) , d = c . parents ( ".dk_container" ) . first ( ) ; d . data ( "dropkick" ) ; d . removeClass ( "dk_open" ) ; e ( c , d ) ; g ( c . parent ( ) , d ) ; b . preventDefault ( ) ; return ! 1 } ) ; a ( b ) . bind ( "keydown.dk_nav" , function ( b ) { var c = a ( ".dk_container.dk_open" ) , d = a ( ".dk_container.dk_focus" ) , h = null ; c . length ? h = c : d . length && ! c . length && ( h = d ) ; if ( h ) { var c = h , l = b . keyCode ; c . data ( "dropkick" ) ; var m = c . find ( ".dk_options" ) , d = c . hasClass ( "dk_open" ) , r = c . find ( ".dk_option_current" ) , h = m . find ( "li" ) . first ( ) , m = m . find ( "li" ) . last ( ) ;
switch ( l ) { case 13 : d ? ( e ( r . find ( "a" ) , c ) , c . removeClass ( "dk_open" ) ) : f ( c ) ; b . preventDefault ( ) ; break ; case 38 : h = r . prev ( "li" ) ; d ? h . length ? g ( h , c ) : g ( m , c ) : f ( c ) ; b . preventDefault ( ) ; break ; case 40 : d ? ( d = r . next ( "li" ) . first ( ) , d . length ? g ( d , c ) : g ( h , c ) ) : f ( c ) , b . preventDefault ( ) } } } ) } ) } ) ( jQuery , window , document ) ;
( function ( a ) { a . fn . drag = function ( b , c , e ) { var f = "string" == typeof b ? b : "" , g = a . isFunction ( b ) ? b : a . isFunction ( c ) ? c : null ; 0 !== f . indexOf ( "drag" ) && ( f = "drag" + f ) ; e = ( b == g ? c : e ) || { } ; return g ? this . bind ( f , e , g ) : this . trigger ( f ) } ; var c = a . event , b = c . special , e = b . drag = { defaults : { which : 1 , distance : 0 , not : ":input" , handle : null , relative : ! 1 , drop : ! 0 , click : ! 1 } , datakey : "dragdata" , noBubble : ! 0 , add : function ( b ) { var c = a . data ( this , e . datakey ) , f = b . data || { } ; c . related += 1 ; a . each ( e . defaults , function ( a , b ) { void 0 !== f [ a ] && ( c [ a ] = f [ a ] ) } ) } , remove : function ( ) { a . data ( this ,
e . datakey ) . related -= 1 } , setup : function ( ) { if ( ! a . data ( this , e . datakey ) ) { var b = a . extend ( { related : 0 } , e . defaults ) ; a . data ( this , e . datakey , b ) ; c . add ( this , "touchstart mousedown" , e . init , b ) ; this . attachEvent && this . attachEvent ( "ondragstart" , e . dontstart ) } } , teardown : function ( ) { ( a . data ( this , e . datakey ) || { } ) . related || ( a . removeData ( this , e . datakey ) , c . remove ( this , "touchstart mousedown" , e . init ) , e . textselect ( ! 0 ) , this . detachEvent && this . detachEvent ( "ondragstart" , e . dontstart ) ) } , init : function ( f ) { if ( ! e . touched ) { var d = f . data , g ;
if ( ! ( 0 != f . which && 0 < d . which && f . which != d . which || a ( f . target ) . is ( d . not ) || d . handle && ! a ( f . target ) . closest ( d . handle , f . currentTarget ) . length ) && ( e . touched = "touchstart" == f . type ? this : null , d . propagates = 1 , d . mousedown = this , d . interactions = [ e . interaction ( this , d ) ] , d . target = f . target , d . pageX = f . pageX , d . pageY = f . pageY , d . dragging = null , g = e . hijack ( f , "draginit" , d ) , d . propagates && ( ( g = e . flatten ( g ) ) && g . length && ( d . interactions = [ ] , a . each ( g , function ( ) { d . interactions . push ( e . interaction ( this , d ) ) } ) ) , d . propagates = d . interactions . length ,
! 1 !== d . drop && b . drop && b . drop . handler ( f , d ) , e . textselect ( ! 1 ) , e . touched ? c . add ( e . touched , "touchmove touchend" , e . handler , d ) : c . add ( document , "mousemove mouseup" , e . handler , d ) , ! e . touched || d . live ) ) ) return ! 1 } } , interaction : function ( b , c ) { var f = a ( b ) [ c . relative ? "position" : "offset" ] ( ) || { top : 0 , left : 0 } ; return { drag : b , callback : new e . callback , droppable : [ ] , offset : f } } , handler : function ( f ) { var d = f . data ; switch ( f . type ) { case ! d . dragging && "touchmove" : f . preventDefault ( ) ; case ! d . dragging && "mousemove" : if ( Math . pow ( f . pageX - d . pageX ,
2 ) + Math . pow ( f . pageY - d . pageY , 2 ) < Math . pow ( d . distance , 2 ) ) break ; f . target = d . target ; e . hijack ( f , "dragstart" , d ) ; d . propagates && ( d . dragging = ! 0 ) ; case "touchmove" : f . preventDefault ( ) ; case "mousemove" : if ( d . dragging ) { e . hijack ( f , "drag" , d ) ; if ( d . propagates ) { ! 1 !== d . drop && b . drop && b . drop . handler ( f , d ) ; break } f . type = "mouseup" } default : e . touched ? c . remove ( e . touched , "touchmove touchend" , e . handler ) : c . remove ( document , "mousemove mouseup" , e . handler ) , d . dragging && ( ! 1 !== d . drop && b . drop && b . drop . handler ( f , d ) , e . hijack ( f , "dragend" , d ) ) ,
e . textselect ( ! 0 ) , ! 1 === d . click && d . dragging && a . data ( d . mousedown , "suppress.click" , ( new Date ) . getTime ( ) + 5 ) , d . dragging = e . touched = ! 1 } } , hijack : function ( b , d , f , g , q ) { if ( f ) { var r = b . originalEvent , n = b . type , t = d . indexOf ( "drop" ) ? "drag" : "drop" , p , x = g || 0 , w , B ; g = isNaN ( g ) ? f . interactions . length : g ; b . type = d ; b . originalEvent = null ; f . results = [ ] ; do ! ( w = f . interactions [ x ] ) || "dragend" !== d && w . cancelled || ( B = e . properties ( b , f , w ) , w . results = [ ] , a ( q || w [ t ] || f . droppable ) . each ( function ( g , m ) { B . target = m ; b . isPropagationStopped = function ( ) { return ! 1 } ;
p = m ? c . dispatch . call ( m , b , B ) : null ; ! 1 === p ? ( "drag" == t && ( w . cancelled = ! 0 , f . propagates -= 1 ) , "drop" == d && ( w [ t ] [ g ] = null ) ) : "dropinit" == d && w . droppable . push ( e . element ( p ) || m ) ; "dragstart" == d && ( w . proxy = a ( e . element ( p ) || w . drag ) [ 0 ] ) ; w . results . push ( p ) ; delete b . result ; if ( "dropinit" !== d ) return p } ) , f . results [ x ] = e . flatten ( w . results ) , "dropinit" == d && ( w . droppable = e . flatten ( w . droppable ) ) , "dragstart" != d || w . cancelled || B . update ( ) ) ; while ( ++ x < g ) ; b . type = n ; b . originalEvent = r ; return e . flatten ( f . results ) } } , properties : function ( a , b , c ) { var f =
c . callback ; f . drag = c . drag ; f . proxy = c . proxy || c . drag ; f . startX = b . pageX ; f . startY = b . pageY ; f . deltaX = a . pageX - b . pageX ; f . deltaY = a . pageY - b . pageY ; f . originalX = c . offset . left ; f . originalY = c . offset . top ; f . offsetX = f . originalX + f . deltaX ; f . offsetY = f . originalY + f . deltaY ; f . drop = e . flatten ( ( c . drop || [ ] ) . slice ( ) ) ; f . available = e . flatten ( ( c . droppable || [ ] ) . slice ( ) ) ; return f } , element : function ( a ) { if ( a && ( a . jquery || 1 == a . nodeType ) ) return a } , flatten : function ( b ) { return a . map ( b , function ( b ) { return b && b . jquery ? a . makeArray ( b ) : b && b . length ? e . flatten ( b ) :
b } ) } , textselect : function ( b ) { a ( document ) [ b ? "unbind" : "bind" ] ( "selectstart" , e . dontstart ) . css ( "MozUserSelect" , b ? "" : "none" ) ; document . unselectable = b ? "off" : "on" } , dontstart : function ( ) { return ! 1 } , callback : function ( ) { } } ; e . callback . prototype = { update : function ( ) { b . drop && this . available . length && a . each ( this . available , function ( a ) { b . drop . locate ( this , a ) } ) } } ; var g = c . dispatch ; c . dispatch = function ( b ) { if ( 0 < a . data ( this , "suppress." + b . type ) - ( new Date ) . getTime ( ) ) a . removeData ( this , "suppress." + b . type ) ; else return g . apply ( this ,
arguments ) } ; var f = c . fixHooks . touchstart = c . fixHooks . touchmove = c . fixHooks . touchend = c . fixHooks . touchcancel = { props : "clientX clientY pageX pageY screenX screenY" . split ( " " ) , filter : function ( b , c ) { if ( c ) { var e = c . touches && c . touches [ 0 ] || c . changedTouches && c . changedTouches [ 0 ] || null ; e && a . each ( f . props , function ( a , c ) { b [ c ] = e [ c ] } ) } return b } } ; b . draginit = b . dragstart = b . dragend = e } ) ( jQuery ) ;
( function ( a ) { var c = /["\\\x00-\x1f\x7f-\x9f]/g , b = { "\b" : "\\b" , "\t" : "\\t" , "\n" : "\\n" , "\f" : "\\f" , "\r" : "\\r" , '"' : '\\"' , "\\" : "\\\\" } ; a . toJSON = "object" === typeof JSON && JSON . stringify ? JSON . stringify : function ( b ) { if ( null === b ) return "null" ; var c = typeof b ; if ( "undefined" !== c ) { if ( "number" === c || "boolean" === c ) return "" + b ; if ( "string" === c ) return a . quoteString ( b ) ; if ( "object" === c ) { if ( "function" === typeof b . toJSON ) return a . toJSON ( b . toJSON ( ) ) ; if ( b . constructor === Date ) { var f = b . getUTCMonth ( ) + 1 , h = b . getUTCDate ( ) , d = b . getUTCFullYear ( ) ,
c = b . getUTCHours ( ) , l = b . getUTCMinutes ( ) , m = b . getUTCSeconds ( ) ; b = b . getUTCMilliseconds ( ) ; 10 > f && ( f = "0" + f ) ; 10 > h && ( h = "0" + h ) ; 10 > c && ( c = "0" + c ) ; 10 > l && ( l = "0" + l ) ; 10 > m && ( m = "0" + m ) ; 100 > b && ( b = "0" + b ) ; 10 > b && ( b = "0" + b ) ; return '"' + d + "-" + f + "-" + h + "T" + c + ":" + l + ":" + m + "." + b + 'Z"' } if ( b . constructor === Array ) { f = [ ] ; for ( h = 0 ; h < b . length ; h ++ ) f . push ( a . toJSON ( b [ h ] ) || "null" ) ; return "[" + f . join ( "," ) + "]" } h = [ ] ; for ( d in b ) { c = typeof d ; if ( "number" === c ) f = '"' + d + '"' ; else if ( "string" === c ) f = a . quoteString ( d ) ; else continue ; c = typeof b [ d ] ; "function" !== c && "undefined" !==
c && ( c = a . toJSON ( b [ d ] ) , h . push ( f + ":" + c ) ) } return "{" + h . join ( "," ) + "}" } } } ; a . evalJSON = "object" === typeof JSON && JSON . parse ? JSON . parse : function ( a ) { return eval ( "(" + a + ")" ) } ; a . secureEvalJSON = "object" === typeof JSON && JSON . parse ? JSON . parse : function ( a ) { var b = a . replace ( /\\["\\\/bfnrtu]/g , "@" ) . replace ( /"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g , "]" ) . replace ( /(?:^|:|,)(?:\s*\[)+/g , "" ) ; if ( /^[\],:{}\s]*$/ . test ( b ) ) return eval ( "(" + a + ")" ) ; throw new SyntaxError ( "Error parsing JSON, source is not valid." ) ;
} ; a . quoteString = function ( a ) { return a . match ( c ) ? '"' + a . replace ( c , function ( a ) { var c = b [ a ] ; if ( "string" === typeof c ) return c ; c = a . charCodeAt ( ) ; return "\\u00" + Math . floor ( c / 16 ) . toString ( 16 ) + ( c % 16 ) . toString ( 16 ) } ) + '"' : '"' + a + '"' } } ) ( jQuery ) ;
( function ( a ) { function c ( ) { var a = ! 1 , b = ! 1 ; this . stopPropagation = function ( ) { a = ! 0 } ; this . isPropagationStopped = function ( ) { return a } ; this . stopImmediatePropagation = function ( ) { b = ! 0 } ; this . isImmediatePropagationStopped = function ( ) { return b } } function b ( ) { this . _ _nonDataRow = ! 0 } function e ( ) { this . _ _group = ! 0 ; this . count = this . level = 0 ; this . title = this . value = null ; this . collapsed = ! 1 ; this . totals = null ; this . rows = [ ] ; this . groupingKey = this . groups = null } function g ( ) { this . _ _groupTotals = ! 0 ; this . group = null ; this . initialized = ! 1 } function f ( ) { var a =
null ; this . isActive = function ( b ) { return b ? a === b : null !== a } ; this . activate = function ( b ) { if ( b !== a ) { if ( null !== a ) throw "SlickGrid.EditorLock.activate: an editController is still active, can't activate another editController" ; if ( ! b . commitCurrentEdit ) throw "SlickGrid.EditorLock.activate: editController must implement .commitCurrentEdit()" ; if ( ! b . cancelCurrentEdit ) throw "SlickGrid.EditorLock.activate: editController must implement .cancelCurrentEdit()" ; a = b } } ; this . deactivate = function ( b ) { if ( a !== b ) throw "SlickGrid.EditorLock.deactivate: specified editController is not the currently active one" ;
a = null } ; this . commitCurrentEdit = function ( ) { return a ? a . commitCurrentEdit ( ) : ! 0 } ; this . cancelCurrentEdit = function ( ) { return a ? a . cancelCurrentEdit ( ) : ! 0 } } a . extend ( ! 0 , window , { Slick : { Event : function ( ) { var a = [ ] ; this . subscribe = function ( b ) { a . push ( b ) } ; this . unsubscribe = function ( b ) { for ( var c = a . length - 1 ; 0 <= c ; c -- ) a [ c ] === b && a . splice ( c , 1 ) } ; this . notify = function ( b , e , f ) { e = e || new c ; f = f || this ; for ( var g , r = 0 ; r < a . length && ! e . isPropagationStopped ( ) && ! e . isImmediatePropagationStopped ( ) ; r ++ ) g = a [ r ] . call ( f , e , b ) ; return g } } , EventData : c ,
EventHandler : function ( ) { var a = [ ] ; this . subscribe = function ( b , c ) { a . push ( { event : b , handler : c } ) ; b . subscribe ( c ) ; return this } ; this . unsubscribe = function ( b , c ) { for ( var e = a . length ; e -- ; ) if ( a [ e ] . event === b && a [ e ] . handler === c ) { a . splice ( e , 1 ) ; b . unsubscribe ( c ) ; return } return this } ; this . unsubscribeAll = function ( ) { for ( var b = a . length ; b -- ; ) a [ b ] . event . unsubscribe ( a [ b ] . handler ) ; a = [ ] ; return this } } , Range : function ( a , b , c , e ) { void 0 === c && void 0 === e && ( c = a , e = b ) ; this . fromRow = Math . min ( a , c ) ; this . fromCell = Math . min ( b , e ) ; this . toRow = Math . max ( a ,
c ) ; this . toCell = Math . max ( b , e ) ; this . isSingleRow = function ( ) { return this . fromRow == this . toRow } ; this . isSingleCell = function ( ) { return this . fromRow == this . toRow && this . fromCell == this . toCell } ; this . contains = function ( a , b ) { return a >= this . fromRow && a <= this . toRow && b >= this . fromCell && b <= this . toCell } ; this . toString = function ( ) { return this . isSingleCell ( ) ? "(" + this . fromRow + ":" + this . fromCell + ")" : "(" + this . fromRow + ":" + this . fromCell + " - " + this . toRow + ":" + this . toCell + ")" } } , NonDataRow : b , Group : e , GroupTotals : g , EditorLock : f , GlobalEditorLock : new f } } ) ;
e . prototype = new b ; e . prototype . equals = function ( a ) { return this . value === a . value && this . count === a . count && this . collapsed === a . collapsed && this . title === a . title } ; g . prototype = new b } ) ( jQuery ) ;
( function ( a ) { a . extend ( ! 0 , window , { Slick : { Editors : { Text : function ( c ) { var b , e ; this . init = function ( ) { b = a ( "<INPUT type=text class='editor-text' />" ) . appendTo ( c . container ) . bind ( "keydown.nav" , function ( b ) { b . keyCode !== a . ui . keyCode . LEFT && b . keyCode !== a . ui . keyCode . RIGHT || b . stopImmediatePropagation ( ) } ) . focus ( ) . select ( ) } ; this . destroy = function ( ) { b . remove ( ) } ; this . focus = function ( ) { b . focus ( ) } ; this . getValue = function ( ) { return b . val ( ) } ; this . setValue = function ( a ) { b . val ( a ) } ; this . loadValue = function ( a ) { e = a [ c . column . field ] ||
"" ; b . val ( e ) ; b [ 0 ] . defaultValue = e ; b . select ( ) } ; this . serializeValue = function ( ) { return b . val ( ) } ; this . applyValue = function ( a , b ) { a [ c . column . field ] = b } ; this . isValueChanged = function ( ) { return ! ( "" == b . val ( ) && null == e ) && b . val ( ) != e } ; this . validate = function ( ) { if ( c . column . validator ) { var a = c . column . validator ( b . val ( ) ) ; if ( ! a . valid ) return a } return { valid : ! 0 , msg : null } } ; this . init ( ) } , Integer : function ( c ) { var b , e ; this . init = function ( ) { b = a ( "<INPUT type=text class='editor-text' />" ) ; b . bind ( "keydown.nav" , function ( b ) { b . keyCode !== a . ui . keyCode . LEFT &&
b . keyCode !== a . ui . keyCode . RIGHT || b . stopImmediatePropagation ( ) } ) ; b . appendTo ( c . container ) ; b . focus ( ) . select ( ) } ; this . destroy = function ( ) { b . remove ( ) } ; this . focus = function ( ) { b . focus ( ) } ; this . loadValue = function ( a ) { e = a [ c . column . field ] ; b . val ( e ) ; b [ 0 ] . defaultValue = e ; b . select ( ) } ; this . serializeValue = function ( ) { return parseInt ( b . val ( ) , 10 ) || 0 } ; this . applyValue = function ( a , b ) { a [ c . column . field ] = b } ; this . isValueChanged = function ( ) { return ! ( "" == b . val ( ) && null == e ) && b . val ( ) != e } ; this . validate = function ( ) { return isNaN ( b . val ( ) ) ? { valid : ! 1 ,
msg : "Please enter a valid integer" } : { valid : ! 0 , msg : null } } ; this . init ( ) } , Date : function ( c ) { var b , e , g = ! 1 ; this . init = function ( ) { b = a ( "<INPUT type=text class='editor-text' />" ) ; b . appendTo ( c . container ) ; b . focus ( ) . select ( ) ; b . datepicker ( { showOn : "button" , buttonImageOnly : ! 0 , buttonImage : "../images/calendar.gif" , beforeShow : function ( ) { g = ! 0 } , onClose : function ( ) { g = ! 1 } , dateFormat : "dd/mm/yy" } ) ; b . width ( b . width ( ) - 18 ) } ; this . destroy = function ( ) { a . datepicker . dpDiv . stop ( ! 0 , ! 0 ) ; b . datepicker ( "hide" ) ; b . datepicker ( "destroy" ) ; b . remove ( ) } ;
this . show = function ( ) { g && a . datepicker . dpDiv . stop ( ! 0 , ! 0 ) . show ( ) } ; this . hide = function ( ) { g && a . datepicker . dpDiv . stop ( ! 0 , ! 0 ) . hide ( ) } ; this . position = function ( b ) { g && a . datepicker . dpDiv . css ( "top" , b . top + 30 ) . css ( "left" , b . left ) } ; this . focus = function ( ) { b . focus ( ) } ; this . loadValue = function ( a ) { e = a [ c . column . field ] ; b . val ( e ) ; b [ 0 ] . defaultValue = e ; b . select ( ) } ; this . serializeValue = function ( ) { return b . val ( ) } ; this . applyValue = function ( a , b ) { a [ c . column . field ] = b } ; this . isValueChanged = function ( ) { return ! ( "" == b . val ( ) && null == e ) && b . val ( ) !=
e } ; this . validate = function ( ) { return { valid : ! 0 , msg : null } } ; this . init ( ) } , YesNoSelect : function ( c ) { var b , e ; this . init = function ( ) { b = a ( "<SELECT tabIndex='0' class='editor-yesno'><OPTION value='yes'>Yes</OPTION><OPTION value='no'>No</OPTION></SELECT>" ) ; b . appendTo ( c . container ) ; b . focus ( ) } ; this . destroy = function ( ) { b . remove ( ) } ; this . focus = function ( ) { b . focus ( ) } ; this . loadValue = function ( a ) { b . val ( ( e = a [ c . column . field ] ) ? "yes" : "no" ) ; b . select ( ) } ; this . serializeValue = function ( ) { return "yes" == b . val ( ) } ; this . applyValue = function ( a ,
b ) { a [ c . column . field ] = b } ; this . isValueChanged = function ( ) { return b . val ( ) != e } ; this . validate = function ( ) { return { valid : ! 0 , msg : null } } ; this . init ( ) } , Checkbox : function ( c ) { var b , e ; this . init = function ( ) { b = a ( "<INPUT type=checkbox value='true' class='editor-checkbox' hideFocus>" ) ; b . appendTo ( c . container ) ; b . focus ( ) } ; this . destroy = function ( ) { b . remove ( ) } ; this . focus = function ( ) { b . focus ( ) } ; this . loadValue = function ( a ) { ( e = ! ! a [ c . column . field ] ) ? b . prop ( "checked" , ! 0 ) : b . prop ( "checked" , ! 1 ) } ; this . serializeValue = function ( ) { return b . prop ( "checked" ) } ;
this . applyValue = function ( a , b ) { a [ c . column . field ] = b } ; this . isValueChanged = function ( ) { return this . serializeValue ( ) !== e } ; this . validate = function ( ) { return { valid : ! 0 , msg : null } } ; this . init ( ) } , PercentComplete : function ( c ) { var b , e , g ; this . init = function ( ) { b = a ( "<INPUT type=text class='editor-percentcomplete' />" ) ; b . width ( a ( c . container ) . innerWidth ( ) - 25 ) ; b . appendTo ( c . container ) ; e = a ( "<div class='editor-percentcomplete-picker' />" ) . appendTo ( c . container ) ; e . append ( "<div class='editor-percentcomplete-helper'><div class='editor-percentcomplete-wrapper'><div class='editor-percentcomplete-slider' /><div class='editor-percentcomplete-buttons' /></div></div>" ) ;
e . find ( ".editor-percentcomplete-buttons" ) . append ( "<button val=0>Not started</button><br/><button val=50>In Progress</button><br/><button val=100>Complete</button>" ) ; b . focus ( ) . select ( ) ; e . find ( ".editor-percentcomplete-slider" ) . slider ( { orientation : "vertical" , range : "min" , value : g , slide : function ( a , c ) { b . val ( c . value ) } } ) ; e . find ( ".editor-percentcomplete-buttons button" ) . bind ( "click" , function ( c ) { b . val ( a ( this ) . attr ( "val" ) ) ; e . find ( ".editor-percentcomplete-slider" ) . slider ( "value" , a ( this ) . attr ( "val" ) ) } ) } ; this . destroy =
function ( ) { b . remove ( ) ; e . remove ( ) } ; this . focus = function ( ) { b . focus ( ) } ; this . loadValue = function ( a ) { b . val ( g = a [ c . column . field ] ) ; b . select ( ) } ; this . serializeValue = function ( ) { return parseInt ( b . val ( ) , 10 ) || 0 } ; this . applyValue = function ( a , b ) { a [ c . column . field ] = b } ; this . isValueChanged = function ( ) { return ! ( "" == b . val ( ) && null == g ) && ( parseInt ( b . val ( ) , 10 ) || 0 ) != g } ; this . validate = function ( ) { return isNaN ( parseInt ( b . val ( ) , 10 ) ) ? { valid : ! 1 , msg : "Please enter a valid positive number" } : { valid : ! 0 , msg : null } } ; this . init ( ) } , LongText : function ( c ) { var b ,
e , g , f = this ; this . init = function ( ) { var g = a ( "body" ) ; e = a ( "<DIV style='z-index:10000;position:absolute;background:white;padding:5px;border:3px solid gray; -moz-border-radius:10px; border-radius:10px;'/>" ) . appendTo ( g ) ; b = a ( "<TEXTAREA hidefocus rows=5 style='backround:white;width:250px;height:80px;border:0;outline:0'>" ) . appendTo ( e ) ; a ( "<DIV style='text-align:right'><BUTTON>Save</BUTTON><BUTTON>Cancel</BUTTON></DIV>" ) . appendTo ( e ) ; e . find ( "button:first" ) . bind ( "click" , this . save ) ; e . find ( "button:last" ) . bind ( "click" ,
this . cancel ) ; b . bind ( "keydown" , this . handleKeyDown ) ; f . position ( c . position ) ; b . focus ( ) . select ( ) } ; this . handleKeyDown = function ( b ) { b . which == a . ui . keyCode . ENTER && b . ctrlKey ? f . save ( ) : b . which == a . ui . keyCode . ESCAPE ? ( b . preventDefault ( ) , f . cancel ( ) ) : b . which == a . ui . keyCode . TAB && b . shiftKey ? ( b . preventDefault ( ) , c . grid . navigatePrev ( ) ) : b . which == a . ui . keyCode . TAB && ( b . preventDefault ( ) , c . grid . navigateNext ( ) ) } ; this . save = function ( ) { c . commitChanges ( ) } ; this . cancel = function ( ) { b . val ( g ) ; c . cancelChanges ( ) } ; this . hide = function ( ) { e . hide ( ) } ;
this . show = function ( ) { e . show ( ) } ; this . position = function ( a ) { e . css ( "top" , a . top - 5 ) . css ( "left" , a . left - 5 ) } ; this . destroy = function ( ) { e . remove ( ) } ; this . focus = function ( ) { b . focus ( ) } ; this . loadValue = function ( a ) { b . val ( g = a [ c . column . field ] ) ; b . select ( ) } ; this . serializeValue = function ( ) { return b . val ( ) } ; this . applyValue = function ( a , b ) { a [ c . column . field ] = b } ; this . isValueChanged = function ( ) { return ! ( "" == b . val ( ) && null == g ) && b . val ( ) != g } ; this . validate = function ( ) { return { valid : ! 0 , msg : null } } ; this . init ( ) } } } } ) } ) ( jQuery ) ;
( function ( a ) { a . extend ( ! 0 , window , { Slick : { Formatters : { PercentComplete : function ( a , b , e , g , f ) { return null == e || "" === e ? "-" : 50 > e ? "<span style='color:red;font-weight:bold;'>" + e + "%</span>" : "<span style='color:green'>" + e + "%</span>" } , PercentCompleteBar : function ( a , b , e , g , f ) { return null == e || "" === e ? "" : "<span class='percent-complete-bar' style='background:" + ( 30 > e ? "red" : 70 > e ? "silver" : "green" ) + ";width:" + e + "%'></span>" } , YesNo : function ( a , b , e , g , f ) { return e ? "Yes" : "No" } , Checkmark : function ( a , b , e , g , f ) { return e ? "<img src='../images/tick.png'>" :
"" } } } } ) } ) ( jQuery ) ; if ( "undefined" === typeof jQuery ) throw "SlickGrid requires jquery module to be loaded" ; if ( ! jQuery . fn . drag ) throw "SlickGrid requires jquery.event.drag module to be loaded" ; if ( "undefined" === typeof Slick ) throw "slick.core.js not loaded" ;
( function ( a ) { a . extend ( ! 0 , window , { Slick : { Grid : function ( e , g , f , h ) { function d ( ) { Y || ( Y = ! 0 , W = parseFloat ( a . css ( Q [ 0 ] , "width" , ! 0 ) ) , y ( ) , n ( V ) , h . enableTextSelectionOnCells || Z . bind ( "selectstart.ui" , function ( b ) { return a ( b . target ) . is ( "input,textarea" ) } ) , u ( ) , p ( ) , x ( ) , z ( ) , sa ( ) , t ( ) , Q . bind ( "resize.slickgrid" , sa ) , Z . bind ( "scroll" , Ua ) , gb . bind ( "contextmenu" , vc ) . bind ( "click" , wc ) . delegate ( ".slick-header-column" , "mouseenter" , tc ) . delegate ( ".slick-header-column" , "mouseleave" , uc ) , fa . bind ( "scroll" , qc ) , Ob . add ( lc ) . bind ( "keydown" ,
Zb ) , ba . bind ( "keydown" , Zb ) . bind ( "click" , zb ) . bind ( "dblclick" , ac ) . bind ( "contextmenu" , $b ) . bind ( "draginit" , rc ) . bind ( "dragstart" , { distance : 3 } , Yb ) . bind ( "drag" , sc ) . bind ( "dragend" , Tb ) . delegate ( ".slick-cell" , "mouseenter" , xc ) . delegate ( ".slick-cell" , "mouseleave" , bc ) , navigator . userAgent . toLowerCase ( ) . match ( /webkit/ ) && navigator . userAgent . toLowerCase ( ) . match ( /macintosh/ ) && ba . bind ( "mousewheel" , mc ) ) } function l ( a ) { for ( var b = Wa . length ; 0 <= b ; b -- ) if ( Wa [ b ] === a ) { Wa [ b ] . destroy && Wa [ b ] . destroy ( ) ; Wa . splice ( b , 1 ) ; break } } function m ( ) { for ( var a =
0 , b = 0 , d = f . length ; b < d ; b ++ ) a += f [ b ] . width ; a += c . width ; return Math . max ( a , W ) + 1E3 } function q ( ) { for ( var a = Ea ? W - c . width : W , b = 0 , d = f . length ; d -- ; ) b += f [ d ] . width ; return h . fullWidthRows ? Math . max ( b , a ) : b } function r ( a ) { var b = aa ; aa = q ( ) ; aa != b && ( ba . width ( aa ) , Aa . width ( aa ) , V . width ( m ( ) ) , ub = aa > W - c . width ) ; Gc . width ( aa + ( Ea ? c . width : 0 ) ) ; ( aa != b || a ) && ea ( ) } function n ( a ) { a && a . jquery && a . attr ( "unselectable" , "on" ) . css ( "MozUserSelect" , "none" ) . bind ( "selectstart.ui" , function ( ) { return ! 1 } ) } function t ( ) { for ( var b = ba [ 0 ] ; ( b = b . parentNode ) != document . body &&
null != b ; ) if ( b == Z [ 0 ] || b . scrollWidth != b . clientWidth || b . scrollHeight != b . clientHeight ) { var c = a ( b ) ; jb = jb ? jb . add ( c ) : c ; c . bind ( "scroll." + ma , Cb ) } } function p ( ) { function b ( ) { a ( this ) . addClass ( "ui-state-hover" ) } function c ( ) { a ( this ) . removeClass ( "ui-state-hover" ) } V . find ( ".slick-header-column" ) . each ( function ( ) { var b = a ( this ) . data ( "column" ) ; b && v ( F . onBeforeHeaderCellDestroy , { node : this , column : b } ) } ) ; V . empty ( ) ; V . width ( m ( ) ) ; Aa . find ( ".slick-headerrow-column" ) . each ( function ( ) { var b = a ( this ) . data ( "column" ) ; b && v ( F . onBeforeHeaderRowCellDestroy ,
{ node : this , column : b } ) } ) ; Aa . empty ( ) ; for ( var d = 0 ; d < f . length ; d ++ ) { var e = f [ d ] , g = a ( "<div class='ui-state-default slick-header-column' />" ) . html ( "<span class='slick-column-name'>" + e . name + "</span>" ) . width ( e . width - ra ) . attr ( "id" , "" + ma + e . id ) . attr ( "title" , e . toolTip || "" ) . data ( "column" , e ) . addClass ( e . headerCssClass || "" ) . appendTo ( V ) ; if ( h . enableColumnReorder || e . sortable ) g . on ( "mouseenter" , b ) . on ( "mouseleave" , c ) ; e . sortable && ( g . addClass ( "slick-header-sortable" ) , g . append ( "<span class='slick-sort-indicator' />" ) ) ; v ( F . onHeaderCellRendered ,
{ node : g [ 0 ] , column : e } ) ; h . showHeaderRow && ( g = a ( "<div class='ui-state-default slick-headerrow-column l" + d + " r" + d + "'></div>" ) . data ( "column" , e ) . appendTo ( Aa ) , v ( F . onHeaderRowCellRendered , { node : g [ 0 ] , column : e } ) ) } za ( ka ) ; B ( ) ; h . enableColumnReorder && w ( ) } function x ( ) { V . click ( function ( b ) { b . metaKey = b . metaKey || b . ctrlKey ; if ( ! a ( b . target ) . hasClass ( "slick-resizable-handle" ) ) { var c = a ( b . target ) . closest ( ".slick-header-column" ) ; if ( c . length && ( c = c . data ( "column" ) , c . sortable && C ( ) . commitCurrentEdit ( ) ) ) { for ( var d = null , e = 0 ; e < ka . length ; e ++ ) if ( ka [ e ] . columnId ==
c . id ) { d = ka [ e ] ; d . sortAsc = ! d . sortAsc ; break } b . metaKey && h . multiColumnSort ? d && ka . splice ( e , 1 ) : ( ( b . shiftKey || b . metaKey ) && h . multiColumnSort || ( ka = [ ] ) , d ? 0 == ka . length && ka . push ( d ) : ( d = { columnId : c . id , sortAsc : c . defaultSortAsc } , ka . push ( d ) ) ) ; za ( ka ) ; h . multiColumnSort ? v ( F . onSort , { multiColumnSort : ! 0 , sortCols : a . map ( ka , function ( a ) { return { sortCol : f [ va [ a . columnId ] ] , sortAsc : a . sortAsc } } ) } , b ) : v ( F . onSort , { multiColumnSort : ! 1 , sortCol : c , sortAsc : d . sortAsc } , b ) } } } ) } function w ( ) { V . filter ( ":ui-sortable" ) . sortable ( "destroy" ) ; V . sortable ( { containment : "parent" ,
distance : 3 , axis : "x" , cursor : "default" , tolerance : "intersection" , helper : "clone" , placeholder : "slick-sortable-placeholder ui-state-default slick-header-column" , start : function ( b , c ) { c . placeholder . width ( c . helper . outerWidth ( ) - ra ) ; a ( c . helper ) . addClass ( "slick-header-column-active" ) } , beforeStop : function ( b , c ) { a ( c . helper ) . removeClass ( "slick-header-column-active" ) } , stop : function ( b ) { if ( C ( ) . commitCurrentEdit ( ) ) { for ( var c = V . sortable ( "toArray" ) , d = [ ] , e = 0 ; e < c . length ; e ++ ) d . push ( f [ L ( c [ e ] . replace ( ma , "" ) ) ] ) ; Da ( d ) ; v ( F . onColumnsReordered ,
{ } ) ; b . stopPropagation ( ) ; B ( ) } else a ( this ) . sortable ( "cancel" ) } } ) } function B ( ) { var b , c , d , e , g , k , l , m ; e = V . children ( ) ; e . find ( ".slick-resizable-handle" ) . remove ( ) ; e . each ( function ( a , b ) { f [ a ] . resizable && ( void 0 === l && ( l = a ) , m = a ) } ) ; void 0 !== l && e . each ( function ( p , n ) { p < l || h . forceFitColumns && p >= m || ( a ( n ) , a ( "<div class='slick-resizable-handle' />" ) . appendTo ( n ) . bind ( "dragstart" , function ( l , m ) { if ( ! C ( ) . commitCurrentEdit ( ) ) return ! 1 ; d = l . pageX ; a ( this ) . parent ( ) . addClass ( "slick-header-column-active" ) ; var r = null , n = null ; e . each ( function ( b ,
c ) { f [ b ] . previousWidth = a ( c ) . outerWidth ( ) } ) ; if ( h . forceFitColumns ) for ( n = r = 0 , b = p + 1 ; b < e . length ; b ++ ) c = f [ b ] , c . resizable && ( null !== n && ( n = c . maxWidth ? n + ( c . maxWidth - c . previousWidth ) : null ) , r += c . previousWidth - Math . max ( c . minWidth || 0 , Ra ) ) ; var q = 0 , s = 0 ; for ( b = 0 ; b <= p ; b ++ ) c = f [ b ] , c . resizable && ( null !== s && ( s = c . maxWidth ? s + ( c . maxWidth - c . previousWidth ) : null ) , q += c . previousWidth - Math . max ( c . minWidth || 0 , Ra ) ) ; null === r && ( r = 1E5 ) ; null === q && ( q = 1E5 ) ; null === n && ( n = 1E5 ) ; null === s && ( s = 1E5 ) ; k = d + Math . min ( r , s ) ; g = d - Math . min ( q , n ) } ) . bind ( "drag" ,
function ( a , l ) { var m , r = Math . min ( k , Math . max ( g , a . pageX ) ) - d , n ; if ( 0 > r ) { n = r ; for ( b = p ; 0 <= b ; b -- ) c = f [ b ] , c . resizable && ( m = Math . max ( c . minWidth || 0 , Ra ) , n && c . previousWidth + n < m ? ( n += c . previousWidth - m , c . width = m ) : ( c . width = c . previousWidth + n , n = 0 ) ) ; if ( h . forceFitColumns ) for ( n = - r , b = p + 1 ; b < e . length ; b ++ ) c = f [ b ] , c . resizable && ( n && c . maxWidth && c . maxWidth - c . previousWidth < n ? ( n -= c . maxWidth - c . previousWidth , c . width = c . maxWidth ) : ( c . width = c . previousWidth + n , n = 0 ) ) } else { n = r ; for ( b = p ; 0 <= b ; b -- ) c = f [ b ] , c . resizable && ( n && c . maxWidth && c . maxWidth - c . previousWidth <
n ? ( n -= c . maxWidth - c . previousWidth , c . width = c . maxWidth ) : ( c . width = c . previousWidth + n , n = 0 ) ) ; if ( h . forceFitColumns ) for ( n = - r , b = p + 1 ; b < e . length ; b ++ ) c = f [ b ] , c . resizable && ( m = Math . max ( c . minWidth || 0 , Ra ) , n && c . previousWidth + n < m ? ( n += c . previousWidth - m , c . width = m ) : ( c . width = c . previousWidth + n , n = 0 ) ) } S ( ) ; h . syncColumnCellResize && ea ( ) } ) . bind ( "dragend" , function ( d , g ) { var h ; a ( this ) . parent ( ) . removeClass ( "slick-header-column-active" ) ; for ( b = 0 ; b < e . length ; b ++ ) c = f [ b ] , h = a ( e [ b ] ) . outerWidth ( ) , c . previousWidth !== h && c . rerenderOnResize && ia ( ) ;
r ( ! 0 ) ; ca ( ) ; v ( F . onColumnsResized , { } ) } ) ) } ) } function A ( b ) { var c = 0 ; a . each ( [ "borderTopWidth" , "borderBottomWidth" , "paddingTop" , "paddingBottom" ] , function ( a , d ) { c += parseFloat ( b . css ( d ) ) || 0 } ) ; return c } function y ( ) { var b , c = [ "borderLeftWidth" , "borderRightWidth" , "paddingLeft" , "paddingRight" ] , d = [ "borderTopWidth" , "borderBottomWidth" , "paddingTop" , "paddingBottom" ] ; b = a ( "<div class='ui-state-default slick-header-column' style='visibility:hidden'>-</div>" ) . appendTo ( V ) ; ra = Ja = 0 ; "border-box" != b . css ( "box-sizing" ) && "border-box" !=
b . css ( "-moz-box-sizing" ) && "border-box" != b . css ( "-webkit-box-sizing" ) && ( a . each ( c , function ( a , c ) { ra += parseFloat ( b . css ( c ) ) || 0 } ) , a . each ( d , function ( a , c ) { Ja += parseFloat ( b . css ( c ) ) || 0 } ) ) ; b . remove ( ) ; var e = a ( "<div class='slick-row' />" ) . appendTo ( ba ) ; b = a ( "<div class='slick-cell' id='' style='visibility:hidden'>-</div>" ) . appendTo ( e ) ; $a = ab = 0 ; "border-box" != b . css ( "box-sizing" ) && "border-box" != b . css ( "-moz-box-sizing" ) && "border-box" != b . css ( "-webkit-box-sizing" ) && ( a . each ( c , function ( a , c ) { $a += parseFloat ( b . css ( c ) ) || 0 } ) ,
a . each ( d , function ( a , c ) { ab += parseFloat ( b . css ( c ) ) || 0 } ) ) ; e . remove ( ) ; Ra = Math . max ( ra , $a ) } function z ( ) { Ya = a ( "<style type='text/css' rel='stylesheet' />" ) . appendTo ( a ( "head" ) ) ; for ( var b = [ "." + ma + " .slick-header-column { left: 1000px; }" , "." + ma + " .slick-top-panel { height:" + h . topPanelHeight + "px; }" , "." + ma + " .slick-headerrow-columns { height:" + h . headerRowHeight + "px; }" , "." + ma + " .slick-cell { height:" + ( h . rowHeight - ab ) + "px; }" , "." + ma + " .slick-row { height:" + h . rowHeight + "px; }" ] , c = 0 ; c < f . length ; c ++ ) b . push ( "." + ma +
" .l" + c + " { }" ) , b . push ( "." + ma + " .r" + c + " { }" ) ; Ya [ 0 ] . styleSheet ? Ya [ 0 ] . styleSheet . cssText = b . join ( " " ) : Ya [ 0 ] . appendChild ( document . createTextNode ( b . join ( " " ) ) ) } function v ( a , b , c ) { c = c || new Slick . EventData ; b = b || { } ; b . grid = F ; return a . notify ( b , c , F ) } function C ( ) { return h . editorLock } function L ( a ) { return va [ a ] } function P ( ) { var a , b , d = [ ] , e = 0 , g = 0 , h , k = Ea ? W - c . width : W ; for ( a = 0 ; a < f . length ; a ++ ) b = f [ a ] , d . push ( b . width ) , g += b . width , b . resizable && ( e += b . width - Math . max ( b . minWidth , Ra ) ) ; for ( h = g ; g > k && e ; ) { var l = ( g - k ) / e ; for ( a = 0 ; a < f . length &&
g > k ; a ++ ) { b = f [ a ] ; var m = d [ a ] ; if ( b . resizable && ! ( m <= b . minWidth || m <= Ra ) ) { b = Math . max ( b . minWidth , Ra ) ; var n = Math . floor ( l * ( m - b ) ) || 1 , n = Math . min ( n , m - b ) , g = g - n , e = e - n ; d [ a ] -= n } } if ( h <= g ) break ; h = g } for ( h = g ; g < k ; ) { e = k / g ; for ( a = 0 ; a < f . length && g < k ; a ++ ) b = f [ a ] , l = d [ a ] , b = ! b . resizable || b . maxWidth <= l ? 0 : Math . min ( Math . floor ( e * l ) - l , b . maxWidth - l || 1E6 ) || 1 , g += b , d [ a ] += b ; if ( h >= g ) break ; h = g } g = ! 1 ; for ( a = 0 ; a < f . length ; a ++ ) f [ a ] . rerenderOnResize && f [ a ] . width != d [ a ] && ( g = ! 0 ) , f [ a ] . width = d [ a ] ; S ( ) ; r ( ! 0 ) ; g && ( ia ( ) , ca ( ) ) } function S ( ) { if ( Y ) { for ( var b , c =
0 , d = V . children ( ) , e = d . length ; c < e ; c ++ ) b = a ( d [ c ] ) , b . width ( ) !== f [ c ] . width - ra && b . width ( f [ c ] . width - ra ) ; u ( ) } } function ea ( ) { for ( var a , b , c = 0 , d , e = 0 ; e < f . length ; e ++ ) { d = f [ e ] . width ; b = e ; if ( ! Za ) { var g = document . styleSheets ; for ( a = 0 ; a < g . length ; a ++ ) if ( ( g [ a ] . ownerNode || g [ a ] . owningElement ) == Ya [ 0 ] ) { Za = g [ a ] ; break } if ( ! Za ) throw Error ( "Cannot find stylesheet." ) ; nc = [ ] ; oc = [ ] ; var g = Za . cssRules || Za . rules , h = void 0 , h = void 0 ; for ( a = 0 ; a < g . length ; a ++ ) { var k = g [ a ] . selectorText ; if ( h = /\.l\d+/ . exec ( k ) ) h = parseInt ( h [ 0 ] . substr ( 2 , h [ 0 ] . length -
2 ) , 10 ) , nc [ h ] = g [ a ] ; else if ( h = /\.r\d+/ . exec ( k ) ) h = parseInt ( h [ 0 ] . substr ( 2 , h [ 0 ] . length - 2 ) , 10 ) , oc [ h ] = g [ a ] } } a = nc [ b ] ; b = oc [ b ] ; a . style . left = c + "px" ; b . style . right = aa - c - d + "px" ; c += f [ e ] . width } } function za ( b ) { ka = b ; var c = V . children ( ) ; c . removeClass ( "slick-header-column-sorted" ) . find ( ".slick-sort-indicator" ) . removeClass ( "slick-sort-indicator-asc slick-sort-indicator-desc" ) ; a . each ( ka , function ( a , b ) { null == b . sortAsc && ( b . sortAsc = ! 0 ) ; var d = va [ b . columnId ] ; null != d && c . eq ( d ) . addClass ( "slick-header-column-sorted" ) . find ( ".slick-sort-indicator" ) . addClass ( b . sortAsc ?
"slick-sort-indicator-asc" : "slick-sort-indicator-desc" ) } ) } function hb ( a , b ) { Bc = [ ] ; for ( var c = { } , d = 0 ; d < b . length ; d ++ ) for ( var e = b [ d ] . fromRow ; e <= b [ d ] . toRow ; e ++ ) { c [ e ] || ( Bc . push ( e ) , c [ e ] = { } ) ; for ( var g = b [ d ] . fromCell ; g <= b [ d ] . toCell ; g ++ ) fb ( e , g ) && ( c [ e ] [ f [ g ] . id ] = h . selectedCellCssClass ) } Xb ( h . selectedCellCssClass , c ) ; v ( F . onSelectedRowsChanged , { rows : la ( ) } , a ) } function u ( ) { qb = [ ] ; rb = [ ] ; for ( var a = 0 , b = 0 , c = f . length ; b < c ; b ++ ) qb [ b ] = a , rb [ b ] = a + f [ b ] . width , a += f [ b ] . width } function Da ( b ) { f = b ; va = { } ; for ( b = 0 ; b < f . length ; b ++ ) { var c = f [ b ] =
a . extend ( { } , Kb , f [ b ] ) ; va [ c . id ] = b ; c . minWidth && c . width < c . minWidth && ( c . width = c . minWidth ) ; c . maxWidth && c . width > c . maxWidth && ( c . width = c . maxWidth ) } u ( ) ; Y && ( ia ( ) , p ( ) , Ya . remove ( ) , Za = null , z ( ) , sa ( ) , ea ( ) , Ua ( ) ) } function O ( ) { return g . getLength ? g . getLength ( ) : g . length } function k ( ) { return O ( ) + ( h . enableAddRow ? 1 : 0 ) } function T ( a ) { return g . getItem ? g . getItem ( a ) : g [ a ] } function Ba ( a ) { return Math . floor ( ( a + s ) / h . rowHeight ) } function I ( a ) { a = Math . max ( a , 0 ) ; a = Math . min ( a , ua - N + ( ub ? c . height : 0 ) ) ; var b = s ; Oa = Math . min ( xa - 1 , Math . floor ( a / Ia ) ) ;
s = Math . round ( Oa * pb ) ; a -= s ; if ( s != b ) { var d = Ta ( a ) ; Sa ( d ) ; for ( var e in J ) J [ e ] . rowNode . style . top = h . rowHeight * e - s + "px" } nb != a && ( R = nb + b < a + s ? 1 : - 1 , Z [ 0 ] . scrollTop = ic = U = nb = a , v ( F . onViewportChanged , { } ) ) } function M ( a , b ) { var c = g . getItemMetadata && g . getItemMetadata ( a ) , d = c && c . columns && ( c . columns [ b . id ] || c . columns [ va [ b . id ] ] ) ; return d && d . formatter || c && c . formatter || b . formatter || h . formatterFactory && h . formatterFactory . getFormatter ( b ) || h . defaultFormatter } function X ( a , b ) { var c = f [ b ] , d = g . getItemMetadata && g . getItemMetadata ( a ) ; return ( d =
d && d . columns ) && d [ c . id ] && void 0 !== d [ c . id ] . editor ? d [ c . id ] . editor : d && d [ b ] && void 0 !== d [ b ] . editor ? d [ b ] . editor : c . editor || h . editorFactory && h . editorFactory . getEditor ( c ) } function K ( a , b ) { return h . dataItemColumnValueExtractor ? h . dataItemColumnValueExtractor ( a , b ) : a [ b . field ] } function bb ( a , b , c , d , e ) { var g = f [ c ] , h = "slick-cell l" + c + " r" + Math . min ( f . length - 1 , c + d - 1 ) + ( g . cssClass ? " " + g . cssClass : "" ) ; b === H && c === G && ( h += " active" ) ; for ( var k in wa ) wa [ k ] [ b ] && wa [ k ] [ b ] [ g . id ] && ( h += " " + wa [ k ] [ b ] [ g . id ] ) ; a . push ( "<div class='" + h + "'>" ) ;
e && ( h = K ( e , g ) , a . push ( M ( b , g ) ( b , c , h , g , e ) ) ) ; a . push ( "</div>" ) ; J [ b ] . cellRenderQueue . push ( c ) ; J [ b ] . cellColSpans [ c ] = d } function Sa ( a ) { for ( var b in J ) ( b = parseInt ( b , 10 ) ) !== H && ( b < a . top || b > a . bottom ) && na ( b ) } function ia ( ) { E && ta ( ) ; for ( var a in J ) na ( a ) } function na ( a ) { var b = J [ a ] ; b && ( jc == b . rowNode ? ( b . rowNode . style . display = "none" , Lb = jc ) : ba [ 0 ] . removeChild ( b . rowNode ) , delete J [ a ] , delete Xa [ a ] , pc -- , Kc ++ ) } function Ka ( a ) { var b , c ; if ( a && a . length ) for ( b = R = 0 , c = a . length ; b < c ; b ++ ) E && H === a [ b ] && ta ( ) , J [ a [ b ] ] && na ( a [ b ] ) } function vb ( a ) { Ka ( [ a ] ) }
function oa ( a ) { var b = J [ a ] ; if ( b ) { kb ( a ) ; var c = T ( a ) , d ; for ( d in b . cellNodesByColumnIdx ) if ( b . cellNodesByColumnIdx . hasOwnProperty ( d ) ) { d |= 0 ; var e = f [ d ] , g = b . cellNodesByColumnIdx [ d ] ; a === H && d === G && E ? E . loadValue ( c ) : g . innerHTML = c ? M ( a , e ) ( a , d , K ( c , e ) , e , c ) : "" } xb ( a ) } } function sa ( ) { Y && ( N = h . autoHeight ? h . rowHeight * k ( ) : parseFloat ( a . css ( Q [ 0 ] , "height" , ! 0 ) ) - parseFloat ( a . css ( Q [ 0 ] , "paddingTop" , ! 0 ) ) - parseFloat ( a . css ( Q [ 0 ] , "paddingBottom" , ! 0 ) ) - parseFloat ( a . css ( gb [ 0 ] , "height" ) ) - A ( gb ) - ( h . showTopPanel ? h . topPanelHeight + A ( ga ) : 0 ) - ( h . showHeaderRow ?
h . headerRowHeight + A ( fa ) : 0 ) , hc = Math . ceil ( N / h . rowHeight ) , W = parseFloat ( a . css ( Q [ 0 ] , "width" , ! 0 ) ) , h . autoHeight || Z . height ( N ) , h . forceFitColumns && P ( ) , cb ( ) , Ua ( ) , Jb = - 1 , ca ( ) ) } function cb ( ) { if ( Y ) { var a = k ( ) , d = a + ( h . leaveSpaceForNewRows ? hc - 1 : 0 ) , e = Ea ; Ea = ! h . autoHeight && d * h . rowHeight > N ; ta ( ) ; var a = a - 1 , f ; for ( f in J ) f >= a && na ( f ) ; D && H > a && eb ( ) ; f = ha ; ua = Math . max ( h . rowHeight * d , N - c . height ) ; ua < b ? ( ha = Ia = ua , xa = 1 , pb = 0 ) : ( ha = b , Ia = ha / 100 , xa = Math . floor ( ua / Ia ) , pb = ( ua - ha ) / ( xa - 1 ) ) ; ha !== f && ( ba . css ( "height" , ha ) , U = Z [ 0 ] . scrollTop ) ; d = U + s <= ua -
N ; 0 == ua || 0 == U ? Oa = s = 0 : d ? I ( U + s ) : I ( ua - N ) ; ha != f && h . autoHeight && sa ( ) ; h . forceFitColumns && e != Ea && P ( ) ; r ( ! 1 ) } } function Ta ( a , b ) { null == a && ( a = U ) ; null == b && ( b = ja ) ; return { top : Ba ( a ) , bottom : Ba ( a + N ) + 1 , leftPx : b , rightPx : b + W } } function wb ( a , b ) { var c = Ta ( a , b ) , d = Math . round ( N / h . rowHeight ) ; - 1 == R ? ( c . top -= d , c . bottom += 3 ) : 1 == R ? ( c . top -= 3 , c . bottom += d ) : ( c . top -= 3 , c . bottom += 3 ) ; c . top = Math . max ( 0 , c . top ) ; c . bottom = Math . min ( k ( ) - 1 , c . bottom ) ; c . leftPx -= W ; c . rightPx += W ; c . leftPx = Math . max ( 0 , c . leftPx ) ; c . rightPx = Math . min ( aa , c . rightPx ) ; return c } function kb ( a ) { if ( ( a =
J [ a ] ) && a . cellRenderQueue . length ) for ( var b = a . rowNode . lastChild ; a . cellRenderQueue . length ; ) { var c = a . cellRenderQueue . pop ( ) ; a . cellNodesByColumnIdx [ c ] = b ; b = b . previousSibling } } function Vb ( ) { h . enableAsyncPostRender && ( clearTimeout ( Dc ) , Dc = setTimeout ( Wb , h . asyncPostRenderDelay ) ) } function xb ( a ) { delete Xa [ a ] ; Mb = Math . min ( Mb , a ) ; Nb = Math . max ( Nb , a ) ; Vb ( ) } function ca ( ) { if ( Y ) { var a = Ta ( ) , b = wb ( ) ; Sa ( b ) ; if ( Jb != ja ) { for ( var c , d = [ ] , e = [ ] , l , m , n = b . top , r = b . bottom ; n <= r ; n ++ ) if ( c = J [ n ] ) { kb ( n ) ; var p = b ; l = n ; var q = 0 , t = J [ l ] , u = [ ] ; m = void 0 ;
for ( m in t . cellNodesByColumnIdx ) if ( t . cellNodesByColumnIdx . hasOwnProperty ( m ) ) { m |= 0 ; var v = t . cellColSpans [ m ] ; if ( qb [ m ] > p . rightPx || rb [ Math . min ( f . length - 1 , m + v - 1 ) ] < p . leftPx ) l == H && m == G || u . push ( m ) } for ( p = void 0 ; null != ( p = u . pop ( ) ) ; ) t . rowNode . removeChild ( t . cellNodesByColumnIdx [ p ] ) , delete t . cellColSpans [ p ] , delete t . cellNodesByColumnIdx [ p ] , Xa [ l ] && delete Xa [ l ] [ p ] , q ++ ; l = 0 ; q = ( q = g . getItemMetadata && g . getItemMetadata ( n ) ) && q . columns ; t = T ( n ) ; u = 0 ; for ( p = f . length ; u < p && ! ( qb [ u ] > b . rightPx ) ; u ++ ) null == ( m = c . cellColSpans [ u ] ) && ( m =
1 , q && ( m = ( m = q [ f [ u ] . id ] || q [ u ] ) && m . colspan || 1 , "*" === m && ( m = p - u ) ) , rb [ Math . min ( p - 1 , u + m - 1 ) ] > b . leftPx && ( bb ( d , n , u , m , t ) , l ++ ) ) , u += 1 < m ? m - 1 : 0 ; l && e . push ( n ) } if ( d . length ) for ( n = document . createElement ( "div" ) , n . innerHTML = d . join ( "" ) ; null != ( c = e . pop ( ) ) ; ) for ( c = J [ c ] ; null != ( r = c . cellRenderQueue . pop ( ) ) ; ) d = n . lastChild , c . rowNode . appendChild ( d ) , c . cellNodesByColumnIdx [ r ] = d } e = ba [ 0 ] ; c = [ ] ; d = [ ] ; n = ! 1 ; q = O ( ) ; r = b . top ; for ( l = b . bottom ; r <= l ; r ++ ) if ( ! J [ r ] ) { pc ++ ; d . push ( r ) ; J [ r ] = { rowNode : null , cellColSpans : [ ] , cellNodesByColumnIdx : [ ] , cellRenderQueue : [ ] } ;
t = c ; u = r ; p = b ; v = q ; m = T ( u ) ; var w = "slick-row" + ( u < v && ! m ? " loading" : "" ) + ( u === H ? " active" : "" ) + ( 1 == u % 2 ? " odd" : " even" ) ; m || ( w += " " + h . addNewRowCssClass ) ; ( v = g . getItemMetadata && g . getItemMetadata ( u ) ) && v . cssClasses && ( w += " " + v . cssClasses ) ; t . push ( "<div class='ui-widget-content " + w + "' style='top:" + ( h . rowHeight * u - s ) + "px'>" ) ; for ( var x = void 0 , y = void 0 , w = 0 , z = f . length ; w < z ; w ++ ) { y = f [ w ] ; x = 1 ; v && v . columns && ( x = ( x = v . columns [ y . id ] || v . columns [ w ] ) && x . colspan || 1 , "*" === x && ( x = z - w ) ) ; if ( rb [ Math . min ( z - 1 , w + x - 1 ) ] > p . leftPx ) { if ( qb [ w ] > p . rightPx ) break ;
bb ( t , u , w , x , m ) } 1 < x && ( w += x - 1 ) } t . push ( "</div>" ) ; D && H === r && ( n = ! 0 ) ; Lc ++ } if ( d . length ) { b = document . createElement ( "div" ) ; b . innerHTML = c . join ( "" ) ; r = 0 ; for ( l = d . length ; r < l ; r ++ ) J [ d [ r ] ] . rowNode = e . appendChild ( b . firstChild ) ; n && ( D = pa ( H , G ) ) } Mb = a . top ; Nb = Math . min ( k ( ) - 1 , a . bottom ) ; Vb ( ) ; ic = U ; Jb = ja ; kc = null } } function qc ( ) { var a = fa [ 0 ] . scrollLeft ; a != Z [ 0 ] . scrollLeft && ( Z [ 0 ] . scrollLeft = a ) } function Ua ( ) { U = Z [ 0 ] . scrollTop ; ja = Z [ 0 ] . scrollLeft ; var a = Math . abs ( U - nb ) , b = Math . abs ( ja - Jc ) ; b && ( Jc = ja , gb [ 0 ] . scrollLeft = ja , ga [ 0 ] . scrollLeft = ja , fa [ 0 ] . scrollLeft =
ja ) ; if ( a ) if ( R = nb < U ? 1 : - 1 , nb = U , a < N ) I ( U + s ) ; else { var c = s ; Oa = ha == N ? 0 : Math . min ( xa - 1 , Math . floor ( ( ua - N ) / ( ha - N ) * U * ( 1 / Ia ) ) ) ; s = Math . round ( Oa * pb ) ; c != s && ia ( ) } if ( b || a ) if ( kc && clearTimeout ( kc ) , 20 < Math . abs ( ic - U ) || 20 < Math . abs ( Jb - ja ) ) h . forceSyncScrolling || Math . abs ( ic - U ) < N && Math . abs ( Jb - ja ) < W ? ca ( ) : kc = setTimeout ( ca , 50 ) , v ( F . onViewportChanged , { } ) ; v ( F . onScroll , { scrollLeft : ja , scrollTop : U } ) } function Wb ( ) { for ( var a = O ( ) ; Mb <= Nb ; ) { var b = 0 <= R ? Mb ++ : Nb -- , c = J [ b ] ; if ( c && ! ( b >= a ) ) { Xa [ b ] || ( Xa [ b ] = { } ) ; kb ( b ) ; for ( var d in c . cellNodesByColumnIdx ) if ( c . cellNodesByColumnIdx . hasOwnProperty ( d ) &&
( d |= 0 , a = f [ d ] , a . asyncPostRender && ! Xa [ b ] [ d ] ) ) { var e = c . cellNodesByColumnIdx [ d ] ; e && a . asyncPostRender ( e , b , T ( b ) , a ) ; Xa [ b ] [ d ] = ! 0 } Dc = setTimeout ( Wb , h . asyncPostRenderDelay ) ; break } } } function yb ( b , c ) { var d , e , f , g , h ; for ( h in J ) { g = c && c [ h ] ; f = b && b [ h ] ; if ( g ) for ( e in g ) f && g [ e ] == f [ e ] || ( d = pa ( h , va [ e ] ) ) && a ( d ) . removeClass ( g [ e ] ) ; if ( f ) for ( e in f ) g && g [ e ] == f [ e ] || ( d = pa ( h , va [ e ] ) ) && a ( d ) . addClass ( f [ e ] ) } } function Xb ( a , b ) { var c = wa [ a ] ; wa [ a ] = b ; yb ( b , c ) ; v ( F . onCellCssStylesChanged , { key : a , hash : b } ) } function mc ( b ) { b = a ( b . target ) . closest ( ".slick-row" ) [ 0 ] ;
b != jc && ( Lb && Lb != b && ( ba [ 0 ] . removeChild ( Lb ) , Lb = null ) , jc = b ) } function rc ( a , b ) { var c = db ( a ) ; if ( ! c || ! Ab ( c . row , c . cell ) ) return ! 1 ; c = v ( F . onDragInit , b , a ) ; return a . isImmediatePropagationStopped ( ) ? c : ! 1 } function Yb ( a , b ) { var c = db ( a ) ; if ( ! c || ! Ab ( c . row , c . cell ) ) return ! 1 ; c = v ( F . onDragStart , b , a ) ; return a . isImmediatePropagationStopped ( ) ? c : ! 1 } function sc ( a , b ) { return v ( F . onDrag , b , a ) } function Tb ( a , b ) { v ( F . onDragEnd , b , a ) } function Zb ( a ) { v ( F . onKeyDown , { row : H , cell : G } , a ) ; var b = a . isImmediatePropagationStopped ( ) ; if ( ! b ) if ( a . shiftKey ||
a . altKey || a . ctrlKey ) 9 != a . which || ! a . shiftKey || a . ctrlKey || a . altKey || ( b = Ha ( ) ) ; else if ( 27 == a . which ) { if ( ! C ( ) . isActive ( ) ) return ; Rb ( ) } else 34 == a . which ? ( ec ( ) , b = ! 0 ) : 33 == a . which ? ( fc ( ) , b = ! 0 ) : 37 == a . which ? b = Hb ( ) : 39 == a . which ? b = Gb ( ) : 38 == a . which ? b = Ib ( ) : 40 == a . which ? b = Qa ( ) : 9 == a . which ? b = Ga ( ) : 13 == a . which && ( h . editable && ( E ? H === O ( ) ? Qa ( ) : Qb ( ) : C ( ) . commitCurrentEdit ( ) && mb ( ) ) , b = ! 0 ) ; if ( b ) { a . stopPropagation ( ) ; a . preventDefault ( ) ; try { a . originalEvent . keyCode = 0 } catch ( c ) { } } } function zb ( b ) { E || ( b . target != document . activeElement || a ( b . target ) . hasClass ( "slick-cell" ) ) &&
La ( ) ; var c = db ( b ) ; ! c || null !== E && H == c . row && G == c . cell || ( v ( F . onClick , { row : c . row , cell : c . cell } , b ) , b . isImmediatePropagationStopped ( ) || G == c . cell && H == c . row || ! qa ( c . row , c . cell ) || C ( ) . isActive ( ) && ! C ( ) . commitCurrentEdit ( ) || ( tb ( c . row , ! 1 ) , Fa ( pa ( c . row , c . cell ) ) ) ) } function $b ( b ) { var c = a ( b . target ) . closest ( ".slick-cell" , ba ) ; 0 !== c . length && ( D === c [ 0 ] && null !== E || v ( F . onContextMenu , { } , b ) ) } function ac ( a ) { var b = db ( a ) ; ! b || null !== E && H == b . row && G == b . cell || ( v ( F . onDblClick , { row : b . row , cell : b . cell } , a ) , a . isImmediatePropagationStopped ( ) ||
h . editable && ob ( b . row , b . cell , ! 0 ) ) } function tc ( b ) { v ( F . onHeaderMouseEnter , { column : a ( this ) . data ( "column" ) } , b ) } function uc ( b ) { v ( F . onHeaderMouseLeave , { column : a ( this ) . data ( "column" ) } , b ) } function vc ( b ) { var c = a ( b . target ) . closest ( ".slick-header-column" , ".slick-header-columns" ) , c = c && c . data ( "column" ) ; v ( F . onHeaderContextMenu , { column : c } , b ) } function wc ( b ) { var c = a ( b . target ) . closest ( ".slick-header-column" , ".slick-header-columns" ) ; ( c = c && c . data ( "column" ) ) && v ( F . onHeaderClick , { column : c } , b ) } function xc ( a ) { v ( F . onMouseEnter ,
{ } , a ) } function bc ( a ) { v ( F . onMouseLeave , { } , a ) } function Ab ( a , b ) { return ! ( 0 > a || a >= O ( ) || 0 > b || b >= f . length ) } function Sb ( a ) { var b = /l\d+/ . exec ( a . className ) ; if ( ! b ) throw "getCellFromNode: cannot get cell - " + a . className ; return parseInt ( b [ 0 ] . substr ( 1 , b [ 0 ] . length - 1 ) , 10 ) } function da ( a ) { for ( var b in J ) if ( J [ b ] . rowNode === a ) return b | 0 ; return null } function db ( b ) { var c = a ( b . target ) . closest ( ".slick-cell" , ba ) ; if ( ! c . length ) return null ; b = da ( c [ 0 ] . parentNode ) ; c = Sb ( c [ 0 ] ) ; return null == b || null == c ? null : { row : b , cell : c } } function eb ( ) { Fa ( null ,
! 1 ) } function La ( ) { - 1 == Fc ? Ob [ 0 ] . focus ( ) : lc [ 0 ] . focus ( ) } function lb ( a , b , c ) { tb ( a , c ) ; c = Ma ( a , b ) ; a = qb [ b ] ; b = rb [ b + ( 1 < c ? c - 1 : 0 ) ] ; c = ja + W ; a < ja ? ( Z . scrollLeft ( a ) , Ua ( ) , ca ( ) ) : b > c && ( Z . scrollLeft ( Math . min ( a , b - Z [ 0 ] . clientWidth ) ) , Ua ( ) , ca ( ) ) } function Fa ( b , c ) { null !== D && ( ta ( ) , a ( D ) . removeClass ( "active" ) , J [ H ] && a ( J [ H ] . rowNode ) . removeClass ( "active" ) ) ; var d = D !== b ; D = b ; null != D ? ( H = da ( D . parentNode ) , G = ib = Sb ( D ) , null == c && ( c = H == O ( ) || h . autoEdit ) , a ( D ) . addClass ( "active" ) , a ( J [ H ] . rowNode ) . addClass ( "active" ) , h . editable && c && cc ( H , G ) && ( clearTimeout ( Ec ) ,
h . asyncEditorLoading ? Ec = setTimeout ( function ( ) { mb ( ) } , h . asyncEditorLoadDelay ) : mb ( ) ) ) : H = G = null ; d && v ( F . onActiveCellChanged , dc ( ) ) } function cc ( a , b ) { var c = O ( ) ; return a < c && ! T ( a ) || f [ b ] . cannotTriggerInsert && a >= c || ! X ( a , b ) ? ! 1 : ! 0 } function ta ( ) { if ( E ) { v ( F . onBeforeCellEditorDestroy , { editor : E } ) ; E . destroy ( ) ; E = null ; if ( D ) { var b = T ( H ) ; a ( D ) . removeClass ( "editable invalid" ) ; if ( b ) { var c = f [ G ] , d = M ( H , c ) ; D . innerHTML = d ( H , G , K ( b , c ) , c , b ) ; xb ( H ) } } if ( navigator . userAgent . toLowerCase ( ) . match ( /msie/ ) ) if ( document . selection && document . selection . empty ) try { document . selection . empty ( ) } catch ( e ) { } else window . getSelection &&
( b = window . getSelection ( ) ) && b . removeAllRanges && b . removeAllRanges ( ) ; C ( ) . deactivate ( Ub ) } } function mb ( b ) { if ( D ) { if ( ! h . editable ) throw "Grid : makeActiveCellEditable : should never get called when options.editable is false" ; clearTimeout ( Ec ) ; if ( cc ( H , G ) ) { var c = f [ G ] , d = T ( H ) ; ! 1 === v ( F . onBeforeEditCell , { row : H , cell : G , item : d , column : c } ) ? La ( ) : ( C ( ) . activate ( Ub ) , a ( D ) . addClass ( "editable" ) , b || ( D . innerHTML = "" ) , E = new ( b || X ( H , G ) ) ( { grid : F , gridPosition : ya ( Q [ 0 ] ) , position : ya ( D ) , container : D , column : c , item : d || { } , commitChanges : Qb ,
cancelChanges : Rb } ) , d && E . loadValue ( d ) , Ic = E . serializeValue ( ) , E . position && Cb ( ) ) } } } function Qb ( ) { C ( ) . commitCurrentEdit ( ) && ( La ( ) , h . autoEdit && Qa ( ) ) } function Rb ( ) { C ( ) . cancelCurrentEdit ( ) && La ( ) } function ya ( b ) { var c = { top : b . offsetTop , left : b . offsetLeft , bottom : 0 , right : 0 , width : a ( b ) . outerWidth ( ) , height : a ( b ) . outerHeight ( ) , visible : ! 0 } ; c . bottom = c . top + c . height ; c . right = c . left + c . width ; for ( var d = b . offsetParent ; ( b = b . parentNode ) != document . body ; ) c . visible && b . scrollHeight != b . offsetHeight && "visible" != a ( b ) . css ( "overflowY" ) &&
( c . visible = c . bottom > b . scrollTop && c . top < b . scrollTop + b . clientHeight ) , c . visible && b . scrollWidth != b . offsetWidth && "visible" != a ( b ) . css ( "overflowX" ) && ( c . visible = c . right > b . scrollLeft && c . left < b . scrollLeft + b . clientWidth ) , c . left -= b . scrollLeft , c . top -= b . scrollTop , b === d && ( c . left += b . offsetLeft , c . top += b . offsetTop , d = b . offsetParent ) , c . bottom = c . top + c . height , c . right = c . left + c . width ; return c } function Bb ( ) { return ya ( D ) } function Cb ( ) { if ( D && ( v ( F . onActiveCellPositionChanged , { } ) , E ) ) { var a = Bb ( ) ; E . show && E . hide && ( a . visible ? E . show ( ) :
E . hide ( ) ) ; E . position && E . position ( a ) } } function dc ( ) { return D ? { row : H , cell : G } : null } function tb ( a , b ) { var d = a * h . rowHeight , e = ( a + 1 ) * h . rowHeight - N + ( ub ? c . height : 0 ) ; ( a + 1 ) * h . rowHeight > U + N + s ? ( I ( b ? d : e ) , ca ( ) ) : a * h . rowHeight < U + s && ( I ( b ? e : d ) , ca ( ) ) } function Db ( a ) { a *= hc ; I ( ( Ba ( U ) + a ) * h . rowHeight ) ; ca ( ) ; if ( h . enableCellNavigation && null != H ) { a = H + a ; var b = k ( ) ; a >= b && ( a = b - 1 ) ; 0 > a && ( a = 0 ) ; for ( var b = 0 , c = null , d = ib ; b <= ib ; ) qa ( a , b ) && ( c = b ) , b += Ma ( a , b ) ; null !== c ? ( Fa ( pa ( a , c ) ) , ib = d ) : eb ( ) } } function ec ( ) { Db ( 1 ) } function fc ( ) { Db ( - 1 ) } function Ma ( a ,
b ) { var c = g . getItemMetadata && g . getItemMetadata ( a ) ; if ( ! c || ! c . columns ) return 1 ; c = ( c = c . columns [ f [ b ] . id ] || c . columns [ b ] ) && c . colspan ; return c = "*" === c ? f . length - b : c || 1 } function gc ( a ) { for ( var b = 0 ; b < f . length ; ) { if ( qa ( a , b ) ) return b ; b += Ma ( a , b ) } return null } function Eb ( a , b , c ) { if ( b >= f . length ) return null ; do b += Ma ( a , b ) ; while ( b < f . length && ! qa ( a , b ) ) ; return b < f . length ? { row : a , cell : b , posX : b } : null } function Fb ( a , b , c ) { if ( 0 >= b ) return null ; c = gc ( a ) ; if ( null === c || c >= b ) return null ; for ( a = { row : a , cell : c , posX : c } ; ; ) { c = Eb ( a . row , a . cell ,
a . posX ) ; if ( ! c ) return null ; if ( c . cell >= b ) return a ; a = c } } function yc ( a , b , c ) { for ( var d , e = k ( ) ; ; ) { if ( ++ a >= e ) return null ; for ( d = b = 0 ; b <= c ; ) d = b , b += Ma ( a , b ) ; if ( qa ( a , d ) ) return { row : a , cell : d , posX : c } } } function zc ( a , b , c ) { for ( var d ; ; ) { if ( 0 > -- a ) return null ; for ( d = b = 0 ; b <= c ; ) d = b , b += Ma ( a , b ) ; if ( qa ( a , d ) ) return { row : a , cell : d , posX : c } } } function Pb ( a , b , c ) { if ( null == a && null == b && ( a = b = c = 0 , qa ( a , b ) ) ) return { row : a , cell : b , posX : b } ; if ( b = Eb ( a , b , c ) ) return b ; b = null ; for ( c = k ( ) ; ++ a < c ; ) if ( b = gc ( a ) , null !== b ) return { row : a , cell : b , posX : b } ; return null }
function Ac ( a , b , c ) { if ( null == a && null == b && ( a = k ( ) - 1 , b = c = f . length - 1 , qa ( a , b ) ) ) return { row : a , cell : b , posX : b } ; for ( var d , e ; ! d && ! ( d = Fb ( a , b , c ) ) ; ) { if ( 0 > -- a ) return null ; b = 0 ; e = a ; for ( var g = 0 , h = null ; g < f . length ; ) qa ( e , g ) && ( h = g ) , g += Ma ( e , g ) ; e = h ; null !== e && ( d = { row : a , cell : e , posX : e } ) } return d } function Gb ( ) { return Na ( "right" ) } function Hb ( ) { return Na ( "left" ) } function Qa ( ) { return Na ( "down" ) } function Ib ( ) { return Na ( "up" ) } function Ga ( ) { return Na ( "next" ) } function Ha ( ) { return Na ( "prev" ) } function Na ( a ) { if ( ! h . enableCellNavigation ||
! D && "prev" != a && "next" != a ) return ! 1 ; if ( ! C ( ) . commitCurrentEdit ( ) ) return ! 0 ; La ( ) ; Fc = { up : - 1 , down : 1 , left : - 1 , right : 1 , prev : - 1 , next : 1 } [ a ] ; if ( a = ( 0 , { up : zc , down : yc , left : Fb , right : Eb , prev : Ac , next : Pb } [ a ] ) ( H , G , ib ) ) { var b = a . row == O ( ) ; lb ( a . row , a . cell , ! b ) ; Fa ( pa ( a . row , a . cell ) ) ; ib = a . posX ; return ! 0 } Fa ( pa ( H , G ) ) ; return ! 1 } function pa ( a , b ) { return J [ a ] ? ( kb ( a ) , J [ a ] . cellNodesByColumnIdx [ b ] ) : null } function qa ( a , b ) { if ( ! h . enableCellNavigation || a >= k ( ) || 0 > a || b >= f . length || 0 > b ) return ! 1 ; var c = g . getItemMetadata && g . getItemMetadata ( a ) ; return c &&
"boolean" === typeof c . focusable ? c . focusable : ( c = c && c . columns ) && c [ f [ b ] . id ] && "boolean" === typeof c [ f [ b ] . id ] . focusable ? c [ f [ b ] . id ] . focusable : c && c [ b ] && "boolean" === typeof c [ b ] . focusable ? c [ b ] . focusable : f [ b ] . focusable } function fb ( a , b ) { if ( a >= O ( ) || 0 > a || b >= f . length || 0 > b ) return ! 1 ; var c = g . getItemMetadata && g . getItemMetadata ( a ) ; return c && "boolean" === typeof c . selectable ? c . selectable : ( c = c && c . columns && ( c . columns [ f [ b ] . id ] || c . columns [ b ] ) ) && "boolean" === typeof c . selectable ? c . selectable : f [ b ] . selectable } function ob ( a , b , c ) { Y &&
qa ( a , b ) && C ( ) . commitCurrentEdit ( ) && ( lb ( a , b , ! 1 ) , b = pa ( a , b ) , Fa ( b , c || a === O ( ) || h . autoEdit ) , E || La ( ) ) } function Cc ( ) { var b = T ( H ) , c = f [ G ] ; if ( E ) { if ( E . isValueChanged ( ) ) { var d = E . validate ( ) ; if ( d . valid ) return H < O ( ) ? ( d = { row : H , cell : G , editor : E , serializedValue : E . serializeValue ( ) , prevSerializedValue : Ic , execute : function ( ) { this . editor . applyValue ( b , this . serializedValue ) ; oa ( this . row ) ; v ( F . onCellChange , { row : H , cell : G , item : b } ) } , undo : function ( ) { this . editor . applyValue ( b , this . prevSerializedValue ) ; oa ( this . row ) ; v ( F . onCellChange , { row : H ,
cell : G , item : b } ) } } , h . editCommandHandler ? ( ta ( ) , h . editCommandHandler ( b , c , d ) ) : ( d . execute ( ) , ta ( ) ) ) : ( d = { } , E . applyValue ( d , E . serializeValue ( ) ) , ta ( ) , v ( F . onAddNewRow , { item : d , column : c } ) ) , ! C ( ) . isActive ( ) ; a ( D ) . removeClass ( "invalid" ) ; a ( D ) . width ( ) ; a ( D ) . addClass ( "invalid" ) ; v ( F . onValidationError , { editor : E , cellNode : D , validationResults : d , row : H , cell : G , column : c } ) ; E . focus ( ) ; return ! 1 } ta ( ) } return ! 0 } function Va ( ) { ta ( ) ; return ! 0 } function sb ( a ) { for ( var b = [ ] , c = f . length - 1 , d = 0 ; d < a . length ; d ++ ) b . push ( new Slick . Range ( a [ d ] , 0 , a [ d ] ,
c ) ) ; return b } function la ( ) { if ( ! Ca ) throw "Selection model is not set" ; return Bc } var Pa = { explicitInitialization : ! 1 , rowHeight : 25 , defaultColumnWidth : 80 , enableAddRow : ! 1 , leaveSpaceForNewRows : ! 1 , editable : ! 1 , autoEdit : ! 0 , enableCellNavigation : ! 0 , enableColumnReorder : ! 0 , asyncEditorLoading : ! 1 , asyncEditorLoadDelay : 100 , forceFitColumns : ! 1 , enableAsyncPostRender : ! 1 , asyncPostRenderDelay : 50 , autoHeight : ! 1 , editorLock : Slick . GlobalEditorLock , showHeaderRow : ! 1 , headerRowHeight : 25 , showTopPanel : ! 1 , topPanelHeight : 25 , formatterFactory : null ,
editorFactory : null , cellFlashingCssClass : "flashing" , selectedCellCssClass : "selected" , multiSelect : ! 0 , enableTextSelectionOnCells : ! 1 , dataItemColumnValueExtractor : null , fullWidthRows : ! 1 , multiColumnSort : ! 1 , defaultFormatter : function ( a , b , c , d , e ) { return null == c ? "" : ( c + "" ) . replace ( /&/g , "&" ) . replace ( /</g , "<" ) . replace ( />/g , ">" ) } , forceSyncScrolling : ! 1 , addNewRowCssClass : "new-row" } , Kb = { name : "" , resizable : ! 0 , sortable : ! 1 , minWidth : 30 , rerenderOnResize : ! 1 , headerCssClass : null , defaultSortAsc : ! 0 , focusable : ! 0 , selectable : ! 0 } ,
ua , ha , Ia , xa , pb , Oa = 0 , s = 0 , R = 1 , Y = ! 1 , Q , ma = "slickgrid_" + Math . round ( 1E6 * Math . random ( ) ) , F = this , Ob , lc , gb , V , Aa , fa , Gc , ga , Hc , Z , ba , Ya , jb , Za , nc , oc , N , W , aa , ub , Ea , ra = 0 , Ja = 0 , $a = 0 , ab = 0 , Ra , Fc = 1 , ib , H , G , D = null , E = null , Ic , Ub , J = { } , pc = 0 , hc , nb = 0 , U = 0 , ic = 0 , Jb = 0 , Jc = 0 , ja = 0 , Ca , Bc = [ ] , Wa = [ ] , wa = { } , va = { } , ka = [ ] , qb = [ ] , rb = [ ] , Ec = null , kc = null , Dc = null , Xa = { } , Nb = null , Mb = null , Lc = 0 , Kc = 0 , jc , Lb ; this . debug = function ( ) { var a ; a = "\ncounter_rows_rendered: " + Lc ; a += "\ncounter_rows_removed: " + Kc ; a += "\nrenderedRows: " + pc ; a += "\nnumVisibleRows: " + hc ;
a += "\nmaxSupportedCssHeight: " + b ; a += "\nn(umber of pages): " + xa ; a += "\n(current) page: " + Oa ; a += "\npage height (ph): " + Ia ; a += "\nvScrollDir: " + R ; alert ( a ) } ; this . eval = function ( a ) { return eval ( a ) } ; a . extend ( this , { slickGridVersion : "2.1" , onScroll : new Slick . Event , onSort : new Slick . Event , onHeaderMouseEnter : new Slick . Event , onHeaderMouseLeave : new Slick . Event , onHeaderContextMenu : new Slick . Event , onHeaderClick : new Slick . Event , onHeaderCellRendered : new Slick . Event , onBeforeHeaderCellDestroy : new Slick . Event , onHeaderRowCellRendered : new Slick . Event ,
onBeforeHeaderRowCellDestroy : new Slick . Event , onMouseEnter : new Slick . Event , onMouseLeave : new Slick . Event , onClick : new Slick . Event , onDblClick : new Slick . Event , onContextMenu : new Slick . Event , onKeyDown : new Slick . Event , onAddNewRow : new Slick . Event , onValidationError : new Slick . Event , onViewportChanged : new Slick . Event , onColumnsReordered : new Slick . Event , onColumnsResized : new Slick . Event , onCellChange : new Slick . Event , onBeforeEditCell : new Slick . Event , onBeforeCellEditorDestroy : new Slick . Event , onBeforeDestroy : new Slick . Event ,
onActiveCellChanged : new Slick . Event , onActiveCellPositionChanged : new Slick . Event , onDragInit : new Slick . Event , onDragStart : new Slick . Event , onDrag : new Slick . Event , onDragEnd : new Slick . Event , onSelectedRowsChanged : new Slick . Event , onCellCssStylesChanged : new Slick . Event , registerPlugin : function ( a ) { Wa . unshift ( a ) ; a . init ( F ) } , unregisterPlugin : l , getColumns : function ( ) { return f } , setColumns : Da , getColumnIndex : L , updateColumnHeader : function ( a , b , c ) { if ( Y && ( a = va [ a ] , null != a ) ) { var d = f [ a ] , e = V . children ( ) . eq ( a ) ; e && ( void 0 !== b &&
( f [ a ] . name = b ) , void 0 !== c && ( f [ a ] . toolTip = c ) , v ( F . onBeforeHeaderCellDestroy , { node : e [ 0 ] , column : d } ) , e . attr ( "title" , c || "" ) . children ( ) . eq ( 0 ) . html ( b ) , v ( F . onHeaderCellRendered , { node : e [ 0 ] , column : d } ) ) } } , setSortColumn : function ( a , b ) { za ( [ { columnId : a , sortAsc : b } ] ) } , setSortColumns : za , getSortColumns : function ( ) { return ka } , autosizeColumns : P , getOptions : function ( ) { return h } , setOptions : function ( b ) { C ( ) . commitCurrentEdit ( ) && ( ta ( ) , h . enableAddRow !== b . enableAddRow && vb ( O ( ) ) , h = a . extend ( h , b ) , h . autoHeight && ( h . leaveSpaceForNewRows =
! 1 ) , Z . css ( "overflow-y" , h . autoHeight ? "hidden" : "auto" ) , ca ( ) ) } , getData : function ( ) { return g } , getDataLength : O , getDataItem : T , setData : function ( a , b ) { g = a ; ia ( ) ; cb ( ) ; b && I ( 0 ) } , getSelectionModel : function ( ) { return Ca } , setSelectionModel : function ( a ) { Ca && ( Ca . onSelectedRangesChanged . unsubscribe ( hb ) , Ca . destroy && Ca . destroy ( ) ) ; if ( Ca = a ) Ca . init ( F ) , Ca . onSelectedRangesChanged . subscribe ( hb ) } , getSelectedRows : la , setSelectedRows : function ( a ) { if ( ! Ca ) throw "Selection model is not set" ; Ca . setSelectedRanges ( sb ( a ) ) } , getContainerNode : function ( ) { return Q . get ( 0 ) } ,
render : ca , invalidate : function ( ) { cb ( ) ; ia ( ) ; ca ( ) } , invalidateRow : vb , invalidateRows : Ka , invalidateAllRows : ia , updateCell : function ( a , b ) { var c = pa ( a , b ) ; if ( c ) { var d = f [ b ] , e = T ( a ) ; E && H === a && G === b ? E . loadValue ( e ) : ( c . innerHTML = e ? M ( a , d ) ( a , b , K ( e , d ) , d , e ) : "" , xb ( a ) ) } } , updateRow : oa , getViewport : Ta , getRenderedRange : wb , resizeCanvas : sa , updateRowCount : cb , scrollRowIntoView : tb , scrollRowToTop : function ( a ) { I ( a * h . rowHeight ) ; ca ( ) } , scrollCellIntoView : lb , getCanvasNode : function ( ) { return ba [ 0 ] } , focus : La , getCellFromPoint : function ( a , b ) { for ( var c =
Ba ( b ) , d = 0 , e = 0 , g = 0 ; g < f . length && e < a ; g ++ ) e += f [ g ] . width , d ++ ; 0 > d && ( d = 0 ) ; return { row : c , cell : d - 1 } } , getCellFromEvent : db , getActiveCell : dc , setActiveCell : function ( a , b ) { ! Y || a > O ( ) || 0 > a || b >= f . length || 0 > b || ! h . enableCellNavigation || ( lb ( a , b , ! 1 ) , Fa ( pa ( a , b ) , ! 1 ) ) } , getActiveCellNode : function ( ) { return D } , getActiveCellPosition : Bb , resetActiveCell : eb , editActiveCell : mb , getCellEditor : function ( ) { return E } , getCellNode : pa , getCellNodeBox : function ( a , b ) { if ( ! Ab ( a , b ) ) return null ; for ( var c = h . rowHeight * a - s , d = c + h . rowHeight - 1 , e = 0 , g = 0 ; g <
b ; g ++ ) e += f [ g ] . width ; return { top : c , left : e , bottom : d , right : e + f [ b ] . width } } , canCellBeSelected : fb , canCellBeActive : qa , navigatePrev : Ha , navigateNext : Ga , navigateUp : Ib , navigateDown : Qa , navigateLeft : Hb , navigateRight : Gb , navigatePageUp : fc , navigatePageDown : ec , gotoCell : ob , getTopPanel : function ( ) { return Hc [ 0 ] } , setTopPanelVisibility : function ( a ) { h . showTopPanel != a && ( ( h . showTopPanel = a ) ? ga . slideDown ( "fast" , sa ) : ga . slideUp ( "fast" , sa ) ) } , setHeaderRowVisibility : function ( a ) { h . showHeaderRow != a && ( ( h . showHeaderRow = a ) ? fa . slideDown ( "fast" ,
sa ) : fa . slideUp ( "fast" , sa ) ) } , getHeaderRow : function ( ) { return Aa [ 0 ] } , getHeaderRowColumn : function ( a ) { a = va [ a ] ; return ( a = Aa . children ( ) . eq ( a ) ) && a [ 0 ] } , getGridPosition : function ( ) { return ya ( Q [ 0 ] ) } , flashCell : function ( b , c , d ) { d = d || 100 ; if ( J [ b ] ) { var e = a ( pa ( b , c ) ) , f = function ( a ) { a && setTimeout ( function ( ) { e . queue ( function ( ) { e . toggleClass ( h . cellFlashingCssClass ) . dequeue ( ) ; f ( a - 1 ) } ) } , d ) } ; f ( 4 ) } } , addCellCssStyles : function ( a , b ) { if ( wa [ a ] ) throw "addCellCssStyles: cell CSS hash with key '" + a + "' already exists." ; wa [ a ] = b ; yb ( b , null ) ;
v ( F . onCellCssStylesChanged , { key : a , hash : b } ) } , setCellCssStyles : Xb , removeCellCssStyles : function ( a ) { wa [ a ] && ( yb ( null , wa [ a ] ) , delete wa [ a ] , v ( F . onCellCssStylesChanged , { key : a , hash : null } ) ) } , getCellCssStyles : function ( a ) { return wa [ a ] } , init : d , destroy : function ( ) { C ( ) . cancelCurrentEdit ( ) ; v ( F . onBeforeDestroy , { } ) ; for ( var a = Wa . length ; a -- ; ) l ( Wa [ a ] ) ; h . enableColumnReorder && V . filter ( ":ui-sortable" ) . sortable ( "destroy" ) ; jb && ( jb . unbind ( "scroll." + ma ) , jb = null ) ; Q . unbind ( ".slickgrid" ) ; Ya . remove ( ) ; Za = null ; ba . unbind ( "draginit dragstart dragend drag" ) ;
Q . empty ( ) . removeClass ( ma ) } , getEditorLock : C , getEditController : function ( ) { return Ub } } ) ; ( function ( ) { Q = a ( e ) ; if ( 1 > Q . length ) throw Error ( "SlickGrid requires a valid container, " + e + " does not exist in the DOM." ) ; var g ; if ( ! ( g = b ) ) { g = 1E6 ; for ( var k = navigator . userAgent . toLowerCase ( ) . match ( /firefox/ ) ? 6E6 : 1E9 , l = a ( "<div style='display:none' />" ) . appendTo ( document . body ) ; ; ) { var n = 2 * g ; l . css ( "height" , n ) ; if ( n > k || l . height ( ) !== n ) break ; else g = n } l . remove ( ) } b = g ; ( g = c ) || ( g = a ( "<div style='position:absolute; top:-10000px; left:-10000px; width:100px; height:100px; overflow:scroll;'></div>" ) . appendTo ( "body" ) ,
k = { width : g . width ( ) - g [ 0 ] . clientWidth , height : g . height ( ) - g [ 0 ] . clientHeight } , g . remove ( ) , g = k ) ; c = g ; h = a . extend ( { } , Pa , h ) ; h . autoHeight && ( h . leaveSpaceForNewRows = ! 1 ) ; Kb . width = h . defaultColumnWidth ; va = { } ; for ( g = 0 ; g < f . length ; g ++ ) k = f [ g ] = a . extend ( { } , Kb , f [ g ] ) , va [ k . id ] = g , k . minWidth && k . width < k . minWidth && ( k . width = k . minWidth ) , k . maxWidth && k . width > k . maxWidth && ( k . width = k . maxWidth ) ; if ( h . enableColumnReorder && ! a . fn . sortable ) throw Error ( "SlickGrid's 'enableColumnReorder = true' option requires jquery-ui.sortable module to be loaded" ) ;
Ub = { commitCurrentEdit : Cc , cancelCurrentEdit : Va } ; Q . empty ( ) . css ( "overflow" , "hidden" ) . css ( "outline" , 0 ) . addClass ( ma ) . addClass ( "ui-widget" ) ; /relative|absolute|fixed/ . test ( Q . css ( "position" ) ) || Q . css ( "position" , "relative" ) ; Ob = a ( "<div tabIndex='0' hideFocus style='position:fixed;width:0;height:0;top:0;left:0;outline:0;'></div>" ) . appendTo ( Q ) ; gb = a ( "<div class='slick-header ui-state-default' style='overflow:hidden;position:relative;' />" ) . appendTo ( Q ) ; V = a ( "<div class='slick-header-columns' style='left:-1000px' />" ) . appendTo ( gb ) ;
V . width ( m ( ) ) ; fa = a ( "<div class='slick-headerrow ui-state-default' style='overflow:hidden;position:relative;' />" ) . appendTo ( Q ) ; Aa = a ( "<div class='slick-headerrow-columns' />" ) . appendTo ( fa ) ; Gc = a ( "<div style='display:block;height:1px;position:absolute;top:0;left:0;'></div>" ) . css ( "width" , q ( ) + c . width + "px" ) . appendTo ( fa ) ; ga = a ( "<div class='slick-top-panel-scroller ui-state-default' style='overflow:hidden;position:relative;' />" ) . appendTo ( Q ) ; Hc = a ( "<div class='slick-top-panel' style='width:10000px' />" ) . appendTo ( ga ) ;
h . showTopPanel || ga . hide ( ) ; h . showHeaderRow || fa . hide ( ) ; Z = a ( "<div class='slick-viewport' style='width:100%;overflow:auto;outline:0;position:relative;;'>" ) . appendTo ( Q ) ; Z . css ( "overflow-y" , h . autoHeight ? "hidden" : "auto" ) ; ba = a ( "<div class='grid-canvas' />" ) . appendTo ( Z ) ; lc = Ob . clone ( ) . appendTo ( Q ) ; h . explicitInitialization || d ( ) } ) ( ) } } } ) ; var c , b } ) ( jQuery ) ;
( function ( a ) { a . extend ( ! 0 , window , { Slick : { Controls : { EnhancementPager : function ( c ) { function b ( b , f , g , h ) { c . container . html ( "" ) ; a ( '<span class="perpage" title="Records count of per page"><select class="recordsperpage"> <option value="10">10</option> <option value="25">25</option> <option value="50">50</option> <option value="100">100</option> </select></span> <span class="spacer"> </span> <span class="pagelabel" style="vertical-align: middle;">Page</span> <input class="currentpage" title="Current Page" type="text" value="1" style="vertical-align: middle;width:7px" /> <span style="vertical-align: middle;"> / </span> <span id="totalpages" style="vertical-align: middle;">#</span> <span class="spacer"> </span> <a id="dataloading" href="javascript:;" class="button-base-class refresh" title="Refresh"></a> <span class="spacer"> </span> <span class="recordstate"><span class="recordstatelabel">Display</span> <span id="recordsegment"></span> / <span id="totalrecords"></span></span> <a href="javascript:;" class="button-base-class currentrecords" title="Show/Hide Current Records State"></a>' ) . appendTo ( c . container ) ; a ( ".currentpage" ) . keydown ( function ( b ) { 13 ==
b . keyCode && ( b = 1 , isNaN ( parseInt ( a ( ".currentpage" ) . val ( ) ) ) || ( b = parseInt ( a ( ".currentpage" ) . val ( ) ) , 1 > b && ( b = 1 ) , b > parseInt ( a ( "#totalpages" ) . text ( ) ) && ( b = parseInt ( a ( "#totalpages" ) . text ( ) ) ) ) , a ( ".currentpage" ) . val ( b ) , e ( b , c . remoteUrl , f , c . params , h ) ) } ) ; "slider" == f ? ( a ( '<span class="button-base-class pageminus" title="Previous Page"> </span> <span class="pagerslider"></span> <span class="button-base-class pageplus" title="Next Page"> </span> <span class="spacer"> </span>' ) . insertBefore ( a ( ".pagelabel" ) ) ,
null !== g && void 0 !== g && a . each ( g , function ( b , c ) { "resultset_first" != b && "resultset_prev" != b && "resultset_next" != b && "resultset_last" != b && ( "pagelabel" == b || "recordstatelabel" == b ? a ( "." + b ) . text ( c ) : a ( "." + b ) . attr ( "title" , c ) ) } ) , a ( ".pagerslider" ) . slider ( { range : "min" , value : 1 , step : 1 , min : 1 , max : b , slide : function ( b , c ) { a ( ".currentpage" ) . css ( "width" , 7 * c . value . toString ( ) . length + "px" ) ; var d = c . value ; a ( ".currentpage" ) . val ( d ) } , stop : function ( a , b ) { e ( b . value , c . remoteUrl , f , c . params , h ) } } ) , a ( ".pageplus" ) . click ( function ( ) { isNaN ( parseInt ( a ( ".currentpage" ) . val ( ) ) ) &&
a ( ".currentpage" ) . val ( 1 ) ; var b = parseInt ( a ( ".currentpage" ) . val ( ) ) + 1 ; b > parseInt ( a ( "#totalpages" ) . text ( ) ) && ( b = parseInt ( a ( "#totalpages" ) . text ( ) ) ) ; e ( b , c . remoteUrl , f , c . params , h ) } ) , a ( ".pageminus" ) . click ( function ( ) { isNaN ( parseInt ( a ( ".currentpage" ) . val ( ) ) ) && a ( ".currentpage" ) . val ( 1 ) ; var b = parseInt ( a ( ".currentpage" ) . val ( ) ) - 1 ; 1 > b && ( b = 1 ) ; e ( b , c . remoteUrl , f , c . params , h ) } ) ) : ( a ( '<a href="javascript:;" class="button-base-class resultset_first" title="First Page"></a> <a href="javascript:;" class="button-base-class resultset_prev" title="Previous Page"></a> <span class="spacer"> </span>' ) . insertBefore ( a ( ".pagelabel" ) ) ,
a ( '<span class="spacer"> </span> <a href="javascript:;" class="button-base-class resultset_next" title="Next Page"></a> <a href="javascript:;" class="button-base-class resultset_last" title="Last Page"></a>' ) . insertAfter ( a ( "#totalpages" ) ) , null !== g && void 0 !== g && a . each ( g , function ( b , c ) { "pageminus" != b && "pageplus" != b && ( "pagelabel" == b || "recordstatelabel" == b ? a ( "." + b ) . text ( c ) : a ( "." + b ) . attr ( "title" , c ) ) } ) , a ( ".resultset_first" ) . click ( function ( ) { e ( 1 , c . remoteUrl , f , c . params , h ) } ) ,
a ( ".resultset_prev" ) . click ( function ( ) { isNaN ( parseInt ( a ( ".currentpage" ) . val ( ) ) ) && a ( ".currentpage" ) . val ( 1 ) ; var b = parseInt ( a ( ".currentpage" ) . val ( ) ) - 1 ; 1 > b && ( b = 1 ) ; e ( b , c . remoteUrl , f , c . params , h ) } ) , a ( ".resultset_next" ) . click ( function ( ) { isNaN ( parseInt ( a ( ".currentpage" ) . val ( ) ) ) && a ( ".currentpage" ) . val ( 1 ) ; var b = parseInt ( a ( ".currentpage" ) . val ( ) ) + 1 ; b > parseInt ( a ( "#totalpages" ) . text ( ) ) && ( b = parseInt ( a ( "#totalpages" ) . text ( ) ) ) ; e ( b , c . remoteUrl , f , c . params , h ) } ) , a ( ".resultset_last" ) . click ( function ( ) { var b = parseInt ( a ( "#totalpages" ) . text ( ) ) ;
e ( b , c . remoteUrl , f , c . params , h ) } ) ) ; a ( ".recordsperpage" ) . dropkick ( { change : function ( a , b ) { e ( 1 , c . remoteUrl , f , c . params , h ) } } ) ; a ( ".refresh" ) . click ( function ( ) { isNaN ( parseInt ( a ( ".currentpage" ) . val ( ) ) ) && a ( ".currentpage" ) . val ( 1 ) ; var b = parseInt ( a ( ".currentpage" ) . val ( ) ) ; 1 > b && ( b = 1 ) ; b > parseInt ( a ( "#totalpages" ) . text ( ) ) && ( b = parseInt ( a ( "#totalpages" ) . text ( ) ) ) ; e ( b , c . remoteUrl , f , c . params , h ) } ) ; a ( ".currentrecords" ) . click ( function ( ) { a ( ".recordstate" ) . toggle ( "fast" ) } ) } function e ( b , e , f , g , h ) { var n = a ( ".recordsperpage" ) . val ( ) ,
t = { } ; t . pageSize = n ; t . pageIndex = b ; null !== g && void 0 != g && a . each ( g , function ( a , b ) { t [ a ] = b } ) ; a . ajax ( { url : e , type : "POST" , cache : ! 1 , dataType : "text" , crossDomain : ! 0 , data : t , timeout : h , beforeSend : function ( ) { a ( "#dataloading" ) . attr ( "disabled" , "disabled" ) ; a ( "#dataloading" ) . removeClass ( "refresh" ) ; a ( "#dataloading" ) . addClass ( "dataloading" ) } , error : function ( a , b , d ) { c . container . html ( '<span style="position:absolute;top:5px;left:5px;color:red;">Error! ' + d + "</span>" ) } , success : function ( e ) { var g = a . evalJSON ( e ) . Total ; e = a . evalJSON ( a . evalJSON ( e ) . Rows ) ;
c . datagrid . setData ( e ) ; c . datagrid . render ( ) ; a ( ".currentpage" ) . css ( "width" , 7 * b . toString ( ) . length + "px" ) ; a ( ".currentpage" ) . val ( b ) ; e = parseInt ( a ( ".recordsperpage" ) . val ( ) ) ; var h = ( b - 1 ) * e + 1 , l = h + e - 1 ; l > g && ( l = g ) ; a ( "#recordsegment" ) . text ( h + "-" + l ) ; a ( "#totalrecords" ) . text ( g ) ; g = parseInt ( Math . floor ( parseFloat ( g / e ) ) + 1 ) ; a ( "#totalpages" ) . text ( g ) ; "slider" == f && ( a ( ".pagerslider" ) . slider ( "value" , b ) , a ( ".pagerslider" ) . slider ( "option" , "max" , g ) ) ; a ( "#dataloading" ) . removeAttr ( "disabled" ) ; a ( "#dataloading" ) . removeClass ( "dataloading" ) ;
a ( "#dataloading" ) . addClass ( "refresh" ) } } ) } var g = parseInt ( c . waiting ) ; isNaN ( g ) && ( g = 3E4 ) ; var f = { pageSize : 10 , pageIndex : 1 } , h ; for ( h in c . params ) f [ h ] = c . params [ h ] ; a . ajax ( { url : c . remoteUrl , type : "POST" , cache : ! 1 , data : f , dataType : "text" , crossDomain : ! 1 , timeout : g , beforeSend : function ( ) { c . container . html ( '<span class="dataloading"> </span>' ) } , error : function ( a , b , e ) { c . container . html ( '<span style="position:absolute;top:5px;left:5px;color:red;">Error! ' + e + "</span>" ) } , success : function ( d ) { d = a . evalJSON ( d ) . Total ; pagecount =
parseInt ( Math . floor ( parseFloat ( d / 10 ) ) + 1 ) ; b ( pagecount , c . pagerType , c . trans , g ) ; e ( 1 , c . remoteUrl , c . pagerType , c . params , g ) } } ) } } } } ) } ) ( jQuery ) ; var hexcase = 0 , b64pad = "" ; function hex _sha1 ( a ) { return rstr2hex ( rstr _sha1 ( str2rstr _utf8 ( a ) ) ) } function hex _hmac _sha1 ( a , c ) { return rstr2hex ( rstr _hmac _sha1 ( str2rstr _utf8 ( a ) , str2rstr _utf8 ( c ) ) ) } function sha1 _vm _test ( ) { return "a9993e364706816aba3e25717850c26c9cd0d89d" == hex _sha1 ( "abc" ) . toLowerCase ( ) } function rstr _sha1 ( a ) { return binb2rstr ( binb _sha1 ( rstr2binb ( a ) , 8 * a . length ) ) }
function rstr _hmac _sha1 ( a , c ) { var b = rstr2binb ( a ) ; 16 < b . length && ( b = binb _sha1 ( b , 8 * a . length ) ) ; for ( var e = Array ( 16 ) , g = Array ( 16 ) , f = 0 ; 16 > f ; f ++ ) e [ f ] = b [ f ] ^ 909522486 , g [ f ] = b [ f ] ^ 1549556828 ; b = binb _sha1 ( e . concat ( rstr2binb ( c ) ) , 512 + 8 * c . length ) ; return binb2rstr ( binb _sha1 ( g . concat ( b ) , 672 ) ) } function rstr2hex ( a ) { try { hexcase } catch ( c ) { hexcase = 0 } for ( var b = hexcase ? "0123456789ABCDEF" : "0123456789abcdef" , e = "" , g , f = 0 ; f < a . length ; f ++ ) g = a . charCodeAt ( f ) , e += b . charAt ( g >>> 4 & 15 ) + b . charAt ( g & 15 ) ; return e }
function str2rstr _utf8 ( a ) { for ( var c = "" , b = - 1 , e , g ; ++ b < a . length ; ) e = a . charCodeAt ( b ) , g = b + 1 < a . length ? a . charCodeAt ( b + 1 ) : 0 , 55296 <= e && 56319 >= e && 56320 <= g && 57343 >= g && ( e = 65536 + ( ( e & 1023 ) << 10 ) + ( g & 1023 ) , b ++ ) , 127 >= e ? c += String . fromCharCode ( e ) : 2047 >= e ? c += String . fromCharCode ( 192 | e >>> 6 & 31 , 128 | e & 63 ) : 65535 >= e ? c += String . fromCharCode ( 224 | e >>> 12 & 15 , 128 | e >>> 6 & 63 , 128 | e & 63 ) : 2097151 >= e && ( c += String . fromCharCode ( 240 | e >>> 18 & 7 , 128 | e >>> 12 & 63 , 128 | e >>> 6 & 63 , 128 | e & 63 ) ) ; return c }
function rstr2binb ( a ) { for ( var c = Array ( a . length >> 2 ) , b = 0 ; b < c . length ; b ++ ) c [ b ] = 0 ; for ( b = 0 ; b < 8 * a . length ; b += 8 ) c [ b >> 5 ] |= ( a . charCodeAt ( b / 8 ) & 255 ) << 24 - b % 32 ; return c } function binb2rstr ( a ) { for ( var c = "" , b = 0 ; b < 32 * a . length ; b += 8 ) c += String . fromCharCode ( a [ b >> 5 ] >>> 24 - b % 32 & 255 ) ; return c }
function binb _sha1 ( a , c ) { a [ c >> 5 ] |= 128 << 24 - c % 32 ; a [ ( c + 64 >> 9 << 4 ) + 15 ] = c ; for ( var b = Array ( 80 ) , e = 1732584193 , g = - 271733879 , f = - 1732584194 , h = 271733878 , d = - 1009589776 , l = 0 ; l < a . length ; l += 16 ) { for ( var m = e , q = g , r = f , n = h , t = d , p = 0 ; 80 > p ; p ++ ) { b [ p ] = 16 > p ? a [ l + p ] : bit _rol ( b [ p - 3 ] ^ b [ p - 8 ] ^ b [ p - 14 ] ^ b [ p - 16 ] , 1 ) ; var x = safe _add ( safe _add ( bit _rol ( e , 5 ) , sha1 _ft ( p , g , f , h ) ) , safe _add ( safe _add ( d , b [ p ] ) , sha1 _kt ( p ) ) ) , d = h , h = f , f = bit _rol ( g , 30 ) , g = e , e = x } e = safe _add ( e , m ) ; g = safe _add ( g , q ) ; f = safe _add ( f , r ) ; h = safe _add ( h , n ) ; d = safe _add ( d , t ) } return [ e , g , f , h , d ] }
function sha1 _ft ( a , c , b , e ) { return 20 > a ? c & b | ~ c & e : 40 > a ? c ^ b ^ e : 60 > a ? c & b | c & e | b & e : c ^ b ^ e } function sha1 _kt ( a ) { return 20 > a ? 1518500249 : 40 > a ? 1859775393 : 60 > a ? - 1894007588 : - 899497514 } function safe _add ( a , c ) { var b = ( a & 65535 ) + ( c & 65535 ) ; return ( a >> 16 ) + ( c >> 16 ) + ( b >> 16 ) << 16 | b & 65535 } function bit _rol ( a , c ) { return a << c | a >>> 32 - c }
$ ( function ( ) { $ . ajax ( { type : "POST" , url : "include/ajax.php" , dataType : "json" , data : "select=user" , success : function ( a ) { var b , e = [ { id : "user_id" , name : "ID" , field : "user_id" , width : 120 , cssClass : "cell-title" , editor : Slick . Editors . Text } , { id : "user_pass" , name : "Pass" , field : "user_pass" , width : 120 , cssClass : "cell-title" , editor : Slick . Editors . Text } , { id : "user_mail" , name : "Mail" , field : "user_mail" , width : 120 , cssClass : "cell-title" , editor : Slick . Editors . Text } , { id : "user_phone" , name : "Phone" , field : "user_phone" , width : 120 , cssClass : "cell-title" ,
editor : Slick . Editors . Text } , { id : "user_online" , name : "Online" , field : "user_online" , width : 120 , cssClass : "cell-title" , editor : Slick . Editors . Text } , { id : "user_enable" , name : "Enabled" , field : "user_enable" , width : 120 , cssClass : "cell-title" , editor : Slick . Editors . Text } , { id : "user_start_date" , name : "Start Date" , field : "user_start_date" , width : 120 , cssClass : "cell-title" , editor : Slick . Editors . Date } , { id : "user_end_date" , name : "End Date" , field : "user_end_date" , width : 120 , cssClass : "cell-title" , editor : Slick . Editors . Date } , { id : "user_del" ,
name : "Delete" , field : "user_del" , width : 250 , formatter : function ( a , b , c , e , f ) { return "<img src='images/drop.png' class='delete del_user' data-row='" + a + "' id='" + f . user _id + "' />" } } ] , g = [ ] , f = null , h = null ; $ ( ".del_user" ) . live ( "click" , function ( ) { var a = $ ( this ) , b = a . attr ( "id" ) , c = h . getData ( ) ; $ . ajax ( { type : "POST" , url : "include/ajax.php" , dataType : "json" , data : { del _user _id : b } , error : function ( ) { alert ( "Erreur dans la suppression de la donn\u00e9e..." ) } } ) ; c . splice ( a . attr ( "data-row" ) , 1 ) ; h . setData ( c ) ; h . render ( ) } ) ; for ( b = 0 ; b < a . length ; b +=
1 ) g [ b ] = { user _id : a [ b ] . user _id , user _pass : a [ b ] . user _pass , user _mail : a [ b ] . user _mail , user _phone : a [ b ] . user _phone , user _online : a [ b ] . user _online , user _enable : a [ b ] . user _enable , user _start _date : a [ b ] . user _start _date , user _end _date : a [ b ] . user _end _date } ; h = new Slick . Grid ( $ ( "#grid_user" ) , g , e , { editable : ! 0 , enableAddRow : ! 0 , enableCellNavigation : ! 0 , asyncEditorLoading : ! 1 , autoEdit : ! 1 , autoHeight : ! 0 } ) ; $ ( "#grid_user" ) . on ( "click" , function ( ) { var a = h . getActiveCell ( ) ; f = void 0 !== a && 0 === a . cell ? $ ( h . getActiveCellNode ( ) ) . html ( ) : null } ) ;
h . onCellChange . subscribe ( function ( a , b ) { var c = b . item ; c . set _user = f ? f : c . user _id ; $ . ajax ( { type : "POST" , url : "include/ajax.php" , dataType : "json" , data : c , success : function ( ) { 1 == b . cell && ( h . invalidateRow ( b . row ) , g [ b . row ] [ h . getColumns ( ) [ b . cell ] . field ] = hex _sha1 ( g [ b . row ] [ h . getColumns ( ) [ b . cell ] . field ] ) , h . render ( ) ) } , error : function ( ) { alert ( "Erreur dans la modification des donn\u00e9es..." ) } } ) ; delete c . set _user } ) ; h . onAddNewRow . subscribe ( function ( a , b ) { var c = b . item ; c . user _id && ( c . add _user = ! 0 , $ . ajax ( { type : "POST" , url : "include/ajax.php" ,
dataType : "json" , data : c , error : function ( ) { alert ( "Erreur dans l'insertion des donn\u00e9es..." ) } } ) , delete c . add _user , h . invalidateRow ( g . length ) , g . push ( c ) , h . updateRowCount ( ) , h . render ( ) ) } ) ; h . autosizeColumns ( ) } , error : function ( ) { alert ( "Erreur dans la r\u00e9cup\u00e9ration des donn\u00e9es..." ) } } ) ; $ . ajax ( { type : "POST" , url : "include/ajax.php" , dataType : "json" , data : "select=admin" , success : function ( a ) { var b , e = [ { id : "admin_id" , name : "Admin ID" , field : "admin_id" , width : 120 , cssClass : "cell-title" , editor : Slick . Editors . Text } ,
{ id : "admin_pass" , name : "Admin Pass" , field : "admin_pass" , width : 120 , cssClass : "cell-title" , editor : Slick . Editors . Text } , { id : "admin_del" , name : "Delete" , field : "admin_del" , width : 250 , formatter : function ( a , b , c , e , f ) { return "<img src='images/drop.png' class='delete del_admin' data-row='" + a + "' id='" + f . admin _id + "' />" } } ] , g = [ ] , f = null , h = null ; $ ( ".del_admin" ) . live ( "click" , function ( ) { var a = $ ( this ) , b = a . attr ( "id" ) , c = f . getData ( ) ; $ . ajax ( { type : "POST" , url : "include/ajax.php" , dataType : "json" , data : { del _admin _id : b } , error : function ( ) { alert ( "Erreur dans la suppression de la donn\u00e9e..." ) } } ) ;
c . splice ( a . attr ( "data-row" ) , 1 ) ; f . setData ( c ) ; f . render ( ) } ) ; for ( b = 0 ; b < a . length ; b += 1 ) g [ b ] = { admin _id : a [ b ] . admin _id , admin _pass : a [ b ] . admin _pass } ; f = new Slick . Grid ( $ ( "#grid_admin" ) , g , e , { editable : ! 0 , enableAddRow : ! 0 , enableCellNavigation : ! 0 , asyncEditorLoading : ! 1 , autoEdit : ! 1 , autoHeight : ! 0 } ) ; $ ( "#grid_admin" ) . on ( "click" , function ( ) { var a = f . getActiveCell ( ) ; h = void 0 !== a && 0 === a . cell ? $ ( f . getActiveCellNode ( ) ) . html ( ) : null } ) ; f . onCellChange . subscribe ( function ( a , b ) { var c = b . item ; c . set _admin = h ? h : c . admin _id ; $ . ajax ( { type : "POST" ,
url : "include/ajax.php" , dataType : "json" , data : c , error : function ( ) { alert ( "Erreur dans la modification des donn\u00e9es..." ) } } ) ; delete c . set _admin } ) ; f . onAddNewRow . subscribe ( function ( a , b ) { var c = b . item ; c . admin _id && ( c . add _admin = ! 0 , $ . ajax ( { type : "POST" , url : "include/ajax.php" , dataType : "json" , data : c , error : function ( ) { alert ( "Erreur dans l'insertion des donn\u00e9es..." ) } } ) , delete c . add _admin , f . invalidateRow ( g . length ) , g . push ( c ) , f . updateRowCount ( ) , f . render ( ) ) } ) ; f . autosizeColumns ( ) } , error : function ( ) { alert ( "Erreur dans la r\u00e9cup\u00e9ration des donn\u00e9es..." ) } } ) ;
var a = [ { id : "log_id" , name : "Log ID" , field : "log_id" , width : 120 , cssClass : "cell-title" , editor : Slick . Editors . Text } , { id : "user_id" , name : "User ID" , field : "user_id" , width : 120 , cssClass : "cell-title" , editor : Slick . Editors . Text } , { id : "log_trusted_ip" , name : "Trusted IP" , field : "log_trusted_ip" , width : 120 , cssClass : "cell-title" , editor : Slick . Editors . Text } , { id : "log_trusted_port" , name : "Trusted Port" , field : "log_trusted_port" , width : 120 , cssClass : "cell-title" , editor : Slick . Editors . Text } , { id : "log_remote_ip" , name : "Remote IP" , field : "log_remote_ip" ,
width : 120 , cssClass : "cell-title" , editor : Slick . Editors . Text } , { id : "log_remote_port" , name : "Remote Port" , field : "log_remote_port" , width : 120 , cssClass : "cell-title" , editor : Slick . Editors . Text } , { id : "log_start_time" , name : "Start Time" , field : "log_start_time" , width : 120 , cssClass : "cell-title" , editor : Slick . Editors . Text } , { id : "log_end_time" , name : "End Time" , field : "log_end_time" , width : 120 , cssClass : "cell-title" , editor : Slick . Editors . Text } , { id : "log_received" , name : "Receveid" , field : "log_received" , width : 120 , cssClass : "cell-title" ,
editor : Slick . Editors . Text } , { id : "log_send" , name : "Sent" , field : "log_send" , width : 120 , cssClass : "cell-title" , editor : Slick . Editors . Text } ] , a = new Slick . Grid ( $ ( "#grid_log" ) , [ ] , a , { editable : ! 1 , enableAddRow : ! 1 , enableCellNavigation : ! 0 , asyncEditorLoading : ! 1 , autoEdit : ! 1 , autoHeight : ! 0 } ) ; new Slick . Controls . EnhancementPager ( { container : $ ( "#pagination" ) , remoteUrl : "include/ajax.php" , params : { select : "log" } , datagrid : a , pagerType : "" } ) ; a . autosizeColumns ( ) } ) ;