2013-11-14 10:10:41 +01:00
// 4.0.10 (2013-10-28)
! 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 ) { var n , r , i , o ; "none" === h [ "border-image" ] && delete h [ "border-image" ] , n = h [ e + "-top" + t ] , n && ( r = h [ e + "-right" + t ] , n == r && ( i = h [ e + "-bottom" + t ] , r == i && ( o = h [ e + "-left" + t ] , i == o && ( h [ e + t ] = o , delete h [ e + "-top" + t ] , delete h [ e + "-right" + t ] , delete h [ e + "-bottom" + t ] , delete h [ e + "-left" + t ] ) ) ) ) } function l ( e ) { var t = h [ e ] , n ; if ( t && ! ( t . indexOf ( " " ) < 0 ) ) { for ( t = t . split ( " " ) , n = t . length ; n -- ; ) if ( t [ n ] !== t [ 0 ] ) return ! 1 ; return h [ e ] = t [ 0 ] , ! 0 } } function u ( e , t , n , r ) { l ( t ) && l ( n ) && l ( r ) && ( h [ e ] = h [ t ] + " " + h [ n ] + " " + h [ r ] , delete h [ t ] , delete h [ n ] , delete h [ r ] ) } function d ( e ) { return y = ! 0 , c [ e ] } function f ( e , t ) { return y && ( e = e . replace ( /\uFEFF[0-9]/g , function ( e ) { return c [ e ] } ) ) , t || ( e = e . replace ( /\\([\'\";:])/g , "$1" ) ) , e } function p ( t , n , r , i , o , a ) { return ( o = o || a ) ? ( o = f ( o ) , "'" + o . replace ( /\'/g , "\\'" ) + "'" ) : ( n = f ( n || r || i ) , ! e . allow _script _urls && /(java|vb)script:/i . test ( n . replace ( /[\s\r\n]+/ , "" ) ) ? "" : ( b && ( n = b . call ( C , n , "style" ) ) , "url('" + n . replace ( /\'/g , "\\'" ) + "')" ) ) } var h = { } , m , g , v , y , b = e . url _converter , C = e . url _converter _scope || this ; if ( t ) { for ( t = t . replace ( /[\u0000-\u001F]/g , "" ) , t = t . replace ( /\\[\"\';:\uFEFF]/g , d ) . replace ( /\"[^\"]+\"|\'[^\']+\'/g , function ( e ) { return e . replace ( /[;:]/g , d ) } ) ; m = o . exec ( t ) ; ) { if ( g = m [ 1 ] . replace ( a , "" ) . toLowerCase ( ) , v = m [ 2 ] . replace ( a , "" ) , g && v . length > 0 ) { if ( ! e . allow _script _urls && ( "behavior" == g || /expression\s*\(/ . test ( v ) ) ) continue ; "font-weight" === g && "700" === v ? v = "bold" : ( "color" === g || "background-color" === g ) && ( v = v . toLowerCase ( ) ) , v = v . replace ( r , n ) , v = v . replace ( i , p ) , h [ g ] = y ? f ( v , ! 0 ) : v } o . lastIndex = m . index + m [ 0 ] . length } s ( "border" , "" ) , s ( "border" , "-width" ) , s ( "border" , "-color" ) , s ( "border" , "-style" ) , s ( "padding" , "" ) , s ( "margin" , "" ) , u ( "border" , "border-width" , "border-style" , "border-color" ) , "medium none" === h . border && delete h . border } return h } , 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 , s ; for ( r = 1 , i = a . length ; i > r ; r ++ ) { n = a [ r ] ; for ( o in n ) n . hasOwnProp
} , requireLangPack : function ( t ) { r . language && r . languageLoad !== ! 1 && 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 , t ( n ) ) , a [ e [ o ] ] = { attributes : i ( c ) , attributesOrder : c , children : i ( r ) } } function i ( e , n ) { var r , i , o , s ; for ( e = t ( e ) , r = e . length , n = t ( n ) ; r -- ; ) for ( i = a [ e [ r ] ] , o = 0 , s = n . length ; s > o ; o ++ ) i . attribut
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 . ctrlKey || 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 && 0 !== N [ 2 ] * N [ 3 ] ) && ( 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 ( ) . appendChild ( w ) , b . bind ( P , "mousemove" , a ) , b . bind ( P , "mouseup" , s ) , O != P && ( b . bind ( O , " mous
} ) , 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 ) && ( g = f ( g , "previousSibling" ) , y = f ( y , "nextSibling" ) , n [ 0 ] . block && ( V ( g ) || ( g = s ( ! 0 ) ) , V ( y ) || ( y = s ( ) ) ) ) , 1 == g . nodeType && ( v = q ( g ) , g = g . parentNode ) , 1 == y . nodeType && ( b = q ( y ) + 1 , y = y . parentNode ) , { startContainer : g , startOffset : v , endContainer : y , endOffset : b } } function R ( e , t , n , r ) { var i , o , a ; if ( ! x ( n , e ) ) retur
} : 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 ? 0 === n % 2 : "odd" === e ? 1 === n % 2 : 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 ( ) { return t . DOM . uniqueId ( ) } , createFragment : function ( e ) { return t . DOM . createFragment ( e ) } , getWindowSize : function ( ) { return t . DOM . getViewPort ( ) } , getSize : function ( e ) { var t , n ; if ( e . getBoundingClientRect ) { var r = e . getBoundingClientRect ( ) ; t = Math . max ( r . width || r . right - r . left , e . offsetWidth ) , n = Math . max ( r . height || r . bottom - r . bottom , e . offsetHeight ) } else t = e . offsetWidth , n = e . offsetHeight ; return { width : t , height : n } } , getPos : function ( e , n ) { return t . DOM . getPos ( e , n ) } , getViewPort : function ( e ) { return t . DOM . getViewPort ( e ) } , get : function ( e ) { return document . getElementById ( e ) } , addClass : function ( e , n ) { return t . DOM . addClass ( e , n ) } , removeClass : function ( e , n ) { return t . DOM . removeClass ( e , n ) } , hasClass : function ( e , n ) { return t . DOM . hasClass ( e , n ) } , toggleClass : function ( e , n , r ) { return t . DOM . toggleClass ( e , n , r ) } , css : function ( e , n , r ) { return t . DOM . setStyle ( e , n , r ) } , on : function ( e , n , r , i ) { return t . DOM . bind ( e , n , r , i ) } , off : function ( e , n , r ) { return t . DOM . unbind ( e , n , r ) } , fire : function ( e , n , r ) { return t . DOM . fire ( e , n , r ) } , innerHtml : fu
} , 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 ; e . dragHelper . destroy ( ) , e . _super ( ) , e . statusbar && this . statusbar . remove ( ) } } ) ; 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 ) { function s ( e , t ) { try { a . getDoc ( ) . execCommand ( e , ! 1 , t ) } catch ( n ) { } } function l ( ) { var e = a . getDoc ( ) . documentMode ; return e ? e : 6 } function c ( e ) { return e . isDefaultPrevented ( ) } function u ( ) { function t ( e ) { function t ( ) { if ( 3 == l . nodeType ) { if ( e && c == l . length ) return ! 0 ; if ( ! e && 0 === c ) return ! 0 } } var n , r , i , s , l , c , u ; n = W . getRng ( ) ; var d = [ n . startContainer , n . startOffset , n . endContainer , n . endOffset ] ; if ( n . collapsed || ( e = ! 0 ) , l = n [ ( e ? "start" : "end" ) + "Container" ] , c = n [ ( e ? "start" : "end" ) + "Offset" ] , 3 == l . nodeType && ( r = z . getParent ( n . startContainer , z . isBlock ) , e && ( r = z . getNext ( r , z . isBlock ) ) , ! r || ! t ( ) && n . collapsed || ( i = z . create ( "em" , { id : "__mceDel" } ) , O ( o . grep ( r . childNodes ) , function ( e ) { i . appendChild ( e ) } ) , r . appendChild ( i ) ) ) , n = z . createRng ( ) , n . setStart ( d [ 0 ] , d [ 1 ] ) , n . setEnd ( d [ 2 ] , d [ 3 ] ) , W . setRng ( n ) , a . getDoc ( ) . execCommand ( e ? "ForwardDelete" : "Delete" , ! 1 , null ) , i ) { for ( s = W . getBookmark ( ) ; u = z . get ( "__mceDel" ) ; ) z . remove ( u , ! 0 ) ; W . moveToBookmark ( s ) } } a . on ( "keydown" , function ( n ) { var r ; r = n . keyCode == F , c ( n ) || ! r && n . keyCode != I || e . modifierPressed ( n ) || ( n . preventDefault ( ) , t ( r ) ) } ) , a . addCommand ( "Delete" , function ( ) { t ( ) } ) } function d ( ) { function e ( e ) { var t = z . create ( "body" ) , n = e . cloneContents ( ) ; return t . appendChild ( n ) , W . serialize
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 && 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 ) { var n ; return t . startContainer ? ( n = e . getDoc ( ) . createRange ( ) , n . setStart ( t . startContainer , t . startOffset ) , n . setEnd ( t . endContainer , t . endOffset ) ) : n = t , n } function s ( s ) { function l ( t ) { return ! ! e . DOM . getParent ( t , n . isEditorUIElement ) } var c = s . editor , u , d ; c . on ( "init" , function ( ) { "onbeforedeactivate" in document && t . ie < 11 ? c . dom . bind ( c . getBody ( ) , "beforedeactivate" , function ( ) { var e = c . getDoc ( ) . selection ; try { u = e && e . createRange ? e . createRange ( ) : c . selection . getRng ( ) } catch ( t ) { } } ) : ( c . inline || t . ie > 10 ) && ( c . on ( "nodechange keyup" , function ( ) { var e , t = document . activeElement ; for ( t && t . id == c . id + "_ifr" && ( t = c . getBody ( ) ) ; t ; ) { if ( t == c . getBody ( ) ) { e = ! 0 ; break } t = t . parentNode } e && ( u = c . selection . getRng ( ) ) } ) , t . webkit && ( d = function ( ) { var e = c . selection . getRng ( ) ; e . collapsed || ( u = e ) } , e . DOM . bind ( document , "selectionchange" , d ) , c . on ( "remove" , function ( ) { e . DOM . unbind ( document , "selectionchange" , d ) } ) ) ) } ) , c . on ( "setcontent" , function ( ) { u = null } ) , c . on ( "mousedown" , function ( ) { c . selection . lastFocusBookmark = null } ) , c . on ( "focusin" , function ( ) { var e = r . focusedEditor ; c . selection . lastFocusBookmark && ( c . selection . setRng ( a ( c , c . selection . lastFocusBookmark ) ) , c . selection . lastFocusBookmark = null ) , e != c && ( e && e . fire ( "blur" , { focusedEditor : c } ) , r . activeEditor = c , c . fire ( "focus" , { blurredEditor : e } ) , c . focus ( ! 1 ) , r . focusedEditor = c ) , u = null } ) , c . on ( "focusout" , function ( ) { c . selection . lastFocusBookmark = o ( u ) , window . setTimeout ( function ( ) { var e = r . focusedEditor ; e != c && ( c . selection . lastFocusBookmark = null ) , l ( i ( ) ) || e != c || ( c . fire ( "blur" , { focusedEditor : null } ) , r . focusedEditor = null , c . selection . lastFocusBookmark = null ) } , 0 ) } ) } r . on ( "AddEditor" , s ) } return n . isEditorUIElement = function ( e ) { return - 1 !== e . className . indexOf ( "mce-" ) } , n } ) , r ( st , [ it , v , O
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 antiqua,palatino;Comic Sans MS=comic sans ms,sans-serif;Courier New=courier new,courier;Georgia=georgia,palatino;Helvetica=helvetica;Impact=impact,chicago;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco;Times New Roman=times new roman,times;Trebuchet MS=trebuchet ms,geneva;Verdana=verdana,geneva;Webdings=webdings;Wingdings=wingdings,zapf dingbats" , n = [ ] , o = i ( e . settings . font _formats || t ) ; return s ( o , function ( e ) { n . push ( { text : { raw : e [ 0 ] } , value : e [ 1 ] , textStyle : - 1 == e [ 1 ] . indexOf ( "dings" ) ? "font-family:" + e [ 1 ] : "" } ) } ) , { type : "listbox" , text : "Font Family" , tooltip : "Font Family" , values : n , fixedWidth : ! 0 , onPostRender : r ( n , "fontname" ) , onselect : function ( t ) { t . control . settings . value && e . execCommand ( "FontName" , ! 1 , t . control . settings . value ) } } } ) , e . addButton ( "fontsizeselect" , function ( ) { var t = [ ] , n = "8pt 10pt 12pt 14pt 18pt 24pt 36pt" , i = e . settings . fontsize _formats || n ; return s ( i . split ( " " ) , function ( e ) { t . push ( { text : e , value : e } ) } ) , { type : "listbox" , text : "Font Sizes" , tooltip : "Font Sizes" , values : t , fixedWidth : ! 0 , onPostRender : r ( t , "fontsize" ) , onclick : function ( t ) { t . control . settings . value && e . execCommand ( "FontSize" , ! 1 , t . control . settings . value ) } } } ) , e . addMenuItem ( "formats" , { text : "Formats" , menu : p } ) } var s = r . each ; i . on ( "AddEditor" , function ( t ) { t . editor . rtl && ( e . rtl = ! 0 ) , a ( t . editor ) } ) , e . translate = function ( e ) { return i . translate ( e ) } , t . tooltips = ! o . iOS } ) , r ( Mt , [ gt ] , function ( e ) { return e . extend ( { recalc : function ( e ) { var t = e . settings , n , r , i , o , a , s , l , c , u , d , f , p , h , m , g , v , y , b , C , x , w , _ , N = [ ] , E = [ ] , k , S , T , R , A , B ; for ( t = e . settings , i = e . items ( ) . filter ( ":visible" ) , o = e . layoutRect ( ) , r = t . columns || Math . ceil ( Math . sqrt ( i . length ) ) , n = Math . ceil ( i . length / r ) , y = t . spacingH || t . spacing || 0 , b = t . spacingV || t . spacing || 0 , C = t . alignH || t . align , x = t . alignV || t . align , g = e . _paddingBox , C && "string" == typeof C && ( C = [ C ] ) , x && "string" == typeof x && ( x = [ x ] ) , d = 0 ; r > d ; d ++ ) N . push ( 0 ) ; for ( f = 0 ; n > f ; f ++ ) E . push ( 0 ) ; for ( f = 0 ; n > f ; f ++ ) for ( d = 0 ; r > d && ( u = i [ f * r + d ] , u ) ; d ++ ) c = u . layoutRect ( ) , k = c . minW , S = c . minH , N [ d ] = k > N [ d ] ? k : N [ d ] , E [ f ] = S > E [ f ] ? S : E [ f ] ; for ( A = o . innerW - g . left - g . right , w = 0 , d = 0 ; r > d ; d ++ ) w += N [ d ] + ( d > 0 ? y : 0 ) , A -= ( d > 0 ? y : 0 ) + N [ d ] ; for ( B = o . innerH - g . top - g . bottom , _ = 0 , f = 0 ; n > f ; f ++ ) _ += E [ f ] + ( f > 0 ? b : 0 ) , B -= ( f > 0 ? b : 0 ) + E [ f ] ; if ( w += g . left + g . right , _ += g . top + g . bottom , l = { } , l . minW = w + ( o . w - o . innerW ) , l . minH = _ + ( o . h - o . innerH ) , l . contentW = l . minW - o . deltaW , l . contentH = l . minH - o . deltaH , l . minW = Math . min ( l . minW