2014-03-03 20:57:15 -05:00
// 4.0.18 (2014-02-27)
! 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" , m = "tinymce/dom/Range" , h = "tinymce/html/Entities" , g = "tinymce/Env" , v = "tinymce/dom/StyleSheetLoader" , y = "tinymce/dom/DOMUtils" , b = "tinymce/dom/ScriptLoader" , C = "tinymce/AddOnManager" , x = "tinymce/html/Node" , w = "tinymce/html/Schema" , _ = "tinymce/html/SaxParser" , N = "tinymce/html/DomParser" , E = "tinymce/html/Writer" , S = "tinymce/html/Serializer" , k = "tinymce/dom/Serializer" , T = "tinymce/dom/TridentSelection" , R = "tinymce/util/VK" , A = "tinymce/dom/ControlSelection" , B = "tinymce/dom/RangeUtils" , D = "tinymce/dom/Selection" , L = "tinymce/Formatter" , H = "tinymce/UndoManager" , M = "tinymce/EnterKey" , P = "tinymce/ForceBlocks" , O = "tinymce/EditorCommands" , I = "tinymce/util/URI" , F = "tinymce/util/Class" , z = "tinymce/ui/Selector" , W = "tinymce/ui/Collection" , V = "tinymce/ui/DomUtils" , U = "tinymce/ui/Control" , q = "tinymce/ui/Factory" , $ = "tinymce/ui/KeyboardNavigation" , j = "tinymce/ui/Container" , K = "tinymce/ui/DragHelper" , Y = "tinymce/ui/Scrollable" , G = "tinymce/ui/Panel" , X = "tinymce/ui/Movable" , J = "tinymce/ui/Resizable" , Q = "tinymce/ui/FloatPanel" , Z = "tinymce/ui/Window" , et = "tinymce/ui/MessageBox" , tt = "tinymce/WindowManager" , nt = "tinymce/util/Quirks" , rt = "tinymce/util/Observable" , it = "tinymce/Shortcuts" , ot = "tinymce/Editor" , at = "tinymce/util/I18n" , st = "tinymce/FocusManager" , lt = "tinymce/EditorManager" , ct = "tinymce/LegacyInput" , ut = "tinymce/util/XHR" , dt = "tinymce/util/JSON" , ft = "tinymce/util/JSONRequest" , pt = "tinymce/util/JSONP" , mt = "tinymce/util/LocalStorage" , ht = "tinymce/Compat" , gt = "tinymce/ui/Layout" , vt = "tinymce/ui/AbsoluteLayout" , yt = "tinymce/ui/Tooltip" , bt = "tinymce/ui/Widget" , Ct = "tinymce/ui/Button" , xt = "tinymce/ui/ButtonGroup" , wt = "tinymce/ui/Checkbox" , _t = "tinymce/ui/PanelButton" , Nt = "tinymce/ui/ColorButton" , Et = "tinymce/ui/ComboBox" , St = "tinymce/ui/Path" , kt = "tinymce/ui/ElementPath" , Tt = "tinymce/ui/FormItem" , Rt = "tinymce/ui/Form" , At = "tinymce/ui/FieldSet" , Bt = "tinymce/ui/FilePicker" , Dt = "tinymce/ui/FitLayout" , Lt = "tinymce/ui/FlexLayout" , Ht = "tinymce/ui/FlowLayout" , Mt = "tinymce/ui/FormatControls" , Pt = "tinymce/ui/GridLayout" , Ot = "tinymce/ui/Iframe" , It = "tinymce/ui/Label" , Ft = "tinymce/ui/Toolbar" , zt = "tinymce/ui/MenuBar" , Wt = "tinymce/ui/MenuButton" , Vt = "tinymce/ui/ListBox" , Ut = "tinymce/ui/MenuItem" , qt = "tinymce/ui/Menu" , $t = "tinymce/ui/Radio" , jt = "tinymce/ui/ResizeHandle" , Kt = "tinymce/ui/Spacer" , Yt = "tinymce/ui/SplitButton" , Gt = "tinymce/ui/StackLayout" , Xt = "tinymce/ui/TabPanel" , Jt = "tinymce/ui/TextBox" , Qt = "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
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 = h [ e + "-top" + t ] , r && ( i = h [ e + "-right" + t ] , i && ( o = h [ e + "-bottom" + t ] , o && ( a = h [ e + "-left" + t ] ) ) ) ) { var s = [ r , i , o , a ] ; for ( l = s . length - 1 ; l -- && s [ l ] === s [ l + 1 ] ; ) ; l > - 1 && n || ( h [ e + t ] = - 1 == l ? s [ 0 ] : s . join ( " " ) , delete h [ e + "-top" + t ] , delete h [ e + "-right" + t ] , delete h [ e + "-bottom" + t ] , delete h [ e + "-left" + t ] ) } } function u ( e ) { var t = h [ e ] , n ; if ( t ) { for ( t = t . split ( " " ) , n = t . length ; n -- ; ) if ( t [ n ] !== t [ 0 ] ) return ! 1 ; return h [ e ] = t [ 0 ] , ! 0 } } function d ( e , t , n , r ) { u ( t ) && u ( n ) && u ( r ) && ( h [ e ] = h [ t ] + " " + h [ n ] + " " + h [ r ] , delete h [ t ] , delete h [ n ] , delete h [ 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 m ( 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 h = { } , 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 , m ) , h [ 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" === h . border && delete h . border , "none" === h [ "border-image" ] && delete h [ "border-image" ] } 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 , void ( this . onCreate && this . onCreate ( e [ 2 ] , e [ 3 ] , o [ a ] ) ) ; t [ a ] || ( t [ a ] = function ( ) { } , c = 1 ) , o [ a ] = t [ a ] , r . extend ( o [ a ] . prototype , t ) , e [ 5 ] && ( i = r . resolve ( e [ 5 ] ) . 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 ,
} function i ( ) { "undefined" != typeof console && console . log && console . log ( "Failed to load: " + e ) } var o = r , a , s ; s = o . uniqueId ( ) , a = document . createElement ( "script" ) , a . id = s , a . type = "text/javascript" , a . src = e , "onreadystatechange" in a ? a . onreadystatechange = function ( ) { /loaded|complete/ . test ( a . readyState ) && n ( ) } : a . onload = n , a . onerror = i , ( document . getElementsByTagName ( "head" ) [ 0 ] || document . body ) . appendChild ( a ) } var t = 0 , n = 1 , a = 2 , s = { } , l = [ ] , c = { } , u = [ ] , d = 0 , f ; this . isDone = function ( e ) { return s [ e ] == a } , this . markDone = function ( e ) { s [ e ] = a } , this . add = this . load = function ( e , n , r ) { var i = s [ e ] ; i == f && ( l . push ( e ) , s [ e ] = t ) , n && ( c [ e ] || ( c [ e ] = [ ] ) , c [ e ] . push ( { func : n , scope : r || this } ) ) } , this . loadQueue = function ( e , t ) { this . loadScripts ( l , e , t ) } , this . loadScripts = function ( t , r , l ) { function p ( e ) { i ( c [ e ] , function ( e ) { e . func . call ( e . scope ) } ) , c [ e ] = f } var m ; u . push ( { func : r , scope : l || this } ) , ( m = function ( ) { var r = o ( t ) ; t . length = 0 , i ( r , function ( t ) { return s [ t ] == a ? void p ( t ) : void ( s [ t ] != n && ( s [ t ] = n , d ++ , e ( t , function ( ) { s [ t ] = a , d -- , p ( t ) , m ( ) } ) ) ) } ) , d || ( i ( u , function ( e ) { e . func . call ( e . scope ) } ) , u . length = 0 ) } ) ( ) } } var r = e . DOM , i = t . each , o = t . grep ; return n . ScriptLoader = new n , n } ) , r ( C , [ b , p ] , function ( e , n ) { function r ( ) { var e = this ; e . items = [ ] , e . urls = { } , e . lookup = { } } var i = n . each ; return r . prototype = { get : function ( e ) { return this . lookup [ e ] ? this . lookup [ e ] . instance : t } , dependencies : function ( e ) { var t ; return this . lookup [ e ] && ( t = this . lookup [ e ] . dependencies ) , t || [ ] } , requireLangPack : function ( t , n ) { 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 && a . call ( s ? s : e ) } var c = this , u = o ; c . urls [ n ] || ( "object" == typeof o && ( u = o . prefix + o . resource + o . suffix ) , 0 !== u . indexOf ( "/" ) && - 1 == u . indexOf ( "://" ) && ( u = r . baseURL + "/" + u ) , c . urls [ n ] = u . substring ( 0 , u . lastIndexOf ( "/" ) ) , c . lookup [ n ] ? l ( ) : e . ScriptLoader . add ( u , l , s ) ) } } , r . PluginManager = new r , r . ThemeManager = new r , r } ) , r ( x , [ ] , function ( ) { function e ( e , t , n ) { var r , i , o = n ? "lastChild" : "firstChild" , a = n ? "prev" : "next" ; if ( e [ o ] ) return e [ o ] ; if ( e !== t ) { if ( r = e [ a ] ) return r ; for ( i = e . parent ; i && i !== t ; i = i . parent ) if ( r = i [ a ] ) return r } } function t ( e , t ) { this . name = e , this . type = t , 1 === t && ( this . attributes = [ ] , this . attributes . map = { } ) } var n = /^[ \t\r\n]*$/ , r = { "#text" : 3 , "#comment" : 8 , "#cdata" : 4 , "#pi" : 7 , "#doctype" : 10 , "#document-fragment" : 11 } ; return t . prototype = { replace : function ( e ) { var t = this ; return e . parent && e . remove ( ) , t . insert ( e , t ) , t . remove ( ) , t } , attr : function ( e , t ) { var n = this , r , i , o ; if ( "string" != typeof e ) { for ( i in e ) n . attr ( i , e [ i ] ) ; return n } if ( r = n . attributes ) { if ( t !== o ) { if ( null === t ) { if ( e in r . map ) for ( delete r . map [ e ] , i = r . length ; i -- ; ) if ( r [ i ] . name === e ) return r = r . splice ( i , 1 ) , n ; return n } if ( e in r . map ) { for ( i = r . length ; i -- ; ) if ( r [ i ] . name === e ) { r [ i ] . value = t ; break } } else r . push ( { name : e , value : t } ) ; return r . map [ e ] = t , n } return r . map [ e ] } } , clone : function ( ) { var e = this , n = new t ( e . name , e . type ) , r , i , o , a , s ; if ( o = e . attributes ) { for ( s = [ ] , s . map = { } , r = 0 , i = o . length ; i > r ; r ++ ) a = o [ r ] , "id" !== a . name && ( s [ s . length ] = { name : a . name , value : a . value } , s . map [ a . name ] = a . value ) ; n . attributes = s } return n . value = e . 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 =
return { node : l , position : d , offset : c , inside : a } } } function n ( ) { function n ( e ) { var n = t ( o , e ) , r , i , s = 0 , l , c , u ; if ( r = n . node , i = n . offset , n . inside && ! r . hasChildNodes ( ) ) return void a [ e ? "setStart" : "setEnd" ] ( r , 0 ) ; if ( i === c ) return void a [ e ? "setStartBefore" : "setEndAfter" ] ( r ) ; if ( n . position < 0 ) { if ( l = n . inside ? r . firstChild : r . nextSibling , ! l ) return void a [ e ? "setStartAfter" : "setEndAfter" ] ( r ) ; if ( ! i ) return void ( 3 == l . nodeType ? a [ e ? "setStart" : "setEnd" ] ( l , 0 ) : a [ e ? "setStartBefore" : "setEndBefore" ] ( l ) ) ; for ( ; l ; ) { if ( u = l . nodeValue , s += u . length , s >= i ) { r = l , s -= i , s = u . length - s ; break } l = l . nextSibling } } else { if ( l = r . previousSibling , ! l ) return a [ e ? "setStartBefore" : "setEndBefore" ] ( r ) ; if ( ! i ) return void ( 3 == r . nodeType ? a [ e ? "setStart" : "setEnd" ] ( l , r . nodeValue . length ) : a [ e ? "setStartAfter" : "setEndAfter" ] ( l ) ) ; for ( ; l ; ) { if ( s += l . nodeValue . length , s >= i ) { r = l , s -= i ; break } l = l . previousSibling } } a [ e ? "setStart" : "setEnd" ] ( r , s ) } var o = e . getRng ( ) , a = i . createRng ( ) , s , l , c , u , d ; if ( s = o . item ? o . item ( 0 ) : o . parentElement ( ) , s . ownerDocument != i . doc ) return a ; if ( l = e . isCollapsed ( ) , o . item ) return a . setStart ( s . parentNode , i . nodeIndex ( s ) ) , a . setEnd ( a . startContainer , a . startOffset + 1 ) , a ; try { n ( ! 0 ) , l || n ( ) } catch ( f ) { if ( - 2147024809 != f . number ) throw f ; d = r . getBookmark ( 2 ) , c = o . duplicate ( ) , c . collapse ( ! 0 ) , s = c . parentElement ( ) , l || ( c = o . duplicate ( ) , c . collapse ( ! 1 ) , u = c . parentElement ( ) , u . innerHTML = u . innerHTML ) , s . innerHTML = s . innerHTML , r . moveToBookmark ( d ) , o = e . getRng ( ) , n ( ! 0 ) , l || n ( ) } return a } var r = this , i = e . dom , o = ! 1 ; this . getBookmark = function ( n ) { function r ( e ) { var t , n , r , o , a = [ ] ; for ( t = e . parentNode , n = i . getRoot ( ) . parentNode ; t != n && 9 !== t . nodeType ; ) { for ( r = t . children , o = r . length ; o -- ; ) if ( e === r [ o ] ) { a . push ( o ) ; break } e = t , t = t . parentNode } return a } function o ( e ) { var n ; return n = t ( a , e ) , n ? { position : n . position , offset : n . offset , indexes : r ( n . node ) , inside : n . inside } : void 0 } var a = e . getRng ( ) , s = { } ; return 2 === n && ( a . item ? s . start = { ctrl : ! 0 , indexes : r ( a . item ( 0 ) ) } : ( s . start = o ( ! 0 ) , e . isCollapsed ( ) || ( s . end = o ( ) ) ) ) , s } , this . moveToBookmark = function ( e ) { function t ( e ) { var t , n , r , o ; for ( t = i . getRoot ( ) , n = e . length - 1 ; n >= 0 ; n -- ) o = t . children , r = e [ n ] , r <= o . length - 1 && ( t = o [ r ] ) ; return t } function n ( n ) { var i = e [ n ? "start" : "end" ] , a , s , l , c ; i && ( a = i . position > 0 , s = o . createTextRange ( ) , s . moveToElementText ( t ( i . indexes ) ) , c = i . offset , c !== l ? ( s . collapse ( i . inside || a ) , s . moveStart ( "character" , a ? - c : c ) ) : s . collapse ( n ) , r . setEndPoint ( n ? "StartToStart" : "EndToStart" , s ) , n && r . collapse ( ! 0 ) ) } var r , o = i . doc . body ; e . start && ( e . start . ctrl ? ( r = o . createControlRange ( ) , r . addElement ( t ( e . start . indexes ) ) , r . select ( ) ) : ( r = o . createTextRange ( ) , n ( ! 0 ) , n ( ) , r . select ( ) ) ) } , this . addRange = function ( t ) { function n ( e ) { var t , n , a , d , m ; 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 ) ) : ( m = t . childNodes , m . length ? ( n >= m . length ? i . insertAfter ( a , m [ m . length - 1 ] ) : t . insertBefore ( a , m [ 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 , m , h ; if ( s = t . startContainer , l = t . startOffset , c = t . endContainer , u = t . endOffset , r = p . createTextRange ( ) , s == c && 1 == s . nodeType ) { if ( l == u && ! s . hasChildNodes ( ) ) { if ( s . canHaveHTML ) return d = s . previousSibling , d && ! d . hasChildNodes ( ) && i . isBlock ( d ) ? d . innerHTML = "" : d = null , s . innerHTML = "<span></span><span></span>" , r . moveToElementText ( s . lastChild ) , r . select ( ) , i . doc . selection . clear ( ) , s . innerHTML = "" , void ( d && ( d . innerHTML = "" ) ) ; l = i . nodeIndex ( s ) , s = s . parentNode } if ( l == u - 1 ) try { if ( h = s . childNodes [ l ] , a = p . createControlRange ( ) , a . addElement ( h ) , a . select ( ) , m = e . getRng ( ) , m . item && h === m . item ( 0 ) ) return } catch ( g ) { } } n ( ! 0 ) , n ( ) , r . select ( ) } , this . getRangeAt = n } return e } ) , r ( R , [ 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 ( A , [ R , 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
} ) } ) } var p = c ( e ) , m = p [ 0 ] , h , y , b = ! 0 ; return n ? void ( n . nodeType ? ( y = I . createRng ( ) , y . setStartBefore ( n ) , y . setEndAfter ( n ) , f ( y ) ) : f ( n ) ) : void ( F . isCollapsed ( ) && m . inline && ! I . select ( "td.mce-item-selected,th.mce-item-selected" ) . length ? M ( "remove" , e , t ) : ( h = F . getBookmark ( ) , f ( F . getRng ( Y ) ) , F . moveToBookmark ( h ) , m . inline && v ( e , t , F . getStart ( ) ) && P ( F . getRng ( ! 0 ) ) , r . nodeChanged ( ) ) ) } function h ( e , t , n ) { var r = c ( e ) ; ! v ( e , t , n ) || "toggle" in r [ 0 ] && ! r [ 0 ] . toggle ? p ( e , t , n ) : m ( e , t , n ) } function g ( e , t , n , r ) { function i ( e , t , i ) { var o , a , s = t [ i ] , l ; if ( t . onmatch ) return t . onmatch ( e , t , i ) ; if ( s ) if ( s . length === X ) { for ( o in s ) if ( s . hasOwnProperty ( o ) ) { if ( a = "attributes" === i ? I . getAttrib ( e , o ) : _ ( e , o ) , r && ! a && ! t . exact ) return ; if ( ( ! r || t . exact ) && ! w ( a , N ( E ( s [ o ] , n ) , o ) ) ) return } } else for ( l = 0 ; l < s . length ; l ++ ) if ( "attributes" === i ? I . getAttrib ( e , s [ l ] ) : _ ( e , s [ l ] ) ) return t ; return t } var o = c ( t ) , a , s , l ; if ( o && e ) for ( s = 0 ; s < o . length ; s ++ ) if ( a = o [ s ] , x ( e , a ) && i ( e , a , "attributes" ) && i ( e , a , "styles" ) ) { if ( l = a . classes ) for ( s = 0 ; s < l . length ; s ++ ) if ( ! I . hasClass ( e , l [ s ] ) ) return ; return a } } function v ( e , t , n ) { function r ( n ) { var r = I . getRoot ( ) ; return n === r ? ! 1 : ( n = I . getParent ( n , function ( n ) { return n . parentNode === r || ! ! g ( n , e , t , ! 0 ) } ) , g ( n , e , t ) ) } var i ; return n ? r ( n ) : ( n = F . getNode ( ) , r ( n ) ? Y : ( i = F . getStart ( ) , i != n && r ( i ) ? Y : K ) ) } function y ( e , t ) { var n , r = [ ] , i = { } ; return n = F . getStart ( ) , I . getParent ( n , function ( n ) { var o , a ; for ( o = 0 ; o < e . length ; o ++ ) a = e [ o ] , ! i [ a ] && g ( n , a , t ) && ( i [ a ] = ! 0 , r . push ( a ) ) } , I . getRoot ( ) ) , r } function b ( e ) { var t = c ( e ) , n , r , i , a , s ; if ( t ) for ( n = F . getStart ( ) , r = o ( n ) , a = t . length - 1 ; a >= 0 ; a -- ) { if ( s = t [ a ] . selector , ! s || t [ a ] . defaultBlock ) return Y ; for ( i = r . length - 1 ; i >= 0 ; i -- ) if ( I . is ( r [ i ] , s ) ) return Y } return K } function C ( e , t , n ) { var i ; return G || ( G = { } , i = { } , r . on ( "NodeChange" , function ( e ) { var t = o ( e . element ) , n = { } ; et ( G , 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 ) { G [ e ] || ( G [ e ] = [ ] , G [ e ] . similar = n ) , G [ e ] . push ( t ) } ) , this } function x ( e , t ) { return w ( e , t . inline ) ? Y : w ( e , t . block ) ? Y : 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 S ( e ) { return e && 3 === e . nodeType && /^([\t \r\n]+|)$/ . test ( e . nodeValue ) } function k ( 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 && ! S ( 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 ( ! D ( o ) && ! S ( 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 ++ )
return i } , toAbsPath : function ( e , t ) { var r , i = 0 , o = [ ] , a , s ; for ( a = /\/$/ . test ( t ) ? "/" : "" , e = e . split ( "/" ) , t = t . split ( "/" ) , n ( e , function ( e ) { e && o . push ( e ) } ) , e = o , r = t . length - 1 , o = [ ] ; r >= 0 ; r -- ) 0 !== t [ r ] . length && "." !== t [ r ] && ( ".." !== t [ r ] ? i > 0 ? i -- : o . push ( t [ r ] ) : i ++ ) ; return r = e . length - i , s = 0 >= r ? o . reverse ( ) . join ( "/" ) : e . slice ( 0 , r ) . join ( "/" ) + "/" + o . reverse ( ) . join ( "/" ) , 0 !== s . indexOf ( "/" ) && ( s = "/" + s ) , a && s . lastIndexOf ( "/" ) !== s . length - 1 && ( s += a ) , s } , getURI : function ( e ) { var t , n = this ; return ( ! n . source || e ) && ( t = "" , e || ( t += n . protocol ? n . protocol + "://" : "//" , n . userInfo && ( t += n . userInfo + "@" ) , n . host && ( t += n . host ) , n . port && ( t += ":" + n . port ) ) , n . path && ( t += n . path ) , n . query && ( t += "?" + n . query ) , n . anchor && ( t += "#" + n . anchor ) , n . source = t ) , n . source } } , t } ) , r ( F , [ p ] , function ( e ) { function t ( ) { } var n = e . each , r = e . extend , i , o ; return t . extend = i = function ( e ) { function t ( ) { var e , t , n , r ; if ( ! o && ( r = this , r . init && r . init . apply ( r , arguments ) , t = r . Mixins ) ) for ( e = t . length ; e -- ; ) n = t [ e ] , n . init && n . init . apply ( r , arguments ) } function a ( ) { return this } function s ( e , t ) { return function ( ) { var n = this , r = n . _super , i ; return n . _super = c [ e ] , i = t . apply ( n , arguments ) , n . _super = r , i } } var l = this , c = l . prototype , u , d , f ; o = ! 0 , u = new l , o = ! 1 , e . Mixins && ( n ( e . Mixins , function ( t ) { t = t ; for ( var n in t ) "init" !== n && ( e [ n ] = t [ n ] ) } ) , c . Mixins && ( e . Mixins = c . Mixins . concat ( e . Mixins ) ) ) , e . Methods && n ( e . Methods . split ( "," ) , function ( t ) { e [ t ] = a } ) , e . Properties && n ( e . Properties . split ( "," ) , function ( t ) { var n = "_" + t ; e [ t ] = function ( e ) { var t = this , r ; return e !== r ? ( t [ n ] = e , t ) : t [ n ] } } ) , e . Statics && n ( e . Statics , function ( e , n ) { t [ n ] = e } ) , e . Defaults && c . Defaults && ( e . Defaults = r ( { } , c . Defaults , e . Defaults ) ) ; for ( d in e ) f = e [ d ] , u [ d ] = "function" == typeof f && c [ d ] ? s ( d , f ) : f ; return t . prototype = u , t . constructor = t , t . extend = i , t } , t } ) , r ( z , [ F ] , 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 , m ; for ( t = t || this . _selectors , n = 0 , r = t . length ; r > n ; n ++ ) { for ( a = t [ n ] , o = a . length , m = e , p = 0 , i = o - 1 ; i >= 0 ; i -- ) for ( c = a [ i ] ; m ; ) { if ( c . psuedo ) for ( f = m . parent ( ) . items ( ) , u = d = f . length ; u -- && f [ u ] !== m ; ) ; for ( s = 0 , l = c . length ; l > s ; s ++ ) if ( ! c [ s ] ( m , u , d ) ) { s = l + 1 ; break } if ( s === l ) { p ++ ; break } if ( i === o - 1 ) break ; m = m . 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 ( W , [ p , z , F ] , function (
} ) , n . on ( "cancel" , function ( ) { n . close ( ) } ) , n . aria ( "describedby" , n . describedBy || n . _id + "-none" ) , n . aria ( "label" , e . title ) , n . _fullscreen = ! 1 } , recalc : function ( ) { var e = this , t = e . statusbar , r , i , o , a ; e . _fullscreen && ( e . layoutRect ( n . getWindowSize ( ) ) , e . layoutRect ( ) . contentH = e . layoutRect ( ) . innerH ) , e . _super ( ) , r = e . layoutRect ( ) , e . settings . title && ! e . _fullscreen && ( i = r . headerW , i > r . w && ( o = r . x - Math . max ( 0 , i / 2 ) , e . layoutRect ( { w : i , x : o } ) , a = ! 0 ) ) , t && ( t . layoutRect ( { w : e . layoutRect ( ) . innerW } ) . recalc ( ) , i = t . layoutRect ( ) . minW + r . deltaW , i > r . w && ( o = r . x - Math . max ( 0 , i - r . w ) , e . layoutRect ( { w : i , x : o } ) , a = ! 0 ) ) , a && e . recalc ( ) } , initLayoutRect : function ( ) { var e = this , t = e . _super ( ) , r = 0 , i ; if ( e . settings . title && ! e . _fullscreen ) { i = e . getEl ( "head" ) ; var o = n . getSize ( i ) ; t . headerW = o . width , t . headerH = o . height , r += t . headerH } e . statusbar && ( r += e . statusbar . layoutRect ( ) . h ) , t . deltaH += r , t . minH += r , t . h += r ; var a = n . getWindowSize ( ) ; return t . x = Math . max ( 0 , a . w / 2 - t . w / 2 ) , t . y = Math . max ( 0 , a . h / 2 - t . h / 2 ) , t } , renderHtml : function ( ) { var e = this , t = e . _layout , n = e . _id , r = e . classPrefix , i = e . settings , o = "" , a = "" , s = i . html ; return e . preRender ( ) , t . preRender ( e ) , i . title && ( o = '<div id="' + n + '-head" class="' + r + 'window-head"><div id="' + n + '-title" class="' + r + 'title">' + e . encode ( i . title ) + '</div><button type="button" class="' + r + 'close" aria-hidden="true">×</button><div id="' + n + '-dragh" class="' + r + 'dragh"></div></div>' ) , i . url && ( s = '<iframe src="' + i . url + '" tabindex="-1"></iframe>' ) , "undefined" == typeof s && ( s = t . renderHtml ( e ) ) , e . statusbar && ( a = e . statusbar . renderHtml ( ) ) , '<div id="' + n + '" class="' + e . classes ( ) + '" hideFocus="1"><div class="' + e . classPrefix + 'reset" role="application">' + o + '<div id="' + n + '-body" class="' + e . classes ( "body" ) + '">' + s + "</div>" + a + "</div></div>" } , fullscreen : function ( e ) { var t = this , r = document . documentElement , i , o = t . classPrefix , a ; if ( e != t . _fullscreen ) if ( n . on ( window , "resize" , function ( ) { var e ; if ( t . _fullscreen ) if ( i ) t . _timer || ( t . _timer = setTimeout ( function ( ) { var e = n . getWindowSize ( ) ; t . moveTo ( 0 , 0 ) . resizeTo ( e . w , e . h ) , t . _timer = 0 } , 50 ) ) ; else { e = ( new Date ) . getTime ( ) ; var r = n . getWindowSize ( ) ; t . moveTo ( 0 , 0 ) . resizeTo ( r . w , r . h ) , ( new Date ) . getTime ( ) - e > 50 && ( i = ! 0 ) } } ) , a = t . layoutRect ( ) , t . _fullscreen = e , e ) { t . _initial = { x : a . x , y : a . y , w : a . w , h : a . h } , t . _borderBox = t . parseBox ( "0" ) , t . getEl ( "head" ) . style . display = "none" , a . deltaH -= a . headerH + 2 , n . addClass ( r , o + "fullscreen" ) , n . addClass ( document . body , o + "fullscreen" ) , t . addClass ( "fullscreen" ) ; 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 ; setTimeout ( function ( ) { e . addClass ( "in" ) } , 0 ) , e . _super ( ) , e . statusbar && e . statusbar . postRender ( ) , e . focus ( ) , this . dragHelper = new r ( e . _id + "-dragh" , { start : function ( ) { t = { x : e . layoutRect ( ) . x , y : e . layoutRect ( ) . y } } , drag : function ( n ) { e . moveTo ( t . x + n . deltaX , t . y + n . 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 i } ) , r ( et , [ Z ] , 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 _CAN
} ) , o ? o : i . theme && i . theme . execCommand && i . theme . execCommand ( e , t , n ) ? ( i . fire ( "ExecCommand" , { command : e , ui : t , value : n } ) , ! 0 ) : i . editorCommands . execCommand ( e , t , n ) ? ( i . fire ( "ExecCommand" , { command : e , ui : t , value : n } ) , ! 0 ) : ( i . getDoc ( ) . execCommand ( e , t , n ) , void i . fire ( "ExecCommand" , { command : e , ui : t , value : n } ) ) ) } , queryCommandState : function ( e ) { var t = this , n , r ; if ( ! t . _isHidden ( ) ) { if ( ( n = t . queryStateCommands [ e ] ) && ( r = n . func . call ( n . scope ) , r !== ! 0 ) ) return r ; if ( r = t . editorCommands . queryCommandState ( e ) , - 1 !== r ) return r ; try { return t . getDoc ( ) . queryCommandState ( e ) } catch ( i ) { } } } , queryCommandValue : function ( e ) { var n = this , r , i ; if ( ! n . _isHidden ( ) ) { if ( ( r = n . queryValueCommands [ e ] ) && ( i = r . func . call ( r . scope ) , i !== ! 0 ) ) return i ; if ( i = n . editorCommands . queryCommandValue ( e ) , i !== t ) return i ; try { return n . getDoc ( ) . queryCommandValue ( e ) } catch ( o ) { } } } , show : function ( ) { var e = this ; E . show ( e . getContainer ( ) ) , E . hide ( e . id ) , e . load ( ) , e . fire ( "show" ) } , hide : function ( ) { var e = this , t = e . getDoc ( ) ; P && t && ! e . inline && t . execCommand ( "SelectAll" ) , e . save ( ) , E . hide ( e . getContainer ( ) ) , E . setStyle ( e . id , "display" , e . orgDisplay ) , e . fire ( "hide" ) } , isHidden : function ( ) { return ! E . isHidden ( this . id ) } , setProgressState : function ( e , t ) { this . fire ( "ProgressState" , { state : e , time : t } ) } , load : function ( e ) { var n = this , r = n . getElement ( ) , i ; return r ? ( e = e || { } , e . load = ! 0 , i = n . setContent ( r . value !== t ? r . value : r . innerHTML , e ) , e . element = r , e . no _events || n . fire ( "LoadContent" , e ) , e . element = r = null , i ) : void 0 } , save : function ( e ) { var t = this , n = t . getElement ( ) , r , i ; if ( n && t . initialized ) return e = e || { } , e . save = ! 0 , e . element = n , r = e . content = t . getContent ( e ) , e . no _events || t . fire ( "SaveContent" , e ) , r = e . content , /TEXTAREA|INPUT/i . test ( n . nodeName ) ? n . value = r : ( t . inline || ( n . innerHTML = r ) , ( i = E . getParent ( t . id , "form" ) ) && R ( i . elements , function ( e ) { return e . name == t . id ? ( e . value = r , ! 1 ) : void 0 } ) ) , e . element = n = null , e . set _dirty !== ! 1 && ( t . isNotDirty = ! 0 ) , r } , setContent : function ( e , t ) { var n = this , r = n . getBody ( ) , i ; return t = t || { } , t . format = t . format || "html" , t . set = ! 0 , t . content = e , t . no _events || n . fire ( "BeforeSetContent" , t ) , e = t . content , 0 === e . length || /^\s+$/ . test ( e ) ? ( i = n . settings . forced _root _block , i && n . schema . isValidChild ( r . nodeName . toLowerCase ( ) , i . toLowerCase ( ) ) ? ( e = P && 11 > P ? "" : '<br data-mce-bogus="1">' , e = n . dom . createHTML ( i , n . settings . forced _root _block _attrs , e ) ) : ( ! P || 11 > P ) && ( e = '<br data-mce-bogus="1">' ) , r . innerHTML = e , n . fire ( "SetContent" , t ) ) : ( "raw" !== t . format && ( e = new o ( { } , n . schema ) . serialize ( n . parser . parse ( e , { isRootContent : ! 0 } ) ) ) , t . content = D ( e ) , n . dom . setHTML ( r , t . content ) , t . no _events || n . fire ( "SetContent" , t ) ) , t . content } , getContent : function ( e ) { var t = this , n , r = t . getBody ( ) ; return e = e || { } , e . format = e . format || "html" , e . get = ! 0 , e . getInner = ! 0 , e . no _events || t . fire ( "BeforeGetContent" , e ) , n = "raw" == e . format ? r . innerHTML : "text" == e . format ? r . innerText || r . textContent : t . serializer . serialize ( r , e ) , e . content = "text" != e . format ? D ( 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" ) , void ( t && "0" != t || ( n . hasVisual ? i
if ( x = { } , x [ E ] = 0 > d ? i [ E ] - d + i [ B ] : i [ R ] - d + i [ B ] , x [ P ] = _ + i [ z ] , x [ D ] = i [ R ] - d , x [ W ] = _ , x . minW = U ( x . minW , i . maxW ) , x . minH = U ( x . minH , i . maxH ) , x . minW = V ( x . minW , i . startMinWidth ) , x . minH = V ( x . minH , i . startMinHeight ) , ! i . autoResize || x . minW == i . minW && x . minH == i . minH ) { for ( C = d / u , t = 0 , n = v . length ; n > t ; t ++ ) p = v [ t ] , m = p . layoutRect ( ) , b = m [ k ] , y = m [ E ] + m . flex * C , y > b ? ( d -= m [ k ] - m [ E ] , u -= m . flex , m . flex = 0 , m . maxFlexSize = b ) : m . maxFlexSize = 0 ; for ( C = d / u , w = o [ T ] , x = { } , 0 === u && ( "end" == l ? w = d + o [ T ] : "center" == l ? ( w = Math . round ( i [ R ] / 2 - ( i [ R ] - d ) / 2 ) + o [ T ] , 0 > w && ( w = o [ T ] ) ) : "justify" == l && ( w = o [ T ] , c = Math . floor ( d / ( r . length - 1 ) ) ) ) , x [ L ] = o [ I ] , t = 0 , n = r . length ; n > t ; t ++ ) p = r [ t ] , m = p . layoutRect ( ) , y = m . maxFlexSize || m [ E ] , "center" === s ? x [ L ] = Math . round ( i [ H ] / 2 - m [ M ] / 2 ) : "stretch" === s ? ( x [ M ] = V ( m [ P ] || 0 , i [ H ] - o [ I ] - o [ F ] ) , x [ L ] = o [ I ] ) : "end" === s && ( x [ L ] = i [ H ] - m [ M ] - o . top ) , m . flex > 0 && ( y += m . flex * C ) , x [ N ] = y , x [ S ] = w , p . layoutRect ( x ) , p . recalc && p . recalc ( ) , w += y + c } else if ( x . w = x . minW , x . h = x . minH , e . layoutRect ( x ) , this . recalc ( e ) , null === e . _lastRect ) { var q = e . parent ( ) ; q && ( q . _lastRect = null , q . recalc ( ) ) } } } ) } ) , r ( Ht , [ gt ] , function ( e ) { return e . extend ( { Defaults : { containerClass : "flow-layout" , controlClass : "flow-layout-item" , endClass : "break" } , recalc : function ( e ) { e . items ( ) . filter ( ":visible" ) . each ( function ( e ) { e . recalc && e . recalc ( ) } ) } } ) } ) , r ( Mt , [ U , bt , Q , p , lt , g ] , function ( e , t , n , r , i , o ) { function a ( e ) { function t ( t ) { function n ( e ) { return e . replace ( /%(\w+)/g , "" ) } var r , i , o = e . dom , a = "" , l , c ; return c = e . settings . preview _styles , c === ! 1 ? "" : ( c || ( c = "font-family font-size font-weight font-style text-decoration text-transform color background-color border border-radius outline text-shadow" ) , ( t = e . formatter . get ( t ) ) ? ( t = t [ 0 ] , r = t . block || t . inline || "span" , i = o . create ( r ) , s ( t . styles , function ( e , t ) { e = n ( e ) , e && o . setStyle ( i , t , e ) } ) , s ( t . attributes , function ( e , t ) { e = n ( e ) , e && o . setAttrib ( i , t , e ) } ) , s ( t . classes , function ( e ) { e = n ( e ) , o . hasClass ( i , e ) || o . addClass ( i , e ) } ) , e . fire ( "PreviewFormats" ) , o . setStyles ( i , { position : "absolute" , left : - 65535 } ) , e . getBody ( ) . appendChild ( i ) , l = o . getStyle ( e . getBody ( ) , "fontSize" , ! 0 ) , l = /px$/ . test ( l ) ? parseInt ( l , 10 ) : 0 , s ( c . split ( " " ) , function ( t ) { var n = o . getStyle ( i , t , ! 0 ) ; if ( ! ( "background-color" == t && /transparent|rgba\s*\([^)]+,\s*0\)/ . test ( n ) && ( n = o . getStyle ( e . getBody ( ) , t , ! 0 ) , "#ffffff" == o . toHex ( n ) . toLowerCase ( ) ) || "color" == t && "#000000" == o . toHex ( n ) . toLowerCase ( ) ) ) { if ( "font-size" == t && /em|%$/ . test ( n ) ) { if ( 0 === l ) return ; n = parseFloat ( n , 10 ) / ( /%$/ . test ( n ) ? 100 : 1 ) , n = n * l + "px" } "border" == t && n && ( a += "padding:0 2px;" ) , a += t + ":" + n + ";" } } ) , e . fire ( "AfterPreviewFormats" ) , o . remove ( i ) , a ) : void 0 ) } function r ( t , n ) { return function ( ) { var r = this ; e . on ( "nodeChange" , function ( i ) { var o = e . formatter , a = null ; s ( i . parents , function ( e ) { return s ( t , function ( t ) { return n ? o . matchNode ( e , n , { value : t . value } ) && ( a = t . value ) : o . matchNode ( e , t . value ) && ( a = t . value ) , a ? ! 1 : void 0 } ) , a ? ! 1 : void 0 } ) , r . value ( a ) } ) } } function i ( e ) { e = e . split ( ";" ) ; for ( var t = e . length ; t -- ; ) e [ t ] = e [ t ] . split ( "=" ) ; return e } function o ( ) { function n ( e ) { var t = [ ] ; if ( e ) return s ( e , function ( e ) { var r = { text : e . title , icon : e . icon } ; if ( e . items ) r . menu = n ( e . items ) ; else { var a = e . format || "custom" + i ++ ; e . format || ( e . name = a , o . push ( e ) ) , r . format = a } t . push ( r ) } ) , t } function r ( ) { var t ; return t = n ( e . settings . style _formats _merge ? e . settings . style _formats ? a . concat ( e . settings . style _formats ) : a : e . settings . style _formats || a ) } var i = 0 , o = [ ] , a = [ { title : "Headers" , items : [ { title : "Header 1" , format : "h1" } , { title : "Header 2" , format : "h2" } , { title : "Header 3" , format : "h3" } , { title : "Header 4" , format : "h4" } , { title : "Header 5" , format : "h5" } , { title : "Header 6" , format : "h6" } ] } , { title : "Inline" , items : [ { title : "Bold" , icon : "bold" , format : "bold" } , { title : "Italic" , icon : "italic" , format : "italic" } , { title : "Underline" , icon : "underline" , format : "underline" } , { title : "Strikethrough" , icon : "strikethrough" , format : "strikethrough" } , { title : "Superscript" , icon : "superscript" , format : "superscript" } , { title : "Subscript" , icon : "subscript" , format : "subscript" } , { title : "Code" , icon : "code" , format : "code" } ] } , { title : "Blocks" , items : [ { title : "Paragraph" , format : "p" } , { title : "Blockquote" , format : "blockquote" } , { title : "Div" , format : "div" } , { title : "Pre" , format : "pre" } ] } , { title : "Alignment" , items : [ { title : "Left" , icon : "alignleft" , format : "alignleft" } , { title : "Center" , icon : "aligncenter" , format : "aligncenter" } , { title : "Right" , icon : " alignrigh