2015-09-09 21:45:26 +02:00
// 4.2.5 (2015-08-31)
! function ( e , t ) { "use strict" ; function n ( e , t ) { for ( var n , r = [ ] , i = 0 ; i < e . length ; ++ i ) { if ( n = s [ e [ i ] ] || o ( e [ i ] ) , ! n ) throw "module definition dependecy not found: " + e [ i ] ; r . push ( n ) } t . apply ( null , r ) } function r ( e , r , i ) { if ( "string" != typeof e ) throw "invalid module definition, module id must be defined and be a string" ; if ( r === t ) throw "invalid module definition, dependencies must be specified" ; if ( i === t ) throw "invalid module definition, definition function must be specified" ; n ( r , function ( ) { s [ e ] = i . apply ( null , arguments ) } ) } function i ( e ) { return ! ! s [ e ] } function o ( t ) { for ( var n = e , r = t . split ( /[.\/]/ ) , i = 0 ; i < r . length ; ++ i ) { if ( ! n [ r [ i ] ] ) return ; n = n [ r [ i ] ] } return n } function a ( n ) { var r , i , o , a , l ; for ( r = 0 ; r < n . length ; r ++ ) { i = e , o = n [ r ] , a = o . split ( /[.\/]/ ) ; for ( var c = 0 ; c < a . length - 1 ; ++ c ) i [ a [ c ] ] === t && ( i [ a [ c ] ] = { } ) , i = i [ a [ c ] ] ; i [ a [ a . length - 1 ] ] = s [ o ] } if ( e . AMDLC _TESTS ) { l = e . privateModules || { } ; for ( o in s ) l [ o ] = s [ o ] ; for ( r = 0 ; r < n . length ; r ++ ) delete l [ n [ r ] ] ; e . privateModules = l } } var s = { } , l = "tinymce/dom/EventUtils" , c = "tinymce/dom/Sizzle" , u = "tinymce/Env" , d = "tinymce/util/Arr" , f = "tinymce/util/Tools" , h = "tinymce/dom/DomQuery" , p = "tinymce/html/Styles" , m = "tinymce/dom/TreeWalker" , g = "tinymce/dom/Range" , v = "tinymce/html/Entities" , y = "tinymce/dom/StyleSheetLoader" , b = "tinymce/dom/DOMUtils" , x = "tinymce/dom/ScriptLoader" , C = "tinymce/AddOnManager" , w = "tinymce/dom/RangeUtils" , _ = "tinymce/NodeChange" , E = "tinymce/html/Node" , N = "tinymce/html/Schema" , S = "tinymce/html/SaxParser" , k = "tinymce/html/DomParser" , T = "tinymce/html/Writer" , R = "tinymce/html/Serializer" , A = "tinymce/dom/Serializer" , B = "tinymce/dom/TridentSelection" , D = "tinymce/util/VK" , M = "tinymce/dom/ControlSelection" , L = "tinymce/dom/BookmarkManager" , H = "tinymce/dom/Selection" , P = "tinymce/dom/ElementUtils" , O = "tinymce/fmt/Preview" , I = "tinymce/Formatter" , F = "tinymce/UndoManager" , z = "tinymce/EnterKey" , W = "tinymce/ForceBlocks" , V = "tinymce/EditorCommands" , U = "tinymce/util/URI" , $ = "tinymce/util/Class" , q = "tinymce/util/EventDispatcher" , j = "tinymce/data/Binding" , K = "tinymce/util/Observable" , Y = "tinymce/data/ObservableObject" , G = "tinymce/ui/Selector" , X = "tinymce/ui/Collection" , J = "tinymce/ui/DomUtils" , Q = "tinymce/ui/BoxUtils" , Z = "tinymce/ui/ClassList" , ee = "tinymce/ui/ReflowQueue" , te = "tinymce/ui/Control" , ne = "tinymce/ui/Factory" , re = "tinymce/ui/KeyboardNavigation" , ie = "tinymce/ui/Container" , oe = "tinymce/ui/DragHelper" , ae = "tinymce/ui/Scrollable" , se = "tinymce/ui/Panel" , le = "tinymce/ui/Movable" , ce = "tinymce/ui/Resizable" , ue = "tinymce/ui/FloatPanel" , de = "tinymce/ui/Window" , fe = "tinymce/ui/MessageBox" , he = "tinymce/WindowManager" , pe = "tinymce/util/Quirks" , me = "tinymce/EditorObservable" , ge = "tinymce/Shortcuts" , ve = "tinymce/util/Promise" , ye = "tinymce/util/Fun" , be = "tinymce/file/Uploader" , xe = "tinymce/file/Conversions" , Ce = "tinymce/file/ImageScanner" , we = "tinymce/file/BlobCache" , _e = "tinymce/EditorUpload" , Ee = "tinymce/Editor" , Ne = "tinymce/util/I18n" , Se = "tinymce/FocusManager" , ke = "tinymce/EditorManager" , Te = "tinymce/LegacyInput" , Re = "tinymce/util/XHR" , Ae = "tinymce/util/JSON" , Be = "tinymce/util/JSONRequest" , De = "tinymce/util/JSONP" , Me = "tinymce/util/LocalStorage" , Le = "tinymce/Compat" , He = "tinymce/ui/Layout" , Pe = "tinymce/ui/AbsoluteLayout" , Oe = "tinymce/ui/Tooltip" , Ie = "tinymce/ui/Widget" , Fe = "tinymce/ui/Button" , ze = "tinymce/ui/ButtonGroup" , We = "tinymce/ui/Checkbox" , Ve = "tinymce/ui/ComboBox" , Ue = "tinymce/ui/ColorBox" , $e = "tinymce/ui/PanelButton" , qe = "tinymce/ui/ColorButton" , je = "tinymce/util/Color" , Ke = "tinymce/ui/ColorPicker" , Ye = "tinymce/ui/Path" , Ge = "tinymce/ui/ElementPath" , Xe = "tinymce/ui/FormItem" , Je = "tinymce/ui/Form" , Qe = "tinymce/ui/FieldSet" , Ze = "tinymce/ui/FilePicker" , et = "tinymce/ui/FitLayout" , tt = "tinymce/ui/FlexLayout" , nt = "tinymce/ui/FlowLayout" , rt = "tinymce/ui/FormatControls" , it = "tinymce/ui/GridLayout" , ot = "tinymce/ui/Iframe" , at = "tinymce/ui/Label" , st = "tinymce/ui/Toolbar" , lt = "tinymce/ui/MenuBar" , ct = "tinymce/ui/MenuButton" , ut = "tinymce/ui/MenuItem" , dt = "tinymce/ui/Menu" , ft = "tinymce/ui/ListBox" , ht = "tinymce/ui/Radio" , pt = "tinymce/ui/Rect" , mt = "tinymce/ui/ResizeHandle" , gt = "tinymce/ui/Slider" , vt = "tinymce/ui/Spacer" , yt = "tinymce/ui/SplitButton" , bt = "tinymce/ui/StackLayout" , xt = "tinymce/ui/TabPanel" , Ct = "tinymce/ui/TextBox" , wt = "tinymce/ui/Throbber" ; r ( l , [ ] , function ( ) { function
"for" : "htmlFor" , "class" : "className" , readonly : "readOnly" } , B = { "float" : "cssFloat" } , D = { } , M = { } , L = /^\s*|\s*$/g ; return f . fn = f . prototype = { constructor : f , selector : "" , context : null , length : 0 , init : function ( e , t ) { var n = this , r , i ; if ( ! e ) return n ; if ( e . nodeType ) return n . context = n [ 0 ] = e , n . length = 1 , n ; if ( t && t . nodeType ) n . context = t ; else { if ( t ) return f ( e ) . attr ( t ) ; n . context = t = document } if ( a ( e ) ) { if ( n . selector = e , r = "<" === e . charAt ( 0 ) && ">" === e . charAt ( e . length - 1 ) && e . length >= 3 ? [ null , e , null ] : N . exec ( e ) , ! r ) return f ( t ) . find ( e ) ; if ( r [ 1 ] ) for ( i = l ( e , v ( t ) ) . firstChild ; i ; ) _ . call ( n , i ) , i = i . nextSibling ; else { if ( i = v ( t ) . getElementById ( r [ 2 ] ) , ! i ) return n ; if ( i . id !== r [ 2 ] ) return n . find ( e ) ; n . length = 1 , n [ 0 ] = i } } else this . add ( e , ! 1 ) ; return n } , toArray : function ( ) { return r . toArray ( this ) } , add : function ( e , t ) { var n = this , r , i ; if ( a ( e ) ) return n . add ( f ( e ) ) ; if ( t !== ! 1 ) for ( r = f . unique ( n . toArray ( ) . concat ( f . makeArray ( e ) ) ) , n . length = r . length , i = 0 ; i < r . length ; i ++ ) n [ i ] = r [ i ] ; else _ . apply ( n , f . makeArray ( e ) ) ; return n } , attr : function ( e , t ) { var n = this , r ; if ( "object" == typeof e ) m ( e , function ( e , t ) { n . attr ( e , t ) } ) ; else { if ( ! o ( t ) ) { if ( n [ 0 ] && 1 === n [ 0 ] . nodeType ) { if ( r = D [ e ] , r && r . get ) return r . get ( n [ 0 ] , e ) ; if ( R [ e ] ) return n . prop ( e ) ? e : k ; t = n [ 0 ] . getAttribute ( e , 2 ) , null === t && ( t = k ) } return t } this . each ( function ( ) { var n ; if ( 1 === this . nodeType ) { if ( n = D [ e ] , n && n . set ) return void n . set ( this , t ) ; null === t ? this . removeAttribute ( e , 2 ) : this . setAttribute ( e , t , 2 ) } } ) } return n } , removeAttr : function ( e ) { return this . attr ( e , null ) } , prop : function ( e , t ) { var n = this ; if ( e = A [ e ] || e , "object" == typeof e ) m ( e , function ( e , t ) { n . prop ( e , t ) } ) ; else { if ( ! o ( t ) ) return n [ 0 ] && n [ 0 ] . nodeType && e in n [ 0 ] ? n [ 0 ] [ e ] : t ; this . each ( function ( ) { 1 == this . nodeType && ( this [ e ] = t ) } ) } return n } , css : function ( e , t ) { function n ( e ) { return e . replace ( /-(\D)/g , function ( e , t ) { return t . toUpperCase ( ) } ) } function r ( e ) { return e . replace ( /[A-Z]/g , function ( e ) { return "-" + e } ) } var i = this , a , s ; if ( "object" == typeof e ) m ( e , function ( e , t ) { i . css ( e , t ) } ) ; else if ( o ( t ) ) e = n ( e ) , "number" != typeof t || T [ e ] || ( t += "px" ) , i . each ( function ( ) { var n = this . style ; if ( s = M [ e ] , s && s . set ) return void s . set ( this , t ) ; try { this . style [ B [ e ] || e ] = t } catch ( i ) { } ( null === t || "" === t ) && ( n . removeProperty ? n . removeProperty ( r ( e ) ) : n . removeAttribute ( e ) ) } ) ; else { if ( a = i [ 0 ] , s = M [ e ] , s && s . get ) return s . get ( a ) ; if ( a . ownerDocument . defaultView ) try { return a . ownerDocument . defaultView . getComputedStyle ( a , null ) . getPropertyValue ( r ( e ) ) } catch ( l ) { return k } else if ( a . currentStyle ) return a . currentStyle [ n ( e ) ] } return i } , remove : function ( ) { for ( var e = this , t , n = this . length ; n -- ; ) t = e [ n ] , S . clean ( t ) , t . parentNode && t . parentNode . removeChild ( t ) ; return this } , empty : function ( ) { for ( var e = this , t , n = this . length ; n -- ; ) for ( t = e [ n ] ; t . firstChild ; ) t . removeChild ( t . firstChild ) ; return this } , html : function ( e ) { var t = this , n ; if ( o ( e ) ) { n = t . length ; try { for ( ; n -- ; ) t [ n ] . innerHTML = e } catch ( r ) { f ( t [ n ] ) . empty ( ) . append ( e ) } return t } return t [ 0 ] ? t [ 0 ] . innerHTML : "" } , text : function ( e ) { var t = this , n ; if ( o ( e ) ) { for ( n = t . length ; n -- ; ) "innerText" in t [ n ] ? t [ n ] . innerText = e : t [ 0 ] . textContent = e ; return t } return t [ 0 ] ? t [ 0 ] . innerText || t [ 0 ] . textContent : "" } , append : function ( ) { return c ( this , arguments , function ( e ) { 1 === this . nodeType && this . appendChild ( e ) } ) } , prepend : function ( ) { return c ( this , arguments , function ( e ) { 1 === this . nodeType && this . insertBefore ( e , this . firstChild ) } , ! 0 ) } , before : function ( ) { var e = this ; return e [ 0 ] && e [ 0 ] . parentNode ? c ( e , arguments , function ( e ) { this . parentNode . insertBefore ( e , this ) } ) : e } , after : function ( ) { var e = this ; return e [ 0 ] && e [ 0 ] . parentNode ? c ( e , arguments , function ( e ) { this . parentNode . insertBefore ( e , this . nextSibling ) } , ! 0 ) : e } , appendTo : function ( e ) { return f ( e ) . append ( this ) , this } , prependTo : function ( e ) { return f ( e ) . prepend ( this ) , this } , replaceWith : function ( e ) { return this . before ( e ) . remove ( ) } , wrap : function ( e ) { return d ( this , e ) } , wrapAll : function ( e ) { return d ( this , e , ! 0 ) } , wrapInner : function ( e ) { return this . each ( function ( ) { f ( this ) . contents ( ) . wrapAll ( e ) } ) , this } , unwrap : function ( ) { return this . parent ( ) . each ( function ( ) { f ( this ) . replaceWith ( this . childNodes ) } ) } , clone : function ( ) { var e = [ ] ; return this . each ( function ( ) { e . push ( this . cloneNode ( ! 0 ) ) } ) , f ( e ) } , addClass : function ( e ) { return this . toggleClass ( e , ! 0 ) } , removeClass : function ( e ) { return this . toggleClass ( e , ! 1 ) } , toggleClass : function ( e , t ) { var n = this ; return "string" != typeof e ? n : ( - 1 !== e .
do { if ( a = e . nodeType , 1 === a ) { if ( e . getAttribute ( "data-mce-bogus" ) ) continue ; if ( l = e . nodeName . toLowerCase ( ) , t && t [ l ] ) { if ( "br" === l ) { c ++ ; continue } return ! 1 } for ( i = n . getAttribs ( e ) , r = i . length ; r -- ; ) if ( l = i [ r ] . nodeName , "name" === l || "data-mce-bookmark" === l ) return ! 1 } if ( 8 == a ) return ! 1 ; if ( 3 === a && ! b . test ( e . nodeValue ) ) return ! 1 } while ( e = s . next ( ) ) } return 1 >= c } , createRng : function ( ) { var e = this . doc ; return e . createRange ? e . createRange ( ) : new a ( this ) } , nodeIndex : function ( e , t ) { var n = 0 , r , i ; if ( e ) for ( r = e . nodeType , e = e . previousSibling ; e ; e = e . previousSibling ) i = e . nodeType , ( ! t || 3 != i || i != r && e . nodeValue . length ) && ( n ++ , r = i ) ; return n } , split : function ( e , t , n ) { function r ( e ) { function t ( e ) { var t = e . previousSibling && "SPAN" == e . previousSibling . nodeName , n = e . nextSibling && "SPAN" == e . nextSibling . nodeName ; return t && n } var n , o = e . childNodes , a = e . nodeType ; if ( 1 != a || "bookmark" != e . getAttribute ( "data-mce-type" ) ) { for ( n = o . length - 1 ; n >= 0 ; n -- ) r ( o [ n ] ) ; if ( 9 != a ) { if ( 3 == a && e . nodeValue . length > 0 ) { var s = g ( e . nodeValue ) . length ; if ( ! i . isBlock ( e . parentNode ) || s > 0 || 0 === s && t ( e ) ) return } else if ( 1 == a && ( o = e . childNodes , 1 == o . length && o [ 0 ] && 1 == o [ 0 ] . nodeType && "bookmark" == o [ 0 ] . getAttribute ( "data-mce-type" ) && e . parentNode . insertBefore ( o [ 0 ] , e ) , o . length || /^(br|hr|input|img)$/i . test ( e . nodeName ) ) ) return ; i . remove ( e ) } return e } } var i = this , o = i . createRng ( ) , a , s , l ; return e && t ? ( o . setStart ( e . parentNode , i . nodeIndex ( e ) ) , o . setEnd ( t . parentNode , i . nodeIndex ( t ) ) , a = o . extractContents ( ) , o = i . createRng ( ) , o . setStart ( t . parentNode , i . nodeIndex ( t ) + 1 ) , o . setEnd ( e . parentNode , i . nodeIndex ( e ) + 1 ) , s = o . extractContents ( ) , l = e . parentNode , l . insertBefore ( r ( a ) , e ) , n ? l . replaceChild ( n , t ) : l . insertBefore ( t , e ) , l . insertBefore ( r ( s ) , e ) , i . remove ( e ) , n || t ) : void 0 } , bind : function ( e , t , n , r ) { var i = this ; if ( c . isArray ( e ) ) { for ( var o = e . length ; o -- ; ) e [ o ] = i . bind ( e [ o ] , t , n , r ) ; return e } return ! i . settings . collect || e !== i . doc && e !== i . win || i . boundEvents . push ( [ e , t , n , r ] ) , i . events . bind ( e , t , n , r || i ) } , unbind : function ( e , t , n ) { var r = this , i ; if ( c . isArray ( e ) ) { for ( i = e . length ; i -- ; ) e [ i ] = r . unbind ( e [ i ] , t , n ) ; return e } if ( r . boundEvents && ( e === r . doc || e === r . win ) ) for ( i = r . boundEvents . length ; i -- ; ) { var o = r . boundEvents [ i ] ; e != o [ 0 ] || t && t != o [ 1 ] || n && n != o [ 2 ] || this . events . unbind ( o [ 0 ] , o [ 1 ] , o [ 2 ] ) } return this . events . unbind ( e , t , n ) } , fire : function ( e , t , n ) { return this . events . fire ( e , t , n ) } , getContentEditable : function ( e ) { var t ; return e && 1 == e . nodeType ? ( t = e . getAttribute ( "data-mce-contenteditable" ) , t && "inherit" !== t ? t : "inherit" !== e . contentEditable ? e . contentEditable : null ) : null } , getContentEditableParent : function ( e ) { for ( var t = this . getRoot ( ) , n = null ; e && e !== t && ( n = this . getContentEditable ( e ) , null === n ) ; e = e . parentNode ) ; return n } , destroy : function ( ) { var t = this ; if ( t . boundEvents ) { for ( var n = t . boundEvents . length ; n -- ; ) { var r = t . boundEvents [ n ] ; this . events . unbind ( r [ 0 ] , r [ 1 ] , r [ 2 ] ) } t . boundEvents = null } e . setDocument && e . setDocument ( ) , t . win = t . doc = t . root = t . events = t . frag = null } , isChildOf : function ( e , t ) { for ( ; e ; ) { if ( t === e ) return ! 0 ; e = e . parentNode } return ! 1 } , dumpRng : function ( e ) { return "startContainer: " + e . startContainer . nodeName + ", startOffset: " + e . startOffset + ", endContainer: " + e . endContainer . nodeName + ", endOffset: " + e . endOffset } , _findSib : function ( e , t , n ) { var r = this , i = t ; if ( e ) for ( "string" == typeof i && ( i = function ( e ) { return r . is ( e , t ) } ) , e = e [ n ] ; e ; e = e [ n ] ) if ( i ( e ) ) return e ; return null } } , f . DOM = new f ( document ) , f } ) , r ( x , [ b , f ] , function ( e , t ) { function n ( ) { function e ( e , n ) { function i ( ) { a . remove ( l ) , s && ( s . onreadystatechange = s . onload = s = null ) , n ( ) } function o ( ) { "undefined" != typeof console && console . log && console . log ( "Failed to load: " + e ) } var a = r , s , l ; l = a . uniqueId ( ) , s = document . createElement ( "script" ) , s . id = l , s . type = "text/javascript" , s . src = t . _addCacheSuffix ( e ) , "onreadystatechange" in s ? s . onreadystatechange = function ( ) { /loaded|complete/ . test ( s . readyState ) && i ( ) } : s . onload = i , s . onerror = o , ( document . getElementsByTagName ( "head" ) [ 0 ] || document . body ) . appendChild ( s ) } var n = 0 , a = 1 , s = 2 , l = { } , c = [ ] , u = { } , d = [ ] , f = 0 , h ; this . isDone = function ( e ) { return l [ e ] == s } , this . markDone = function ( e ) { l [ e ] = s } , this . add = this . load = function ( e , t , r ) { var i = l [ e ] ; i == h && ( c . push ( e ) , l [ e ] = n ) , t && ( u [ e ] || ( u [ e ] = [ ] ) , u [ e ] . push ( { func : t , scope : r || this } ) ) } , this . loadQueue = function ( e , t ) { this . loadScripts ( c , e , t ) } , this . loadScripts = function ( t , n , r ) { function c ( e ) { i ( u [ e ] , function ( e ) { e . func . ca
} var v , y , b , x , C , w , _ , E , N , S , k , T , R , A = [ ] , B , D , M , L , H , P , O , I ; if ( o = o || { } , h = { } , p = { } , T = s ( i ( "script,style,head,html,body,title,meta,param" ) , l . getBlockElements ( ) ) , O = l . getNonEmptyElements ( ) , P = l . children , k = r . validate , I = "forced_root_block" in o ? o . forced _root _block : r . forced _root _block , H = l . getWhiteSpaceElements ( ) , R = /^[ \t\r\n]+/ , D = /[ \t\r\n]+$/ , M = /[ \t\r\n]+/g , L = /^[ \t\r\n]+$/ , v = new n ( { validate : k , allow _script _urls : r . allow _script _urls , allow _conditional _comments : r . allow _conditional _comments , self _closing _elements : g ( l . getSelfClosingElements ( ) ) , cdata : function ( e ) { b . append ( u ( "#cdata" , 4 ) ) . value = e } , text : function ( e , t ) { var n ; B || ( e = e . replace ( M , " " ) , b . lastChild && T [ b . lastChild . name ] && ( e = e . replace ( R , "" ) ) ) , 0 !== e . length && ( n = u ( "#text" , 3 ) , n . raw = ! ! t , b . append ( n ) . value = e ) } , comment : function ( e ) { b . append ( u ( "#comment" , 8 ) ) . value = e } , pi : function ( e , t ) { b . append ( u ( e , 7 ) ) . value = t , m ( b ) } , doctype : function ( e ) { var t ; t = b . append ( u ( "#doctype" , 10 ) ) , t . value = e , m ( b ) } , start : function ( e , t , n ) { var r , i , o , a , s ; if ( o = k ? l . getElementRule ( e ) : { } ) { for ( r = u ( o . outputName || e , 1 ) , r . attributes = t , r . shortEnded = n , b . append ( r ) , s = P [ b . name ] , s && P [ r . name ] && ! s [ r . name ] && A . push ( r ) , i = f . length ; i -- ; ) a = f [ i ] . name , a in t . map && ( N = p [ a ] , N ? N . push ( r ) : p [ a ] = [ r ] ) ; T [ e ] && m ( r ) , n || ( b = r ) , ! B && H [ e ] && ( B = ! 0 ) } } , end : function ( t ) { var n , r , i , o , a ; if ( r = k ? l . getElementRule ( t ) : { } ) { if ( T [ t ] && ! B ) { if ( n = b . firstChild , n && 3 === n . type ) if ( i = n . value . replace ( R , "" ) , i . length > 0 ) n . value = i , n = n . next ; else for ( o = n . next , n . remove ( ) , n = o ; n && 3 === n . type ; ) i = n . value , o = n . next , ( 0 === i . length || L . test ( i ) ) && ( n . remove ( ) , n = o ) , n = o ; if ( n = b . lastChild , n && 3 === n . type ) if ( i = n . value . replace ( D , "" ) , i . length > 0 ) n . value = i , n = n . prev ; else for ( o = n . prev , n . remove ( ) , n = o ; n && 3 === n . type ; ) i = n . value , o = n . prev , ( 0 === i . length || L . test ( i ) ) && ( n . remove ( ) , n = o ) , n = o } if ( B && H [ t ] && ( B = ! 1 ) , ( r . removeEmpty || r . paddEmpty ) && b . isEmpty ( O ) ) if ( r . paddEmpty ) b . empty ( ) . append ( new e ( "#text" , "3" ) ) . value = "\xa0" ; else if ( ! b . attributes . map . name && ! b . attributes . map . id ) return a = b . parent , T [ b . name ] ? b . empty ( ) . remove ( ) : b . unwrap ( ) , void ( b = a ) ; b = b . parent } } } , l ) , y = b = new e ( o . context || r . root _name , 11 ) , v . parse ( t ) , k && A . length && ( o . context ? o . invalid = ! 0 : c ( A ) ) , I && ( "body" == y . name || o . isRootContent ) && a ( ) , ! o . invalid ) { for ( S in h ) { for ( N = d [ S ] , x = h [ S ] , _ = x . length ; _ -- ; ) x [ _ ] . parent || x . splice ( _ , 1 ) ; for ( C = 0 , w = N . length ; w > C ; C ++ ) N [ C ] ( x , S , o ) } for ( C = 0 , w = f . length ; w > C ; C ++ ) if ( N = f [ C ] , N . name in p ) { for ( x = p [ N . name ] , _ = x . length ; _ -- ; ) x [ _ ] . parent || x . splice ( _ , 1 ) ; for ( _ = 0 , E = N . callbacks . length ; E > _ ; _ ++ ) N . callbacks [ _ ] ( x , N . name , o ) } } return y } , r . remove _trailing _brs && u . addNodeFilter ( "br" , function ( t ) { var n , r = t . length , i , o = s ( { } , l . getBlockElements ( ) ) , a = l . getNonEmptyElements ( ) , c , u , d , f , h , p ; for ( o . body = 1 , n = 0 ; r > n ; n ++ ) if ( i = t [ n ] , c = i . parent , o [ i . parent . name ] && i === c . lastChild ) { for ( d = i . prev ; d ; ) { if ( f = d . name , "span" !== f || "bookmark" !== d . attr ( "data-mce-type" ) ) { if ( "br" !== f ) break ; if ( "br" === f ) { i = null ; break } } d = d . prev } i && ( i . remove ( ) , c . isEmpty ( a ) && ( h = l . getElementRule ( c . name ) , h && ( h . removeEmpty ? c . remove ( ) : h . paddEmpty && ( c . empty ( ) . append ( new e ( "#text" , 3 ) ) . value = "\xa0" ) ) ) ) } else { for ( u = i ; c && c . firstChild === u && c . lastChild === u && ( u = c , ! o [ c . name ] ) ; ) c = c . parent ; u === c && ( p = new e ( "#text" , 3 ) , p . value = "\xa0" , i . replace ( p ) ) } } ) , r . allow _html _in _named _anchor || u . addAttributeFilter ( "id,name" , function ( e ) { for ( var t = e . length , n , r , i , o ; t -- ; ) if ( o = e [ t ] , "a" === o . name && o . firstChild && ! o . attr ( "href" ) ) { i = o . parent , n = o . lastChild ; do r = n . prev , i . insert ( n , o ) , n = r ; while ( n ) } } ) , r . validate && l . getValidClasses ( ) && u . addAttributeFilter ( "class" , function ( e ) { for ( var t = e . length , n , r , i , o , a , s = l . getValidClasses ( ) , c , u ; t -- ; ) { for ( n = e [ t ] , r = n . attr ( "class" ) . split ( " " ) , a = "" , i = 0 ; i < r . length ; i ++ ) o = r [ i ] , u = ! 1 , c = s [ "*" ] , c && c [ o ] && ( u = ! 0 ) , c = s [ n . name ] , ! u && c && c [ o ] && ( u = ! 0 ) , u && ( a && ( a += " " ) , a += o ) ; a . length || ( a = null ) , n . attr ( "class" , a ) } } ) } } ) , r ( T , [ v , f ] , function ( e , t ) { var n = t . makeMap ; return function ( t ) { var r = [ ] , i , o , a , s , l ; return t = t || { } , i = t . indent , o = n ( t . indent _before || "" ) , a = n ( t . indent _after || "" ) , s = e . getEncodeFunc ( t . entity _encoding || "raw" , t . entities ) , l = "html" == t . element _format , { start : function ( e , t , n ) { var c , u , d , f ; if ( i && o [ e ] && r . length > 0 && ( f = r [ r . length - 1 ] , f . length > 0 && "\n" !== f && r . push ( "\n" ) ) , r . push ( "<" , e ) , t ) for ( c = 0 , u = t . length ; u > c ; c ++ ) d = t [ c ] , r . push ( " " , d . name , '="' , s ( d . value , ! 0 ) , '"' ) ; ! n || l ? r [ r . length ] = ">" : r [ r . length ] = " />" , n && i && a [ e ] && r
do { if ( 3 == n . nodeType && 0 !== u ( n . nodeValue ) . length ) return void ( r ? t . setStart ( n , 0 ) : t . setEnd ( n , n . nodeValue . length ) ) ; if ( s [ n . nodeName ] && ! /^(TD|TH)$/ . test ( n . nodeName ) ) return void ( r ? t . setStartBefore ( n ) : "BR" == n . nodeName ? t . setEndBefore ( n ) : t . setEndAfter ( n ) ) ; if ( a . ie && a . ie < 11 && this . dom . isBlock ( n ) && this . dom . isEmpty ( n ) ) return void ( r ? t . setStart ( n , 0 ) : t . setEnd ( n , 0 ) ) } while ( n = r ? o . next ( ) : o . prev ( ) ) ; "BODY" == i . nodeName && ( r ? t . setStart ( i , 0 ) : t . setEnd ( i , i . childNodes . length ) ) } , destroy : function ( ) { this . win = null , this . controlSelection . destroy ( ) } } , l } ) , r ( P , [ L , f ] , function ( e , t ) { function n ( t ) { this . compare = function ( n , i ) { function o ( e ) { var n = { } ; return r ( t . getAttribs ( e ) , function ( r ) { var i = r . nodeName . toLowerCase ( ) ; 0 !== i . indexOf ( "_" ) && "style" !== i && "data-mce-style" !== i && ( n [ i ] = t . getAttrib ( e , i ) ) } ) , n } function a ( e , t ) { var n , r ; for ( r in e ) if ( e . hasOwnProperty ( r ) ) { if ( n = t [ r ] , "undefined" == typeof n ) return ! 1 ; if ( e [ r ] != n ) return ! 1 ; delete t [ r ] } for ( r in t ) if ( t . hasOwnProperty ( r ) ) return ! 1 ; return ! 0 } return n . nodeName != i . nodeName ? ! 1 : a ( o ( n ) , o ( i ) ) && a ( t . parseStyle ( t . getAttrib ( n , "style" ) ) , t . parseStyle ( t . getAttrib ( i , "style" ) ) ) ? ! e . isBookmarkNode ( n ) && ! e . isBookmarkNode ( i ) : ! 1 } } var r = t . each ; return n } ) , r ( O , [ f ] , function ( e ) { function t ( e , t ) { function r ( e ) { return e . replace ( /%(\w+)/g , "" ) } var i , o , a = e . dom , s = "" , l , c ; if ( c = e . settings . preview _styles , c === ! 1 ) return "" ; if ( c || ( c = "font-family font-size font-weight font-style text-decoration text-transform color background-color border border-radius outline text-shadow" ) , "string" == typeof t ) { if ( t = e . formatter . get ( t ) , ! t ) return ; t = t [ 0 ] } return i = t . block || t . inline || "span" , o = a . create ( i ) , n ( t . styles , function ( e , t ) { e = r ( e ) , e && a . setStyle ( o , t , e ) } ) , n ( t . attributes , function ( e , t ) { e = r ( e ) , e && a . setAttrib ( o , t , e ) } ) , n ( t . classes , function ( e ) { e = r ( e ) , a . hasClass ( o , e ) || a . addClass ( o , e ) } ) , e . fire ( "PreviewFormats" ) , a . setStyles ( o , { position : "absolute" , left : - 65535 } ) , e . getBody ( ) . appendChild ( o ) , l = a . getStyle ( e . getBody ( ) , "fontSize" , ! 0 ) , l = /px$/ . test ( l ) ? parseInt ( l , 10 ) : 0 , n ( c . split ( " " ) , function ( t ) { var n = a . getStyle ( o , t , ! 0 ) ; if ( ! ( "background-color" == t && /transparent|rgba\s*\([^)]+,\s*0\)/ . test ( n ) && ( n = a . getStyle ( e . getBody ( ) , t , ! 0 ) , "#ffffff" == a . toHex ( n ) . toLowerCase ( ) ) || "color" == t && "#000000" == a . toHex ( n ) . toLowerCase ( ) ) ) { if ( "font-size" == t && /em|%$/ . test ( n ) ) { if ( 0 === l ) return ; n = parseFloat ( n , 10 ) / ( /%$/ . test ( n ) ? 100 : 1 ) , n = n * l + "px" } "border" == t && n && ( s += "padding:0 2px;" ) , s += t + ":" + n + ";" } } ) , e . fire ( "AfterPreviewFormats" ) , a . remove ( o ) , s } var n = e . each ; return { getCssText : t } } ) , r ( I , [ m , w , L , P , f , O ] , function ( e , t , n , r , i , o ) { return function ( a ) { function s ( e ) { return e . nodeType && ( e = e . nodeName ) , ! ! a . schema . getTextBlockElements ( ) [ e . toLowerCase ( ) ] } function l ( e ) { return /^(TH|TD)$/ . test ( e . nodeName ) } function c ( e ) { return e && /^(IMG)$/ . test ( e . nodeName ) } function u ( e , t ) { return q . getParents ( e , t , q . getRoot ( ) ) } function d ( e ) { return 1 === e . nodeType && "_mce_caret" === e . id } function f ( ) { m ( { valigntop : [ { selector : "td,th" , styles : { verticalAlign : "top" } } ] , valignmiddle : [ { selector : "td,th" , styles : { verticalAlign : "middle" } } ] , valignbottom : [ { selector : "td,th" , styles : { verticalAlign : "bottom" } } ] , alignleft : [ { selector : "figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li" , styles : { textAlign : "left" } , defaultBlock : "div" } , { selector : "img,table" , collapsed : ! 1 , styles : { "float" : "left" } } ] , aligncenter : [ { selector : "figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li" , styles : { textAlign : "center" } , defaultBlock : "div" } , { selector : "img" , collapsed : ! 1 , styles : { display : "block" , marginLeft : "auto" , marginRight : "auto" } } , { selector : "table" , collapsed : ! 1 , styles : { marginLeft : "auto" , marginRight : "auto" } } ] , alignright : [ { selector : "figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li" , styles : { textAlign : "right" } , defaultBlock : "div" } , { selector : "img,table" , collapsed : ! 1 , styles : { "float" : "right" } } ] , alignjustify : [ { selector : "figure,p,h1,h2,h3,h4,h5,h6,td,th,tr,div,ul,ol,li" , styles : { textAlign : "justify" } , defaultBlock : "div" } ] , bold : [ { inline : "strong" , remove : "all" } , { inline : "span" , styles : { fontWeight : "bold" } } , { inline : "b" , remove : "all" } ] , italic : [ { inline : "em" , remove : "all" } , { inline : "span" , styles : { fontStyle : "italic" } } , { inline : "i" , remove : "all" } ] , underline : [ { inline : "span" , styles : { textDecoration : "underline" } , exact : ! 0 } , { inline : "u" , remove : "all" } ] , strikethrough : [ { inline : "span" , style
for ( ; t && t != s ; ) { if ( a [ t . nodeName ] ) return ; t = t . parentNode } if ( l = i . getRng ( ) , l . setStart ) { c = l . startContainer , u = l . startOffset , d = l . endContainer , f = l . endOffset ; try { v = e . getDoc ( ) . activeElement === s } catch ( C ) { } } else l . item && ( t = l . item ( 0 ) , l = e . getDoc ( ) . body . createTextRange ( ) , l . moveToElementText ( t ) ) , v = l . parentElement ( ) . ownerDocument === e . getDoc ( ) , y = l . duplicate ( ) , y . collapse ( ! 0 ) , u = - 1 * y . move ( "character" , m ) , y . collapsed || ( y = l . duplicate ( ) , y . collapse ( ! 1 ) , f = - 1 * y . move ( "character" , m ) - u ) ; for ( t = s . firstChild , b = s . nodeName . toLowerCase ( ) ; t ; ) if ( ( 3 === t . nodeType || 1 == t . nodeType && ! a [ t . nodeName ] ) && o . isValidChild ( b , x . toLowerCase ( ) ) ) { if ( 3 === t . nodeType && 0 === t . nodeValue . length ) { p = t , t = t . nextSibling , r . remove ( p ) ; continue } h || ( h = r . create ( x , e . settings . forced _root _block _attrs ) , t . parentNode . insertBefore ( h , t ) , g = ! 0 ) , p = t , t = t . nextSibling , h . appendChild ( p ) } else h = null , t = t . nextSibling ; if ( g && v ) { if ( l . setStart ) l . setStart ( c , u ) , l . setEnd ( d , f ) , i . setRng ( l ) ; else try { l = e . getDoc ( ) . body . createTextRange ( ) , l . moveToElementText ( s ) , l . collapse ( ! 0 ) , l . moveStart ( "character" , u ) , f > 0 && l . moveEnd ( "character" , f ) , l . select ( ) } catch ( C ) { } e . nodeChanged ( ) } } } var n = e . settings , r = e . dom , i = e . selection , o = e . schema , a = o . getBlockElements ( ) ; n . forced _root _block && e . on ( "NodeChange" , t ) } } ) , r ( V , [ R , u , f , P , w , m ] , function ( e , n , r , i , o , a ) { var s = r . each , l = r . extend , c = r . map , u = r . inArray , d = r . explode , f = n . gecko , h = n . ie , p = n . ie && n . ie < 11 , m = ! 0 , g = ! 1 ; return function ( r ) { function v ( e , t , n , i ) { var o , a , c = 0 ; if ( /^(mceAddUndoLevel|mceEndUndoLevel|mceBeginUndoLevel|mceRepaint)$/ . test ( e ) || i && i . skip _focus || r . focus ( ) , i = l ( { } , i ) , i = r . fire ( "BeforeExecCommand" , { command : e , ui : t , value : n } ) , i . isDefaultPrevented ( ) ) return ! 1 ; if ( a = e . toLowerCase ( ) , o = L . exec [ a ] ) return o ( a , t , n ) , r . fire ( "ExecCommand" , { command : e , ui : t , value : n } ) , ! 0 ; if ( s ( r . plugins , function ( i ) { return i . execCommand && i . execCommand ( e , t , n ) ? ( r . fire ( "ExecCommand" , { command : e , ui : t , value : n } ) , c = ! 0 , ! 1 ) : void 0 } ) , c ) return c ; if ( r . theme && r . theme . execCommand && r . theme . execCommand ( e , t , n ) ) return r . fire ( "ExecCommand" , { command : e , ui : t , value : n } ) , ! 0 ; try { c = r . getDoc ( ) . execCommand ( e , t , n ) } catch ( u ) { } return c ? ( r . fire ( "ExecCommand" , { command : e , ui : t , value : n } ) , ! 0 ) : ! 1 } function y ( e ) { var t ; if ( ! r . _isHidden ( ) ) { if ( e = e . toLowerCase ( ) , t = L . state [ e ] ) return t ( e ) ; try { return r . getDoc ( ) . queryCommandState ( e ) } catch ( n ) { } return ! 1 } } function b ( e ) { var t ; if ( ! r . _isHidden ( ) ) { if ( e = e . toLowerCase ( ) , t = L . value [ e ] ) return t ( e ) ; try { return r . getDoc ( ) . queryCommandValue ( e ) } catch ( n ) { } } } function x ( e , t ) { t = t || "exec" , s ( e , function ( e , n ) { s ( n . toLowerCase ( ) . split ( "," ) , function ( n ) { L [ t ] [ n ] = e } ) } ) } function C ( e , t , n ) { e = e . toLowerCase ( ) , L . exec [ e ] = function ( e , i , o , a ) { return t . call ( n || r , i , o , a ) } } function w ( e ) { if ( e = e . toLowerCase ( ) , L . exec [ e ] ) return ! 0 ; try { return r . getDoc ( ) . queryCommandSupported ( e ) } catch ( t ) { } return ! 1 } function _ ( e , t , n ) { e = e . toLowerCase ( ) , L . state [ e ] = function ( ) { return t . call ( n || r ) } } function E ( e , t , n ) { e = e . toLowerCase ( ) , L . value [ e ] = function ( ) { return t . call ( n || r ) } } function N ( e ) { return e = e . toLowerCase ( ) , ! ! L . exec [ e ] } function S ( e , n , i ) { return n === t && ( n = g ) , i === t && ( i = null ) , r . getDoc ( ) . execCommand ( e , n , i ) } function k ( e ) { return M . match ( e ) } function T ( e , n ) { M . toggle ( e , n ? { value : n } : t ) , r . nodeChanged ( ) } function R ( e ) { P = D . getBookmark ( e ) } function A ( ) { D . moveToBookmark ( P ) } var B , D , M , L = { state : { } , exec : { } , value : { } } , H = r . settings , P ; r . on ( "PreInit" , function ( ) { B = r . dom , D = r . selection , H = r . settings , M = r . formatter } ) , l ( this , { execCommand : v , queryCommandState : y , queryCommandValue : b , queryCommandSupported : w , addCommands : x , addCommand : C , addQueryStateHandler : _ , addQueryValueHandler : E , hasCustomCommand : N } ) , x ( { "mceResetDesignMode,mceBeginUndoLevel" : function ( ) { } , "mceEndUndoLevel,mceAddUndoLevel" : function ( ) { r . undoManager . add ( ) } , "Cut,Copy,Paste" : function ( e ) { var t = r . getDoc ( ) , i ; try { S ( e ) } catch ( o ) { i = m } if ( i || ! t . queryCommandSupported ( e ) ) { var a = r . translate ( "Your browser doesn't support direct access to the clipboard. Please use the Ctrl+X/C/V keyboard shortcuts instead." ) ; n . mac && ( a = a . replace ( /Ctrl\+/g , "\u2318+" ) ) , r . windowManager . alert ( a ) } } , unlink : function ( ) { if ( D . isCollapsed ( ) ) { var e = D . getNode ( ) ; return void ( "A" == e . tagName && r . dom . remove ( e , ! 0 ) ) } M . remove ( "link" ) } , "JustifyLeft,JustifyCenter,JustifyRight,JustifyFull,JustifyNone" : function ( e ) { var t = e . substring ( 7 ) ; "full" == t && ( t = " justi
e . _hasBody && i . innerH !== l . innerH && ( u = c ( i . innerH ) , r = r || e . getEl ( "body" ) , r && ( n = n || r . style , n . height = ( u >= 0 ? u : 0 ) + "px" ) , l . innerH = i . innerH ) , e . _lastRepaintRect = l , e . fire ( "repaint" , { } , ! 1 ) } , on : function ( e , t ) { function n ( e ) { var t , n ; return "string" != typeof e ? e : function ( i ) { return t || r . parentsAndSelf ( ) . each ( function ( r ) { var i = r . settings . callbacks ; return i && ( t = i [ e ] ) ? ( n = r , ! 1 ) : void 0 } ) , t ? t . call ( n , i ) : ( i . action = e , void this . fire ( "execute" , i ) ) } } var r = this ; return u ( r ) . on ( e , n ( t ) ) , r } , off : function ( e , t ) { return u ( this ) . off ( e , t ) , this } , fire : function ( e , t , n ) { var r = this ; if ( t = t || { } , t . control || ( t . control = r ) , t = u ( r ) . fire ( e , t ) , n !== ! 1 && r . parent ) for ( var i = r . parent ( ) ; i && ! t . isPropagationStopped ( ) ; ) i . fire ( e , t , ! 1 ) , i = i . parent ( ) ; return t } , hasEventListeners : function ( e ) { return u ( this ) . has ( e ) } , parents : function ( e ) { var t = this , n , r = new i ; for ( n = t . parent ( ) ; n ; n = n . parent ( ) ) r . add ( n ) ; return e && ( r = r . filter ( e ) ) , r } , parentsAndSelf : function ( e ) { return new i ( this ) . add ( this . parents ( e ) ) } , next : function ( ) { var e = this . parent ( ) . items ( ) ; return e [ e . indexOf ( this ) + 1 ] } , prev : function ( ) { var e = this . parent ( ) . items ( ) ; return e [ e . indexOf ( this ) - 1 ] } , innerHtml : function ( e ) { return this . $el . html ( e ) , this } , getEl : function ( e ) { var t = e ? this . _id + "-" + e : this . _id ; return this . _elmCache [ t ] || ( this . _elmCache [ t ] = a ( "#" + t ) [ 0 ] ) , this . _elmCache [ t ] } , show : function ( ) { return this . visible ( ! 0 ) } , hide : function ( ) { return this . visible ( ! 1 ) } , focus : function ( ) { try { this . getEl ( ) . focus ( ) } catch ( e ) { } return this } , blur : function ( ) { return this . getEl ( ) . blur ( ) , this } , aria : function ( e , t ) { var n = this , r = n . getEl ( n . ariaTarget ) ; return "undefined" == typeof t ? n . _aria [ e ] : ( n . _aria [ e ] = t , n . state . get ( "rendered" ) && r . setAttribute ( "role" == e ? e : "aria-" + e , t ) , n ) } , encode : function ( e , t ) { return t !== ! 1 && ( e = this . translate ( e ) ) , ( e || "" ) . replace ( /[&<>"]/g , function ( e ) { return "&#" + e . charCodeAt ( 0 ) + ";" } ) } , translate : function ( e ) { return m . translate ? m . translate ( e ) : e } , before : function ( e ) { var t = this , n = t . parent ( ) ; return n && n . insert ( e , n . items ( ) . indexOf ( t ) , ! 0 ) , t } , after : function ( e ) { var t = this , n = t . parent ( ) ; return n && n . insert ( e , n . items ( ) . indexOf ( t ) ) , t } , remove : function ( ) { var e = this , t = e . getEl ( ) , n = e . parent ( ) , r , i ; if ( e . items ) { var o = e . items ( ) . toArray ( ) ; for ( i = o . length ; i -- ; ) o [ i ] . remove ( ) } n && n . items && ( r = [ ] , n . items ( ) . each ( function ( t ) { t !== e && r . push ( t ) } ) , n . items ( ) . set ( r ) , n . _lastRect = null ) , e . _eventsRoot && e . _eventsRoot == e && a ( t ) . off ( ) ; var s = e . getRoot ( ) . controlIdLookup ; return s && delete s [ e . _id ] , t && t . parentNode && t . parentNode . removeChild ( t ) , e . state . set ( "rendered" , ! 1 ) , e . state . destroy ( ) , e . fire ( "remove" ) , e } , renderBefore : function ( e ) { return a ( e ) . before ( this . renderHtml ( ) ) , this . postRender ( ) , this } , renderTo : function ( e ) { return a ( e || this . getContainerElm ( ) ) . append ( this . renderHtml ( ) ) , this . postRender ( ) , this } , preRender : function ( ) { } , render : function ( ) { } , renderHtml : function ( ) { return '<div id="' + this . _id + '" class="' + this . classes + '"></div>' } , postRender : function ( ) { var e = this , t = e . settings , n , r , i , o , s ; e . $el = a ( e . getEl ( ) ) , e . state . set ( "rendered" , ! 0 ) ; for ( o in t ) 0 === o . indexOf ( "on" ) && e . on ( o . substr ( 2 ) , t [ o ] ) ; if ( e . _eventsRoot ) { for ( i = e . parent ( ) ; ! s && i ; i = i . parent ( ) ) s = i . _eventsRoot ; if ( s ) for ( o in s . _nativeEvents ) e . _nativeEvents [ o ] = ! 0 } d ( e ) , t . style && ( n = e . getEl ( ) , n && ( n . setAttribute ( "style" , t . style ) , n . style . cssText = t . style ) ) , e . settings . border && ( r = e . borderBox , e . $el . css ( { "border-top-width" : r . top , "border-right-width" : r . right , "border-bottom-width" : r . bottom , "border-left-width" : r . left } ) ) ; var l = e . getRoot ( ) ; l . controlIdLookup || ( l . controlIdLookup = { } ) , l . controlIdLookup [ e . _id ] = e ; for ( var u in e . _aria ) e . aria ( u , e . _aria [ u ] ) ; e . state . get ( "visible" ) === ! 1 && ( e . getEl ( ) . style . display = "none" ) , e . bindStates ( ) , e . state . on ( "change:visible" , function ( t ) { var n = t . value , r ; e . state . get ( "rendered" ) && ( e . getEl ( ) . style . display = n === ! 1 ? "none" : "" , e . getEl ( ) . getBoundingClientRect ( ) ) , r = e . parent ( ) , r && ( r . _lastRect = null ) , e . fire ( n ? "show" : "hide" ) , c . add ( e ) } ) , e . fire ( "postrender" , { } , ! 1 ) } , bindStates : function ( ) { } , scrollIntoView : function ( e ) { function t ( e , t ) { var n , r , i = e ; for ( n = r = 0 ; i && i != t && i . nodeType ; ) n += i . offsetLeft || 0 , r += i . offsetTop || 0 , i = i . offsetParent ; return { x : n , y : r } } var n = this . getEl ( ) , r = n . parentNode , i , o , a , s , l , c , u = t ( n , r ) ; return i = u . x , o = u . y , a = n . offsetWidth , s = n . offsetHeight , l = r . clientWidth , c = r . clientHeight , "end" == e ? ( i -= l - a , o -= c - s )
r . each ( function ( e , t ) { t = t . cloneNode ( ! 1 ) , i . hasChildNodes ( ) ? ( t . appendChild ( i . firstChild ) , i . appendChild ( t ) ) : ( a = t , i . appendChild ( t ) ) , i . appendChild ( t ) } ) , a . appendChild ( s . getDoc ( ) . createTextNode ( l ) ) , o = v . getParent ( n . startContainer , v . isBlock ) , v . isEmpty ( o ) ? K ( o ) . empty ( ) . append ( i ) : n . insertNode ( i ) , n . setStart ( a . firstChild , 1 ) , n . setEnd ( a . firstChild , 1 ) , s . selection . setRng ( n ) ) : s . selection . setContent ( l ) } } ) , s . addCommand ( "Delete" , function ( ) { m ( ) } ) , s . addCommand ( "ForwardDelete" , function ( ) { m ( ! 0 ) } ) , x || ( s . on ( "dragstart" , function ( e ) { C = y . getRng ( ) , d ( e ) } ) , s . on ( "drop" , function ( e ) { if ( ! u ( e ) ) { var n = f ( e ) ; n && ( e . preventDefault ( ) , window . setTimeout ( function ( ) { var r = t . getCaretRangeFromPoint ( e . x , e . y , g ) ; C && ( y . setRng ( C ) , C = null ) , m ( ) , y . setRng ( r ) , h ( n . html ) } , 0 ) ) } } ) , s . on ( "cut" , function ( e ) { u ( e ) || ! e . clipboardData || s . selection . isCollapsed ( ) || ( e . preventDefault ( ) , e . clipboardData . clearData ( ) , e . clipboardData . setData ( "text/html" , s . selection . getContent ( ) ) , e . clipboardData . setData ( "text/plain" , s . selection . getContent ( { format : "text" } ) ) , window . setTimeout ( function ( ) { m ( ! 0 ) } , 0 ) ) } ) ) } function m ( ) { function e ( e ) { var t = X . create ( "body" ) , n = e . cloneContents ( ) ; return t . appendChild ( n ) , J . serializer . serialize ( t , { format : "html" } ) } function n ( n ) { if ( ! n . setStart ) { if ( n . item ) return ! 1 ; var r = n . duplicate ( ) ; return r . moveToElementText ( s . getBody ( ) ) , t . compareRanges ( n , r ) } var i = e ( n ) , o = X . createRng ( ) ; o . selectNode ( s . getBody ( ) ) ; var a = e ( o ) ; return i === a } s . on ( "keydown" , function ( e ) { var t = e . keyCode , r , i ; if ( ! u ( e ) && ( t == G || t == Y ) ) { if ( r = s . selection . isCollapsed ( ) , i = s . getBody ( ) , r && ! X . isEmpty ( i ) ) return ; if ( ! r && ! n ( s . selection . getRng ( ) ) ) return ; e . preventDefault ( ) , s . setContent ( "" ) , i . firstChild && X . isBlock ( i . firstChild ) ? s . selection . setCursorLocation ( i . firstChild , 0 ) : s . selection . setCursorLocation ( i , 0 ) , s . nodeChanged ( ) } } ) } function g ( ) { s . shortcuts . add ( "meta+a" , null , "SelectAll" ) } function v ( ) { s . settings . content _editable || ( X . bind ( s . getDoc ( ) , "focusin" , function ( ) { J . setRng ( J . getRng ( ) ) } ) , X . bind ( s . getDoc ( ) , "mousedown mouseup" , function ( e ) { e . target == s . getDoc ( ) . documentElement && ( s . getBody ( ) . focus ( ) , "mousedown" == e . type ? J . placeCaretAt ( e . clientX , e . clientY ) : J . setRng ( J . getRng ( ) ) ) } ) ) } function y ( ) { s . on ( "keydown" , function ( e ) { if ( ! u ( e ) && e . keyCode === Y ) { if ( ! s . getBody ( ) . getElementsByTagName ( "hr" ) . length ) return ; if ( J . isCollapsed ( ) && 0 === J . getRng ( ! 0 ) . startOffset ) { var t = J . getNode ( ) , n = t . previousSibling ; if ( "HR" == t . nodeName ) return X . remove ( t ) , void e . preventDefault ( ) ; n && n . nodeName && "hr" === n . nodeName . toLowerCase ( ) && ( X . remove ( n ) , e . preventDefault ( ) ) } } } ) } function b ( ) { window . Range . prototype . getClientRects || s . on ( "mousedown" , function ( e ) { if ( ! u ( e ) && "HTML" === e . target . nodeName ) { var t = s . getBody ( ) ; t . blur ( ) , setTimeout ( function ( ) { t . focus ( ) } , 0 ) } } ) } function x ( ) { s . on ( "click" , function ( e ) { var t = e . target ; /^(IMG|HR)$/ . test ( t . nodeName ) && ( e . preventDefault ( ) , J . getSel ( ) . setBaseAndExtent ( t , 0 , t , 1 ) , s . nodeChanged ( ) ) , "A" == t . nodeName && X . hasClass ( t , "mce-item-anchor" ) && ( e . preventDefault ( ) , J . select ( t ) ) } ) } function C ( ) { function e ( ) { var e = X . getAttribs ( J . getStart ( ) . cloneNode ( ! 1 ) ) ; return function ( ) { var t = J . getStart ( ) ; t !== s . getBody ( ) && ( X . setAttrib ( t , "style" , null ) , j ( e , function ( e ) { t . setAttributeNode ( e . cloneNode ( ! 0 ) ) } ) ) } } function t ( ) { return ! J . isCollapsed ( ) && X . getParent ( J . getStart ( ) , X . isBlock ) != X . getParent ( J . getEnd ( ) , X . isBlock ) } s . on ( "keypress" , function ( n ) { var r ; return u ( n ) || 8 != n . keyCode && 46 != n . keyCode || ! t ( ) ? void 0 : ( r = e ( ) , s . getDoc ( ) . execCommand ( "delete" , ! 1 , null ) , r ( ) , n . preventDefault ( ) , ! 1 ) } ) , X . bind ( s . getDoc ( ) , "cut" , function ( n ) { var r ; ! u ( n ) && t ( ) && ( r = e ( ) , setTimeout ( function ( ) { r ( ) } , 0 ) ) } ) } function w ( ) { document . body . setAttribute ( "role" , "application" ) } function _ ( ) { s . on ( "keydown" , function ( e ) { if ( ! u ( e ) && e . keyCode === Y && J . isCollapsed ( ) && 0 === J . getRng ( ! 0 ) . startOffset ) { var t = J . getNode ( ) . previousSibling ; if ( t && t . nodeName && "table" === t . nodeName . toLowerCase ( ) ) return e . preventDefault ( ) , ! 1 } } ) } function E ( ) { c ( ) > 7 || ( l ( "RespectVisibilityInDesign" , ! 0 ) , s . contentStyles . push ( ".mceHideBrInPre pre br {display: none}" ) , X . addClass ( s . getBody ( ) , "mceHideBrInPre" ) , Z . addNodeFilter ( "pre" , function ( e ) { for ( var t = e . length , n , i , o , a ; t -- ; ) for ( n = e [ t ] . getAll ( "br" ) , i = n . length ; i -- ; ) o = n [ i ] , a = o . prev , a && 3 === a . type && "\n" != a . value . charAt ( a . value - 1 ) ? a . value += "\n" : o . parent . insert ( ne
e . length > 1 ? i [ L ( e [ 0 ] ) ] = L ( e [ 1 ] ) : i [ L ( e [ 0 ] ) ] = L ( e ) } ) : i = r , i ) : r } , nodeChanged : function ( e ) { this . _nodeChangeDispatcher . nodeChanged ( e ) } , addButton : function ( e , t ) { var n = this ; t . cmd && ( t . onclick = function ( ) { n . execCommand ( t . cmd ) } ) , t . text || t . icon || ( t . icon = e ) , n . buttons = n . buttons || { } , t . tooltip = t . tooltip || t . title , n . buttons [ e ] = t } , addMenuItem : function ( e , t ) { var n = this ; t . cmd && ( t . onclick = function ( ) { n . execCommand ( t . cmd ) } ) , n . menuItems = n . menuItems || { } , n . menuItems [ e ] = t } , addContextToolbar : function ( e , t ) { var n = this , r ; n . contextToolbars = n . contextToolbars || [ ] , "string" == typeof e && ( r = e , e = function ( e ) { return n . dom . is ( e , r ) } ) , n . contextToolbars . push ( { predicate : e , items : t } ) } , addCommand : function ( e , t , n ) { this . editorCommands . addCommand ( e , t , n ) } , addQueryStateHandler : function ( e , t , n ) { this . editorCommands . addQueryStateHandler ( e , t , n ) } , addQueryValueHandler : function ( e , t , n ) { this . editorCommands . addQueryValueHandler ( e , t , n ) } , addShortcut : function ( e , t , n , r ) { this . shortcuts . add ( e , t , n , r ) } , execCommand : function ( e , t , n , r ) { return this . editorCommands . execCommand ( e , t , n , r ) } , queryCommandState : function ( e ) { return this . editorCommands . queryCommandState ( e ) } , queryCommandValue : function ( e ) { return this . editorCommands . queryCommandValue ( e ) } , queryCommandSupported : function ( e ) { return this . editorCommands . queryCommandSupported ( e ) } , show : function ( ) { var e = this ; e . hidden && ( e . hidden = ! 1 , e . inline ? e . getBody ( ) . contentEditable = ! 0 : ( k . show ( e . getContainer ( ) ) , k . hide ( e . id ) ) , e . load ( ) , e . fire ( "show" ) ) } , hide : function ( ) { var e = this , t = e . getDoc ( ) ; e . hidden || ( I && t && ! e . inline && t . execCommand ( "SelectAll" ) , e . save ( ) , e . inline ? ( e . getBody ( ) . contentEditable = ! 1 , e == e . editorManager . focusedEditor && ( e . editorManager . focusedEditor = null ) ) : ( k . hide ( e . getContainer ( ) ) , k . setStyle ( e . id , "display" , e . orgDisplay ) ) , e . hidden = ! 0 , e . fire ( "hide" ) ) } , isHidden : function ( ) { return ! ! this . hidden } , setProgressState : function ( e , t ) { this . fire ( "ProgressState" , { state : e , time : t } ) } , load : function ( e ) { var n = this , r = n . getElement ( ) , i ; return r ? ( e = e || { } , e . load = ! 0 , i = n . setContent ( r . value !== t ? r . value : r . innerHTML , e ) , e . element = r , e . no _events || n . fire ( "LoadContent" , e ) , e . element = r = null , i ) : void 0 } , save : function ( e ) { var t = this , n = t . getElement ( ) , r , i ; if ( n && t . initialized ) return e = e || { } , e . save = ! 0 , e . element = n , r = e . content = t . getContent ( e ) , e . no _events || t . fire ( "SaveContent" , e ) , "raw" == e . format && t . fire ( "RawSaveContent" , e ) , r = e . content , /TEXTAREA|INPUT/i . test ( n . nodeName ) ? n . value = r : ( t . inline || ( n . innerHTML = r ) , ( i = k . getParent ( t . id , "form" ) ) && B ( i . elements , function ( e ) { return e . name == t . id ? ( e . value = r , ! 1 ) : void 0 } ) ) , e . element = n = null , e . set _dirty !== ! 1 && ( t . isNotDirty = ! 0 ) , r } , setContent : function ( e , t ) { var n = this , r = n . getBody ( ) , i ; return t = t || { } , t . format = t . format || "html" , t . set = ! 0 , t . content = e , t . no _events || n . fire ( "BeforeSetContent" , t ) , e = t . content , 0 === e . length || /^\s+$/ . test ( e ) ? ( i = n . settings . forced _root _block , i && n . schema . isValidChild ( r . nodeName . toLowerCase ( ) , i . toLowerCase ( ) ) ? ( e = I && 11 > I ? "" : '<br data-mce-bogus="1">' , e = n . dom . createHTML ( i , n . settings . forced _root _block _attrs , e ) ) : I || ( e = '<br data-mce-bogus="1">' ) , n . dom . setHTML ( r , e ) , n . fire ( "SetContent" , t ) ) : ( "raw" !== t . format && ( e = new s ( { } , n . schema ) . serialize ( n . parser . parse ( e , { isRootContent : ! 0 } ) ) ) , t . content = L ( e ) , n . dom . setHTML ( r , t . content ) , t . no _events || n . fire ( "SetContent" , t ) ) , t . content } , getContent : function ( e ) { var t = this , n , r = t . getBody ( ) ; return e = e || { } , e . format = e . format || "html" , e . get = ! 0 , e . getInner = ! 0 , e . no _events || t . fire ( "BeforeGetContent" , e ) , n = "raw" == e . format ? r . innerHTML : "text" == e . format ? r . innerText || r . textContent : t . serializer . serialize ( r , e ) , "text" != e . format ? e . content = L ( n ) : e . content = n , e . no _events || t . fire ( "GetContent" , e ) , e . content } , insertContent : function ( e , t ) { t && ( e = A ( { content : e } , t ) ) , this . execCommand ( "mceInsertContent" , ! 1 , e ) } , isDirty : function ( ) { return ! this . isNotDirty } , getContainer : function ( ) { var e = this ; return e . container || ( e . container = k . get ( e . editorContainer || e . id + "_parent" ) ) , e . container } , getContentAreaContainer : function ( ) { return this . contentAreaContainer } , getElement : function ( ) { return this . targetElm || ( this . targetElm = k . get ( this . id ) ) , this . targetElm } , getWin : function ( ) { var e = this , t ; return e . contentWindow || ( t = e . iframeElement , t && ( e . contentWindow = t . contentWindow ) ) , e . contentWindow } , getDoc : function ( ) { var e = this , t ; return e .
e && c ( e ) , u . toRgb = s , u . toHsv = l , u . toHex = a , u . parse = c } var t = Math . min , n = Math . max , r = Math . round ; return e } ) , r ( Ke , [ Ie , oe , J , je ] , function ( e , t , n , r ) { return e . extend ( { Defaults : { classes : "widget colorpicker" } , init : function ( e ) { this . _super ( e ) } , postRender : function ( ) { function e ( e , t ) { var r = n . getPos ( e ) , i , o ; return i = t . pageX - r . x , o = t . pageY - r . y , i = Math . max ( 0 , Math . min ( i / e . clientWidth , 1 ) ) , o = Math . max ( 0 , Math . min ( o / e . clientHeight , 1 ) ) , { x : i , y : o } } function i ( e , t ) { var i = ( 360 - e . h ) / 360 ; n . css ( d , { top : 100 * i + "%" } ) , t || n . css ( h , { left : e . s + "%" , top : 100 - e . v + "%" } ) , f . style . background = new r ( { s : 100 , v : 100 , h : e . h } ) . toHex ( ) , s . color ( ) . parse ( { s : e . s , v : e . v , h : e . h } ) } function o ( t ) { var n ; n = e ( f , t ) , c . s = 100 * n . x , c . v = 100 * ( 1 - n . y ) , i ( c ) , s . fire ( "change" ) } function a ( t ) { var n ; n = e ( u , t ) , c = l . toHsv ( ) , c . h = 360 * ( 1 - n . y ) , i ( c , ! 0 ) , s . fire ( "change" ) } var s = this , l = s . color ( ) , c , u , d , f , h ; u = s . getEl ( "h" ) , d = s . getEl ( "hp" ) , f = s . getEl ( "sv" ) , h = s . getEl ( "svp" ) , s . _repaint = function ( ) { c = l . toHsv ( ) , i ( c ) } , s . _super ( ) , s . _svdraghelper = new t ( s . _id + "-sv" , { start : o , drag : o } ) , s . _hdraghelper = new t ( s . _id + "-h" , { start : a , drag : a } ) , s . _repaint ( ) } , rgb : function ( ) { return this . color ( ) . toRgb ( ) } , value : function ( e ) { var t = this ; return arguments . length ? ( t . color ( ) . parse ( e ) , void ( t . _rendered && t . _repaint ( ) ) ) : t . color ( ) . toHex ( ) } , color : function ( ) { return this . _color || ( this . _color = new r ) , this . _color } , renderHtml : function ( ) { function e ( ) { var e , t , n = "" , i , a ; for ( i = "filter:progid:DXImageTransform.Microsoft.gradient(GradientType=0,startColorstr=" , a = o . split ( "," ) , e = 0 , t = a . length - 1 ; t > e ; e ++ ) n += '<div class="' + r + 'colorpicker-h-chunk" style="height:' + 100 / t + "%;" + i + a [ e ] + ",endColorstr=" + a [ e + 1 ] + ");-ms-" + i + a [ e ] + ",endColorstr=" + a [ e + 1 ] + ')"></div>' ; return n } var t = this , n = t . _id , r = t . classPrefix , i , o = "#ff0000,#ff0080,#ff00ff,#8000ff,#0000ff,#0080ff,#00ffff,#00ff80,#00ff00,#80ff00,#ffff00,#ff8000,#ff0000" , a = "background: -ms-linear-gradient(top," + o + ");background: linear-gradient(to bottom," + o + ");" ; return i = '<div id="' + n + '-h" class="' + r + 'colorpicker-h" style="' + a + '">' + e ( ) + '<div id="' + n + '-hp" class="' + r + 'colorpicker-h-marker"></div></div>' , '<div id="' + n + '" class="' + t . classes + '"><div id="' + n + '-sv" class="' + r + 'colorpicker-sv"><div class="' + r + 'colorpicker-overlay1"><div class="' + r + 'colorpicker-overlay2"><div id="' + n + '-svp" class="' + r + 'colorpicker-selector1"><div class="' + r + 'colorpicker-selector2"></div></div></div></div></div>' + i + "</div>" } } ) } ) , r ( Ye , [ Ie ] , function ( e ) { return e . extend ( { init : function ( e ) { var t = this ; e . delimiter || ( e . delimiter = "\xbb" ) , t . _super ( e ) , t . classes . add ( "path" ) , t . canFocus = ! 0 , t . on ( "click" , function ( e ) { var n , r = e . target ; ( n = r . getAttribute ( "data-index" ) ) && t . fire ( "select" , { value : t . row ( ) [ n ] , index : n } ) } ) , t . row ( t . settings . row ) } , focus : function ( ) { var e = this ; return e . getEl ( ) . firstChild . focus ( ) , e } , row : function ( e ) { return arguments . length ? ( this . state . set ( "row" , e ) , this ) : this . state . get ( "row" ) } , renderHtml : function ( ) { var e = this ; return '<div id="' + e . _id + '" class="' + e . classes + '">' + e . _getDataPathHtml ( e . state . get ( "row" ) ) + "</div>" } , bindStates : function ( ) { var e = this ; return e . state . on ( "change:row" , function ( t ) { e . innerHtml ( e . _getDataPathHtml ( t . value ) ) } ) , e . _super ( ) } , _getDataPathHtml : function ( e ) { var t = this , n = e || [ ] , r , i , o = "" , a = t . classPrefix ; for ( r = 0 , i = n . length ; i > r ; r ++ ) o += ( r > 0 ? '<div class="' + a + 'divider" aria-hidden="true"> ' + t . settings . delimiter + " </div>" : "" ) + '<div role="button" class="' + a + "path-item" + ( r == i - 1 ? " " + a + "last" : "" ) + '" data-index="' + r + '" tabindex="-1" id="' + t . _id + "-" + r + '" aria-level="' + r + '">' + n [ r ] . name + "</div>" ; return o || ( o = '<div class="' + a + 'path-item">\xa0</div>' ) , o } } ) } ) , r ( Ge , [ Ye , ke ] , function ( e , t ) { return e . extend ( { postRender : function ( ) { function e ( e ) { if ( 1 === e . nodeType ) { if ( "BR" == e . nodeName || e . getAttribute ( "data-mce-bogus" ) ) return ! 0 ; if ( "bookmark" === e . getAttribute ( "data-mce-type" ) ) return ! 0 } return ! 1 } var n = this , r = t . activeEditor ; return r . settings . elementpath !== ! 1 && ( n . on ( "select" , function ( e ) { r . focus ( ) , r . selection . select ( this . row ( ) [ e . index ] . element ) , r . nodeChanged ( ) } ) , r . on ( "nodeChange" , function ( t ) { for ( var i = [ ] , o = t . parents , a = o . length ; a -- ; ) if ( 1 == o [ a ] . nodeType && ! e ( o [ a ] ) ) { var s = r . fire ( "ResolveName" , { name : o [ a ] . nodeName . toLowerCase ( ) , target : o [ a ] } ) ; if ( s . isDefaultPrevented ( ) || i . push ( { name : s . name , element : o [ a ] } ) , s . isPropagationStopped (
var t = this ; n ( t . getEl ( ) . lastChild ) . toggleClass ( t . classPrefix + "active" , e ) } , renderHtml : function ( ) { var e = this , t = e . _id , n = e . classPrefix , r , i = e . state . get ( "icon" ) , o = e . state . get ( "text" ) ; return r = e . settings . image , r ? ( i = "none" , "string" != typeof r && ( r = window . getSelection ? r [ 0 ] : r [ 1 ] ) , r = " style=\"background-image: url('" + r + "')\"" ) : r = "" , i = e . settings . icon ? n + "ico " + n + "i-" + i : "" , '<div id="' + t + '" class="' + e . classes + '" role="button" tabindex="-1"><button type="button" hidefocus="1" tabindex="-1">' + ( i ? '<i class="' + i + '"' + r + "></i>" : "" ) + ( o ? ( i ? " " : "" ) + o : "" ) + '</button><button type="button" class="' + n + 'open" hidefocus="1" tabindex="-1">' + ( e . _menuBtnText ? ( i ? "\xa0" : "" ) + e . _menuBtnText : "" ) + ' <i class="' + n + 'caret"></i></button></div>' } , postRender : function ( ) { var e = this , t = e . settings . onclick ; return e . on ( "click" , function ( e ) { var n = e . target ; if ( e . control == this ) for ( ; n ; ) { if ( e . aria && "down" != e . aria . key || "BUTTON" == n . nodeName && - 1 == n . className . indexOf ( "open" ) ) return e . stopImmediatePropagation ( ) , void ( t && t . call ( this , e ) ) ; n = n . parentNode } } ) , delete e . settings . onclick , e . _super ( ) } } ) } ) , r ( bt , [ nt ] , function ( e ) { return e . extend ( { Defaults : { containerClass : "stack-layout" , controlClass : "stack-layout-item" , endClass : "break" } , isNative : function ( ) { return ! 0 } } ) } ) , r ( xt , [ se , h , J ] , function ( e , t , n ) { return e . extend ( { Defaults : { layout : "absolute" , defaults : { type : "panel" } } , activateTab : function ( e ) { var n ; this . activeTabId && ( n = this . getEl ( this . activeTabId ) , t ( n ) . removeClass ( this . classPrefix + "active" ) , n . setAttribute ( "aria-selected" , "false" ) ) , this . activeTabId = "t" + e , n = this . getEl ( "t" + e ) , n . setAttribute ( "aria-selected" , "true" ) , t ( n ) . addClass ( this . classPrefix + "active" ) , this . items ( ) [ e ] . show ( ) . fire ( "showtab" ) , this . reflow ( ) , this . items ( ) . each ( function ( t , n ) { e != n && t . hide ( ) } ) } , renderHtml : function ( ) { var e = this , t = e . _layout , n = "" , r = e . classPrefix ; return e . preRender ( ) , t . preRender ( e ) , e . items ( ) . each ( function ( t , i ) { var o = e . _id + "-t" + i ; t . aria ( "role" , "tabpanel" ) , t . aria ( "labelledby" , o ) , n += '<div id="' + o + '" class="' + r + 'tab" unselectable="on" role="tab" aria-controls="' + t . _id + '" aria-selected="false" tabIndex="-1">' + e . encode ( t . settings . title ) + "</div>" } ) , '<div id="' + e . _id + '" class="' + e . classes + '" hidefocus="1" tabindex="-1"><div id="' + e . _id + '-head" class="' + r + 'tabs" role="tablist">' + n + '</div><div id="' + e . _id + '-body" class="' + e . bodyClasses + '">' + t . renderHtml ( e ) + "</div></div>" } , postRender : function ( ) { var e = this ; e . _super ( ) , e . settings . activeTab = e . settings . activeTab || 0 , e . activateTab ( e . settings . activeTab ) , this . on ( "click" , function ( t ) { var n = t . target . parentNode ; if ( t . target . parentNode . id == e . _id + "-head" ) for ( var r = n . childNodes . length ; r -- ; ) n . childNodes [ r ] == t . target && e . activateTab ( r ) } ) } , initLayoutRect : function ( ) { var e = this , t , r , i ; r = n . getSize ( e . getEl ( "head" ) ) . width , r = 0 > r ? 0 : r , i = 0 , e . items ( ) . each ( function ( e ) { r = Math . max ( r , e . layoutRect ( ) . minW ) , i = Math . max ( i , e . layoutRect ( ) . minH ) } ) , e . items ( ) . each ( function ( e ) { e . settings . x = 0 , e . settings . y = 0 , e . settings . w = r , e . settings . h = i , e . layoutRect ( { x : 0 , y : 0 , w : r , h : i } ) } ) ; var o = n . getSize ( e . getEl ( "head" ) ) . height ; return e . settings . minWidth = r , e . settings . minHeight = i + o , t = e . _super ( ) , t . deltaH += o , t . innerH = t . h - t . deltaH , t } } ) } ) , r ( Ct , [ Ie ] , function ( e ) { return e . extend ( { init : function ( e ) { var t = this ; t . _super ( e ) , t . classes . add ( "textbox" ) , e . multiline ? t . classes . add ( "multiline" ) : ( t . on ( "keydown" , function ( e ) { var n ; 13 == e . keyCode && ( e . preventDefault ( ) , t . parents ( ) . reverse ( ) . each ( function ( e ) { return e . toJSON ? ( n = e , ! 1 ) : void 0 } ) , t . fire ( "submit" , { data : n . toJSON ( ) } ) ) } ) , t . on ( "keyup" , function ( e ) { t . state . set ( "value" , e . target . value ) } ) ) } , repaint : function ( ) { var e = this , t , n , r , i = 0 , o = 0 , a ; t = e . getEl ( ) . style , n = e . _layoutRect , a = e . _lastRepaintRect || { } ; var s = document ; return ! e . settings . multiline && s . all && ( ! s . documentMode || s . documentMode <= 8 ) && ( t . lineHeight = n . h - o + "px" ) , r = e . borderBox , i = r . left + r . right + 8 , o = r . top + r . bottom + ( e . settings . multiline ? 8 : 0 ) , n . x !== a . x && ( t . left = n . x + "px" , a . x = n . x ) , n . y !== a . y && ( t . top = n . y + "px" , a . y = n . y ) , n . w !== a . w && ( t . width = n . w - i + "px" , a . w = n . w ) , n . h !== a . h && ( t . height = n . h - o + "px" , a . h = n . h ) , e . _lastRepaintRect = a , e . fire ( "repaint" , { } , ! 1 ) , e } , renderHtml : function ( ) { var e = this , t = e . _id , n = e . settings , r = e . encode ( e . state . get ( "value" ) , ! 1 ) , i = "" ; return "spellcheck" in n && ( i += ' spellcheck="' + n . spellcheck + '"' ) , n