2014-05-24 03:44:15 +02:00
// 4.0.26 (2014-05-06)
! 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 ) { for ( var r = 0 ; r < n . length ; r ++ ) { for ( var i = e , o = n [ r ] , a = o . split ( /[.\/]/ ) , l = 0 ; l < a . length - 1 ; ++ l ) i [ a [ l ] ] === t && ( i [ a [ l ] ] = { } ) , i = i [ a [ l ] ] ; i [ a [ a . length - 1 ] ] = s [ o ] } } var s = { } , l = "tinymce/dom/EventUtils" , c = "tinymce/dom/Sizzle" , u = "tinymce/dom/DomQuery" , d = "tinymce/html/Styles" , f = "tinymce/dom/TreeWalker" , p = "tinymce/util/Tools" , h = "tinymce/dom/Range" , m = "tinymce/html/Entities" , g = "tinymce/Env" , v = "tinymce/dom/StyleSheetLoader" , y = "tinymce/dom/DOMUtils" , b = "tinymce/dom/ScriptLoader" , C = "tinymce/AddOnManager" , x = "tinymce/html/Node" , w = "tinymce/html/Schema" , _ = "tinymce/html/SaxParser" , N = "tinymce/html/DomParser" , E = "tinymce/html/Writer" , S = "tinymce/html/Serializer" , k = "tinymce/dom/Serializer" , T = "tinymce/dom/TridentSelection" , R = "tinymce/util/VK" , A = "tinymce/dom/ControlSelection" , B = "tinymce/dom/RangeUtils" , D = "tinymce/dom/Selection" , L = "tinymce/fmt/Preview" , M = "tinymce/Formatter" , H = "tinymce/UndoManager" , P = "tinymce/EnterKey" , O = "tinymce/ForceBlocks" , I = "tinymce/EditorCommands" , F = "tinymce/util/URI" , z = "tinymce/util/Class" , W = "tinymce/util/EventDispatcher" , V = "tinymce/ui/Selector" , U = "tinymce/ui/Collection" , q = "tinymce/ui/DomUtils" , $ = "tinymce/ui/Control" , j = "tinymce/ui/Factory" , K = "tinymce/ui/KeyboardNavigation" , G = "tinymce/ui/Container" , Y = "tinymce/ui/DragHelper" , X = "tinymce/ui/Scrollable" , J = "tinymce/ui/Panel" , Q = "tinymce/ui/Movable" , Z = "tinymce/ui/Resizable" , et = "tinymce/ui/FloatPanel" , tt = "tinymce/ui/Window" , nt = "tinymce/ui/MessageBox" , rt = "tinymce/WindowManager" , it = "tinymce/util/Quirks" , ot = "tinymce/util/Observable" , at = "tinymce/EditorObservable" , st = "tinymce/Shortcuts" , lt = "tinymce/Editor" , ct = "tinymce/util/I18n" , ut = "tinymce/FocusManager" , dt = "tinymce/EditorManager" , ft = "tinymce/LegacyInput" , pt = "tinymce/util/XHR" , ht = "tinymce/util/JSON" , mt = "tinymce/util/JSONRequest" , gt = "tinymce/util/JSONP" , vt = "tinymce/util/LocalStorage" , yt = "tinymce/Compat" , bt = "tinymce/ui/Layout" , Ct = "tinymce/ui/AbsoluteLayout" , xt = "tinymce/ui/Tooltip" , wt = "tinymce/ui/Widget" , _t = "tinymce/ui/Button" , Nt = "tinymce/ui/ButtonGroup" , Et = "tinymce/ui/Checkbox" , St = "tinymce/ui/PanelButton" , kt = "tinymce/ui/ColorButton" , Tt = "tinymce/ui/ComboBox" , Rt = "tinymce/ui/Path" , At = "tinymce/ui/ElementPath" , Bt = "tinymce/ui/FormItem" , Dt = "tinymce/ui/Form" , Lt = "tinymce/ui/FieldSet" , Mt = "tinymce/ui/FilePicker" , Ht = "tinymce/ui/FitLayout" , Pt = "tinymce/ui/FlexLayout" , Ot = "tinymce/ui/FlowLayout" , It = "tinymce/ui/FormatControls" , Ft = "tinymce/ui/GridLayout" , zt = "tinymce/ui/Iframe" , Wt = "tinymce/ui/Label" , Vt = "tinymce/ui/Toolbar" , Ut = "tinymce/ui/MenuBar" , qt = "tinymce/ui/MenuButton" , $t = "tinymce/ui/ListBox" , jt = "tinymce/ui/MenuItem" , Kt = "tinymce/ui/Menu" , Gt = "tinymce/ui/Radio" , Yt = "tinymce/ui/ResizeHandle" , Xt = "tinymce/ui/Spacer" , Jt = "tinymce/ui/SplitButton" , Qt = "tinymce/ui/StackLayout" , Zt = "tinymce/ui/TabPanel" , en = "tinymce/ui/TextBox" , tn = "tinymce/ui/Throbber" ; r ( l , [ ] , function ( ) { function e ( e , t , n , r ) { e . addEventListener ? e . addEventListener ( t , n , r || ! 1 ) : e . attachEvent && e . attachEvent ( "on" + t , n ) } function t ( e , t , n , r ) { e . removeEventListener ? e . removeEventListener ( t , n , r || ! 1 ) : e . detachEvent && e . detachEvent ( "on" + t , n ) } function n ( e , t ) { function n ( ) { return ! 1 } function r ( ) { return ! 0 } var i , o = t || { } , l ; for ( i in e ) s [ i ] || ( o [ i ] = e [ i ] ) ; if ( o . target || ( o . target = o . srcElement || document ) , e && a . test ( e . type ) && e . pageX === l && e . clientX !== l ) { var c = o . target . ownerDocument || document , u = c . documentElement , d = c . body ; o . pageX = e . clientX + ( u && u . scrollLeft || d && d . scrollLeft || 0 ) - ( u && u . clientLeft || d && d . clientLeft || 0 ) , o . pageY = e . clientY + ( u && u . scrollTop || d && d . scrollTop || 0 ) - ( u && u . clientTop || d && d . clientTop || 0 ) } return o . preventDefault = f
} return "#" + i ( t ) + i ( n ) + i ( r ) } var r = /rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*\)/gi , i = /(?:url(?:(?:\(\s*\"([^\"]+)\"\s*\))|(?:\(\s*\'([^\']+)\'\s*\))|(?:\(\s*([^)\s]+)\s*\))))|(?:\'([^\']+)\')|(?:\"([^\"]+)\")/gi , o = /\s*([^:]+):\s*([^;]+);?/g , a = /\s+$/ , s , l , c = { } , u , d = "\ufeff" ; for ( e = e || { } , u = ( "\\\" \\' \\; \\: ; : " + d ) . split ( " " ) , l = 0 ; l < u . length ; l ++ ) c [ u [ l ] ] = d + l , c [ d + l ] = u [ l ] ; return { toHex : function ( e ) { return e . replace ( r , n ) } , parse : function ( t ) { function s ( e , t , n ) { var r , i , o , a ; if ( r = m [ e + "-top" + t ] , r && ( i = m [ e + "-right" + t ] , i && ( o = m [ e + "-bottom" + t ] , o && ( a = m [ e + "-left" + t ] ) ) ) ) { var s = [ r , i , o , a ] ; for ( l = s . length - 1 ; l -- && s [ l ] === s [ l + 1 ] ; ) ; l > - 1 && n || ( m [ e + t ] = - 1 == l ? s [ 0 ] : s . join ( " " ) , delete m [ e + "-top" + t ] , delete m [ e + "-right" + t ] , delete m [ e + "-bottom" + t ] , delete m [ e + "-left" + t ] ) } } function u ( e ) { var t = m [ e ] , n ; if ( t ) { for ( t = t . split ( " " ) , n = t . length ; n -- ; ) if ( t [ n ] !== t [ 0 ] ) return ! 1 ; return m [ e ] = t [ 0 ] , ! 0 } } function d ( e , t , n , r ) { u ( t ) && u ( n ) && u ( r ) && ( m [ e ] = m [ t ] + " " + m [ n ] + " " + m [ r ] , delete m [ t ] , delete m [ n ] , delete m [ r ] ) } function f ( e ) { return b = ! 0 , c [ e ] } function p ( e , t ) { return b && ( e = e . replace ( /\uFEFF[0-9]/g , function ( e ) { return c [ e ] } ) ) , t || ( e = e . replace ( /\\([\'\";:])/g , "$1" ) ) , e } function h ( t , n , r , i , o , a ) { if ( o = o || a ) return o = p ( o ) , "'" + o . replace ( /\'/g , "\\'" ) + "'" ; if ( n = p ( n || r || i ) , ! e . allow _script _urls ) { var s = n . replace ( /[\s\r\n]+/ , "" ) ; if ( /(java|vb)script:/i . test ( s ) ) return "" ; if ( ! e . allow _svg _data _urls && /^data:image\/svg/i . test ( s ) ) return "" } return C && ( n = C . call ( x , n , "style" ) ) , "url('" + n . replace ( /\'/g , "\\'" ) + "')" } var m = { } , g , v , y , b , C = e . url _converter , x = e . url _converter _scope || this ; if ( t ) { for ( t = t . replace ( /[\u0000-\u001F]/g , "" ) , t = t . replace ( /\\[\"\';:\uFEFF]/g , f ) . replace ( /\"[^\"]+\"|\'[^\']+\'/g , function ( e ) { return e . replace ( /[;:]/g , f ) } ) ; g = o . exec ( t ) ; ) { if ( v = g [ 1 ] . replace ( a , "" ) . toLowerCase ( ) , y = g [ 2 ] . replace ( a , "" ) , y = y . replace ( /\\[0-9a-f]+/g , function ( e ) { return String . fromCharCode ( parseInt ( e . substr ( 1 ) , 16 ) ) } ) , v && y . length > 0 ) { if ( ! e . allow _script _urls && ( "behavior" == v || /expression\s*\(|\/\*|\*\// . test ( y ) ) ) continue ; "font-weight" === v && "700" === y ? y = "bold" : ( "color" === v || "background-color" === v ) && ( y = y . toLowerCase ( ) ) , y = y . replace ( r , n ) , y = y . replace ( i , h ) , m [ v ] = b ? p ( y , ! 0 ) : y } o . lastIndex = g . index + g [ 0 ] . length } s ( "border" , "" , ! 0 ) , s ( "border" , "-width" ) , s ( "border" , "-color" ) , s ( "border" , "-style" ) , s ( "padding" , "" ) , s ( "margin" , "" ) , d ( "border" , "border-width" , "border-style" , "border-color" ) , "medium none" === m . border && delete m . border , "none" === m [ "border-image" ] && delete m [ "border-image" ] } return m } , serialize : function ( e , n ) { function r ( n ) { var r , o , a , l ; if ( r = t . styles [ n ] ) for ( o = 0 , a = r . length ; a > o ; o ++ ) n = r [ o ] , l = e [ n ] , l !== s && l . length > 0 && ( i += ( i . length > 0 ? " " : "" ) + n + ": " + l + ";" ) } var i = "" , o , a ; if ( n && t && t . styles ) r ( "*" ) , r ( n ) ; else for ( o in e ) a = e [ o ] , a !== s && a . length > 0 && ( i += ( i . length > 0 ? " " : "" ) + o + ": " + a + ";" ) ; return i } } } } ) , r ( f , [ ] , function ( ) { return function ( e , t ) { function n ( e , n , r , i ) { var o , a ; if ( e ) { if ( ! i && e [ n ] ) return e [ n ] ; if ( e != t ) { if ( o = e [ r ] ) return o ; for ( a = e . parentNode ; a && a != t ; a = a . parentNode ) if ( o = a [ r ] ) return o } } } var r = e ; this . current = function ( ) { return r } , this . next = function ( e ) { return r = n ( r , "firstChild" , "nextSibling" , e ) } , this . prev = function ( e ) { return r = n ( r , "lastChild" , "previousSibling" , e ) } } } ) , r ( p , [ ] , function ( ) { function e ( e ) { return null === e || e === t ? "" : ( "" + e ) . replace ( m , "" ) } function n ( e , n ) { return n ? "array" == n && g ( e ) ? ! 0 : typeof e == n : e !== t } function r ( e ) { var t = [ ] , n , r ; for ( n = 0 , r = e . length ; r > n ; n ++ ) t [ n ] = e [ n ] ; return t } function i ( e , t , n ) { var r ; for ( e = e || [ ] , t = t || "," , "string" == typeof e && ( e = e . split ( t ) ) , n = n || { } , r = e . length ; r -- ; ) n [ e [ r ] ] = { } ; return n } function o ( e , n , r ) { var i , o ; if ( ! e ) return 0 ; if ( r = r || e , e . length !== t ) { for ( i = 0 , o = e . length ; o > i ; i ++ ) if ( n . call ( r , e [ i ] , i , e ) === ! 1 ) return 0 } else for ( i in e ) if ( e . hasOwnProperty ( i ) && n . call ( r , e [ i ] , i , e ) === ! 1 ) return 0 ; return 1 } function a ( e , t ) { var n = [ ] ; return o ( e , function ( e ) { n . push ( t ( e ) ) } ) , n } function s ( e , t ) { var n = [ ] ; return o ( e , function ( e ) { ( ! t || t ( e ) ) && n . push ( e ) } ) , n } function l ( e , t , n ) { var r = this , i , o , a , s , l , c = 0 ; if ( e = /^((static) )?([\w.]+)(:([\w.]+))?/ . exec ( e ) , a = e [ 3 ] . match ( /(^|\.)(\w+)$/i ) [ 2 ] , o = r . createNS ( e [ 3 ] . replace ( /\.\w+$/ , "" ) , n ) , ! o [ a ] ) { if ( "static" == e [ 2 ] ) return o [ a ] = t , void ( this . onCreate && this . onCreate ( e [ 2 ] , e [ 3 ] , o [ a ] ) ) ; t [ a ] || ( t [ a ] = function ( ) { } , c = 1 ) , o [ a ] = t [ a ] , r . extend ( o [ a ] . prototype , t ) , e [ 5 ] && ( i = r . resolve ( e [ 5 ] ) . proto
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 } } , u . DOM = new u ( document ) , u } ) , r ( b , [ y , p ] , function ( e , t ) { function n ( ) { function e ( e , t ) { function n ( ) { o . remove ( s ) , a && ( a . onreadystatechange = a . onload = a = null ) , t ( ) } function i ( ) { "undefined" != typeof console && console . log && console . log ( "Failed to load: " + e ) } var o = r , a , s ; s = o . uniqueId ( ) , a = document . createElement ( "script" ) , a . id = s , a . type = "text/javascript" , a . src = e , "onreadystatechange" in a ? a . onreadystatechange = function ( ) { /loaded|complete/ . test ( a . readyState ) && n ( ) } : a . onload = n , a . onerror = i , ( document . getElementsByTagName ( "head" ) [ 0 ] || document . body ) . appendChild ( a ) } var t = 0 , n = 1 , a = 2 , s = { } , l = [ ] , c = { } , u = [ ] , d = 0 , f ; this . isDone = function ( e ) { return s [ e ] == a } , this . markDone = function ( e ) { s [ e ] = a } , this . add = this . load = function ( e , n , r ) { var i = s [ e ] ; i == f && ( l . push ( e ) , s [ e ] = t ) , n && ( c [ e ] || ( c [ e ] = [ ] ) , c [ e ] . push ( { func : n , scope : r || this } ) ) } , this . loadQueue = function ( e , t ) { this . loadScripts ( l , e , t ) } , this . loadScripts = function ( t , r , l ) { function p ( e ) { i ( c [ e ] , function ( e ) { e . func . call ( e . scope ) } ) , c [ e ] = f } var h ; u . push ( { func : r , scope : l || this } ) , ( h = function ( ) { var r = o ( t ) ; t . length = 0 , i ( r , function ( t ) { return s [ t ] == a ? void p ( t ) : void ( s [ t ] != n && ( s [ t ] = n , d ++ , e ( t , function ( ) { s [ t ] = a , d -- , p ( t ) , h ( ) } ) ) ) } ) , d || ( i ( u , function ( e ) { e . func . call ( e . scope ) } ) , u . length = 0 ) } ) ( ) } } var r = e . DOM , i = t . each , o = t . grep ; return n . ScriptLoader = new n , n } ) , r ( C , [ b , p ] , function ( e , n ) { function r ( ) { var e = this ; e . items = [ ] , e . urls = { } , e . lookup = { } } var i = n . each ; return r . prototype = { get : function ( e ) { return this . lookup [ e ] ? this . lookup [ e ] . instance : t } , dependencies : function ( e ) { var t ; return this . lookup [ e ] && ( t = this . lookup [ e ] . dependencies ) , t || [ ] } , requireLangPack : function ( t , n ) { var i = r . language ; if ( i && r . languageLoad !== ! 1 ) { if ( n ) if ( n = "," + n + "," , - 1 != n . indexOf ( "," + i . substr ( 0 , 2 ) + "," ) ) i = i . substr ( 0 , 2 ) ; else if ( - 1 == n . indexOf ( "," + i + "," ) ) return ; e . ScriptLoader . add ( this . urls [ t ] + "/langs/" + i + ".js" ) } } , add : function ( e , t , n ) { return this . items . push ( t ) , this . lookup [ e ] = { instance : t , dependencies : n } , t } , createUrl : function ( e , t ) { return "object" == typeof t ? t : { prefix : e . prefix , resource : t , suffix : e . suffix } } , addComponents : function ( t , n ) { var r = this . urls [ t ] ; i ( n , function ( t ) { e . ScriptLoader . add ( r + "/" + t ) } ) } , load : function ( n , o , a , s ) { function l ( ) { var r = c . dependencies ( n ) ; i ( r , function ( e ) { var n = c . createUrl ( o , e ) ; c . load ( n . resource , n , t , t ) } ) , a && a . call ( s ? s : e ) } var c = this , u = o ; c . urls [ n ] || ( "object" == typeof o && ( u = o . prefix + o . resource + o . suffix ) , 0 !== u . indexOf ( "/" ) && - 1 == u . indexOf ( "://" ) && ( u = r . baseURL + "/" + u ) , c . urls [ n ] = u . substring ( 0 , u . lastIndexOf ( "/" ) ) , c . lookup [ n ] ? l ( ) : e . ScriptLoader . add ( u , l , s ) ) } } , r . PluginManager = new r , r . ThemeManager = new r , r } ) , r ( x , [ ] , function ( ) { function e ( e , t , n ) { var r , i , o = n ? "lastChild" : "firstChild" , a = n ? "prev" : "next" ; if ( e [ o ] ) return e [ o ] ; if ( e !== t ) { if ( r = e [ a ] ) return r ; for ( i = e . parent ; i && i !== t ; i = i . parent ) if ( r = i [ a ] ) return r } } function t ( e , t ) { this . name = e , this . type = t , 1 === t && ( this . attributes = [ ] , this . attributes . map = { } ) } var n = /^[ \t\r\n]*$/ , r = { "#text" : 3 , "#comment" : 8 , "#cdata" : 4 , "#pi" : 7 , "#doctype" : 10 , "#document-fragment" : 11 } ; return t . prototype = { replace : function ( e ) { var t = this ; return e . parent && e . remove ( ) , t . insert ( e , t ) , t . remove ( ) , t } , attr : function ( e , t ) { var n = this , r , i , o ; if ( "string" != typeof e ) { for ( i in e ) n . attr ( i , e [ i ] ) ; return n } if ( r = n . attributes ) { if ( t !== o ) { if ( null === t ) { if ( e in r . map ) for ( delete r . map [ e ] , i = r . length ; i -- ; ) if ( r [ i ] . name === e ) return r = r . splice ( i , 1 ) , n ; return n } if ( e in r . map ) { for ( i = r . length ; i -- ; ) if ( r [ i ] . name === e ) { r [ i ] . value = t ; break } } else r . push ( { name : e , value : t } ) ; return r . map [ e ] = t , n } return r . map [ e ] } } , clone : function ( ) { var e = this , n = new t ( e . name , e . type ) , r , i , o , a , s ; if ( o = e . attributes ) { for ( s = [ ] , s . map = { } , r = 0 , i = o . length ; i > r ; r ++ ) a = o [ r ] , "id" !== a . name && ( s [ s . length ] = { name : a . name , value : a . value } , s . map [ a . name ] = a . value ) ; n . attributes = s } return n . value = e . valu
if ( ! f . hasChildNodes ( ) ) return { node : f , inside : 1 } ; for ( s = f . children , o = s . length - 1 ; o >= i ; ) if ( u = Math . floor ( ( i + o ) / 2 ) , l = s [ u ] , r . moveToElementText ( l ) , d = r . compareEndPoints ( n ? "StartToStart" : "EndToEnd" , t ) , d > 0 ) o = u - 1 ; else { if ( ! ( 0 > d ) ) return { node : l } ; i = u + 1 } if ( 0 > d ) for ( l ? r . collapse ( ! 1 ) : ( r . moveToElementText ( f ) , r . collapse ( ! 0 ) , l = f , a = ! 0 ) , c = 0 ; 0 !== r . compareEndPoints ( n ? "StartToStart" : "StartToEnd" , t ) && 0 !== r . move ( "character" , 1 ) && f == r . parentElement ( ) ; ) c ++ ; else for ( r . collapse ( ! 0 ) , c = 0 ; 0 !== r . compareEndPoints ( n ? "StartToStart" : "StartToEnd" , t ) && 0 !== r . move ( "character" , - 1 ) && f == r . parentElement ( ) ; ) c ++ ; return { node : l , position : d , offset : c , inside : a } } } function n ( ) { function n ( e ) { var n = t ( o , e ) , r , i , s = 0 , l , c , u ; if ( r = n . node , i = n . offset , n . inside && ! r . hasChildNodes ( ) ) return void a [ e ? "setStart" : "setEnd" ] ( r , 0 ) ; if ( i === c ) return void a [ e ? "setStartBefore" : "setEndAfter" ] ( r ) ; if ( n . position < 0 ) { if ( l = n . inside ? r . firstChild : r . nextSibling , ! l ) return void a [ e ? "setStartAfter" : "setEndAfter" ] ( r ) ; if ( ! i ) return void ( 3 == l . nodeType ? a [ e ? "setStart" : "setEnd" ] ( l , 0 ) : a [ e ? "setStartBefore" : "setEndBefore" ] ( l ) ) ; for ( ; l ; ) { if ( u = l . nodeValue , s += u . length , s >= i ) { r = l , s -= i , s = u . length - s ; break } l = l . nextSibling } } else { if ( l = r . previousSibling , ! l ) return a [ e ? "setStartBefore" : "setEndBefore" ] ( r ) ; if ( ! i ) return void ( 3 == r . nodeType ? a [ e ? "setStart" : "setEnd" ] ( l , r . nodeValue . length ) : a [ e ? "setStartAfter" : "setEndAfter" ] ( l ) ) ; for ( ; l ; ) { if ( s += l . nodeValue . length , s >= i ) { r = l , s -= i ; break } l = l . previousSibling } } a [ e ? "setStart" : "setEnd" ] ( r , s ) } var o = e . getRng ( ) , a = i . createRng ( ) , s , l , c , u , d ; if ( s = o . item ? o . item ( 0 ) : o . parentElement ( ) , s . ownerDocument != i . doc ) return a ; if ( l = e . isCollapsed ( ) , o . item ) return a . setStart ( s . parentNode , i . nodeIndex ( s ) ) , a . setEnd ( a . startContainer , a . startOffset + 1 ) , a ; try { n ( ! 0 ) , l || n ( ) } catch ( f ) { if ( - 2147024809 != f . number ) throw f ; d = r . getBookmark ( 2 ) , c = o . duplicate ( ) , c . collapse ( ! 0 ) , s = c . parentElement ( ) , l || ( c = o . duplicate ( ) , c . collapse ( ! 1 ) , u = c . parentElement ( ) , u . innerHTML = u . innerHTML ) , s . innerHTML = s . innerHTML , r . moveToBookmark ( d ) , o = e . getRng ( ) , n ( ! 0 ) , l || n ( ) } return a } var r = this , i = e . dom , o = ! 1 ; this . getBookmark = function ( n ) { function r ( e ) { var t , n , r , o , a = [ ] ; for ( t = e . parentNode , n = i . getRoot ( ) . parentNode ; t != n && 9 !== t . nodeType ; ) { for ( r = t . children , o = r . length ; o -- ; ) if ( e === r [ o ] ) { a . push ( o ) ; break } e = t , t = t . parentNode } return a } function o ( e ) { var n ; return n = t ( a , e ) , n ? { position : n . position , offset : n . offset , indexes : r ( n . node ) , inside : n . inside } : void 0 } var a = e . getRng ( ) , s = { } ; return 2 === n && ( a . item ? s . start = { ctrl : ! 0 , indexes : r ( a . item ( 0 ) ) } : ( s . start = o ( ! 0 ) , e . isCollapsed ( ) || ( s . end = o ( ) ) ) ) , s } , this . moveToBookmark = function ( e ) { function t ( e ) { var t , n , r , o ; for ( t = i . getRoot ( ) , n = e . length - 1 ; n >= 0 ; n -- ) o = t . children , r = e [ n ] , r <= o . length - 1 && ( t = o [ r ] ) ; return t } function n ( n ) { var i = e [ n ? "start" : "end" ] , a , s , l , c ; i && ( a = i . position > 0 , s = o . createTextRange ( ) , s . moveToElementText ( t ( i . indexes ) ) , c = i . offset , c !== l ? ( s . collapse ( i . inside || a ) , s . moveStart ( "character" , a ? - c : c ) ) : s . collapse ( n ) , r . setEndPoint ( n ? "StartToStart" : "EndToStart" , s ) , n && r . collapse ( ! 0 ) ) } var r , o = i . doc . body ; e . start && ( e . start . ctrl ? ( r = o . createControlRange ( ) , r . addElement ( t ( e . start . indexes ) ) , r . select ( ) ) : ( r = o . createTextRange ( ) , n ( ! 0 ) , n ( ) , r . select ( ) ) ) } , this . addRange = function ( t ) { function n ( e ) { var t , n , a , d , h ; a = i . create ( "a" ) , t = e ? s : c , n = e ? l : u , d = r . duplicate ( ) , ( t == f || t == f . documentElement ) && ( t = p , n = 0 ) , 3 == t . nodeType ? ( t . parentNode . insertBefore ( a , t ) , d . moveToElementText ( a ) , d . moveStart ( "character" , n ) , i . remove ( a ) , r . setEndPoint ( e ? "StartToStart" : "EndToEnd" , d ) ) : ( h = t . childNodes , h . length ? ( n >= h . length ? i . insertAfter ( a , h [ h . length - 1 ] ) : t . insertBefore ( a , h [ n ] ) , d . moveToElementText ( a ) ) : t . canHaveHTML && ( t . innerHTML = "<span></span>" , a = t . firstChild , d . moveToElementText ( a ) , d . collapse ( o ) ) , r . setEndPoint ( e ? "StartToStart" : "EndToEnd" , d ) , i . remove ( a ) ) } var r , a , s , l , c , u , d , f = e . dom . doc , p = f . body , h , m ; if ( s = t . startContainer , l = t . startOffset , c = t . endContainer , u = t . endOffset , r = p . createTextRange ( ) , s == c && 1 == s . nodeType ) { if ( l == u && ! s . hasChildNodes ( ) ) { if ( s . canHaveHTML ) return d = s . previousSibling , d && ! d . hasChildNodes ( ) && i . isBlock ( d ) ? d . innerHTML = "" : d = null , s . innerHTML = "<span></span><span></span>" , r . moveToElementText ( s . lastChild ) , r . select ( ) , i . doc . selection . clear ( ) , s . innerHTML = "" , void ( d && ( d . innerHTML = "" ) ) ; l = i . nodeIndex ( s ) , s = s . parentNode } if ( l
} ) , t && ! M ( t ) && _ ( t , m ) && ( n = z . clone ( t , Y ) , a ( n ) , z . replace ( n , e , X ) , z . remove ( t , 1 ) ) , n || e } var o ; if ( o = r ( e ) , ( l . length > 1 || ! q ( e ) ) && 0 === o ) return void z . remove ( e , 1 ) ; if ( m . inline || m . wrapper ) { if ( m . exact || 1 !== o || ( e = i ( e ) ) , nt ( f , function ( t ) { nt ( z . select ( t . inline , e ) , function ( e ) { var r ; if ( ! M ( e ) ) { if ( t . wrap _links === ! 1 ) { r = e . parentNode ; do if ( "A" === r . nodeName ) return ; while ( r = r . parentNode ) } B ( t , n , e , t . exact ? e : null ) } } ) } ) , v ( e . parentNode , t , n ) ) return z . remove ( e , 1 ) , e = 0 , X ; m . merge _with _parents && z . getParent ( e . parentNode , function ( r ) { return v ( r , t , n ) ? ( z . remove ( e , 1 ) , e = 0 , X ) : void 0 } ) , e && m . merge _siblings !== ! 1 && ( e = H ( L ( e ) , e ) , e = H ( e , L ( e , X ) ) ) } } ) } var f = u ( t ) , m = f [ 0 ] , g , y , b = ! r && W . isCollapsed ( ) ; if ( m ) if ( r ) r . nodeType ? ( y = z . createRng ( ) , y . setStartBefore ( r ) , y . setEndAfter ( r ) , d ( A ( y , f ) , null , ! 0 ) ) : d ( r , null , ! 0 ) ; else if ( b && m . inline && ! z . select ( "td.mce-item-selected,th.mce-item-selected" ) . length ) O ( "apply" , t , n ) ; else { var C = i . selection . getNode ( ) ; $ || ! f [ 0 ] . defaultBlock || z . getParent ( C , z . isBlock ) || h ( f [ 0 ] . defaultBlock ) , i . selection . setRng ( l ( ) ) , g = W . getBookmark ( ) , d ( A ( W . getRng ( X ) , f ) , g ) , m . styles && ( m . styles . color || m . styles . textDecoration ) && ( it ( C , p , "childNodes" ) , p ( C ) ) , W . moveToBookmark ( g ) , I ( W . getRng ( X ) ) , i . nodeChanged ( ) } } function m ( e , t , n ) { function r ( e ) { var n , i , o , a , s ; if ( 1 === e . nodeType && Z ( e ) && ( a = b , b = "true" === Z ( e ) , s = ! 0 ) , n = rt ( e . childNodes ) , b && ! s ) for ( i = 0 , o = p . length ; o > i && ! B ( p [ i ] , t , e , e ) ; i ++ ) ; if ( h . deep && n . length ) { for ( i = 0 , o = n . length ; o > i ; i ++ ) r ( n [ i ] ) ; s && ( b = a ) } } function o ( n ) { var r ; return nt ( a ( n . parentNode ) . reverse ( ) , function ( n ) { var i ; r || "_start" == n . id || "_end" == n . id || ( i = v ( n , e , t ) , i && i . split !== ! 1 && ( r = n ) ) } ) , r } function s ( e , n , r , i ) { var o , a , s , l , c , u ; if ( e ) { for ( u = e . parentNode , o = n . parentNode ; o && o != u ; o = o . parentNode ) { for ( a = z . clone ( o , Y ) , c = 0 ; c < p . length ; c ++ ) if ( B ( p [ c ] , t , a , a ) ) { a = 0 ; break } a && ( s && a . appendChild ( s ) , l || ( l = a ) , s = a ) } ! i || h . mixed && q ( e ) || ( n = z . split ( e , n ) ) , s && ( r . parentNode . insertBefore ( s , r ) , l . appendChild ( r ) ) } return n } function l ( e ) { return s ( o ( e ) , e , e , ! 0 ) } function c ( e ) { var t = z . get ( e ? "_start" : "_end" ) , n = t [ e ? "firstChild" : "lastChild" ] ; return M ( n ) && ( n = n [ e ? "firstChild" : "lastChild" ] ) , z . remove ( t , ! 0 ) , n } function d ( e ) { var t , n , o = e . commonAncestorContainer ; e = A ( e , p , X ) , h . split && ( t = P ( e , X ) , n = P ( e ) , t != n ? ( /^(TR|TH|TD)$/ . test ( t . nodeName ) && t . firstChild && ( t = "TR" == t . nodeName ? t . firstChild . firstChild || t : t . firstChild || t ) , o && /^T(HEAD|BODY|FOOT|R)$/ . test ( o . nodeName ) && /^(TH|TD)$/ . test ( n . nodeName ) && n . firstChild && ( n = n . firstChild || n ) , t = R ( t , "span" , { id : "_start" , "data-mce-type" : "bookmark" } ) , n = R ( n , "span" , { id : "_end" , "data-mce-type" : "bookmark" } ) , l ( t ) , l ( n ) , t = c ( X ) , n = c ( ) ) : t = n = l ( t ) , e . startContainer = t . parentNode , e . startOffset = j ( t ) , e . endContainer = n . parentNode , e . endOffset = j ( n ) + 1 ) , V . walk ( e , function ( e ) { nt ( e , function ( e ) { r ( e ) , 1 === e . nodeType && "underline" === i . dom . getStyle ( e , "text-decoration" ) && e . parentNode && "underline" === f ( e . parentNode ) && B ( { deep : ! 1 , exact : ! 0 , inline : "span" , styles : { textDecoration : "underline" } } , null , e ) } ) } ) } var p = u ( e ) , h = p [ 0 ] , m , g , b = ! 0 ; return n ? void ( n . nodeType ? ( g = z . createRng ( ) , g . setStartBefore ( n ) , g . setEndAfter ( n ) , d ( g ) ) : d ( n ) ) : void ( W . isCollapsed ( ) && h . inline && ! z . select ( "td.mce-item-selected,th.mce-item-selected" ) . length ? O ( "remove" , e , t ) : ( m = W . getBookmark ( ) , d ( W . getRng ( X ) ) , W . moveToBookmark ( m ) , h . inline && y ( e , t , W . getStart ( ) ) && I ( W . getRng ( ! 0 ) ) , i . nodeChanged ( ) ) ) } function g ( e , t , n ) { var r = u ( e ) ; ! y ( e , t , n ) || "toggle" in r [ 0 ] && ! r [ 0 ] . toggle ? h ( e , t , n ) : m ( e , t , n ) } function v ( e , t , n , r ) { function i ( e , t , i ) { var o , a , s = t [ i ] , l ; if ( t . onmatch ) return t . onmatch ( e , t , i ) ; if ( s ) if ( s . length === Q ) { for ( o in s ) if ( s . hasOwnProperty ( o ) ) { if ( a = "attributes" === i ? z . getAttrib ( e , o ) : E ( e , o ) , r && ! a && ! t . exact ) return ; if ( ( ! r || t . exact ) && ! N ( a , S ( k ( s [ o ] , n ) , o ) ) ) return } } else for ( l = 0 ; l < s . length ; l ++ ) if ( "attributes" === i ? z . getAttrib ( e , s [ l ] ) : E ( e , s [ l ] ) ) return t ; return t } var o = u ( t ) , a , s , l ; if ( o && e ) for ( s = 0 ; s < o . length ; s ++ ) if ( a = o [ s ] , _ ( e , a ) && i ( e , a , "attributes" ) && i ( e , a , "styles" ) ) { if ( l = a . classes ) for ( s = 0 ; s < l . length ; s ++ ) if ( ! z . hasClass ( e , l [ s ] ) ) return ; return a } } function y ( e , t , n ) { function r ( n ) { var r = z . getRoot ( ) ; return n === r ? ! 1 : ( n = z . getParent ( n , function ( n ) { return n . parentNode === r || ! ! v ( n , e , t , ! 0 ) } ) , v ( n , e , t ) ) } var i ; return n ? r ( n ) : ( n = W . getNode ( ) , r ( n ) ? X : ( i = W . getStart ( ) , i != n && r ( i ) ? X : Y ) ) } function b ( e , t ) { var n , r = [ ] , i = { } ; return n = W . getStart ( ) , z . getParent ( n , function ( n ) { var o , a ; for ( o = 0 ; o < e . le
} return h ( "InsertUnorderedList" ) || h ( "InsertOrderedList" ) || ! E . inline _styles && ! ! w . getParent ( _ . getNode ( ) , "BLOCKQUOTE" ) } , "InsertUnorderedList,InsertOrderedList" : function ( e ) { var t = w . getParent ( _ . getNode ( ) , "ul,ol" ) ; return t && ( "insertunorderedlist" === e && "UL" === t . tagName || "insertorderedlist" === e && "OL" === t . tagName ) } } , "state" ) , g ( { "FontSize,FontName" : function ( e ) { var t = 0 , n ; return ( n = w . getParent ( _ . getNode ( ) , "span" ) ) && ( t = "fontsize" == e ? n . style . fontSize : n . style . fontFamily . replace ( /, /g , "," ) . replace ( /[\'\"]/g , "" ) . toLowerCase ( ) ) , t } } , "value" ) , g ( { Undo : function ( ) { r . undoManager . undo ( ) } , Redo : function ( ) { r . undoManager . redo ( ) } } ) } } ) , r ( F , [ p ] , function ( e ) { function t ( e , i ) { var o = this , a , s ; if ( e = r ( e ) , i = o . settings = i || { } , /^([\w\-]+):([^\/]{2})/i . test ( e ) || /^\s*#/ . test ( e ) ) return void ( o . source = e ) ; var l = 0 === e . indexOf ( "//" ) ; 0 !== e . indexOf ( "/" ) || l || ( e = ( i . base _uri ? i . base _uri . protocol || "http" : "http" ) + "://mce_host" + e ) , /^[\w\-]*:?\/\// . test ( e ) || ( s = i . base _uri ? i . base _uri . path : new t ( location . href ) . directory , e = "" === i . base _uri . protocol ? "//mce_host" + o . toAbsPath ( s , e ) : ( i . base _uri && i . base _uri . protocol || "http" ) + "://mce_host" + o . toAbsPath ( s , e ) ) , e = e . replace ( /@@/g , "(mce_at)" ) , e = /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@\/]*):?([^:@\/]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ . exec ( e ) , n ( [ "source" , "protocol" , "authority" , "userInfo" , "user" , "password" , "host" , "port" , "relative" , "path" , "directory" , "file" , "query" , "anchor" ] , function ( t , n ) { var r = e [ n ] ; r && ( r = r . replace ( /\(mce_at\)/g , "@@" ) ) , o [ t ] = r } ) , a = i . base _uri , a && ( o . protocol || ( o . protocol = a . protocol ) , o . userInfo || ( o . userInfo = a . userInfo ) , o . port || "mce_host" !== o . host || ( o . port = a . port ) , o . host && "mce_host" !== o . host || ( o . host = a . host ) , o . source = "" ) , l && ( o . protocol = "" ) } var n = e . each , r = e . trim , i = { ftp : 21 , http : 80 , https : 443 , mailto : 25 } ; return t . prototype = { setPath : function ( e ) { var t = this ; e = /^(.*?)\/?(\w+)?$/ . exec ( e ) , t . path = e [ 0 ] , t . directory = e [ 1 ] , t . file = e [ 2 ] , t . source = "" , t . getURI ( ) } , toRelative : function ( e ) { var n = this , r ; if ( "./" === e ) return e ; if ( e = new t ( e , { base _uri : n } ) , "mce_host" != e . host && n . host != e . host && e . host || n . port != e . port || n . protocol != e . protocol && "" !== e . protocol ) return e . getURI ( ) ; var i = n . getURI ( ) , o = e . getURI ( ) ; return i == o || "/" == i . charAt ( i . length - 1 ) && i . substr ( 0 , i . length - 1 ) == o ? i : ( r = n . toRelPath ( n . path , e . path ) , e . query && ( r += "?" + e . query ) , e . anchor && ( r += "#" + e . anchor ) , r ) } , toAbsolute : function ( e , n ) { return e = new t ( e , { base _uri : this } ) , e . getURI ( n && this . isSameOrigin ( e ) ) } , isSameOrigin : function ( e ) { if ( this . host == e . host && this . protocol == e . protocol ) { if ( this . port == e . port ) return ! 0 ; var t = i [ this . protocol ] ; if ( t && ( this . port || t ) == ( e . port || t ) ) return ! 0 } return ! 1 } , toRelPath : function ( e , t ) { var n , r = 0 , i = "" , o , a ; if ( e = e . substring ( 0 , e . lastIndexOf ( "/" ) ) , e = e . split ( "/" ) , n = t . split ( "/" ) , e . length >= n . length ) for ( o = 0 , a = e . length ; a > o ; o ++ ) if ( o >= n . length || e [ o ] != n [ o ] ) { r = o + 1 ; break } if ( e . length < n . length ) for ( o = 0 , a = n . length ; a > o ; o ++ ) if ( o >= e . length || e [ o ] != n [ o ] ) { r = o + 1 ; break } if ( 1 === r ) return t ; for ( o = 0 , a = e . length - ( r - 1 ) ; a > o ; o ++ ) i += "../" ; for ( o = r - 1 , a = n . length ; a > o ; o ++ ) i += o != r - 1 ? "/" + n [ o ] : n [ o ] ; return i } , toAbsPath : function ( e , t ) { var r , i = 0 , o = [ ] , a , s ; for ( a = /\/$/ . test ( t ) ? "/" : "" , e = e . split ( "/" ) , t = t . split ( "/" ) , n ( e , function ( e ) { e && o . push ( e ) } ) , e = o , r = t . length - 1 , o = [ ] ; r >= 0 ; r -- ) 0 !== t [ r ] . length && "." !== t [ r ] && ( ".." !== t [ r ] ? i > 0 ? i -- : o . push ( t [ r ] ) : i ++ ) ; return r = e . length - i , s = 0 >= r ? o . reverse ( ) . join ( "/" ) : e . slice ( 0 , r ) . join ( "/" ) + "/" + o . reverse ( ) . join ( "/" ) , 0 !== s . indexOf ( "/" ) && ( s = "/" + s ) , a && s . lastIndexOf ( "/" ) !== s . length - 1 && ( s += a ) , s } , getURI : function ( e ) { var t , n = this ; return ( ! n . source || e ) && ( t = "" , e || ( t += n . protocol ? n . protocol + "://" : "//" , n . userInfo && ( t += n . userInfo + "@" ) , n . host && ( t += n . host ) , n . port && ( t += ":" + n . port ) ) , n . path && ( t += n . path ) , n . query && ( t += "?" + n . query ) , n . anchor && ( t += "#" + n . anchor ) , n . source = t ) , n . source } } , t } ) , r ( z , [ p ] , function ( e ) { function t ( ) { } var n = e . each , r = e . extend , i , o ; return t . extend = i = function ( e ) { function t ( ) { var e , t , n , r = this ; if ( ! o && ( r . init && r . init . apply ( r , arguments ) , t = r . Mixins ) ) for ( e = t . length ; e -- ; ) n = t [ e ] , n . init && n . init . apply ( r , arguments ) } function a ( ) { return this } function s ( e , t ) { return function ( ) { var n = this , r = n . _super , i ; return n . _super = c [ e ] , i = t . apply ( n , arguments ) , n . _super = r , i } } var l = t
var r = t ( this , e , n ) ; return this . moveTo ( r . x , r . y ) } , moveBy : function ( e , t ) { var n = this , r = n . layoutRect ( ) ; return n . moveTo ( r . x + e , r . y + t ) , n } , moveTo : function ( t , n ) { function r ( e , t , n ) { return 0 > e ? 0 : e + n > t ? ( e = t - n , 0 > e ? 0 : e ) : e } var i = this ; if ( i . settings . constrainToViewport ) { var o = e . getViewPort ( window ) , a = i . layoutRect ( ) ; t = r ( t , o . w + o . x , a . w ) , n = r ( n , o . h + o . y , a . h ) } return i . _rendered ? i . layoutRect ( { x : t , y : n } ) . repaint ( ) : ( i . settings . x = t , i . settings . y = n ) , i . fire ( "move" , { x : t , y : n } ) , i } } } ) , r ( Z , [ q ] , function ( e ) { return { resizeToContent : function ( ) { this . _layoutRect . autoResize = ! 0 , this . _lastRect = null , this . reflow ( ) } , resizeTo : function ( t , n ) { if ( 1 >= t || 1 >= n ) { var r = e . getWindowSize ( ) ; t = 1 >= t ? t * r . w : t , n = 1 >= n ? n * r . h : n } return this . _layoutRect . autoResize = ! 1 , this . layoutRect ( { minW : t , minH : n , w : t , h : n } ) . reflow ( ) } , resizeBy : function ( e , t ) { var n = this , r = n . layoutRect ( ) ; return n . resizeTo ( r . w + e , r . h + t ) } } } ) , r ( et , [ J , Q , Z , q ] , function ( e , t , n , r ) { function i ( e ) { var t ; for ( t = s . length ; t -- ; ) s [ t ] === e && s . splice ( t , 1 ) ; for ( t = l . length ; t -- ; ) l [ t ] === e && l . splice ( t , 1 ) } var o , a , s = [ ] , l = [ ] , c , u = e . extend ( { Mixins : [ t , n ] , init : function ( e ) { function t ( ) { var e , t = u . zIndex || 65535 , n ; if ( l . length ) for ( e = 0 ; e < l . length ; e ++ ) l [ e ] . modal && ( t ++ , n = l [ e ] ) , l [ e ] . getEl ( ) . style . zIndex = t , l [ e ] . zIndex = t , t ++ ; var i = document . getElementById ( d . classPrefix + "modal-block" ) ; n ? r . css ( i , "z-index" , n . zIndex - 1 ) : i && ( i . parentNode . removeChild ( i ) , c = ! 1 ) , u . currentZIndex = t } function n ( e , t ) { for ( ; e ; ) { if ( e == t ) return ! 0 ; e = e . parent ( ) } } function i ( e ) { function t ( t , n ) { for ( var r , i = 0 ; i < s . length ; i ++ ) if ( s [ i ] != e ) for ( r = s [ i ] . parent ( ) ; r && ( r = r . parent ( ) ) ; ) r == e && s [ i ] . fixed ( t ) . moveBy ( 0 , n ) . repaint ( ) } var n = r . getViewPort ( ) . y ; e . settings . autofix && ( e . _fixed ? e . _autoFixY > n && ( e . fixed ( ! 1 ) . layoutRect ( { y : e . _autoFixY } ) . repaint ( ) , t ( ! 1 , e . _autoFixY - n ) ) : ( e . _autoFixY = e . layoutRect ( ) . y , e . _autoFixY < n && ( e . fixed ( ! 0 ) . layoutRect ( { y : 0 } ) . repaint ( ) , t ( ! 0 , n - e . _autoFixY ) ) ) ) } var d = this ; d . _super ( e ) , d . _eventsRoot = d , d . addClass ( "floatpanel" ) , e . autohide && ( o || ( o = function ( e ) { for ( var t = s . length ; t -- ; ) { var r = s [ t ] , i = r . getParentCtrl ( e . target ) ; if ( r . settings . autohide ) { if ( i && ( n ( i , r ) || r . parent ( ) === i ) ) continue ; e = r . fire ( "autohide" , { target : e . target } ) , e . isDefaultPrevented ( ) || r . hide ( ) } } } , r . on ( document , "click" , o ) ) , s . push ( d ) ) , e . autofix && ( a || ( a = function ( ) { var e ; for ( e = s . length ; e -- ; ) i ( s [ e ] ) } , r . on ( window , "scroll" , a ) ) , d . on ( "move" , function ( ) { i ( this ) } ) ) , d . on ( "postrender show" , function ( e ) { if ( e . control == d ) { var n , i = d . classPrefix ; d . modal && ! c && ( n = r . createFragment ( '<div id="' + i + 'modal-block" class="' + i + "reset " + i + 'fade"></div>' ) , n = n . firstChild , d . getContainerElm ( ) . appendChild ( n ) , setTimeout ( function ( ) { r . addClass ( n , i + "in" ) , r . addClass ( d . getEl ( ) , i + "in" ) } , 0 ) , c = ! 0 ) , l . push ( d ) , t ( ) } } ) , d . on ( "close hide" , function ( e ) { if ( e . control == d ) { for ( var n = l . length ; n -- ; ) l [ n ] === d && l . splice ( n , 1 ) ; t ( ) } } ) , d . on ( "show" , function ( ) { d . parents ( ) . each ( function ( e ) { return e . _fixed ? ( d . fixed ( ! 0 ) , ! 1 ) : void 0 } ) } ) , e . popover && ( d . _preBodyHtml = '<div class="' + d . classPrefix + 'arrow"></div>' , d . addClass ( "popover" ) . addClass ( "bottom" ) . addClass ( d . isRtl ( ) ? "end" : "start" ) ) } , fixed : function ( e ) { var t = this ; if ( t . _fixed != e ) { if ( t . _rendered ) { var n = r . getViewPort ( ) ; e ? t . layoutRect ( ) . y -= n . y : t . layoutRect ( ) . y += n . y } t . toggleClass ( "fixed" , e ) , t . _fixed = e } return t } , show : function ( ) { var e = this , t , n = e . _super ( ) ; for ( t = s . length ; t -- && s [ t ] !== e ; ) ; return - 1 === t && s . push ( e ) , n } , hide : function ( ) { return i ( this ) , this . _super ( ) } , hideAll : function ( ) { u . hideAll ( ) } , close : function ( ) { var e = this ; return e . fire ( "close" ) , e . remove ( ) } , remove : function ( ) { i ( this ) , this . _super ( ) } , postRender : function ( ) { var e = this ; return e . settings . bodyRole && this . getEl ( "body" ) . setAttribute ( "role" , e . settings . bodyRole ) , e . _super ( ) } } ) ; return u . hideAll = function ( ) { for ( var e = s . length ; e -- ; ) { var t = s [ e ] ; t && t . settings . autohide && ( t . hide ( ) , s . splice ( e , 1 ) ) } } , u } ) , r ( tt , [ et , J , q , Y ] , function ( e , t , n , r ) { var i = e . extend ( { modal : ! 0 , Defaults : { border : 1 , layout : "flex" , containerCls : "panel" , role : "dialog" , callbacks : { submit : function ( ) { this . fire ( "submit" , { data : this . toJSON ( ) } ) } , close : function ( ) { this . close ( ) } } } , init : function ( e ) { var n = this ; n . _super ( e ) , n . isRtl ( ) && n . addClass ( "rtl" ) , n . addClass ( "window" ) , n . _fixed = ! 0 , e . buttons && ( n . statusbar = new t ( { layout : "flex" , border : "1 0 0 0" , spacing : 3 , padding : 10 , align : "center" , pack : n . isRtl ( ) ? "start" : "end" , defaults :
} } ) , n . parser = new v ( o , n . schema ) , n . parser . addAttributeFilter ( "src,href,style,tabindex" , function ( e , t ) { for ( var r = e . length , i , o = n . dom , a , s ; r -- ; ) i = e [ r ] , a = i . attr ( t ) , s = "data-mce-" + t , i . attributes . map [ s ] || ( "style" === t ? i . attr ( s , o . serializeStyle ( o . parseStyle ( a ) , i . name ) ) : "tabindex" === t ? ( i . attr ( s , a ) , i . attr ( t , null ) ) : i . attr ( s , n . convertURL ( a , t , i . name ) ) ) } ) , n . parser . addNodeFilter ( "script" , function ( e ) { for ( var t = e . length , n ; t -- ; ) n = e [ t ] , n . attr ( "type" , "mce-" + ( n . attr ( "type" ) || "text/javascript" ) ) } ) , n . parser . addNodeFilter ( "#cdata" , function ( e ) { for ( var t = e . length , n ; t -- ; ) n = e [ t ] , n . type = 8 , n . name = "#comment" , n . value = "[CDATA[" + n . value + "]]" } ) , n . parser . addNodeFilter ( "p,h1,h2,h3,h4,h5,h6,div" , function ( e ) { for ( var t = e . length , i , o = n . schema . getNonEmptyElements ( ) ; t -- ; ) i = e [ t ] , i . isEmpty ( o ) && ( i . empty ( ) . append ( new r ( "br" , 1 ) ) . shortEnded = ! 0 ) } ) , n . serializer = new i ( o , n ) , n . selection = new a ( n . dom , n . getWin ( ) , n . serializer , n ) , n . formatter = new s ( n ) , n . undoManager = new l ( n ) , n . forceBlocks = new u ( n ) , n . enterKey = new c ( n ) , n . editorCommands = new d ( n ) , n . fire ( "PreInit" ) , o . browser _spellcheck || o . gecko _spellcheck || ( p . body . spellcheck = ! 1 , N . setAttrib ( h , "spellcheck" , "false" ) ) , n . fire ( "PostRender" ) , n . quirks = y ( n ) , o . directionality && ( h . dir = o . directionality ) , o . nowrap && ( h . style . whiteSpace = "nowrap" ) , o . protect && n . on ( "BeforeSetContent" , function ( e ) { T ( o . protect , function ( t ) { e . content = e . content . replace ( t , function ( e ) { return "<!--mce:protected " + escape ( e ) + "-->" } ) } ) } ) , n . on ( "SetContent" , function ( ) { n . addVisual ( n . getBody ( ) ) } ) , o . padd _empty _editor && n . on ( "PostProcess" , function ( e ) { e . content = e . content . replace ( /^(<p[^>]*>( | |\s|\u00a0|)<\/p>[\r\n]*|<br \/>[\r\n]*)$/ , "" ) } ) , n . load ( { initial : ! 0 , format : "html" } ) , n . startContent = n . getContent ( { format : "raw" } ) , n . initialized = ! 0 , n . bindPendingEventDelegates ( ) , n . fire ( "init" ) , n . focus ( ! 0 ) , n . nodeChanged ( { initial : ! 0 } ) , n . execCallback ( "init_instance_callback" , n ) , n . contentStyles . length > 0 && ( m = "" , T ( n . contentStyles , function ( e ) { m += e + "\r\n" } ) , n . dom . addStyle ( m ) ) , T ( n . contentCSS , function ( e ) { n . loadedCSS [ e ] || ( n . dom . loadCSS ( e ) , n . loadedCSS [ e ] = ! 0 ) } ) , o . auto _focus && setTimeout ( function ( ) { var e = n . editorManager . get ( o . auto _focus ) ; e . selection . select ( e . getBody ( ) , 1 ) , e . selection . collapse ( 1 ) , e . getBody ( ) . focus ( ) , e . getWin ( ) . focus ( ) } , 100 ) , f = p = h = null } , focus : function ( e ) { var t , n = this , r = n . selection , i = n . settings . content _editable , o , a , s = n . getDoc ( ) , l ; if ( ! e ) { if ( o = r . getRng ( ) , o . item && ( a = o . item ( 0 ) ) , n . _refreshContentEditable ( ) , i || ( b . opera || n . getBody ( ) . focus ( ) , n . getWin ( ) . focus ( ) ) , M || i ) { if ( l = n . getBody ( ) , l . setActive ) try { l . setActive ( ) } catch ( c ) { l . focus ( ) } else l . focus ( ) ; i && r . normalize ( ) } a && a . ownerDocument == s && ( o = s . body . createControlRange ( ) , o . addElement ( a ) , o . select ( ) ) } n . editorManager . activeEditor != n && ( ( t = n . editorManager . activeEditor ) && t . fire ( "deactivate" , { relatedTarget : n } ) , n . fire ( "activate" , { relatedTarget : t } ) ) , n . editorManager . activeEditor = n } , execCallback : function ( e ) { var t = this , n = t . settings [ e ] , r ; if ( n ) return t . callbackLookup && ( r = t . callbackLookup [ e ] ) && ( n = r . func , r = r . scope ) , "string" == typeof n && ( r = n . replace ( /\.\w+$/ , "" ) , r = r ? D ( r ) : 0 , n = D ( n ) , t . callbackLookup = t . callbackLookup || { } , t . callbackLookup [ e ] = { func : n , scope : r } ) , n . apply ( r || t , Array . prototype . slice . call ( arguments , 1 ) ) } , translate : function ( e ) { var t = this . settings . language || "en" , n = this . editorManager . i18n ; return e ? n . data [ t + "." + e ] || e . replace ( /\{\#([^\}]+)\}/g , function ( e , r ) { return n . data [ t + "." + r ] || "{#" + r + "}" } ) : "" } , getLang : function ( e , n ) { return this . editorManager . i18n . data [ ( this . settings . language || "en" ) + "." + e ] || ( n !== t ? n : "{#" + e + "}" ) } , getParam : function ( e , t , n ) { var r = e in this . settings ? this . settings [ e ] : t , i ; return "hash" === n ? ( i = { } , "string" == typeof r ? T ( r . split ( r . indexOf ( "=" ) > 0 ? /[;,](?![^=;,]*(?:[;,]|$))/ : "," ) , function ( e ) { e = e . split ( "=" ) , i [ B ( e [ 0 ] ) ] = B ( e . length > 1 ? e [ 1 ] : e ) } ) : i = r , i ) : r } , nodeChanged : function ( ) { var e = this , t = e . selection , n , r , i ; ! e . initialized || e . settings . disable _nodechange || e . settings . readonly || ( i = e . getBody ( ) , n = t . getStart ( ) || i , n = H && n . ownerDocument != e . getDoc ( ) ? e . getBody ( ) : n , "IMG" == n . nodeName && t . isCollapsed ( ) && ( n = n . parentNode ) , r = [ ] , e . dom . getParent ( n , function ( e ) { return e === i ? ! 0 : void r . push ( e ) } ) , e . fire ( "NodeChange" , { element : n , parents : r } ) ) } , addButton : function ( e , t ) { var n = this ; t . cmd && ( t . onclick = function ( ) { n . execC
} } ) } ) , r ( Rt , [ wt ] , function ( e ) { return e . extend ( { init : function ( e ) { var t = this ; e . delimiter || ( e . delimiter = "\xbb" ) , t . _super ( e ) , t . addClass ( "path" ) , t . canFocus = ! 0 , t . on ( "click" , function ( e ) { var n , r = e . target ; ( n = r . getAttribute ( "data-index" ) ) && t . fire ( "select" , { value : t . data ( ) [ n ] , index : n } ) } ) } , focus : function ( ) { var e = this ; return e . getEl ( ) . firstChild . focus ( ) , e } , data : function ( e ) { var t = this ; return "undefined" != typeof e ? ( t . _data = e , t . update ( ) , t ) : t . _data } , update : function ( ) { this . innerHtml ( this . _getPathHtml ( ) ) } , postRender : function ( ) { var e = this ; e . _super ( ) , e . data ( e . settings . data ) } , renderHtml : function ( ) { var e = this ; return '<div id="' + e . _id + '" class="' + e . classes ( ) + '">' + e . _getPathHtml ( ) + "</div>" } , _getPathHtml : function ( ) { var e = this , t = e . _data || [ ] , n , r , i = "" , o = e . classPrefix ; for ( n = 0 , r = t . length ; r > n ; n ++ ) i += ( n > 0 ? '<div class="' + o + 'divider" aria-hidden="true"> ' + e . settings . delimiter + " </div>" : "" ) + '<div role="button" class="' + o + "path-item" + ( n == r - 1 ? " " + o + "last" : "" ) + '" data-index="' + n + '" tabindex="-1" id="' + e . _id + "-" + n + '" aria-level="' + n + '">' + t [ n ] . name + "</div>" ; return i || ( i = '<div class="' + o + 'path-item">\xa0</div>' ) , i } } ) } ) , r ( At , [ Rt , dt ] , 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 n . on ( "select" , function ( t ) { var n = [ ] , i , o = r . getBody ( ) ; for ( r . focus ( ) , i = r . selection . getStart ( ) ; i && i != o ; ) e ( i ) || n . push ( i ) , i = i . parentNode ; r . selection . select ( n [ n . length - 1 - t . index ] ) , 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 ] } ) ; i . push ( { name : s . name } ) } n . data ( i ) } ) , n . _super ( ) } } ) } ) , r ( Bt , [ G ] , function ( e ) { return e . extend ( { Defaults : { layout : "flex" , align : "center" , defaults : { flex : 1 } } , renderHtml : function ( ) { var e = this , t = e . _layout , n = e . classPrefix ; return e . addClass ( "formitem" ) , t . preRender ( e ) , '<div id="' + e . _id + '" class="' + e . classes ( ) + '" hidefocus="1" tabindex="-1">' + ( e . settings . title ? '<div id="' + e . _id + '-title" class="' + n + 'title">' + e . settings . title + "</div>" : "" ) + '<div id="' + e . _id + '-body" class="' + e . classes ( "body" ) + '">' + ( e . settings . html || "" ) + t . renderHtml ( e ) + "</div></div>" } } ) } ) , r ( Dt , [ G , Bt ] , function ( e , t ) { return e . extend ( { Defaults : { containerCls : "form" , layout : "flex" , direction : "column" , align : "stretch" , flex : 1 , padding : 20 , labelGap : 30 , spacing : 10 , callbacks : { submit : function ( ) { this . submit ( ) } } } , preRender : function ( ) { var e = this , n = e . items ( ) ; n . each ( function ( n ) { var r , i = n . settings . label ; i && ( r = new t ( { layout : "flex" , autoResize : "overflow" , defaults : { flex : 1 } , items : [ { type : "label" , id : n . _id + "-l" , text : i , flex : 0 , forId : n . _id , disabled : n . disabled ( ) } ] } ) , r . type = "formitem" , n . aria ( "labelledby" , n . _id + "-l" ) , "undefined" == typeof n . settings . flex && ( n . settings . flex = 1 ) , e . replace ( n , r ) , r . add ( n ) ) } ) } , recalcLabels : function ( ) { var e = this , t = 0 , n = [ ] , r , i ; if ( e . settings . labelGapCalc !== ! 1 ) for ( e . items ( ) . filter ( "formitem" ) . each ( function ( e ) { var r = e . items ( ) [ 0 ] , i = r . getEl ( ) . clientWidth ; t = i > t ? i : t , n . push ( r ) } ) , i = e . settings . labelGap || 0 , r = n . length ; r -- ; ) n [ r ] . settings . minWidth = t + i } , visible : function ( e ) { var t = this . _super ( e ) ; return e === ! 0 && this . _rendered && this . recalcLabels ( ) , t } , submit : function ( ) { return this . fire ( "submit" , { data : this . toJSON ( ) } ) } , postRender : function ( ) { var e = this ; e . _super ( ) , e . recalcLabels ( ) , e . fromJSON ( e . settings . data ) } } ) } ) , r ( Lt , [ Dt ] , function ( e ) { return e . extend ( { Defaults : { containerCls : "fieldset" , layout : "flex" , direction : "column" , align : "stretch" , flex : 1 , padding : "25 15 5 15" , labelGap : 30 , spacing : 10 , border : 1 } , renderHtml : function ( ) { var e = this , t = e . _layout , n = e . classPrefix ; return e . preRender ( ) , t . preRender ( e ) , '<fieldset id="' + e . _id + '" class="' + e . classes ( ) + '" hidefocus="1" tabindex="-1">' + ( e . settings . title ? '<legend id="' + e . _id + '-title" class="' + n + 'fieldset-title">' + e . settings . title + "</legend>" : "" ) + '<div id="' + e . _id + '-body" class="' + e . classes ( "body" ) + '">' + ( e . settings . html || "" ) + t . renderHtml ( e ) + "</div></fieldset>" } } ) } ) , r ( Mt , [ Tt ] , function ( e ) { return e . extend ( { init : function ( e ) { var t = this , n = tinymce . activeEditor , r ; e . spellcheck = ! 1 , r = n . settings . file _browser _call