2013-11-28 16:01:12 +01:00
// 4.0.11 (2013-11-20)
! 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/DOMUtils" , y = "tinymce/dom/ScriptLoader" , b = "tinymce/AddOnManager" , C = "tinymce/html/Node" , x = "tinymce/html/Schema" , w = "tinymce/html/SaxParser" , _ = "tinymce/html/DomParser" , N = "tinymce/html/Writer" , E = "tinymce/html/Serializer" , k = "tinymce/dom/Serializer" , S = "tinymce/dom/TridentSelection" , T = "tinymce/util/VK" , R = "tinymce/dom/ControlSelection" , A = "tinymce/dom/Selection" , B = "tinymce/dom/RangeUtils" , L = "tinymce/Formatter" , H = "tinymce/UndoManager" , D = "tinymce/EnterKey" , M = "tinymce/ForceBlocks" , P = "tinymce/EditorCommands" , O = "tinymce/util/URI" , I = "tinymce/util/Class" , F = "tinymce/ui/Selector" , z = "tinymce/ui/Collection" , W = "tinymce/ui/DomUtils" , V = "tinymce/ui/Control" , U = "tinymce/ui/Factory" , q = "tinymce/ui/Container" , $ = "tinymce/ui/DragHelper" , j = "tinymce/ui/Scrollable" , K = "tinymce/ui/Panel" , G = "tinymce/ui/Movable" , Y = "tinymce/ui/Resizable" , X = "tinymce/ui/FloatPanel" , J = "tinymce/ui/KeyboardNavigation" , Q = "tinymce/ui/Window" , Z = "tinymce/ui/MessageBox" , et = "tinymce/WindowManager" , tt = "tinymce/util/Quirks" , nt = "tinymce/util/Observable" , rt = "tinymce/Shortcuts" , it = "tinymce/Editor" , ot = "tinymce/util/I18n" , at = "tinymce/FocusManager" , st = "tinymce/EditorManager" , lt = "tinymce/LegacyInput" , ct = "tinymce/util/XHR" , ut = "tinymce/util/JSON" , dt = "tinymce/util/JSONRequest" , ft = "tinymce/util/JSONP" , pt = "tinymce/util/LocalStorage" , ht = "tinymce/Compat" , mt = "tinymce/ui/Layout" , gt = "tinymce/ui/AbsoluteLayout" , vt = "tinymce/ui/Tooltip" , yt = "tinymce/ui/Widget" , bt = "tinymce/ui/Button" , Ct = "tinymce/ui/ButtonGroup" , xt = "tinymce/ui/Checkbox" , wt = "tinymce/ui/PanelButton" , _t = "tinymce/ui/ColorButton" , Nt = "tinymce/ui/ComboBox" , Et = "tinymce/ui/Path" , kt = "tinymce/ui/ElementPath" , St = "tinymce/ui/FormItem" , Tt = "tinymce/ui/Form" , Rt = "tinymce/ui/FieldSet" , At = "tinymce/ui/FilePicker" , Bt = "tinymce/ui/FitLayout" , Lt = "tinymce/ui/FlexLayout" , Ht = "tinymce/ui/FlowLayout" , Dt = "tinymce/ui/FormatControls" , Mt = "tinymce/ui/GridLayout" , Pt = "tinymce/ui/Iframe" , Ot = "tinymce/ui/Label" , It = "tinymce/ui/Toolbar" , Ft = "tinymce/ui/MenuBar" , zt = "tinymce/ui/MenuButton" , Wt = "tinymce/ui/ListBox" , Vt = "tinymce/ui/MenuItem" , Ut = "tinymce/ui/Menu" , qt = "tinymce/ui/Radio" , $t = "tinymce/ui/ResizeHandle" , jt = "tinymce/ui/Spacer" , Kt = "tinymce/ui/SplitButton" , Gt = "tinymce/ui/StackLayout" , Yt = "tinymce/ui/TabPanel" , Xt = "tinymce/ui/TextBox" , Jt = "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 = function ( ) { o . isDefaultPrevented = r , e && ( e . preventDefault ? e . preventDefault ( ) : e . returnValue = ! 1 ) } , o . stopPropagation = function ( ) { o .
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 ) { return ( o = o || a ) ? ( o = p ( o ) , "'" + o . replace ( /\'/g , "\\'" ) + "'" ) : ( n = p ( n || r || i ) , ! e . allow _script _urls && /(java|vb)script:/i . test ( n . replace ( /[\s\r\n]+/ , "" ) ) ? "" : ( 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 , "" ) , 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 , n ) { return n ? "array" == n && g ( e ) ? ! 0 : typeof e == n : e !== t } function n ( e ) { var t = [ ] , n , r ; for ( n = 0 , r = e . length ; r > n ; n ++ ) t [ n ] = e [ n ] ; return t } function r ( 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 i ( 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 o ( e , t ) { var n = [ ] ; return i ( e , function ( e ) { n . push ( t ( e ) ) } ) , n } function a ( e , t ) { var n = [ ] ; return i ( e , function ( e ) { ( ! t || t ( e ) ) && n . push ( e ) } ) , n } function s ( 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 , this . onCreate && this . onCreate ( e [ 2 ] , e [ 3 ] , o [ a ] ) , void 0 ; t [ a ] || ( t [ a ] = function ( ) { } , c = 1 ) , o [ a ] = t [ a ] , r . extend ( o [ a ] . prototype , t ) , e [ 5 ] && ( i = r . resolve ( e [ 5 ] ) . prototype , s = e [ 5 ] . match ( /\.(\w+)$/i ) [ 1 ] , l = o [ a ] , o [ a ] = c ? function ( ) { return i [ s ] . apply ( this , arguments ) } : function ( ) { return this . parent = i [ s ] , l . apply ( this , arguments ) } , o [ a ] . prototype [ a ] = o [ a ] , r . each ( i , function ( e , t ) { o [ a ] . prototype [ t ] = i [ t ] } ) , r . each ( t , function ( e , t ) { i [ t ] ? o [ a ] . prototype [ t ] = function ( ) { return this . parent = i [ t ] , e . apply ( this , arguments ) } : t != a && ( o [ a ] . prototype [ t ] = e ) } ) ) , r . each ( t [ "static" ] , function ( e , t ) { o [ a ] [ t ] = e } ) } } function l ( e , t ) { var n , r ; if ( e ) for ( n = 0 , r = e . length ; r > n ; n ++ ) if ( e [ n ] === t ) return n ; return - 1 } function c ( e , n ) { var r , i , o , a = arguments
} , dependencies : function ( e ) { var t ; return this . lookup [ e ] && ( t = this . lookup [ e ] . dependencies ) , t || [ ] } , requireLangPack : function ( t , n ) { if ( r . language && r . languageLoad !== ! 1 ) { if ( n && new RegExp ( "([, ]|\\b)" + r . language + "([, ]|\\b)" ) . test ( n ) === ! 1 ) return ; e . ScriptLoader . add ( this . urls [ t ] + "/langs/" + r . language + ".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 && ( s ? a . call ( s ) : a . call ( 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 ( C , [ ] , 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 . value , n . shortEnded = e . shortEnded , n } , wrap : function ( e ) { var t = this ; return t . parent . insert ( e , t ) , e . append ( t ) , t } , unwrap : function ( ) { var e = this , t , n ; for ( t = e . firstChild ; t ; ) n = t . next , e . insert ( t , e , ! 0 ) , t = n ; e . remove ( ) } , remove : function ( ) { var e = this , t = e . parent , n = e . next , r = e . prev ; return t && ( t . firstChild === e ? ( t . firstChild = n , n && ( n . prev = null ) ) : r . next = n , t . lastChild === e ? ( t . lastChild = r , r && ( r . next = null ) ) : n . prev = r , e . parent = e . next = e . prev = null ) , e } , append : function ( e ) { var t = this , n ; return e . parent && e . remove ( ) , n = t . lastChild , n ? ( n . next = e , e . prev = n , t . lastChild = e ) : t . lastChild = t . firstChild = e , e . parent = t , e } , insert : function ( e , t , n ) { var r ; return e . parent && e . remove ( ) , r = t . parent || this , n ? ( t === r . firstChild ? r . firstChild = e : t . prev . next = e , e . prev = t . prev , e . next = t , t . prev = e ) : ( t === r . lastChild ? r . lastChild = e : t . next . prev = e , e . next = t . next , e . prev = t , t . next = e ) , e . parent = r , e } , getAll : function ( t ) { var n = this , r , i = [ ] ; for ( r = n . firstChild ; r ; r = e ( r , n ) ) r . name === t && i . push ( r ) ; return i } , empty : function ( ) { var t = this , n , r , i ; if ( t . firstChild ) { for ( n = [ ] , i = t . firstChild ; i ; i = e ( i , t ) ) n . push ( i ) ; for ( r = n . length ; r -- ; ) i = n [ r ] , i . parent = i . firstChild = i . lastChild = i . next = i . prev = null } return t . firstChild = t . lastChild = null , t } , isEmpty : function ( t ) { var r = this , i = r . firstChild , o , a ; if ( i ) do { if ( 1 === i . type ) { if ( i . attributes . map [ "data-mce-bogus" ] ) continue ; if ( t [ i . name ] ) return ! 1 ; for ( o = i . attributes . length ; o -- ; ) if ( a = i . attributes [ o ] . name , "name" === a || 0 === a . indexOf ( "data-mce-" ) ) return ! 1 } if ( 8 === i . type ) return ! 1 ; if ( 3 === i . type && ! n . test ( i . value ) ) return ! 1 } while ( i = e ( i , r ) ) ; return ! 0 } , walk : function ( t ) { return e ( this , null , t ) } } , t . create = function ( e , n ) { var i , o ; if ( i = new t ( e , r [ e ] || 1 ) , n ) for ( o in n ) i . attr ( o , n [ o ] ) ; return i } , t } ) , r ( x , [ p ] , function ( e ) { function t ( e , t ) { return e ? e . split ( t || " " ) : [ ] } function n ( e ) { function n ( e , n , r ) { function i ( e ) { var t = { } , n , r ; for ( n = 0 , r = e . length ; r > n ; n ++ ) t [ e [ n ] ] = { } ; return t } var o , l , c , u = arguments ; for ( r = r || [ ] , n = n || "" , "string" == typeof r && ( r = t ( r ) ) , l = 3 ; l < u . length ; l ++ ) "string" == typeof u [ l ] && ( u [ l ] = t ( u [ l ] ) ) , r . push . apply ( r , u [ l ] ) ; for ( e = t ( e ) , o = e . length ; o -- ; ) c = [ ] . concat ( s
} 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 = "" , d && ( d . innerHTML = "" ) , void 0 ; l = i . nodeIndex ( s ) , s = s . parentNode } if ( l == u - 1 ) try { if ( m = s . childNodes [ l ] , a = p . createControlRange ( ) , a . addElement ( m ) , a . select ( ) , h = e . getRng ( ) , h . item && m === h . item ( 0 ) ) return } catch ( g ) { } } n ( ! 0 ) , n ( ) , r . select ( ) } , this . getRangeAt = n } return e } ) , r ( T , [ g ] , function ( e ) { return { BACKSPACE : 8 , DELETE : 46 , DOWN : 40 , ENTER : 13 , LEFT : 37 , RIGHT : 39 , SPACEBAR : 32 , TAB : 9 , UP : 38 , modifierPressed : function ( e ) { return e . shiftKey || e . ctrlKey || e . altKey } , metaKeyPressed : function ( t ) { return ( e . mac ? t . metaKey : t . ctrlKey ) && ! t . altKey } } } ) , r ( R , [ T , p , g ] , function ( e , t , n ) { return function ( r , i ) { function o ( e ) { return i . settings . object _resizing === ! 1 ? ! 1 : /TABLE|IMG|DIV/ . test ( e . nodeName ) ? "false" === e . getAttribute ( "data-mce-resize" ) ? ! 1 : ! 0 : ! 1 } function a ( t ) { var n , r ; n = t . screenX - k , r = t . screenY - S , D = n * N [ 2 ] + A , M = r * N [ 3 ] + B , D = 5 > D ? 5 : D , M = 5 > M ? 5 : M , ( e . modifierPressed ( t ) || "IMG" == x . nodeName && N [ 2 ] * N [ 3 ] !== 0 ) && ( D = Math . round ( M / L ) , M = Math . round ( D * L ) ) , b . setStyles ( w , { width : D , height : M } ) , N [ 2 ] < 0 && w . clientWidth <= D && b . setStyle ( w , "left" , T + ( A - D ) ) , N [ 3 ] < 0 && w . clientHeight <= M && b . setStyle ( w , "top" , R + ( B - M ) ) , H || ( i . fire ( "ObjectResizeStart" , { target : x , width : A , height : B } ) , H = ! 0 ) } function s ( ) { function e ( e , t ) { t && ( x . style [ e ] || ! i . schema . isValid ( x . nodeName . toLowerCase ( ) , e ) ? b . setStyle ( x , e , t ) : b . setAttrib ( x , e , t ) ) } H = ! 1 , e ( "width" , D ) , e ( "height" , M ) , b . unbind ( P , "mousemove" , a ) , b . unbind ( P , "mouseup" , s ) , O != P && ( b . unbind ( O , "mousemove" , a ) , b . unbind ( O , "mouseup" , s ) ) , b . remove ( w ) , I && "TABLE" != x . nodeName || l ( x ) , i . fire ( "ObjectResized" , { target : x , width : D , height : M } ) , i . nodeChanged ( ) } function l ( e , t , n ) { var r , l , u , d , f , p = i . getBody ( ) ; r = b . getPos ( e , p ) , T = r . x , R = r . y , f = e . getBoundingClientRect ( ) , l = f . width || f . right - f . left , u = f . height || f . bottom - f . top , x != e && ( m ( ) , x = e , D = M = 0 ) , d = i . fire ( "ObjectSelected" , { target : e } ) , o ( e ) && ! d . isDefaultPrevented ( ) ? C ( _ , function ( e , r ) { function o ( t ) { H = ! 0 , k = t . screenX , S = t . screenY , A = x . clientWidth , B = x . clientHeight , L = B / A , N = e , w = x . cloneNode ( ! 0 ) , b . addClass ( w , "mce-clonedresizable" ) , w . contentEditable = ! 1 , w . unSelectabe = ! 0 , b . setStyles ( w , { left : T , top : R , margin : 0 } ) , w . removeAttribute ( "data-mce-selected" ) , i . getBody ( )
for ( i = r . length - 1 ; i >= 0 ; i -- ) if ( I . is ( r [ i ] , s ) ) return G } return K } function C ( e , t , n ) { var i ; return Y || ( Y = { } , i = { } , r . on ( "NodeChange" , function ( e ) { var t = o ( e . element ) , n = { } ; et ( Y , function ( e , r ) { et ( t , function ( o ) { return g ( o , r , { } , e . similar ) ? ( i [ r ] || ( et ( e , function ( e ) { e ( ! 0 , { node : o , format : r , parents : t } ) } ) , i [ r ] = e ) , n [ r ] = e , ! 1 ) : void 0 } ) } ) , et ( i , function ( r , o ) { n [ o ] || ( delete i [ o ] , et ( r , function ( n ) { n ( ! 1 , { node : e . element , format : o , parents : t } ) } ) ) } ) } ) ) , et ( e . split ( "," ) , function ( e ) { Y [ e ] || ( Y [ e ] = [ ] , Y [ e ] . similar = n ) , Y [ e ] . push ( t ) } ) , this } function x ( e , t ) { return w ( e , t . inline ) ? G : w ( e , t . block ) ? G : t . selector ? 1 == e . nodeType && I . is ( e , t . selector ) : void 0 } function w ( e , t ) { return e = e || "" , t = t || "" , e = "" + ( e . nodeName || e ) , t = "" + ( t . nodeName || t ) , e . toLowerCase ( ) == t . toLowerCase ( ) } function _ ( e , t ) { return N ( I . getStyle ( e , t ) , t ) } function N ( e , t ) { return ( "color" == t || "backgroundColor" == t ) && ( e = I . toHex ( e ) ) , "fontWeight" == t && 700 == e && ( e = "bold" ) , "fontFamily" == t && ( e = e . replace ( /[\'\"]/g , "" ) . replace ( /,\s+/g , "," ) ) , "" + e } function E ( e , t ) { return "string" != typeof e ? e = e ( t ) : t && ( e = e . replace ( /%(\w+)/g , function ( e , n ) { return t [ n ] || e } ) ) , e } function k ( e ) { return e && 3 === e . nodeType && /^([\t \r\n]+|)$/ . test ( e . nodeValue ) } function S ( e , t , n ) { var r = I . create ( t , n ) ; return e . parentNode . insertBefore ( r , e ) , r . appendChild ( e ) , r } function T ( t , n , a ) { function s ( e ) { function t ( e ) { return "BR" == e . nodeName && e . getAttribute ( "data-mce-bogus" ) && ! e . nextSibling } var r , i , o , a , s ; if ( r = i = e ? g : y , a = e ? "previousSibling" : "nextSibling" , s = I . getRoot ( ) , 3 == r . nodeType && ! k ( r ) && ( e ? v > 0 : b < r . nodeValue . length ) ) return r ; for ( ; ; ) { if ( ! n [ 0 ] . block _expand && V ( i ) ) return i ; for ( o = i [ a ] ; o ; o = o [ a ] ) if ( ! L ( o ) && ! k ( o ) && ! t ( o ) ) return i ; if ( i . parentNode == s ) { r = i ; break } i = i . parentNode } return r } function l ( e , t ) { for ( t === X && ( t = 3 === e . nodeType ? e . length : e . childNodes . length ) ; e && e . hasChildNodes ( ) ; ) e = e . childNodes [ t ] , e && ( t = 3 === e . nodeType ? e . length : e . childNodes . length ) ; return { node : e , offset : t } } function c ( e ) { for ( var t = e ; t ; ) { if ( 1 === t . nodeType && J ( t ) ) return "false" === J ( t ) ? t : e ; t = t . parentNode } return e } function u ( t , n , i ) { function o ( e , t ) { var n , r , o = e . nodeValue ; return "undefined" == typeof t && ( t = i ? o . length : 0 ) , i ? ( n = o . lastIndexOf ( " " , t ) , r = o . lastIndexOf ( "\xa0" , t ) , n = n > r ? n : r , - 1 === n || a || n ++ ) : ( n = o . indexOf ( " " , t ) , r = o . indexOf ( "\xa0" , t ) , n = - 1 !== n && ( - 1 === r || r > n ) ? n : r ) , n } var s , l , c , u ; if ( 3 === t . nodeType ) { if ( c = o ( t , n ) , - 1 !== c ) return { container : t , offset : c } ; u = t } for ( s = new e ( t , I . getParent ( t , V ) || r . getBody ( ) ) ; l = s [ i ? "prev" : "next" ] ( ) ; ) if ( 3 === l . nodeType ) { if ( u = l , c = o ( l ) , - 1 !== c ) return { container : l , offset : c } } else if ( V ( l ) ) break ; return u ? ( n = i ? 0 : u . length , { container : u , offset : n } ) : void 0 } function d ( e , r ) { var i , a , s , l ; for ( 3 == e . nodeType && 0 === e . nodeValue . length && e [ r ] && ( e = e [ r ] ) , i = o ( e ) , a = 0 ; a < i . length ; a ++ ) for ( s = 0 ; s < n . length ; s ++ ) if ( l = n [ s ] , ! ( "collapsed" in l && l . collapsed !== t . collapsed ) && I . is ( i [ a ] , l . selector ) ) return i [ a ] ; return e } function f ( e , t ) { var r , a = I . getRoot ( ) ; if ( n [ 0 ] . wrapper || ( r = I . getParent ( e , n [ 0 ] . block ) ) , r || ( r = I . getParent ( 3 == e . nodeType ? e . parentNode : e , function ( e ) { return e != a && i ( e ) } ) ) , r && n [ 0 ] . wrapper && ( r = o ( r , "ul,ol" ) . reverse ( ) [ 0 ] || r ) , ! r ) for ( r = e ; r [ t ] && ! V ( r [ t ] ) && ( r = r [ t ] , ! w ( r , "br" ) ) ; ) ; return r || e } var p , h , m , g = t . startContainer , v = t . startOffset , y = t . endContainer , b = t . endOffset ; if ( 1 == g . nodeType && g . hasChildNodes ( ) && ( p = g . childNodes . length - 1 , g = g . childNodes [ v > p ? p : v ] , 3 == g . nodeType && ( v = 0 ) ) , 1 == y . nodeType && y . hasChildNodes ( ) && ( p = y . childNodes . length - 1 , y = y . childNodes [ b > p ? p : b - 1 ] , 3 == y . nodeType && ( b = y . nodeValue . length ) ) , g = c ( g ) , y = c ( y ) , ( L ( g . parentNode ) || L ( g ) ) && ( g = L ( g ) ? g : g . parentNode , g = g . nextSibling || g , 3 == g . nodeType && ( v = 0 ) ) , ( L ( y . parentNode ) || L ( y ) ) && ( y = L ( y ) ? y : y . parentNode , y = y . previousSibling || y , 3 == y . nodeType && ( b = y . length ) ) , n [ 0 ] . inline && ( t . collapsed && ( m = u ( g , v , ! 0 ) , m && ( g = m . container , v = m . offset ) , m = u ( y , b ) , m && ( y = m . container , b = m . offset ) ) , h = l ( y , b ) , h . node ) ) { for ( ; h . node && 0 === h . offset && h . node . previousSibling ; ) h = l ( h . node . previousSibling ) ; h . node && h . offset > 0 && 3 === h . node . nodeType && " " === h . node . nodeValue . charAt ( h . offset - 1 ) && h . offset > 1 && ( y = h . node , y . splitText ( h . offset - 1 ) ) } return ( n [ 0 ] . inline || n [ 0 ] . block _expand ) && ( n [ 0 ] . inline && 3 == g . nodeType && 0 !== v || ( g = s ( ! 0 ) ) , n [ 0 ] . inline && 3 == y . nodeType && b !== y . nodeValue . length || ( y = s ( ) ) ) , n [ 0 ] . selector && n [ 0 ] . expand !== K && ! n [ 0 ] . inline && ( g = d ( g , "previousSibling" ) , y = d ( y , "nextSibling" ) ) , ( n [ 0 ] . block || n [ 0 ] . selector )
} , t } ) , r ( F , [ I ] , function ( e ) { function t ( e ) { for ( var t = [ ] , n = e . length , r ; n -- ; ) r = e [ n ] , r . _ _checked || ( t . push ( r ) , r . _ _checked = 1 ) ; for ( n = t . length ; n -- ; ) delete t [ n ] . _ _checked ; return t } var n = /^([\w\\*]+)?(?:#([\w\\]+))?(?:\.([\w\\\.]+))?(?:\[\@?([\w\\]+)([\^\$\*!~]?=)([\w\\]+)\])?(?:\:(.+))?/i , r = /((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g , i = /^\s*|\s*$/g , o , a = e . extend ( { init : function ( e ) { function t ( e ) { return e ? ( e = e . toLowerCase ( ) , function ( t ) { return "*" === e || t . type === e } ) : void 0 } function o ( e ) { return e ? function ( t ) { return t . _name === e } : void 0 } function a ( e ) { return e ? ( e = e . split ( "." ) , function ( t ) { for ( var n = e . length ; n -- ; ) if ( ! t . hasClass ( e [ n ] ) ) return ! 1 ; return ! 0 } ) : void 0 } function s ( e , t , n ) { return e ? function ( r ) { var i = r [ e ] ? r [ e ] ( ) : "" ; return t ? "=" === t ? i === n : "*=" === t ? i . indexOf ( n ) >= 0 : "~=" === t ? ( " " + i + " " ) . indexOf ( " " + n + " " ) >= 0 : "!=" === t ? i != n : "^=" === t ? 0 === i . indexOf ( n ) : "$=" === t ? i . substr ( i . length - n . length ) === n : ! 1 : ! ! n } : void 0 } function l ( e ) { var t ; return e ? ( e = /(?:not\((.+)\))|(.+)/i . exec ( e ) , e [ 1 ] ? ( t = u ( e [ 1 ] , [ ] ) , function ( e ) { return ! d ( e , t ) } ) : ( e = e [ 2 ] , function ( t , n , r ) { return "first" === e ? 0 === n : "last" === e ? n === r - 1 : "even" === e ? n % 2 === 0 : "odd" === e ? n % 2 === 1 : t [ e ] ? t [ e ] ( ) : ! 1 } ) ) : void 0 } function c ( e , r , c ) { function u ( e ) { e && r . push ( e ) } var d ; return d = n . exec ( e . replace ( i , "" ) ) , u ( t ( d [ 1 ] ) ) , u ( o ( d [ 2 ] ) ) , u ( a ( d [ 3 ] ) ) , u ( s ( d [ 4 ] , d [ 5 ] , d [ 6 ] ) ) , u ( l ( d [ 7 ] ) ) , r . psuedo = ! ! d [ 7 ] , r . direct = c , r } function u ( e , t ) { var n = [ ] , i , o , a ; do if ( r . exec ( "" ) , o = r . exec ( e ) , o && ( e = o [ 3 ] , n . push ( o [ 1 ] ) , o [ 2 ] ) ) { i = o [ 3 ] ; break } while ( o ) ; for ( i && u ( i , t ) , e = [ ] , a = 0 ; a < n . length ; a ++ ) ">" != n [ a ] && e . push ( c ( n [ a ] , [ ] , ">" === n [ a - 1 ] ) ) ; return t . push ( e ) , t } var d = this . match ; this . _selectors = u ( e , [ ] ) } , match : function ( e , t ) { var n , r , i , o , a , s , l , c , u , d , f , p , h ; for ( t = t || this . _selectors , n = 0 , r = t . length ; r > n ; n ++ ) { for ( a = t [ n ] , o = a . length , h = e , p = 0 , i = o - 1 ; i >= 0 ; i -- ) for ( c = a [ i ] ; h ; ) { if ( c . psuedo ) for ( f = h . parent ( ) . items ( ) , u = d = f . length ; u -- && f [ u ] !== h ; ) ; for ( s = 0 , l = c . length ; l > s ; s ++ ) if ( ! c [ s ] ( h , u , d ) ) { s = l + 1 ; break } if ( s === l ) { p ++ ; break } if ( i === o - 1 ) break ; h = h . parent ( ) } if ( p === o ) return ! 0 } return ! 1 } , find : function ( e ) { function n ( e , t , i ) { var o , a , s , l , c , u = t [ i ] ; for ( o = 0 , a = e . length ; a > o ; o ++ ) { for ( c = e [ o ] , s = 0 , l = u . length ; l > s ; s ++ ) if ( ! u [ s ] ( c , o , a ) ) { s = l + 1 ; break } if ( s === l ) i == t . length - 1 ? r . push ( c ) : c . items && n ( c . items ( ) , t , i + 1 ) ; else if ( u . direct ) return ; c . items && n ( c . items ( ) , t , i ) } } var r = [ ] , i , s , l = this . _selectors ; if ( e . items ) { for ( i = 0 , s = l . length ; s > i ; i ++ ) n ( e . items ( ) , l [ i ] , 0 ) ; s > 1 && ( r = t ( r ) ) } return o || ( o = a . Collection ) , new o ( r ) } } ) ; return a } ) , r ( z , [ p , F , I ] , function ( e , t , n ) { var r , i , o = Array . prototype . push , a = Array . prototype . slice ; return i = { length : 0 , init : function ( e ) { e && this . add ( e ) } , add : function ( t ) { var n = this ; return e . isArray ( t ) ? o . apply ( n , t ) : t instanceof r ? n . add ( t . toArray ( ) ) : o . call ( n , t ) , n } , set : function ( e ) { var t = this , n = t . length , r ; for ( t . length = 0 , t . add ( e ) , r = t . length ; n > r ; r ++ ) delete t [ r ] ; return t } , filter : function ( e ) { var n = this , i , o , a = [ ] , s , l ; for ( "string" == typeof e ? ( e = new t ( e ) , l = function ( t ) { return e . match ( t ) } ) : l = e , i = 0 , o = n . length ; o > i ; i ++ ) s = n [ i ] , l ( s ) && a . push ( s ) ; return new r ( a ) } , slice : function ( ) { return new r ( a . apply ( this , arguments ) ) } , eq : function ( e ) { return - 1 === e ? this . slice ( e ) : this . slice ( e , + e + 1 ) } , each : function ( t ) { return e . each ( this , t ) , this } , toArray : function ( ) { return e . toArray ( this ) } , indexOf : function ( e ) { for ( var t = this , n = t . length ; n -- && t [ n ] !== e ; ) ; return n } , reverse : function ( ) { return new r ( e . toArray ( this ) . reverse ( ) ) } , hasClass : function ( e ) { return this [ 0 ] ? this [ 0 ] . hasClass ( e ) : ! 1 } , prop : function ( e , t ) { var n = this , r , i ; return t !== r ? ( n . each ( function ( n ) { n [ e ] && n [ e ] ( t ) } ) , n ) : ( i = n [ 0 ] , i && i [ e ] ? i [ e ] ( ) : void 0 ) } , exec : function ( t ) { var n = this , r = e . toArray ( arguments ) . slice ( 1 ) ; return n . each ( function ( e ) { e [ t ] && e [ t ] . apply ( e , r ) } ) , n } , remove : function ( ) { for ( var e = this . length ; e -- ; ) this [ e ] . remove ( ) ; return this } } , e . each ( "fire on off show hide addClass removeClass append prepend before after reflow" . split ( " " ) , function ( t ) { i [ t ] = function ( ) { var n = e . toArray ( arguments ) ; return this . each ( function ( e ) { t in e && e [ t ] . apply ( e , n ) } ) , this } } ) , e . each ( "text name disabled active selected checked visible parent value data" . split ( " " ) , function ( e ) { i [ e ] = function ( t ) { return this . prop ( e , t ) } } ) , r = n . extend ( i ) , t . Collection = r , r } ) , r ( W , [ p , v ] , function ( e , t ) { return { id : function ( )
var s = n . getWindowSize ( ) ; t . moveTo ( 0 , 0 ) . resizeTo ( s . w , s . h ) } else t . _borderBox = t . parseBox ( t . settings . border ) , t . getEl ( "head" ) . style . display = "" , a . deltaH += a . headerH , n . removeClass ( r , o + "fullscreen" ) , n . removeClass ( document . body , o + "fullscreen" ) , t . removeClass ( "fullscreen" ) , t . moveTo ( t . _initial . x , t . _initial . y ) . resizeTo ( t . _initial . w , t . _initial . h ) ; return t . reflow ( ) } , postRender : function ( ) { var e = this , t = [ ] , n , o , a ; setTimeout ( function ( ) { e . addClass ( "in" ) } , 0 ) , e . keyboardNavigation = new r ( { root : e , enableLeftRight : ! 1 , enableUpDown : ! 1 , items : t , onCancel : function ( ) { e . close ( ) } } ) , e . find ( "*" ) . each ( function ( e ) { e . canFocus && ( o = o || e . settings . autofocus , n = n || e , "filepicker" == e . type ? ( t . push ( e . getEl ( "inp" ) ) , e . getEl ( "open" ) && t . push ( e . getEl ( "open" ) ) ) : t . push ( e . getEl ( ) ) ) } ) , e . statusbar && e . statusbar . find ( "*" ) . each ( function ( e ) { e . canFocus && ( o = o || e . settings . autofocus , n = n || e , t . push ( e . getEl ( ) ) ) } ) , e . _super ( ) , e . statusbar && e . statusbar . postRender ( ) , ! o && n && n . focus ( ) , this . dragHelper = new i ( e . _id + "-dragh" , { start : function ( ) { a = { x : e . layoutRect ( ) . x , y : e . layoutRect ( ) . y } } , drag : function ( t ) { e . moveTo ( a . x + t . deltaX , a . y + t . deltaY ) } } ) , e . on ( "submit" , function ( t ) { t . isDefaultPrevented ( ) || e . close ( ) } ) } , submit : function ( ) { return this . fire ( "submit" , { data : this . toJSON ( ) } ) } , remove : function ( ) { var e = this , t = e . classPrefix ; e . dragHelper . destroy ( ) , e . _super ( ) , e . statusbar && this . statusbar . remove ( ) , e . _fullscreen && ( n . removeClass ( document . documentElement , t + "fullscreen" ) , n . removeClass ( document . body , t + "fullscreen" ) ) } } ) ; return o } ) , r ( Z , [ Q ] , function ( e ) { var t = e . extend ( { init : function ( e ) { e = { border : 1 , padding : 20 , layout : "flex" , pack : "center" , align : "center" , containerCls : "panel" , autoScroll : ! 0 , buttons : { type : "button" , text : "Ok" , action : "ok" } , items : { type : "label" , multiline : ! 0 , maxWidth : 500 , maxHeight : 200 } } , this . _super ( e ) } , Statics : { OK : 1 , OK _CANCEL : 2 , YES _NO : 3 , YES _NO _CANCEL : 4 , msgBox : function ( n ) { var r , i = n . callback || function ( ) { } ; switch ( n . buttons ) { case t . OK _CANCEL : r = [ { type : "button" , text : "Ok" , subtype : "primary" , onClick : function ( e ) { e . control . parents ( ) [ 1 ] . close ( ) , i ( ! 0 ) } } , { type : "button" , text : "Cancel" , onClick : function ( e ) { e . control . parents ( ) [ 1 ] . close ( ) , i ( ! 1 ) } } ] ; break ; case t . YES _NO : r = [ { type : "button" , text : "Ok" , subtype : "primary" , onClick : function ( e ) { e . control . parents ( ) [ 1 ] . close ( ) , i ( ! 0 ) } } ] ; break ; case t . YES _NO _CANCEL : r = [ { type : "button" , text : "Ok" , subtype : "primary" , onClick : function ( e ) { e . control . parents ( ) [ 1 ] . close ( ) } } ] ; break ; default : r = [ { type : "button" , text : "Ok" , subtype : "primary" , onClick : function ( e ) { e . control . parents ( ) [ 1 ] . close ( ) , i ( ! 0 ) } } ] } return new e ( { padding : 20 , x : n . x , y : n . y , minWidth : 300 , minHeight : 100 , layout : "flex" , pack : "center" , align : "center" , buttons : r , title : n . title , items : { type : "label" , multiline : ! 0 , maxWidth : 500 , maxHeight : 200 , text : n . text } , onClose : n . onClose } ) . renderTo ( document . body ) . reflow ( ) } , alert : function ( e , n ) { return "string" == typeof e && ( e = { text : e } ) , e . callback = n , t . msgBox ( e ) } , confirm : function ( e , n ) { return "string" == typeof e && ( e = { text : e } ) , e . callback = n , e . buttons = t . OK _CANCEL , t . msgBox ( e ) } } } ) ; return t } ) , r ( et , [ Q , Z ] , function ( e , t ) { return function ( n ) { function r ( ) { return o . length ? o [ o . length - 1 ] : void 0 } var i = this , o = [ ] ; i . windows = o , i . open = function ( t , r ) { var i ; return n . editorManager . activeEditor = n , t . title = t . title || " " , t . url = t . url || t . file , t . url && ( t . width = parseInt ( t . width || 320 , 10 ) , t . height = parseInt ( t . height || 240 , 10 ) ) , t . body && ( t . items = { defaults : t . defaults , type : t . bodyType || "form" , items : t . body } ) , t . url || t . buttons || ( t . buttons = [ { text : "Ok" , subtype : "primary" , onclick : function ( ) { i . find ( "form" ) [ 0 ] . submit ( ) , i . close ( ) } } , { text : "Cancel" , onclick : function ( ) { i . close ( ) } } ] ) , i = new e ( t ) , o . push ( i ) , i . on ( "close" , function ( ) { for ( var e = o . length ; e -- ; ) o [ e ] === i && o . splice ( e , 1 ) ; n . focus ( ) } ) , t . data && i . on ( "postRender" , function ( ) { this . find ( "*" ) . each ( function ( e ) { var n = e . name ( ) ; n in t . data && e . value ( t . data [ n ] ) } ) } ) , i . features = t || { } , i . params = r || { } , n . nodeChanged ( ) , i . renderTo ( document . body ) . reflow ( ) } , i . alert = function ( e , n , r ) { t . alert ( e , function ( ) { n && n . call ( r || this ) } ) } , i . confirm = function ( e , n , r ) { t . confirm ( e , function ( e ) { n . call ( r || this , e ) } ) } , i . close = function ( ) { r ( ) && r ( ) . close ( ) } , i . getParams = function ( ) { return r ( ) ? r ( ) . params : null } , i . setParams = function ( e ) { r ( ) && ( r ( ) . params = e ) } } } ) , r ( tt , [ T , B , C , m , g , p ] , function ( e , t , n , r , i , o ) { return function ( a ) { functi
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 ) , e . content = "text" != e . format ? L ( n ) : n , e . no _events || t . fire ( "GetContent" , e ) , e . content } , insertContent : function ( e ) { this . execCommand ( "mceInsertContent" , ! 1 , e ) } , isDirty : function ( ) { return ! this . isNotDirty } , getContainer : function ( ) { var e = this ; return e . container || ( e . container = E . get ( e . editorContainer || e . id + "_parent" ) ) , e . container } , getContentAreaContainer : function ( ) { return this . contentAreaContainer } , getElement : function ( ) { return E . get ( this . settings . content _element || this . id ) } , getWin : function ( ) { var e = this , t ; return e . contentWindow || ( t = E . get ( e . id + "_ifr" ) , t && ( e . contentWindow = t . contentWindow ) ) , e . contentWindow } , getDoc : function ( ) { var e = this , t ; return e . contentDocument || ( t = e . getWin ( ) , t && ( e . contentDocument = t . document ) ) , e . contentDocument } , getBody : function ( ) { return this . bodyElement || this . getDoc ( ) . body } , convertURL : function ( e , t , n ) { var r = this , i = r . settings ; return i . urlconverter _callback ? r . execCallback ( "urlconverter_callback" , e , n , ! 0 , t ) : ! i . convert _urls || n && "LINK" == n . nodeName || 0 === e . indexOf ( "file:" ) || 0 === e . length ? e : i . relative _urls ? r . documentBaseURI . toRelative ( e ) : e = r . documentBaseURI . toAbsolute ( e , i . remove _script _host ) } , addVisual : function ( e ) { var n = this , r = n . settings , i = n . dom , o ; e = e || n . getBody ( ) , n . hasVisual === t && ( n . hasVisual = r . visual ) , R ( i . select ( "table,a" , e ) , function ( e ) { var t ; switch ( e . nodeName ) { case "TABLE" : return o = r . visual _table _class || "mce-item-table" , t = i . getAttrib ( e , "border" ) , t && "0" != t || ( n . hasVisual ? i . addClass ( e , o ) : i . removeClass ( e , o ) ) , void 0 ; case "A" : return i . getAttrib ( e , "href" , ! 1 ) || ( t = i . getAttrib ( e , "name" ) || e . id , o = "mce-item-anchor" , t && ( n . hasVisual ? i . addClass ( e , o ) : i . removeClass ( e , o ) ) ) , void 0 } } ) , n . fire ( "VisualAid" , { element : e , hasVisual : n . hasVisual } ) } , remove : function ( ) { var e = this ; if ( ! e . removed ) { e . removed = 1 , e . hasHiddenInput && E . remove ( e . getElement ( ) . nextSibling ) ; var t = e . getDoc ( ) ; P && t && ! e . inline && t . execCommand ( "SelectAll" ) , e . save ( ) , E . setStyle ( e . id , "display" , e . orgDisplay ) , e . settings . content _editable || ( D . unbind ( e . getWin ( ) ) , D . unbind ( e . getDoc ( ) ) ) ; var n = e . getContainer ( ) ; D . unbind ( e . getBody ( ) ) , D . unbind ( n ) , e . fire ( "remove" ) , e . editorManager . remove ( e ) , E . remove ( n ) , e . destroy ( ) } } , bindNative : function ( e ) { var t = this ; t . settings . readonly || ( t . initialized ? t . dom . bind ( _ ( t , e ) , e , function ( n ) { t . fire ( e , n ) } ) : t . _pendingNativeEvents ? t . _pendingNativeEvents . push ( e ) : t . _pendingNativeEvents = [ e ] ) } , unbindNative : function ( e ) { var t = this ; t . initialized && t . dom . unbind ( e ) } , destroy : function ( e ) { var t = this , n ; if ( ! t . destroyed ) { if ( ! e && ! t . removed ) return t . remove ( ) , void 0 ; e && M && ( D . unbind ( t . getDoc ( ) ) , D . unbind ( t . getWin ( ) ) , D . unbind ( t . getBody ( ) ) ) , e || ( t . editorManager . off ( "beforeunload" , t . _beforeUnload ) , t . theme && t . theme . destroy && t . theme . destroy ( ) , t . selection . destroy ( ) , t . dom . destroy ( ) ) , n = t . formElement , n && ( n . _mceOldSubmit && ( n . submit = n . _mceOldSubmit , n . _mceOldSubmit = null ) , E . unbind ( n , "submit reset" , t . formEventDelegate ) ) , t . contentAreaContainer = t . formElement = t . container = null , t . settings . content _element = t . bodyElement = t . contentDocument = t . contentWindow = null , t . selection && ( t . selection = t . selection . win = t . selection . dom = t . selection . dom . doc = null ) , t . destroyed = 1 } } , _refreshContentEditable : function ( ) { var e = this , t , n ; e . _isHidden ( ) && ( t = e . getBody ( ) , n = t . parentNode , n . removeChild ( t ) , n . appendChild ( t ) , t . focus ( ) ) } , _isHidden : function ( ) { var e ; return M ? ( e = this . selection . getSel ( ) , ! e || ! e . rangeCount || 0 === e . rangeCount ) : 0 } } , T ( N . prototype , x ) , N } ) , r ( ot , [ ] , function ( ) { var e = { } ; return { rtl : ! 1 , add : function ( t , n ) { for ( var r in n ) e [ r ] = n [ r ] ; this . rtl = this . rtl || "rtl" === e . _dir } , translate : function ( t ) { if ( "undefined" == typeof t ) return t ; if ( "string" != typeof t && t . raw ) return t . raw ; if ( t . push ) { var n = t . slice ( 1 ) ; t = ( e [ t [ 0 ] ] || t [ 0 ] ) . replace ( /\{([^\}]+)\}/g , function ( e , t ) { return n [ t ] } ) } return e [ t ] || t } , data : e } } ) , r ( at , [ v , g ] , function ( e , t ) { function n ( r ) { function i ( ) { try { return document . activeElement } catch ( e ) { return document . body } } function o ( e ) { return e && e . startContainer ? { startContainer : e . startContainer , startOffset : e . startOffset , endContainer : e . endContainer , endOffset : e . endOffset } : e } function a ( e , t ) { va
return a = { type : "menu" , items : a , onPostRender : function ( t ) { e . fire ( "renderFormatsMenu" , { control : t . control } ) } , itemDefaults : { preview : ! 0 , textStyle : function ( ) { return this . settings . format ? t ( this . settings . format ) : void 0 } , onPostRender : function ( ) { var t = this , n = this . settings . format ; n && t . parent ( ) . on ( "show" , function ( ) { t . disabled ( ! e . formatter . canApply ( n ) ) , t . active ( e . formatter . match ( n ) ) } ) } , onclick : function ( ) { this . settings . format && f ( this . settings . format ) } } } } function a ( ) { return e . undoManager ? e . undoManager . hasUndo ( ) : ! 1 } function l ( ) { return e . undoManager ? e . undoManager . hasRedo ( ) : ! 1 } function c ( ) { var t = this ; t . disabled ( ! a ( ) ) , e . on ( "Undo Redo AddUndo TypingUndo" , function ( ) { t . disabled ( ! a ( ) ) } ) } function u ( ) { var t = this ; t . disabled ( ! l ( ) ) , e . on ( "Undo Redo AddUndo TypingUndo" , function ( ) { t . disabled ( ! l ( ) ) } ) } function d ( ) { var t = this ; e . on ( "VisualAid" , function ( e ) { t . active ( e . hasVisual ) } ) , t . active ( e . hasVisual ) } function f ( t ) { t . control && ( t = t . control . value ( ) ) , t && e . execCommand ( "mceToggleFormat" , ! 1 , t ) } var p ; p = o ( ) , s ( { bold : "Bold" , italic : "Italic" , underline : "Underline" , strikethrough : "Strikethrough" , subscript : "Subscript" , superscript : "Superscript" } , function ( t , n ) { e . addButton ( n , { tooltip : t , onPostRender : function ( ) { var t = this ; e . formatter ? e . formatter . formatChanged ( n , function ( e ) { t . active ( e ) } ) : e . on ( "init" , function ( ) { e . formatter . formatChanged ( n , function ( e ) { t . active ( e ) } ) } ) } , onclick : function ( ) { f ( n ) } } ) } ) , s ( { outdent : [ "Decrease indent" , "Outdent" ] , indent : [ "Increase indent" , "Indent" ] , cut : [ "Cut" , "Cut" ] , copy : [ "Copy" , "Copy" ] , paste : [ "Paste" , "Paste" ] , help : [ "Help" , "mceHelp" ] , selectall : [ "Select all" , "SelectAll" ] , hr : [ "Insert horizontal rule" , "InsertHorizontalRule" ] , removeformat : [ "Clear formatting" , "RemoveFormat" ] , visualaid : [ "Visual aids" , "mceToggleVisualAid" ] , newdocument : [ "New document" , "mceNewDocument" ] } , function ( t , n ) { e . addButton ( n , { tooltip : t [ 0 ] , cmd : t [ 1 ] } ) } ) , s ( { blockquote : [ "Toggle blockquote" , "mceBlockQuote" ] , numlist : [ "Numbered list" , "InsertOrderedList" ] , bullist : [ "Bullet list" , "InsertUnorderedList" ] , subscript : [ "Subscript" , "Subscript" ] , superscript : [ "Superscript" , "Superscript" ] , alignleft : [ "Align left" , "JustifyLeft" ] , aligncenter : [ "Align center" , "JustifyCenter" ] , alignright : [ "Align right" , "JustifyRight" ] , alignjustify : [ "Justify" , "JustifyFull" ] } , function ( t , n ) { e . addButton ( n , { tooltip : t [ 0 ] , cmd : t [ 1 ] , onPostRender : function ( ) { var t = this ; e . formatter ? e . formatter . formatChanged ( n , function ( e ) { t . active ( e ) } ) : e . on ( "init" , function ( ) { e . formatter . formatChanged ( n , function ( e ) { t . active ( e ) } ) } ) } } ) } ) , e . addButton ( "undo" , { tooltip : "Undo" , onPostRender : c , cmd : "undo" } ) , e . addButton ( "redo" , { tooltip : "Redo" , onPostRender : u , cmd : "redo" } ) , e . addMenuItem ( "newdocument" , { text : "New document" , shortcut : "Ctrl+N" , icon : "newdocument" , cmd : "mceNewDocument" } ) , e . addMenuItem ( "undo" , { text : "Undo" , icon : "undo" , shortcut : "Ctrl+Z" , onPostRender : c , cmd : "undo" } ) , e . addMenuItem ( "redo" , { text : "Redo" , icon : "redo" , shortcut : "Ctrl+Y" , onPostRender : u , cmd : "redo" } ) , e . addMenuItem ( "visualaid" , { text : "Visual aids" , selectable : ! 0 , onPostRender : d , cmd : "mceToggleVisualAid" } ) , s ( { cut : [ "Cut" , "Cut" , "Ctrl+X" ] , copy : [ "Copy" , "Copy" , "Ctrl+C" ] , paste : [ "Paste" , "Paste" , "Ctrl+V" ] , selectall : [ "Select all" , "SelectAll" , "Ctrl+A" ] , bold : [ "Bold" , "Bold" , "Ctrl+B" ] , italic : [ "Italic" , "Italic" , "Ctrl+I" ] , underline : [ "Underline" , "Underline" ] , strikethrough : [ "Strikethrough" , "Strikethrough" ] , subscript : [ "Subscript" , "Subscript" ] , superscript : [ "Superscript" , "Superscript" ] , removeformat : [ "Clear formatting" , "RemoveFormat" ] } , function ( t , n ) { e . addMenuItem ( n , { text : t [ 0 ] , icon : n , shortcut : t [ 2 ] , cmd : t [ 1 ] } ) } ) , e . on ( "mousedown" , function ( ) { n . hideAll ( ) } ) , e . addButton ( "styleselect" , { type : "menubutton" , text : "Formats" , menu : p } ) , e . addButton ( "formatselect" , function ( ) { var n = [ ] , o = i ( e . settings . block _formats || "Paragraph=p;Address=address;Pre=pre;Header 1=h1;Header 2=h2;Header 3=h3;Header 4=h4;Header 5=h5;Header 6=h6" ) ; return s ( o , function ( e ) { n . push ( { text : e [ 0 ] , value : e [ 1 ] , textStyle : function ( ) { return t ( e [ 1 ] ) } } ) } ) , { type : "listbox" , text : { raw : o [ 0 ] [ 0 ] } , values : n , fixedWidth : ! 0 , onselect : f , onPostRender : r ( n ) } } ) , e . addButton ( "fontselect" , function ( ) { var t = " Andale Mono = andale mono , times ; Arial = arial , helvetica , sans - serif ; Arial Black = arial black , avant garde ; Book Antiqua = book antiqu