2013-01-08 04:48:09 +00:00
/ * !
* jQuery JavaScript Library v1 . 8.1
* http : //jquery.com/
*
* Includes Sizzle . js
* http : //sizzlejs.com/
*
* Copyright 2012 jQuery Foundation and other contributors
* Released under the MIT license
* http : //jquery.org/license
*
* Date : Thu Aug 30 2012 17 : 17 : 22 GMT - 0400 ( Eastern Daylight Time )
* /
function BestInPlaceEditor ( e ) { this . element = e , this . initOptions ( ) , this . bindForm ( ) , this . initNil ( ) , jQuery ( this . activator ) . bind ( "click" , { editor : this } , this . clickHandler ) } function openAnalyze ( ) { analyzeOpen = ! 0 , findOpen && closeFind ( ) , organizeOpen && closeOrganize ( ) , $ ( "#sideOptionFind" ) . css ( "z-index" , "8" ) , $ ( "#sideOptionAnalyze, #closeAnalyze" ) . css ( "z-index" , "10" ) , $ ( "#sideOptionOrganize" ) . css ( "z-index" , "8" ) , $ ( "#sideOptionAnalyze" ) . animate ( { width : "100px" , height : "76px" } , 100 ) , $ ( "#closeAnalyze" ) . css ( "display" , "block" ) , $ ( "#sideOptionAnalyze" ) . css ( "cursor" , "default" ) ; var e = Object . keys ( Mconsole . graph . nodes ) . length , t = 0 ; Mconsole . graph . eachNode ( function ( e ) { e . eachAdjacency ( function ( ) { t ++ } ) } ) , t /= 2 , $ ( ".analysis" ) . html ( "<p>" + e + " topics</p><p>" + t + " synapses</p>" ) } function closeAnalyze ( ) { analyzeOpen = ! 1 , $ ( "#closeAnalyze" ) . css ( "display" , "none" ) , $ ( "#sideOptionAnalyze" ) . css ( "cursor" , "pointer" ) , $ ( "#sideOptionAnalyze" ) . animate ( { width : "64px" , height : "32px" } , 100 ) } function switchVisible ( e , t ) { categoryVisible [ e ] == 1 ? hideCategory ( e , t ) : categoryVisible [ e ] == 0 && showCategory ( e , t ) } function hideCategory ( e , t ) { t == null && ( t = 500 ) , Mconsole . graph . eachNode ( function ( t ) { t . getData ( "metacode" ) == e && ( t . setData ( "alpha" , . 4 , "end" ) , t . eachAdjacency ( function ( e ) { e . setData ( "alpha" , . 4 , "end" ) } ) ) } ) , Mconsole . fx . animate ( { modes : [ "node-property:alpha" , "edge-property:alpha" ] , duration : t } ) } function showCategory ( e , t ) { t == null && ( t = 500 ) , Mconsole . graph . eachNode ( function ( t ) { t . getData ( "metacode" ) == e && ( t . setData ( "alpha" , 1 , "end" ) , t . eachAdjacency ( function ( e ) { e . setData ( "alpha" , 1 , "end" ) } ) ) } ) , Mconsole . fx . animate ( { modes : [ "node-property:alpha" , "edge-property:alpha" ] , duration : t } ) } function hideAll ( e ) { e == null && ( e = 500 ) , Mconsole . graph . eachNode ( function ( e ) { ! e . getData ( "inCommons" ) && ! e . getData ( "onCanvas" ) && ( e . setData ( "alpha" , . 4 , "end" ) , e . eachAdjacency ( function ( e ) { e . setData ( "alpha" , . 4 , "end" ) } ) ) } ) , Mconsole . fx . animate ( { modes : [ "node-property:alpha" , "edge-property:alpha" ] , duration : e } ) } function showAll ( e ) { e == null && ( e = 500 ) , Mconsole . graph . eachNode ( function ( e ) { e . setData ( "alpha" , 1 , "end" ) , e . eachAdjacency ( function ( e ) { e . setData ( "alpha" , 1 , "end" ) } ) } ) , Mconsole . fx . animate ( { modes : [ "node-property:alpha" , "edge-property:alpha" ] , duration : e } ) } function onCanvasSearch ( e , t , n ) { Mconsole . graph . eachNode ( function ( r ) { e != null ? r . name . indexOf ( e ) !== - 1 && e != "" ? r . setData ( "onCanvas" , ! 0 ) : r . setData ( "onCanvas" , ! 1 ) : t != null ? r . getData ( "inmaps" ) . indexOf ( parseInt ( t ) ) !== - 1 ? r . setData ( "onCanvas" , ! 0 ) : r . setData ( "onCanvas" , ! 1 ) : n != null && ( r . getData ( "userid" ) . toString ( ) == n ? r . setData ( "onCanvas" , ! 0 ) : r . setData ( "onCanvas" , ! 1 ) ) , Mconsole . plot ( ) } ) } function clearCanvas ( ) { Mconsole . graph . eachNode ( function ( e ) { Mconsole . graph . removeNode ( e . id ) , Mconsole . labels . disposeLabel ( e . id ) } ) , Mconsole . plot ( ) } function clearFoundData ( ) { Mconsole . graph . eachNode ( function ( e ) { e . getData ( "inCommons" ) === ! 0 && ( Mconsole . graph . removeNode ( e . id ) , Mconsole . labels . disposeLabel ( e . id ) ) } ) , Mconsole . plot ( ) } function openFind ( ) { findOpen = ! 0 , analyzeOpen && closeAnalyze ( ) , organizeOpen && closeOrganize ( ) , $ ( "#sideOptionFind, #closeFind" ) . css ( "z-index" , "10" ) , $ ( "#sideOptionAnalyze" ) . css ( "z-index" , "9" ) , $ ( "#sideOptionOrganize" ) . css ( "z-index" , "8" ) , firstVal = $ ( '#sideOptionFind option[value="name"]' ) . attr ( "selected" ) , secondVal = $ ( '#sideOptionFind option[value="metacode"]' ) . attr ( "selected" ) , thirdVal = $ ( '#sideOptionFind option[value="map (by name)"]' ) . attr ( "selected" ) , fourthVal = $ ( '#sideOptionFind option[value="mapper (by name)"]' ) . attr ( "selected" ) , firstVal === "selected" || thirdVal === "selected" || fourthVal === "selected" ? $ ( "#sideOptionFind" ) . animate ( { width : "305px" , height : "76px" } , 100 , function ( ) { $ ( "#topic_by_name_input" ) . focus ( ) } ) : secondVal === "selected" ? $ ( "#sideOptionFind" ) . animate ( { width : "380px" , height : "463px" } , 100 , function ( ) { } ) : thirdVal === "selected" ? $ ( "#sideOptionFind" ) . animate ( { width : "305px" , height : "76px" } , 100 , function ( ) { $ ( "#map_by_name_input" ) . focus ( ) } ) : fourthVal === "selected" && $ ( "#sideOptionFind" ) . animate ( { width : "305px" , height : "76px" } , 100 , function ( ) { $ ( "#mapper_by_name_input" ) . focus ( ) } ) , $ ( "#closeFind, #findWhere" ) . css ( "display" , "block" ) , $ ( "#sideOptionFind" ) . css ( "cursor" , "default" ) } function closeFind ( ) { findOpen = ! 1 , Mconsole . graph . eachNode ( function ( e ) { e . setData
( ) { try { return new e . ActiveXObject ( "Microsoft.XMLHTTP" ) } catch ( t ) { } } function $n ( ) { return setTimeout ( function ( ) { qn = t } , 0 ) , qn = v . now ( ) } function Jn ( e , t ) { v . each ( t , function ( t , n ) { var r = ( Vn [ t ] || [ ] ) . concat ( Vn [ "*" ] ) , i = 0 , s = r . length ; for ( ; i < s ; i ++ ) if ( r [ i ] . call ( e , t , n ) ) return } ) } function Kn ( e , t , n ) { var r , i = 0 , s = 0 , o = Xn . length , u = v . Deferred ( ) . always ( function ( ) { delete a . elem } ) , a = function ( ) { var t = qn || $n ( ) , n = Math . max ( 0 , f . startTime + f . duration - t ) , r = 1 - ( n / f . duration || 0 ) , i = 0 , s = f . tweens . length ; for ( ; i < s ; i ++ ) f . tweens [ i ] . run ( r ) ; return u . notifyWith ( e , [ f , r , n ] ) , r < 1 && s ? n : ( u . resolveWith ( e , [ f ] ) , ! 1 ) } , f = u . promise ( { elem : e , props : v . extend ( { } , t ) , opts : v . extend ( ! 0 , { specialEasing : { } } , n ) , originalProperties : t , originalOptions : n , startTime : qn || $n ( ) , duration : n . duration , tweens : [ ] , createTween : function ( t , n , r ) { var i = v . Tween ( e , f . opts , t , n , f . opts . specialEasing [ t ] || f . opts . easing ) ; return f . tweens . push ( i ) , i } , stop : function ( t ) { var n = 0 , r = t ? f . tweens . length : 0 ; for ( ; n < r ; n ++ ) f . tweens [ n ] . run ( 1 ) ; return t ? u . resolveWith ( e , [ f , t ] ) : u . rejectWith ( e , [ f , t ] ) , this } } ) , l = f . props ; Qn ( l , f . opts . specialEasing ) ; for ( ; i < o ; i ++ ) { r = Xn [ i ] . call ( f , e , l , f . opts ) ; if ( r ) return r } return Jn ( f , l ) , v . isFunction ( f . opts . start ) && f . opts . start . call ( e , f ) , v . fx . timer ( v . extend ( a , { anim : f , queue : f . opts . queue , elem : e } ) ) , f . progress ( f . opts . progress ) . done ( f . opts . done , f . opts . complete ) . fail ( f . opts . fail ) . always ( f . opts . always ) } function Qn ( e , t ) { var n , r , i , s , o ; for ( n in e ) { r = v . camelCase ( n ) , i = t [ r ] , s = e [ n ] , v . isArray ( s ) && ( i = s [ 1 ] , s = e [ n ] = s [ 0 ] ) , n !== r && ( e [ r ] = s , delete e [ n ] ) , o = v . cssHooks [ r ] ; if ( o && "expand" in o ) { s = o . expand ( s ) , delete e [ r ] ; for ( n in s ) n in e || ( e [ n ] = s [ n ] , t [ n ] = i ) } else t [ r ] = i } } function Gn ( e , t , n ) { var r , i , s , o , u , a , f , l , c = this , h = e . style , p = { } , d = [ ] , m = e . nodeType && Gt ( e ) ; n . queue || ( f = v . _queueHooks ( e , "fx" ) , f . unqueued == null && ( f . unqueued = 0 , l = f . empty . fire , f . empty . fire = function ( ) { f . unqueued || l ( ) } ) , f . unqueued ++ , c . always ( function ( ) { c . always ( function ( ) { f . unqueued -- , v . queue ( e , "fx" ) . length || f . empty . fire ( ) } ) } ) ) , e . nodeType === 1 && ( "height" in t || "width" in t ) && ( n . overflow = [ h . overflow , h . overflowX , h . overflowY ] , v . css ( e , "display" ) === "inline" && v . css ( e , "float" ) === "none" && ( ! v . support . inlineBlockNeedsLayout || nn ( e . nodeName ) === "inline" ? h . display = "inline-block" : h . zoom = 1 ) ) , n . overflow && ( h . overflow = "hidden" , v . support . shrinkWrapBlocks || c . done ( function ( ) { h . overflow = n . overflow [ 0 ] , h . overflowX = n . overflow [ 1 ] , h . overflowY = n . overflow [ 2 ] } ) ) ; for ( r in t ) { s = t [ r ] ; if ( Un . exec ( s ) ) { delete t [ r ] ; if ( s === ( m ? "hide" : "show" ) ) continue ; d . push ( r ) } } o = d . length ; if ( o ) { u = v . _data ( e , "fxshow" ) || v . _data ( e , "fxshow" , { } ) , m ? v ( e ) . show ( ) : c . done ( function ( ) { v ( e ) . hide ( ) } ) , c . done ( function ( ) { var t ; v . removeData ( e , "fxshow" , ! 0 ) ; for ( t in p ) v . style ( e , t , p [ t ] ) } ) ; for ( r = 0 ; r < o ; r ++ ) i = d [ r ] , a = c . createTween ( i , m ? u [ i ] : 0 ) , p [ i ] = u [ i ] || v . style ( e , i ) , i in u || ( u [ i ] = a . start , m && ( a . end = a . start , a . start = i === "width" || i === "height" ? 1 : 0 ) ) } } function Yn ( e , t , n , r , i ) { return new Yn . prototype . init ( e , t , n , r , i ) } function Zn ( e , t ) { var n , r = { height : e } , i = 0 ; t = t ? 1 : 0 ; for ( ; i < 4 ; i += 2 - t ) n = $t [ i ] , r [ "margin" + n ] = r [ "padding" + n ] = e ; return t && ( r . opacity = r . width = e ) , r } function tr ( e ) { return v . isWindow ( e ) ? e : e . nodeType === 9 ? e . defaultView || e . parentWindow : ! 1 } var n , r , i = e . document , s = e . location , o = e . navigator , u = e . jQuery , a = e . $ , f = Array . prototype . push , l = Array . prototype . slice , c = Array . prototype . indexOf , h = Object . prototype . toString , p = Object . prototype . hasOwnProperty , d = String . prototype . trim , v = function ( e , t ) { return new v . fn . init ( e , t , n ) } , m = /[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/ . source , g = /\S/ , y = /\s+/ , b = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g , w = /^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/ , E = /^<(\w+)\s*\/?>(?:<\/\1>|)$/ , S = /^[\],:{}\s]*$/ , x = /(?:^|:|,)(?:\s*\[)+/g , T = /\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g , N = /"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g , C = /^-ms-/ , k = /-([\da-z])/gi , L = function ( e , t ) { return ( t + "" ) . toUpperCase ( ) } , A = function ( ) { i . addEventListener ? ( i . removeEventListener ( "DOMContentLoaded" , A , ! 1 ) , v . ready ( ) ) : i . readyState === "complete" && ( i . detachEvent ( "onreadystatechange" , A ) , v . ready ( ) ) } , O = { } ; v . fn = v . prototype = { constructor : v , init : function ( e , n , r ) { var s , o , u , a ; if ( ! e ) return this ; if ( e . nodeType ) return this . context = this [ 0 ] = e , this . length = 1 , this ; if ( typeof e == "string" ) { e . charAt ( 0 ) === "<" && e . charAt ( e . length - 1 ) === ">" && e . length >= 3 ? s = [ n
o && o . scrollTop || 0 ) - ( s && s . clientTop || o && o . clientTop || 0 ) ) , ! e . relatedTarget && a && ( e . relatedTarget = a === e . target ? n . toElement : a ) , ! e . which && u !== t && ( e . which = u & 1 ? 1 : u & 2 ? 3 : u & 4 ? 2 : 0 ) , e } } , fix : function ( e ) { if ( e [ v . expando ] ) return e ; var t , n , r = e , s = v . event . fixHooks [ e . type ] || { } , o = s . props ? this . props . concat ( s . props ) : this . props ; e = v . Event ( r ) ; for ( t = o . length ; t ; ) n = o [ -- t ] , e [ n ] = r [ n ] ; return e . target || ( e . target = r . srcElement || i ) , e . target . nodeType === 3 && ( e . target = e . target . parentNode ) , e . metaKey = ! ! e . metaKey , s . filter ? s . filter ( e , r ) : e } , special : { load : { noBubble : ! 0 } , focus : { delegateType : "focusin" } , blur : { delegateType : "focusout" } , beforeunload : { setup : function ( e , t , n ) { v . isWindow ( this ) && ( this . onbeforeunload = n ) } , teardown : function ( e , t ) { this . onbeforeunload === t && ( this . onbeforeunload = null ) } } } , simulate : function ( e , t , n , r ) { var i = v . extend ( new v . Event , n , { type : e , isSimulated : ! 0 , originalEvent : { } } ) ; r ? v . event . trigger ( i , null , t ) : v . event . dispatch . call ( t , i ) , i . isDefaultPrevented ( ) && n . preventDefault ( ) } } , v . event . handle = v . event . dispatch , v . removeEvent = i . removeEventListener ? function ( e , t , n ) { e . removeEventListener && e . removeEventListener ( t , n , ! 1 ) } : function ( e , t , n ) { var r = "on" + t ; e . detachEvent && ( typeof e [ r ] == "undefined" && ( e [ r ] = null ) , e . detachEvent ( r , n ) ) } , v . Event = function ( e , t ) { if ( ! ( this instanceof v . Event ) ) return new v . Event ( e , t ) ; e && e . type ? ( this . originalEvent = e , this . type = e . type , this . isDefaultPrevented = e . defaultPrevented || e . returnValue === ! 1 || e . getPreventDefault && e . getPreventDefault ( ) ? tt : et ) : this . type = e , t && v . extend ( this , t ) , this . timeStamp = e && e . timeStamp || v . now ( ) , this [ v . expando ] = ! 0 } , v . Event . prototype = { preventDefault : function ( ) { this . isDefaultPrevented = tt ; var e = this . originalEvent ; if ( ! e ) return ; e . preventDefault ? e . preventDefault ( ) : e . returnValue = ! 1 } , stopPropagation : function ( ) { this . isPropagationStopped = tt ; var e = this . originalEvent ; if ( ! e ) return ; e . stopPropagation && e . stopPropagation ( ) , e . cancelBubble = ! 0 } , stopImmediatePropagation : function ( ) { this . isImmediatePropagationStopped = tt , this . stopPropagation ( ) } , isDefaultPrevented : et , isPropagationStopped : et , isImmediatePropagationStopped : et } , v . each ( { mouseenter : "mouseover" , mouseleave : "mouseout" } , function ( e , t ) { v . event . special [ e ] = { delegateType : t , bindType : t , handle : function ( e ) { var n , r = this , i = e . relatedTarget , s = e . handleObj , o = s . selector ; if ( ! i || i !== r && ! v . contains ( r , i ) ) e . type = s . origType , n = s . handler . apply ( this , arguments ) , e . type = t ; return n } } } ) , v . support . submitBubbles || ( v . event . special . submit = { setup : function ( ) { if ( v . nodeName ( this , "form" ) ) return ! 1 ; v . event . add ( this , "click._submit keypress._submit" , function ( e ) { var n = e . target , r = v . nodeName ( n , "input" ) || v . nodeName ( n , "button" ) ? n . form : t ; r && ! v . _data ( r , "_submit_attached" ) && ( v . event . add ( r , "submit._submit" , function ( e ) { e . _submit _bubble = ! 0 } ) , v . _data ( r , "_submit_attached" , ! 0 ) ) } ) } , postDispatch : function ( e ) { e . _submit _bubble && ( delete e . _submit _bubble , this . parentNode && ! e . isTrigger && v . event . simulate ( "submit" , this . parentNode , e , ! 0 ) ) } , teardown : function ( ) { if ( v . nodeName ( this , "form" ) ) return ! 1 ; v . event . remove ( this , "._submit" ) } } ) , v . support . changeBubbles || ( v . event . special . change = { setup : function ( ) { if ( $ . test ( this . nodeName ) ) { if ( this . type === "checkbox" || this . type === "radio" ) v . event . add ( this , "propertychange._change" , function ( e ) { e . originalEvent . propertyName === "checked" && ( this . _just _changed = ! 0 ) } ) , v . event . add ( this , "click._change" , function ( e ) { this . _just _changed && ! e . isTrigger && ( this . _just _changed = ! 1 ) , v . event . simulate ( "change" , this , e , ! 0 ) } ) ; return ! 1 } v . event . add ( this , "beforeactivate._change" , function ( e ) { var t = e . target ; $ . test ( t . nodeName ) && ! v . _data ( t , "_change_attached" ) && ( v . event . add ( t , "change._change" , function ( e ) { this . parentNode && ! e . isSimulated && ! e . isTrigger && v . event . simulate ( "change" , this . parentNode , e , ! 0 ) } ) , v . _data ( t , "_change_attached" , ! 0 ) ) } ) } , handle : function ( e ) { var t = e . target ; if ( this !== t || e . isSimulated || e . isTrigger || t . type !== "radio" && t . type !== "checkbox" ) return e . handleObj . handler . apply ( this , arguments ) } , teardown : function ( ) { return v . event . remove ( this , "._change" ) , ! $ . test ( this . nodeName ) } } ) , v . support . focusinBubbles || v . each ( { focus : "focusin" , blur : "focusout" } , function ( e , t ) { var n = 0 , r = function ( e ) { v . event . simulate ( t , e . target , v . event . fix ( e ) , ! 0 ) } ; v . event . special [ t ] = { setup : function ( ) { n ++ === 0 && i . addEventListe
event . remove ( i , s ) : v . removeEvent ( i , s , n . handle ) ; a [ r ] && ( delete a [ r ] , f ? delete i [ u ] : i . removeAttribute ? i . removeAttribute ( u ) : i [ u ] = null , v . deletedIds . push ( r ) ) } } } } ) , function ( ) { var e , t ; v . uaMatch = function ( e ) { e = e . toLowerCase ( ) ; var t = /(chrome)[ \/]([\w.]+)/ . exec ( e ) || /(webkit)[ \/]([\w.]+)/ . exec ( e ) || /(opera)(?:.*version|)[ \/]([\w.]+)/ . exec ( e ) || /(msie) ([\w.]+)/ . exec ( e ) || e . indexOf ( "compatible" ) < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/ . exec ( e ) || [ ] ; return { browser : t [ 1 ] || "" , version : t [ 2 ] || "0" } } , e = v . uaMatch ( o . userAgent ) , t = { } , e . browser && ( t [ e . browser ] = ! 0 , t . version = e . version ) , t . chrome ? t . webkit = ! 0 : t . webkit && ( t . safari = ! 0 ) , v . browser = t , v . sub = function ( ) { function e ( t , n ) { return new e . fn . init ( t , n ) } v . extend ( ! 0 , e , this ) , e . superclass = this , e . fn = e . prototype = this ( ) , e . fn . constructor = e , e . sub = this . sub , e . fn . init = function ( r , i ) { return i && i instanceof v && ! ( i instanceof e ) && ( i = e ( i ) ) , v . fn . init . call ( this , r , i , t ) } , e . fn . init . prototype = e . fn ; var t = e ( i ) ; return e } } ( ) ; var Dt , Pt , Ht , Bt = /alpha\([^)]*\)/i , jt = /opacity=([^)]*)/ , Ft = /^(top|right|bottom|left)$/ , It = /^(none|table(?!-c[ea]).+)/ , qt = /^margin/ , Rt = new RegExp ( "^(" + m + ")(.*)$" , "i" ) , Ut = new RegExp ( "^(" + m + ")(?!px)[a-z%]+$" , "i" ) , zt = new RegExp ( "^([-+])=(" + m + ")" , "i" ) , Wt = { } , Xt = { position : "absolute" , visibility : "hidden" , display : "block" } , Vt = { letterSpacing : 0 , fontWeight : 400 } , $t = [ "Top" , "Right" , "Bottom" , "Left" ] , Jt = [ "Webkit" , "O" , "Moz" , "ms" ] , Kt = v . fn . toggle ; v . fn . extend ( { css : function ( e , n ) { return v . access ( this , function ( e , n , r ) { return r !== t ? v . style ( e , n , r ) : v . css ( e , n ) } , e , n , arguments . length > 1 ) } , show : function ( ) { return Yt ( this , ! 0 ) } , hide : function ( ) { return Yt ( this ) } , toggle : function ( e , t ) { var n = typeof e == "boolean" ; return v . isFunction ( e ) && v . isFunction ( t ) ? Kt . apply ( this , arguments ) : this . each ( function ( ) { ( n ? e : Gt ( this ) ) ? v ( this ) . show ( ) : v ( this ) . hide ( ) } ) } } ) , v . extend ( { cssHooks : { opacity : { get : function ( e , t ) { if ( t ) { var n = Dt ( e , "opacity" ) ; return n === "" ? "1" : n } } } } , cssNumber : { fillOpacity : ! 0 , fontWeight : ! 0 , lineHeight : ! 0 , opacity : ! 0 , orphans : ! 0 , widows : ! 0 , zIndex : ! 0 , zoom : ! 0 } , cssProps : { "float" : v . support . cssFloat ? "cssFloat" : "styleFloat" } , style : function ( e , n , r , i ) { if ( ! e || e . nodeType === 3 || e . nodeType === 8 || ! e . style ) return ; var s , o , u , a = v . camelCase ( n ) , f = e . style ; n = v . cssProps [ a ] || ( v . cssProps [ a ] = Qt ( f , a ) ) , u = v . cssHooks [ n ] || v . cssHooks [ a ] ; if ( r === t ) return u && "get" in u && ( s = u . get ( e , ! 1 , i ) ) !== t ? s : f [ n ] ; o = typeof r , o === "string" && ( s = zt . exec ( r ) ) && ( r = ( s [ 1 ] + 1 ) * s [ 2 ] + parseFloat ( v . css ( e , n ) ) , o = "number" ) ; if ( r == null || o === "number" && isNaN ( r ) ) return ; o === "number" && ! v . cssNumber [ a ] && ( r += "px" ) ; if ( ! u || ! ( "set" in u ) || ( r = u . set ( e , r , i ) ) !== t ) try { f [ n ] = r } catch ( l ) { } } , css : function ( e , n , r , i ) { var s , o , u , a = v . camelCase ( n ) ; return n = v . cssProps [ a ] || ( v . cssProps [ a ] = Qt ( e . style , a ) ) , u = v . cssHooks [ n ] || v . cssHooks [ a ] , u && "get" in u && ( s = u . get ( e , ! 0 , i ) ) , s === t && ( s = Dt ( e , n ) ) , s === "normal" && n in Vt && ( s = Vt [ n ] ) , r || i !== t ? ( o = parseFloat ( s ) , r || v . isNumeric ( o ) ? o || 0 : s ) : s } , swap : function ( e , t , n ) { var r , i , s = { } ; for ( i in t ) s [ i ] = e . style [ i ] , e . style [ i ] = t [ i ] ; r = n . call ( e ) ; for ( i in t ) e . style [ i ] = s [ i ] ; return r } } ) , e . getComputedStyle ? Dt = function ( t , n ) { var r , i , s , o , u = e . getComputedStyle ( t , null ) , a = t . style ; return u && ( r = u [ n ] , r === "" && ! v . contains ( t . ownerDocument , t ) && ( r = v . style ( t , n ) ) , Ut . test ( r ) && qt . test ( n ) && ( i = a . width , s = a . minWidth , o = a . maxWidth , a . minWidth = a . maxWidth = a . width = r , r = u . width , a . width = i , a . minWidth = s , a . maxWidth = o ) ) , r } : i . documentElement . currentStyle && ( Dt = function ( e , t ) { var n , r , i = e . currentStyle && e . currentStyle [ t ] , s = e . style ; return i == null && s && s [ t ] && ( i = s [ t ] ) , Ut . test ( i ) && ! Ft . test ( t ) && ( n = s . left , r = e . runtimeStyle && e . runtimeStyle . left , r && ( e . runtimeStyle . left = e . currentStyle . left ) , s . left = t === "fontSize" ? "1em" : i , i = s . pixelLeft + "px" , s . left = n , r && ( e . runtimeStyle . left = r ) ) , i === "" ? "auto" : i } ) , v . each ( [ "height" , "width" ] , function ( e , t ) { v . cssHooks [ t ] = { get : function ( e , n , r ) { if ( n ) return e . offsetWidth === 0 && It . test ( Dt ( e , "display" ) ) ? v . swap ( e , Xt , function ( ) { return tn ( e , t , r ) } ) : tn ( e , t , r ) } , set : function ( e , n , r ) { return Zt ( e , n , r ? en ( e , t , r , v . support . boxSizing && v . css ( e , "boxSizing" ) === "border-box" ) : 0 ) } } } ) , v . support . opacity || ( v . cssHooks . opacity = { get : function ( e , t ) { return jt . test ( ( t && e . currentStyle ? e . currentStyle . filter : e . style . filter ) || "" ) ? . 01 * parseFloat ( RegExp . $1 ) + "" : t ? "1" : "" } , set : function ( e , t ) { var n = e . style , r = e . currentStyle , i = v . isNumeric ( t ) ? " alpha (
) , 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 } , e . extend ( this . offset , { click : { left : t . pageX - this . offset . left , top : t . pageY - this . offset . top } , parent : this . _getParentOffset ( ) , relative : this . _getRelativeOffset ( ) } ) , this . originalPosition = this . position = this . _generatePosition ( t ) , this . originalPageX = t . pageX , this . originalPageY = t . pageY , n . cursorAt && this . _adjustOffsetFromHelper ( n . cursorAt ) , n . containment && this . _setContainment ( ) , this . _trigger ( "start" , t ) === ! 1 ? ( this . _clear ( ) , ! 1 ) : ( this . _cacheHelperProportions ( ) , e . ui . ddmanager && ! n . dropBehaviour && e . ui . ddmanager . prepareOffsets ( this , t ) , this . _mouseDrag ( t , ! 0 ) , e . ui . ddmanager && e . ui . ddmanager . dragStart ( this , t ) , ! 0 ) } , _mouseDrag : function ( t , n ) { this . position = this . _generatePosition ( t ) , this . positionAbs = this . _convertPositionTo ( "absolute" ) ; if ( ! n ) { var r = this . _uiHash ( ) ; if ( this . _trigger ( "drag" , t , r ) === ! 1 ) return this . _mouseUp ( { } ) , ! 1 ; this . position = r . position } if ( ! this . options . axis || this . options . axis != "y" ) this . helper [ 0 ] . style . left = this . position . left + "px" ; if ( ! this . options . axis || this . options . axis != "x" ) this . helper [ 0 ] . style . top = this . position . top + "px" ; return e . ui . ddmanager && e . ui . ddmanager . drag ( this , t ) , ! 1 } , _mouseStop : function ( t ) { var n = ! 1 ; e . ui . ddmanager && ! this . options . dropBehaviour && ( n = e . ui . ddmanager . drop ( this , t ) ) , this . dropped && ( n = this . dropped , this . dropped = ! 1 ) ; var r = this . element [ 0 ] , i = ! 1 ; while ( r && ( r = r . parentNode ) ) r == document && ( i = ! 0 ) ; if ( ! i && this . options . helper === "original" ) return ! 1 ; if ( this . options . revert == "invalid" && ! n || this . options . revert == "valid" && n || this . options . revert === ! 0 || e . isFunction ( this . options . revert ) && this . options . revert . call ( this . element , n ) ) { var s = this ; e ( this . helper ) . animate ( this . originalPosition , parseInt ( this . options . revertDuration , 10 ) , function ( ) { s . _trigger ( "stop" , t ) !== ! 1 && s . _clear ( ) } ) } else this . _trigger ( "stop" , t ) !== ! 1 && this . _clear ( ) ; return ! 1 } , _mouseUp : function ( t ) { return this . options . iframeFix === ! 0 && e ( "div.ui-draggable-iframeFix" ) . each ( function ( ) { this . parentNode . removeChild ( this ) } ) , e . ui . ddmanager && e . ui . ddmanager . dragStop ( this , t ) , e . ui . mouse . prototype . _mouseUp . call ( this , t ) } , cancel : function ( ) { return this . helper . is ( ".ui-draggable-dragging" ) ? this . _mouseUp ( { } ) : this . _clear ( ) , this } , _getHandle : function ( t ) { var n = ! this . options . handle || ! e ( this . options . handle , this . element ) . length ? ! 0 : ! 1 ; return e ( this . options . handle , this . element ) . find ( "*" ) . andSelf ( ) . each ( function ( ) { this == t . target && ( n = ! 0 ) } ) , n } , _createHelper : function ( t ) { var n = this . options , r = e . isFunction ( n . helper ) ? e ( n . helper . apply ( this . element [ 0 ] , [ t ] ) ) : n . helper == "clone" ? this . element . clone ( ) . removeAttr ( "id" ) : this . element ; return r . parents ( "body" ) . length || r . appendTo ( n . appendTo == "parent" ? this . element [ 0 ] . parentNode : n . appendTo ) , r [ 0 ] != this . element [ 0 ] && ! /(fixed|absolute)/ . test ( r . css ( "position" ) ) && r . css ( "position" , "absolute" ) , r } , _adjustOffsetFromHelper : function ( t ) { typeof t == "string" && ( t = t . split ( " " ) ) , e . isArray ( t ) && ( t = { left : + t [ 0 ] , top : + t [ 1 ] || 0 } ) , "left" in t && ( this . offset . click . left = t . left + this . margins . left ) , "right" in t && ( this . offset . click . left = this . helperProportions . width - t . right + this . margins . left ) , "top" in t && ( this . offset . click . top = t . top + this . margins . top ) , "bottom" in t && ( this . offset . click . top = this . helperProportions . height - t . bottom + this . margins . top ) } , _getParentOffset : function ( ) { this . offsetParent = this . helper . offsetParent ( ) ; var t = this . offsetParent . offset ( ) ; this . cssPosition == "absolute" && this . scrollParent [ 0 ] != document && e . ui . contains ( this . scrollParent [ 0 ] , this . offsetParent [ 0 ] ) && ( t . left += this . scrollParent . scrollLeft ( ) , t . top += this . scrollParent . scrollTop ( ) ) ; if ( this . offsetParent [ 0 ] == document . body || this . offsetParent [ 0 ] . tagName && this . offsetParent [ 0 ] . tagName . toLowerCase ( ) == "html" && e . browser . msie ) t = { top : 0 , left : 0 } ; return { top : t . top + ( parseInt ( this . offsetParent . css ( "borderTopWidth" ) , 10 ) || 0 ) , left : t . left + ( parseInt ( this . offsetParent . css ( "borderLeftWidth" ) , 10 ) || 0 ) } } , _getRelativeOffset : function ( ) { if ( this . cssPosition == "relative" ) { var e = this . element . position ( ) ; return { top : e . top - ( parseInt ( this . helper . css ( "top" ) , 10 ) || 0 ) + this . scrollParent . scrollTop ( ) , left : e . left - ( parseInt ( this . helper . css
. originalPosition ; return { top : s . top + n , height : i . height - n } } , s : function ( e , t , n ) { return { height : this . originalSize . height + n } } , se : function ( t , n , r ) { return e . extend ( this . _change . s . apply ( this , arguments ) , this . _change . e . apply ( this , [ t , n , r ] ) ) } , sw : function ( t , n , r ) { return e . extend ( this . _change . s . apply ( this , arguments ) , this . _change . w . apply ( this , [ t , n , r ] ) ) } , ne : function ( t , n , r ) { return e . extend ( this . _change . n . apply ( this , arguments ) , this . _change . e . apply ( this , [ t , n , r ] ) ) } , nw : function ( t , n , r ) { return e . extend ( this . _change . n . apply ( this , arguments ) , this . _change . w . apply ( this , [ t , n , r ] ) ) } } , _propagate : function ( t , n ) { e . ui . plugin . call ( this , t , [ n , this . ui ( ) ] ) , t != "resize" && this . _trigger ( t , n , 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 } } } ) , e . extend ( e . ui . resizable , { version : "1.8.23" } ) , e . ui . plugin . add ( "resizable" , "alsoResize" , { start : function ( t , n ) { var r = e ( this ) . data ( "resizable" ) , i = r . options , s = function ( t ) { e ( t ) . each ( function ( ) { var t = e ( this ) ; t . data ( "resizable-alsoresize" , { width : parseInt ( t . width ( ) , 10 ) , height : parseInt ( t . height ( ) , 10 ) , left : parseInt ( t . css ( "left" ) , 10 ) , top : parseInt ( t . css ( "top" ) , 10 ) } ) } ) } ; typeof i . alsoResize == "object" && ! i . alsoResize . parentNode ? i . alsoResize . length ? ( i . alsoResize = i . alsoResize [ 0 ] , s ( i . alsoResize ) ) : e . each ( i . alsoResize , function ( e ) { s ( e ) } ) : s ( i . alsoResize ) } , resize : function ( t , n ) { var r = e ( this ) . data ( "resizable" ) , i = r . options , s = r . originalSize , o = r . originalPosition , u = { height : r . size . height - s . height || 0 , width : r . size . width - s . width || 0 , top : r . position . top - o . top || 0 , left : r . position . left - o . left || 0 } , a = function ( t , r ) { e ( t ) . each ( function ( ) { var t = e ( this ) , i = e ( this ) . data ( "resizable-alsoresize" ) , s = { } , o = r && r . length ? r : t . parents ( n . originalElement [ 0 ] ) . length ? [ "width" , "height" ] : [ "width" , "height" , "top" , "left" ] ; e . each ( o , function ( e , t ) { var n = ( i [ t ] || 0 ) + ( u [ t ] || 0 ) ; n && n >= 0 && ( s [ t ] = n || null ) } ) , t . css ( s ) } ) } ; typeof i . alsoResize == "object" && ! i . alsoResize . nodeType ? e . each ( i . alsoResize , function ( e , t ) { a ( e , t ) } ) : a ( i . alsoResize ) } , stop : function ( t , n ) { e ( this ) . removeData ( "resizable-alsoresize" ) } } ) , e . ui . plugin . add ( "resizable" , "animate" , { stop : function ( t , n ) { var r = e ( this ) . data ( "resizable" ) , i = r . options , s = r . _proportionallyResizeElements , o = s . length && /textarea/i . test ( s [ 0 ] . nodeName ) , u = o && e . ui . hasScroll ( s [ 0 ] , "left" ) ? 0 : r . sizeDiff . height , a = o ? 0 : r . sizeDiff . width , f = { width : r . size . width - a , height : r . size . height - u } , l = parseInt ( r . element . css ( "left" ) , 10 ) + ( r . position . left - r . originalPosition . left ) || null , c = parseInt ( r . element . css ( "top" ) , 10 ) + ( r . position . top - r . originalPosition . top ) || null ; r . element . animate ( e . extend ( f , c && l ? { top : c , left : l } : { } ) , { duration : i . animateDuration , easing : i . animateEasing , step : function ( ) { var n = { width : parseInt ( r . element . css ( "width" ) , 10 ) , height : parseInt ( r . element . css ( "height" ) , 10 ) , top : parseInt ( r . element . css ( "top" ) , 10 ) , left : parseInt ( r . element . css ( "left" ) , 10 ) } ; s && s . length && e ( s [ 0 ] ) . css ( { width : n . width , height : n . height } ) , r . _updateCache ( n ) , r . _propagate ( "resize" , t ) } } ) } } ) , e . ui . plugin . add ( "resizable" , "containment" , { start : function ( t , r ) { var i = e ( this ) . data ( "resizable" ) , s = i . options , o = i . element , u = s . containment , a = u instanceof e ? u . get ( 0 ) : /parent/ . test ( u ) ? o . parent ( ) . get ( 0 ) : u ; if ( ! a ) return ; i . containerElement = e ( a ) ; if ( /document/ . test ( u ) || u == document ) i . containerOffset = { left : 0 , top : 0 } , i . containerPosition = { left : 0 , top : 0 } , i . parentData = { element : e ( document ) , left : 0 , top : 0 , width : e ( document ) . width ( ) , height : e ( document ) . height ( ) || document . body . parentNode . scrollHeight } ; else { var f = e ( a ) , l = [ ] ; e ( [ "Top" , "Right" , "Left" , "Bottom" ] ) . each ( function ( e , t ) { l [ e ] = n ( f . css ( "padding" + t ) ) } ) , i . containerOffset = f . offset ( ) , i . containerPosition = f . position ( ) , i . containerSize = { height : f . innerHeight ( ) - l [ 3 ] , width : f . innerWidth ( ) - l [ 1 ] } ; var c = i . containerOffset , h = i . containerSize . height , p = i . containerSize . width , d = e . ui . hasScroll ( a , "left" ) ? a . scrollWidth : p , v = e . ui . hasScroll ( a ) ? a . scrollHeight : h ; i . parentData = { element : a , left : c . left , top : c . top , width : d , height : v } } } , resize : function ( t , n ) { var r = e ( this ) . data ( "resizable" ) , i = r . options , s = r . containerSize , o = r . containerOffset , u = r . size , a = r . position , f = r . _aspectRatio || t . shiftKey , l = { top : 0 , left : 0 } , c = r
. currentItem . prev ( ) . not ( ".ui-sortable-helper" ) [ 0 ] || this . domPosition . parent != this . currentItem . parent ( ) [ 0 ] ) && ! n && r . push ( function ( e ) { this . _trigger ( "update" , e , this . _uiHash ( ) ) } ) ; if ( ! e . ui . contains ( this . element [ 0 ] , this . currentItem [ 0 ] ) ) { n || r . push ( function ( e ) { this . _trigger ( "remove" , e , this . _uiHash ( ) ) } ) ; for ( var s = this . containers . length - 1 ; s >= 0 ; s -- ) e . ui . contains ( this . containers [ s ] . element [ 0 ] , this . currentItem [ 0 ] ) && ! n && ( r . push ( function ( e ) { return function ( t ) { e . _trigger ( "receive" , t , this . _uiHash ( this ) ) } } . call ( this , this . containers [ s ] ) ) , r . push ( function ( e ) { return function ( t ) { e . _trigger ( "update" , t , this . _uiHash ( this ) ) } } . call ( this , this . containers [ s ] ) ) ) } for ( var s = this . containers . length - 1 ; s >= 0 ; s -- ) n || r . push ( function ( e ) { return function ( t ) { e . _trigger ( "deactivate" , t , this . _uiHash ( this ) ) } } . call ( this , this . containers [ s ] ) ) , this . containers [ s ] . containerCache . over && ( r . push ( function ( e ) { return function ( t ) { e . _trigger ( "out" , t , this . _uiHash ( this ) ) } } . call ( this , this . containers [ s ] ) ) , this . containers [ s ] . containerCache . over = 0 ) ; this . _storedCursor && e ( "body" ) . css ( "cursor" , this . _storedCursor ) , this . _storedOpacity && this . helper . css ( "opacity" , this . _storedOpacity ) , this . _storedZIndex && this . helper . css ( "zIndex" , this . _storedZIndex == "auto" ? "" : this . _storedZIndex ) , this . dragging = ! 1 ; if ( this . cancelHelperRemoval ) { if ( ! n ) { this . _trigger ( "beforeStop" , t , this . _uiHash ( ) ) ; for ( var s = 0 ; s < r . length ; s ++ ) r [ s ] . call ( this , t ) ; this . _trigger ( "stop" , t , this . _uiHash ( ) ) } return this . fromOutside = ! 1 , ! 1 } n || this . _trigger ( "beforeStop" , t , this . _uiHash ( ) ) , this . placeholder [ 0 ] . parentNode . removeChild ( this . placeholder [ 0 ] ) , this . helper [ 0 ] != this . currentItem [ 0 ] && this . helper . remove ( ) , this . helper = null ; if ( ! n ) { for ( var s = 0 ; s < r . length ; s ++ ) r [ s ] . call ( this , t ) ; this . _trigger ( "stop" , t , this . _uiHash ( ) ) } return this . fromOutside = ! 1 , ! 0 } , _trigger : function ( ) { e . Widget . prototype . _trigger . apply ( this , arguments ) === ! 1 && this . cancel ( ) } , _uiHash : function ( t ) { var n = t || this ; return { helper : n . helper , placeholder : n . placeholder || e ( [ ] ) , position : n . position , originalPosition : n . originalPosition , offset : n . positionAbs , item : n . currentItem , sender : t ? t . element : null } } } ) , e . extend ( e . ui . sortable , { version : "1.8.23" } ) } ( jQuery ) , jQuery . effects || function ( e , t ) { function n ( t ) { var n ; return t && t . constructor == Array && t . length == 3 ? t : ( n = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/ . exec ( t ) ) ? [ parseInt ( n [ 1 ] , 10 ) , parseInt ( n [ 2 ] , 10 ) , parseInt ( n [ 3 ] , 10 ) ] : ( n = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/ . exec ( t ) ) ? [ parseFloat ( n [ 1 ] ) * 2.55 , parseFloat ( n [ 2 ] ) * 2.55 , parseFloat ( n [ 3 ] ) * 2.55 ] : ( n = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/ . exec ( t ) ) ? [ parseInt ( n [ 1 ] , 16 ) , parseInt ( n [ 2 ] , 16 ) , parseInt ( n [ 3 ] , 16 ) ] : ( n = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/ . exec ( t ) ) ? [ parseInt ( n [ 1 ] + n [ 1 ] , 16 ) , parseInt ( n [ 2 ] + n [ 2 ] , 16 ) , parseInt ( n [ 3 ] + n [ 3 ] , 16 ) ] : ( n = /rgba\(0, 0, 0, 0\)/ . exec ( t ) ) ? i . transparent : i [ e . trim ( t ) . toLowerCase ( ) ] } function r ( t , r ) { var i ; do { i = ( e . curCSS || e . css ) ( t , r ) ; if ( i != "" && i != "transparent" || e . nodeName ( t , "body" ) ) break ; r = "backgroundColor" } while ( t = t . parentNode ) ; return n ( i ) } function u ( ) { var e = document . defaultView ? document . defaultView . getComputedStyle ( this , null ) : this . currentStyle , t = { } , n , r ; if ( e && e . length && e [ 0 ] && e [ e [ 0 ] ] ) { var i = e . length ; while ( i -- ) n = e [ i ] , typeof e [ n ] == "string" && ( r = n . replace ( /\-(\w)/g , function ( e , t ) { return t . toUpperCase ( ) } ) , t [ r ] = e [ n ] ) } else for ( n in e ) typeof e [ n ] == "string" && ( t [ n ] = e [ n ] ) ; return t } function a ( t ) { var n , r ; for ( n in t ) r = t [ n ] , ( r == null || e . isFunction ( r ) || n in o || /scrollbar/ . test ( n ) || ! /color/i . test ( n ) && isNaN ( parseFloat ( r ) ) ) && delete t [ n ] ; return t } function f ( e , t ) { var n = { _ : 0 } , r ; for ( r in t ) e [ r ] != t [ r ] && ( n [ r ] = t [ r ] ) ; return n } function l ( t , n , r , i ) { typeof t == "object" && ( i = n , r = null , n = t , t = n . effect ) , e . isFunction ( n ) && ( i = n , r = null , n = { } ) ; if ( typeof n == "number" || e . fx . speeds [ n ] ) i = r , r = n , n = { } ; return e . isFunction ( r ) && ( i = r , r = null ) , n = n || { } , r = r || n . duration , r = e . fx . off ? 0 : typeof r == "number" ? r : r in e . fx . speeds ? e . fx . speeds [ r ] : e . fx . speeds . _default , i = i || n . complete , [ t , n , r , i ] } function c ( t ) { return ! t || typeof t == "number" || e . fx . speeds [ t ] ? ! 0 : typeof t == "string" && ! e . effects [ t ] ? ! 0 : ! 1 } e . effects = { } , e . each ( [ "backgroundColor" , "borderBottomColor" , "borderLeftColor" , "borderRightColor" , " borderTopColor
. preventDefault ( ) ) ; case i . TAB : if ( ! t . menu . active ) return ; t . menu . select ( n ) ; break ; case i . ESCAPE : t . element . val ( t . term ) , t . close ( n ) ; break ; default : clearTimeout ( t . searching ) , t . searching = setTimeout ( function ( ) { t . term != t . element . val ( ) && ( t . selectedItem = null , t . search ( null , n ) ) } , t . options . delay ) } } ) . bind ( "keypress.autocomplete" , function ( e ) { r && ( r = ! 1 , e . preventDefault ( ) ) } ) . bind ( "focus.autocomplete" , function ( ) { if ( t . options . disabled ) return ; t . selectedItem = null , t . previous = t . element . val ( ) } ) . bind ( "blur.autocomplete" , function ( e ) { if ( t . options . disabled ) return ; clearTimeout ( t . searching ) , t . closing = setTimeout ( function ( ) { t . close ( e ) , t . _change ( e ) } , 150 ) } ) , this . _initSource ( ) , this . menu = e ( "<ul></ul>" ) . addClass ( "ui-autocomplete" ) . appendTo ( e ( this . options . appendTo || "body" , n ) [ 0 ] ) . mousedown ( function ( n ) { var r = t . menu . element [ 0 ] ; e ( n . target ) . closest ( ".ui-menu-item" ) . length || setTimeout ( function ( ) { e ( document ) . one ( "mousedown" , function ( n ) { n . target !== t . element [ 0 ] && n . target !== r && ! e . ui . contains ( r , n . target ) && t . close ( ) } ) } , 1 ) , setTimeout ( function ( ) { clearTimeout ( t . closing ) } , 13 ) } ) . menu ( { focus : function ( e , n ) { var r = n . item . data ( "item.autocomplete" ) ; ! 1 !== t . _trigger ( "focus" , e , { item : r } ) && /^key/ . test ( e . originalEvent . type ) && t . element . val ( r . value ) } , selected : function ( e , r ) { var i = r . item . data ( "item.autocomplete" ) , s = t . previous ; t . element [ 0 ] !== n . activeElement && ( t . element . focus ( ) , t . previous = s , setTimeout ( function ( ) { t . previous = s , t . selectedItem = i } , 1 ) ) , ! 1 !== t . _trigger ( "select" , e , { item : i } ) && t . element . val ( i . value ) , t . term = t . element . val ( ) , t . close ( e ) , t . selectedItem = i } , blur : function ( e , n ) { t . menu . element . is ( ":visible" ) && t . element . val ( ) !== t . term && t . element . val ( t . term ) } } ) . zIndex ( this . element . zIndex ( ) + 1 ) . css ( { top : 0 , left : 0 } ) . hide ( ) . data ( "menu" ) , e . fn . bgiframe && this . menu . element . bgiframe ( ) , t . beforeunloadHandler = function ( ) { t . element . removeAttr ( "autocomplete" ) } , e ( window ) . bind ( "beforeunload" , t . beforeunloadHandler ) } , destroy : function ( ) { this . element . removeClass ( "ui-autocomplete-input" ) . removeAttr ( "autocomplete" ) . removeAttr ( "role" ) . removeAttr ( "aria-autocomplete" ) . removeAttr ( "aria-haspopup" ) , this . menu . element . remove ( ) , e ( window ) . unbind ( "beforeunload" , this . beforeunloadHandler ) , e . Widget . prototype . destroy . call ( this ) } , _setOption : function ( t , n ) { e . Widget . prototype . _setOption . apply ( this , arguments ) , t === "source" && this . _initSource ( ) , t === "appendTo" && this . menu . element . appendTo ( e ( n || "body" , this . element [ 0 ] . ownerDocument ) [ 0 ] ) , t === "disabled" && n && this . xhr && this . xhr . abort ( ) } , _initSource : function ( ) { var t = this , n , r ; e . isArray ( this . options . source ) ? ( n = this . options . source , this . source = function ( t , r ) { r ( e . ui . autocomplete . filter ( n , t . term ) ) } ) : typeof this . options . source == "string" ? ( r = this . options . source , this . source = function ( n , i ) { t . xhr && t . xhr . abort ( ) , t . xhr = e . ajax ( { url : r , data : n , dataType : "json" , success : function ( e , t ) { i ( e ) } , error : function ( ) { i ( [ ] ) } } ) } ) : this . source = this . options . source } , search : function ( e , t ) { e = e != null ? e : this . element . val ( ) , this . term = this . element . val ( ) ; if ( e . length < this . options . minLength ) return this . close ( t ) ; clearTimeout ( this . closing ) ; if ( this . _trigger ( "search" , t ) === ! 1 ) return ; return this . _search ( e ) } , _search : function ( e ) { this . pending ++ , this . element . addClass ( "ui-autocomplete-loading" ) , this . source ( { term : e } , this . _response ( ) ) } , _response : function ( ) { var e = this , t = ++ n ; return function ( r ) { t === n && e . _ _response ( r ) , e . pending -- , e . pending || e . element . removeClass ( "ui-autocomplete-loading" ) } } , _ _response : function ( e ) { ! this . options . disabled && e && e . length ? ( e = this . _normalize ( e ) , this . _suggest ( e ) , this . _trigger ( "open" ) ) : this . close ( ) } , close : function ( e ) { clearTimeout ( this . closing ) , this . menu . element . is ( ":visible" ) && ( this . menu . element . hide ( ) , this . menu . deactivate ( ) , this . _trigger ( "close" , e ) ) } , _change : function ( e ) { this . previous !== this . element . val ( ) && this . _trigger ( "change" , e , { item : this . selectedItem } ) } , _normalize : function ( t ) { return t . length && t [ 0 ] . label && t [ 0 ] . value ? t : e . map ( t , function ( t ) { return typeof t == "string" ? { label : t , value : t } : e . extend ( { label : t . label || t . value , value : t . value || t . label } , t ) } ) } , _suggest : function ( t ) { var n = this . menu . element . empty ( ) . zIndex ( this . element . zIndex ( ) + 1 ) ; this . _renderMenu ( n , t ) , this . menu . deactivate ( ) , this . menu . refresh ( ) , n . show ( ) , this . _resizeMenu ( ) , n . position ( e . extend ( { of : this .
( ) , $ ( "body" ) . append ( this . dpDiv ) ) ) , this . _inDialog = ! 1 } } , _tidyDialog : function ( e ) { e . dpDiv . removeClass ( this . _dialogClass ) . unbind ( ".ui-datepicker-calendar" ) } , _checkExternalClick : function ( e ) { if ( ! $ . datepicker . _curInst ) return ; var t = $ ( e . target ) , n = $ . datepicker . _getInst ( t [ 0 ] ) ; ( t [ 0 ] . id != $ . datepicker . _mainDivId && t . parents ( "#" + $ . datepicker . _mainDivId ) . length == 0 && ! t . hasClass ( $ . datepicker . markerClassName ) && ! t . closest ( "." + $ . datepicker . _triggerClass ) . length && $ . datepicker . _datepickerShowing && ( ! $ . datepicker . _inDialog || ! $ . blockUI ) || t . hasClass ( $ . datepicker . markerClassName ) && $ . datepicker . _curInst != n ) && $ . datepicker . _hideDatepicker ( ) } , _adjustDate : function ( e , t , n ) { var r = $ ( e ) , i = this . _getInst ( r [ 0 ] ) ; if ( this . _isDisabledDatepicker ( r [ 0 ] ) ) return ; this . _adjustInstDate ( i , t + ( n == "M" ? this . _get ( i , "showCurrentAtPos" ) : 0 ) , n ) , this . _updateDatepicker ( i ) } , _gotoToday : function ( e ) { var t = $ ( e ) , n = this . _getInst ( t [ 0 ] ) ; if ( this . _get ( n , "gotoCurrent" ) && n . currentDay ) n . selectedDay = n . currentDay , n . drawMonth = n . selectedMonth = n . currentMonth , n . drawYear = n . selectedYear = n . currentYear ; else { var r = new Date ; n . selectedDay = r . getDate ( ) , n . drawMonth = n . selectedMonth = r . getMonth ( ) , n . drawYear = n . selectedYear = r . getFullYear ( ) } this . _notifyChange ( n ) , this . _adjustDate ( t ) } , _selectMonthYear : function ( e , t , n ) { var r = $ ( e ) , i = this . _getInst ( r [ 0 ] ) ; i [ "selected" + ( n == "M" ? "Month" : "Year" ) ] = i [ "draw" + ( n == "M" ? "Month" : "Year" ) ] = parseInt ( t . options [ t . selectedIndex ] . value , 10 ) , this . _notifyChange ( i ) , this . _adjustDate ( r ) } , _selectDay : function ( e , t , n , r ) { var i = $ ( e ) ; if ( $ ( r ) . hasClass ( this . _unselectableClass ) || this . _isDisabledDatepicker ( i [ 0 ] ) ) return ; var s = this . _getInst ( i [ 0 ] ) ; s . selectedDay = s . currentDay = $ ( "a" , r ) . html ( ) , s . selectedMonth = s . currentMonth = t , s . selectedYear = s . currentYear = n , this . _selectDate ( e , this . _formatDate ( s , s . currentDay , s . currentMonth , s . currentYear ) ) } , _clearDate : function ( e ) { var t = $ ( e ) , n = this . _getInst ( t [ 0 ] ) ; this . _selectDate ( t , "" ) } , _selectDate : function ( e , t ) { var n = $ ( e ) , r = this . _getInst ( n [ 0 ] ) ; t = t != null ? t : this . _formatDate ( r ) , r . input && r . input . val ( t ) , this . _updateAlternate ( r ) ; var i = this . _get ( r , "onSelect" ) ; i ? i . apply ( r . input ? r . input [ 0 ] : null , [ t , r ] ) : r . input && r . input . trigger ( "change" ) , r . inline ? this . _updateDatepicker ( r ) : ( this . _hideDatepicker ( ) , this . _lastInput = r . input [ 0 ] , typeof r . input [ 0 ] != "object" && r . input . focus ( ) , this . _lastInput = null ) } , _updateAlternate : function ( e ) { var t = this . _get ( e , "altField" ) ; if ( t ) { var n = this . _get ( e , "altFormat" ) || this . _get ( e , "dateFormat" ) , r = this . _getDate ( e ) , i = this . formatDate ( n , r , this . _getFormatConfig ( e ) ) ; $ ( t ) . each ( function ( ) { $ ( this ) . val ( i ) } ) } } , noWeekends : function ( e ) { var t = e . getDay ( ) ; return [ t > 0 && t < 6 , "" ] } , iso8601Week : function ( e ) { var t = new Date ( e . getTime ( ) ) ; t . setDate ( t . getDate ( ) + 4 - ( t . getDay ( ) || 7 ) ) ; var n = t . getTime ( ) ; return t . setMonth ( 0 ) , t . setDate ( 1 ) , Math . floor ( Math . round ( ( n - t ) / 864e5 ) / 7 ) + 1 } , parseDate : function ( e , t , n ) { if ( e == null || t == null ) throw "Invalid arguments" ; t = typeof t == "object" ? t . toString ( ) : t + "" ; if ( t == "" ) return null ; var r = ( n ? n . shortYearCutoff : null ) || this . _defaults . shortYearCutoff ; r = typeof r != "string" ? r : ( new Date ) . getFullYear ( ) % 100 + parseInt ( r , 10 ) ; var i = ( n ? n . dayNamesShort : null ) || this . _defaults . dayNamesShort , s = ( n ? n . dayNames : null ) || this . _defaults . dayNames , o = ( n ? n . monthNamesShort : null ) || this . _defaults . monthNamesShort , u = ( n ? n . monthNames : null ) || this . _defaults . monthNames , a = - 1 , f = - 1 , l = - 1 , c = - 1 , h = ! 1 , p = function ( t ) { var n = y + 1 < e . length && e . charAt ( y + 1 ) == t ; return n && y ++ , n } , d = function ( e ) { var n = p ( e ) , r = e == "@" ? 14 : e == "!" ? 20 : e == "y" && n ? 4 : e == "o" ? 3 : 2 , i = new RegExp ( "^\\d{1," + r + "}" ) , s = t . substring ( g ) . match ( i ) ; if ( ! s ) throw "Missing number at position " + g ; return g += s [ 0 ] . length , parseInt ( s [ 0 ] , 10 ) } , v = function ( e , n , r ) { var i = $ . map ( p ( e ) ? r : n , function ( e , t ) { return [ [ t , e ] ] } ) . sort ( function ( e , t ) { return - ( e [ 1 ] . length - t [ 1 ] . length ) } ) , s = - 1 ; $ . each ( i , function ( e , n ) { var r = n [ 1 ] ; if ( t . substr ( g , r . length ) . toLowerCase ( ) == r . toLowerCase ( ) ) return s = n [ 0 ] , g += r . length , ! 1 } ) ; if ( s != - 1 ) return s + 1 ; throw "Unknown name at position " + g } , m = function ( ) { if ( t . charAt ( g ) != e . charAt ( y ) ) throw "Unexpected literal at position " + g ; g ++ } , g = 0 ; for ( var y = 0 ; y < e . length ; y ++ ) if ( h ) e . charAt ( y ) == "'" && ! p ( "'" ) ? h = ! 1 : m ( ) ; else switch ( e . charAt ( y ) ) { case "d" : l = d ( "d" ) ; break ; case "D" : v ( "D" , i , s ) ; break ; case "o" : c = d ( "o" ) ; break ; case "m" : f = d ( "m" ) ; break ; case
. top , t . top ) } } , flip : { left : function ( t , n ) { if ( n . at [ 0 ] === i ) return ; var r = e ( window ) , s = n . collisionPosition . left + n . collisionWidth - r . width ( ) - r . scrollLeft ( ) , o = n . my [ 0 ] === "left" ? - n . elemWidth : n . my [ 0 ] === "right" ? n . elemWidth : 0 , u = n . at [ 0 ] === "left" ? n . targetWidth : - n . targetWidth , a = - 2 * n . offset [ 0 ] ; t . left += n . collisionPosition . left < 0 ? o + u + a : s > 0 ? o + u + a : 0 } , top : function ( t , n ) { if ( n . at [ 1 ] === i ) return ; var r = e ( window ) , s = n . collisionPosition . top + n . collisionHeight - r . height ( ) - r . scrollTop ( ) , o = n . my [ 1 ] === "top" ? - n . elemHeight : n . my [ 1 ] === "bottom" ? n . elemHeight : 0 , u = n . at [ 1 ] === "top" ? n . targetHeight : - n . targetHeight , a = - 2 * n . offset [ 1 ] ; t . top += n . collisionPosition . top < 0 ? o + u + a : s > 0 ? o + u + a : 0 } } } , e . offset . setOffset || ( e . offset . setOffset = function ( t , n ) { /static/ . test ( e . curCSS ( t , "position" ) ) && ( t . style . position = "relative" ) ; var r = e ( t ) , i = r . offset ( ) , s = parseInt ( e . curCSS ( t , "top" , ! 0 ) , 10 ) || 0 , o = parseInt ( e . curCSS ( t , "left" , ! 0 ) , 10 ) || 0 , u = { top : n . top - i . top + s , left : n . left - i . left + o } ; "using" in n ? n . using . call ( t , u ) : r . css ( u ) } , e . fn . offset = function ( t ) { var n = this [ 0 ] ; return ! n || ! n . ownerDocument ? null : t ? e . isFunction ( t ) ? this . each ( function ( n ) { e ( this ) . offset ( t . call ( this , n , e ( this ) . offset ( ) ) ) } ) : this . each ( function ( ) { e . offset . setOffset ( this , t ) } ) : u . call ( this ) } ) , e . curCSS || ( e . curCSS = e . css ) , function ( ) { var t = document . getElementsByTagName ( "body" ) [ 0 ] , n = document . createElement ( "div" ) , r , i , o , u , a ; r = document . createElement ( t ? "div" : "body" ) , o = { visibility : "hidden" , width : 0 , height : 0 , border : 0 , margin : 0 , background : "none" } , t && e . extend ( o , { position : "absolute" , left : "-1000px" , top : "-1000px" } ) ; for ( var f in o ) r . style [ f ] = o [ f ] ; r . appendChild ( n ) , i = t || document . documentElement , i . insertBefore ( r , i . firstChild ) , n . style . cssText = "position: absolute; left: 10.7432222px; top: 10.432325px; height: 30px; width: 201px;" , u = e ( n ) . offset ( function ( e , t ) { return t } ) . offset ( ) , r . innerHTML = "" , i . removeChild ( r ) , a = u . top + u . left + ( t ? 2e3 : 0 ) , s . fractions = a > 21 && a < 22 } ( ) } ( jQuery ) , function ( e , t ) { e . widget ( "ui.progressbar" , { options : { value : 0 , max : 100 } , min : 0 , _create : function ( ) { this . element . addClass ( "ui-progressbar ui-widget ui-widget-content ui-corner-all" ) . attr ( { role : "progressbar" , "aria-valuemin" : this . min , "aria-valuemax" : this . options . max , "aria-valuenow" : this . _value ( ) } ) , this . valueDiv = e ( "<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>" ) . appendTo ( this . element ) , this . oldValue = this . _value ( ) , this . _refreshValue ( ) } , destroy : function ( ) { this . element . removeClass ( "ui-progressbar ui-widget ui-widget-content ui-corner-all" ) . removeAttr ( "role" ) . removeAttr ( "aria-valuemin" ) . removeAttr ( "aria-valuemax" ) . removeAttr ( "aria-valuenow" ) , this . valueDiv . remove ( ) , e . Widget . prototype . destroy . apply ( this , arguments ) } , value : function ( e ) { return e === t ? this . _value ( ) : ( this . _setOption ( "value" , e ) , this ) } , _setOption : function ( t , n ) { t === "value" && ( this . options . value = n , this . _refreshValue ( ) , this . _value ( ) === this . options . max && this . _trigger ( "complete" ) ) , e . Widget . prototype . _setOption . apply ( this , arguments ) } , _value : function ( ) { var e = this . options . value ; return typeof e != "number" && ( e = 0 ) , Math . min ( this . options . max , Math . max ( this . min , e ) ) } , _percentage : function ( ) { return 100 * this . _value ( ) / this . options . max } , _refreshValue : function ( ) { var e = this . value ( ) , t = this . _percentage ( ) ; this . oldValue !== e && ( this . oldValue = e , this . _trigger ( "change" ) ) , this . valueDiv . toggle ( e > this . min ) . toggleClass ( "ui-corner-right" , e === this . options . max ) . width ( t . toFixed ( 0 ) + "%" ) , this . element . attr ( "aria-valuenow" , e ) } } ) , e . extend ( e . ui . progressbar , { version : "1.8.23" } ) } ( jQuery ) , function ( e , t ) { var n = 5 ; e . widget ( "ui.slider" , e . 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 t = this , r = this . options , i = this . element . find ( ".ui-slider-handle" ) . addClass ( "ui-state-default ui-corner-all" ) , s = "<a class='ui-slider-handle ui-state-default ui-corner-all' href='#'></a>" , o = r . values && r . values . length || 1 , u = [ ] ; this . _keySliding = ! 1 , this . _mouseSliding = ! 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" + ( r . disabled ? " ui-slider-disabled ui-disabled" : "" ) ) , this
( e . data . editor . blurTimer ) , e . data . editor . update ( ) } , cancelButtonHandler : function ( e ) { e . data . editor . userClicked = ! 0 , clearTimeout ( e . data . editor . blurTimer ) , e . data . editor . abort ( ) , e . stopPropagation ( ) } , keyupHandler : function ( e ) { e . keyCode == 27 && e . data . editor . abort ( ) } } , date : { activateForm : function ( ) { var e = this , t = jQuery ( document . createElement ( "form" ) ) . addClass ( "form_in_place" ) . attr ( "action" , "javascript:void(0);" ) . attr ( "style" , "display:inline" ) , n = jQuery ( document . createElement ( "input" ) ) . attr ( "type" , "text" ) . attr ( "name" , this . attributeName ) . attr ( "value" , this . sanitizeValue ( this . display _value ) ) ; this . inner _class !== null && n . addClass ( this . inner _class ) , t . append ( n ) , this . element . html ( t ) , this . setHtmlAttributes ( ) , this . element . find ( "input" ) [ 0 ] . select ( ) , this . element . find ( "form" ) . bind ( "submit" , { editor : this } , BestInPlaceEditor . forms . input . submitHandler ) , this . element . find ( "input" ) . bind ( "keyup" , { editor : this } , BestInPlaceEditor . forms . input . keyupHandler ) , this . element . find ( "input" ) . datepicker ( { onClose : function ( ) { e . update ( ) } } ) . datepicker ( "show" ) } , getValue : function ( ) { return this . sanitizeValue ( this . element . find ( "input" ) . val ( ) ) } , submitHandler : function ( e ) { e . data . editor . update ( ) } , keyupHandler : function ( e ) { e . keyCode == 27 && e . data . editor . abort ( ) } } , select : { activateForm : function ( ) { var e = jQuery ( document . createElement ( "form" ) ) . attr ( "action" , "javascript:void(0)" ) . attr ( "style" , "display:inline" ) ; selected = "" , oldValue = this . oldValue , select _elt = jQuery ( document . createElement ( "select" ) ) , currentCollectionValue = this . collectionValue , jQuery . each ( this . values , function ( e , t ) { var n = jQuery ( document . createElement ( "option" ) ) . val ( t [ 0 ] ) . html ( t [ 1 ] ) ; t [ 0 ] == currentCollectionValue && n . attr ( "selected" , "selected" ) , select _elt . append ( n ) } ) , e . append ( select _elt ) , this . element . html ( e ) , this . setHtmlAttributes ( ) , this . element . find ( "select" ) . bind ( "change" , { editor : this } , BestInPlaceEditor . forms . select . blurHandler ) , this . element . find ( "select" ) . bind ( "blur" , { editor : this } , BestInPlaceEditor . forms . select . blurHandler ) , this . element . find ( "select" ) . bind ( "keyup" , { editor : this } , BestInPlaceEditor . forms . select . keyupHandler ) , this . element . find ( "select" ) [ 0 ] . focus ( ) } , getValue : function ( ) { return this . sanitizeValue ( this . element . find ( "select" ) . val ( ) ) } , blurHandler : function ( e ) { e . data . editor . update ( ) } , keyupHandler : function ( e ) { e . keyCode == 27 && e . data . editor . abort ( ) } } , checkbox : { activateForm : function ( ) { var e = Boolean ( this . oldValue . toLowerCase ( ) != this . values [ 1 ] . toLowerCase ( ) ) , t = e ? this . values [ 1 ] : this . values [ 0 ] ; this . element . html ( t ) , this . setHtmlAttributes ( ) , this . update ( ) } , getValue : function ( ) { return Boolean ( this . element . html ( ) . toLowerCase ( ) == this . values [ 1 ] . toLowerCase ( ) ) } } , textarea : { activateForm : function ( ) { width = this . element . css ( "width" ) , height = this . element . css ( "height" ) ; var e = jQuery ( document . createElement ( "form" ) ) . attr ( "action" , "javascript:void(0)" ) . attr ( "style" , "display:inline" ) . append ( jQuery ( document . createElement ( "textarea" ) ) . val ( this . sanitizeValue ( this . display _value ) ) ) ; this . okButton && e . append ( jQuery ( document . createElement ( "input" ) ) . attr ( "type" , "submit" ) . attr ( "value" , this . okButton ) ) , this . cancelButton && e . append ( jQuery ( document . createElement ( "input" ) ) . attr ( "type" , "button" ) . attr ( "value" , this . cancelButton ) ) , this . element . html ( e ) , this . setHtmlAttributes ( ) , jQuery ( this . element . find ( "textarea" ) [ 0 ] ) . css ( { "min-width" : width , "min-height" : height } ) , jQuery ( this . element . find ( "textarea" ) [ 0 ] ) . elastic ( ) , this . element . find ( "textarea" ) [ 0 ] . focus ( ) , this . element . find ( "form" ) . bind ( "submit" , { editor : this } , BestInPlaceEditor . forms . textarea . submitHandler ) , this . cancelButton && this . element . find ( "input[type='button']" ) . bind ( "click" , { editor : this } , BestInPlaceEditor . forms . textarea . cancelButtonHandler ) , this . element . find ( "textarea" ) . bind ( "blur" , { editor : this } , BestInPlaceEditor . forms . textarea . blurHandler ) , this . element . find ( "textarea" ) . bind ( "keyup" , { editor : this } , BestInPlaceEditor . forms . textarea . keyupHandler ) , this . blurTimer = null , this . userClicked = ! 1 } , getValue : function ( ) { return this . sanitizeValue ( this . element . find ( "textarea" ) . val ( ) ) } , blurHandler : function ( e ) { e . data . editor . okButton ? e . data . editor . blurTimer = setTimeout ( function ( ) { e . data . editor . userClicked || e . data . editor . abortIfConfirm ( ) } , 500 ) : e . data . editor
. Person = ! 0 , categoryVisible . Bizarre = ! 0 , categoryVisible . Catalyst = ! 0 , categoryVisible . Closed = ! 0 , categoryVisible . Experience = ! 0 , categoryVisible [ "Future Dev" ] = ! 0 , categoryVisible . Idea = ! 0 , categoryVisible . Implication = ! 0 , categoryVisible . Insight = ! 0 , categoryVisible . Intention = ! 0 , categoryVisible . Knowledge = ! 0 , categoryVisible . Location = ! 0 , categoryVisible [ "Open Issue" ] = ! 0 , categoryVisible . Opinion = ! 0 , categoryVisible . Opportunity = ! 0 , categoryVisible . Platform = ! 0 , categoryVisible . Problem = ! 0 , categoryVisible . Question = ! 0 , categoryVisible . Reference = ! 0 , categoryVisible . Requirement = ! 0 , categoryVisible . Resource = ! 0 , categoryVisible . Role = ! 0 , categoryVisible . Task = ! 0 , categoryVisible . Tool = ! 0 , categoryVisible . Trajectory = ! 0 , categoryVisible . Action = ! 0 , categoryVisible . Activity = ! 0 ; var findTopics = [ "name" , "metacode" , "mapper (by name)" , "map (by name)" ] , findSynapses = [ "topics (by name)" , "directionality" , "mapper (by name)" , "map (by name)" ] , findMaps = [ "name" , "topic (by name)" , "mapper (by name)" , "synapse (by topics)" ] , findMappers = [ "name" , "topic (by name)" , "map (by name)" , "synapse (by topics)" ] ; $ ( document ) . ready ( function ( ) { $ ( "#sideOptionFind" ) . bind ( "click" , function ( ) { findOpen || openFind ( ) } ) , $ ( "#closeFind" ) . bind ( "click" , function ( ) { findOpen && closeFind ( ) } ) , $ ( "#topic_by_name_input" ) . typing ( { start : function ( e , t ) { firstVal = $ ( "#onCanvas" ) . attr ( "checked" ) , secondVal = $ ( "#inCommons" ) . attr ( "checked" ) , clearFoundData ( ) , firstVal == "checked" && secondVal == "checked" ? $ ( "#topic_by_name_input" ) . autocomplete ( "option" , "disabled" , ! 0 ) : firstVal == "checked" ? ( setTimeout ( function ( ) { showAll ( ) } , 0 ) , $ ( "#topic_by_name_input" ) . autocomplete ( "option" , "disabled" , ! 0 ) ) : secondVal == "checked" ? $ ( "#topic_by_name_input" ) . autocomplete ( "option" , "disabled" , ! 0 ) : alert ( "You either need to have searching On Your Canvas or In the Commons enabled" ) } , stop : function ( e , t ) { firstVal = $ ( "#onCanvas" ) . attr ( "checked" ) , secondVal = $ ( "#inCommons" ) . attr ( "checked" ) ; var n = $ ( "#topic_by_name_input" ) . val ( ) ; firstVal == "checked" && secondVal == "checked" ? ( setTimeout ( function ( ) { onCanvasSearch ( n , null , null ) } , 0 ) , $ ( "#topicsByName" ) . val ( n ) , $ ( "#topicsByUser" ) . val ( "" ) , $ ( "#topicsByMap" ) . val ( "" ) , $ ( "#get_topics_form" ) . submit ( ) ) : firstVal == "checked" ? setTimeout ( function ( ) { onCanvasSearch ( n , null , null ) } , 0 ) : secondVal == "checked" && ( $ ( "#topicsByName" ) . val ( n ) , $ ( "#topicsByUser" ) . val ( "" ) , $ ( "#topicsByMap" ) . val ( "" ) , $ ( "#get_topics_form" ) . submit ( ) ) , n == "" && clearFoundData ( ) } , delay : 2e3 } ) , $ ( "#sideOptionFind .select_content" ) . change ( function ( ) { firstVal = $ ( this ) . children ( "option[value='topics']" ) . attr ( "selected" ) , secondVal = $ ( this ) . children ( "option[value='maps']" ) . attr ( "selected" ) , thirdVal = $ ( this ) . children ( "option[value='mappers']" ) . attr ( "selected" ) , firstVal == "selected" ? ( $ ( "#sideOptionFind .select_type" ) . children ( "option[value='metacode']" ) . removeAttr ( "disabled" ) , $ ( "#sideOptionFind .select_type" ) . children ( "option[value='map (by name)']" ) . removeAttr ( "disabled" ) , $ ( "#sideOptionFind .select_type" ) . children ( "option[value='mapper (by name)']" ) . removeAttr ( "disabled" ) , $ ( ".find" ) . css ( "display" , "none" ) , $ ( ".find_topic_by_name" ) . css ( "display" , "block" ) , $ ( "#topic_by_name_input" ) . focus ( ) ) : secondVal == "selected" ? ( $ ( "#sideOptionFind .select_type" ) . val ( ) != "name" && ( $ ( "#sideOptionFind .select_type" ) . val ( "name" ) , $ ( "#sideOptionFind" ) . animate ( { width : "305px" , height : "76px" } , 300 , function ( ) { } ) ) , $ ( "#sideOptionFind .select_type" ) . children ( "option[value='metacode']" ) . attr ( "disabled" , "disabled" ) , $ ( "#sideOptionFind .select_type" ) . children ( "option[value='map (by name)']" ) . attr ( "disabled" , "disabled" ) , $ ( "#sideOptionFind .select_type" ) . children ( "option[value='mapper (by name)']" ) . attr ( "disabled" , "disabled" ) , $ ( ".find" ) . css ( "display" , "none" ) , $ ( ".find_map_by_name" ) . css ( "display" , "block" ) , $ ( "#map_by_name_input" ) . focus ( ) ) : thirdVal == "selected" && ( $ ( "#sideOptionFind .select_type" ) . val ( "name" ) , $ ( "#sideOptionFind .select_type" ) . children ( "option[value='metacode']" ) . attr ( "disabled" , "disabled" ) , $ ( "#sideOptionFind .select_type" ) . children ( "option[value='map (by name)']" ) . attr ( "disabled" , "disabled" ) , $ ( "#sideOptionFind .select_type" ) . children ( "option[value='mapper (by name)']" ) . attr ( "disabled" , "disabled" ) , $ ( ".find" ) . css ( "display" , "none" ) , $ ( " . find _mapper _b
e ) { t . fx . plot ( ) } , resize : function ( ) { t . refresh ( ) } } ) ) ; var c = n . background ; if ( c ) { var h = new f . Background [ c . type ] ( t , e . extend ( c , l ) ) ; this . canvases . push ( new f . Base ( h ) ) } var p = this . canvases . length ; while ( p -- ) this . element . appendChild ( this . canvases [ p ] . canvas ) , p > 0 && this . canvases [ p ] . plot ( ) ; this . element . appendChild ( this . labelContainer ) , o . appendChild ( this . element ) ; var d = null , v = this ; e . addEvent ( window , "scroll" , function ( ) { clearTimeout ( d ) , d = setTimeout ( function ( ) { v . getPos ( ! 0 ) } , 500 ) } ) } , getCtx : function ( e ) { return this . canvases [ e || 0 ] . getCtx ( ) } , getConfig : function ( ) { return this . opt } , getElement : function ( ) { return this . element } , getSize : function ( e ) { return this . canvases [ e || 0 ] . getSize ( ) } , resize : function ( e , t ) { this . getPos ( ! 0 ) , this . translateOffsetX = this . translateOffsetY = 0 , this . scaleOffsetX = this . scaleOffsetY = 1 ; for ( var n = 0 , r = this . canvases . length ; n < r ; n ++ ) this . canvases [ n ] . resize ( e , t ) ; var i = this . element . style ; i . width = e + "px" , i . height = t + "px" , this . labelContainer && ( this . labelContainer . style . width = e + "px" ) } , translate : function ( e , t , n ) { this . translateOffsetX += e * this . scaleOffsetX , this . translateOffsetY += t * this . scaleOffsetY ; for ( var r = 0 , i = this . canvases . length ; r < i ; r ++ ) this . canvases [ r ] . translate ( e , t , n ) } , scale : function ( e , t , n ) { var r = this . scaleOffsetX * e , i = this . scaleOffsetY * t , s = this . translateOffsetX * ( e - 1 ) / r , o = this . translateOffsetY * ( t - 1 ) / i ; this . scaleOffsetX = r , this . scaleOffsetY = i ; for ( var u = 0 , a = this . canvases . length ; u < a ; u ++ ) this . canvases [ u ] . scale ( e , t , ! 0 ) ; this . translate ( s , o , ! 1 ) } , getPos : function ( t ) { return t || ! this . pos ? this . pos = e . getPos ( this . getElement ( ) ) : this . pos } , clear : function ( e ) { this . canvases [ e || 0 ] . clear ( ) } , path : function ( e , t ) { var n = this . canvases [ 0 ] . getCtx ( ) ; n . beginPath ( ) , t ( n ) , n [ e ] ( ) , n . closePath ( ) } , createLabelContainer : function ( e , t , n ) { var r = "http://www.w3.org/2000/svg" ; if ( e == "HTML" || e == "Native" ) return i ( "div" , { id : t , style : { overflow : "visible" , position : "absolute" , top : 0 , left : 0 , width : n . width + "px" , height : 0 } } ) ; if ( e == "SVG" ) { var s = document . createElementNS ( r , "svg:svg" ) ; s . setAttribute ( "width" , n . width ) , s . setAttribute ( "height" , n . height ) ; var o = s . style ; o . position = "absolute" , o . left = o . top = "0px" ; var u = document . createElementNS ( r , "svg:g" ) ; return u . setAttribute ( "width" , n . width ) , u . setAttribute ( "height" , n . height ) , u . setAttribute ( "x" , 0 ) , u . setAttribute ( "y" , 0 ) , u . setAttribute ( "id" , t ) , s . appendChild ( u ) , s } } } ) , f . Base = new t ( { translateOffsetX : 0 , translateOffsetY : 0 , scaleOffsetX : 1 , scaleOffsetY : 1 , initialize : function ( e ) { this . viz = e , this . opt = e . config , this . size = ! 1 , this . createCanvas ( ) , this . translateToCenter ( ) } , createCanvas : function ( ) { var e = this . opt , t = e . width , n = e . height ; this . canvas = i ( "canvas" , { id : e . injectInto + e . idSuffix , width : t , height : n , style : { position : "absolute" , top : 0 , left : 0 , width : t + "px" , height : n + "px" } } ) } , getCtx : function ( ) { return this . ctx ? this . ctx : this . ctx = this . canvas . getContext ( "2d" ) } , getSize : function ( ) { if ( this . size ) return this . size ; var e = this . canvas ; return this . size = { width : e . width , height : e . height } } , translateToCenter : function ( e ) { var t = this . getSize ( ) , n = e ? t . width - e . width - this . translateOffsetX * 2 : t . width ; height = e ? t . height - e . height - this . translateOffsetY * 2 : t . height ; var r = this . getCtx ( ) ; e && r . scale ( 1 / this . scaleOffsetX , 1 / this . scaleOffsetY ) , r . translate ( n / 2 , height / 2 ) } , resize : function ( e , t ) { var n = this . getSize ( ) , i = this . canvas , s = i . style ; this . size = ! 1 , i . width = e , i . height = t , s . width = e + "px" , s . height = t + "px" , r ? this . translateToCenter ( ) : this . translateToCenter ( n ) , this . translateOffsetX = this . translateOffsetY = 0 , this . scaleOffsetX = this . scaleOffsetY = 1 , this . clear ( ) , this . viz . resize ( e , t , this ) } , translate : function ( e , t , n ) { var r = this . scaleOffsetX , i = this . scaleOffsetY ; this . translateOffsetX += e * r , this . translateOffsetY += t * i , this . getCtx ( ) . translate ( e , t ) , ! n && this . plot ( ) } , scale : function ( e , t , n ) { this . scaleOffsetX *= e , this . scaleOffsetY *= t , this . getCtx ( ) . scale ( e , t ) , ! n && this . plot ( ) } , clear : function ( ) { var e = this . getSize ( ) , t = this . translateOffsetX , n = this . translateOffsetY , r = this . scaleOffsetX , i = this . scaleOffsetY ; this . getCtx ( ) . clearRect ( ( - e . width / 2 - t ) * 1 / r , ( - e . height / 2 - n ) * 1 / i , e . width * 1 / r , e . height * 1 / i ) } , plot : function ( ) { this . clear ( ) , this . viz . plot ( this ) } } ) , f . Background = { } , f . Background . Circles = new t ( { initialize : function ( t , n ) { this . viz = t , this . config = e . merge ( { idSuffix : "-bkcanvas" , levelDistance : 100
: ! 0 , execHide : ! 0 , onHide : e . empty , onShow : e . empty } , r || { } ) ; t . eachLevel ( 0 , this . config . levelsToShow , function ( e ) { var n = e . _depth - t . _depth ; n > i ? ( o . onHide ( e ) , o . execHide && ( e . drawn = ! 1 , e . exist = ! 1 , s . hideLabel ( e , ! 1 ) ) ) : ( o . onShow ( e ) , o . execShow && ( e . exist = ! 0 ) ) } ) , t . drawn = ! 0 } , getRightLevelToShow : function ( e , t ) { var n = this . config , r = n . levelsToShow , i = n . constrained ; if ( ! i ) return r ; while ( ! this . treeFitsInCanvas ( e , t , r ) && r > 1 ) r -- ; return r } } ) ; var y = { construct : function ( t ) { var n = e . type ( t ) == "array" , r = new d ( this . graphOptions , this . config . Node , this . config . Edge , this . config . Label ) ; return n ? function ( t , n ) { var r = function ( e ) { for ( var r = 0 , i = n . length ; r < i ; r ++ ) if ( n [ r ] . id == e ) return n [ r ] ; var s = { id : e , name : e } ; return t . addNode ( s ) } ; for ( var i = 0 , s = n . length ; i < s ; i ++ ) { t . addNode ( n [ i ] ) ; var o = n [ i ] . adjacencies ; if ( o ) for ( var u = 0 , a = o . length ; u < a ; u ++ ) { var f = o [ u ] , l = { } ; typeof o [ u ] != "string" && ( l = e . merge ( f . data , { } ) , f = f . nodeTo ) , t . addAdjacence ( n [ i ] , r ( f ) , l ) } } } ( r , t ) : function ( e , t ) { e . addNode ( t ) ; if ( t . children ) for ( var n = 0 , r = t . children ; n < r . length ; n ++ ) e . addAdjacence ( t , r [ n ] ) , arguments . callee ( e , r [ n ] ) } ( r , t ) , r } , loadJSON : function ( t , n ) { this . json = t , this . labels && this . labels . clearLabels && this . labels . clearLabels ( ! 0 ) , this . graph = this . construct ( t ) , e . type ( t ) != "array" ? this . root = t . id : this . root = t [ n ? n : 0 ] . id } , toJSON : function ( e ) { e = e || "tree" ; if ( e == "tree" ) { var t = { } , n = this . graph . getNode ( this . root ) , t = function i ( e ) { var t = { } ; t . id = e . id , t . name = e . name , t . data = e . data ; var n = [ ] ; return e . eachSubnode ( function ( e ) { n . push ( i ( e ) ) } ) , t . children = n , t } ( n ) ; return t } var t = [ ] , r = ! ! this . graph . getNode ( this . root ) . visited ; return this . graph . eachNode ( function ( e ) { var n = { } ; n . id = e . id , n . name = e . name , n . data = e . data ; var i = [ ] ; e . eachAdjacency ( function ( e ) { var t = e . nodeTo ; if ( ! ! t . visited === r ) { var n = { } ; n . nodeTo = t . id , n . data = e . data , i . push ( n ) } } ) , n . adjacencies = i , t . push ( n ) , e . visited = ! r } ) , t } } , b = $jit . Layouts = { } , w = { label : null , compute : function ( t , n , r ) { this . initializeLabel ( r ) ; var i = this . label , s = i . style ; t . eachNode ( function ( t ) { var n = t . getData ( "autoWidth" ) , r = t . getData ( "autoHeight" ) ; if ( n || r ) { delete t . data . $width , delete t . data . $height , delete t . data . $dim ; var o = t . getData ( "width" ) , u = t . getData ( "height" ) ; s . width = n ? "auto" : o + "px" , s . height = r ? "auto" : u + "px" , i . innerHTML = t . name ; var a = i . offsetWidth , f = i . offsetHeight , l = t . getData ( "type" ) ; if ( e . indexOf ( [ "circle" , "square" , "triangle" , "star" ] , l ) === - 1 ) t . setData ( "width" , a ) , t . setData ( "height" , f ) ; else { var c = a > f ? a : f ; t . setData ( "width" , c ) , t . setData ( "height" , c ) , t . setData ( "dim" , c ) } } } ) } , initializeLabel : function ( e ) { this . label || ( this . label = document . createElement ( "div" ) , document . body . appendChild ( this . label ) ) , this . setLabelStyles ( e ) } , setLabelStyles : function ( t ) { e . extend ( this . label . style , { visibility : "hidden" , position : "absolute" , width : "auto" , height : "auto" } ) , this . label . className = "jit-autoadjust-label" } } ; b . Tree = function ( ) { function r ( e , t , n , r , i ) { var s = t . Node , o = t . multitree ; if ( s . overridable ) { var u = - 1 , a = - 1 ; return e . eachNode ( function ( e ) { if ( e . _depth == n && ( ! o || "$orn" in e . data && e . data . $orn == r ) ) { var t = e . getData ( "width" , i ) , s = e . getData ( "height" , i ) ; u = u < t ? t : u , a = a < s ? s : a } } ) , { width : u < 0 ? s . width : u , height : a < 0 ? s . height : a } } return s } function i ( e , t , n , r ) { var i = r == "left" || r == "right" ? "y" : "x" ; e . getPos ( t ) [ i ] += n } function s ( t , r ) { var i = [ ] ; return e . each ( t , function ( e ) { e = n . call ( e ) , e [ 0 ] += r , e [ 1 ] += r , i . push ( e ) } ) , i } function o ( e , t ) { if ( e . length == 0 ) return t ; if ( t . length == 0 ) return e ; var n = e . shift ( ) , r = t . shift ( ) ; return [ [ n [ 0 ] , r [ 1 ] ] ] . concat ( o ( e , t ) ) } function u ( e , t ) { t = t || [ ] ; if ( e . length == 0 ) return t ; var n = e . pop ( ) ; return u ( e , o ( n , t ) ) } function a ( e , t , n , r , i ) { if ( e . length <= i || t . length <= i ) return 0 ; var s = e [ i ] [ 1 ] , o = t [ i ] [ 0 ] ; return Math . max ( a ( e , t , n , r , ++ i ) + n , s - o + r ) } function f ( e , t , n ) { function r ( e , i , u ) { if ( i . length <= u ) return [ ] ; var f = i [ u ] , l = a ( e , f , t , n , 0 ) ; return [ l ] . concat ( r ( o ( e , s ( f , l ) ) , i , ++ u ) ) } return r ( [ ] , e , 0 ) } function l ( e , t , r ) { function i ( e , n , u ) { if ( n . length <= u ) return [ ] ; var f = n [ u ] , l = - a ( f , e , t , r , 0 ) ; return [ l ] . concat ( i ( o ( s ( f , l ) , e ) , n , ++ u ) ) } e = n . call ( e ) ; var u = i ( [ ] , e . reverse ( ) , 0 ) ; return u . reverse ( ) } function c ( e , t , n , r ) { var i = f ( e , t , n ) , s = l ( e , t , n ) ; r == "left" ? s = i : r == "right" && ( i = s ) ; for ( var o = 0 , u = [ ] ; o < i . length ; o ++ ) u [ o ] = ( i [ o ] + s [ o ] ) / 2 ; return u } function h ( e , t , n , o , a ) { function S ( t , l , h ) { var p = t . getData ( g , n ) , m = l || t . getData ( y , n ) , x = [ ] , T = [ ] , N = ! 1 , C = m + o . levelDistance ; t . eachSubnod
f [ x ] / 2 , a , u + N + f [ x ] / 2 , a + s ) : k = d . createLinearGradient ( u , a - N - f [ x ] / 2 , u + i , a - N - f [ x ] / 2 ) ; var L = e . rgbToHex ( e . map ( e . hexToRgb ( c [ x % h ] . slice ( 1 ) ) , function ( e ) { return e * . 5 >> 0 } ) ) ; k . addColorStop ( 0 , L ) , k . addColorStop ( . 5 , c [ x % h ] ) , k . addColorStop ( 1 , L ) , d . fillStyle = k } b ? d . fillRect ( u + N , a , f [ x ] , s ) : d . fillRect ( u , a - N - f [ x ] , i , f [ x ] ) , m && m . name == p [ x ] && ( v . acum = N , v . dimValue = f [ x ] ) , N += f [ x ] || 0 , C += l [ x ] || 0 } m && ( d . save ( ) , d . lineWidth = 2 , d . strokeStyle = m . color , b ? d . strokeRect ( u + v . acum + 1 , a + 1 , v . dimValue - 2 , s - 2 ) : d . strokeRect ( u + 1 , a - v . acum - v . dimValue + 1 , i - 2 , v . dimValue - 2 ) , d . restore ( ) ) , S . type == "Native" && ( d . save ( ) , d . fillStyle = d . strokeStyle = S . color , d . font = S . style + " " + S . size + "px " + S . family , d . textBaseline = "middle" , w ( t . name , C ) && ( b ? ( d . textAlign = "right" , d . fillText ( C , u + N - y . labelOffset , a + s / 2 ) ) : ( d . textAlign = "center" , d . fillText ( C , u + i / 2 , a - s - S . size / 2 - y . labelOffset ) ) ) , E ( t . name , C , t ) && ( b ? ( d . textAlign = "center" , d . translate ( u - y . labelOffset - S . size / 2 , a + s / 2 ) , d . rotate ( Math . PI / 2 ) , d . fillText ( t . name , 0 , 0 ) ) : ( d . textAlign = "center" , d . fillText ( t . name , u + i / 2 , a + S . size / 2 + y . labelOffset ) ) ) , d . restore ( ) ) } } , contains : function ( e , t ) { var n = e . pos . getc ( ! 0 ) , r = e . getData ( "width" ) , i = e . getData ( "height" ) , s = this . getAlignedPos ( n , r , i ) , o = s . x , u = s . y , a = e . getData ( "dimArray" ) , f = e . getData ( "config" ) , l = t . x - o , c = f . orientation == "horizontal" ; if ( c ) { if ( t . x < o || t . x > o + r || t . y > u + i || t . y < u ) return ! 1 } else if ( t . x < o || t . x > o + r || t . y > u || t . y < u - i ) return ! 1 ; for ( var h = 0 , p = a . length , d = c ? o : u ; h < p ; h ++ ) { var v = a [ h ] ; if ( c ) { d += v ; var m = d ; if ( t . x <= m ) return { name : e . getData ( "stringArray" ) [ h ] , color : e . getData ( "colorArray" ) [ h ] , value : e . getData ( "valueArray" ) [ h ] , label : e . name } } else { d -= v ; var m = d ; if ( t . y >= m ) return { name : e . getData ( "stringArray" ) [ h ] , color : e . getData ( "colorArray" ) [ h ] , value : e . getData ( "valueArray" ) [ h ] , label : e . name } } } return ! 1 } } , "barchart-grouped" : { render : function ( t , n ) { var r = t . pos . getc ( ! 0 ) , i = t . getData ( "width" ) , s = t . getData ( "height" ) , o = this . getAlignedPos ( r , i , s ) , u = o . x , a = o . y , f = t . getData ( "dimArray" ) , l = t . getData ( "valueArray" ) , c = l . length , h = t . getData ( "colorArray" ) , p = h . length , d = t . getData ( "stringArray" ) , v = n . getCtx ( ) , m = { } , g = t . getData ( "border" ) , y = t . getData ( "gradient" ) , b = t . getData ( "config" ) , w = b . orientation == "horizontal" , E = b . showAggregates , S = b . showLabels , x = b . Label , T = ( w ? s : i ) / c ; if ( h && f && d ) { for ( var N = 0 , C = c , k = 0 , L = 0 ; N < C ; N ++ ) { v . fillStyle = v . strokeStyle = h [ N % p ] ; if ( y ) { var A ; w ? A = v . createLinearGradient ( u + f [ N ] / 2 , a + T * N , u + f [ N ] / 2 , a + T * ( N + 1 ) ) : A = v . createLinearGradient ( u + T * N , a - f [ N ] / 2 , u + T * ( N + 1 ) , a - f [ N ] / 2 ) ; var O = e . rgbToHex ( e . map ( e . hexToRgb ( h [ N % p ] . slice ( 1 ) ) , function ( e ) { return e * . 5 >> 0 } ) ) ; A . addColorStop ( 0 , O ) , A . addColorStop ( . 5 , h [ N % p ] ) , A . addColorStop ( 1 , O ) , v . fillStyle = A } w ? v . fillRect ( u , a + T * N , f [ N ] , T ) : v . fillRect ( u + T * N , a - f [ N ] , T , f [ N ] ) , g && g . name == d [ N ] && ( m . acum = T * N , m . dimValue = f [ N ] ) , k += f [ N ] || 0 , L += l [ N ] || 0 } g && ( v . save ( ) , v . lineWidth = 2 , v . strokeStyle = g . color , w ? v . strokeRect ( u + 1 , a + m . acum + 1 , m . dimValue - 2 , T - 2 ) : v . strokeRect ( u + m . acum + 1 , a - m . dimValue + 1 , T - 2 , m . dimValue - 2 ) , v . restore ( ) ) , x . type == "Native" && ( v . save ( ) , v . fillStyle = v . strokeStyle = x . color , v . font = x . style + " " + x . size + "px " + x . family , v . textBaseline = "middle" , E ( t . name , L ) && ( w ? ( v . textAlign = "right" , v . fillText ( L , u + Math . max . apply ( null , f ) - b . labelOffset , a + s / 2 ) ) : ( v . textAlign = "center" , v . fillText ( L , u + i / 2 , a - Math . max . apply ( null , f ) - x . size / 2 - b . labelOffset ) ) ) , S ( t . name , L , t ) && ( w ? ( v . textAlign = "center" , v . translate ( u - b . labelOffset - x . size / 2 , a + s / 2 ) , v . rotate ( Math . PI / 2 ) , v . fillText ( t . name , 0 , 0 ) ) : ( v . textAlign = "center" , v . fillText ( t . name , u + i / 2 , a + x . size / 2 + b . labelOffset ) ) ) , v . restore ( ) ) } } , contains : function ( e , t ) { var n = e . pos . getc ( ! 0 ) , r = e . getData ( "width" ) , i = e . getData ( "height" ) , s = this . getAlignedPos ( n , r , i ) , o = s . x , u = s . y , a = e . getData ( "dimArray" ) , f = a . length , l = e . getData ( "config" ) , c = t . x - o , h = l . orientation == "horizontal" , p = ( h ? i : r ) / f ; if ( h ) { if ( t . x < o || t . x > o + r || t . y > u + i || t . y < u ) return ! 1 } else if ( t . x < o || t . x > o + r || t . y > u || t . y < u - i ) return ! 1 ; for ( var d = 0 , v = a . length ; d < v ; d ++ ) { var m = a [ d ] ; if ( h ) { var g = u + p * d ; if ( t . x <= o + m && t . y >= g && t . y <= g + p ) return { name : e . getData ( "stringArray" ) [ d ] , color : e . getData ( "colorArray" ) [ d ] , value : e . getData ( "valueArray" ) [ d ] , label : e . name } } else { var g = o + p * d ; if ( t . x >= g && t . x <= g + p && t . y >= u - m ) return { name : e . getData ( "stringArray" ) [ d ] , color : e . getData ( "colorArray" ) [ d ] , value : e . getData ( "valueArray" ) [ d ] , label : e . name } } } return ! 1 } } } ) , $jit . BarChart = new t ( { st : null , colors : [ " #
( this . canvas = s . useCanvas , this . config . labelContainer = this . canvas . id + "-label" ) : ( this . canvas = new f ( this , s ) , this . config . labelContainer = ( typeof s . injectInto == "string" ? s . injectInto : s . injectInto . id ) + "-label" ) , this . graphOptions = { complex : ! 0 , Node : { selected : ! 1 , exist : ! 0 , drawn : ! 0 } } , this . graph = new d ( this . graphOptions , this . config . Node , this . config . Edge , this . config . Label ) , this . labels = new $jit . Icicle . Label [ this . config . Label . type ] ( this ) , this . fx = new $jit . Icicle . Plot ( this , $jit . Icicle ) , this . op = new $jit . Icicle . Op ( this ) , this . group = new $jit . Icicle . Group ( this ) , this . clickedNode = null , this . initializeExtras ( ) } , refresh : function ( ) { var e = this . config . Label . type ; if ( e != "Native" ) { var t = this ; this . graph . eachNode ( function ( e ) { t . labels . hideLabel ( e , ! 1 ) } ) } this . compute ( ) , this . plot ( ) } , plot : function ( ) { this . fx . plot ( this . config ) } , enter : function ( e ) { if ( this . busy ) return ; this . busy = ! 0 ; var t = this , n = this . config , r = { onComplete : function ( ) { n . request && t . compute ( ) , n . animate ? ( t . graph . nodeList . setDataset ( [ "current" , "end" ] , { alpha : [ 1 , 0 ] } ) , d . Util . eachSubgraph ( e , function ( e ) { e . setData ( "alpha" , 1 , "end" ) } , "ignore" ) , t . fx . animate ( { duration : 500 , modes : [ "node-property:alpha" ] , onComplete : function ( ) { t . clickedNode = e , t . compute ( "end" ) , t . fx . animate ( { modes : [ "linear" , "node-property:width:height" ] , duration : 1e3 , onComplete : function ( ) { t . busy = ! 1 , t . clickedNode = e } } ) } } ) ) : ( t . clickedNode = e , t . busy = ! 1 , t . refresh ( ) ) } } ; n . request ? this . requestNodes ( clickedNode , r ) : r . onComplete ( ) } , out : function ( ) { if ( this . busy ) return ; var e = this , t = d . Util , n = this . config , r = this . graph , i = t . getParents ( r . getNode ( this . clickedNode && this . clickedNode . id || this . root ) ) , s = i [ 0 ] , o = s , u = this . clickedNode ; this . busy = ! 0 , this . events . hoveredNode = ! 1 ; if ( ! s ) { this . busy = ! 1 ; return } callback = { onComplete : function ( ) { e . clickedNode = s , n . request ? e . requestNodes ( s , { onComplete : function ( ) { e . compute ( ) , e . plot ( ) , e . busy = ! 1 } } ) : ( e . compute ( ) , e . plot ( ) , e . busy = ! 1 ) } } , n . animate ? ( this . clickedNode = o , this . compute ( "end" ) , this . clickedNode = u , this . fx . animate ( { modes : [ "linear" , "node-property:width:height" ] , duration : 1e3 , onComplete : function ( ) { e . clickedNode = o , r . nodeList . setDataset ( [ "current" , "end" ] , { alpha : [ 0 , 1 ] } ) , t . eachSubgraph ( u , function ( e ) { e . setData ( "alpha" , 1 ) } , "ignore" ) , e . fx . animate ( { duration : 500 , modes : [ "node-property:alpha" ] , onComplete : function ( ) { callback . onComplete ( ) } } ) } } ) ) : callback . onComplete ( ) } , requestNodes : function ( t , n ) { var r = e . merge ( this . controller , n ) , i = this . config . constrained ? this . config . levelsToShow : Number . MAX _VALUE ; if ( r . request ) { var s = [ ] , o = t . _depth ; d . Util . eachLevel ( t , 0 , i , function ( e ) { e . drawn && ! d . Util . anySubnode ( e ) && ( s . push ( e ) , e . _level = e . _depth - o , this . config . constrained && ( e . _level = i - e . _level ) ) } ) , this . group . requestNodes ( s , r ) } else r . onComplete ( ) } } ) , $jit . Icicle . Op = new t ( { Implements : d . Op } ) , $jit . Icicle . Group = new t ( { initialize : function ( e ) { this . viz = e , this . canvas = e . canvas , this . config = e . config } , requestNodes : function ( e , t ) { var n = 0 , r = e . length , i = { } , s = function ( ) { t . onComplete ( ) } , o = this . viz ; r == 0 && s ( ) ; for ( var u = 0 ; u < r ; u ++ ) i [ e [ u ] . id ] = e [ u ] , t . request ( e [ u ] . id , e [ u ] . _level , { onComplete : function ( e , t ) { t && t . children && ( t . id = e , o . op . sum ( t , { type : "nothing" } ) ) , ++ n == r && ( d . Util . computeLevels ( o . graph , o . root , 0 ) , s ( ) ) } } ) } } ) , $jit . Icicle . Plot = new t ( { Implements : d . Plot , plot : function ( t , n ) { t = t || this . viz . controller ; var r = this . viz , i = r . graph , s = i . getNode ( r . clickedNode && r . clickedNode . id || r . root ) , o = s . _depth ; r . canvas . clear ( ) , this . plotTree ( s , e . merge ( t , { withLabels : ! 0 , hideLabels : ! 1 , plotSubtree : function ( e , t ) { return ! r . config . constrained || t . _depth - o < r . config . levelsToShow } } ) , n ) } } ) , $jit . Icicle . Label = { } , $jit . Icicle . Label . Native = new t ( { Implements : d . Label . Native , renderLabel : function ( e , t , n ) { var r = e . getCtx ( ) , i = t . getData ( "width" ) , s = t . getData ( "height" ) , o = t . getLabelData ( "size" ) , u = r . measureText ( t . name ) ; if ( s < o * 1.5 || i < u . width ) return ; var a = t . pos . getc ( ! 0 ) ; r . fillText ( t . name , a . x + i / 2 , a . y + s / 2 ) } } ) , $jit . Icicle . Label . SVG = new t ( { Implements : d . Label . SVG , initialize : function ( e ) { this . viz = e } , placeLabel : function ( e , t , n ) { var r = t . pos . getc ( ! 0 ) , i = this . viz . canvas , s = i . getSize ( ) , o = { x : Math . round ( r . x + s . width / 2 ) , y : Math . round ( r . y + s . height / 2 ) } ; e . setAttribute ( "x" , o . x ) , e . setAttribute ( "y" , o . y ) , n . onPlaceLabel ( e , t ) } } ) , $jit . Icicle . Label . HTML = new t ( { Implements : d . Label . HTML , initialize : function ( e ) { this . viz
e . type ( o ) == "object" && e . type ( u ) == "object" ? e . merge ( u , o ) : e . unlink ( o ) } } return t } , e . unlink = function ( t ) { var n ; switch ( e . type ( t ) ) { case "object" : n = { } ; for ( var r in t ) n [ r ] = e . unlink ( t [ r ] ) ; break ; case "array" : n = [ ] ; for ( var i = 0 , s = t . length ; i < s ; i ++ ) n [ i ] = e . unlink ( t [ i ] ) ; break ; default : return t } return n } , e . zip = function ( ) { if ( arguments . length === 0 ) return [ ] ; for ( var e = 0 , t = [ ] , n = arguments . length , r = arguments [ 0 ] . length ; e < r ; e ++ ) { for ( var i = 0 , s = [ ] ; i < n ; i ++ ) s . push ( arguments [ i ] [ e ] ) ; t . push ( s ) } return t } , e . rgbToHex = function ( e , t ) { if ( e . length < 3 ) return null ; if ( e . length == 4 && e [ 3 ] == 0 && ! t ) return "transparent" ; var n = [ ] ; for ( var r = 0 ; r < 3 ; r ++ ) { var i = ( e [ r ] - 0 ) . toString ( 16 ) ; n . push ( i . length == 1 ? "0" + i : i ) } return t ? n : "#" + n . join ( "" ) } , e . hexToRgb = function ( e ) { if ( e . length != 7 ) { e = e . match ( /^#?(\w{1,2})(\w{1,2})(\w{1,2})$/ ) , e . shift ( ) ; if ( e . length != 3 ) return null ; var t = [ ] ; for ( var n = 0 ; n < 3 ; n ++ ) { var r = e [ n ] ; r . length == 1 && ( r += r ) , t . push ( parseInt ( r , 16 ) ) } return t } return e = parseInt ( e . slice ( 1 ) , 16 ) , [ e >> 16 , e >> 8 & 255 , e & 255 ] } , e . destroy = function ( t ) { e . clean ( t ) , t . parentNode && t . parentNode . removeChild ( t ) , t . clearAttributes && t . clearAttributes ( ) } , e . clean = function ( t ) { for ( var n = t . childNodes , r = 0 , i = n . length ; r < i ; r ++ ) e . destroy ( n [ r ] ) } , e . addEvent = function ( e , t , n ) { e . addEventListener ? e . addEventListener ( t , n , ! 1 ) : e . attachEvent ( "on" + t , n ) } , e . addEvents = function ( t , n ) { for ( var r in n ) e . addEvent ( t , r , n [ r ] ) } , e . hasClass = function ( e , t ) { return ( " " + e . className + " " ) . indexOf ( " " + t + " " ) > - 1 } , e . addClass = function ( t , n ) { e . hasClass ( t , n ) || ( t . className = t . className + " " + n ) } , e . removeClass = function ( e , t ) { e . className = e . className . replace ( new RegExp ( "(^|\\s)" + t + "(?:\\s|$)" ) , "$1" ) } , e . getPos = function ( e ) { function r ( e ) { var t = { x : 0 , y : 0 } ; while ( e && ! s ( e ) ) t . x += e . offsetLeft , t . y += e . offsetTop , e = e . offsetParent ; return t } function i ( e ) { var t = { x : 0 , y : 0 } ; while ( e && ! s ( e ) ) t . x += e . scrollLeft , t . y += e . scrollTop , e = e . parentNode ; return t } function s ( e ) { return /^(?:body|html)$/i . test ( e . tagName ) } var t = r ( e ) , n = i ( e ) ; return { x : t . x - n . x , y : t . y - n . y } } , e . event = { get : function ( e , t ) { return t = t || window , e || t . event } , getWheel : function ( e ) { return e . wheelDelta ? e . wheelDelta / 120 : - ( e . detail || 0 ) / 3 } , isRightClick : function ( e ) { return e . which == 3 || e . button == 2 } , getPos : function ( e , t ) { t = t || window , e = e || t . event ; var n = t . document ; n = n . documentElement || n . body , e . touches && e . touches . length && ( e = e . touches [ 0 ] ) ; var r = { x : e . pageX || e . clientX + n . scrollLeft , y : e . pageY || e . clientY + n . scrollTop } ; return r } , stop : function ( e ) { e . stopPropagation && e . stopPropagation ( ) , e . cancelBubble = ! 0 , e . preventDefault ? e . preventDefault ( ) : e . returnValue = ! 1 } } , $jit . util = $jit . id = e ; var t = function ( n ) { n = n || { } ; var r = function ( ) { for ( var n in this ) typeof this [ n ] != "function" && ( this [ n ] = e . unlink ( this [ n ] ) ) ; this . constructor = r ; if ( t . prototyping ) return this ; var i = this . initialize ? this . initialize . apply ( this , arguments ) : this ; return this . $$family = "class" , i } ; for ( var i in t . Mutators ) { if ( ! n [ i ] ) continue ; n = t . Mutators [ i ] ( n , n [ i ] ) , delete n [ i ] } return e . extend ( r , this ) , r . constructor = t , r . prototype = n , r } ; t . Mutators = { Implements : function ( n , r ) { return e . each ( e . splat ( r ) , function ( e ) { t . prototyping = e ; var r = typeof e == "function" ? new e : e ; for ( var i in r ) i in n || ( n [ i ] = r [ i ] ) ; delete t . prototyping } ) , n } } , e . extend ( t , { inherit : function ( n , r ) { for ( var i in r ) { var s = r [ i ] , o = n [ i ] , u = e . type ( s ) ; o && u == "function" ? s != o && t . override ( n , i , s ) : u == "object" ? n [ i ] = e . merge ( o , s ) : n [ i ] = s } return n } , override : function ( e , n , r ) { var i = t . prototyping ; i && e [ n ] != i [ n ] && ( i = null ) ; var s = function ( ) { var t = this . parent ; this . parent = i ? i [ n ] : e [ n ] ; var s = r . apply ( this , arguments ) ; return this . parent = t , s } ; e [ n ] = s } } ) , t . prototype . implement = function ( ) { var n = this . prototype ; return e . each ( Array . prototype . slice . call ( arguments || [ ] ) , function ( e ) { t . inherit ( n , e ) } ) , this } , $jit . Class = t , $jit . json = { prune : function ( e , t ) { this . each ( e , function ( e , n ) { n == t && e . children && ( delete e . children , e . children = [ ] ) } ) } , getParent : function ( e , t ) { if ( e . id == t ) return ! 1 ; var n = e . children ; if ( n && n . length > 0 ) for ( var r = 0 ; r < n . length ; r ++ ) { if ( n [ r ] . id == t ) return e ; var i = this . getParent ( n [ r ] , t ) ; if ( i ) return i } return ! 1 } , getSubtree : function ( e , t ) { if ( e . id == t ) return e ; for ( var n = 0 , r = e . children ; n < r . length ; n ++ ) { var i = this . getSubtree ( r [ n ] , t ) ; if ( i != null ) return i } return null } , eachLevel : function ( e , t , n , r ) { if ( t <= n ) { r ( e , t ) ; if ( ! e . children ) return ; for ( var i = 0 , s = e . children
( i ) , u = this ; n = n === ! 1 ? Number . MAX _VALUE - s : n , function a ( e , t , n ) { var i = e . _depth ; i >= t && i <= n && o ( e ) && r ( e , i ) , i < n && u . eachAdjacency ( e , function ( e ) { var r = e . nodeTo ; r . _depth > i && a ( r , t , n ) } ) } ( e , t + s , n + s ) } , eachSubgraph : function ( e , t , n ) { this . eachLevel ( e , 0 , ! 1 , t , n ) } , eachSubnode : function ( e , t , n ) { this . eachLevel ( e , 1 , 1 , t , n ) } , anySubnode : function ( t , n , r ) { var i = ! 1 ; n = n || e . lambda ( ! 0 ) ; var s = e . type ( n ) == "string" ? function ( e ) { return e [ n ] } : n ; return this . eachSubnode ( t , function ( e ) { s ( e ) && ( i = ! 0 ) } , r ) , i } , getSubnodes : function ( t , n , r ) { var i = [ ] , s = this ; n = n || 0 ; var o , u ; return e . type ( n ) == "array" ? ( o = n [ 0 ] , u = n [ 1 ] ) : ( o = n , u = Number . MAX _VALUE - t . _depth ) , this . eachLevel ( t , o , u , function ( e ) { i . push ( e ) } , r ) , i } , getParents : function ( e ) { var t = [ ] ; return this . eachAdjacency ( e , function ( n ) { var r = n . nodeTo ; r . _depth < e . _depth && t . push ( r ) } ) , t } , isDescendantOf : function ( e , t ) { if ( e . id == t ) return ! 0 ; var n = this . getParents ( e ) , r = ! 1 ; for ( var i = 0 ; ! r && i < n . length ; i ++ ) r = r || this . isDescendantOf ( n [ i ] , t ) ; return r } , clean : function ( e ) { this . eachNode ( e , function ( e ) { e . _flag = ! 1 } ) } , getClosestNodeToOrigin : function ( e , t , n ) { return this . getClosestNodeToPos ( e , l . KER , t , n ) } , getClosestNodeToPos : function ( e , t , n , r ) { var i = null ; n = n || "current" , t = t && t . getc ( ! 0 ) || h . KER ; var s = function ( e , t ) { var n = e . x - t . x , r = e . y - t . y ; return n * n + r * r } ; return this . eachNode ( e , function ( e ) { i = i == null || s ( e . getPos ( n ) . getc ( ! 0 ) , t ) < s ( i . getPos ( n ) . getc ( ! 0 ) , t ) ? e : i } , r ) , i } } , e . each ( [ "getNode" , "eachNode" , "computeLevels" , "eachBFS" , "clean" , "getClosestNodeToPos" , "getClosestNodeToOrigin" ] , function ( e ) { d . prototype [ e ] = function ( ) { return d . Util [ e ] . apply ( d . Util , [ this ] . concat ( Array . prototype . slice . call ( arguments ) ) ) } } ) , e . each ( [ "eachAdjacency" , "eachLevel" , "eachSubgraph" , "eachSubnode" , "anySubnode" , "getSubnodes" , "getParents" , "isDescendantOf" ] , function ( e ) { d . Node . prototype [ e ] = function ( ) { return d . Util [ e ] . apply ( d . Util , [ this ] . concat ( Array . prototype . slice . call ( arguments ) ) ) } } ) , d . Op = { options : { type : "nothing" , duration : 2e3 , hideLabels : ! 0 , fps : 30 } , initialize : function ( e ) { this . viz = e } , removeNode : function ( t , n ) { var r = this . viz , i = e . merge ( this . options , r . controller , n ) , s = e . splat ( t ) , o , u , a ; switch ( i . type ) { case "nothing" : for ( o = 0 ; o < s . length ; o ++ ) r . graph . removeNode ( s [ o ] ) ; break ; case "replot" : this . removeNode ( s , { type : "nothing" } ) , r . labels . clearLabels ( ) , r . refresh ( ! 0 ) ; break ; case "fade:seq" : case "fade" : u = this ; for ( o = 0 ; o < s . length ; o ++ ) a = r . graph . getNode ( s [ o ] ) , a . setData ( "alpha" , 0 , "end" ) ; r . fx . animate ( e . merge ( i , { modes : [ "node-property:alpha" ] , onComplete : function ( ) { u . removeNode ( s , { type : "nothing" } ) , r . labels . clearLabels ( ) , r . reposition ( ) , r . fx . animate ( e . merge ( i , { modes : [ "linear" ] } ) ) } } ) ) ; break ; case "fade:con" : u = this ; for ( o = 0 ; o < s . length ; o ++ ) a = r . graph . getNode ( s [ o ] ) , a . setData ( "alpha" , 0 , "end" ) , a . ignore = ! 0 ; r . reposition ( ) , r . fx . animate ( e . merge ( i , { modes : [ "node-property:alpha" , "linear" ] , onComplete : function ( ) { u . removeNode ( s , { type : "nothing" } ) } } ) ) ; break ; case "iter" : u = this , r . fx . sequence ( { condition : function ( ) { return s . length != 0 } , step : function ( ) { u . removeNode ( s . shift ( ) , { type : "nothing" } ) , r . labels . clearLabels ( ) } , onComplete : function ( ) { i . onComplete ( ) } , duration : Math . ceil ( i . duration / s . length ) } ) ; break ; default : this . doError ( ) } } , removeEdge : function ( t , n ) { var r = this . viz , i = e . merge ( this . options , r . controller , n ) , s = e . type ( t [ 0 ] ) == "string" ? [ t ] : t , o , u , a ; switch ( i . type ) { case "nothing" : for ( o = 0 ; o < s . length ; o ++ ) r . graph . removeAdjacence ( s [ o ] [ 0 ] , s [ o ] [ 1 ] ) ; break ; case "replot" : this . removeEdge ( s , { type : "nothing" } ) , r . refresh ( ! 0 ) ; break ; case "fade:seq" : case "fade" : u = this ; for ( o = 0 ; o < s . length ; o ++ ) a = r . graph . getAdjacence ( s [ o ] [ 0 ] , s [ o ] [ 1 ] ) , a && a . setData ( "alpha" , 0 , "end" ) ; r . fx . animate ( e . merge ( i , { modes : [ "edge-property:alpha" ] , onComplete : function ( ) { u . removeEdge ( s , { type : "nothing" } ) , r . reposition ( ) , r . fx . animate ( e . merge ( i , { modes : [ "linear" ] } ) ) } } ) ) ; break ; case "fade:con" : u = this ; for ( o = 0 ; o < s . length ; o ++ ) a = r . graph . getAdjacence ( s [ o ] [ 0 ] , s [ o ] [ 1 ] ) , a && ( a . setData ( "alpha" , 0 , "end" ) , a . ignore = ! 0 ) ; r . reposition ( ) , r . fx . animate ( e . merge ( i , { modes : [ "edge-property:alpha" , "linear" ] , onComplete : function ( ) { u . removeEdge ( s , { type : "nothing" } ) } } ) ) ; break ; case "iter" : u = this , r . fx . sequence ( { condition : function ( ) { return s . length != 0 } , step : function ( ) { u . removeEdge ( s . shift ( ) , { type : "nothing" } ) , r . labels . clearLabels ( ) } , onComplete : function ( ) { i . onComplete ( ) } , duration : Math . ceil ( i . duration / s .
r = e . getData ( "width" ) , i = e . getData ( "height" ) ; this . nodeHelper . rectangle . render ( "fill" , n , r , i , t ) } , contains : function ( e , t ) { var n = e . pos . getc ( ! 0 ) , r = e . getData ( "width" ) , i = e . getData ( "height" ) ; return this . nodeHelper . rectangle . contains ( n , t , r , i ) } } , triangle : { render : function ( e , t ) { var n = e . pos . getc ( ! 0 ) , r = e . getData ( "dim" ) ; this . nodeHelper . triangle . render ( "fill" , n , r , t ) } , contains : function ( e , t ) { var n = e . pos . getc ( ! 0 ) , r = e . getData ( "dim" ) ; return this . nodeHelper . triangle . contains ( n , t , r ) } } , star : { render : function ( e , t ) { var n = e . pos . getc ( ! 0 ) , r = e . getData ( "dim" ) ; this . nodeHelper . star . render ( "fill" , n , r , t ) } , contains : function ( e , t ) { var n = e . pos . getc ( ! 0 ) , r = e . getData ( "dim" ) ; return this . nodeHelper . star . contains ( n , t , r ) } } } ) , n . Plot . EdgeTypes = new t ( { none : e . empty , line : { render : function ( e , t ) { var n = e . nodeFrom . pos . getc ( ! 0 ) , r = e . nodeTo . pos . getc ( ! 0 ) ; this . edgeHelper . line . render ( n , r , t ) } , contains : function ( e , t ) { var n = e . nodeFrom . pos . getc ( ! 0 ) , r = e . nodeTo . pos . getc ( ! 0 ) ; return this . edgeHelper . line . contains ( n , r , t , this . edge . epsilon ) } } , arrow : { render : function ( e , t ) { var n = e . nodeFrom . pos . getc ( ! 0 ) , r = e . nodeTo . pos . getc ( ! 0 ) , i = e . getData ( "dim" ) , s = e . data . $direction , o = s && s . length > 1 && s [ 0 ] != e . nodeFrom . id ; this . edgeHelper . arrow . render ( n , r , i , o , t ) } , contains : function ( e , t ) { var n = e . nodeFrom . pos . getc ( ! 0 ) , r = e . nodeTo . pos . getc ( ! 0 ) ; return this . edgeHelper . arrow . contains ( n , r , t , this . edge . epsilon ) } } } ) } ( $jit . ForceDirected ) , $jit . RGraph = new t ( { Implements : [ y , a , b . Radial ] , initialize : function ( t ) { var n = $jit . RGraph , r = { interpolation : "linear" , levelDistance : 100 } ; this . controller = this . config = e . merge ( i ( "Canvas" , "Node" , "Edge" , "Fx" , "Controller" , "Tips" , "NodeStyles" , "Events" , "Navigation" , "Label" ) , r , t ) ; var s = this . config ; s . useCanvas ? ( this . canvas = s . useCanvas , this . config . labelContainer = this . canvas . id + "-label" ) : ( s . background && ( s . background = e . merge ( { type : "Circles" } , s . background ) ) , this . canvas = new f ( this , s ) , this . config . labelContainer = ( typeof s . injectInto == "string" ? s . injectInto : s . injectInto . id ) + "-label" ) , this . graphOptions = { complex : ! 1 , Node : { selected : ! 1 , exist : ! 0 , drawn : ! 0 } } , this . graph = new d ( this . graphOptions , this . config . Node , this . config . Edge ) , this . labels = new n . Label [ s . Label . type ] ( this ) , this . fx = new n . Plot ( this , n ) , this . op = new n . Op ( this ) , this . json = null , this . root = null , this . busy = ! 1 , this . parent = ! 1 , this . initializeExtras ( ) } , createLevelDistanceFunc : function ( ) { var e = this . config . levelDistance ; return function ( t ) { return ( t . _depth + 1 ) * e } } , refresh : function ( ) { this . compute ( ) , this . plot ( ) } , reposition : function ( ) { this . compute ( "end" ) } , plot : function ( ) { this . fx . plot ( ) } , getNodeAndParentAngle : function ( e ) { var t = ! 1 , n = this . graph . getNode ( e ) , r = n . getParents ( ) , i = r . length > 0 ? r [ 0 ] : ! 1 ; if ( i ) { var s = i . pos . getc ( ) , o = n . pos . getc ( ) , u = s . add ( o . scale ( - 1 ) ) ; t = Math . atan2 ( u . y , u . x ) , t < 0 && ( t += 2 * Math . PI ) } return { parent : i , theta : t } } , tagChildren : function ( e , t ) { if ( e . angleSpan ) { var n = [ ] ; e . eachAdjacency ( function ( e ) { n . push ( e . nodeTo ) } , "ignore" ) ; var r = n . length ; for ( var i = 0 ; i < r && t != n [ i ] . id ; i ++ ) ; for ( var s = ( i + 1 ) % r , o = 0 ; t != n [ s ] . id ; s = ( s + 1 ) % r ) n [ s ] . dist = o ++ } } , onClick : function ( t , n ) { if ( this . root != t && ! this . busy ) { this . busy = ! 0 , this . root = t , that = this , this . controller . onBeforeCompute ( this . graph . getNode ( t ) ) ; var r = this . getNodeAndParentAngle ( t ) ; this . tagChildren ( r . parent , t ) , this . parent = r . parent , this . compute ( "end" ) ; var i = r . theta - r . parent . endPos . theta ; this . graph . eachNode ( function ( e ) { e . endPos . set ( e . endPos . getp ( ) . add ( c ( i , 0 ) ) ) } ) ; var s = this . config . interpolation ; n = e . merge ( { onComplete : e . empty } , n || { } ) , this . fx . animate ( e . merge ( { hideLabels : ! 0 , modes : [ s ] } , n , { onComplete : function ( ) { that . busy = ! 1 , n . onComplete ( ) } } ) ) } } } ) , $jit . RGraph . $extend = ! 0 , function ( n ) { n . Op = new t ( { Implements : d . Op } ) , n . Plot = new t ( { Implements : d . Plot } ) , n . Label = { } , n . Label . Native = new t ( { Implements : d . Label . Native } ) , n . Label . SVG = new t ( { Implements : d . Label . SVG , initialize : function ( e ) { this . viz = e } , placeLabel : function ( e , t , n ) { var r = t . pos . getc ( ! 0 ) , i = this . viz . canvas , s = i . translateOffsetX , o = i . translateOffsetY , u = i . scaleOffsetX , a = i . scaleOffsetY , f = i . getSize ( ) , l = { x : Math . round ( r . x * u + s + f . width / 2 ) , y : Math . round ( r . y * a + o + f . height / 2 ) } ; e . setAttribute ( "x" , l . x ) , e . setAttribute ( "y" , l . y ) , n . onPlaceLabel ( e , t ) } } ) , n . Label . HTML = new t ( { Implements : d . Label . HTML , initialize : function ( e ) { this . viz = e } , placeLabel : function ( e , t , n ) { var r = t . pos .
; e ( this . helper ) . animate ( this . originalPosition , parseInt ( this . options . revertDuration , 10 ) , function ( ) { s . _trigger ( "stop" , t ) !== ! 1 && s . _clear ( ) } ) } else this . _trigger ( "stop" , t ) !== ! 1 && this . _clear ( ) ; return ! 1 } , _mouseUp : function ( t ) { return this . options . iframeFix === ! 0 && e ( "div.ui-draggable-iframeFix" ) . each ( function ( ) { this . parentNode . removeChild ( this ) } ) , e . ui . ddmanager && e . ui . ddmanager . dragStop ( this , t ) , e . ui . mouse . prototype . _mouseUp . call ( this , t ) } , cancel : function ( ) { return this . helper . is ( ".ui-draggable-dragging" ) ? this . _mouseUp ( { } ) : this . _clear ( ) , this } , _getHandle : function ( t ) { var n = ! this . options . handle || ! e ( this . options . handle , this . element ) . length ? ! 0 : ! 1 ; return e ( this . options . handle , this . element ) . find ( "*" ) . andSelf ( ) . each ( function ( ) { this == t . target && ( n = ! 0 ) } ) , n } , _createHelper : function ( t ) { var n = this . options , r = e . isFunction ( n . helper ) ? e ( n . helper . apply ( this . element [ 0 ] , [ t ] ) ) : n . helper == "clone" ? this . element . clone ( ) . removeAttr ( "id" ) : this . element ; return r . parents ( "body" ) . length || r . appendTo ( n . appendTo == "parent" ? this . element [ 0 ] . parentNode : n . appendTo ) , r [ 0 ] != this . element [ 0 ] && ! /(fixed|absolute)/ . test ( r . css ( "position" ) ) && r . css ( "position" , "absolute" ) , r } , _adjustOffsetFromHelper : function ( t ) { typeof t == "string" && ( t = t . split ( " " ) ) , e . isArray ( t ) && ( t = { left : + t [ 0 ] , top : + t [ 1 ] || 0 } ) , "left" in t && ( this . offset . click . left = t . left + this . margins . left ) , "right" in t && ( this . offset . click . left = this . helperProportions . width - t . right + this . margins . left ) , "top" in t && ( this . offset . click . top = t . top + this . margins . top ) , "bottom" in t && ( this . offset . click . top = this . helperProportions . height - t . bottom + this . margins . top ) } , _getParentOffset : function ( ) { this . offsetParent = this . helper . offsetParent ( ) ; var t = this . offsetParent . offset ( ) ; this . cssPosition == "absolute" && this . scrollParent [ 0 ] != document && e . ui . contains ( this . scrollParent [ 0 ] , this . offsetParent [ 0 ] ) && ( t . left += this . scrollParent . scrollLeft ( ) , t . top += this . scrollParent . scrollTop ( ) ) ; if ( this . offsetParent [ 0 ] == document . body || this . offsetParent [ 0 ] . tagName && this . offsetParent [ 0 ] . tagName . toLowerCase ( ) == "html" && e . browser . msie ) t = { top : 0 , left : 0 } ; return { top : t . top + ( parseInt ( this . offsetParent . css ( "borderTopWidth" ) , 10 ) || 0 ) , left : t . left + ( parseInt ( this . offsetParent . css ( "borderLeftWidth" ) , 10 ) || 0 ) } } , _getRelativeOffset : function ( ) { if ( this . cssPosition == "relative" ) { var e = this . element . position ( ) ; return { top : e . top - ( parseInt ( this . helper . css ( "top" ) , 10 ) || 0 ) + this . scrollParent . scrollTop ( ) , left : e . 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 t = this . options ; t . containment == "parent" && ( t . containment = this . helper [ 0 ] . parentNode ) ; if ( t . containment == "document" || t . containment == "window" ) this . containment = [ t . containment == "document" ? 0 : e ( window ) . scrollLeft ( ) - this . offset . relative . left - this . offset . parent . left , t . containment == "document" ? 0 : e ( window ) . scrollTop ( ) - this . offset . relative . top - this . offset . parent . top , ( t . containment == "document" ? 0 : e ( window ) . scrollLeft ( ) ) + e ( t . containment == "document" ? document : window ) . width ( ) - this . helperProportions . width - this . margins . left , ( t . containment == "document" ? 0 : e ( window ) . scrollTop ( ) ) + ( e ( t . containment == "document" ? document : window ) . height ( ) || document . body . parentNode . scrollHeight ) - this . helperProportions . height - this . margins . top ] ; if ( ! /^(document|window|parent)$/ . test ( t . containment ) && t . containment . constructor != Array ) { var n = e ( t . containment ) , r = n [ 0 ] ; if ( ! r ) return ; var i = n . offset ( ) , s = e ( r ) . css ( "overflow" ) != "hidden" ; this . containment = [ ( parseInt ( e ( r ) . css ( "borderLeftWidth" ) , 10 ) || 0 ) + ( parseInt ( e ( r ) . css ( "paddingLeft" ) , 10 ) || 0 ) , ( parseInt ( e ( r ) . css ( "borderTopWidth" ) , 10 ) || 0 ) + ( parseInt ( e ( r ) . css ( "paddingTop" ) , 10 ) || 0 ) , ( s ? Math . max ( r . scrollWidth , r . offsetWidth ) : r . offsetWidth ) - ( parseInt ( e ( r ) . css ( "borderLeftWidth" ) , 10 ) || 0 ) - ( parseInt ( e ( r ) . css ( "paddingRight" ) , 10 ) || 0 ) - this . helperProportions .
2013-01-08 05:03:40 +00:00
s . bind ( "click" , function ( e ) { e . preventDefault ( ) , n . is ( ":animated" ) || ( p = Math . abs ( n . position ( ) . top ) - f . data ( "scrollButtons-scrollAmount" ) , n . position ( ) . top >= - f . data ( "scrollButtons-scrollAmount" ) && ( p = "top" ) , f . mCustomScrollbar ( "scrollTo" , p ) ) } ) ) } else if ( f . data ( "horizontalScroll" ) ) { a . add ( u ) . unbind ( "click mousedown mouseup mouseout" , g , w ) ; var d , v = r . width ( ) , m = i . width ( ) ; a . bind ( "mousedown" , function ( e ) { e . preventDefault ( ) ; var t = v - m ; d = setInterval ( function ( ) { var e = Math . abs ( i . position ( ) . left - t ) * ( 100 / f . data ( "scrollButtons-scrollSpeed" ) ) ; i . stop ( ) . animate ( { left : t } , e , "linear" ) , f . mCustomScrollbar ( "scroll" ) } , 20 ) } ) ; var g = function ( e ) { e . preventDefault ( ) , clearInterval ( d ) , i . stop ( ) } ; a . bind ( "mouseup mouseout" , g ) ; var y ; u . bind ( "mousedown" , function ( e ) { e . preventDefault ( ) ; var t = 0 ; y = setInterval ( function ( ) { var e = Math . abs ( i . position ( ) . left - t ) * ( 100 / f . data ( "scrollButtons-scrollSpeed" ) ) ; i . stop ( ) . animate ( { left : t } , e , "linear" ) , f . mCustomScrollbar ( "scroll" ) } , 20 ) } ) ; var w = function ( e ) { e . preventDefault ( ) , clearInterval ( y ) , i . stop ( ) } ; u . bind ( "mouseup mouseout" , w ) } else { o . add ( s ) . unbind ( "click mousedown mouseup mouseout" , T , C ) ; var E , S = r . height ( ) , x = i . height ( ) ; o . bind ( "mousedown" , function ( e ) { e . preventDefault ( ) ; var t = S - x ; E = setInterval ( function ( ) { var e = Math . abs ( i . position ( ) . top - t ) * ( 100 / f . data ( "scrollButtons-scrollSpeed" ) ) ; i . stop ( ) . animate ( { top : t } , e , "linear" ) , f . mCustomScrollbar ( "scroll" ) } , 20 ) } ) ; var T = function ( e ) { e . preventDefault ( ) , clearInterval ( E ) , i . stop ( ) } ; o . bind ( "mouseup mouseout" , T ) ; var N ; s . bind ( "mousedown" , function ( e ) { e . preventDefault ( ) ; var t = 0 ; N = setInterval ( function ( ) { var e = Math . abs ( i . position ( ) . top - t ) * ( 100 / f . data ( "scrollButtons-scrollSpeed" ) ) ; i . stop ( ) . animate ( { top : t } , e , "linear" ) , f . mCustomScrollbar ( "scroll" ) } , 20 ) } ) ; var C = function ( e ) { e . preventDefault ( ) , clearInterval ( N ) , i . stop ( ) } ; s . bind ( "mouseup mouseout" , C ) } t . unbind ( "focusin" ) . bind ( "focusin" , function ( ) { t . scrollTop ( 0 ) . scrollLeft ( 0 ) ; var s = e ( document . activeElement ) ; if ( s . is ( "input,textarea,select,button,a[tabindex],area,object" ) ) if ( f . data ( "horizontalScroll" ) ) { var o = n . position ( ) . left , u = s . position ( ) . left , a = t . width ( ) , l = s . outerWidth ( ) ; if ( ! ( o + u >= 0 && o + u <= a - l ) ) { var c = u / f . data ( "scrollAmount" ) ; c >= r . width ( ) - i . width ( ) && ( c = r . width ( ) - i . width ( ) ) , i . css ( "left" , c ) , f . mCustomScrollbar ( "scroll" ) } } else { var h = n . position ( ) . top , p = s . position ( ) . top , d = t . height ( ) , v = s . outerHeight ( ) ; if ( ! ( h + p >= 0 && h + p <= d - v ) ) { var c = p / f . data ( "scrollAmount" ) ; c >= r . height ( ) - i . height ( ) && ( c = r . height ( ) - i . height ( ) ) , i . css ( "top" , c ) , f . mCustomScrollbar ( "scroll" ) } } } ) } , scroll : function ( t ) { var n = e ( this ) , r = n . find ( ".mCSB_dragger" ) , i = n . find ( ".mCSB_container" ) , s = n . find ( ".mCustomScrollBox" ) ; if ( n . data ( "horizontalScroll" ) ) var o = r . position ( ) . left , u = - o * n . data ( "scrollAmount" ) , a = i . position ( ) . left , f = Math . round ( a - u ) ; else var l = r . position ( ) . top , c = - l * n . data ( "scrollAmount" ) , h = i . position ( ) . top , p = Math . round ( h - c ) ; if ( e . browser . webkit ) var d = ( window . outerWidth - 8 ) / window . innerWidth , v = d < . 98 || d > 1.02 ; n . data ( "scrollInertia" ) === 0 || v ? ( n . data ( "horizontalScroll" ) ? i . css ( "left" , u ) : i . css ( "top" , c ) , t || n . mCustomScrollbar ( "callbacks" , s , i ) ) : n . data ( "horizontalScroll" ) ? i . stop ( ) . animate ( { left : "-=" + f } , n . data ( "scrollInertia" ) , n . data ( "scrollEasing" ) , function ( ) { t || n . mCustomScrollbar ( "callbacks" , s , i ) } ) : i . stop ( ) . animate ( { top : "-=" + p } , n . data ( "scrollInertia" ) , n . data ( "scrollEasing" ) , function ( ) { t || n . mCustomScrollbar ( "callbacks" , s , i ) } ) } , scrollTo : function ( t , n ) { var r = { moveDragger : ! 1 , callback : ! 0 } , n = e . extend ( r , n ) , i = e ( this ) , s , o = i . find ( ".mCustomScrollBox" ) , u = o . children ( ".mCSB_container" ) ; if ( ! e ( document ) . data ( "mCS-is-touch-device" ) ) var a = i . find ( ".mCSB_draggerContainer" ) , f = a . children ( ".mCSB_dragger" ) ; var l ; if ( t ) { if ( typeof t == "number" ) n . moveDragger ? s = t : ( l = t , s = Math . round ( l / i . data ( "scrollAmount" ) ) ) ; else if ( typeof t == "string" ) { var c ; t === "top" ? c = 0 : t === "bottom" && ! i . data ( "horizontalScroll" ) ? c = u . outerHeight ( ) - o . height ( ) : t === "left" ? c = 0 : t === "right" && i . data ( "horizontalScroll" ) ? c = u . outerWidth ( ) - o . width ( ) : t === "first" ? c = i . find ( ".mCSB_container" ) . find ( ":first" ) : t === "last" ? c = i . find ( ".mCSB_container" ) . find ( ":last" ) : c = i . find ( t ) , c . length === 1 ? ( i . data ( "horizontalScroll" ) ? l = c . position ( ) . left : l = c . position ( ) . top , e ( document ) . data ( "mCS-is-touch-device" ) ? s = l : s = Math . ceil ( l / i . data ( " scrollAm