(function(e){
    var a=/^\s*|\s*$/g,b,d="B".replace(/A(.)|B/,"$1")==="$1";
    var c={
        majorVersion:"3",
        minorVersion:"5.6",
        releaseDate:"2012-07-26",
        _init:function(){
            var s=this,q=document,o=navigator,g=o.userAgent,m,f,l,k,j,r;
            s.isOpera=e.opera&&opera.buildNumber;
            s.isWebKit=/WebKit/.test(g);
            s.isIE=!s.isWebKit&&!s.isOpera&&(/MSIE/gi).test(g)&&(/Explorer/gi).test(o.appName);
            s.isIE6=s.isIE&&/MSIE [56]/.test(g);
            s.isIE7=s.isIE&&/MSIE [7]/.test(g);
            s.isIE8=s.isIE&&/MSIE [8]/.test(g);
            s.isIE9=s.isIE&&/MSIE [9]/.test(g);
            s.isGecko=!s.isWebKit&&/Gecko/.test(g);
            s.isMac=g.indexOf("Mac")!=-1;
            s.isAir=/adobeair/i.test(g);
            s.isIDevice=/(iPad|iPhone)/.test(g);
            s.isIOS5=s.isIDevice&&g.match(/AppleWebKit\/(\d*)/)[1]>=534;
            if(e.tinyMCEPreInit){
                s.suffix=tinyMCEPreInit.suffix;
                s.baseURL=tinyMCEPreInit.base;
                s.query=tinyMCEPreInit.query;
                return
            }
            s.suffix="";
            f=q.getElementsByTagName("base");
            for(m=0;m<f.length;m++){
                r=f[m].href;
                if(r){
                    if(/^https?:\/\/[^\/]+$/.test(r)){
                        r+="/"
                    }
                    k=r?r.match(/.*\//)[0]:""
                }
            }
            function h(i){
                if(i.src&&/tiny_mce(|_gzip|_jquery|_prototype|_full)(_dev|_src)?.js/.test(i.src)){
                    if(/_(src|dev)\.js/g.test(i.src)){
                        s.suffix="_src"
                    }
                    if((j=i.src.indexOf("?"))!=-1){
                        s.query=i.src.substring(j+1)
                    }
                    s.baseURL=i.src.substring(0,i.src.lastIndexOf("/"));
                    if(k&&s.baseURL.indexOf("://")==-1&&s.baseURL.indexOf("/")!==0){
                        s.baseURL=k+s.baseURL
                    }
                    return s.baseURL
                }
                return null
            }
            f=q.getElementsByTagName("script");
            for(m=0;m<f.length;m++){
                if(h(f[m])){
                    return
                }
            }
            l=q.getElementsByTagName("head")[0];
            if(l){
                f=l.getElementsByTagName("script");
                for(m=0;m<f.length;m++){
                    if(h(f[m])){
                        return
                    }
                }
            }
            return
        },
        is:function(g,f){
            if(!f){
                return g!==b
            }
            if(f=="array"&&(g.hasOwnProperty&&g instanceof Array)){
                return true
            }
            return typeof(g)==f
        },
        makeMap:function(f,j,h){
            var g;
            f=f||[];
            j=j||",";
            if(typeof(f)=="string"){
                f=f.split(j)
            }
            h=h||{};
    
            g=f.length;
            while(g--){
                h[f[g]]={}
            }
            return h
        },
        each:function(i,f,h){
            var j,g;
            if(!i){
                return 0
            }
            h=h||i;
            if(i.length!==b){
                for(j=0,g=i.length;j<g;j++){
                    if(f.call(h,i[j],j,i)===false){
                        return 0
                    }
                }
            }else{
                for(j in i){
                    if(i.hasOwnProperty(j)){
                        if(f.call(h,i[j],j,i)===false){
                            return 0
                        }
                    }
                }
            }
            return 1
        },
        trim:function(f){
            return(f?""+f:"").replace(a,"")
        },
        create:function(o,f,j){
            var n=this,g,i,k,l,h,m=0;
            o=/^((static) )?([\w.]+)(:([\w.]+))?/.exec(o);
            k=o[3].match(/(^|\.)(\w+)$/i)[2];
            i=n.createNS(o[3].replace(/\.\w+$/,""),j);
            if(i[k]){
                return
            }
            if(o[2]=="static"){
                i[k]=f;
                if(this.onCreate){
                    this.onCreate(o[2],o[3],i[k])
                }
                return
            }
            if(!f[k]){
                f[k]=function(){};
        
                m=1
            }
            i[k]=f[k];
            n.extend(i[k].prototype,f);
            if(o[5]){
                g=n.resolve(o[5]).prototype;
                l=o[5].match(/\.(\w+)$/i)[1];
                h=i[k];
                if(m){
                    i[k]=function(){
                        return g[l].apply(this,arguments)
                    }
                }else{
                    i[k]=function(){
                        this.parent=g[l];
                        return h.apply(this,arguments)
                    }
                }
                i[k].prototype[k]=i[k];
                n.each(g,function(p,q){
                    i[k].prototype[q]=g[q]
                });
                n.each(f,function(p,q){
                    if(g[q]){
                        i[k].prototype[q]=function(){
                            this.parent=g[q];
                            return p.apply(this,arguments)
                        }
                    }else{
                        if(q!=k){
                            i[k].prototype[q]=p
                        }
                    }
                })
            }
            n.each(f["static"],function(p,q){
                i[k][q]=p
            });
            if(this.onCreate){
                this.onCreate(o[2],o[3],i[k].prototype)
            }
        },
        walk:function(i,h,j,g){
            g=g||this;
            if(i){
                if(j){
                    i=i[j]
                }
                c.each(i,function(k,f){
                    if(h.call(g,k,f,j)===false){
                        return false
                    }
                    c.walk(k,h,j,g)
                })
            }
        },
        createNS:function(j,h){
            var g,f;
            h=h||e;
            j=j.split(".");
            for(g=0;g<j.length;g++){
                f=j[g];
                if(!h[f]){
                    h[f]={}
                }
                h=h[f]
            }
            return h
        },
        resolve:function(j,h){
            var g,f;
            h=h||e;
            j=j.split(".");
            for(g=0,f=j.length;g<f;g++){
                h=h[j[g]];
                if(!h){
                    break
                }
            }
            return h
        },
        addUnload:function(j,i){
            var h=this,g;
            g=function(){
                var f=h.unloads,l,m;
                if(f){
                    for(m in f){
                        l=f[m];
                        if(l&&l.func){
                            l.func.call(l.scope,1)
                        }
                    }
                    if(e.detachEvent){
                        e.detachEvent("onbeforeunload",k);
                        e.detachEvent("onunload",g)
                    }else{
                        if(e.removeEventListener){
                            e.removeEventListener("unload",g,false)
                        }
                    }
                    h.unloads=l=f=w=g=0;
                    if(e.CollectGarbage){
                        CollectGarbage()
                    }
                }
            };

            function k(){
                var l=document;
                function f(){
                    l.detachEvent("onstop",f);
                    if(g){
                        g()
                    }
                    l=0
                }
                if(l.readyState=="interactive"){
                    if(l){
                        l.attachEvent("onstop",f)
                    }
                    e.setTimeout(function(){
                        if(l){
                            l.detachEvent("onstop",f)
                        }
                    },0)
                }
            }
            j={
                func:j,
                scope:i||this
            };
    
            if(!h.unloads){
                if(e.attachEvent){
                    e.attachEvent("onunload",g);
                    e.attachEvent("onbeforeunload",k)
                }else{
                    if(e.addEventListener){
                        e.addEventListener("unload",g,false)
                    }
                }
                h.unloads=[j]
            }else{
                h.unloads.push(j)
            }
            return j
        },
        removeUnload:function(i){
            var g=this.unloads,h=null;
            c.each(g,function(j,f){
                if(j&&j.func==i){
                    g.splice(f,1);
                    h=i;
                    return false
                }
            });
            return h
        },
        explode:function(f,g){
            if(!f||c.is(f,"array")){
                return f
            }
            return c.map(f.split(g||","),c.trim)
        },
        _addVer:function(g){
            var f;
            if(!this.query){
                return g
            }
            f=(g.indexOf("?")==-1?"?":"&")+this.query;
            if(g.indexOf("#")==-1){
                return g+f
            }
            return g.replace("#",f+"#")
        },
        _replace:function(h,f,g){
            if(d){
                return g.replace(h,function(){
                    var l=f,j=arguments,k;
                    for(k=0;k<j.length-2;k++){
                        if(j[k]===b){
                            l=l.replace(new RegExp("\\$"+k,"g"),"")
                        }else{
                            l=l.replace(new RegExp("\\$"+k,"g"),j[k])
                        }
                    }
                    return l
                })
            }
            return g.replace(h,f)
        }
    };

    c._init();
    e.tinymce=e.tinyMCE=c
})(window);
(function(f,e){
    var d=e.is,b=/^(href|src|style)$/i,c;
    if(!f&&window.console){
        return console.log("Load jQuery first!")
    }
    e.$=f;
    e.adapter={
        patchEditor:function(j){
            var i=f.fn;
            function h(m,n){
                var l=this;
                if(n){
                    l.removeAttr("data-mce-style")
                }
                return i.css.apply(l,arguments)
            }
            function g(m,n){
                var l=this;
                if(b.test(m)){
                    if(n!==c){
                        l.each(function(o,p){
                            j.dom.setAttrib(p,m,n)
                        });
                        return l
                    }else{
                        return l.attr("data-mce-"+m)
                    }
                }
                return i.attr.apply(l,arguments)
            }
            function k(l){
                if(l.css!==h){
                    l.css=h;
                    l.attr=g;
                    l.tinymce=j;
                    l.pushStack=function(){
                        return k(i.pushStack.apply(this,arguments))
                    }
                }
                return l
            }
            j.$=function(l,m){
                var n=j.getDoc();
                return k(f(l||n,n||m))
            }
        }
    };

    e.extend=f.extend;
    e.extend(e,{
        map:f.map,
        grep:function(g,h){
            return f.grep(g,h||function(){
                return 1
            })
        },
        inArray:function(g,h){
            return f.inArray(h,g||[])
        }
    });
    var a={
        "tinymce.dom.DOMUtils":{
            select:function(i,h){
                var g=this;
                return f.find(i,g.get(h)||g.get(g.settings.root_element)||g.doc,[])
            },
            is:function(h,g){
                return f(this.get(h)).is(g)
            }
        }
    };

    e.onCreate=function(g,i,h){
        e.extend(h,a[i])
    }
})(window.jQuery,tinymce);
tinymce.create("tinymce.util.Dispatcher",{
    scope:null,
    listeners:null,
    inDispatch:false,
    Dispatcher:function(a){
        this.scope=a||this;
        this.listeners=[]
    },
    add:function(b,a){
        this.listeners.push({
            cb:b,
            scope:a||this.scope
        });
        return b
    },
    addToTop:function(d,b){
        var a=this,c={
            cb:d,
            scope:b||a.scope
        };
            
        if(a.inDispatch){
            a.listeners=[c].concat(a.listeners)
        }else{
            a.listeners.unshift(c)
        }
        return d
    },
    remove:function(c){
        var b=this.listeners,a=null;
        tinymce.each(b,function(e,d){
            if(c==e.cb){
                a=e;
                b.splice(d,1);
                return false
            }
        });
        return a
    },
    dispatch:function(){
        var a=this,e,b=arguments,c,d=a.listeners,f;
        a.inDispatch=true;
        for(c=0;c<d.length;c++){
            f=d[c];
            e=f.cb.apply(f.scope,b.length>0?b:[f.scope]);
            if(e===false){
                break
            }
        }
        a.inDispatch=false;
        return e
    }
});
(function(){
    var a=tinymce.each;
    tinymce.create("tinymce.util.URI",{
        URI:function(e,g){
            var f=this,i,d,c,h;
            e=tinymce.trim(e);
            g=f.settings=g||{};
            
            if(/^([\w\-]+):([^\/]{2})/i.test(e)||/^\s*#/.test(e)){
                f.source=e;
                return
            }
            if(e.indexOf("/")===0&&e.indexOf("//")!==0){
                e=(g.base_uri?g.base_uri.protocol||"http":"http")+"://mce_host"+e
            }
            if(!/^[\w\-]*:?\/\//.test(e)){
                h=g.base_uri?g.base_uri.path:new tinymce.util.URI(location.href).directory;
                e=((g.base_uri&&g.base_uri.protocol)||"http")+"://mce_host"+f.toAbsPath(h,e)
            }
            e=e.replace(/@@/g,"(mce_at)");
            e=/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@\/]*):?([^:@\/]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/.exec(e);
            a(["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"],function(b,j){
                var k=e[j];
                if(k){
                    k=k.replace(/\(mce_at\)/g,"@@")
                }
                f[b]=k
            });
            c=g.base_uri;
            if(c){
                if(!f.protocol){
                    f.protocol=c.protocol
                }
                if(!f.userInfo){
                    f.userInfo=c.userInfo
                }
                if(!f.port&&f.host==="mce_host"){
                    f.port=c.port
                }
                if(!f.host||f.host==="mce_host"){
                    f.host=c.host
                }
                f.source=""
            }
        },
        setPath:function(c){
            var b=this;
            c=/^(.*?)\/?(\w+)?$/.exec(c);
            b.path=c[0];
            b.directory=c[1];
            b.file=c[2];
            b.source="";
            b.getURI()
        },
        toRelative:function(b){
            var d=this,f;
            if(b==="./"){
                return b
            }
            b=new tinymce.util.URI(b,{
                base_uri:d
            });
            if((b.host!="mce_host"&&d.host!=b.host&&b.host)||d.port!=b.port||d.protocol!=b.protocol){
                return b.getURI()
            }
            var c=d.getURI(),e=b.getURI();
            if(c==e||(c.charAt(c.length-1)=="/"&&c.substr(0,c.length-1)==e)){
                return c
            }
            f=d.toRelPath(d.path,b.path);
            if(b.query){
                f+="?"+b.query
            }
            if(b.anchor){
                f+="#"+b.anchor
            }
            return f
        },
        toAbsolute:function(b,c){
            b=new tinymce.util.URI(b,{
                base_uri:this
            });
            return b.getURI(this.host==b.host&&this.protocol==b.protocol?c:0)
        },
        toRelPath:function(g,h){
            var c,f=0,d="",e,b;
            g=g.substring(0,g.lastIndexOf("/"));
            g=g.split("/");
            c=h.split("/");
            if(g.length>=c.length){
                for(e=0,b=g.length;e<b;e++){
                    if(e>=c.length||g[e]!=c[e]){
                        f=e+1;
                        break
                    }
                }
            }
            if(g.length<c.length){
                for(e=0,b=c.length;e<b;e++){
                    if(e>=g.length||g[e]!=c[e]){
                        f=e+1;
                        break
                    }
                }
            }
            if(f===1){
                return h
            }
            for(e=0,b=g.length-(f-1);e<b;e++){
                d+="../"
            }
            for(e=f-1,b=c.length;e<b;e++){
                if(e!=f-1){
                    d+="/"+c[e]
                }else{
                    d+=c[e]
                }
            }
            return d
        },
        toAbsPath:function(e,f){
            var c,b=0,h=[],d,g;
            d=/\/$/.test(f)?"/":"";
            e=e.split("/");
            f=f.split("/");
            a(e,function(i){
                if(i){
                    h.push(i)
                }
            });
            e=h;
            for(c=f.length-1,h=[];c>=0;c--){
                if(f[c].length===0||f[c]==="."){
                    continue
                }
                if(f[c]===".."){
                    b++;
                    continue
                }
                if(b>0){
                    b--;
                    continue
                }
                h.push(f[c])
            }
            c=e.length-b;
            if(c<=0){
                g=h.reverse().join("/")
            }else{
                g=e.slice(0,c).join("/")+"/"+h.reverse().join("/")
            }
            if(g.indexOf("/")!==0){
                g="/"+g
            }
            if(d&&g.lastIndexOf("/")!==g.length-1){
                g+=d
            }
            return g
        },
        getURI:function(d){
            var c,b=this;
            if(!b.source||d){
                c="";
                if(!d){
                    if(b.protocol){
                        c+=b.protocol+"://"
                    }
                    if(b.userInfo){
                        c+=b.userInfo+"@"
                    }
                    if(b.host){
                        c+=b.host
                    }
                    if(b.port){
                        c+=":"+b.port
                    }
                }
                if(b.path){
                    c+=b.path
                }
                if(b.query){
                    c+="?"+b.query
                }
                if(b.anchor){
                    c+="#"+b.anchor
                }
                b.source=c
            }
            return b.source
        }
    })
})();
(function(){
    var a=tinymce.each;
    tinymce.create("static tinymce.util.Cookie",{
        getHash:function(d){
            var b=this.get(d),c;
            if(b){
                a(b.split("&"),function(e){
                    e=e.split("=");
                    c=c||{};
                    
                    c[unescape(e[0])]=unescape(e[1])
                })
            }
            return c
        },
        setHash:function(j,b,g,f,i,c){
            var h="";
            a(b,function(e,d){
                h+=(!h?"":"&")+escape(d)+"="+escape(e)
            });
            this.set(j,h,g,f,i,c)
        },
        get:function(i){
            var h=document.cookie,g,f=i+"=",d;
            if(!h){
                return
            }
            d=h.indexOf("; "+f);
            if(d==-1){
                d=h.indexOf(f);
                if(d!==0){
                    return null
                }
            }else{
                d+=2
            }
            g=h.indexOf(";",d);
            if(g==-1){
                g=h.length
            }
            return unescape(h.substring(d+f.length,g))
        },
        set:function(i,b,g,f,h,c){
            document.cookie=i+"="+escape(b)+((g)?"; expires="+g.toGMTString():"")+((f)?"; path="+escape(f):"")+((h)?"; domain="+h:"")+((c)?"; secure":"")
        },
        remove:function(c,e,d){
            var b=new Date();
            b.setTime(b.getTime()-1000);
            this.set(c,"",b,e,d)
        }
    })
})();
(function(){
    function serialize(o,quote){
        var i,v,t,name;
        quote=quote||'"';
        if(o==null){
            return"null"
        }
        t=typeof o;
        if(t=="string"){
            v="\bb\tt\nn\ff\rr\"\"''\\\\";
            return quote+o.replace(/([\u0080-\uFFFF\x00-\x1f\"\'\\])/g,function(a,b){
                if(quote==='"'&&a==="'"){
                    return a
                }
                i=v.indexOf(b);
                if(i+1){
                    return"\\"+v.charAt(i+1)
                }
                a=b.charCodeAt().toString(16);
                return"\\u"+"0000".substring(a.length)+a
            })+quote
        }
        if(t=="object"){
            if(o.hasOwnProperty&&o instanceof Array){
                for(i=0,v="[";i<o.length;i++){
                    v+=(i>0?",":"")+serialize(o[i],quote)
                }
                return v+"]"
            }
            v="{";
            for(name in o){
                if(o.hasOwnProperty(name)){
                    v+=typeof o[name]!="function"?(v.length>1?","+quote:quote)+name+quote+":"+serialize(o[name],quote):""
                }
            }
            return v+"}"
        }
        return""+o
    }
    tinymce.util.JSON={
        serialize:serialize,
        parse:function(s){
            try{
                return eval("("+s+")")
            }catch(ex){}
        }
    }
})();
tinymce.create("static tinymce.util.XHR",{
    send:function(g){
        var a,e,b=window,h=0;
        function f(){
            if(!g.async||a.readyState==4||h++>10000){
                if(g.success&&h<10000&&a.status==200){
                    g.success.call(g.success_scope,""+a.responseText,a,g)
                }else{
                    if(g.error){
                        g.error.call(g.error_scope,h>10000?"TIMED_OUT":"GENERAL",a,g)
                    }
                }
                a=null
            }else{
                b.setTimeout(f,10)
            }
        }
        g.scope=g.scope||this;
        g.success_scope=g.success_scope||g.scope;
        g.error_scope=g.error_scope||g.scope;
        g.async=g.async===false?false:true;
        g.data=g.data||"";
        function d(i){
            a=0;
            try{
                a=new ActiveXObject(i)
            }catch(c){}
            return a
        }
        a=b.XMLHttpRequest?new XMLHttpRequest():d("Microsoft.XMLHTTP")||d("Msxml2.XMLHTTP");
        if(a){
            if(a.overrideMimeType){
                a.overrideMimeType(g.content_type)
            }
            a.open(g.type||(g.data?"POST":"GET"),g.url,g.async);
            if(g.content_type){
                a.setRequestHeader("Content-Type",g.content_type)
            }
            a.setRequestHeader("X-Requested-With","XMLHttpRequest");
            a.send(g.data);
            if(!g.async){
                return f()
            }
            e=b.setTimeout(f,10)
        }
    }
});
(function(){
    var c=tinymce.extend,b=tinymce.util.JSON,a=tinymce.util.XHR;
    tinymce.create("tinymce.util.JSONRequest",{
        JSONRequest:function(d){
            this.settings=c({},d);
            this.count=0
        },
        send:function(f){
            var e=f.error,d=f.success;
            f=c(this.settings,f);
            f.success=function(h,g){
                h=b.parse(h);
                if(typeof(h)=="undefined"){
                    h={
                        error:"JSON Parse error."
                    }
                }
                if(h.error){
                    e.call(f.error_scope||f.scope,h.error,g)
                }else{
                    d.call(f.success_scope||f.scope,h.result)
                }
            };
        
            f.error=function(h,g){
                if(e){
                    e.call(f.error_scope||f.scope,h,g)
                }
            };
    
            f.data=b.serialize({
                id:f.id||"c"+(this.count++),
                method:f.method,
                params:f.params
            });
            f.content_type="application/json";
            a.send(f)
        },
        "static":{
            sendRPC:function(d){
                return new tinymce.util.JSONRequest().send(d)
            }
        }
    })
}());
(function(a){
    a.VK={
        BACKSPACE:8,
        DELETE:46,
        DOWN:40,
        ENTER:13,
        LEFT:37,
        RIGHT:39,
        SPACEBAR:32,
        TAB:9,
        UP:38,
        modifierPressed:function(b){
            return b.shiftKey||b.ctrlKey||b.altKey
        },
        metaKeyPressed:function(b){
            return a.isMac?b.metaKey:b.ctrlKey&&!b.altKey
        }
    }
})(tinymce);
tinymce.util.Quirks=function(d){
    var m=tinymce.VK,t=m.BACKSPACE,u=m.DELETE,p=d.dom,E=d.selection,s=d.settings;
    function c(I,H){
        try{
            d.getDoc().execCommand(I,false,H)
        }catch(G){}
    }
    function z(){
        var G=d.getDoc().documentMode;
        return G?G:6
    }
    function j(){
        function G(J){
            var H,L,I,K;
            H=E.getRng();
            L=p.getParent(H.startContainer,p.isBlock);
            if(J){
                L=p.getNext(L,p.isBlock)
            }
            if(L){
                I=L.firstChild;
                while(I&&I.nodeType==3&&I.nodeValue.length===0){
                    I=I.nextSibling
                }
                if(I&&I.nodeName==="SPAN"){
                    K=I.cloneNode(false)
                }
            }
            d.getDoc().execCommand(J?"ForwardDelete":"Delete",false,null);
            L=p.getParent(H.startContainer,p.isBlock);
            tinymce.each(p.select("span.Apple-style-span,font.Apple-style-span",L),function(M){
                var N=E.getBookmark();
                if(K){
                    p.replace(K.cloneNode(false),M,true)
                }else{
                    p.remove(M,true)
                }
                E.moveToBookmark(N)
            })
        }
        d.onKeyDown.add(function(H,J){
            var I;
            I=J.keyCode==u;
            if(!J.isDefaultPrevented()&&(I||J.keyCode==t)&&!m.modifierPressed(J)){
                J.preventDefault();
                G(I)
            }
        });
        d.addCommand("Delete",function(){
            G()
        })
    }
    function F(){
        function G(J){
            var I=p.create("body");
            var K=J.cloneContents();
            I.appendChild(K);
            return E.serializer.serialize(I,{
                format:"html"
            })
        }
        function H(I){
            var K=G(I);
            var L=p.createRng();
            L.selectNode(d.getBody());
            var J=G(L);
            return K===J
        }
        d.onKeyDown.add(function(J,L){
            var K=L.keyCode,I;
            if(!L.isDefaultPrevented()&&(K==u||K==t)){
                I=J.selection.isCollapsed();
                if(I&&!p.isEmpty(J.getBody())){
                    return
                }
                if(tinymce.isIE&&!I){
                    return
                }
                if(!I&&!H(J.selection.getRng())){
                    return
                }
                J.setContent("");
                J.selection.setCursorLocation(J.getBody(),0);
                J.nodeChanged()
            }
        })
    }
    function x(){
        d.onKeyDown.add(function(G,H){
            if(H.keyCode==65&&m.metaKeyPressed(H)){
                H.preventDefault();
                G.execCommand("SelectAll")
            }
        })
    }
    function y(){
        if(!d.settings.content_editable){
            p.bind(d.getDoc(),"focusin",function(G){
                E.setRng(E.getRng())
            });
            p.bind(d.getDoc(),"mousedown",function(G){
                if(G.target==d.getDoc().documentElement){
                    d.getWin().focus();
                    E.setRng(E.getRng())
                }
            })
        }
    }
    function n(){
        d.onKeyDown.add(function(G,J){
            if(!J.isDefaultPrevented()&&J.keyCode===t){
                if(E.isCollapsed()&&E.getRng(true).startOffset===0){
                    var I=E.getNode();
                    var H=I.previousSibling;
                    if(H&&H.nodeName&&H.nodeName.toLowerCase()==="hr"){
                        p.remove(H);
                        tinymce.dom.Event.cancel(J)
                    }
                }
            }
        })
    }
    function b(){
        if(!Range.prototype.getClientRects){
            d.onMouseDown.add(function(H,I){
                if(I.target.nodeName==="HTML"){
                    var G=H.getBody();
                    G.blur();
                    setTimeout(function(){
                        G.focus()
                    },0)
                }
            })
        }
    }
    function B(){
        d.onClick.add(function(G,H){
            H=H.target;
            if(/^(IMG|HR)$/.test(H.nodeName)){
                E.getSel().setBaseAndExtent(H,0,H,1)
            }
            if(H.nodeName=="A"&&p.hasClass(H,"mceItemAnchor")){
                E.select(H)
            }
            G.nodeChanged()
        })
    }
    function C(){
        function H(){
            var J=p.getAttribs(E.getStart().cloneNode(false));
            return function(){
                var K=E.getStart();
                if(K!==d.getBody()){
                    p.setAttrib(K,"style",null);
                    tinymce.each(J,function(L){
                        K.setAttributeNode(L.cloneNode(true))
                    })
                }
            }
        }
        function G(){
            return !E.isCollapsed()&&p.getParent(E.getStart(),p.isBlock)!=p.getParent(E.getEnd(),p.isBlock)
        }
        function I(J,K){
            K.preventDefault();
            return false
        }
        d.onKeyPress.add(function(J,L){
            var K;
            if((L.keyCode==8||L.keyCode==46)&&G()){
                K=H();
                J.getDoc().execCommand("delete",false,null);
                K();
                L.preventDefault();
                return false
            }
        });
        p.bind(d.getDoc(),"cut",function(K){
            var J;
            if(G()){
                J=H();
                d.onKeyUp.addToTop(I);
                setTimeout(function(){
                    J();
                    d.onKeyUp.remove(I)
                },0)
            }
        })
    }
    function k(){
        var H,G;
        p.bind(d.getDoc(),"selectionchange",function(){
            if(G){
                clearTimeout(G);
                G=0
            }
            G=window.setTimeout(function(){
                var I=E.getRng();
                if(!H||!tinymce.dom.RangeUtils.compareRanges(I,H)){
                    d.nodeChanged();
                    H=I
                }
            },50)
        })
    }
    function D(){
        document.body.setAttribute("role","application")
    }
    function A(){
        d.onKeyDown.add(function(G,I){
            if(!I.isDefaultPrevented()&&I.keyCode===t){
                if(E.isCollapsed()&&E.getRng(true).startOffset===0){
                    var H=E.getNode().previousSibling;
                    if(H&&H.nodeName&&H.nodeName.toLowerCase()==="table"){
                        return tinymce.dom.Event.cancel(I)
                    }
                }
            }
        })
    }
    function h(){
        if(z()>7){
            return
        }
        c("RespectVisibilityInDesign",true);
        d.contentStyles.push(".mceHideBrInPre pre br {display: none}");
        p.addClass(d.getBody(),"mceHideBrInPre");
        d.parser.addNodeFilter("pre",function(G,I){
            var J=G.length,L,H,M,K;
            while(J--){
                L=G[J].getAll("br");
                H=L.length;
                while(H--){
                    M=L[H];
                    K=M.prev;
                    if(K&&K.type===3&&K.value.charAt(K.value-1)!="\n"){
                        K.value+="\n"
                    }else{
                        M.parent.insert(new tinymce.html.Node("#text",3),M,true).value="\n"
                    }
                }
            }
        });
        d.serializer.addNodeFilter("pre",function(G,I){
            var J=G.length,L,H,M,K;
            while(J--){
                L=G[J].getAll("br");
                H=L.length;
                while(H--){
                    M=L[H];
                    K=M.prev;
                    if(K&&K.type==3){
                        K.value=K.value.replace(/\r?\n$/,"")
                    }
                }
            }
        })
    }
    function f(){
        p.bind(d.getBody(),"mouseup",function(I){
            var H,G=E.getNode();
            if(G.nodeName=="IMG"){
                if(H=p.getStyle(G,"width")){
                    p.setAttrib(G,"width",H.replace(/[^0-9%]+/g,""));
                    p.setStyle(G,"width","")
                }
                if(H=p.getStyle(G,"height")){
                    p.setAttrib(G,"height",H.replace(/[^0-9%]+/g,""));
                    p.setStyle(G,"height","")
                }
            }
        })
    }
    function r(){
        d.onKeyDown.add(function(M,N){
            var L,G,H,J,K,O,I;
            L=N.keyCode==u;
            if(!N.isDefaultPrevented()&&(L||N.keyCode==t)&&!m.modifierPressed(N)){
                G=E.getRng();
                H=G.startContainer;
                J=G.startOffset;
                I=G.collapsed;
                if(H.nodeType==3&&H.nodeValue.length>0&&((J===0&&!I)||(I&&J===(L?0:1)))){
                    nonEmptyElements=M.schema.getNonEmptyElements();
                    N.preventDefault();
                    K=p.create("br",{
                        id:"__tmp"
                    });
                    H.parentNode.insertBefore(K,H);
                    M.getDoc().execCommand(L?"ForwardDelete":"Delete",false,null);
                    H=E.getRng().startContainer;
                    O=H.previousSibling;
                    if(O&&O.nodeType==1&&!p.isBlock(O)&&p.isEmpty(O)&&!nonEmptyElements[O.nodeName.toLowerCase()]){
                        p.remove(O)
                    }
                    p.remove("__tmp")
                }
            }
        })
    }
    function e(){
        d.onKeyDown.add(function(K,L){
            var I,H,M,G,J;
            if(L.isDefaultPrevented()||L.keyCode!=m.BACKSPACE){
                return
            }
            I=E.getRng();
            H=I.startContainer;
            M=I.startOffset;
            G=p.getRoot();
            J=H;
            if(!I.collapsed||M!==0){
                return
            }while(J&&J.parentNode&&J.parentNode.firstChild==J&&J.parentNode!=G){
                J=J.parentNode
            }
            if(J.tagName==="BLOCKQUOTE"){
                K.formatter.toggle("blockquote",null,J);
                I.setStart(H,0);
                I.setEnd(H,0);
                E.setRng(I);
                E.collapse(false)
            }
        })
    }
    function l(){
        function G(){
            d._refreshContentEditable();
            c("StyleWithCSS",false);
            c("enableInlineTableEditing",false);
            if(!s.object_resizing){
                c("enableObjectResizing",false)
            }
        }
        if(!s.readonly){
            d.onBeforeExecCommand.add(G);
            d.onMouseDown.add(G)
        }
    }
    function o(){
        function G(H,I){
            tinymce.each(p.select("a"),function(L){
                var J=L.parentNode,K=p.getRoot();
                if(J.lastChild===L){
                    while(J&&!p.isBlock(J)){
                        if(J.parentNode.lastChild!==J||J===K){
                            return
                        }
                        J=J.parentNode
                    }
                    p.add(J,"br",{
                        "data-mce-bogus":1
                    })
                }
            })
        }
        d.onExecCommand.add(function(H,I){
            if(I==="CreateLink"){
                G(H)
            }
        });
        d.onSetContent.add(E.onSetContent.add(G))
    }
    function v(){
        if(s.forced_root_block){
            d.onInit.add(function(){
                c("DefaultParagraphSeparator",s.forced_root_block)
            })
        }
    }
    function a(){
        function G(I,H){
            if(!I||!H.initial){
                d.execCommand("mceRepaint")
            }
        }
        d.onUndo.add(G);
        d.onRedo.add(G);
        d.onSetContent.add(G)
    }
    function q(){
        d.onKeyDown.add(function(H,I){
            var G;
            if(!I.isDefaultPrevented()&&I.keyCode==t){
                G=H.getDoc().selection.createRange();
                if(G&&G.item){
                    I.preventDefault();
                    H.undoManager.beforeChange();
                    p.remove(G.item(0));
                    H.undoManager.add()
                }
            }
        })
    }
    function i(){
        var G;
        if(z()>=10){
            G="";
            tinymce.each("p div h1 h2 h3 h4 h5 h6".split(" "),function(H,I){
                G+=(I>0?",":"")+H+":empty"
            });
            d.contentStyles.push(G+"{padding-right: 1px !important}")
        }
    }
    function g(){
        var I,H,Y,G,T,W,U,X,J,K,V,R,Q,S=document,O=d.getDoc();
        if(!s.object_resizing||s.webkit_fake_resize===false){
            return
        }
        c("enableObjectResizing",false);
        V={
            n:[0.5,0,0,-1],
            e:[1,0.5,1,0],
            s:[0.5,1,0,1],
            w:[0,0.5,-1,0],
            nw:[0,0,-1,-1],
            ne:[1,0,1,-1],
            se:[1,1,1,1],
            sw:[0,1,-1,1]
        };
        
        function M(ac){
            var ab,aa;
            ab=ac.screenX-W;
            aa=ac.screenY-U;
            R=ab*T[2]+X;
            Q=aa*T[3]+J;
            R=R<5?5:R;
            Q=Q<5?5:Q;
            if(m.modifierPressed(ac)||(Y.nodeName=="IMG"&&T[2]*T[3]!==0)){
                R=Math.round(Q/K);
                Q=Math.round(R*K)
            }
            p.setStyles(G,{
                width:R,
                height:Q
            });
            if(T[2]<0&&G.clientWidth<=R){
                p.setStyle(G,"left",I+(X-R))
            }
            if(T[3]<0&&G.clientHeight<=Q){
                p.setStyle(G,"top",H+(J-Q))
            }
        }
        function Z(){
            function aa(ab,ac){
                if(ac){
                    if(Y.style[ab]||!d.schema.isValid(Y.nodeName.toLowerCase(),ab)){
                        p.setStyle(Y,ab,ac)
                    }else{
                        p.setAttrib(Y,ab,ac)
                    }
                }
            }
            aa("width",R);
            aa("height",Q);
            p.unbind(O,"mousemove",M);
            p.unbind(O,"mouseup",Z);
            if(S!=O){
                p.unbind(S,"mousemove",M);
                p.unbind(S,"mouseup",Z)
            }
            p.remove(G);
            L(Y)
        }
        function L(ad){
            var ab,ac,aa;
            N();
            ab=p.getPos(ad);
            I=ab.x;
            H=ab.y;
            ac=ad.offsetWidth;
            aa=ad.offsetHeight;
            if(Y!=ad){
                Y=ad;
                R=Q=0
            }
            tinymce.each(V,function(ag,ae){
                var af;
                af=p.get("mceResizeHandle"+ae);
                if(!af){
                    af=p.add(O.documentElement,"div",{
                        id:"mceResizeHandle"+ae,
                        "class":"mceResizeHandle",
                        style:"cursor:"+ae+"-resize; margin:0; padding:0"
                    });
                    p.bind(af,"mousedown",function(ah){
                        ah.preventDefault();
                        Z();
                        W=ah.screenX;
                        U=ah.screenY;
                        X=Y.clientWidth;
                        J=Y.clientHeight;
                        K=J/X;
                        T=ag;
                        G=Y.cloneNode(true);
                        p.addClass(G,"mceClonedResizable");
                        p.setStyles(G,{
                            left:I,
                            top:H,
                            margin:0
                        });
                        O.documentElement.appendChild(G);
                        p.bind(O,"mousemove",M);
                        p.bind(O,"mouseup",Z);
                        if(S!=O){
                            p.bind(S,"mousemove",M);
                            p.bind(S,"mouseup",Z)
                        }
                    })
                }else{
                    p.show(af)
                }
                p.setStyles(af,{
                    left:(ac*ag[0]+I)-(af.offsetWidth/2),
                    top:(aa*ag[1]+H)-(af.offsetHeight/2)
                })
            });
            if(!tinymce.isOpera&&Y.nodeName=="IMG"){
                Y.setAttribute("data-mce-selected","1")
            }
        }
        function N(){
            if(Y){
                Y.removeAttribute("data-mce-selected")
            }
            for(var aa in V){
                p.hide("mceResizeHandle"+aa)
            }
        }
        d.contentStyles.push(".mceResizeHandle {position: absolute;border: 1px solid black;background: #FFF;width: 5px;height: 5px;z-index: 10000}.mceResizeHandle:hover {background: #000}img[data-mce-selected] {outline: 1px solid black}img.mceClonedResizable, table.mceClonedResizable {position: absolute;outline: 1px dashed black;opacity: .5;z-index: 10000}");
        function P(){
            var aa=p.getParent(E.getNode(),"table,img");
            tinymce.each(p.select("img[data-mce-selected]"),function(ab){
                ab.removeAttribute("data-mce-selected")
            });
            if(aa){
                L(aa)
            }else{
                N()
            }
        }
        d.onNodeChange.add(P);
        p.bind(O,"selectionchange",P);
        d.serializer.addAttributeFilter("data-mce-selected",function(aa,ab){
            var ac=aa.length;
            while(ac--){
                aa[ac].attr(ab,null)
            }
        })
    }
    A();
    e();
    F();
    if(tinymce.isWebKit){
        r();
        j();
        y();
        B();
        v();
        if(tinymce.isIDevice){
            k()
        }else{
            g();
            x()
        }
    }
    if(tinymce.isIE){
        n();
        D();
        h();
        f();
        q();
        i()
    }
    if(tinymce.isGecko){
        n();
        b();
        C();
        l();
        o();
        a()
    }
    if(tinymce.isOpera){
        g()
    }
};
(function(j){
    var a,g,d,k=/[&<>\"\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,b=/[<>&\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,f=/[<>&\"\']/g,c=/&(#x|#)?([\w]+);/g,i={
        128:"\u20AC",
        130:"\u201A",
        131:"\u0192",
        132:"\u201E",
        133:"\u2026",
        134:"\u2020",
        135:"\u2021",
        136:"\u02C6",
        137:"\u2030",
        138:"\u0160",
        139:"\u2039",
        140:"\u0152",
        142:"\u017D",
        145:"\u2018",
        146:"\u2019",
        147:"\u201C",
        148:"\u201D",
        149:"\u2022",
        150:"\u2013",
        151:"\u2014",
        152:"\u02DC",
        153:"\u2122",
        154:"\u0161",
        155:"\u203A",
        156:"\u0153",
        158:"\u017E",
        159:"\u0178"
    };
    
    g={
        '"':"&quot;",
        "'":"&#39;",
        "<":"&lt;",
        ">":"&gt;",
        "&":"&amp;"
    };
    
    d={
        "&lt;":"<",
        "&gt;":">",
        "&amp;":"&",
        "&quot;":'"',
        "&apos;":"'"
    };
    
    function h(l){
        var m;
        m=document.createElement("div");
        m.innerHTML=l;
        return m.textContent||m.innerText||l
    }
    function e(m,p){
        var n,o,l,q={};
        
        if(m){
            m=m.split(",");
            p=p||10;
            for(n=0;n<m.length;n+=2){
                o=String.fromCharCode(parseInt(m[n],p));
                if(!g[o]){
                    l="&"+m[n+1]+";";
                    q[o]=l;
                    q[l]=o
                }
            }
            return q
        }
    }
    a=e("50,nbsp,51,iexcl,52,cent,53,pound,54,curren,55,yen,56,brvbar,57,sect,58,uml,59,copy,5a,ordf,5b,laquo,5c,not,5d,shy,5e,reg,5f,macr,5g,deg,5h,plusmn,5i,sup2,5j,sup3,5k,acute,5l,micro,5m,para,5n,middot,5o,cedil,5p,sup1,5q,ordm,5r,raquo,5s,frac14,5t,frac12,5u,frac34,5v,iquest,60,Agrave,61,Aacute,62,Acirc,63,Atilde,64,Auml,65,Aring,66,AElig,67,Ccedil,68,Egrave,69,Eacute,6a,Ecirc,6b,Euml,6c,Igrave,6d,Iacute,6e,Icirc,6f,Iuml,6g,ETH,6h,Ntilde,6i,Ograve,6j,Oacute,6k,Ocirc,6l,Otilde,6m,Ouml,6n,times,6o,Oslash,6p,Ugrave,6q,Uacute,6r,Ucirc,6s,Uuml,6t,Yacute,6u,THORN,6v,szlig,70,agrave,71,aacute,72,acirc,73,atilde,74,auml,75,aring,76,aelig,77,ccedil,78,egrave,79,eacute,7a,ecirc,7b,euml,7c,igrave,7d,iacute,7e,icirc,7f,iuml,7g,eth,7h,ntilde,7i,ograve,7j,oacute,7k,ocirc,7l,otilde,7m,ouml,7n,divide,7o,oslash,7p,ugrave,7q,uacute,7r,ucirc,7s,uuml,7t,yacute,7u,thorn,7v,yuml,ci,fnof,sh,Alpha,si,Beta,sj,Gamma,sk,Delta,sl,Epsilon,sm,Zeta,sn,Eta,so,Theta,sp,Iota,sq,Kappa,sr,Lambda,ss,Mu,st,Nu,su,Xi,sv,Omicron,t0,Pi,t1,Rho,t3,Sigma,t4,Tau,t5,Upsilon,t6,Phi,t7,Chi,t8,Psi,t9,Omega,th,alpha,ti,beta,tj,gamma,tk,delta,tl,epsilon,tm,zeta,tn,eta,to,theta,tp,iota,tq,kappa,tr,lambda,ts,mu,tt,nu,tu,xi,tv,omicron,u0,pi,u1,rho,u2,sigmaf,u3,sigma,u4,tau,u5,upsilon,u6,phi,u7,chi,u8,psi,u9,omega,uh,thetasym,ui,upsih,um,piv,812,bull,816,hellip,81i,prime,81j,Prime,81u,oline,824,frasl,88o,weierp,88h,image,88s,real,892,trade,89l,alefsym,8cg,larr,8ch,uarr,8ci,rarr,8cj,darr,8ck,harr,8dl,crarr,8eg,lArr,8eh,uArr,8ei,rArr,8ej,dArr,8ek,hArr,8g0,forall,8g2,part,8g3,exist,8g5,empty,8g7,nabla,8g8,isin,8g9,notin,8gb,ni,8gf,prod,8gh,sum,8gi,minus,8gn,lowast,8gq,radic,8gt,prop,8gu,infin,8h0,ang,8h7,and,8h8,or,8h9,cap,8ha,cup,8hb,int,8hk,there4,8hs,sim,8i5,cong,8i8,asymp,8j0,ne,8j1,equiv,8j4,le,8j5,ge,8k2,sub,8k3,sup,8k4,nsub,8k6,sube,8k7,supe,8kl,oplus,8kn,otimes,8l5,perp,8m5,sdot,8o8,lceil,8o9,rceil,8oa,lfloor,8ob,rfloor,8p9,lang,8pa,rang,9ea,loz,9j0,spades,9j3,clubs,9j5,hearts,9j6,diams,ai,OElig,aj,oelig,b0,Scaron,b1,scaron,bo,Yuml,m6,circ,ms,tilde,802,ensp,803,emsp,809,thinsp,80c,zwnj,80d,zwj,80e,lrm,80f,rlm,80j,ndash,80k,mdash,80o,lsquo,80p,rsquo,80q,sbquo,80s,ldquo,80t,rdquo,80u,bdquo,810,dagger,811,Dagger,81g,permil,81p,lsaquo,81q,rsaquo,85c,euro",32);
    j.html=j.html||{};
    
    j.html.Entities={
        encodeRaw:function(m,l){
            return m.replace(l?k:b,function(n){
                return g[n]||n
            })
        },
        encodeAllRaw:function(l){
            return(""+l).replace(f,function(m){
                return g[m]||m
            })
        },
        encodeNumeric:function(m,l){
            return m.replace(l?k:b,function(n){
                if(n.length>1){
                    return"&#"+(((n.charCodeAt(0)-55296)*1024)+(n.charCodeAt(1)-56320)+65536)+";"
                }
                return g[n]||"&#"+n.charCodeAt(0)+";"
            })
        },
        encodeNamed:function(n,l,m){
            m=m||a;
            return n.replace(l?k:b,function(o){
                return g[o]||m[o]||o
            })
        },
        getEncodeFunc:function(l,o){
            var p=j.html.Entities;
            o=e(o)||a;
            function m(r,q){
                return r.replace(q?k:b,function(s){
                    return g[s]||o[s]||"&#"+s.charCodeAt(0)+";"||s
                })
            }
            function n(r,q){
                return p.encodeNamed(r,q,o)
            }
            l=j.makeMap(l.replace(/\+/g,","));
            if(l.named&&l.numeric){
                return m
            }
            if(l.named){
                if(o){
                    return n
                }
                return p.encodeNamed
            }
            if(l.numeric){
                return p.encodeNumeric
            }
            return p.encodeRaw
        },
        decode:function(l){
            return l.replace(c,function(n,m,o){
                if(m){
                    o=parseInt(o,m.length===2?16:10);
                    if(o>65535){
                        o-=65536;
                        return String.fromCharCode(55296+(o>>10),56320+(o&1023))
                    }else{
                        return i[o]||String.fromCharCode(o)
                    }
                }
                return d[n]||a[n]||h(n)
            })
        }
    }
})(tinymce);
tinymce.html.Styles=function(d,f){
    var k=/rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*\)/gi,h=/(?:url(?:(?:\(\s*\"([^\"]+)\"\s*\))|(?:\(\s*\'([^\']+)\'\s*\))|(?:\(\s*([^)\s]+)\s*\))))|(?:\'([^\']+)\')|(?:\"([^\"]+)\")/gi,b=/\s*([^:]+):\s*([^;]+);?/g,l=/\s+$/,m=/rgb/,e,g,a={},j;
    d=d||{};
    
    j="\\\" \\' \\; \\: ; : \uFEFF".split(" ");
    for(g=0;g<j.length;g++){
        a[j[g]]="\uFEFF"+g;
        a["\uFEFF"+g]=j[g]
    }
    function c(n,q,p,i){
        function o(r){
            r=parseInt(r).toString(16);
            return r.length>1?r:"0"+r
        }
        return"#"+o(q)+o(p)+o(i)
    }
    return{
        toHex:function(i){
            return i.replace(k,c)
        },
        parse:function(s){
            var z={},q,n,x,r,v=d.url_converter,y=d.url_converter_scope||this;
            function p(D,G){
                var F,C,B,E;
                F=z[D+"-top"+G];
                if(!F){
                    return
                }
                C=z[D+"-right"+G];
                if(F!=C){
                    return
                }
                B=z[D+"-bottom"+G];
                if(C!=B){
                    return
                }
                E=z[D+"-left"+G];
                if(B!=E){
                    return
                }
                z[D+G]=E;
                delete z[D+"-top"+G];
                delete z[D+"-right"+G];
                delete z[D+"-bottom"+G];
                delete z[D+"-left"+G]
            }
            function u(C){
                var D=z[C],B;
                if(!D||D.indexOf(" ")<0){
                    return
                }
                D=D.split(" ");
                B=D.length;
                while(B--){
                    if(D[B]!==D[0]){
                        return false
                    }
                }
                z[C]=D[0];
                return true
            }
            function A(D,C,B,E){
                if(!u(C)){
                    return
                }
                if(!u(B)){
                    return
                }
                if(!u(E)){
                    return
                }
                z[D]=z[C]+" "+z[B]+" "+z[E];
                delete z[C];
                delete z[B];
                delete z[E]
            }
            function t(B){
                r=true;
                return a[B]
            }
            function i(C,B){
                if(r){
                    C=C.replace(/\uFEFF[0-9]/g,function(D){
                        return a[D]
                    })
                }
                if(!B){
                    C=C.replace(/\\([\'\";:])/g,"$1")
                }
                return C
            }
            function o(C,B,F,E,G,D){
                G=G||D;
                if(G){
                    G=i(G);
                    return"'"+G.replace(/\'/g,"\\'")+"'"
                }
                B=i(B||F||E);
                if(v){
                    B=v.call(y,B,"style")
                }
                return"url('"+B.replace(/\'/g,"\\'")+"')"
            }
            if(s){
                s=s.replace(/\\[\"\';:\uFEFF]/g,t).replace(/\"[^\"]+\"|\'[^\']+\'/g,function(B){
                    return B.replace(/[;:]/g,t)
                });
                while(q=b.exec(s)){
                    n=q[1].replace(l,"").toLowerCase();
                    x=q[2].replace(l,"");
                    if(n&&x.length>0){
                        if(n==="font-weight"&&x==="700"){
                            x="bold"
                        }else{
                            if(n==="color"||n==="background-color"){
                                x=x.toLowerCase()
                            }
                        }
                        x=x.replace(k,c);
                        x=x.replace(h,o);
                        z[n]=r?i(x,true):x
                    }
                    b.lastIndex=q.index+q[0].length
                }
                p("border","");
                p("border","-width");
                p("border","-color");
                p("border","-style");
                p("padding","");
                p("margin","");
                A("border","border-width","border-style","border-color");
                if(z.border==="medium none"){
                    delete z.border
                }
            }
            return z
        },
        serialize:function(p,r){
            var o="",n,q;
            function i(t){
                var x,u,s,v;
                x=f.styles[t];
                if(x){
                    for(u=0,s=x.length;u<s;u++){
                        t=x[u];
                        v=p[t];
                        if(v!==e&&v.length>0){
                            o+=(o.length>0?" ":"")+t+": "+v+";"
                        }
                    }
                }
            }
            if(r&&f&&f.styles){
                i("*");
                i(r)
            }else{
                for(n in p){
                    q=p[n];
                    if(q!==e&&q.length>0){
                        o+=(o.length>0?" ":"")+n+": "+q+";"
                    }
                }
            }
            return o
        }
    }
};
(function(f){
    var a={},e=f.makeMap,g=f.each;
    function d(j,i){
        return j.split(i||",")
    }
    function h(m,l){
        var j,k={};
        
        function i(n){
            return n.replace(/[A-Z]+/g,function(o){
                return i(m[o])
            })
        }
        for(j in m){
            if(m.hasOwnProperty(j)){
                m[j]=i(m[j])
            }
        }
        i(l).replace(/#/g,"#text").replace(/(\w+)\[([^\]]+)\]\[([^\]]*)\]/g,function(q,o,n,p){
            n=d(n,"|");
            k[o]={
                attributes:e(n),
                attributesOrder:n,
                children:e(p,"|",{
                    "#comment":{}
                })
            }
        });
        return k
    }
    function b(){
        var i=a.html5;
        if(!i){
            i=a.html5=h({
                A:"id|accesskey|class|dir|draggable|item|hidden|itemprop|role|spellcheck|style|subject|title|onclick|ondblclick|onmousedown|onmouseup|onmouseover|onmousemove|onmouseout|onkeypress|onkeydown|onkeyup",
                B:"#|a|abbr|area|audio|b|bdo|br|button|canvas|cite|code|command|datalist|del|dfn|em|embed|i|iframe|img|input|ins|kbd|keygen|label|link|map|mark|meta|meter|noscript|object|output|progress|q|ruby|samp|script|select|small|span|strong|sub|sup|svg|textarea|time|var|video|wbr",
                C:"#|a|abbr|area|address|article|aside|audio|b|bdo|blockquote|br|button|canvas|cite|code|command|datalist|del|details|dfn|dialog|div|dl|em|embed|fieldset|figure|footer|form|h1|h2|h3|h4|h5|h6|header|hgroup|hr|i|iframe|img|input|ins|kbd|keygen|label|link|map|mark|menu|meta|meter|nav|noscript|ol|object|output|p|pre|progress|q|ruby|samp|script|section|select|small|span|strong|style|sub|sup|svg|table|textarea|time|ul|var|video"
            },"html[A|manifest][body|head]head[A][base|command|link|meta|noscript|script|style|title]title[A][#]base[A|href|target][]link[A|href|rel|media|type|sizes][]meta[A|http-equiv|name|content|charset][]style[A|type|media|scoped][#]script[A|charset|type|src|defer|async][#]noscript[A][C]body[A][C]section[A][C]nav[A][C]article[A][C]aside[A][C]h1[A][B]h2[A][B]h3[A][B]h4[A][B]h5[A][B]h6[A][B]hgroup[A][h1|h2|h3|h4|h5|h6]header[A][C]footer[A][C]address[A][C]p[A][B]br[A][]pre[A][B]dialog[A][dd|dt]blockquote[A|cite][C]ol[A|start|reversed][li]ul[A][li]li[A|value][C]dl[A][dd|dt]dt[A][B]dd[A][C]a[A|href|target|ping|rel|media|type][B]em[A][B]strong[A][B]small[A][B]cite[A][B]q[A|cite][B]dfn[A][B]abbr[A][B]code[A][B]var[A][B]samp[A][B]kbd[A][B]sub[A][B]sup[A][B]i[A][B]b[A][B]mark[A][B]progress[A|value|max][B]meter[A|value|min|max|low|high|optimum][B]time[A|datetime][B]ruby[A][B|rt|rp]rt[A][B]rp[A][B]bdo[A][B]span[A][B]ins[A|cite|datetime][B]del[A|cite|datetime][B]figure[A][C|legend|figcaption]figcaption[A][C]img[A|alt|src|height|width|usemap|ismap][]iframe[A|name|src|height|width|sandbox|seamless][]embed[A|src|height|width|type][]object[A|data|type|height|width|usemap|name|form|classid][param]param[A|name|value][]details[A|open][C|legend]command[A|type|label|icon|disabled|checked|radiogroup][]menu[A|type|label][C|li]legend[A][C|B]div[A][C]source[A|src|type|media][]audio[A|src|autobuffer|autoplay|loop|controls][source]video[A|src|autobuffer|autoplay|loop|controls|width|height|poster][source]hr[A][]form[A|accept-charset|action|autocomplete|enctype|method|name|novalidate|target][C]fieldset[A|disabled|form|name][C|legend]label[A|form|for][B]input[A|type|accept|alt|autocomplete|checked|disabled|form|formaction|formenctype|formmethod|formnovalidate|formtarget|height|list|max|maxlength|min|multiple|pattern|placeholder|readonly|required|size|src|step|width|files|value|name][]button[A|autofocus|disabled|form|formaction|formenctype|formmethod|formnovalidate|formtarget|name|value|type][B]select[A|autofocus|disabled|form|multiple|name|size][option|optgroup]datalist[A][B|option]optgroup[A|disabled|label][option]option[A|disabled|selected|label|value][]textarea[A|autofocus|disabled|form|maxlength|name|placeholder|readonly|required|rows|cols|wrap][]keygen[A|autofocus|challenge|disabled|form|keytype|name][]output[A|for|form|name][B]canvas[A|width|height][]map[A|name][B|C]area[A|shape|coords|href|alt|target|media|rel|ping|type][]mathml[A][]svg[A][]table[A|border][caption|colgroup|thead|tfoot|tbody|tr]caption[A][C]colgroup[A|span][col]col[A|span][]thead[A][tr]tfoot[A][tr]tbody[A][tr]tr[A][th|td]th[A|headers|rowspan|colspan|scope][B]td[A|headers|rowspan|colspan][C]wbr[A][]")
        }
        return i
    }
    function c(){
        var i=a.html4;
        if(!i){
            i=a.html4=h({
                Z:"H|K|N|O|P",
                Y:"X|form|R|Q",
                ZG:"E|span|width|align|char|charoff|valign",
                X:"p|T|div|U|W|isindex|fieldset|table",
                ZF:"E|align|char|charoff|valign",
                W:"pre|hr|blockquote|address|center|noframes",
                ZE:"abbr|axis|headers|scope|rowspan|colspan|align|char|charoff|valign|nowrap|bgcolor|width|height",
                ZD:"[E][S]",
                U:"ul|ol|dl|menu|dir",
                ZC:"p|Y|div|U|W|table|br|span|bdo|object|applet|img|map|K|N|Q",
                T:"h1|h2|h3|h4|h5|h6",
                ZB:"X|S|Q",
                S:"R|P",
                ZA:"a|G|J|M|O|P",
                R:"a|H|K|N|O",
                Q:"noscript|P",
                P:"ins|del|script",
                O:"input|select|textarea|label|button",
                N:"M|L",
                M:"em|strong|dfn|code|q|samp|kbd|var|cite|abbr|acronym",
                L:"sub|sup",
                K:"J|I",
                J:"tt|i|b|u|s|strike",
                I:"big|small|font|basefont",
                H:"G|F",
                G:"br|span|bdo",
                F:"object|applet|img|map|iframe",
                E:"A|B|C",
                D:"accesskey|tabindex|onfocus|onblur",
                C:"onclick|ondblclick|onmousedown|onmouseup|onmouseover|onmousemove|onmouseout|onkeypress|onkeydown|onkeyup",
                B:"lang|xml:lang|dir",
                A:"id|class|style|title"
            },"script[id|charset|type|language|src|defer|xml:space][]style[B|id|type|media|title|xml:space][]object[E|declare|classid|codebase|data|type|codetype|archive|standby|width|height|usemap|name|tabindex|align|border|hspace|vspace][#|param|Y]param[id|name|value|valuetype|type][]p[E|align][#|S]a[E|D|charset|type|name|href|hreflang|rel|rev|shape|coords|target][#|Z]br[A|clear][]span[E][#|S]bdo[A|C|B][#|S]applet[A|codebase|archive|code|object|alt|name|width|height|align|hspace|vspace][#|param|Y]h1[E|align][#|S]img[E|src|alt|name|longdesc|width|height|usemap|ismap|align|border|hspace|vspace][]map[B|C|A|name][X|form|Q|area]h2[E|align][#|S]iframe[A|longdesc|name|src|frameborder|marginwidth|marginheight|scrolling|align|width|height][#|Y]h3[E|align][#|S]tt[E][#|S]i[E][#|S]b[E][#|S]u[E][#|S]s[E][#|S]strike[E][#|S]big[E][#|S]small[E][#|S]font[A|B|size|color|face][#|S]basefont[id|size|color|face][]em[E][#|S]strong[E][#|S]dfn[E][#|S]code[E][#|S]q[E|cite][#|S]samp[E][#|S]kbd[E][#|S]var[E][#|S]cite[E][#|S]abbr[E][#|S]acronym[E][#|S]sub[E][#|S]sup[E][#|S]input[E|D|type|name|value|checked|disabled|readonly|size|maxlength|src|alt|usemap|onselect|onchange|accept|align][]select[E|name|size|multiple|disabled|tabindex|onfocus|onblur|onchange][optgroup|option]optgroup[E|disabled|label][option]option[E|selected|disabled|label|value][]textarea[E|D|name|rows|cols|disabled|readonly|onselect|onchange][]label[E|for|accesskey|onfocus|onblur][#|S]button[E|D|name|value|type|disabled][#|p|T|div|U|W|table|G|object|applet|img|map|K|N|Q]h4[E|align][#|S]ins[E|cite|datetime][#|Y]h5[E|align][#|S]del[E|cite|datetime][#|Y]h6[E|align][#|S]div[E|align][#|Y]ul[E|type|compact][li]li[E|type|value][#|Y]ol[E|type|compact|start][li]dl[E|compact][dt|dd]dt[E][#|S]dd[E][#|Y]menu[E|compact][li]dir[E|compact][li]pre[E|width|xml:space][#|ZA]hr[E|align|noshade|size|width][]blockquote[E|cite][#|Y]address[E][#|S|p]center[E][#|Y]noframes[E][#|Y]isindex[A|B|prompt][]fieldset[E][#|legend|Y]legend[E|accesskey|align][#|S]table[E|summary|width|border|frame|rules|cellspacing|cellpadding|align|bgcolor][caption|col|colgroup|thead|tfoot|tbody|tr]caption[E|align][#|S]col[ZG][]colgroup[ZG][col]thead[ZF][tr]tr[ZF|bgcolor][th|td]th[E|ZE][#|Y]form[E|action|method|name|enctype|onsubmit|onreset|accept|accept-charset|target][#|X|R|Q]noscript[E][#|Y]td[E|ZE][#|Y]tfoot[ZF][tr]tbody[ZF][tr]area[E|D|shape|coords|href|nohref|alt|target][]base[id|href|target][]body[E|onload|onunload|background|bgcolor|text|link|vlink|alink][#|Y]")
        }
        return i
    }
    f.html.Schema=function(A){
        var u=this,s={},k={},j=[],D,y;
        var o,q,z,r,v,n,p={};
    
        function m(F,E,H){
            var G=A[F];
            if(!G){
                G=a[F];
                if(!G){
                    G=e(E," ",e(E.toUpperCase()," "));
                    G=f.extend(G,H);
                    a[F]=G
                }
            }else{
                G=e(G,",",e(G.toUpperCase()," "))
            }
            return G
        }
        A=A||{};

        y=A.schema=="html5"?b():c();
        if(A.verify_html===false){
            A.valid_elements="*[*]"
        }
        if(A.valid_styles){
            D={};
    
            g(A.valid_styles,function(F,E){
                D[E]=f.explode(F)
            })
        }
        o=m("whitespace_elements","pre script style textarea");
        q=m("self_closing_elements","colgroup dd dt li option p td tfoot th thead tr");
        z=m("short_ended_elements","area base basefont br col frame hr img input isindex link meta param embed source wbr");
        r=m("boolean_attributes","checked compact declare defer disabled ismap multiple nohref noresize noshade nowrap readonly selected autoplay loop controls");
        n=m("non_empty_elements","td th iframe video audio object",z);
        v=m("block_elements","h1 h2 h3 h4 h5 h6 hr p div address pre form table tbody thead tfoot th tr td li ol ul caption blockquote center dl dt dd dir fieldset noscript menu isindex samp header footer article section hgroup aside nav figure option datalist select optgroup");
        function i(E){
            return new RegExp("^"+E.replace(/([?+*])/g,".$1")+"$")
        }
        function C(L){
            var K,G,Z,V,aa,F,I,U,X,Q,Y,ac,O,J,W,E,S,H,ab,ad,P,T,N=/^([#+\-])?([^\[\/]+)(?:\/([^\[]+))?(?:\[([^\]]+)\])?$/,R=/^([!\-])?(\w+::\w+|[^=:<]+)?(?:([=:<])(.*))?$/,M=/[*?+]/;
            if(L){
                L=d(L);
                if(s["@"]){
                    S=s["@"].attributes;
                    H=s["@"].attributesOrder
                }
                for(K=0,G=L.length;K<G;K++){
                    F=N.exec(L[K]);
                    if(F){
                        W=F[1];
                        Q=F[2];
                        E=F[3];
                        X=F[4];
                        O={};
                
                        J=[];
                        I={
                            attributes:O,
                            attributesOrder:J
                        };
                
                        if(W==="#"){
                            I.paddEmpty=true
                        }
                        if(W==="-"){
                            I.removeEmpty=true
                        }
                        if(S){
                            for(ad in S){
                                O[ad]=S[ad]
                            }
                            J.push.apply(J,H)
                        }
                        if(X){
                            X=d(X,"|");
                            for(Z=0,V=X.length;Z<V;Z++){
                                F=R.exec(X[Z]);
                                if(F){
                                    U={};
                            
                                    ac=F[1];
                                    Y=F[2].replace(/::/g,":");
                                    W=F[3];
                                    T=F[4];
                                    if(ac==="!"){
                                        I.attributesRequired=I.attributesRequired||[];
                                        I.attributesRequired.push(Y);
                                        U.required=true
                                    }
                                    if(ac==="-"){
                                        delete O[Y];
                                        J.splice(f.inArray(J,Y),1);
                                        continue
                                    }
                                    if(W){
                                        if(W==="="){
                                            I.attributesDefault=I.attributesDefault||[];
                                            I.attributesDefault.push({
                                                name:Y,
                                                value:T
                                            });
                                            U.defaultValue=T
                                        }
                                        if(W===":"){
                                            I.attributesForced=I.attributesForced||[];
                                            I.attributesForced.push({
                                                name:Y,
                                                value:T
                                            });
                                            U.forcedValue=T
                                        }
                                        if(W==="<"){
                                            U.validValues=e(T,"?")
                                        }
                                    }
                                    if(M.test(Y)){
                                        I.attributePatterns=I.attributePatterns||[];
                                        U.pattern=i(Y);
                                        I.attributePatterns.push(U)
                                    }else{
                                        if(!O[Y]){
                                            J.push(Y)
                                        }
                                        O[Y]=U
                                    }
                                }
                            }
                        }
                        if(!S&&Q=="@"){
                            S=O;
                            H=J
                        }
                        if(E){
                            I.outputName=Q;
                            s[E]=I
                        }
                        if(M.test(Q)){
                            I.pattern=i(Q);
                            j.push(I)
                        }else{
                            s[Q]=I
                        }
                    }
                }
            }
        }
        function t(E){
            s={};
    
            j=[];
            C(E);
            g(y,function(G,F){
                k[F]=G.children
            })
        }
        function l(F){
            var E=/^(~)?(.+)$/;
            if(F){
                g(d(F),function(J){
                    var H=E.exec(J),I=H[1]==="~",K=I?"span":"div",G=H[2];
                    k[G]=k[K];
                    p[G]=K;
                    if(!I){
                        v[G]={}
                    }
                    g(k,function(L,M){
                        if(L[K]){
                            L[G]=L[K]
                        }
                    })
                })
            }
        }
        function x(F){
            var E=/^([+\-]?)(\w+)\[([^\]]+)\]$/;
            if(F){
                g(d(F),function(J){
                    var I=E.exec(J),G,H;
                    if(I){
                        H=I[1];
                        if(H){
                            G=k[I[2]]
                        }else{
                            G=k[I[2]]={
                                "#comment":{}
                            }
                        }
                        G=k[I[2]];
                        g(d(I[3],"|"),function(K){
                            if(H==="-"){
                                delete G[K]
                            }else{
                                G[K]={}
                            }
                        })
                    }
                })
            }
        }
        function B(E){
            var G=s[E],F;
            if(G){
                return G
            }
            F=j.length;
            while(F--){
                G=j[F];
                if(G.pattern.test(E)){
                    return G
                }
            }
        }
        if(!A.valid_elements){
            g(y,function(F,E){
                s[E]={
                    attributes:F.attributes,
                    attributesOrder:F.attributesOrder
                };
            
                k[E]=F.children
            });
            if(A.schema!="html5"){
                g(d("strong/b,em/i"),function(E){
                    E=d(E,"/");
                    s[E[1]].outputName=E[0]
                })
            }
            s.img.attributesDefault=[{
                name:"alt",
                value:""
            }];
            g(d("ol,ul,sub,sup,blockquote,span,font,a,table,tbody,tr,strong,em,b,i"),function(E){
                if(s[E]){
                    s[E].removeEmpty=true
                }
            });
            g(d("p,h1,h2,h3,h4,h5,h6,th,td,pre,div,address,caption"),function(E){
                s[E].paddEmpty=true
            })
        }else{
            t(A.valid_elements)
        }
        l(A.custom_elements);
        x(A.valid_children);
        C(A.extended_valid_elements);
        x("+ol[ul|ol],+ul[ul|ol]");
        if(A.invalid_elements){
            f.each(f.explode(A.invalid_elements),function(E){
                if(s[E]){
                    delete s[E]
                }
            })
        }
        if(!B("span")){
            C("span[!data-mce-type|*]")
        }
        u.children=k;
        u.styles=D;
        u.getBoolAttrs=function(){
            return r
        };
    
        u.getBlockElements=function(){
            return v
        };
    
        u.getShortEndedElements=function(){
            return z
        };
    
        u.getSelfClosingElements=function(){
            return q
        };
    
        u.getNonEmptyElements=function(){
            return n
        };
    
        u.getWhiteSpaceElements=function(){
            return o
        };
    
        u.isValidChild=function(E,G){
            var F=k[E];
            return !!(F&&F[G])
        };
    
        u.isValid=function(F,E){
            var H,G,I=B(F);
            if(I){
                if(E){
                    if(I.attributes[E]){
                        return true
                    }
                    H=I.attributePatterns;
                    if(H){
                        G=H.length;
                        while(G--){
                            if(H[G].pattern.test(F)){
                                return true
                            }
                        }
                    }
                }else{
                    return true
                }
            }
            return false
        };

        u.getElementRule=B;
        u.getCustomElements=function(){
            return p
        };
    
        u.addValidElements=C;
        u.setValidElements=t;
        u.addCustomElements=l;
        u.addValidChildren=x
    }
})(tinymce);
(function(a){
    a.html.SaxParser=function(c,e){
        var b=this,d=function(){};
        
        c=c||{};
        
        b.schema=e=e||new a.html.Schema();
        if(c.fix_self_closing!==false){
            c.fix_self_closing=true
        }
        a.each("comment cdata text start end pi doctype".split(" "),function(f){
            if(f){
                b[f]=c[f]||d
            }
        });
        b.parse=function(E){
            var n=this,g,G=0,I,B,A=[],N,Q,C,r,z,s,M,H,O,v,m,k,t,R,o,P,F,S,L,f,J,l,D,K,h,x=0,j=a.html.Entities.decode,y,q;
            function u(T){
                var V,U;
                V=A.length;
                while(V--){
                    if(A[V].name===T){
                        break
                    }
                }
                if(V>=0){
                    for(U=A.length-1;U>=V;U--){
                        T=A[U];
                        if(T.valid){
                            n.end(T.name)
                        }
                    }
                    A.length=V
                }
            }
            function p(U,T,Y,X,W){
                var Z,V;
                T=T.toLowerCase();
                Y=T in H?T:j(Y||X||W||"");
                if(v&&!z&&T.indexOf("data-")!==0){
                    Z=P[T];
                    if(!Z&&F){
                        V=F.length;
                        while(V--){
                            Z=F[V];
                            if(Z.pattern.test(T)){
                                break
                            }
                        }
                        if(V===-1){
                            Z=null
                        }
                    }
                    if(!Z){
                        return
                    }
                    if(Z.validValues&&!(Y in Z.validValues)){
                        return
                    }
                }
                N.map[T]=Y;
                N.push({
                    name:T,
                    value:Y
                })
            }
            l=new RegExp("<(?:(?:!--([\\w\\W]*?)-->)|(?:!\\[CDATA\\[([\\w\\W]*?)\\]\\]>)|(?:!DOCTYPE([\\w\\W]*?)>)|(?:\\?([^\\s\\/<>]+) ?([\\w\\W]*?)[?/]>)|(?:\\/([^>]+)>)|(?:([A-Za-z0-9\\-\\:]+)((?:\\s+[^\"'>]+(?:(?:\"[^\"]*\")|(?:'[^']*')|[^>]*))*|\\/|\\s+)>))","g");
            D=/([\w:\-]+)(?:\s*=\s*(?:(?:\"((?:\\.|[^\"])*)\")|(?:\'((?:\\.|[^\'])*)\')|([^>\s]+)))?/g;
            K={
                script:/<\/script[^>]*>/gi,
                style:/<\/style[^>]*>/gi,
                noscript:/<\/noscript[^>]*>/gi
            };

            M=e.getShortEndedElements();
            J=c.self_closing_elements||e.getSelfClosingElements();
            H=e.getBoolAttrs();
            v=c.validate;
            s=c.remove_internals;
            y=c.fix_self_closing;
            q=a.isIE;
            o=/^:/;
            while(g=l.exec(E)){
                if(G<g.index){
                    n.text(j(E.substr(G,g.index-G)))
                }
                if(I=g[6]){
                    I=I.toLowerCase();
                    if(q&&o.test(I)){
                        I=I.substr(1)
                    }
                    u(I)
                }else{
                    if(I=g[7]){
                        I=I.toLowerCase();
                        if(q&&o.test(I)){
                            I=I.substr(1)
                        }
                        O=I in M;
                        if(y&&J[I]&&A.length>0&&A[A.length-1].name===I){
                            u(I)
                        }
                        if(!v||(m=e.getElementRule(I))){
                            k=true;
                            if(v){
                                P=m.attributes;
                                F=m.attributePatterns
                            }
                            if(R=g[8]){
                                z=R.indexOf("data-mce-type")!==-1;
                                if(z&&s){
                                    k=false
                                }
                                N=[];
                                N.map={};
                    
                                R.replace(D,p)
                            }else{
                                N=[];
                                N.map={}
                            }
                            if(v&&!z){
                                S=m.attributesRequired;
                                L=m.attributesDefault;
                                f=m.attributesForced;
                                if(f){
                                    Q=f.length;
                                    while(Q--){
                                        t=f[Q];
                                        r=t.name;
                                        h=t.value;
                                        if(h==="{$uid}"){
                                            h="mce_"+x++
                                        }
                                        N.map[r]=h;
                                        N.push({
                                            name:r,
                                            value:h
                                        })
                                    }
                                }
                                if(L){
                                    Q=L.length;
                                    while(Q--){
                                        t=L[Q];
                                        r=t.name;
                                        if(!(r in N.map)){
                                            h=t.value;
                                            if(h==="{$uid}"){
                                                h="mce_"+x++
                                            }
                                            N.map[r]=h;
                                            N.push({
                                                name:r,
                                                value:h
                                            })
                                        }
                                    }
                                }
                                if(S){
                                    Q=S.length;
                                    while(Q--){
                                        if(S[Q] in N.map){
                                            break
                                        }
                                    }
                                    if(Q===-1){
                                        k=false
                                    }
                                }
                                if(N.map["data-mce-bogus"]){
                                    k=false
                                }
                            }
                            if(k){
                                n.start(I,N,O)
                            }
                        }else{
                            k=false
                        }
                        if(B=K[I]){
                            B.lastIndex=G=g.index+g[0].length;
                            if(g=B.exec(E)){
                                if(k){
                                    C=E.substr(G,g.index-G)
                                }
                                G=g.index+g[0].length
                            }else{
                                C=E.substr(G);
                                G=E.length
                            }
                            if(k&&C.length>0){
                                n.text(C,true)
                            }
                            if(k){
                                n.end(I)
                            }
                            l.lastIndex=G;
                            continue
                        }
                        if(!O){
                            if(!R||R.indexOf("/")!=R.length-1){
                                A.push({
                                    name:I,
                                    valid:k
                                })
                            }else{
                                if(k){
                                    n.end(I)
                                }
                            }
                        }
                    }else{
                        if(I=g[1]){
                            n.comment(I)
                        }else{
                            if(I=g[2]){
                                n.cdata(I)
                            }else{
                                if(I=g[3]){
                                    n.doctype(I)
                                }else{
                                    if(I=g[4]){
                                        n.pi(I,g[5])
                                    }
                                }
                            }
                        }
                    }
                }
                G=g.index+g[0].length
            }
            if(G<E.length){
                n.text(j(E.substr(G)))
            }
            for(Q=A.length-1;Q>=0;Q--){
                I=A[Q];
                if(I.valid){
                    n.end(I.name)
                }
            }
        }
    }
})(tinymce);
(function(d){
    var c=/^[ \t\r\n]*$/,e={
        "#text":3,
        "#comment":8,
        "#cdata":4,
        "#pi":7,
        "#doctype":10,
        "#document-fragment":11
    };
    
    function a(k,l,j){
        var i,h,f=j?"lastChild":"firstChild",g=j?"prev":"next";
        if(k[f]){
            return k[f]
        }
        if(k!==l){
            i=k[g];
            if(i){
                return i
            }
            for(h=k.parent;h&&h!==l;h=h.parent){
                i=h[g];
                if(i){
                    return i
                }
            }
        }
    }
    function b(f,g){
        this.name=f;
        this.type=g;
        if(g===1){
            this.attributes=[];
            this.attributes.map={}
        }
    }
    d.extend(b.prototype,{
        replace:function(g){
            var f=this;
            if(g.parent){
                g.remove()
            }
            f.insert(g,f);
            f.remove();
            return f
        },
        attr:function(h,l){
            var f=this,g,j,k;
            if(typeof h!=="string"){
                for(j in h){
                    f.attr(j,h[j])
                }
                return f
            }
            if(g=f.attributes){
                if(l!==k){
                    if(l===null){
                        if(h in g.map){
                            delete g.map[h];
                            j=g.length;
                            while(j--){
                                if(g[j].name===h){
                                    g=g.splice(j,1);
                                    return f
                                }
                            }
                        }
                        return f
                    }
                    if(h in g.map){
                        j=g.length;
                        while(j--){
                            if(g[j].name===h){
                                g[j].value=l;
                                break
                            }
                        }
                    }else{
                        g.push({
                            name:h,
                            value:l
                        })
                    }
                    g.map[h]=l;
                    return f
                }else{
                    return g.map[h]
                }
            }
        },
        clone:function(){
            var g=this,n=new b(g.name,g.type),h,f,m,j,k;
            if(m=g.attributes){
                k=[];
                k.map={};
        
                for(h=0,f=m.length;h<f;h++){
                    j=m[h];
                    if(j.name!=="id"){
                        k[k.length]={
                            name:j.name,
                            value:j.value
                        };
                    
                        k.map[j.name]=j.value
                    }
                }
                n.attributes=k
            }
            n.value=g.value;
            n.shortEnded=g.shortEnded;
            return n
        },
        wrap:function(g){
            var f=this;
            f.parent.insert(g,f);
            g.append(f);
            return f
        },
        unwrap:function(){
            var f=this,h,g;
            for(h=f.firstChild;h;){
                g=h.next;
                f.insert(h,f,true);
                h=g
            }
            f.remove()
        },
        remove:function(){
            var f=this,h=f.parent,g=f.next,i=f.prev;
            if(h){
                if(h.firstChild===f){
                    h.firstChild=g;
                    if(g){
                        g.prev=null
                    }
                }else{
                    i.next=g
                }
                if(h.lastChild===f){
                    h.lastChild=i;
                    if(i){
                        i.next=null
                    }
                }else{
                    g.prev=i
                }
                f.parent=f.next=f.prev=null
            }
            return f
        },
        append:function(h){
            var f=this,g;
            if(h.parent){
                h.remove()
            }
            g=f.lastChild;
            if(g){
                g.next=h;
                h.prev=g;
                f.lastChild=h
            }else{
                f.lastChild=f.firstChild=h
            }
            h.parent=f;
            return h
        },
        insert:function(h,f,i){
            var g;
            if(h.parent){
                h.remove()
            }
            g=f.parent||this;
            if(i){
                if(f===g.firstChild){
                    g.firstChild=h
                }else{
                    f.prev.next=h
                }
                h.prev=f.prev;
                h.next=f;
                f.prev=h
            }else{
                if(f===g.lastChild){
                    g.lastChild=h
                }else{
                    f.next.prev=h
                }
                h.next=f.next;
                h.prev=f;
                f.next=h
            }
            h.parent=g;
            return h
        },
        getAll:function(g){
            var f=this,h,i=[];
            for(h=f.firstChild;h;h=a(h,f)){
                if(h.name===g){
                    i.push(h)
                }
            }
            return i
        },
        empty:function(){
            var g=this,f,h,j;
            if(g.firstChild){
                f=[];
                for(j=g.firstChild;j;j=a(j,g)){
                    f.push(j)
                }
                h=f.length;
                while(h--){
                    j=f[h];
                    j.parent=j.firstChild=j.lastChild=j.next=j.prev=null
                }
            }
            g.firstChild=g.lastChild=null;
            return g
        },
        isEmpty:function(k){
            var f=this,j=f.firstChild,h,g;
            if(j){
                do{
                    if(j.type===1){
                        if(j.attributes.map["data-mce-bogus"]){
                            continue
                        }
                        if(k[j.name]){
                            return false
                        }
                        h=j.attributes.length;
                        while(h--){
                            g=j.attributes[h].name;
                            if(g==="name"||g.indexOf("data-")===0){
                                return false
                            }
                        }
                    }
                    if(j.type===8){
                        return false
                    }
                    if((j.type===3&&!c.test(j.value))){
                        return false
                    }
                }while(j=a(j,f))
            }
            return true
        },
        walk:function(f){
            return a(this,null,f)
        }
    });
    d.extend(b,{
        create:function(g,f){
            var i,h;
            i=new b(g,e[g]||1);
            if(f){
                for(h in f){
                    i.attr(h,f[h])
                }
            }
            return i
        }
    });
    d.html.Node=b
})(tinymce);
(function(b){
    var a=b.html.Node;
    b.html.DomParser=function(g,h){
        var f=this,e={},d=[],i={},c={};
        
        g=g||{};
        
        g.validate="validate" in g?g.validate:true;
        g.root_name=g.root_name||"body";
        f.schema=h=h||new b.html.Schema();
        function j(m){
            var o,p,x,v,z,n,q,l,t,u,k,s,y,r;
            s=b.makeMap("tr,td,th,tbody,thead,tfoot,table");
            k=h.getNonEmptyElements();
            for(o=0;o<m.length;o++){
                p=m[o];
                if(!p.parent){
                    continue
                }
                v=[p];
                for(x=p.parent;x&&!h.isValidChild(x.name,p.name)&&!s[x.name];x=x.parent){
                    v.push(x)
                }
                if(x&&v.length>1){
                    v.reverse();
                    z=n=f.filterNode(v[0].clone());
                    for(t=0;t<v.length-1;t++){
                        if(h.isValidChild(n.name,v[t].name)){
                            q=f.filterNode(v[t].clone());
                            n.append(q)
                        }else{
                            q=n
                        }
                        for(l=v[t].firstChild;l&&l!=v[t+1];){
                            r=l.next;
                            q.append(l);
                            l=r
                        }
                        n=q
                    }
                    if(!z.isEmpty(k)){
                        x.insert(z,v[0],true);
                        x.insert(p,z)
                    }else{
                        x.insert(p,v[0],true)
                    }
                    x=v[0];
                    if(x.isEmpty(k)||x.firstChild===x.lastChild&&x.firstChild.name==="br"){
                        x.empty().remove()
                    }
                }else{
                    if(p.parent){
                        if(p.name==="li"){
                            y=p.prev;
                            if(y&&(y.name==="ul"||y.name==="ul")){
                                y.append(p);
                                continue
                            }
                            y=p.next;
                            if(y&&(y.name==="ul"||y.name==="ul")){
                                y.insert(p,y.firstChild,true);
                                continue
                            }
                            p.wrap(f.filterNode(new a("ul",1)));
                            continue
                        }
                        if(h.isValidChild(p.parent.name,"div")&&h.isValidChild("div",p.name)){
                            p.wrap(f.filterNode(new a("div",1)))
                        }else{
                            if(p.name==="style"||p.name==="script"){
                                p.empty().remove()
                            }else{
                                p.unwrap()
                            }
                        }
                    }
                }
            }
        }
        f.filterNode=function(m){
            var l,k,n;
            if(k in e){
                n=i[k];
                if(n){
                    n.push(m)
                }else{
                    i[k]=[m]
                }
            }
            l=d.length;
            while(l--){
                k=d[l].name;
                if(k in m.attributes.map){
                    n=c[k];
                    if(n){
                        n.push(m)
                    }else{
                        c[k]=[m]
                    }
                }
            }
            return m
        };

        f.addNodeFilter=function(k,l){
            b.each(b.explode(k),function(m){
                var n=e[m];
                if(!n){
                    e[m]=n=[]
                }
                n.push(l)
            })
        };
    
        f.addAttributeFilter=function(k,l){
            b.each(b.explode(k),function(m){
                var n;
                for(n=0;n<d.length;n++){
                    if(d[n].name===m){
                        d[n].callbacks.push(l);
                        return
                    }
                }
                d.push({
                    name:m,
                    callbacks:[l]
                })
            })
        };

        f.parse=function(v,m){
            var n,J,B,A,D,C,x,r,F,N,z,o,E,M=[],L,t,k,y,s,p,u,q;
            m=m||{};
    
            i={};
    
            c={};
    
            o=b.extend(b.makeMap("script,style,head,html,body,title,meta,param"),h.getBlockElements());
            u=h.getNonEmptyElements();
            p=h.children;
            z=g.validate;
            q="forced_root_block" in m?m.forced_root_block:g.forced_root_block;
            s=h.getWhiteSpaceElements();
            E=/^[ \t\r\n]+/;
            t=/[ \t\r\n]+$/;
            k=/[ \t\r\n]+/g;
            y=/^[ \t\r\n]+$/;
            function G(){
                var O=J.firstChild,l,P;
                while(O){
                    l=O.next;
                    if(O.type==3||(O.type==1&&O.name!=="p"&&!o[O.name]&&!O.attr("data-mce-type"))){
                        if(!P){
                            P=K(q,1);
                            J.insert(P,O);
                            P.append(O)
                        }else{
                            P.append(O)
                        }
                    }else{
                        P=null
                    }
                    O=l
                }
            }
            function K(l,O){
                var P=new a(l,O),Q;
                if(l in e){
                    Q=i[l];
                    if(Q){
                        Q.push(P)
                    }else{
                        i[l]=[P]
                    }
                }
                return P
            }
            function I(P){
                var Q,l,O;
                for(Q=P.prev;Q&&Q.type===3;){
                    l=Q.value.replace(t,"");
                    if(l.length>0){
                        Q.value=l;
                        Q=Q.prev
                    }else{
                        O=Q.prev;
                        Q.remove();
                        Q=O
                    }
                }
            }
            function H(O){
                var P,l={};
    
                for(P in O){
                    if(P!=="li"&&P!="p"){
                        l[P]=O[P]
                    }
                }
                return l
            }
            n=new b.html.SaxParser({
                validate:z,
                self_closing_elements:H(h.getSelfClosingElements()),
                cdata:function(l){
                    B.append(K("#cdata",4)).value=l
                },
                text:function(P,l){
                    var O;
                    if(!L){
                        P=P.replace(k," ");
                        if(B.lastChild&&o[B.lastChild.name]){
                            P=P.replace(E,"")
                        }
                    }
                    if(P.length!==0){
                        O=K("#text",3);
                        O.raw=!!l;
                        B.append(O).value=P
                    }
                },
                comment:function(l){
                    B.append(K("#comment",8)).value=l
                },
                pi:function(l,O){
                    B.append(K(l,7)).value=O;
                    I(B)
                },
                doctype:function(O){
                    var l;
                    l=B.append(K("#doctype",10));
                    l.value=O;
                    I(B)
                },
                start:function(l,W,P){
                    var U,R,Q,O,S,X,V,T;
                    Q=z?h.getElementRule(l):{};
    
                    if(Q){
                        U=K(Q.outputName||l,1);
                        U.attributes=W;
                        U.shortEnded=P;
                        B.append(U);
                        T=p[B.name];
                        if(T&&p[U.name]&&!T[U.name]){
                            M.push(U)
                        }
                        R=d.length;
                        while(R--){
                            S=d[R].name;
                            if(S in W.map){
                                F=c[S];
                                if(F){
                                    F.push(U)
                                }else{
                                    c[S]=[U]
                                }
                            }
                        }
                        if(o[l]){
                            I(U)
                        }
                        if(!P){
                            B=U
                        }
                        if(!L&&s[l]){
                            L=true
                        }
                    }
                },
                end:function(l){
                    var S,P,R,O,Q;
                    P=z?h.getElementRule(l):{};
    
                    if(P){
                        if(o[l]){
                            if(!L){
                                S=B.firstChild;
                                if(S&&S.type===3){
                                    R=S.value.replace(E,"");
                                    if(R.length>0){
                                        S.value=R;
                                        S=S.next
                                    }else{
                                        O=S.next;
                                        S.remove();
                                        S=O
                                    }while(S&&S.type===3){
                                        R=S.value;
                                        O=S.next;
                                        if(R.length===0||y.test(R)){
                                            S.remove();
                                            S=O
                                        }
                                        S=O
                                    }
                                }
                                S=B.lastChild;
                                if(S&&S.type===3){
                                    R=S.value.replace(t,"");
                                    if(R.length>0){
                                        S.value=R;
                                        S=S.prev
                                    }else{
                                        O=S.prev;
                                        S.remove();
                                        S=O
                                    }while(S&&S.type===3){
                                        R=S.value;
                                        O=S.prev;
                                        if(R.length===0||y.test(R)){
                                            S.remove();
                                            S=O
                                        }
                                        S=O
                                    }
                                }
                            }
                            S=B.prev;
                            if(S&&S.type===3){
                                R=S.value.replace(E,"");
                                if(R.length>0){
                                    S.value=R
                                }else{
                                    S.remove()
                                }
                            }
                        }
                        if(L&&s[l]){
                            L=false
                        }
                        if(P.removeEmpty||P.paddEmpty){
                            if(B.isEmpty(u)){
                                if(P.paddEmpty){
                                    B.empty().append(new a("#text","3")).value="\u00a0"
                                }else{
                                    if(!B.attributes.map.name&&!B.attributes.map.id){
                                        Q=B.parent;
                                        B.empty().remove();
                                        B=Q;
                                        return
                                    }
                                }
                            }
                        }
                        B=B.parent
                    }
                }
            },h);
            J=B=new a(m.context||g.root_name,11);
            n.parse(v);
            if(z&&M.length){
                if(!m.context){
                    j(M)
                }else{
                    m.invalid=true
                }
            }
            if(q&&J.name=="body"){
                G()
            }
            if(!m.invalid){
                for(N in i){
                    F=e[N];
                    A=i[N];
                    x=A.length;
                    while(x--){
                        if(!A[x].parent){
                            A.splice(x,1)
                        }
                    }
                    for(D=0,C=F.length;D<C;D++){
                        F[D](A,N,m)
                    }
                }
                for(D=0,C=d.length;D<C;D++){
                    F=d[D];
                    if(F.name in c){
                        A=c[F.name];
                        x=A.length;
                        while(x--){
                            if(!A[x].parent){
                                A.splice(x,1)
                            }
                        }
                        for(x=0,r=F.callbacks.length;x<r;x++){
                            F.callbacks[x](A,F.name,m)
                        }
                    }
                }
            }
            return J
        };

        if(g.remove_trailing_brs){
            f.addNodeFilter("br",function(n,m){
                var r,q=n.length,o,v=b.extend({},h.getBlockElements()),k=h.getNonEmptyElements(),t,s,p,u;
                v.body=1;
                for(r=0;r<q;r++){
                    o=n[r];
                    t=o.parent;
                    if(v[o.parent.name]&&o===t.lastChild){
                        p=o.prev;
                        while(p){
                            u=p.name;
                            if(u!=="span"||p.attr("data-mce-type")!=="bookmark"){
                                if(u!=="br"){
                                    break
                                }
                                if(u==="br"){
                                    o=null;
                                    break
                                }
                            }
                            p=p.prev
                        }
                        if(o){
                            o.remove();
                            if(t.isEmpty(k)){
                                elementRule=h.getElementRule(t.name);
                                if(elementRule){
                                    if(elementRule.removeEmpty){
                                        t.remove()
                                    }else{
                                        if(elementRule.paddEmpty){
                                            t.empty().append(new b.html.Node("#text",3)).value="\u00a0"
                                        }
                                    }
                                }
                            }
                        }
                    }else{
                        s=o;
                        while(t.firstChild===s&&t.lastChild===s){
                            s=t;
                            if(v[t.name]){
                                break
                            }
                            t=t.parent
                        }
                        if(s===t){
                            textNode=new b.html.Node("#text",3);
                            textNode.value="\u00a0";
                            o.replace(textNode)
                        }
                    }
                }
            })
        }
        if(!g.allow_html_in_named_anchor){
            f.addAttributeFilter("id,name",function(k,l){
                var n=k.length,p,m,o,q;
                while(n--){
                    q=k[n];
                    if(q.name==="a"&&q.firstChild&&!q.attr("href")){
                        o=q.parent;
                        p=q.lastChild;
                        do{
                            m=p.prev;
                            o.insert(p,q);
                            p=m
                        }while(p)
                    }
                }
            })
        }
    }
})(tinymce);
tinymce.html.Writer=function(e){
    var c=[],a,b,d,f,g;
    e=e||{};
    
    a=e.indent;
    b=tinymce.makeMap(e.indent_before||"");
    d=tinymce.makeMap(e.indent_after||"");
    f=tinymce.html.Entities.getEncodeFunc(e.entity_encoding||"raw",e.entities);
    g=e.element_format=="html";
    return{
        start:function(m,k,p){
            var n,j,h,o;
            if(a&&b[m]&&c.length>0){
                o=c[c.length-1];
                if(o.length>0&&o!=="\n"){
                    c.push("\n")
                }
            }
            c.push("<",m);
            if(k){
                for(n=0,j=k.length;n<j;n++){
                    h=k[n];
                    c.push(" ",h.name,'="',f(h.value,true),'"')
                }
            }
            if(!p||g){
                c[c.length]=">"
            }else{
                c[c.length]=" />"
            }
            if(p&&a&&d[m]&&c.length>0){
                o=c[c.length-1];
                if(o.length>0&&o!=="\n"){
                    c.push("\n")
                }
            }
        },
        end:function(h){
            var i;
            c.push("</",h,">");
            if(a&&d[h]&&c.length>0){
                i=c[c.length-1];
                if(i.length>0&&i!=="\n"){
                    c.push("\n")
                }
            }
        },
        text:function(i,h){
            if(i.length>0){
                c[c.length]=h?i:f(i)
            }
        },
        cdata:function(h){
            c.push("<![CDATA[",h,"]]>")
        },
        comment:function(h){
            c.push("<!--",h,"-->")
        },
        pi:function(h,i){
            if(i){
                c.push("<?",h," ",i,"?>")
            }else{
                c.push("<?",h,"?>")
            }
            if(a){
                c.push("\n")
            }
        },
        doctype:function(h){
            c.push("<!DOCTYPE",h,">",a?"\n":"")
        },
        reset:function(){
            c.length=0
        },
        getContent:function(){
            return c.join("").replace(/\n$/,"")
        }
    }
};
(function(a){
    a.html.Serializer=function(c,d){
        var b=this,e=new a.html.Writer(c);
        c=c||{};
        
        c.validate="validate" in c?c.validate:true;
        b.schema=d=d||new a.html.Schema();
        b.writer=e;
        b.serialize=function(h){
            var g,i;
            i=c.validate;
            g={
                3:function(k,j){
                    e.text(k.value,k.raw)
                },
                8:function(j){
                    e.comment(j.value)
                },
                7:function(j){
                    e.pi(j.name,j.value)
                },
                10:function(j){
                    e.doctype(j.value)
                },
                4:function(j){
                    e.cdata(j.value)
                },
                11:function(j){
                    if((j=j.firstChild)){
                        do{
                            f(j)
                        }while(j=j.next)
                    }
                }
            };
        
            e.reset();
            function f(k){
                var t=g[k.type],j,o,s,r,p,u,n,m,q;
                if(!t){
                    j=k.name;
                    o=k.shortEnded;
                    s=k.attributes;
                    if(i&&s&&s.length>1){
                        u=[];
                        u.map={};
                
                        q=d.getElementRule(k.name);
                        for(n=0,m=q.attributesOrder.length;n<m;n++){
                            r=q.attributesOrder[n];
                            if(r in s.map){
                                p=s.map[r];
                                u.map[r]=p;
                                u.push({
                                    name:r,
                                    value:p
                                })
                            }
                        }
                        for(n=0,m=s.length;n<m;n++){
                            r=s[n].name;
                            if(!(r in u.map)){
                                p=s.map[r];
                                u.map[r]=p;
                                u.push({
                                    name:r,
                                    value:p
                                })
                            }
                        }
                        s=u
                    }
                    e.start(k.name,s,o);
                    if(!o){
                        if((k=k.firstChild)){
                            do{
                                f(k)
                            }while(k=k.next)
                        }
                        e.end(j)
                    }
                }else{
                    t(k)
                }
            }
            if(h.type==1&&!c.inner){
                f(h)
            }else{
                g[11](h)
            }
            return e.getContent()
        }
    }
})(tinymce);
tinymce.dom={};
(function(b,h){
    var g=!!document.addEventListener;
    function c(k,j,l,i){
        if(k.addEventListener){
            k.addEventListener(j,l,i||false)
        }else{
            if(k.attachEvent){
                k.attachEvent("on"+j,l)
            }
        }
    }
    function e(k,j,l,i){
        if(k.removeEventListener){
            k.removeEventListener(j,l,i||false)
        }else{
            if(k.detachEvent){
                k.detachEvent("on"+j,l)
            }
        }
    }
    function a(n,l){
        var i,k=l||{};
    
        function j(){
            return false
        }
        function m(){
            return true
        }
        for(i in n){
            if(i!=="layerX"&&i!=="layerY"){
                k[i]=n[i]
            }
        }
        if(!k.target){
            k.target=k.srcElement||document
        }
        k.preventDefault=function(){
            k.isDefaultPrevented=m;
            if(n){
                if(n.preventDefault){
                    n.preventDefault()
                }else{
                    n.returnValue=false
                }
            }
        };

        k.stopPropagation=function(){
            k.isPropagationStopped=m;
            if(n){
                if(n.stopPropagation){
                    n.stopPropagation()
                }else{
                    n.cancelBubble=true
                }
            }
        };

        k.stopImmediatePropagation=function(){
            k.isImmediatePropagationStopped=m;
            k.stopPropagation()
        };
    
        if(!k.isDefaultPrevented){
            k.isDefaultPrevented=j;
            k.isPropagationStopped=j;
            k.isImmediatePropagationStopped=j
        }
        return k
    }
    function d(m,n,l){
        var k=m.document,j={
            type:"ready"
        };
    
        function i(){
            if(!l.domLoaded){
                l.domLoaded=true;
                n(j)
            }
        }
        if(g){
            c(m,"DOMContentLoaded",i)
        }else{
            c(k,"readystatechange",function(){
                if(k.readyState==="complete"){
                    e(k,"readystatechange",arguments.callee);
                    i()
                }
            });
            if(k.documentElement.doScroll&&m===m.top){
                (function(){
                    try{
                        k.documentElement.doScroll("left")
                    }catch(o){
                        setTimeout(arguments.callee,0);
                        return
                    }
                    i()
                })()
            }
        }
        c(m,"load",i)
    }
    function f(k){
        var q=this,p={},i,o,n,m,l;
        m="onmouseenter" in document.documentElement;
        n="onfocusin" in document.documentElement;
        l={
            mouseenter:"mouseover",
            mouseleave:"mouseout"
        };
    
        i=1;
        q.domLoaded=false;
        q.events=p;
        function j(t,x){
            var s,u,r,v;
            s=p[x][t.type];
            if(s){
                for(u=0,r=s.length;u<r;u++){
                    v=s[u];
                    if(v&&v.func.call(v.scope,t)===false){
                        t.preventDefault()
                    }
                    if(t.isImmediatePropagationStopped()){
                        return
                    }
                }
            }
        }
        q.bind=function(x,A,D,E){
            var s,t,u,r,B,z,C,v=window;
            function y(F){
                j(a(F||v.event),s)
            }
            if(!x||x.nodeType===3||x.nodeType===8){
                return
            }
            if(!x[h]){
                s=i++;
                x[h]=s;
                p[s]={}
            }else{
                s=x[h];
                if(!p[s]){
                    p[s]={}
                }
            }
            E=E||x;
            A=A.split(" ");
            u=A.length;
            while(u--){
                r=A[u];
                z=y;
                B=C=false;
                if(r==="DOMContentLoaded"){
                    r="ready"
                }
                if((q.domLoaded||x.readyState=="complete")&&r==="ready"){
                    q.domLoaded=true;
                    D.call(E,a({
                        type:r
                    }));
                    continue
                }
                if(!m){
                    B=l[r];
                    if(B){
                        z=function(F){
                            var H,G;
                            H=F.currentTarget;
                            G=F.relatedTarget;
                            if(G&&H.contains){
                                G=H.contains(G)
                            }else{
                                while(G&&G!==H){
                                    G=G.parentNode
                                }
                            }
                            if(!G){
                                F=a(F||v.event);
                                F.type=F.type==="mouseout"?"mouseleave":"mouseenter";
                                F.target=H;
                                j(F,s)
                            }
                        }
                    }
                }
                if(!n&&(r==="focusin"||r==="focusout")){
                    C=true;
                    B=r==="focusin"?"focus":"blur";
                    z=function(F){
                        F=a(F||v.event);
                        F.type=F.type==="focus"?"focusin":"focusout";
                        j(F,s)
                    }
                }
                t=p[s][r];
                if(!t){
                    p[s][r]=t=[{
                        func:D,
                        scope:E
                    }];
                    t.fakeName=B;
                    t.capture=C;
                    t.nativeHandler=z;
                    if(!g){
                        t.proxyHandler=k(s)
                    }
                    if(r==="ready"){
                        d(x,z,q)
                    }else{
                        c(x,B||r,g?z:t.proxyHandler,C)
                    }
                }else{
                    t.push({
                        func:D,
                        scope:E
                    })
                }
            }
            x=t=0;
            return D
        };

        q.unbind=function(x,z,A){
            var s,u,v,B,r,t;
            if(!x||x.nodeType===3||x.nodeType===8){
                return q
            }
            s=x[h];
            if(s){
                t=p[s];
                if(z){
                    z=z.split(" ");
                    v=z.length;
                    while(v--){
                        r=z[v];
                        u=t[r];
                        if(u){
                            if(A){
                                B=u.length;
                                while(B--){
                                    if(u[B].func===A){
                                        u.splice(B,1)
                                    }
                                }
                            }
                            if(!A||u.length===0){
                                delete t[r];
                                e(x,u.fakeName||r,g?u.nativeHandler:u.proxyHandler,u.capture)
                            }
                        }
                    }
                }else{
                    for(r in t){
                        u=t[r];
                        e(x,u.fakeName||r,g?u.nativeHandler:u.proxyHandler,u.capture)
                    }
                    t={}
                }
                for(r in t){
                    return q
                }
                delete p[s];
                try{
                    delete x[h]
                }catch(y){
                    x[h]=null
                }
            }
            return q
        };

        q.fire=function(u,s,r){
            var v,t;
            if(!u||u.nodeType===3||u.nodeType===8){
                return q
            }
            t=a(null,r);
            t.type=s;
            do{
                v=u[h];
                if(v){
                    j(t,v)
                }
                u=u.parentNode||u.ownerDocument||u.defaultView||u.parentWindow
            }while(u&&!t.isPropagationStopped());
            return q
        };
    
        q.clean=function(u){
            var s,r,t=q.unbind;
            if(!u||u.nodeType===3||u.nodeType===8){
                return q
            }
            if(u[h]){
                t(u)
            }
            if(!u.getElementsByTagName){
                u=u.document
            }
            if(u&&u.getElementsByTagName){
                t(u);
                r=u.getElementsByTagName("*");
                s=r.length;
                while(s--){
                    u=r[s];
                    if(u[h]){
                        t(u)
                    }
                }
            }
            return q
        };

        q.callNativeHandler=function(s,r){
            if(p){
                p[s][r.type].nativeHandler(r)
            }
        };

        q.destory=function(){
            p={}
        };

        q.add=function(v,s,u,t){
            if(typeof(v)==="string"){
                v=document.getElementById(v)
            }
            if(v&&v instanceof Array){
                var r=v.length;
                while(r--){
                    q.add(v[r],s,u,t)
                }
                return
            }
            if(s==="init"){
                s="ready"
            }
            return q.bind(v,s instanceof Array?s.join(" "):s,u,t)
        };
    
        q.remove=function(v,s,u,t){
            if(!v){
                return q
            }
            if(typeof(v)==="string"){
                v=document.getElementById(v)
            }
            if(v instanceof Array){
                var r=v.length;
                while(r--){
                    q.remove(v[r],s,u,t)
                }
                return q
            }
            return q.unbind(v,s instanceof Array?s.join(" "):s,u)
        };
    
        q.clear=function(r){
            if(typeof(r)==="string"){
                r=document.getElementById(r)
            }
            return q.clean(r)
        };
    
        q.cancel=function(r){
            if(r){
                q.prevent(r);
                q.stop(r)
            }
            return false
        };
    
        q.prevent=function(r){
            if(!r.preventDefault){
                r=a(r)
            }
            r.preventDefault();
            return false
        };
    
        q.stop=function(r){
            if(!r.stopPropagation){
                r=a(r)
            }
            r.stopPropagation();
            return false
        }
    }
    b.EventUtils=f;
    b.Event=new f(function(i){
        return function(j){
            tinymce.dom.Event.callNativeHandler(i,j)
        }
    });
    b.Event.bind(window,"ready",function(){});
    b=0
})(tinymce.dom,"data-mce-expando");
tinymce.dom.TreeWalker=function(a,c){
    var b=a;
    function d(i,f,e,j){
        var h,g;
        if(i){
            if(!j&&i[f]){
                return i[f]
            }
            if(i!=c){
                h=i[e];
                if(h){
                    return h
                }
                for(g=i.parentNode;g&&g!=c;g=g.parentNode){
                    h=g[e];
                    if(h){
                        return h
                    }
                }
            }
        }
    }
    this.current=function(){
        return b
    };
    
    this.next=function(e){
        return(b=d(b,"firstChild","nextSibling",e))
    };
    
    this.prev=function(e){
        return(b=d(b,"lastChild","previousSibling",e))
    }
};
(function(e){
    var g=e.each,d=e.is,f=e.isWebKit,b=e.isIE,h=e.html.Entities,c=/^([a-z0-9],?)+$/i,a=/^[ \t\r\n]*$/;
    e.create("tinymce.dom.DOMUtils",{
        doc:null,
        root:null,
        files:null,
        pixelStyles:/^(top|left|bottom|right|width|height|borderWidth)$/,
        props:{
            "for":"htmlFor",
            "class":"className",
            className:"className",
            checked:"checked",
            disabled:"disabled",
            maxlength:"maxLength",
            readonly:"readOnly",
            selected:"selected",
            value:"value",
            id:"id",
            name:"name",
            type:"type"
        },
        DOMUtils:function(o,l){
            var k=this,i,j,n;
            k.doc=o;
            k.win=window;
            k.files={};
            
            k.cssFlicker=false;
            k.counter=0;
            k.stdMode=!e.isIE||o.documentMode>=8;
            k.boxModel=!e.isIE||o.compatMode=="CSS1Compat"||k.stdMode;
            k.hasOuterHTML="outerHTML" in o.createElement("a");
            k.settings=l=e.extend({
                keep_values:false,
                hex_colors:1
            },l);
            k.schema=l.schema;
            k.styles=new e.html.Styles({
                url_converter:l.url_converter,
                url_converter_scope:l.url_converter_scope
            },l.schema);
            if(e.isIE6){
                try{
                    o.execCommand("BackgroundImageCache",false,true)
                }catch(m){
                    k.cssFlicker=true
                }
            }
            k.fixDoc(o);
            k.events=l.ownEvents?new e.dom.EventUtils(l.proxy):e.dom.Event;
            e.addUnload(k.destroy,k);
            n=l.schema?l.schema.getBlockElements():{};
        
            k.isBlock=function(q){
                var p=q.nodeType;
                if(p){
                    return !!(p===1&&n[q.nodeName])
                }
                return !!n[q]
            }
        },
        fixDoc:function(k){
            var j=this.settings,i;
            if(b&&j.schema){
                ("abbr article aside audio canvas details figcaption figure footer header hgroup mark menu meter nav output progress section summary time video").replace(/\w+/g,function(l){
                    k.createElement(l)
                });
                for(i in j.schema.getCustomElements()){
                    k.createElement(i)
                }
            }
        },
        clone:function(k,i){
            var j=this,m,l;
            if(!b||k.nodeType!==1||i){
                return k.cloneNode(i)
            }
            l=j.doc;
            if(!i){
                m=l.createElement(k.nodeName);
                g(j.getAttribs(k),function(n){
                    j.setAttrib(m,n.nodeName,j.getAttrib(k,n.nodeName))
                });
                return m
            }
            return m.firstChild
        },
        getRoot:function(){
            var i=this,j=i.settings;
            return(j&&i.get(j.root_element))||i.doc.body
        },
        getViewPort:function(j){
            var k,i;
            j=!j?this.win:j;
            k=j.document;
            i=this.boxModel?k.documentElement:k.body;
            return{
                x:j.pageXOffset||i.scrollLeft,
                y:j.pageYOffset||i.scrollTop,
                w:j.innerWidth||i.clientWidth,
                h:j.innerHeight||i.clientHeight
            }
        },
        getRect:function(l){
            var k,i=this,j;
            l=i.get(l);
            k=i.getPos(l);
            j=i.getSize(l);
            return{
                x:k.x,
                y:k.y,
                w:j.w,
                h:j.h
            }
        },
        getSize:function(l){
            var j=this,i,k;
            l=j.get(l);
            i=j.getStyle(l,"width");
            k=j.getStyle(l,"height");
            if(i.indexOf("px")===-1){
                i=0
            }
            if(k.indexOf("px")===-1){
                k=0
            }
            return{
                w:parseInt(i,10)||l.offsetWidth||l.clientWidth,
                h:parseInt(k,10)||l.offsetHeight||l.clientHeight
            }
        },
        getParent:function(k,j,i){
            return this.getParents(k,j,i,false)
        },
        getParents:function(s,m,k,q){
            var j=this,i,l=j.settings,p=[];
            s=j.get(s);
            q=q===undefined;
            if(l.strict_root){
                k=k||j.getRoot()
            }
            if(d(m,"string")){
                i=m;
                if(m==="*"){
                    m=function(o){
                        return o.nodeType==1
                    }
                }else{
                    m=function(o){
                        return j.is(o,i)
                    }
                }
            }while(s){
                if(s==k||!s.nodeType||s.nodeType===9){
                    break
                }
                if(!m||m(s)){
                    if(q){
                        p.push(s)
                    }else{
                        return s
                    }
                }
                s=s.parentNode
            }
            return q?p:null
        },
        get:function(i){
            var j;
            if(i&&this.doc&&typeof(i)=="string"){
                j=i;
                i=this.doc.getElementById(i);
                if(i&&i.id!==j){
                    return this.doc.getElementsByName(j)[1]
                }
            }
            return i
        },
        getNext:function(j,i){
            return this._findSib(j,i,"nextSibling")
        },
        getPrev:function(j,i){
            return this._findSib(j,i,"previousSibling")
        },
        add:function(l,o,i,k,m){
            var j=this;
            return this.run(l,function(r){
                var q,n;
                q=d(o,"string")?j.doc.createElement(o):o;
                j.setAttribs(q,i);
                if(k){
                    if(k.nodeType){
                        q.appendChild(k)
                    }else{
                        j.setHTML(q,k)
                    }
                }
                return !m?r.appendChild(q):q
            })
        },
        create:function(k,i,j){
            return this.add(this.doc.createElement(k),k,i,j,1)
        },
        createHTML:function(q,i,m){
            var p="",l=this,j;
            p+="<"+q;
            for(j in i){
                if(i.hasOwnProperty(j)){
                    p+=" "+j+'="'+l.encode(i[j])+'"'
                }
            }
            if(typeof(m)!="undefined"){
                return p+">"+m+"</"+q+">"
            }
            return p+" />"
        },
        remove:function(i,j){
            return this.run(i,function(l){
                var m,k=l.parentNode;
                if(!k){
                    return null
                }
                if(j){
                    while(m=l.firstChild){
                        if(!e.isIE||m.nodeType!==3||m.nodeValue){
                            k.insertBefore(m,l)
                        }else{
                            l.removeChild(m)
                        }
                    }
                }
                return k.removeChild(l)
            })
        },
        setStyle:function(l,i,j){
            var k=this;
            return k.run(l,function(o){
                var n,m;
                n=o.style;
                i=i.replace(/-(\D)/g,function(q,p){
                    return p.toUpperCase()
                });
                if(k.pixelStyles.test(i)&&(e.is(j,"number")||/^[\-0-9\.]+$/.test(j))){
                    j+="px"
                }
                switch(i){
                    case"opacity":
                        if(b){
                            n.filter=j===""?"":"alpha(opacity="+(j*100)+")";
                            if(!l.currentStyle||!l.currentStyle.hasLayout){
                                n.display="inline-block"
                            }
                        }
                        n[i]=n["-moz-opacity"]=n["-khtml-opacity"]=j||"";
                        break;
                    case"float":
                        b?n.styleFloat=j:n.cssFloat=j;
                        break;
                    default:
                        n[i]=j||""
                }
                if(k.settings.update_styles){
                    k.setAttrib(o,"data-mce-style")
                }
            })
        },
        getStyle:function(l,i,k){
            l=this.get(l);
            if(!l){
                return
            }
            if(this.doc.defaultView&&k){
                i=i.replace(/[A-Z]/g,function(m){
                    return"-"+m
                });
                try{
                    return this.doc.defaultView.getComputedStyle(l,null).getPropertyValue(i)
                }catch(j){
                    return null
                }
            }
            i=i.replace(/-(\D)/g,function(n,m){
                return m.toUpperCase()
            });
            if(i=="float"){
                i=b?"styleFloat":"cssFloat"
            }
            if(l.currentStyle&&k){
                return l.currentStyle[i]
            }
            return l.style?l.style[i]:undefined
        },
        setStyles:function(l,m){
            var j=this,k=j.settings,i;
            i=k.update_styles;
            k.update_styles=0;
            g(m,function(o,p){
                j.setStyle(l,p,o)
            });
            k.update_styles=i;
            if(k.update_styles){
                j.setAttrib(l,k.cssText)
            }
        },
        removeAllAttribs:function(i){
            return this.run(i,function(l){
                var k,j=l.attributes;
                for(k=j.length-1;k>=0;k--){
                    l.removeAttributeNode(j.item(k))
                }
            })
        },
        setAttrib:function(k,l,i){
            var j=this;
            if(!k||!l){
                return
            }
            if(j.settings.strict){
                l=l.toLowerCase()
            }
            return this.run(k,function(p){
                var o=j.settings;
                var m=p.getAttribute(l);
                if(i!==null){
                    switch(l){
                        case"style":
                            if(!d(i,"string")){
                                g(i,function(q,r){
                                    j.setStyle(p,r,q)
                                });
                                return
                            }
                            if(o.keep_values){
                                if(i&&!j._isRes(i)){
                                    p.setAttribute("data-mce-style",i,2)
                                }else{
                                    p.removeAttribute("data-mce-style",2)
                                }
                            }
                            p.style.cssText=i;
                            break;
                        case"class":
                            p.className=i||"";
                            break;
                        case"src":case"href":
                            if(o.keep_values){
                                if(o.url_converter){
                                    i=o.url_converter.call(o.url_converter_scope||j,i,l,p)
                                }
                                j.setAttrib(p,"data-mce-"+l,i,2)
                            }
                            break;
                        case"shape":
                            p.setAttribute("data-mce-style",i);
                            break
                    }
                }
                if(d(i)&&i!==null&&i.length!==0){
                    p.setAttribute(l,""+i,2)
                }else{
                    p.removeAttribute(l,2)
                }
                if(tinyMCE.activeEditor&&m!=i){
                    var n=tinyMCE.activeEditor;
                    n.onSetAttrib.dispatch(n,p,l,i)
                }
            })
        },
        setAttribs:function(j,k){
            var i=this;
            return this.run(j,function(l){
                g(k,function(m,o){
                    i.setAttrib(l,o,m)
                })
            })
        },
        getAttrib:function(m,o,k){
            var i,j=this,l;
            m=j.get(m);
            if(!m||m.nodeType!==1){
                return k===l?false:k
            }
            if(!d(k)){
                k=""
            }
            if(/^(src|href|style|coords|shape)$/.test(o)){
                i=m.getAttribute("data-mce-"+o);
                if(i){
                    return i
                }
            }
            if(b&&j.props[o]){
                i=m[j.props[o]];
                i=i&&i.nodeValue?i.nodeValue:i
            }
            if(!i){
                i=m.getAttribute(o,2)
            }
            if(/^(checked|compact|declare|defer|disabled|ismap|multiple|nohref|noshade|nowrap|readonly|selected)$/.test(o)){
                if(m[j.props[o]]===true&&i===""){
                    return o
                }
                return i?o:""
            }
            if(m.nodeName==="FORM"&&m.getAttributeNode(o)){
                return m.getAttributeNode(o).nodeValue
            }
            if(o==="style"){
                i=i||m.style.cssText;
                if(i){
                    i=j.serializeStyle(j.parseStyle(i),m.nodeName);
                    if(j.settings.keep_values&&!j._isRes(i)){
                        m.setAttribute("data-mce-style",i)
                    }
                }
            }
            if(f&&o==="class"&&i){
                i=i.replace(/(apple|webkit)\-[a-z\-]+/gi,"")
            }
            if(b){
                switch(o){
                    case"rowspan":case"colspan":
                        if(i===1){
                            i=""
                        }
                        break;
                    case"size":
                        if(i==="+0"||i===20||i===0){
                            i=""
                        }
                        break;
                    case"width":case"height":case"vspace":case"checked":case"disabled":case"readonly":
                        if(i===0){
                            i=""
                        }
                        break;
                    case"hspace":
                        if(i===-1){
                            i=""
                        }
                        break;
                    case"maxlength":case"tabindex":
                        if(i===32768||i===2147483647||i==="32768"){
                            i=""
                        }
                        break;
                    case"multiple":case"compact":case"noshade":case"nowrap":
                        if(i===65535){
                            return o
                        }
                        return k;
                    case"shape":
                        i=i.toLowerCase();
                        break;
                    default:
                        if(o.indexOf("on")===0&&i){
                            i=e._replace(/^function\s+\w+\(\)\s+\{\s+(.*)\s+\}$/,"$1",""+i)
                        }
                }
            }
            return(i!==l&&i!==null&&i!=="")?""+i:k
        },
        getPos:function(q,l){
            var j=this,i=0,p=0,m,o=j.doc,k;
            q=j.get(q);
            l=l||o.body;
            if(q){
                if(q.getBoundingClientRect){
                    q=q.getBoundingClientRect();
                    m=j.boxModel?o.documentElement:o.body;
                    i=q.left+(o.documentElement.scrollLeft||o.body.scrollLeft)-m.clientTop;
                    p=q.top+(o.documentElement.scrollTop||o.body.scrollTop)-m.clientLeft;
                    return{
                        x:i,
                        y:p
                    }
                }
                k=q;
                while(k&&k!=l&&k.nodeType){
                    i+=k.offsetLeft||0;
                    p+=k.offsetTop||0;
                    k=k.offsetParent
                }
                k=q.parentNode;
                while(k&&k!=l&&k.nodeType){
                    i-=k.scrollLeft||0;
                    p-=k.scrollTop||0;
                    k=k.parentNode
                }
            }
            return{
                x:i,
                y:p
            }
        },
        parseStyle:function(i){
            return this.styles.parse(i)
        },
        serializeStyle:function(j,i){
            return this.styles.serialize(j,i)
        },
        addStyle:function(j){
            var k=this.doc,i;
            styleElm=k.getElementById("mceDefaultStyles");
            if(!styleElm){
                styleElm=k.createElement("style"),styleElm.id="mceDefaultStyles";
                styleElm.type="text/css";
                i=k.getElementsByTagName("head")[0];
                if(i.firstChild){
                    i.insertBefore(styleElm,i.firstChild)
                }else{
                    i.appendChild(styleElm)
                }
            }
            if(styleElm.styleSheet){
                styleElm.styleSheet.cssText+=j
            }else{
                styleElm.appendChild(k.createTextNode(j))
            }
        },
        loadCSS:function(i){
            var k=this,l=k.doc,j;
            if(!i){
                i=""
            }
            j=l.getElementsByTagName("head")[0];
            g(i.split(","),function(m){
                var n;
                if(k.files[m]){
                    return
                }
                k.files[m]=true;
                n=k.create("link",{
                    rel:"stylesheet",
                    href:e._addVer(m)
                });
                if(b&&l.documentMode&&l.recalc){
                    n.onload=function(){
                        if(l.recalc){
                            l.recalc()
                        }
                        n.onload=null
                    }
                }
                j.appendChild(n)
            })
        },
        addClass:function(i,j){
            return this.run(i,function(k){
                var l;
                if(!j){
                    return 0
                }
                if(this.hasClass(k,j)){
                    return k.className
                }
                l=this.removeClass(k,j);
                return k.className=(l!=""?(l+" "):"")+j
            })
        },
        removeClass:function(k,l){
            var i=this,j;
            return i.run(k,function(n){
                var m;
                if(i.hasClass(n,l)){
                    if(!j){
                        j=new RegExp("(^|\\s+)"+l+"(\\s+|$)","g")
                    }
                    m=n.className.replace(j," ");
                    m=e.trim(m!=" "?m:"");
                    n.className=m;
                    if(!m){
                        n.removeAttribute("class");
                        n.removeAttribute("className")
                    }
                    return m
                }
                return n.className
            })
        },
        hasClass:function(j,i){
            j=this.get(j);
            if(!j||!i){
                return false
            }
            return(" "+j.className+" ").indexOf(" "+i+" ")!==-1
        },
        show:function(i){
            return this.setStyle(i,"display","block")
        },
        hide:function(i){
            return this.setStyle(i,"display","none")
        },
        isHidden:function(i){
            i=this.get(i);
            return !i||i.style.display=="none"||this.getStyle(i,"display")=="none"
        },
        uniqueId:function(i){
            return(!i?"mce_":i)+(this.counter++)
        },
        setHTML:function(k,j){
            var i=this;
            return i.run(k,function(m){
                if(b){
                    while(m.firstChild){
                        m.removeChild(m.firstChild)
                    }
                    try{
                        m.innerHTML="<br />"+j;
                        m.removeChild(m.firstChild)
                    }catch(l){
                        var n=i.create("div");
                        n.innerHTML="<br />"+j;
                        g(e.grep(n.childNodes),function(p,o){
                            if(o&&m.canHaveHTML){
                                m.appendChild(p)
                            }
                        })
                    }
                }else{
                    m.innerHTML=j
                }
                return j
            })
        },
        getOuterHTML:function(k){
            var j,i=this;
            k=i.get(k);
            if(!k){
                return null
            }
            if(k.nodeType===1&&i.hasOuterHTML){
                return k.outerHTML
            }
            j=(k.ownerDocument||i.doc).createElement("body");
            j.appendChild(k.cloneNode(true));
            return j.innerHTML
        },
        setOuterHTML:function(l,j,m){
            var i=this;
            function k(p,o,r){
                var s,q;
                q=r.createElement("body");
                q.innerHTML=o;
                s=q.lastChild;
                while(s){
                    i.insertAfter(s.cloneNode(true),p);
                    s=s.previousSibling
                }
                i.remove(p)
            }
            return this.run(l,function(o){
                o=i.get(o);
                if(o.nodeType==1){
                    m=m||o.ownerDocument||i.doc;
                    if(b){
                        try{
                            if(b&&o.nodeType==1){
                                o.outerHTML=j
                            }else{
                                k(o,j,m)
                            }
                        }catch(n){
                            k(o,j,m)
                        }
                    }else{
                        k(o,j,m)
                    }
                }
            })
        },
        decode:h.decode,
        encode:h.encodeAllRaw,
        insertAfter:function(i,j){
            j=this.get(j);
            return this.run(i,function(l){
                var k,m;
                k=j.parentNode;
                m=j.nextSibling;
                if(m){
                    k.insertBefore(l,m)
                }else{
                    k.appendChild(l)
                }
                return l
            })
        },
        replace:function(m,l,i){
            var j=this;
            if(d(l,"array")){
                m=m.cloneNode(true)
            }
            return j.run(l,function(k){
                if(i){
                    g(e.grep(k.childNodes),function(n){
                        m.appendChild(n)
                    })
                }
                return k.parentNode.replaceChild(m,k)
            })
        },
        rename:function(l,i){
            var k=this,j;
            if(l.nodeName!=i.toUpperCase()){
                j=k.create(i);
                g(k.getAttribs(l),function(m){
                    k.setAttrib(j,m.nodeName,k.getAttrib(l,m.nodeName))
                });
                k.replace(j,l,1)
            }
            return j||l
        },
        findCommonAncestor:function(k,i){
            var l=k,j;
            while(l){
                j=i;
                while(j&&l!=j){
                    j=j.parentNode
                }
                if(l==j){
                    break
                }
                l=l.parentNode
            }
            if(!l&&k.ownerDocument){
                return k.ownerDocument.documentElement
            }
            return l
        },
        toHex:function(i){
            var k=/^\s*rgb\s*?\(\s*?([0-9]+)\s*?,\s*?([0-9]+)\s*?,\s*?([0-9]+)\s*?\)\s*$/i.exec(i);
            function j(l){
                l=parseInt(l,10).toString(16);
                return l.length>1?l:"0"+l
            }
            if(k){
                i="#"+j(k[1])+j(k[2])+j(k[3]);
                return i
            }
            return i
        },
        getClasses:function(){
            var n=this,j=[],m,o={},p=n.settings.class_filter,l;
            if(n.classes){
                return n.classes
            }
            function q(i){
                g(i.imports,function(s){
                    q(s)
                });
                g(i.cssRules||i.rules,function(s){
                    switch(s.type||1){
                        case 1:
                            if(s.selectorText){
                                g(s.selectorText.split(","),function(r){
                                    r=r.replace(/^\s*|\s*$|^\s\./g,"");
                                    if(/\.mce/.test(r)||!/\.[\w\-]+$/.test(r)){
                                        return
                                    }
                                    l=r;
                                    r=e._replace(/.*\.([a-z0-9_\-]+).*/i,"$1",r);
                                    if(p&&!(r=p(r,l))){
                                        return
                                    }
                                    if(!o[r]){
                                        j.push({
                                            "class":r
                                        });
                                        o[r]=1
                                    }
                                })
                            }
                            break;
                        case 3:
                            q(s.styleSheet);
                            break
                    }
                })
            }
            try{
                g(n.doc.styleSheets,q)
            }catch(k){}
            if(j.length>0){
                n.classes=j
            }
            return j
        },
        run:function(l,k,j){
            var i=this,m;
            if(i.doc&&typeof(l)==="string"){
                l=i.get(l)
            }
            if(!l){
                return false
            }
            j=j||this;
            if(!l.nodeType&&(l.length||l.length===0)){
                m=[];
                g(l,function(o,n){
                    if(o){
                        if(typeof(o)=="string"){
                            o=i.doc.getElementById(o)
                        }
                        m.push(k.call(j,o,n))
                    }
                });
                return m
            }
            return k.call(j,l)
        },
        getAttribs:function(j){
            var i;
            j=this.get(j);
            if(!j){
                return[]
            }
            if(b){
                i=[];
                if(j.nodeName=="OBJECT"){
                    return j.attributes
                }
                if(j.nodeName==="OPTION"&&this.getAttrib(j,"selected")){
                    i.push({
                        specified:1,
                        nodeName:"selected"
                    })
                }
                j.cloneNode(false).outerHTML.replace(/<\/?[\w:\-]+ ?|=[\"][^\"]+\"|=\'[^\']+\'|=[\w\-]+|>/gi,"").replace(/[\w:\-]+/gi,function(k){
                    i.push({
                        specified:1,
                        nodeName:k
                    })
                });
                return i
            }
            return j.attributes
        },
        isEmpty:function(m,k){
            var r=this,o,n,q,j,l,p=0;
            m=m.firstChild;
            if(m){
                j=new e.dom.TreeWalker(m,m.parentNode);
                k=k||r.schema?r.schema.getNonEmptyElements():null;
                do{
                    q=m.nodeType;
                    if(q===1){
                        if(m.getAttribute("data-mce-bogus")){
                            continue
                        }
                        l=m.nodeName.toLowerCase();
                        if(k&&k[l]){
                            if(l==="br"){
                                p++;
                                continue
                            }
                            return false
                        }
                        n=r.getAttribs(m);
                        o=m.attributes.length;
                        while(o--){
                            l=m.attributes[o].nodeName;
                            if(l==="name"||l==="data-mce-bookmark"){
                                return false
                            }
                        }
                    }
                    if(q==8){
                        return false
                    }
                    if((q===3&&!a.test(m.nodeValue))){
                        return false
                    }
                }while(m=j.next())
            }
            return p<=1
        },
        destroy:function(j){
            var i=this;
            i.win=i.doc=i.root=i.events=i.frag=null;
            if(!j){
                e.removeUnload(i.destroy)
            }
        },
        createRng:function(){
            var i=this.doc;
            return i.createRange?i.createRange():new e.dom.Range(this)
        },
        nodeIndex:function(m,n){
            var i=0,k,l,j;
            if(m){
                for(k=m.nodeType,m=m.previousSibling,l=m;m;m=m.previousSibling){
                    j=m.nodeType;
                    if(n&&j==3){
                        if(j==k||!m.nodeValue.length){
                            continue
                        }
                    }
                    i++;
                    k=j
                }
            }
            return i
        },
        split:function(m,l,p){
            var q=this,i=q.createRng(),n,k,o;
            function j(v){
                var t,s=v.childNodes,u=v.nodeType;
                function x(A){
                    var z=A.previousSibling&&A.previousSibling.nodeName=="SPAN";
                    var y=A.nextSibling&&A.nextSibling.nodeName=="SPAN";
                    return z&&y
                }
                if(u==1&&v.getAttribute("data-mce-type")=="bookmark"){
                    return
                }
                for(t=s.length-1;t>=0;t--){
                    j(s[t])
                }
                if(u!=9){
                    if(u==3&&v.nodeValue.length>0){
                        var r=e.trim(v.nodeValue).length;
                        if(!q.isBlock(v.parentNode)||r>0||r===0&&x(v)){
                            return
                        }
                    }else{
                        if(u==1){
                            s=v.childNodes;
                            if(s.length==1&&s[0]&&s[0].nodeType==1&&s[0].getAttribute("data-mce-type")=="bookmark"){
                                v.parentNode.insertBefore(s[0],v)
                            }
                            if(s.length||/^(br|hr|input|img)$/i.test(v.nodeName)){
                                return
                            }
                        }
                    }
                    q.remove(v)
                }
                return v
            }
            if(m&&l){
                i.setStart(m.parentNode,q.nodeIndex(m));
                i.setEnd(l.parentNode,q.nodeIndex(l));
                n=i.extractContents();
                i=q.createRng();
                i.setStart(l.parentNode,q.nodeIndex(l)+1);
                i.setEnd(m.parentNode,q.nodeIndex(m)+1);
                k=i.extractContents();
                o=m.parentNode;
                o.insertBefore(j(n),m);
                if(p){
                    o.replaceChild(p,l)
                }else{
                    o.insertBefore(l,m)
                }
                o.insertBefore(j(k),m);
                q.remove(m);
                return p||l
            }
        },
        bind:function(l,i,k,j){
            return this.events.add(l,i,k,j||this)
        },
        unbind:function(k,i,j){
            return this.events.remove(k,i,j)
        },
        fire:function(k,j,i){
            return this.events.fire(k,j,i)
        },
        getContentEditable:function(j){
            var i;
            if(j.nodeType!=1){
                return null
            }
            i=j.getAttribute("data-mce-contenteditable");
            if(i&&i!=="inherit"){
                return i
            }
            return j.contentEditable!=="inherit"?j.contentEditable:null
        },
        _findSib:function(l,i,j){
            var k=this,m=i;
            if(l){
                if(d(m,"string")){
                    m=function(n){
                        return k.is(n,i)
                    }
                }
                for(l=l[j];l;l=l[j]){
                    if(m(l)){
                        return l
                    }
                }
            }
            return null
        },
        _isRes:function(i){
            return/^(top|left|bottom|right|width|height)/i.test(i)||/;\s*(top|left|bottom|right|width|height)/i.test(i)
        }
    });
    e.DOM=new e.dom.DOMUtils(document,{
        process_html:0
    })
})(tinymce);
(function(a){
    function b(c){
        var O=this,e=c.doc,U=0,F=1,j=2,E=true,S=false,W="startOffset",h="startContainer",Q="endContainer",A="endOffset",k=tinymce.extend,n=c.nodeIndex;
        k(O,{
            startContainer:e,
            startOffset:0,
            endContainer:e,
            endOffset:0,
            collapsed:E,
            commonAncestorContainer:e,
            START_TO_START:0,
            START_TO_END:1,
            END_TO_END:2,
            END_TO_START:3,
            setStart:q,
            setEnd:s,
            setStartBefore:g,
            setStartAfter:J,
            setEndBefore:K,
            setEndAfter:u,
            collapse:B,
            selectNode:y,
            selectNodeContents:G,
            compareBoundaryPoints:v,
            deleteContents:p,
            extractContents:I,
            cloneContents:d,
            insertNode:D,
            surroundContents:N,
            cloneRange:L,
            toStringIE:T
        });
        function x(){
            return e.createDocumentFragment()
        }
        function q(X,t){
            C(E,X,t)
        }
        function s(X,t){
            C(S,X,t)
        }
        function g(t){
            q(t.parentNode,n(t))
        }
        function J(t){
            q(t.parentNode,n(t)+1)
        }
        function K(t){
            s(t.parentNode,n(t))
        }
        function u(t){
            s(t.parentNode,n(t)+1)
        }
        function B(t){
            if(t){
                O[Q]=O[h];
                O[A]=O[W]
            }else{
                O[h]=O[Q];
                O[W]=O[A]
            }
            O.collapsed=E
        }
        function y(t){
            g(t);
            u(t)
        }
        function G(t){
            q(t,0);
            s(t,t.nodeType===1?t.childNodes.length:t.nodeValue.length)
        }
        function v(aa,t){
            var ad=O[h],Y=O[W],ac=O[Q],X=O[A],ab=t.startContainer,af=t.startOffset,Z=t.endContainer,ae=t.endOffset;
            if(aa===0){
                return H(ad,Y,ab,af)
            }
            if(aa===1){
                return H(ac,X,ab,af)
            }
            if(aa===2){
                return H(ac,X,Z,ae)
            }
            if(aa===3){
                return H(ad,Y,Z,ae)
            }
        }
        function p(){
            l(j)
        }
        function I(){
            return l(U)
        }
        function d(){
            return l(F)
        }
        function D(aa){
            var X=this[h],t=this[W],Z,Y;
            if((X.nodeType===3||X.nodeType===4)&&X.nodeValue){
                if(!t){
                    X.parentNode.insertBefore(aa,X)
                }else{
                    if(t>=X.nodeValue.length){
                        c.insertAfter(aa,X)
                    }else{
                        Z=X.splitText(t);
                        X.parentNode.insertBefore(aa,Z)
                    }
                }
            }else{
                if(X.childNodes.length>0){
                    Y=X.childNodes[t]
                }
                if(Y){
                    X.insertBefore(aa,Y)
                }else{
                    X.appendChild(aa)
                }
            }
        }
        function N(X){
            var t=O.extractContents();
            O.insertNode(X);
            X.appendChild(t);
            O.selectNode(X)
        }
        function L(){
            return k(new b(c),{
                startContainer:O[h],
                startOffset:O[W],
                endContainer:O[Q],
                endOffset:O[A],
                collapsed:O.collapsed,
                commonAncestorContainer:O.commonAncestorContainer
            })
        }
        function P(t,X){
            var Y;
            if(t.nodeType==3){
                return t
            }
            if(X<0){
                return t
            }
            Y=t.firstChild;
            while(Y&&X>0){
                --X;
                Y=Y.nextSibling
            }
            if(Y){
                return Y
            }
            return t
        }
        function m(){
            return(O[h]==O[Q]&&O[W]==O[A])
        }
        function H(Z,ab,X,aa){
            var ac,Y,t,ad,af,ae;
            if(Z==X){
                if(ab==aa){
                    return 0
                }
                if(ab<aa){
                    return -1
                }
                return 1
            }
            ac=X;
            while(ac&&ac.parentNode!=Z){
                ac=ac.parentNode
            }
            if(ac){
                Y=0;
                t=Z.firstChild;
                while(t!=ac&&Y<ab){
                    Y++;
                    t=t.nextSibling
                }
                if(ab<=Y){
                    return -1
                }
                return 1
            }
            ac=Z;
            while(ac&&ac.parentNode!=X){
                ac=ac.parentNode
            }
            if(ac){
                Y=0;
                t=X.firstChild;
                while(t!=ac&&Y<aa){
                    Y++;
                    t=t.nextSibling
                }
                if(Y<aa){
                    return -1
                }
                return 1
            }
            ad=c.findCommonAncestor(Z,X);
            af=Z;
            while(af&&af.parentNode!=ad){
                af=af.parentNode
            }
            if(!af){
                af=ad
            }
            ae=X;
            while(ae&&ae.parentNode!=ad){
                ae=ae.parentNode
            }
            if(!ae){
                ae=ad
            }
            if(af==ae){
                return 0
            }
            t=ad.firstChild;
            while(t){
                if(t==af){
                    return -1
                }
                if(t==ae){
                    return 1
                }
                t=t.nextSibling
            }
        }
        function C(X,aa,Z){
            var t,Y;
            if(X){
                O[h]=aa;
                O[W]=Z
            }else{
                O[Q]=aa;
                O[A]=Z
            }
            t=O[Q];
            while(t.parentNode){
                t=t.parentNode
            }
            Y=O[h];
            while(Y.parentNode){
                Y=Y.parentNode
            }
            if(Y==t){
                if(H(O[h],O[W],O[Q],O[A])>0){
                    O.collapse(X)
                }
            }else{
                O.collapse(X)
            }
            O.collapsed=m();
            O.commonAncestorContainer=c.findCommonAncestor(O[h],O[Q])
        }
        function l(ad){
            var ac,Z=0,af=0,X,ab,Y,aa,t,ae;
            if(O[h]==O[Q]){
                return f(ad)
            }
            for(ac=O[Q],X=ac.parentNode;X;ac=X,X=X.parentNode){
                if(X==O[h]){
                    return r(ac,ad)
                }
                ++Z
            }
            for(ac=O[h],X=ac.parentNode;X;ac=X,X=X.parentNode){
                if(X==O[Q]){
                    return V(ac,ad)
                }
                ++af
            }
            ab=af-Z;
            Y=O[h];
            while(ab>0){
                Y=Y.parentNode;
                ab--
            }
            aa=O[Q];
            while(ab<0){
                aa=aa.parentNode;
                ab++
            }
            for(t=Y.parentNode,ae=aa.parentNode;t!=ae;t=t.parentNode,ae=ae.parentNode){
                Y=t;
                aa=ae
            }
            return o(Y,aa,ad)
        }
        function f(ac){
            var ae,af,t,Y,Z,ad,aa,X,ab;
            if(ac!=j){
                ae=x()
            }
            if(O[W]==O[A]){
                return ae
            }
            if(O[h].nodeType==3){
                af=O[h].nodeValue;
                t=af.substring(O[W],O[A]);
                if(ac!=F){
                    Y=O[h];
                    X=O[W];
                    ab=O[A]-O[W];
                    if(X===0&&ab>=Y.nodeValue.length-1){
                        Y.parentNode.removeChild(Y)
                    }else{
                        Y.deleteData(X,ab)
                    }
                    O.collapse(E)
                }
                if(ac==j){
                    return
                }
                if(t.length>0){
                    ae.appendChild(e.createTextNode(t))
                }
                return ae
            }
            Y=P(O[h],O[W]);
            Z=O[A]-O[W];
            while(Y&&Z>0){
                ad=Y.nextSibling;
                aa=z(Y,ac);
                if(ae){
                    ae.appendChild(aa)
                }
                --Z;
                Y=ad
            }
            if(ac!=F){
                O.collapse(E)
            }
            return ae
        }
        function r(ad,aa){
            var ac,ab,X,t,Z,Y;
            if(aa!=j){
                ac=x()
            }
            ab=i(ad,aa);
            if(ac){
                ac.appendChild(ab)
            }
            X=n(ad);
            t=X-O[W];
            if(t<=0){
                if(aa!=F){
                    O.setEndBefore(ad);
                    O.collapse(S)
                }
                return ac
            }
            ab=ad.previousSibling;
            while(t>0){
                Z=ab.previousSibling;
                Y=z(ab,aa);
                if(ac){
                    ac.insertBefore(Y,ac.firstChild)
                }
                --t;
                ab=Z
            }
            if(aa!=F){
                O.setEndBefore(ad);
                O.collapse(S)
            }
            return ac
        }
        function V(ab,aa){
            var ad,X,ac,t,Z,Y;
            if(aa!=j){
                ad=x()
            }
            ac=R(ab,aa);
            if(ad){
                ad.appendChild(ac)
            }
            X=n(ab);
            ++X;
            t=O[A]-X;
            ac=ab.nextSibling;
            while(ac&&t>0){
                Z=ac.nextSibling;
                Y=z(ac,aa);
                if(ad){
                    ad.appendChild(Y)
                }
                --t;
                ac=Z
            }
            if(aa!=F){
                O.setStartAfter(ab);
                O.collapse(E)
            }
            return ad
        }
        function o(ab,t,ae){
            var Y,ag,aa,ac,ad,X,af,Z;
            if(ae!=j){
                ag=x()
            }
            Y=R(ab,ae);
            if(ag){
                ag.appendChild(Y)
            }
            aa=ab.parentNode;
            ac=n(ab);
            ad=n(t);
            ++ac;
            X=ad-ac;
            af=ab.nextSibling;
            while(X>0){
                Z=af.nextSibling;
                Y=z(af,ae);
                if(ag){
                    ag.appendChild(Y)
                }
                af=Z;
                --X
            }
            Y=i(t,ae);
            if(ag){
                ag.appendChild(Y)
            }
            if(ae!=F){
                O.setStartAfter(ab);
                O.collapse(E)
            }
            return ag
        }
        function i(ac,ad){
            var Y=P(O[Q],O[A]-1),ae,ab,aa,t,X,Z=Y!=O[Q];
            if(Y==ac){
                return M(Y,Z,S,ad)
            }
            ae=Y.parentNode;
            ab=M(ae,S,S,ad);
            while(ae){
                while(Y){
                    aa=Y.previousSibling;
                    t=M(Y,Z,S,ad);
                    if(ad!=j){
                        ab.insertBefore(t,ab.firstChild)
                    }
                    Z=E;
                    Y=aa
                }
                if(ae==ac){
                    return ab
                }
                Y=ae.previousSibling;
                ae=ae.parentNode;
                X=M(ae,S,S,ad);
                if(ad!=j){
                    X.appendChild(ab)
                }
                ab=X
            }
        }
        function R(ac,ad){
            var Z=P(O[h],O[W]),aa=Z!=O[h],ae,ab,Y,t,X;
            if(Z==ac){
                return M(Z,aa,E,ad)
            }
            ae=Z.parentNode;
            ab=M(ae,S,E,ad);
            while(ae){
                while(Z){
                    Y=Z.nextSibling;
                    t=M(Z,aa,E,ad);
                    if(ad!=j){
                        ab.appendChild(t)
                    }
                    aa=E;
                    Z=Y
                }
                if(ae==ac){
                    return ab
                }
                Z=ae.nextSibling;
                ae=ae.parentNode;
                X=M(ae,S,E,ad);
                if(ad!=j){
                    X.appendChild(ab)
                }
                ab=X
            }
        }
        function M(t,aa,ad,ae){
            var Z,Y,ab,X,ac;
            if(aa){
                return z(t,ae)
            }
            if(t.nodeType==3){
                Z=t.nodeValue;
                if(ad){
                    X=O[W];
                    Y=Z.substring(X);
                    ab=Z.substring(0,X)
                }else{
                    X=O[A];
                    Y=Z.substring(0,X);
                    ab=Z.substring(X)
                }
                if(ae!=F){
                    t.nodeValue=ab
                }
                if(ae==j){
                    return
                }
                ac=c.clone(t,S);
                ac.nodeValue=Y;
                return ac
            }
            if(ae==j){
                return
            }
            return c.clone(t,S)
        }
        function z(X,t){
            if(t!=j){
                return t==F?c.clone(X,E):X
            }
            X.parentNode.removeChild(X)
        }
        function T(){
            return c.create("body",null,d()).outerText
        }
        return O
    }
    a.Range=b;
    b.prototype.toString=function(){
        return this.toStringIE()
    }
})(tinymce.dom);
(function(){
    function a(d){
        var b=this,h=d.dom,c=true,f=false;
        function e(i,j){
            var k,t=0,q,n,m,l,o,r,p=-1,s;
            k=i.duplicate();
            k.collapse(j);
            s=k.parentElement();
            if(s.ownerDocument!==d.dom.doc){
                return
            }while(s.contentEditable==="false"){
                s=s.parentNode
            }
            if(!s.hasChildNodes()){
                return{
                    node:s,
                    inside:1
                }
            }
            m=s.children;
            q=m.length-1;
            while(t<=q){
                r=Math.floor((t+q)/2);
                l=m[r];
                k.moveToElementText(l);
                p=k.compareEndPoints(j?"StartToStart":"EndToEnd",i);
                if(p>0){
                    q=r-1
                }else{
                    if(p<0){
                        t=r+1
                    }else{
                        return{
                            node:l
                        }
                    }
                }
            }
            if(p<0){
                if(!l){
                    k.moveToElementText(s);
                    k.collapse(true);
                    l=s;
                    n=true
                }else{
                    k.collapse(false)
                }
                o=0;
                while(k.compareEndPoints(j?"StartToStart":"StartToEnd",i)!==0){
                    if(k.move("character",1)===0||s!=k.parentElement()){
                        break
                    }
                    o++
                }
            }else{
                k.collapse(true);
                o=0;
                while(k.compareEndPoints(j?"StartToStart":"StartToEnd",i)!==0){
                    if(k.move("character",-1)===0||s!=k.parentElement()){
                        break
                    }
                    o++
                }
            }
            return{
                node:l,
                position:p,
                offset:o,
                inside:n
            }
        }
        function g(){
            var i=d.getRng(),r=h.createRng(),l,k,p,q,m,j;
            l=i.item?i.item(0):i.parentElement();
            if(l.ownerDocument!=h.doc){
                return r
            }
            k=d.isCollapsed();
            if(i.item){
                r.setStart(l.parentNode,h.nodeIndex(l));
                r.setEnd(r.startContainer,r.startOffset+1);
                return r
            }
            function o(A){
                var u=e(i,A),s,y,z=0,x,v,t;
                s=u.node;
                y=u.offset;
                if(u.inside&&!s.hasChildNodes()){
                    r[A?"setStart":"setEnd"](s,0);
                    return
                }
                if(y===v){
                    r[A?"setStartBefore":"setEndAfter"](s);
                    return
                }
                if(u.position<0){
                    x=u.inside?s.firstChild:s.nextSibling;
                    if(!x){
                        r[A?"setStartAfter":"setEndAfter"](s);
                        return
                    }
                    if(!y){
                        if(x.nodeType==3){
                            r[A?"setStart":"setEnd"](x,0)
                        }else{
                            r[A?"setStartBefore":"setEndBefore"](x)
                        }
                        return
                    }while(x){
                        t=x.nodeValue;
                        z+=t.length;
                        if(z>=y){
                            s=x;
                            z-=y;
                            z=t.length-z;
                            break
                        }
                        x=x.nextSibling
                    }
                }else{
                    x=s.previousSibling;
                    if(!x){
                        return r[A?"setStartBefore":"setEndBefore"](s)
                    }
                    if(!y){
                        if(s.nodeType==3){
                            r[A?"setStart":"setEnd"](x,s.nodeValue.length)
                        }else{
                            r[A?"setStartAfter":"setEndAfter"](x)
                        }
                        return
                    }while(x){
                        z+=x.nodeValue.length;
                        if(z>=y){
                            s=x;
                            z-=y;
                            break
                        }
                        x=x.previousSibling
                    }
                }
                r[A?"setStart":"setEnd"](s,z)
            }
            try{
                o(true);
                if(!k){
                    o()
                }
            }catch(n){
                if(n.number==-2147024809){
                    m=b.getBookmark(2);
                    p=i.duplicate();
                    p.collapse(true);
                    l=p.parentElement();
                    if(!k){
                        p=i.duplicate();
                        p.collapse(false);
                        q=p.parentElement();
                        q.innerHTML=q.innerHTML
                    }
                    l.innerHTML=l.innerHTML;
                    b.moveToBookmark(m);
                    i=d.getRng();
                    o(true);
                    if(!k){
                        o()
                    }
                }else{
                    throw n
                }
            }
            return r
        }
        this.getBookmark=function(m){
            var j=d.getRng(),o,i,l={};
    
            function n(u){
                var t,p,s,r,q=[];
                t=u.parentNode;
                p=h.getRoot().parentNode;
                while(t!=p&&t.nodeType!==9){
                    s=t.children;
                    r=s.length;
                    while(r--){
                        if(u===s[r]){
                            q.push(r);
                            break
                        }
                    }
                    u=t;
                    t=t.parentNode
                }
                return q
            }
            function k(q){
                var p;
                p=e(j,q);
                if(p){
                    return{
                        position:p.position,
                        offset:p.offset,
                        indexes:n(p.node),
                        inside:p.inside
                    }
                }
            }
            if(m===2){
                if(!j.item){
                    l.start=k(true);
                    if(!d.isCollapsed()){
                        l.end=k()
                    }
                }else{
                    l.start={
                        ctrl:true,
                        indexes:n(j.item(0))
                    }
                }
            }
            return l
        };

        this.moveToBookmark=function(k){
            var j,i=h.doc.body;
            function m(o){
                var r,q,n,p;
                r=h.getRoot();
                for(q=o.length-1;q>=0;q--){
                    p=r.children;
                    n=o[q];
                    if(n<=p.length-1){
                        r=p[n]
                    }
                }
                return r
            }
            function l(r){
                var n=k[r?"start":"end"],q,p,o;
                if(n){
                    q=n.position>0;
                    p=i.createTextRange();
                    p.moveToElementText(m(n.indexes));
                    offset=n.offset;
                    if(offset!==o){
                        p.collapse(n.inside||q);
                        p.moveStart("character",q?-offset:offset)
                    }else{
                        p.collapse(r)
                    }
                    j.setEndPoint(r?"StartToStart":"EndToStart",p);
                    if(r){
                        j.collapse(true)
                    }
                }
            }
            if(k.start){
                if(k.start.ctrl){
                    j=i.createControlRange();
                    j.addElement(m(k.start.indexes));
                    j.select()
                }else{
                    j=i.createTextRange();
                    l(true);
                    l();
                    j.select()
                }
            }
        };

        this.addRange=function(i){
            var n,l,k,p,v,q,t,s=d.dom.doc,m=s.body,r,u;
            function j(C){
                var y,B,x,A,z;
                x=h.create("a");
                y=C?k:v;
                B=C?p:q;
                A=n.duplicate();
                if(y==s||y==s.documentElement){
                    y=m;
                    B=0
                }
                if(y.nodeType==3){
                    y.parentNode.insertBefore(x,y);
                    A.moveToElementText(x);
                    A.moveStart("character",B);
                    h.remove(x);
                    n.setEndPoint(C?"StartToStart":"EndToEnd",A)
                }else{
                    z=y.childNodes;
                    if(z.length){
                        if(B>=z.length){
                            h.insertAfter(x,z[z.length-1])
                        }else{
                            y.insertBefore(x,z[B])
                        }
                        A.moveToElementText(x)
                    }else{
                        if(y.canHaveHTML){
                            y.innerHTML="<span>\uFEFF</span>";
                            x=y.firstChild;
                            A.moveToElementText(x);
                            A.collapse(f)
                        }
                    }
                    n.setEndPoint(C?"StartToStart":"EndToEnd",A);
                    h.remove(x)
                }
            }
            k=i.startContainer;
            p=i.startOffset;
            v=i.endContainer;
            q=i.endOffset;
            n=m.createTextRange();
            if(k==v&&k.nodeType==1){
                if(p==q&&!k.hasChildNodes()){
                    if(k.canHaveHTML){
                        t=k.previousSibling;
                        if(t&&!t.hasChildNodes()&&h.isBlock(t)){
                            t.innerHTML="\uFEFF"
                        }else{
                            t=null
                        }
                        k.innerHTML="<span>\uFEFF</span><span>\uFEFF</span>";
                        n.moveToElementText(k.lastChild);
                        n.select();
                        h.doc.selection.clear();
                        k.innerHTML="";
                        if(t){
                            t.innerHTML=""
                        }
                        return
                    }else{
                        p=h.nodeIndex(k);
                        k=k.parentNode
                    }
                }
                if(p==q-1){
                    try{
                        u=k.childNodes[p];
                        l=m.createControlRange();
                        l.addElement(u);
                        l.select();
                        r=d.getRng();
                        if(r.item&&u===r.item(0)){
                            return
                        }
                    }catch(o){}
                }
            }
            j(true);
            j();
            n.select()
        };

        this.getRangeAt=g
    }
    tinymce.dom.TridentSelection=a
})();
(function(a){
    a.dom.Element=function(f,d){
        var b=this,e,c;
        b.settings=d=d||{};
        
        b.id=f;
        b.dom=e=d.dom||a.DOM;
        if(!a.isIE){
            c=e.get(b.id)
        }
        a.each(("getPos,getRect,getParent,add,setStyle,getStyle,setStyles,setAttrib,setAttribs,getAttrib,addClass,removeClass,hasClass,getOuterHTML,setOuterHTML,remove,show,hide,isHidden,setHTML,get").split(/,/),function(g){
            b[g]=function(){
                var h=[f],j;
                for(j=0;j<arguments.length;j++){
                    h.push(arguments[j])
                }
                h=e[g].apply(e,h);
                b.update(g);
                return h
            }
        });
        a.extend(b,{
            on:function(i,h,g){
                return a.dom.Event.add(b.id,i,h,g)
            },
            getXY:function(){
                return{
                    x:parseInt(b.getStyle("left")),
                    y:parseInt(b.getStyle("top"))
                }
            },
            getSize:function(){
                var g=e.get(b.id);
                return{
                    w:parseInt(b.getStyle("width")||g.clientWidth),
                    h:parseInt(b.getStyle("height")||g.clientHeight)
                }
            },
            moveTo:function(g,h){
                b.setStyles({
                    left:g,
                    top:h
                })
            },
            moveBy:function(g,i){
                var h=b.getXY();
                b.moveTo(h.x+g,h.y+i)
            },
            resizeTo:function(g,i){
                b.setStyles({
                    width:g,
                    height:i
                })
            },
            resizeBy:function(g,j){
                var i=b.getSize();
                b.resizeTo(i.w+g,i.h+j)
            },
            update:function(h){
                var g;
                if(a.isIE6&&d.blocker){
                    h=h||"";
                    if(h.indexOf("get")===0||h.indexOf("has")===0||h.indexOf("is")===0){
                        return
                    }
                    if(h=="remove"){
                        e.remove(b.blocker);
                        return
                    }
                    if(!b.blocker){
                        b.blocker=e.uniqueId();
                        g=e.add(d.container||e.getRoot(),"iframe",{
                            id:b.blocker,
                            style:"position:absolute;",
                            frameBorder:0,
                            src:'javascript:""'
                        });
                        e.setStyle(g,"opacity",0)
                    }else{
                        g=e.get(b.blocker)
                    }
                    e.setStyles(g,{
                        left:b.getStyle("left",1),
                        top:b.getStyle("top",1),
                        width:b.getStyle("width",1),
                        height:b.getStyle("height",1),
                        display:b.getStyle("display",1),
                        zIndex:parseInt(b.getStyle("zIndex",1)||0)-1
                    })
                }
            }
        })
    }
})(tinymce);
(function(d){
    function f(g){
        return g.replace(/[\n\r]+/g,"")
    }
    var c=d.is,b=d.isIE,e=d.each,a=d.dom.TreeWalker;
    d.create("tinymce.dom.Selection",{
        Selection:function(k,j,i,h){
            var g=this;
            g.dom=k;
            g.win=j;
            g.serializer=i;
            g.editor=h;
            e(["onBeforeSetContent","onBeforeGetContent","onSetContent","onGetContent"],function(l){
                g[l]=new d.util.Dispatcher(g)
            });
            if(!g.win.getSelection){
                g.tridentSel=new d.dom.TridentSelection(g)
            }
            if(d.isIE&&k.boxModel){
                this._fixIESelection()
            }
            d.addUnload(g.destroy,g)
        },
        setCursorLocation:function(i,j){
            var g=this;
            var h=g.dom.createRng();
            h.setStart(i,j);
            h.setEnd(i,j);
            g.setRng(h);
            g.collapse(false)
        },
        getContent:function(h){
            var g=this,i=g.getRng(),m=g.dom.create("body"),k=g.getSel(),j,l,o;
            h=h||{};
            
            j=l="";
            h.get=true;
            h.format=h.format||"html";
            h.forced_root_block="";
            g.onBeforeGetContent.dispatch(g,h);
            if(h.format=="text"){
                return g.isCollapsed()?"":(i.text||(k.toString?k.toString():""))
            }
            if(i.cloneContents){
                o=i.cloneContents();
                if(o){
                    m.appendChild(o)
                }
            }else{
                if(c(i.item)||c(i.htmlText)){
                    m.innerHTML="<br>"+(i.item?i.item(0).outerHTML:i.htmlText);
                    m.removeChild(m.firstChild)
                }else{
                    m.innerHTML=i.toString()
                }
            }
            if(/^\s/.test(m.innerHTML)){
                j=" "
            }
            if(/\s+$/.test(m.innerHTML)){
                l=" "
            }
            h.getInner=true;
            h.content=g.isCollapsed()?"":j+g.serializer.serialize(m,h)+l;
            g.onGetContent.dispatch(g,h);
            return h.content
        },
        setContent:function(h,j){
            var o=this,g=o.getRng(),k,l=o.win.document,n,m;
            j=j||{
                format:"html"
            };
        
            j.set=true;
            h=j.content=h;
            if(!j.no_events){
                o.onBeforeSetContent.dispatch(o,j)
            }
            h=j.content;
            if(g.insertNode){
                h+='<span id="__caret">_</span>';
                if(g.startContainer==l&&g.endContainer==l){
                    l.body.innerHTML=h
                }else{
                    g.deleteContents();
                    if(l.body.childNodes.length===0){
                        l.body.innerHTML=h
                    }else{
                        if(g.createContextualFragment){
                            g.insertNode(g.createContextualFragment(h))
                        }else{
                            n=l.createDocumentFragment();
                            m=l.createElement("div");
                            n.appendChild(m);
                            m.outerHTML=h;
                            g.insertNode(n)
                        }
                    }
                }
                k=o.dom.get("__caret");
                g=l.createRange();
                g.setStartBefore(k);
                g.setEndBefore(k);
                o.setRng(g);
                o.dom.remove("__caret");
                try{
                    o.setRng(g)
                }catch(i){}
            }else{
                if(g.item){
                    l.execCommand("Delete",false,null);
                    g=o.getRng()
                }
                if(/^\s+/.test(h)){
                    g.pasteHTML('<span id="__mce_tmp">_</span>'+h);
                    o.dom.remove("__mce_tmp")
                }else{
                    g.pasteHTML(h)
                }
            }
            if(!j.no_events){
                o.onSetContent.dispatch(o,j)
            }
        },
        getStart:function(){
            var i=this,h=i.getRng(),j,g,l,k;
            if(h.duplicate||h.item){
                if(h.item){
                    return h.item(0)
                }
                l=h.duplicate();
                l.collapse(1);
                j=l.parentElement();
                if(j.ownerDocument!==i.dom.doc){
                    j=i.dom.getRoot()
                }
                g=k=h.parentElement();
                while(k=k.parentNode){
                    if(k==j){
                        j=g;
                        break
                    }
                }
                return j
            }else{
                j=h.startContainer;
                if(j.nodeType==1&&j.hasChildNodes()){
                    j=j.childNodes[Math.min(j.childNodes.length-1,h.startOffset)]
                }
                if(j&&j.nodeType==3){
                    return j.parentNode
                }
                return j
            }
        },
        getEnd:function(){
            var h=this,g=h.getRng(),j,i;
            if(g.duplicate||g.item){
                if(g.item){
                    return g.item(0)
                }
                g=g.duplicate();
                g.collapse(0);
                j=g.parentElement();
                if(j.ownerDocument!==h.dom.doc){
                    j=h.dom.getRoot()
                }
                if(j&&j.nodeName=="BODY"){
                    return j.lastChild||j
                }
                return j
            }else{
                j=g.endContainer;
                i=g.endOffset;
                if(j.nodeType==1&&j.hasChildNodes()){
                    j=j.childNodes[i>0?i-1:i]
                }
                if(j&&j.nodeType==3){
                    return j.parentNode
                }
                return j
            }
        },
        getBookmark:function(s,v){
            var y=this,n=y.dom,h,k,j,o,i,p,q,m="\uFEFF",x;
            function g(z,A){
                var t=0;
                e(n.select(z),function(C,B){
                    if(C==A){
                        t=B
                    }
                });
                return t
            }
            function u(t){
                function z(E){
                    var A,D,C,B=E?"start":"end";
                    A=t[B+"Container"];
                    D=t[B+"Offset"];
                    if(A.nodeType==1&&A.nodeName=="TR"){
                        C=A.childNodes;
                        A=C[Math.min(E?D:D-1,C.length-1)];
                        if(A){
                            D=E?0:A.childNodes.length;
                            t["set"+(E?"Start":"End")](A,D)
                        }
                    }
                }
                z(true);
                z();
                return t
            }
            function l(){
                var z=y.getRng(true),t=n.getRoot(),A={};
    
                function B(E,J){
                    var D=E[J?"startContainer":"endContainer"],I=E[J?"startOffset":"endOffset"],C=[],F,H,G=0;
                    if(D.nodeType==3){
                        if(v){
                            for(F=D.previousSibling;F&&F.nodeType==3;F=F.previousSibling){
                                I+=F.nodeValue.length
                            }
                        }
                        C.push(I)
                    }else{
                        H=D.childNodes;
                        if(I>=H.length&&H.length){
                            G=1;
                            I=Math.max(0,H.length-1)
                        }
                        C.push(y.dom.nodeIndex(H[I],v)+G)
                    }
                    for(;D&&D!=t;D=D.parentNode){
                        C.push(y.dom.nodeIndex(D,v))
                    }
                    return C
                }
                A.start=B(z,true);
                if(!y.isCollapsed()){
                    A.end=B(z)
                }
                return A
            }
            if(s==2){
                if(y.tridentSel){
                    return y.tridentSel.getBookmark(s)
                }
                return l()
            }
            if(s){
                return{
                    rng:y.getRng()
                }
            }
            h=y.getRng();
            j=n.uniqueId();
            o=tinyMCE.activeEditor.selection.isCollapsed();
            x="overflow:hidden;line-height:0px";
            if(h.duplicate||h.item){
                if(!h.item){
                    k=h.duplicate();
                    try{
                        h.collapse();
                        h.pasteHTML('<span data-mce-type="bookmark" id="'+j+'_start" style="'+x+'">'+m+"</span>");
                        if(!o){
                            k.collapse(false);
                            h.moveToElementText(k.parentElement());
                            if(h.compareEndPoints("StartToEnd",k)===0){
                                k.move("character",-1)
                            }
                            k.pasteHTML('<span data-mce-type="bookmark" id="'+j+'_end" style="'+x+'">'+m+"</span>")
                        }
                    }catch(r){
                        return null
                    }
                }else{
                    p=h.item(0);
                    i=p.nodeName;
                    return{
                        name:i,
                        index:g(i,p)
                    }
                }
            }else{
                p=y.getNode();
                i=p.nodeName;
                if(i=="IMG"){
                    return{
                        name:i,
                        index:g(i,p)
                    }
                }
                k=u(h.cloneRange());
                if(!o){
                    k.collapse(false);
                    k.insertNode(n.create("span",{
                        "data-mce-type":"bookmark",
                        id:j+"_end",
                        style:x
                    },m))
                }
                h=u(h);
                h.collapse(true);
                h.insertNode(n.create("span",{
                    "data-mce-type":"bookmark",
                    id:j+"_start",
                    style:x
                },m))
            }
            y.moveToBookmark({
                id:j,
                keep:1
            });
            return{
                id:j
            }
        },
        moveToBookmark:function(o){
            var s=this,m=s.dom,j,i,g,r,k,u,p,q;
            function h(A){
                var t=o[A?"start":"end"],x,y,z,v;
                if(t){
                    z=t[0];
                    for(y=r,x=t.length-1;x>=1;x--){
                        v=y.childNodes;
                        if(t[x]>v.length-1){
                            return
                        }
                        y=v[t[x]]
                    }
                    if(y.nodeType===3){
                        z=Math.min(t[0],y.nodeValue.length)
                    }
                    if(y.nodeType===1){
                        z=Math.min(t[0],y.childNodes.length)
                    }
                    if(A){
                        g.setStart(y,z)
                    }else{
                        g.setEnd(y,z)
                    }
                }
                return true
            }
            function l(B){
                var v=m.get(o.id+"_"+B),A,t,y,z,x=o.keep;
                if(v){
                    A=v.parentNode;
                    if(B=="start"){
                        if(!x){
                            t=m.nodeIndex(v)
                        }else{
                            A=v.firstChild;
                            t=1
                        }
                        k=u=A;
                        p=q=t
                    }else{
                        if(!x){
                            t=m.nodeIndex(v)
                        }else{
                            A=v.firstChild;
                            t=1
                        }
                        u=A;
                        q=t
                    }
                    if(!x){
                        z=v.previousSibling;
                        y=v.nextSibling;
                        e(d.grep(v.childNodes),function(C){
                            if(C.nodeType==3){
                                C.nodeValue=C.nodeValue.replace(/\uFEFF/g,"")
                            }
                        });
                        while(v=m.get(o.id+"_"+B)){
                            m.remove(v,1)
                        }
                        if(z&&y&&z.nodeType==y.nodeType&&z.nodeType==3&&!d.isOpera){
                            t=z.nodeValue.length;
                            z.appendData(y.nodeValue);
                            m.remove(y);
                            if(B=="start"){
                                k=u=z;
                                p=q=t
                            }else{
                                u=z;
                                q=t
                            }
                        }
                    }
                }
            }
            function n(t){
                if(m.isBlock(t)&&!t.innerHTML&&!b){
                    t.innerHTML='<br data-mce-bogus="1" />'
                }
                return t
            }
            if(o){
                if(o.start){
                    g=m.createRng();
                    r=m.getRoot();
                    if(s.tridentSel){
                        return s.tridentSel.moveToBookmark(o)
                    }
                    if(h(true)&&h()){
                        s.setRng(g)
                    }
                }else{
                    if(o.id){
                        l("start");
                        l("end");
                        if(k){
                            g=m.createRng();
                            g.setStart(n(k),p);
                            g.setEnd(n(u),q);
                            s.setRng(g)
                        }
                    }else{
                        if(o.name){
                            s.select(m.select(o.name)[o.index])
                        }else{
                            if(o.rng){
                                s.setRng(o.rng)
                            }
                        }
                    }
                }
            }
        },
        select:function(l,k){
            var j=this,m=j.dom,h=m.createRng(),g;
            function i(n,p){
                var o=new a(n,n);
                do{
                    if(n.nodeType==3&&d.trim(n.nodeValue).length!==0){
                        if(p){
                            h.setStart(n,0)
                        }else{
                            h.setEnd(n,n.nodeValue.length)
                        }
                        return
                    }
                    if(n.nodeName=="BR"){
                        if(p){
                            h.setStartBefore(n)
                        }else{
                            h.setEndBefore(n)
                        }
                        return
                    }
                }while(n=(p?o.next():o.prev()))
            }
            if(l){
                g=m.nodeIndex(l);
                h.setStart(l.parentNode,g);
                h.setEnd(l.parentNode,g+1);
                if(k){
                    i(l,1);
                    i(l)
                }
                j.setRng(h)
            }
            return l
        },
        isCollapsed:function(){
            var g=this,i=g.getRng(),h=g.getSel();
            if(!i||i.item){
                return false
            }
            if(i.compareEndPoints){
                return i.compareEndPoints("StartToEnd",i)===0
            }
            return !h||i.collapsed
        },
        collapse:function(g){
            var i=this,h=i.getRng(),j;
            if(h.item){
                j=h.item(0);
                h=i.win.document.body.createTextRange();
                h.moveToElementText(j)
            }
            h.collapse(!!g);
            i.setRng(h)
        },
        getSel:function(){
            var h=this,g=this.win;
            return g.getSelection?g.getSelection():g.document.selection
        },
        getRng:function(m){
            var h=this,j,g,l,k=h.win.document;
            if(m&&h.tridentSel){
                return h.tridentSel.getRangeAt(0)
            }
            try{
                if(j=h.getSel()){
                    g=j.rangeCount>0?j.getRangeAt(0):(j.createRange?j.createRange():k.createRange())
                }
            }catch(i){}
            if(d.isIE&&g&&g.setStart&&k.selection.createRange().item){
                l=k.selection.createRange().item(0);
                g=k.createRange();
                g.setStartBefore(l);
                g.setEndAfter(l)
            }
            if(!g){
                g=k.createRange?k.createRange():k.body.createTextRange()
            }
            if(g.setStart&&g.startContainer.nodeType===9&&g.collapsed){
                l=h.dom.getRoot();
                g.setStart(l,0);
                g.setEnd(l,0)
            }
            if(h.selectedRange&&h.explicitRange){
                if(g.compareBoundaryPoints(g.START_TO_START,h.selectedRange)===0&&g.compareBoundaryPoints(g.END_TO_END,h.selectedRange)===0){
                    g=h.explicitRange
                }else{
                    h.selectedRange=null;
                    h.explicitRange=null
                }
            }
            return g
        },
        setRng:function(k,g){
            var j,i=this;
            if(!i.tridentSel){
                j=i.getSel();
                if(j){
                    i.explicitRange=k;
                    try{
                        j.removeAllRanges()
                    }catch(h){}
                    j.addRange(k);
                    if(g===false&&j.extend){
                        j.collapse(k.endContainer,k.endOffset);
                        j.extend(k.startContainer,k.startOffset)
                    }
                    i.selectedRange=j.rangeCount>0?j.getRangeAt(0):null
                }
            }else{
                if(k.cloneRange){
                    try{
                        i.tridentSel.addRange(k);
                        return
                    }catch(h){}
                }
                try{
                    k.select()
                }catch(h){}
            }
        },
        setNode:function(h){
            var g=this;
            g.setContent(g.dom.getOuterHTML(h));
            return h
        },
        getNode:function(){
            var i=this,h=i.getRng(),j=i.getSel(),m,l=h.startContainer,g=h.endContainer;
            function k(q,o){
                var p=q;
                while(q&&q.nodeType===3&&q.length===0){
                    q=o?q.nextSibling:q.previousSibling
                }
                return q||p
            }
            if(!h){
                return i.dom.getRoot()
            }
            if(h.setStart){
                m=h.commonAncestorContainer;
                if(!h.collapsed){
                    if(h.startContainer==h.endContainer){
                        if(h.endOffset-h.startOffset<2){
                            if(h.startContainer.hasChildNodes()){
                                m=h.startContainer.childNodes[h.startOffset]
                            }
                        }
                    }
                    if(l.nodeType===3&&g.nodeType===3){
                        if(l.length===h.startOffset){
                            l=k(l.nextSibling,true)
                        }else{
                            l=l.parentNode
                        }
                        if(h.endOffset===0){
                            g=k(g.previousSibling,false)
                        }else{
                            g=g.parentNode
                        }
                        if(l&&l===g){
                            return l
                        }
                    }
                }
                if(m&&m.nodeType==3){
                    return m.parentNode
                }
                return m
            }
            return h.item?h.item(0):h.parentElement()
        },
        getSelectedBlocks:function(p,h){
            var o=this,k=o.dom,m,l,i,j=[];
            m=k.getParent(p||o.getStart(),k.isBlock);
            l=k.getParent(h||o.getEnd(),k.isBlock);
            if(m){
                j.push(m)
            }
            if(m&&l&&m!=l){
                i=m;
                var g=new a(m,k.getRoot());
                while((i=g.next())&&i!=l){
                    if(k.isBlock(i)){
                        j.push(i)
                    }
                }
            }
            if(l&&m!=l){
                j.push(l)
            }
            return j
        },
        isForward:function(){
            var i=this.dom,g=this.getSel(),j,h;
            if(!g||g.anchorNode==null||g.focusNode==null){
                return true
            }
            j=i.createRng();
            j.setStart(g.anchorNode,g.anchorOffset);
            j.collapse(true);
            h=i.createRng();
            h.setStart(g.focusNode,g.focusOffset);
            h.collapse(true);
            return j.compareBoundaryPoints(j.START_TO_START,h)<=0
        },
        normalize:function(){
            var h=this,g,m,l,j,i;
            function k(p){
                var o,r,n,s=h.dom,u=s.getRoot(),q,t,v;
                function y(z,A){
                    var B=new a(z,s.getParent(z.parentNode,s.isBlock)||u);
                    while(z=B[A?"prev":"next"]()){
                        if(z.nodeName==="BR"){
                            return true
                        }
                    }
                }
                function x(B,z){
                    var C,A;
                    z=z||o;
                    C=new a(z,s.getParent(z.parentNode,s.isBlock)||u);
                    while(q=C[B?"prev":"next"]()){
                        if(q.nodeType===3&&q.nodeValue.length>0){
                            o=q;
                            r=B?q.nodeValue.length:0;
                            m=true;
                            return
                        }
                        if(s.isBlock(q)||t[q.nodeName.toLowerCase()]){
                            return
                        }
                        A=q
                    }
                    if(l&&A){
                        o=A;
                        m=true;
                        r=0
                    }
                }
                o=g[(p?"start":"end")+"Container"];
                r=g[(p?"start":"end")+"Offset"];
                t=s.schema.getNonEmptyElements();
                if(o.nodeType===9){
                    o=s.getRoot();
                    r=0
                }
                if(o===u){
                    if(p){
                        q=o.childNodes[r>0?r-1:0];
                        if(q){
                            v=q.nodeName.toLowerCase();
                            if(t[q.nodeName]||q.nodeName=="TABLE"){
                                return
                            }
                        }
                    }
                    if(o.hasChildNodes()){
                        o=o.childNodes[Math.min(!p&&r>0?r-1:r,o.childNodes.length-1)];
                        r=0;
                        if(o.hasChildNodes()&&!/TABLE/.test(o.nodeName)){
                            q=o;
                            n=new a(o,u);
                            do{
                                if(q.nodeType===3&&q.nodeValue.length>0){
                                    r=p?0:q.nodeValue.length;
                                    o=q;
                                    m=true;
                                    break
                                }
                                if(t[q.nodeName.toLowerCase()]){
                                    r=s.nodeIndex(q);
                                    o=q.parentNode;
                                    if(q.nodeName=="IMG"&&!p){
                                        r++
                                    }
                                    m=true;
                                    break
                                }
                            }while(q=(p?n.next():n.prev()))
                        }
                    }
                }
                if(l){
                    if(o.nodeType===3&&r===0){
                        x(true)
                    }
                    if(o.nodeType===1){
                        q=o.childNodes[r];
                        if(q&&q.nodeName==="BR"&&!y(q)&&!y(q,true)){
                            x(true,o.childNodes[r])
                        }
                    }
                }
                if(p&&!l&&o.nodeType===3&&r===o.nodeValue.length){
                    x(false)
                }
                if(m){
                    g["set"+(p?"Start":"End")](o,r)
                }
            }
            if(d.isIE){
                return
            }
            g=h.getRng();
            l=g.collapsed;
            k(true);
            if(!l){
                k()
            }
            if(m){
                if(l){
                    g.collapse(true)
                }
                h.setRng(g,h.isForward())
            }
        },
        selectorChanged:function(g,j){
            var h=this,i;
            if(!h.selectorChangedData){
                h.selectorChangedData={};
        
                i={};
        
                h.editor.onNodeChange.addToTop(function(l,k,o){
                    var p=h.dom,m=p.getParents(o,null,p.getRoot()),n={};
            
                    e(h.selectorChangedData,function(r,q){
                        e(m,function(s){
                            if(p.is(s,q)){
                                if(!i[q]){
                                    e(r,function(t){
                                        t(true,{
                                            node:s,
                                            selector:q,
                                            parents:m
                                        })
                                    });
                                    i[q]=r
                                }
                                n[q]=r;
                                return false
                            }
                        })
                    });
                    e(i,function(r,q){
                        if(!n[q]){
                            delete i[q];
                            e(r,function(s){
                                s(false,{
                                    node:o,
                                    selector:q,
                                    parents:m
                                })
                            })
                        }
                    })
                })
            }
            if(!h.selectorChangedData[g]){
                h.selectorChangedData[g]=[]
            }
            h.selectorChangedData[g].push(j);
            return h
        },
        destroy:function(h){
            var g=this;
            g.win=null;
            if(!h){
                d.removeUnload(g.destroy)
            }
        },
        _fixIESelection:function(){
            var h=this.dom,n=h.doc,i=n.body,k,o,g;
            function j(p,s){
                var q=i.createTextRange();
                try{
                    q.moveToPoint(p,s)
                }catch(r){
                    q=null
                }
                return q
            }
            function m(q){
                var p;
                if(q.button){
                    p=j(q.x,q.y);
                    if(p){
                        if(p.compareEndPoints("StartToStart",o)>0){
                            p.setEndPoint("StartToStart",o)
                        }else{
                            p.setEndPoint("EndToEnd",o)
                        }
                        p.select()
                    }
                }else{
                    l()
                }
            }
            function l(){
                var p=n.selection.createRange();
                if(o&&!p.item&&p.compareEndPoints("StartToEnd",p)===0){
                    o.select()
                }
                h.unbind(n,"mouseup",l);
                h.unbind(n,"mousemove",m);
                o=k=0
            }
            n.documentElement.unselectable=true;
            h.bind(n,["mousedown","contextmenu"],function(p){
                if(p.target.nodeName==="HTML"){
                    if(k){
                        l()
                    }
                    g=n.documentElement;
                    if(g.scrollHeight>g.clientHeight){
                        return
                    }
                    k=1;
                    o=j(p.x,p.y);
                    if(o){
                        h.bind(n,"mouseup",l);
                        h.bind(n,"mousemove",m);
                        h.win.focus();
                        o.select()
                    }
                }
            })
        }
    })
})(tinymce);
(function(a){
    a.dom.Serializer=function(e,i,f){
        var h,b,d=a.isIE,g=a.each,c;
        if(!e.apply_source_formatting){
            e.indent=false
        }
        i=i||a.DOM;
        f=f||new a.html.Schema(e);
        e.entity_encoding=e.entity_encoding||"named";
        e.remove_trailing_brs="remove_trailing_brs" in e?e.remove_trailing_brs:true;
        h=new a.util.Dispatcher(self);
        b=new a.util.Dispatcher(self);
        c=new a.html.DomParser(e,f);
        c.addAttributeFilter("src,href,style",function(k,j){
            var o=k.length,l,q,n="data-mce-"+j,p=e.url_converter,r=e.url_converter_scope,m;
            while(o--){
                l=k[o];
                q=l.attributes.map[n];
                if(q!==m){
                    l.attr(j,q.length>0?q:null);
                    l.attr(n,null)
                }else{
                    q=l.attributes.map[j];
                    if(j==="style"){
                        q=i.serializeStyle(i.parseStyle(q),l.name)
                    }else{
                        if(p){
                            q=p.call(r,q,j,l.name)
                        }
                    }
                    l.attr(j,q.length>0?q:null)
                }
            }
        });
        c.addAttributeFilter("class",function(j,k){
            var l=j.length,m,n;
            while(l--){
                m=j[l];
                n=m.attr("class").replace(/(?:^|\s)mce(Item\w+|Selected)(?!\S)/g,"");
                m.attr("class",n.length>0?n:null)
            }
        });
        c.addAttributeFilter("data-mce-type",function(j,l,k){
            var m=j.length,n;
            while(m--){
                n=j[m];
                if(n.attributes.map["data-mce-type"]==="bookmark"&&!k.cleanup){
                    n.remove()
                }
            }
        });
        c.addAttributeFilter("data-mce-expando",function(j,l,k){
            var m=j.length;
            while(m--){
                j[m].attr(l,null)
            }
        });
        c.addNodeFilter("script,style",function(k,l){
            var m=k.length,n,o;
            function j(p){
                return p.replace(/(<!--\[CDATA\[|\]\]-->)/g,"\n").replace(/^[\r\n]*|[\r\n]*$/g,"").replace(/^\s*((<!--)?(\s*\/\/)?\s*<!\[CDATA\[|(<!--\s*)?\/\*\s*<!\[CDATA\[\s*\*\/|(\/\/)?\s*<!--|\/\*\s*<!--\s*\*\/)\s*[\r\n]*/gi,"").replace(/\s*(\/\*\s*\]\]>\s*\*\/(-->)?|\s*\/\/\s*\]\]>(-->)?|\/\/\s*(-->)?|\]\]>|\/\*\s*-->\s*\*\/|\s*-->\s*)\s*$/g,"")
            }while(m--){
                n=k[m];
                o=n.firstChild?n.firstChild.value:"";
                if(l==="script"){
                    n.attr("type",(n.attr("type")||"text/javascript").replace(/^mce\-/,""));
                    if(o.length>0){
                        n.firstChild.value="// <![CDATA[\n"+j(o)+"\n// ]]>"
                    }
                }else{
                    if(o.length>0){
                        n.firstChild.value="<!--\n"+j(o)+"\n-->"
                    }
                }
            }
        });
        c.addNodeFilter("#comment",function(j,k){
            var l=j.length,m;
            while(l--){
                m=j[l];
                if(m.value.indexOf("[CDATA[")===0){
                    m.name="#cdata";
                    m.type=4;
                    m.value=m.value.replace(/^\[CDATA\[|\]\]$/g,"")
                }else{
                    if(m.value.indexOf("mce:protected ")===0){
                        m.name="#text";
                        m.type=3;
                        m.raw=true;
                        m.value=unescape(m.value).substr(14)
                    }
                }
            }
        });
        c.addNodeFilter("xml:namespace,input",function(j,k){
            var l=j.length,m;
            while(l--){
                m=j[l];
                if(m.type===7){
                    m.remove()
                }else{
                    if(m.type===1){
                        if(k==="input"&&!("type" in m.attributes.map)){
                            m.attr("type","text")
                        }
                    }
                }
            }
        });
        if(e.fix_list_elements){
            c.addNodeFilter("ul,ol",function(k,l){
                var m=k.length,n,j;
                while(m--){
                    n=k[m];
                    j=n.parent;
                    if(j.name==="ul"||j.name==="ol"){
                        if(n.prev&&n.prev.name==="li"){
                            n.prev.append(n)
                        }
                    }
                }
            })
        }
        c.addAttributeFilter("data-mce-src,data-mce-href,data-mce-style",function(j,k){
            var l=j.length;
            while(l--){
                j[l].attr(k,null)
            }
        });
        return{
            schema:f,
            addNodeFilter:c.addNodeFilter,
            addAttributeFilter:c.addAttributeFilter,
            onPreProcess:h,
            onPostProcess:b,
            serialize:function(o,m){
                var l,p,k,j,n;
                if(d&&i.select("script,style,select,map").length>0){
                    n=o.innerHTML;
                    o=o.cloneNode(false);
                    i.setHTML(o,n)
                }else{
                    o=o.cloneNode(true)
                }
                l=o.ownerDocument.implementation;
                if(l.createHTMLDocument){
                    p=l.createHTMLDocument("");
                    g(o.nodeName=="BODY"?o.childNodes:[o],function(q){
                        p.body.appendChild(p.importNode(q,true))
                    });
                    if(o.nodeName!="BODY"){
                        o=p.body.firstChild
                    }else{
                        o=p.body
                    }
                    k=i.doc;
                    i.doc=p
                }
                m=m||{};
        
                m.format=m.format||"html";
                if(!m.no_events){
                    m.node=o;
                    h.dispatch(self,m)
                }
                j=new a.html.Serializer(e,f);
                m.content=j.serialize(c.parse(a.trim(m.getInner?o.innerHTML:i.getOuterHTML(o)),m));
                if(!m.cleanup){
                    m.content=m.content.replace(/\uFEFF/g,"")
                }
                if(!m.no_events){
                    b.dispatch(self,m)
                }
                if(k){
                    i.doc=k
                }
                m.node=null;
                return m.content
            },
            addRules:function(j){
                f.addValidElements(j)
            },
            setRules:function(j){
                f.setValidElements(j)
            }
        }
    }
})(tinymce);
(function(a){
    a.dom.ScriptLoader=function(h){
        var c=0,k=1,i=2,l={},j=[],e={},d=[],g=0,f;
        function b(m,v){
            var x=this,q=a.DOM,s,o,r,n;
            function p(){
                q.remove(n);
                if(s){
                    s.onreadystatechange=s.onload=s=null
                }
                v()
            }
            function u(){
                if(typeof(console)!=="undefined"&&console.log){
                    console.log("Failed to load: "+m)
                }
            }
            n=q.uniqueId();
            if(a.isIE6){
                o=new a.util.URI(m);
                r=location;
                if(o.host==r.hostname&&o.port==r.port&&(o.protocol+":")==r.protocol&&o.protocol.toLowerCase()!="file"){
                    a.util.XHR.send({
                        url:a._addVer(o.getURI()),
                        success:function(y){
                            var t=q.create("script",{
                                type:"text/javascript"
                            });
                            t.text=y;
                            document.getElementsByTagName("head")[0].appendChild(t);
                            q.remove(t);
                            p()
                        },
                        error:u
                    });
                    return
                }
            }
            s=document.createElement("script");
            s.id=n;
            s.type="text/javascript";
            s.src=a._addVer(m);
            if(!a.isIE){
                s.onload=p
            }
            s.onerror=u;
            if(!a.isOpera){
                s.onreadystatechange=function(){
                    var t=s.readyState;
                    if(t=="complete"||t=="loaded"){
                        p()
                    }
                }
            }(document.getElementsByTagName("head")[0]||document.body).appendChild(s)
        }
        this.isDone=function(m){
            return l[m]==i
        };
    
        this.markDone=function(m){
            l[m]=i
        };
    
        this.add=this.load=function(m,q,n){
            var o,p=l[m];
            if(p==f){
                j.push(m);
                l[m]=c
            }
            if(q){
                if(!e[m]){
                    e[m]=[]
                }
                e[m].push({
                    func:q,
                    scope:n||this
                })
            }
        };

        this.loadQueue=function(n,m){
            this.loadScripts(j,n,m)
        };
    
        this.loadScripts=function(m,q,p){
            var o;
            function n(r){
                a.each(e[r],function(s){
                    s.func.call(s.scope)
                });
                e[r]=f
            }
            d.push({
                func:q,
                scope:p||this
            });
            o=function(){
                var r=a.grep(m);
                m.length=0;
                a.each(r,function(s){
                    if(l[s]==i){
                        n(s);
                        return
                    }
                    if(l[s]!=k){
                        l[s]=k;
                        g++;
                        b(s,function(){
                            l[s]=i;
                            g--;
                            n(s);
                            o()
                        })
                    }
                });
                if(!g){
                    a.each(d,function(s){
                        s.func.call(s.scope)
                    });
                    d.length=0
                }
            };

            o()
        }
    };

    a.ScriptLoader=new a.dom.ScriptLoader()
})(tinymce);
(function(a){
    a.dom.RangeUtils=function(c){
        var b="\uFEFF";
        this.walk=function(d,s){
            var i=d.startContainer,l=d.startOffset,t=d.endContainer,m=d.endOffset,j,g,o,h,r,q,e;
            e=c.select("td.mceSelected,th.mceSelected");
            if(e.length>0){
                a.each(e,function(u){
                    s([u])
                });
                return
            }
            function f(u){
                var v;
                v=u[0];
                if(v.nodeType===3&&v===i&&l>=v.nodeValue.length){
                    u.splice(0,1)
                }
                v=u[u.length-1];
                if(m===0&&u.length>0&&v===t&&v.nodeType===3){
                    u.splice(u.length-1,1)
                }
                return u
            }
            function p(x,v,u){
                var y=[];
                for(;x&&x!=u;x=x[v]){
                    y.push(x)
                }
                return y
            }
            function n(v,u){
                do{
                    if(v.parentNode==u){
                        return v
                    }
                    v=v.parentNode
                }while(v)
            }
            function k(x,v,y){
                var u=y?"nextSibling":"previousSibling";
                for(h=x,r=h.parentNode;h&&h!=v;h=r){
                    r=h.parentNode;
                    q=p(h==x?h:h[u],u);
                    if(q.length){
                        if(!y){
                            q.reverse()
                        }
                        s(f(q))
                    }
                }
            }
            if(i.nodeType==1&&i.hasChildNodes()){
                i=i.childNodes[l]
            }
            if(t.nodeType==1&&t.hasChildNodes()){
                t=t.childNodes[Math.min(m-1,t.childNodes.length-1)]
            }
            if(i==t){
                return s(f([i]))
            }
            j=c.findCommonAncestor(i,t);
            for(h=i;h;h=h.parentNode){
                if(h===t){
                    return k(i,j,true)
                }
                if(h===j){
                    break
                }
            }
            for(h=t;h;h=h.parentNode){
                if(h===i){
                    return k(t,j)
                }
                if(h===j){
                    break
                }
            }
            g=n(i,j)||i;
            o=n(t,j)||t;
            k(i,g,true);
            q=p(g==i?g:g.nextSibling,"nextSibling",o==t?o.nextSibling:o);
            if(q.length){
                s(f(q))
            }
            k(t,o)
        };
    
        this.split=function(e){
            var h=e.startContainer,d=e.startOffset,i=e.endContainer,g=e.endOffset;
            function f(j,k){
                return j.splitText(k)
            }
            if(h==i&&h.nodeType==3){
                if(d>0&&d<h.nodeValue.length){
                    i=f(h,d);
                    h=i.previousSibling;
                    if(g>d){
                        g=g-d;
                        h=i=f(i,g).previousSibling;
                        g=i.nodeValue.length;
                        d=0
                    }else{
                        g=0
                    }
                }
            }else{
                if(h.nodeType==3&&d>0&&d<h.nodeValue.length){
                    h=f(h,d);
                    d=0
                }
                if(i.nodeType==3&&g>0&&g<i.nodeValue.length){
                    i=f(i,g).previousSibling;
                    g=i.nodeValue.length
                }
            }
            return{
                startContainer:h,
                startOffset:d,
                endContainer:i,
                endOffset:g
            }
        }
    };

    a.dom.RangeUtils.compareRanges=function(c,b){
        if(c&&b){
            if(c.item||c.duplicate){
                if(c.item&&b.item&&c.item(0)===b.item(0)){
                    return true
                }
                if(c.isEqual&&b.isEqual&&b.isEqual(c)){
                    return true
                }
            }else{
                return c.startContainer==b.startContainer&&c.startOffset==b.startOffset
            }
        }
        return false
    }
})(tinymce);
(function(b){
    var a=b.dom.Event,c=b.each;
    b.create("tinymce.ui.KeyboardNavigation",{
        KeyboardNavigation:function(e,f){
            var q=this,n=e.root,m=e.items,o=e.enableUpDown,i=e.enableLeftRight||!e.enableUpDown,l=e.excludeFromTabOrder,k,h,p,d,g;
            f=f||b.DOM;
            k=function(r){
                g=r.target.id
            };
                
            h=function(r){
                f.setAttrib(r.target.id,"tabindex","-1")
            };
                
            d=function(r){
                var s=f.get(g);
                f.setAttrib(s,"tabindex","0");
                s.focus()
            };
                
            q.focus=function(){
                f.get(g).focus()
            };
                
            q.destroy=function(){
                c(m,function(s){
                    var t=f.get(s.id);
                    f.unbind(t,"focus",k);
                    f.unbind(t,"blur",h)
                });
                var r=f.get(n);
                f.unbind(r,"focus",d);
                f.unbind(r,"keydown",p);
                m=f=n=q.focus=k=h=p=d=null;
                q.destroy=function(){}
            };
            
            q.moveFocus=function(v,s){
                var r=-1,u=q.controls,t;
                if(!g){
                    return
                }
                c(m,function(y,x){
                    if(y.id===g){
                        r=x;
                        return false
                    }
                });
                r+=v;
                if(r<0){
                    r=m.length-1
                }else{
                    if(r>=m.length){
                        r=0
                    }
                }
                t=m[r];
                f.setAttrib(g,"tabindex","-1");
                f.setAttrib(t.id,"tabindex","0");
                f.get(t.id).focus();
                if(e.actOnFocus){
                    e.onAction(t.id)
                }
                if(s){
                    a.cancel(s)
                }
            };
    
            p=function(z){
                var v=37,u=39,y=38,A=40,r=27,t=14,s=13,x=32;
                switch(z.keyCode){
                    case v:
                        if(i){
                            q.moveFocus(-1)
                        }
                        break;
                    case u:
                        if(i){
                            q.moveFocus(1)
                        }
                        break;
                    case y:
                        if(o){
                            q.moveFocus(-1)
                        }
                        break;
                    case A:
                        if(o){
                            q.moveFocus(1)
                        }
                        break;
                    case r:
                        if(e.onCancel){
                            e.onCancel();
                            a.cancel(z)
                        }
                        break;
                    case t:case s:case x:
                        if(e.onAction){
                            e.onAction(g);
                            a.cancel(z)
                        }
                        break
                }
            };

            c(m,function(t,r){
                var s,u;
                if(!t.id){
                    t.id=f.uniqueId("_mce_item_")
                }
                u=f.get(t.id);
                if(l){
                    f.bind(u,"blur",h);
                    s="-1"
                }else{
                    s=(r===0?"0":"-1")
                }
                u.setAttribute("tabindex",s);
                f.bind(u,"focus",k)
            });
            if(m[0]){
                g=m[0].id
            }
            f.setAttrib(n,"tabindex","-1");
            var j=f.get(n);
            f.bind(j,"focus",d);
            f.bind(j,"keydown",p)
        }
    })
})(tinymce);
(function(c){
    var b=c.DOM,a=c.is;
    c.create("tinymce.ui.Control",{
        Control:function(f,e,d){
            this.id=f;
            this.settings=e=e||{};
            
            this.rendered=false;
            this.onRender=new c.util.Dispatcher(this);
            this.classPrefix="";
            this.scope=e.scope||this;
            this.disabled=0;
            this.active=0;
            this.editor=d
        },
        setAriaProperty:function(f,e){
            var d=b.get(this.id+"_aria")||b.get(this.id);
            if(d){
                b.setAttrib(d,"aria-"+f,!!e)
            }
        },
        focus:function(){
            b.get(this.id).focus()
        },
        setDisabled:function(d){
            if(d!=this.disabled){
                this.setAriaProperty("disabled",d);
                this.setState("Disabled",d);
                this.setState("Enabled",!d);
                this.disabled=d
            }
        },
        isDisabled:function(){
            return this.disabled
        },
        setActive:function(d){
            if(d!=this.active){
                this.setState("Active",d);
                this.active=d;
                this.setAriaProperty("pressed",d)
            }
        },
        isActive:function(){
            return this.active
        },
        setState:function(f,d){
            var e=b.get(this.id);
            f=this.classPrefix+f;
            if(d){
                b.addClass(e,f)
            }else{
                b.removeClass(e,f)
            }
        },
        isRendered:function(){
            return this.rendered
        },
        renderHTML:function(){},
        renderTo:function(d){
            b.setHTML(d,this.renderHTML())
        },
        postRender:function(){
            var e=this,d;
            if(a(e.disabled)){
                d=e.disabled;
                e.disabled=-1;
                e.setDisabled(d)
            }
            if(a(e.active)){
                d=e.active;
                e.active=-1;
                e.setActive(d)
            }
        },
        remove:function(){
            b.remove(this.id);
            this.destroy()
        },
        destroy:function(){
            c.dom.Event.clear(this.id)
        }
    })
})(tinymce);
tinymce.create("tinymce.ui.Container:tinymce.ui.Control",{
    Container:function(c,b,a){
        this.parent(c,b,a);
        this.controls=[];
        this.lookup={}
    },
    add:function(a){
        this.lookup[a.id]=a;
        this.controls.push(a);
        return a
    },
    get:function(a){
        return this.lookup[a]
    }
});
tinymce.create("tinymce.ui.Separator:tinymce.ui.Control",{
    Separator:function(b,a){
        this.parent(b,a);
        this.classPrefix="mceSeparator";
        this.setDisabled(true)
    },
    renderHTML:function(){
        return tinymce.DOM.createHTML("span",{
            "class":this.classPrefix,
            role:"separator",
            "aria-orientation":"vertical",
            tabindex:"-1"
        })
    }
});
(function(d){
    var c=d.is,b=d.DOM,e=d.each,a=d.walk;
    d.create("tinymce.ui.MenuItem:tinymce.ui.Control",{
        MenuItem:function(g,f){
            this.parent(g,f);
            this.classPrefix="mceMenuItem"
        },
        setSelected:function(f){
            this.setState("Selected",f);
            this.setAriaProperty("checked",!!f);
            this.selected=f
        },
        isSelected:function(){
            return this.selected
        },
        postRender:function(){
            var f=this;
            f.parent();
            if(c(f.selected)){
                f.setSelected(f.selected)
            }
        }
    })
})(tinymce);
(function(d){
    var c=d.is,b=d.DOM,e=d.each,a=d.walk;
    d.create("tinymce.ui.Menu:tinymce.ui.MenuItem",{
        Menu:function(h,g){
            var f=this;
            f.parent(h,g);
            f.items={};
            
            f.collapsed=false;
            f.menuCount=0;
            f.onAddItem=new d.util.Dispatcher(this)
        },
        expand:function(g){
            var f=this;
            if(g){
                a(f,function(h){
                    if(h.expand){
                        h.expand()
                    }
                },"items",f)
            }
            f.collapsed=false
        },
        collapse:function(g){
            var f=this;
            if(g){
                a(f,function(h){
                    if(h.collapse){
                        h.collapse()
                    }
                },"items",f)
            }
            f.collapsed=true
        },
        isCollapsed:function(){
            return this.collapsed
        },
        add:function(f){
            if(!f.settings){
                f=new d.ui.MenuItem(f.id||b.uniqueId(),f)
            }
            this.onAddItem.dispatch(this,f);
            return this.items[f.id]=f
        },
        addSeparator:function(){
            return this.add({
                separator:true
            })
        },
        addMenu:function(f){
            if(!f.collapse){
                f=this.createMenu(f)
            }
            this.menuCount++;
            return this.add(f)
        },
        hasMenus:function(){
            return this.menuCount!==0
        },
        remove:function(f){
            delete this.items[f.id]
        },
        removeAll:function(){
            var f=this;
            a(f,function(g){
                if(g.removeAll){
                    g.removeAll()
                }else{
                    g.remove()
                }
                g.destroy()
            },"items",f);
            f.items={}
        },
        createMenu:function(g){
            var f=new d.ui.Menu(g.id||b.uniqueId(),g);
            f.onAddItem.add(this.onAddItem.dispatch,this.onAddItem);
            return f
        }
    })
})(tinymce);
(function(e){
    var d=e.is,c=e.DOM,f=e.each,a=e.dom.Event,b=e.dom.Element;
    e.create("tinymce.ui.DropMenu:tinymce.ui.Menu",{
        DropMenu:function(h,g){
            g=g||{};
            
            g.container=g.container||c.doc.body;
            g.offset_x=g.offset_x||0;
            g.offset_y=g.offset_y||0;
            g.vp_offset_x=g.vp_offset_x||0;
            g.vp_offset_y=g.vp_offset_y||0;
            if(d(g.icons)&&!g.icons){
                g["class"]+=" mceNoIcons"
            }
            this.parent(h,g);
            this.onShowMenu=new e.util.Dispatcher(this);
            this.onHideMenu=new e.util.Dispatcher(this);
            this.classPrefix="mceMenu"
        },
        createMenu:function(j){
            var h=this,i=h.settings,g;
            j.container=j.container||i.container;
            j.parent=h;
            j.constrain=j.constrain||i.constrain;
            j["class"]=j["class"]||i["class"];
            j.vp_offset_x=j.vp_offset_x||i.vp_offset_x;
            j.vp_offset_y=j.vp_offset_y||i.vp_offset_y;
            j.keyboard_focus=i.keyboard_focus;
            g=new e.ui.DropMenu(j.id||c.uniqueId(),j);
            g.onAddItem.add(h.onAddItem.dispatch,h.onAddItem);
            return g
        },
        focus:function(){
            var g=this;
            if(g.keyboardNav){
                g.keyboardNav.focus()
            }
        },
        update:function(){
            var i=this,j=i.settings,g=c.get("menu_"+i.id+"_tbl"),l=c.get("menu_"+i.id+"_co"),h,k;
            h=j.max_width?Math.min(g.offsetWidth,j.max_width):g.offsetWidth;
            k=j.max_height?Math.min(g.offsetHeight,j.max_height):g.offsetHeight;
            if(!c.boxModel){
                i.element.setStyles({
                    width:h+2,
                    height:k+2
                })
            }else{
                i.element.setStyles({
                    width:h,
                    height:k
                })
            }
            if(j.max_width){
                c.setStyle(l,"width",h)
            }
            if(j.max_height){
                c.setStyle(l,"height",k);
                if(g.clientHeight<j.max_height){
                    c.setStyle(l,"overflow","hidden")
                }
            }
        },
        showMenu:function(p,n,r){
            var z=this,A=z.settings,o,g=c.getViewPort(),u,l,v,q,i=2,k,j,m=z.classPrefix;
            z.collapse(1);
            if(z.isMenuVisible){
                return
            }
            if(!z.rendered){
                o=c.add(z.settings.container,z.renderNode());
                f(z.items,function(h){
                    h.postRender()
                });
                z.element=new b("menu_"+z.id,{
                    blocker:1,
                    container:A.container
                })
            }else{
                o=c.get("menu_"+z.id)
            }
            if(!e.isOpera){
                c.setStyles(o,{
                    left:-65535,
                    top:-65535
                })
            }
            c.show(o);
            z.update();
            p+=A.offset_x||0;
            n+=A.offset_y||0;
            g.w-=4;
            g.h-=4;
            if(A.constrain){
                u=o.clientWidth-i;
                l=o.clientHeight-i;
                v=g.x+g.w;
                q=g.y+g.h;
                if((p+A.vp_offset_x+u)>v){
                    p=r?r-u:Math.max(0,(v-A.vp_offset_x)-u)
                }
                if((n+A.vp_offset_y+l)>q){
                    n=Math.max(0,(q-A.vp_offset_y)-l)
                }
            }
            c.setStyles(o,{
                left:p,
                top:n
            });
            z.element.update();
            z.isMenuVisible=1;
            z.mouseClickFunc=a.add(o,"click",function(s){
                var h;
                s=s.target;
                if(s&&(s=c.getParent(s,"tr"))&&!c.hasClass(s,m+"ItemSub")){
                    h=z.items[s.id];
                    if(h.isDisabled()){
                        return
                    }
                    k=z;
                    while(k){
                        if(k.hideMenu){
                            k.hideMenu()
                        }
                        k=k.settings.parent
                    }
                    if(h.settings.onclick){
                        h.settings.onclick(s)
                    }
                    return false
                }
            });
            if(z.hasMenus()){
                z.mouseOverFunc=a.add(o,"mouseover",function(x){
                    var h,t,s;
                    x=x.target;
                    if(x&&(x=c.getParent(x,"tr"))){
                        h=z.items[x.id];
                        if(z.lastMenu){
                            z.lastMenu.collapse(1)
                        }
                        if(h.isDisabled()){
                            return
                        }
                        if(x&&c.hasClass(x,m+"ItemSub")){
                            t=c.getRect(x);
                            h.showMenu((t.x+t.w-i),t.y-i,t.x);
                            z.lastMenu=h;
                            c.addClass(c.get(h.id).firstChild,m+"ItemActive")
                        }
                    }
                })
            }
            a.add(o,"keydown",z._keyHandler,z);
            z.onShowMenu.dispatch(z);
            if(A.keyboard_focus){
                z._setupKeyboardNav()
            }
        },
        hideMenu:function(j){
            var g=this,i=c.get("menu_"+g.id),h;
            if(!g.isMenuVisible){
                return
            }
            if(g.keyboardNav){
                g.keyboardNav.destroy()
            }
            a.remove(i,"mouseover",g.mouseOverFunc);
            a.remove(i,"click",g.mouseClickFunc);
            a.remove(i,"keydown",g._keyHandler);
            c.hide(i);
            g.isMenuVisible=0;
            if(!j){
                g.collapse(1)
            }
            if(g.element){
                g.element.hide()
            }
            if(h=c.get(g.id)){
                c.removeClass(h.firstChild,g.classPrefix+"ItemActive")
            }
            g.onHideMenu.dispatch(g)
        },
        add:function(i){
            var g=this,h;
            i=g.parent(i);
            if(g.isRendered&&(h=c.get("menu_"+g.id))){
                g._add(c.select("tbody",h)[0],i)
            }
            return i
        },
        collapse:function(g){
            this.parent(g);
            this.hideMenu(1)
        },
        remove:function(g){
            c.remove(g.id);
            this.destroy();
            return this.parent(g)
        },
        destroy:function(){
            var g=this,h=c.get("menu_"+g.id);
            if(g.keyboardNav){
                g.keyboardNav.destroy()
            }
            a.remove(h,"mouseover",g.mouseOverFunc);
            a.remove(c.select("a",h),"focus",g.mouseOverFunc);
            a.remove(h,"click",g.mouseClickFunc);
            a.remove(h,"keydown",g._keyHandler);
            if(g.element){
                g.element.remove()
            }
            c.remove(h)
        },
        renderNode:function(){
            var i=this,j=i.settings,l,h,k,g;
            g=c.create("div",{
                role:"listbox",
                id:"menu_"+i.id,
                "class":j["class"],
                style:"position:absolute;left:0;top:0;z-index:200000;outline:0"
            });
            if(i.settings.parent){
                c.setAttrib(g,"aria-parent","menu_"+i.settings.parent.id)
            }
            k=c.add(g,"div",{
                role:"presentation",
                id:"menu_"+i.id+"_co",
                "class":i.classPrefix+(j["class"]?" "+j["class"]:"")
            });
            i.element=new b("menu_"+i.id,{
                blocker:1,
                container:j.container
            });
            if(j.menu_line){
                c.add(k,"span",{
                    "class":i.classPrefix+"Line"
                })
            }
            l=c.add(k,"table",{
                role:"presentation",
                id:"menu_"+i.id+"_tbl",
                border:0,
                cellPadding:0,
                cellSpacing:0
            });
            h=c.add(l,"tbody");
            f(i.items,function(m){
                i._add(h,m)
            });
            i.rendered=true;
            return g
        },
        _setupKeyboardNav:function(){
            var i,h,g=this;
            i=c.get("menu_"+g.id);
            h=c.select("a[role=option]","menu_"+g.id);
            h.splice(0,0,i);
            g.keyboardNav=new e.ui.KeyboardNavigation({
                root:"menu_"+g.id,
                items:h,
                onCancel:function(){
                    g.hideMenu()
                },
                enableUpDown:true
            });
            i.focus()
        },
        _keyHandler:function(g){
            var h=this,i;
            switch(g.keyCode){
                case 37:
                    if(h.settings.parent){
                        h.hideMenu();
                        h.settings.parent.focus();
                        a.cancel(g)
                    }
                    break;
                case 39:
                    if(h.mouseOverFunc){
                        h.mouseOverFunc(g)
                    }
                    break
            }
        },
        _add:function(j,h){
            var i,q=h.settings,p,l,k,m=this.classPrefix,g;
            if(q.separator){
                l=c.add(j,"tr",{
                    id:h.id,
                    "class":m+"ItemSeparator"
                });
                c.add(l,"td",{
                    "class":m+"ItemSeparator"
                });
                if(i=l.previousSibling){
                    c.addClass(i,"mceLast")
                }
                return
            }
            i=l=c.add(j,"tr",{
                id:h.id,
                "class":m+"Item "+m+"ItemEnabled"
            });
            i=k=c.add(i,q.titleItem?"th":"td");
            i=p=c.add(i,"a",{
                id:h.id+"_aria",
                role:q.titleItem?"presentation":"option",
                href:"javascript:;",
                onclick:"return false;",
                onmousedown:"return false;"
            });
            if(q.parent){
                c.setAttrib(p,"aria-haspopup","true");
                c.setAttrib(p,"aria-owns","menu_"+h.id)
            }
            c.addClass(k,q["class"]);
            g=c.add(i,"span",{
                "class":"mceIcon"+(q.icon?" mce_"+q.icon:"")
            });
            if(q.icon_src){
                c.add(g,"img",{
                    src:q.icon_src
                })
            }
            i=c.add(i,q.element||"span",{
                "class":"mceText",
                title:h.settings.title
            },h.settings.title);
            if(h.settings.style){
                if(typeof h.settings.style=="function"){
                    h.settings.style=h.settings.style()
                }
                c.setAttrib(i,"style",h.settings.style)
            }
            if(j.childNodes.length==1){
                c.addClass(l,"mceFirst")
            }
            if((i=l.previousSibling)&&c.hasClass(i,m+"ItemSeparator")){
                c.addClass(l,"mceFirst")
            }
            if(h.collapse){
                c.addClass(l,m+"ItemSub")
            }
            if(i=l.previousSibling){
                c.removeClass(i,"mceLast")
            }
            c.addClass(l,"mceLast")
        }
    })
})(tinymce);
(function(b){
    var a=b.DOM;
    b.create("tinymce.ui.Button:tinymce.ui.Control",{
        Button:function(e,d,c){
            this.parent(e,d,c);
            this.classPrefix="mceButton"
        },
        renderHTML:function(){
            var f=this.classPrefix,e=this.settings,d,c;
            c=a.encode(e.label||"");
            d='<a role="button" id="'+this.id+'" href="javascript:;" class="'+f+" "+f+"Enabled "+e["class"]+(c?" "+f+"Labeled":"")+'" onmousedown="return false;" onclick="return false;" aria-labelledby="'+this.id+'_voice" title="'+a.encode(e.title)+'">';
            if(e.image&&!(this.editor&&this.editor.forcedHighContrastMode)){
                d+='<span class="mceIcon '+e["class"]+'"><img class="mceIcon" src="'+e.image+'" alt="'+a.encode(e.title)+'" /></span>'+(c?'<span class="'+f+'Label">'+c+"</span>":"")
            }else{
                d+='<span class="mceIcon '+e["class"]+'"></span>'+(c?'<span class="'+f+'Label">'+c+"</span>":"")
            }
            d+='<span class="mceVoiceLabel mceIconOnly" style="display: none;" id="'+this.id+'_voice">'+e.title+"</span>";
            d+="</a>";
            return d
        },
        postRender:function(){
            var d=this,e=d.settings,c;
            if(b.isIE&&d.editor){
                b.dom.Event.add(d.id,"mousedown",function(f){
                    var g=d.editor.selection.getNode().nodeName;
                    c=g==="IMG"?d.editor.selection.getBookmark():null
                })
            }
            b.dom.Event.add(d.id,"click",function(f){
                if(!d.isDisabled()){
                    if(b.isIE&&d.editor&&c!==null){
                        d.editor.selection.moveToBookmark(c)
                    }
                    return e.onclick.call(e.scope,f)
                }
            });
            b.dom.Event.add(d.id,"keyup",function(f){
                if(!d.isDisabled()&&f.keyCode==b.VK.SPACEBAR){
                    return e.onclick.call(e.scope,f)
                }
            })
        }
    })
})(tinymce);
(function(e){
    var d=e.DOM,b=e.dom.Event,f=e.each,a=e.util.Dispatcher,c;
    e.create("tinymce.ui.ListBox:tinymce.ui.Control",{
        ListBox:function(j,i,g){
            var h=this;
            h.parent(j,i,g);
            h.items=[];
            h.onChange=new a(h);
            h.onPostRender=new a(h);
            h.onAdd=new a(h);
            h.onRenderMenu=new e.util.Dispatcher(this);
            h.classPrefix="mceListBox";
            h.marked={}
        },
        select:function(h){
            var g=this,j,i;
            g.marked={};
        
            if(h==c){
                return g.selectByIndex(-1)
            }
            if(h&&typeof(h)=="function"){
                i=h
            }else{
                i=function(k){
                    return k==h
                }
            }
            if(h!=g.selectedValue){
                f(g.items,function(l,k){
                    if(i(l.value)){
                        j=1;
                        g.selectByIndex(k);
                        return false
                    }
                });
                if(!j){
                    g.selectByIndex(-1)
                }
            }
        },
        selectByIndex:function(g){
            var i=this,j,k,h;
            i.marked={};
    
            if(g!=i.selectedIndex){
                j=d.get(i.id+"_text");
                h=d.get(i.id+"_voiceDesc");
                k=i.items[g];
                if(k){
                    i.selectedValue=k.value;
                    i.selectedIndex=g;
                    d.setHTML(j,d.encode(k.title));
                    d.setHTML(h,i.settings.title+" - "+k.title);
                    d.removeClass(j,"mceTitle");
                    d.setAttrib(i.id,"aria-valuenow",k.title)
                }else{
                    d.setHTML(j,d.encode(i.settings.title));
                    d.setHTML(h,d.encode(i.settings.title));
                    d.addClass(j,"mceTitle");
                    i.selectedValue=i.selectedIndex=null;
                    d.setAttrib(i.id,"aria-valuenow",i.settings.title)
                }
                j=0
            }
        },
        mark:function(g){
            this.marked[g]=true
        },
        add:function(j,g,i){
            var h=this;
            i=i||{};
    
            i=e.extend(i,{
                title:j,
                value:g
            });
            h.items.push(i);
            h.onAdd.dispatch(h,i)
        },
        getLength:function(){
            return this.items.length
        },
        renderHTML:function(){
            var j="",g=this,i=g.settings,k=g.classPrefix;
            j='<span role="listbox" aria-haspopup="true" aria-labelledby="'+g.id+'_voiceDesc" aria-describedby="'+g.id+'_voiceDesc"><table role="presentation" tabindex="0" id="'+g.id+'" cellpadding="0" cellspacing="0" class="'+k+" "+k+"Enabled"+(i["class"]?(" "+i["class"]):"")+'"><tbody><tr>';
            j+="<td>"+d.createHTML("span",{
                id:g.id+"_voiceDesc",
                "class":"voiceLabel",
                style:"display:none;"
            },g.settings.title);
            j+=d.createHTML("a",{
                id:g.id+"_text",
                tabindex:-1,
                href:"javascript:;",
                "class":"mceText",
                onclick:"return false;",
                onmousedown:"return false;"
            },d.encode(g.settings.title))+"</td>";
            j+="<td>"+d.createHTML("a",{
                id:g.id+"_open",
                tabindex:-1,
                href:"javascript:;",
                "class":"mceOpen",
                onclick:"return false;",
                onmousedown:"return false;"
            },'<span><span style="display:none;" class="mceIconOnly" aria-hidden="true">\u25BC</span></span>')+"</td>";
            j+="</tr></tbody></table></span>";
            return j
        },
        showMenu:function(){
            var h=this,j,i=d.get(this.id),g;
            if(h.isDisabled()||h.items.length===0){
                return
            }
            if(h.menu&&h.menu.isMenuVisible){
                return h.hideMenu()
            }
            if(!h.isMenuRendered){
                h.renderMenu();
                h.isMenuRendered=true
            }
            j=d.getPos(i);
            g=h.menu;
            g.settings.offset_x=j.x;
            g.settings.offset_y=j.y;
            g.settings.keyboard_focus=!e.isOpera;
            f(h.items,function(k){
                if(g.items[k.id]){
                    g.items[k.id].setSelected(0)
                }
            });
            f(h.items,function(k){
                if(g.items[k.id]&&h.marked[k.value]){
                    g.items[k.id].setSelected(1)
                }
                if(k.value===h.selectedValue){
                    g.items[k.id].setSelected(1)
                }
            });
            g.showMenu(0,i.clientHeight);
            b.add(d.doc,"mousedown",h.hideMenu,h);
            d.addClass(h.id,h.classPrefix+"Selected")
        },
        hideMenu:function(h){
            var g=this;
            if(g.menu&&g.menu.isMenuVisible){
                d.removeClass(g.id,g.classPrefix+"Selected");
                if(h&&h.type=="mousedown"&&(h.target.id==g.id+"_text"||h.target.id==g.id+"_open")){
                    return
                }
                if(!h||!d.getParent(h.target,".mceMenu")){
                    d.removeClass(g.id,g.classPrefix+"Selected");
                    b.remove(d.doc,"mousedown",g.hideMenu,g);
                    g.menu.hideMenu()
                }
            }
        },
        renderMenu:function(){
            var h=this,g;
            g=h.settings.control_manager.createDropMenu(h.id+"_menu",{
                menu_line:1,
                "class":h.classPrefix+"Menu mceNoIcons",
                max_width:250,
                max_height:150
            });
            g.onHideMenu.add(function(){
                h.hideMenu();
                h.focus()
            });
            g.add({
                title:h.settings.title,
                "class":"mceMenuItemTitle",
                onclick:function(){
                    if(h.settings.onselect("")!==false){
                        h.select("")
                    }
                }
            });
            f(h.items,function(i){
                if(i.value===c){
                    g.add({
                        title:i.title,
                        role:"option",
                        "class":"mceMenuItemTitle",
                        onclick:function(){
                            if(h.settings.onselect("")!==false){
                                h.select("")
                            }
                        }
                    })
                }else{
                    i.id=d.uniqueId();
                    i.role="option";
                    i.onclick=function(){
                        if(h.settings.onselect(i.value)!==false){
                            h.select(i.value)
                        }
                    };
    
                    g.add(i)
                }
            });
            h.onRenderMenu.dispatch(h,g);
            h.menu=g
        },
        postRender:function(){
            var g=this,h=g.classPrefix;
            b.add(g.id,"click",g.showMenu,g);
            b.add(g.id,"keydown",function(i){
                if(i.keyCode==32){
                    g.showMenu(i);
                    b.cancel(i)
                }
            });
            b.add(g.id,"focus",function(){
                if(!g._focused){
                    g.keyDownHandler=b.add(g.id,"keydown",function(i){
                        if(i.keyCode==40){
                            g.showMenu();
                            b.cancel(i)
                        }
                    });
                    g.keyPressHandler=b.add(g.id,"keypress",function(j){
                        var i;
                        if(j.keyCode==13){
                            i=g.selectedValue;
                            g.selectedValue=null;
                            b.cancel(j);
                            g.settings.onselect(i)
                        }
                    })
                }
                g._focused=1
            });
            b.add(g.id,"blur",function(){
                b.remove(g.id,"keydown",g.keyDownHandler);
                b.remove(g.id,"keypress",g.keyPressHandler);
                g._focused=0
            });
            if(e.isIE6||!d.boxModel){
                b.add(g.id,"mouseover",function(){
                    if(!d.hasClass(g.id,h+"Disabled")){
                        d.addClass(g.id,h+"Hover")
                    }
                });
                b.add(g.id,"mouseout",function(){
                    if(!d.hasClass(g.id,h+"Disabled")){
                        d.removeClass(g.id,h+"Hover")
                    }
                })
            }
            g.onPostRender.dispatch(g,d.get(g.id))
        },
        destroy:function(){
            this.parent();
            b.clear(this.id+"_text");
            b.clear(this.id+"_open")
        }
    })
})(tinymce);
(function(e){
    var d=e.DOM,b=e.dom.Event,f=e.each,a=e.util.Dispatcher,c;
    e.create("tinymce.ui.NativeListBox:tinymce.ui.ListBox",{
        NativeListBox:function(h,g){
            this.parent(h,g);
            this.classPrefix="mceNativeListBox"
        },
        setDisabled:function(g){
            d.get(this.id).disabled=g;
            this.setAriaProperty("disabled",g)
        },
        isDisabled:function(){
            return d.get(this.id).disabled
        },
        select:function(h){
            var g=this,j,i;
            if(h==c){
                return g.selectByIndex(-1)
            }
            if(h&&typeof(h)=="function"){
                i=h
            }else{
                i=function(k){
                    return k==h
                }
            }
            if(h!=g.selectedValue){
                f(g.items,function(l,k){
                    if(i(l.value)){
                        j=1;
                        g.selectByIndex(k);
                        return false
                    }
                });
                if(!j){
                    g.selectByIndex(-1)
                }
            }
        },
        selectByIndex:function(g){
            d.get(this.id).selectedIndex=g+1;
            this.selectedValue=this.items[g]?this.items[g].value:null
        },
        add:function(k,h,g){
            var j,i=this;
            g=g||{};
    
            g.value=h;
            if(i.isRendered()){
                d.add(d.get(this.id),"option",g,k)
            }
            j={
                title:k,
                value:h,
                attribs:g
            };
    
            i.items.push(j);
            i.onAdd.dispatch(i,j)
        },
        getLength:function(){
            return this.items.length
        },
        renderHTML:function(){
            var i,g=this;
            i=d.createHTML("option",{
                value:""
            },"-- "+g.settings.title+" --");
            f(g.items,function(h){
                i+=d.createHTML("option",{
                    value:h.value
                },h.title)
            });
            i=d.createHTML("select",{
                id:g.id,
                "class":"mceNativeListBox",
                "aria-labelledby":g.id+"_aria"
            },i);
            i+=d.createHTML("span",{
                id:g.id+"_aria",
                style:"display: none"
            },g.settings.title);
            return i
        },
        postRender:function(){
            var h=this,i,j=true;
            h.rendered=true;
            function g(l){
                var k=h.items[l.target.selectedIndex-1];
                if(k&&(k=k.value)){
                    h.onChange.dispatch(h,k);
                    if(h.settings.onselect){
                        h.settings.onselect(k)
                    }
                }
            }
            b.add(h.id,"change",g);
            b.add(h.id,"keydown",function(l){
                var k;
                b.remove(h.id,"change",i);
                j=false;
                k=b.add(h.id,"blur",function(){
                    if(j){
                        return
                    }
                    j=true;
                    b.add(h.id,"change",g);
                    b.remove(h.id,"blur",k)
                });
                if(e.isWebKit&&(l.keyCode==37||l.keyCode==39)){
                    return b.prevent(l)
                }
                if(l.keyCode==13||l.keyCode==32){
                    g(l);
                    return b.cancel(l)
                }
            });
            h.onPostRender.dispatch(h,d.get(h.id))
        }
    })
})(tinymce);
(function(c){
    var b=c.DOM,a=c.dom.Event,d=c.each;
    c.create("tinymce.ui.MenuButton:tinymce.ui.Button",{
        MenuButton:function(g,f,e){
            this.parent(g,f,e);
            this.onRenderMenu=new c.util.Dispatcher(this);
            f.menu_container=f.menu_container||b.doc.body
        },
        showMenu:function(){
            var g=this,j,i,h=b.get(g.id),f;
            if(g.isDisabled()){
                return
            }
            if(!g.isMenuRendered){
                g.renderMenu();
                g.isMenuRendered=true
            }
            if(g.isMenuVisible){
                return g.hideMenu()
            }
            j=b.getPos(g.settings.menu_container);
            i=b.getPos(h);
            f=g.menu;
            f.settings.offset_x=i.x;
            f.settings.offset_y=i.y;
            f.settings.vp_offset_x=i.x;
            f.settings.vp_offset_y=i.y;
            f.settings.keyboard_focus=g._focused;
            f.showMenu(0,h.firstChild.clientHeight);
            a.add(b.doc,"mousedown",g.hideMenu,g);
            g.setState("Selected",1);
            g.isMenuVisible=1
        },
        renderMenu:function(){
            var f=this,e;
            e=f.settings.control_manager.createDropMenu(f.id+"_menu",{
                menu_line:1,
                "class":this.classPrefix+"Menu",
                icons:f.settings.icons
            });
            e.onHideMenu.add(function(){
                f.hideMenu();
                f.focus()
            });
            f.onRenderMenu.dispatch(f,e);
            f.menu=e
        },
        hideMenu:function(g){
            var f=this;
            if(g&&g.type=="mousedown"&&b.getParent(g.target,function(h){
                return h.id===f.id||h.id===f.id+"_open"
            })){
                return
            }
            if(!g||!b.getParent(g.target,".mceMenu")){
                f.setState("Selected",0);
                a.remove(b.doc,"mousedown",f.hideMenu,f);
                if(f.menu){
                    f.menu.hideMenu()
                }
            }
            f.isMenuVisible=0
        },
        postRender:function(){
            var e=this,f=e.settings;
            a.add(e.id,"click",function(){
                if(!e.isDisabled()){
                    if(f.onclick){
                        f.onclick(e.value)
                    }
                    e.showMenu()
                }
            })
        }
    })
})(tinymce);
(function(c){
    var b=c.DOM,a=c.dom.Event,d=c.each;
    c.create("tinymce.ui.SplitButton:tinymce.ui.MenuButton",{
        SplitButton:function(g,f,e){
            this.parent(g,f,e);
            this.classPrefix="mceSplitButton"
        },
        renderHTML:function(){
            var i,f=this,g=f.settings,e;
            i="<tbody><tr>";
            if(g.image){
                e=b.createHTML("img ",{
                    src:g.image,
                    role:"presentation",
                    "class":"mceAction "+g["class"]
                })
            }else{
                e=b.createHTML("span",{
                    "class":"mceAction "+g["class"]
                },"")
            }
            e+=b.createHTML("span",{
                "class":"mceVoiceLabel mceIconOnly",
                id:f.id+"_voice",
                style:"display:none;"
            },g.title);
            i+="<td >"+b.createHTML("a",{
                role:"button",
                id:f.id+"_action",
                tabindex:"-1",
                href:"javascript:;",
                "class":"mceAction "+g["class"],
                onclick:"return false;",
                onmousedown:"return false;",
                title:g.title
            },e)+"</td>";
            e=b.createHTML("span",{
                "class":"mceOpen "+g["class"]
            },'<span style="display:none;" class="mceIconOnly" aria-hidden="true">\u25BC</span>');
            i+="<td >"+b.createHTML("a",{
                role:"button",
                id:f.id+"_open",
                tabindex:"-1",
                href:"javascript:;",
                "class":"mceOpen "+g["class"],
                onclick:"return false;",
                onmousedown:"return false;",
                title:g.title
            },e)+"</td>";
            i+="</tr></tbody>";
            i=b.createHTML("table",{
                role:"presentation",
                "class":"mceSplitButton mceSplitButtonEnabled "+g["class"],
                cellpadding:"0",
                cellspacing:"0",
                title:g.title
            },i);
            return b.createHTML("div",{
                id:f.id,
                role:"button",
                tabindex:"0",
                "aria-labelledby":f.id+"_voice",
                "aria-haspopup":"true"
            },i)
        },
        postRender:function(){
            var e=this,g=e.settings,f;
            if(g.onclick){
                f=function(h){
                    if(!e.isDisabled()){
                        g.onclick(e.value);
                        a.cancel(h)
                    }
                };
                
                a.add(e.id+"_action","click",f);
                a.add(e.id,["click","keydown"],function(h){
                    var k=32,m=14,i=13,j=38,l=40;
                    if((h.keyCode===32||h.keyCode===13||h.keyCode===14)&&!h.altKey&&!h.ctrlKey&&!h.metaKey){
                        f();
                        a.cancel(h)
                    }else{
                        if(h.type==="click"||h.keyCode===l){
                            e.showMenu();
                            a.cancel(h)
                        }
                    }
                })
            }
            a.add(e.id+"_open","click",function(h){
                e.showMenu();
                a.cancel(h)
            });
            a.add([e.id,e.id+"_open"],"focus",function(){
                e._focused=1
            });
            a.add([e.id,e.id+"_open"],"blur",function(){
                e._focused=0
            });
            if(c.isIE6||!b.boxModel){
                a.add(e.id,"mouseover",function(){
                    if(!b.hasClass(e.id,"mceSplitButtonDisabled")){
                        b.addClass(e.id,"mceSplitButtonHover")
                    }
                });
                a.add(e.id,"mouseout",function(){
                    if(!b.hasClass(e.id,"mceSplitButtonDisabled")){
                        b.removeClass(e.id,"mceSplitButtonHover")
                    }
                })
            }
        },
        destroy:function(){
            this.parent();
            a.clear(this.id+"_action");
            a.clear(this.id+"_open");
            a.clear(this.id)
        }
    })
})(tinymce);
(function(d){
    var c=d.DOM,a=d.dom.Event,b=d.is,e=d.each;
    d.create("tinymce.ui.ColorSplitButton:tinymce.ui.SplitButton",{
        ColorSplitButton:function(i,h,f){
            var g=this;
            g.parent(i,h,f);
            g.settings=h=d.extend({
                colors:"000000,993300,333300,003300,003366,000080,333399,333333,800000,FF6600,808000,008000,008080,0000FF,666699,808080,FF0000,FF9900,99CC00,339966,33CCCC,3366FF,800080,999999,FF00FF,FFCC00,FFFF00,00FF00,00FFFF,00CCFF,993366,C0C0C0,FF99CC,FFCC99,FFFF99,CCFFCC,CCFFFF,99CCFF,CC99FF,FFFFFF",
                grid_width:8,
                default_color:"#888888"
            },g.settings);
            g.onShowMenu=new d.util.Dispatcher(g);
            g.onHideMenu=new d.util.Dispatcher(g);
            g.value=h.default_color
        },
        showMenu:function(){
            var f=this,g,j,i,h;
            if(f.isDisabled()){
                return
            }
            if(!f.isMenuRendered){
                f.renderMenu();
                f.isMenuRendered=true
            }
            if(f.isMenuVisible){
                return f.hideMenu()
            }
            i=c.get(f.id);
            c.show(f.id+"_menu");
            c.addClass(i,"mceSplitButtonSelected");
            h=c.getPos(i);
            c.setStyles(f.id+"_menu",{
                left:h.x,
                top:h.y+i.firstChild.clientHeight,
                zIndex:200000
            });
            i=0;
            a.add(c.doc,"mousedown",f.hideMenu,f);
            f.onShowMenu.dispatch(f);
            if(f._focused){
                f._keyHandler=a.add(f.id+"_menu","keydown",function(k){
                    if(k.keyCode==27){
                        f.hideMenu()
                    }
                });
                c.select("a",f.id+"_menu")[0].focus()
            }
            f.keyboardNav=new d.ui.KeyboardNavigation({
                root:f.id+"_menu",
                items:c.select("a",f.id+"_menu"),
                onCancel:function(){
                    f.hideMenu();
                    f.focus()
                }
            });
            f.keyboardNav.focus();
            f.isMenuVisible=1
        },
        hideMenu:function(g){
            var f=this;
            if(f.isMenuVisible){
                if(g&&g.type=="mousedown"&&c.getParent(g.target,function(h){
                    return h.id===f.id+"_open"
                })){
                    return
                }
                if(!g||!c.getParent(g.target,".mceSplitButtonMenu")){
                    c.removeClass(f.id,"mceSplitButtonSelected");
                    a.remove(c.doc,"mousedown",f.hideMenu,f);
                    a.remove(f.id+"_menu","keydown",f._keyHandler);
                    c.hide(f.id+"_menu")
                }
                f.isMenuVisible=0;
                f.onHideMenu.dispatch();
                f.keyboardNav.destroy()
            }
        },
        renderMenu:function(){
            var p=this,h,k=0,q=p.settings,g,j,l,o,f;
            o=c.add(q.menu_container,"div",{
                role:"listbox",
                id:p.id+"_menu",
                "class":q.menu_class+" "+q["class"],
                style:"position:absolute;left:0;top:-1000px;"
            });
            h=c.add(o,"div",{
                "class":q["class"]+" mceSplitButtonMenu"
            });
            c.add(h,"span",{
                "class":"mceMenuLine"
            });
            g=c.add(h,"table",{
                role:"presentation",
                "class":"mceColorSplitMenu"
            });
            j=c.add(g,"tbody");
            k=0;
            e(b(q.colors,"array")?q.colors:q.colors.split(","),function(m){
                m=m.replace(/^#/,"");
                if(!k--){
                    l=c.add(j,"tr");
                    k=q.grid_width-1
                }
                g=c.add(l,"td");
                var i={
                    href:"javascript:;",
                    style:{
                        backgroundColor:"#"+m
                    },
                    title:p.editor.getLang("colors."+m,m),
                    "data-mce-color":"#"+m
                };
            
                if(!d.isIE){
                    i.role="option"
                }
                g=c.add(g,"a",i);
                if(p.editor.forcedHighContrastMode){
                    g=c.add(g,"canvas",{
                        width:16,
                        height:16,
                        "aria-hidden":"true"
                    });
                    if(g.getContext&&(f=g.getContext("2d"))){
                        f.fillStyle="#"+m;
                        f.fillRect(0,0,16,16)
                    }else{
                        c.remove(g)
                    }
                }
            });
            if(q.more_colors_func){
                g=c.add(j,"tr");
                g=c.add(g,"td",{
                    colspan:q.grid_width,
                    "class":"mceMoreColors"
                });
                g=c.add(g,"a",{
                    role:"option",
                    id:p.id+"_more",
                    href:"javascript:;",
                    onclick:"return false;",
                    "class":"mceMoreColors"
                },q.more_colors_title);
                a.add(g,"click",function(i){
                    q.more_colors_func.call(q.more_colors_scope||this);
                    return a.cancel(i)
                })
            }
            c.addClass(h,"mceColorSplitMenu");
            a.add(p.id+"_menu","mousedown",function(i){
                return a.cancel(i)
            });
            a.add(p.id+"_menu","click",function(i){
                var m;
                i=c.getParent(i.target,"a",j);
                if(i&&i.nodeName.toLowerCase()=="a"&&(m=i.getAttribute("data-mce-color"))){
                    p.setColor(m)
                }
                return false
            });
            return o
        },
        setColor:function(f){
            this.displayColor(f);
            this.hideMenu();
            this.settings.onselect(f)
        },
        displayColor:function(g){
            var f=this;
            c.setStyle(f.id+"_preview","backgroundColor",g);
            f.value=g
        },
        postRender:function(){
            var f=this,g=f.id;
            f.parent();
            c.add(g+"_action","div",{
                id:g+"_preview",
                "class":"mceColorPreview"
            });
            c.setStyle(f.id+"_preview","backgroundColor",f.value)
        },
        destroy:function(){
            var f=this;
            f.parent();
            a.clear(f.id+"_menu");
            a.clear(f.id+"_more");
            c.remove(f.id+"_menu");
            if(f.keyboardNav){
                f.keyboardNav.destroy()
            }
        }
    })
})(tinymce);
(function(b){
    var d=b.DOM,c=b.each,a=b.dom.Event;
    b.create("tinymce.ui.ToolbarGroup:tinymce.ui.Container",{
        renderHTML:function(){
            var f=this,i=[],e=f.controls,j=b.each,g=f.settings;
            i.push('<div id="'+f.id+'" role="group" aria-labelledby="'+f.id+'_voice">');
            i.push("<span role='application'>");
            i.push('<span id="'+f.id+'_voice" class="mceVoiceLabel" style="display:none;">'+d.encode(g.name)+"</span>");
            j(e,function(h){
                i.push(h.renderHTML())
            });
            i.push("</span>");
            i.push("</div>");
            return i.join("")
        },
        focus:function(){
            var e=this;
            d.get(e.id).focus()
        },
        postRender:function(){
            var f=this,e=[];
            c(f.controls,function(g){
                c(g.controls,function(h){
                    if(h.id){
                        e.push(h)
                    }
                })
            });
            f.keyNav=new b.ui.KeyboardNavigation({
                root:f.id,
                items:e,
                onCancel:function(){
                    if(b.isWebKit){
                        d.get(f.editor.id+"_ifr").focus()
                    }
                    f.editor.focus()
                },
                excludeFromTabOrder:!f.settings.tab_focus_toolbar
            })
        },
        destroy:function(){
            var e=this;
            e.parent();
            e.keyNav.destroy();
            a.clear(e.id)
        }
    })
})(tinymce);
(function(a){
    var c=a.DOM,b=a.each;
    a.create("tinymce.ui.Toolbar:tinymce.ui.Container",{
        renderHTML:function(){
            var m=this,f="",j,k,n=m.settings,e,d,g,l;
            l=m.controls;
            for(e=0;e<l.length;e++){
                k=l[e];
                d=l[e-1];
                g=l[e+1];
                if(e===0){
                    j="mceToolbarStart";
                    if(k.Button){
                        j+=" mceToolbarStartButton"
                    }else{
                        if(k.SplitButton){
                            j+=" mceToolbarStartSplitButton"
                        }else{
                            if(k.ListBox){
                                j+=" mceToolbarStartListBox"
                            }
                        }
                    }
                    f+=c.createHTML("td",{
                        "class":j
                    },c.createHTML("span",null,"<!-- IE -->"))
                }
                if(d&&k.ListBox){
                    if(d.Button||d.SplitButton){
                        f+=c.createHTML("td",{
                            "class":"mceToolbarEnd"
                        },c.createHTML("span",null,"<!-- IE -->"))
                    }
                }
                if(c.stdMode){
                    f+='<td style="position: relative">'+k.renderHTML()+"</td>"
                }else{
                    f+="<td>"+k.renderHTML()+"</td>"
                }
                if(g&&k.ListBox){
                    if(g.Button||g.SplitButton){
                        f+=c.createHTML("td",{
                            "class":"mceToolbarStart"
                        },c.createHTML("span",null,"<!-- IE -->"))
                    }
                }
            }
            j="mceToolbarEnd";
            if(k.Button){
                j+=" mceToolbarEndButton"
            }else{
                if(k.SplitButton){
                    j+=" mceToolbarEndSplitButton"
                }else{
                    if(k.ListBox){
                        j+=" mceToolbarEndListBox"
                    }
                }
            }
            f+=c.createHTML("td",{
                "class":j
            },c.createHTML("span",null,"<!-- IE -->"));
            return c.createHTML("table",{
                id:m.id,
                "class":"mceToolbar"+(n["class"]?" "+n["class"]:""),
                cellpadding:"0",
                cellspacing:"0",
                align:m.settings.align||"",
                role:"presentation",
                tabindex:"-1"
            },"<tbody><tr>"+f+"</tr></tbody>")
        }
    })
})(tinymce);
(function(b){
    var a=b.util.Dispatcher,c=b.each;
    b.create("tinymce.AddOnManager",{
        AddOnManager:function(){
            var d=this;
            d.items=[];
            d.urls={};
            
            d.lookup={};
            
            d.onAdd=new a(d)
        },
        get:function(d){
            if(this.lookup[d]){
                return this.lookup[d].instance
            }else{
                return undefined
            }
        },
        dependencies:function(e){
            var d;
            if(this.lookup[e]){
                d=this.lookup[e].dependencies
            }
            return d||[]
        },
        requireLangPack:function(e){
            var d=b.settings;
            if(d&&d.language&&d.language_load!==false){
                b.ScriptLoader.add(this.urls[e]+"/langs/"+d.language+".js")
            }
        },
        add:function(f,e,d){
            this.items.push(e);
            this.lookup[f]={
                instance:e,
                dependencies:d
            };
        
            this.onAdd.dispatch(this,f,e);
            return e
        },
        createUrl:function(d,e){
            if(typeof e==="object"){
                return e
            }else{
                return{
                    prefix:d.prefix,
                    resource:e,
                    suffix:d.suffix
                }
            }
        },
        addComponents:function(f,d){
            var e=this.urls[f];
            b.each(d,function(g){
                b.ScriptLoader.add(e+"/"+g)
            })
        },
        load:function(j,f,d,h){
            var g=this,e=f;
            function i(){
                var k=g.dependencies(j);
                b.each(k,function(m){
                    var l=g.createUrl(f,m);
                    g.load(l.resource,l,undefined,undefined)
                });
                if(d){
                    if(h){
                        d.call(h)
                    }else{
                        d.call(b.ScriptLoader)
                    }
                }
            }
            if(g.urls[j]){
                return
            }
            if(typeof f==="object"){
                e=f.prefix+f.resource+f.suffix
            }
            if(e.indexOf("/")!==0&&e.indexOf("://")==-1){
                e=b.baseURL+"/"+e
            }
            g.urls[j]=e.substring(0,e.lastIndexOf("/"));
            if(g.lookup[j]){
                i()
            }else{
                b.ScriptLoader.add(e,i,h)
            }
        }
    });
    b.PluginManager=new b.AddOnManager();
    b.ThemeManager=new b.AddOnManager()
}(tinymce));
(function(j){
    var g=j.each,d=j.extend,k=j.DOM,i=j.dom.Event,f=j.ThemeManager,b=j.PluginManager,e=j.explode,h=j.util.Dispatcher,a,c=0;
    j.documentBaseURL=window.location.href.replace(/[\?#].*$/,"").replace(/[\/\\][^\/]+$/,"");
    if(!/[\/\\]$/.test(j.documentBaseURL)){
        j.documentBaseURL+="/"
    }
    j.baseURL=new j.util.URI(j.documentBaseURL).toAbsolute(j.baseURL);
    j.baseURI=new j.util.URI(j.baseURL);
    j.onBeforeUnload=new h(j);
    i.add(window,"beforeunload",function(l){
        j.onBeforeUnload.dispatch(j,l)
    });
    j.onAddEditor=new h(j);
    j.onRemoveEditor=new h(j);
    j.EditorManager=d(j,{
        editors:[],
        i18n:{},
        activeEditor:null,
        init:function(x){
            var v=this,o,n=j.ScriptLoader,u,l=[],r;
            function q(t){
                var s=t.id;
                if(!s){
                    s=t.name;
                    if(s&&!k.get(s)){
                        s=t.name
                    }else{
                        s=k.uniqueId()
                    }
                    t.setAttribute("id",s)
                }
                return s
            }
            function m(z,A,t){
                var y=z[A];
                if(!y){
                    return
                }
                if(j.is(y,"string")){
                    t=y.replace(/\.\w+$/,"");
                    t=t?j.resolve(t):0;
                    y=j.resolve(y)
                }
                return y.apply(t||this,Array.prototype.slice.call(arguments,2))
            }
            function p(t,s){
                return s.constructor===RegExp?s.test(t.className):k.hasClass(t,s)
            }
            v.settings=x;
            i.bind(window,"ready",function(){
                var s,t;
                m(x,"onpageload");
                switch(x.mode){
                    case"exact":
                        s=x.elements||"";
                        if(s.length>0){
                            g(e(s),function(y){
                                if(k.get(y)){
                                    r=new j.Editor(y,x);
                                    l.push(r);
                                    r.render(1)
                                }else{
                                    g(document.forms,function(z){
                                        g(z.elements,function(A){
                                            if(A.name===y){
                                                y="mce_editor_"+c++;
                                                k.setAttrib(A,"id",y);
                                                r=new j.Editor(y,x);
                                                l.push(r);
                                                r.render(1)
                                            }
                                        })
                                    })
                                }
                            })
                        }
                        break;
                    case"textareas":case"specific_textareas":
                        g(k.select("textarea"),function(y){
                            if(x.editor_deselector&&p(y,x.editor_deselector)){
                                return
                            }
                            if(!x.editor_selector||p(y,x.editor_selector)){
                                r=new j.Editor(q(y),x);
                                l.push(r);
                                r.render(1)
                            }
                        });
                        break;
                    default:
                        if(x.types){
                            g(x.types,function(y){
                                g(k.select(y.selector),function(A){
                                    var z=new j.Editor(q(A),j.extend({},x,y));
                                    l.push(z);
                                    z.render(1)
                                })
                            })
                        }else{
                            if(x.selector){
                                g(k.select(x.selector),function(z){
                                    var y=new j.Editor(q(z),x);
                                    l.push(y);
                                    y.render(1)
                                })
                            }
                        }
                }
                if(x.oninit){
                    s=t=0;
                    g(l,function(y){
                        t++;
                        if(!y.initialized){
                            y.onInit.add(function(){
                                s++;
                                if(s==t){
                                    m(x,"oninit")
                                }
                            })
                        }else{
                            s++
                        }
                        if(s==t){
                            m(x,"oninit")
                        }
                    })
                }
            })
        },
        get:function(l){
            if(l===a){
                return this.editors
            }
            return this.editors[l]
        },
        getInstanceById:function(l){
            return this.get(l)
        },
        add:function(m){
            var l=this,n=l.editors;
            n[m.id]=m;
            n.push(m);
            l._setActive(m);
            l.onAddEditor.dispatch(l,m);
            if(j.adapter){
                j.adapter.patchEditor(m)
            }
            return m
        },
        remove:function(n){
            var m=this,l,o=m.editors;
            if(!o[n.id]){
                return null
            }
            delete o[n.id];
            for(l=0;l<o.length;l++){
                if(o[l]==n){
                    o.splice(l,1);
                    break
                }
            }
            if(m.activeEditor==n){
                m._setActive(o[0])
            }
            n.destroy();
            m.onRemoveEditor.dispatch(m,n);
            return n
        },
        execCommand:function(r,p,o){
            var q=this,n=q.get(o),l;
            function m(){
                n.destroy();
                l.detachEvent("onunload",m);
                l=l.tinyMCE=l.tinymce=null
            }
            switch(r){
                case"mceFocus":
                    n.focus();
                    return true;
                case"mceAddEditor":case"mceAddControl":
                    if(!q.get(o)){
                        new j.Editor(o,q.settings).render()
                    }
                    return true;
                case"mceAddFrameControl":
                    l=o.window;
                    l.tinyMCE=tinyMCE;
                    l.tinymce=j;
                    j.DOM.doc=l.document;
                    j.DOM.win=l;
                    n=new j.Editor(o.element_id,o);
                    n.render();
                    if(j.isIE){
                        l.attachEvent("onunload",m)
                    }
                    o.page_window=null;
                    return true;
                case"mceRemoveEditor":case"mceRemoveControl":
                    if(n){
                        n.remove()
                    }
                    return true;
                case"mceToggleEditor":
                    if(!n){
                        q.execCommand("mceAddControl",0,o);
                        return true
                    }
                    if(n.isHidden()){
                        n.show()
                    }else{
                        n.hide()
                    }
                    return true
            }
            if(q.activeEditor){
                return q.activeEditor.execCommand(r,p,o)
            }
            return false
        },
        execInstanceCommand:function(p,o,n,m){
            var l=this.get(p);
            if(l){
                return l.execCommand(o,n,m)
            }
            return false
        },
        triggerSave:function(){
            g(this.editors,function(l){
                l.save()
            })
        },
        addI18n:function(n,q){
            var l,m=this.i18n;
            if(!j.is(n,"string")){
                g(n,function(r,p){
                    g(r,function(t,s){
                        g(t,function(v,u){
                            if(s==="common"){
                                m[p+"."+u]=v
                            }else{
                                m[p+"."+s+"."+u]=v
                            }
                        })
                    })
                })
            }else{
                g(q,function(r,p){
                    m[n+"."+p]=r
                })
            }
        },
        _setActive:function(l){
            this.selectedInstance=this.activeEditor=l
        }
    })
})(tinymce);
(function(k){
    var l=k.DOM,j=k.dom.Event,f=k.extend,i=k.each,a=k.isGecko,b=k.isIE,e=k.isWebKit,d=k.is,h=k.ThemeManager,c=k.PluginManager,g=k.explode;
    k.create("tinymce.Editor",{
        Editor:function(p,o){
            var m=this,n=true;
            m.settings=o=f({
                id:p,
                language:"en",
                theme:"advanced",
                skin:"default",
                delta_width:0,
                delta_height:0,
                popup_css:"",
                plugins:"",
                document_base_url:k.documentBaseURL,
                add_form_submit_trigger:n,
                submit_patch:n,
                add_unload_trigger:n,
                convert_urls:n,
                relative_urls:n,
                remove_script_host:n,
                table_inline_editing:false,
                object_resizing:n,
                accessibility_focus:n,
                doctype:k.isIE6?'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">':"<!DOCTYPE>",
                visual:n,
                font_size_style_values:"xx-small,x-small,small,medium,large,x-large,xx-large",
                font_size_legacy_values:"xx-small,small,medium,large,x-large,xx-large,300%",
                apply_source_formatting:n,
                directionality:"ltr",
                forced_root_block:"p",
                hidden_input:n,
                padd_empty_editor:n,
                render_ui:n,
                indentation:"30px",
                fix_table_elements:n,
                inline_styles:n,
                convert_fonts_to_spans:n,
                indent:"simple",
                indent_before:"p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,ul,li,area,table,thead,tfoot,tbody,tr,section,article,hgroup,aside,figure,option,optgroup,datalist",
                indent_after:"p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,ul,li,area,table,thead,tfoot,tbody,tr,section,article,hgroup,aside,figure,option,optgroup,datalist",
                validate:n,
                entity_encoding:"named",
                url_converter:m.convertURL,
                url_converter_scope:m,
                ie7_compat:n
            },o);
            m.id=m.editorId=p;
            m.isNotDirty=false;
            m.plugins={};
            
            m.documentBaseURI=new k.util.URI(o.document_base_url||k.documentBaseURL,{
                base_uri:tinyMCE.baseURI
            });
            m.baseURI=k.baseURI;
            m.contentCSS=[];
            m.contentStyles=[];
            m.setupEvents();
            m.execCommands={};
            
            m.queryStateCommands={};
            
            m.queryValueCommands={};
            
            m.execCallback("setup",m)
        },
        render:function(o){
            var p=this,q=p.settings,r=p.id,m=k.ScriptLoader;
            if(!j.domLoaded){
                j.add(window,"ready",function(){
                    p.render()
                });
                return
            }
            tinyMCE.settings=q;
            if(!p.getElement()){
                return
            }
            if(k.isIDevice&&!k.isIOS5){
                return
            }
            if(!/TEXTAREA|INPUT/i.test(p.getElement().nodeName)&&q.hidden_input&&l.getParent(r,"form")){
                l.insertAfter(l.create("input",{
                    type:"hidden",
                    name:r
                }),r)
            }
            if(!q.content_editable){
                p.orgVisibility=p.getElement().style.visibility;
                p.getElement().style.visibility="hidden"
            }
            if(k.WindowManager){
                p.windowManager=new k.WindowManager(p)
            }
            if(q.encoding=="xml"){
                p.onGetContent.add(function(s,t){
                    if(t.save){
                        t.content=l.encode(t.content)
                    }
                })
            }
            if(q.add_form_submit_trigger){
                p.onSubmit.addToTop(function(){
                    if(p.initialized){
                        p.save();
                        p.isNotDirty=1
                    }
                })
            }
            if(q.add_unload_trigger){
                p._beforeUnload=tinyMCE.onBeforeUnload.add(function(){
                    if(p.initialized&&!p.destroyed&&!p.isHidden()){
                        p.save({
                            format:"raw",
                            no_events:true
                        })
                    }
                })
            }
            k.addUnload(p.destroy,p);
            if(q.submit_patch){
                p.onBeforeRenderUI.add(function(){
                    var s=p.getElement().form;
                    if(!s){
                        return
                    }
                    if(s._mceOldSubmit){
                        return
                    }
                    if(!s.submit.nodeType&&!s.submit.length){
                        p.formElement=s;
                        s._mceOldSubmit=s.submit;
                        s.submit=function(){
                            k.triggerSave();
                            p.isNotDirty=1;
                            return p.formElement._mceOldSubmit(p.formElement)
                        }
                    }
                    s=null
                })
            }
            function n(){
                if(q.language&&q.language_load!==false){
                    m.add(k.baseURL+"/langs/"+q.language+".js")
                }
                if(q.theme&&typeof q.theme!="function"&&q.theme.charAt(0)!="-"&&!h.urls[q.theme]){
                    h.load(q.theme,"themes/"+q.theme+"/editor_template"+k.suffix+".js")
                }
                i(g(q.plugins),function(t){
                    if(t&&!c.urls[t]){
                        if(t.charAt(0)=="-"){
                            t=t.substr(1,t.length);
                            var s=c.dependencies(t);
                            i(s,function(v){
                                var u={
                                    prefix:"plugins/",
                                    resource:v,
                                    suffix:"/editor_plugin"+k.suffix+".js"
                                };
                        
                                v=c.createUrl(u,v);
                                c.load(v.resource,v)
                            })
                        }else{
                            if(t=="safari"){
                                return
                            }
                            c.load(t,{
                                prefix:"plugins/",
                                resource:t,
                                suffix:"/editor_plugin"+k.suffix+".js"
                            })
                        }
                    }
                });
                m.loadQueue(function(){
                    if(!p.removed){
                        p.init()
                    }
                })
            }
            n()
        },
        init:function(){
            var q,G=this,H=G.settings,D,y,z,C=G.getElement(),p,m,E,v,B,F,x,r=[];
            k.add(G);
            H.aria_label=H.aria_label||l.getAttrib(C,"aria-label",G.getLang("aria.rich_text_area"));
            if(H.theme){
                if(typeof H.theme!="function"){
                    H.theme=H.theme.replace(/-/,"");
                    p=h.get(H.theme);
                    G.theme=new p();
                    if(G.theme.init){
                        G.theme.init(G,h.urls[H.theme]||k.documentBaseURL.replace(/\/$/,""))
                    }
                }else{
                    G.theme=H.theme
                }
            }
            function A(s){
                var t=c.get(s),o=c.urls[s]||k.documentBaseURL.replace(/\/$/,""),n;
                if(t&&k.inArray(r,s)===-1){
                    i(c.dependencies(s),function(u){
                        A(u)
                    });
                    n=new t(G,o);
                    G.plugins[s]=n;
                    if(n.init){
                        n.init(G,o);
                        r.push(s)
                    }
                }
            }
            i(g(H.plugins.replace(/\-/g,"")),A);
            if(H.popup_css!==false){
                if(H.popup_css){
                    H.popup_css=G.documentBaseURI.toAbsolute(H.popup_css)
                }else{
                    H.popup_css=G.baseURI.toAbsolute("themes/"+H.theme+"/skins/"+H.skin+"/dialog.css")
                }
            }
            if(H.popup_css_add){
                H.popup_css+=","+G.documentBaseURI.toAbsolute(H.popup_css_add)
            }
            G.controlManager=new k.ControlManager(G);
            G.onBeforeRenderUI.dispatch(G,G.controlManager);
            if(H.render_ui&&G.theme){
                G.orgDisplay=C.style.display;
                if(typeof H.theme!="function"){
                    D=H.width||C.style.width||C.offsetWidth;
                    y=H.height||C.style.height||C.offsetHeight;
                    z=H.min_height||100;
                    F=/^[0-9\.]+(|px)$/i;
                    if(F.test(""+D)){
                        D=Math.max(parseInt(D,10)+(p.deltaWidth||0),100)
                    }
                    if(F.test(""+y)){
                        y=Math.max(parseInt(y,10)+(p.deltaHeight||0),z)
                    }
                    p=G.theme.renderUI({
                        targetNode:C,
                        width:D,
                        height:y,
                        deltaWidth:H.delta_width,
                        deltaHeight:H.delta_height
                    });
                    l.setStyles(p.sizeContainer||p.editorContainer,{
                        width:D,
                        height:y
                    });
                    y=(p.iframeHeight||y)+(typeof(y)=="number"?(p.deltaHeight||0):"");
                    if(y<z){
                        y=z
                    }
                }else{
                    p=H.theme(G,C);
                    if(p.editorContainer.nodeType){
                        p.editorContainer=p.editorContainer.id=p.editorContainer.id||G.id+"_parent"
                    }
                    if(p.iframeContainer.nodeType){
                        p.iframeContainer=p.iframeContainer.id=p.iframeContainer.id||G.id+"_iframecontainer"
                    }
                    y=p.iframeHeight||C.offsetHeight;
                    if(b){
                        G.onInit.add(function(n){
                            n.dom.bind(n.getBody(),"beforedeactivate keydown",function(){
                                n.lastIERng=n.selection.getRng()
                            })
                        })
                    }
                }
                G.editorContainer=p.editorContainer
            }
            if(H.content_css){
                i(g(H.content_css),function(n){
                    G.contentCSS.push(G.documentBaseURI.toAbsolute(n))
                })
            }
            if(H.content_style){
                G.contentStyles.push(H.content_style)
            }
            if(H.content_editable){
                C=q=p=null;
                return G.initContentBody()
            }
            if(document.domain&&location.hostname!=document.domain){
                k.relaxedDomain=document.domain
            }
            G.iframeHTML=H.doctype+'<html><head xmlns="http://www.w3.org/1999/xhtml">';
            if(H.document_base_url!=k.documentBaseURL){
                G.iframeHTML+='<base href="'+G.documentBaseURI.getURI()+'" />'
            }
            if(H.ie7_compat){
                G.iframeHTML+='<meta http-equiv="X-UA-Compatible" content="IE=7" />'
            }else{
                G.iframeHTML+='<meta http-equiv="X-UA-Compatible" content="IE=edge" />'
            }
            G.iframeHTML+='<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />';
            for(x=0;x<G.contentCSS.length;x++){
                G.iframeHTML+='<link type="text/css" rel="stylesheet" href="'+G.contentCSS[x]+'" />'
            }
            G.contentCSS=[];
            v=H.body_id||"tinymce";
            if(v.indexOf("=")!=-1){
                v=G.getParam("body_id","","hash");
                v=v[G.id]||v
            }
            B=H.body_class||"";
            if(B.indexOf("=")!=-1){
                B=G.getParam("body_class","","hash");
                B=B[G.id]||""
            }
            G.iframeHTML+='</head><body id="'+v+'" class="mceContentBody '+B+'" onload="window.parent.tinyMCE.get(\''+G.id+"').onLoad.dispatch();\"><br></body></html>";
            if(k.relaxedDomain&&(b||(k.isOpera&&parseFloat(opera.version())<11))){
                E='javascript:(function(){document.open();document.domain="'+document.domain+'";var ed = window.parent.tinyMCE.get("'+G.id+'");document.write(ed.iframeHTML);document.close();ed.initContentBody();})()'
            }
            q=l.add(p.iframeContainer,"iframe",{
                id:G.id+"_ifr",
                src:E||'javascript:""',
                frameBorder:"0",
                allowTransparency:"true",
                title:H.aria_label,
                style:{
                    width:"100%",
                    height:y,
                    display:"block"
                }
            });
            G.contentAreaContainer=p.iframeContainer;
            if(p.editorContainer){
                l.get(p.editorContainer).style.display=G.orgDisplay
            }
            C.style.visibility=G.orgVisibility;
            l.get(G.id).style.display="none";
            l.setAttrib(G.id,"aria-hidden",true);
            if(!k.relaxedDomain||!E){
                G.initContentBody()
            }
            C=q=p=null
        },
        initContentBody:function(){
            var n=this,p=n.settings,q=l.get(n.id),r=n.getDoc(),o,m,s;
            if((!b||!k.relaxedDomain)&&!p.content_editable){
                r.open();
                r.write(n.iframeHTML);
                r.close();
                if(k.relaxedDomain){
                    r.domain=k.relaxedDomain
                }
            }
            if(p.content_editable){
                l.addClass(q,"mceContentBody");
                n.contentDocument=r=p.content_document||document;
                n.contentWindow=p.content_window||window;
                n.bodyElement=q;
                p.content_document=p.content_window=null
            }
            m=n.getBody();
            m.disabled=true;
            if(!p.readonly){
                m.contentEditable=n.getParam("content_editable_state",true)
            }
            m.disabled=false;
            n.schema=new k.html.Schema(p);
            n.dom=new k.dom.DOMUtils(r,{
                keep_values:true,
                url_converter:n.convertURL,
                url_converter_scope:n,
                hex_colors:p.force_hex_style_colors,
                class_filter:p.class_filter,
                update_styles:true,
                root_element:p.content_editable?n.id:null,
                schema:n.schema
            });
            n.parser=new k.html.DomParser(p,n.schema);
            n.parser.addAttributeFilter("src,href,style",function(t,u){
                var v=t.length,y,A=n.dom,z,x;
                while(v--){
                    y=t[v];
                    z=y.attr(u);
                    x="data-mce-"+u;
                    if(!y.attributes.map[x]){
                        if(u==="style"){
                            y.attr(x,A.serializeStyle(A.parseStyle(z),y.name))
                        }else{
                            y.attr(x,n.convertURL(z,u,y.name))
                        }
                    }
                }
            });
            n.parser.addNodeFilter("script",function(t,u){
                var v=t.length,x;
                while(v--){
                    x=t[v];
                    x.attr("type","mce-"+(x.attr("type")||"text/javascript"))
                }
            });
            n.parser.addNodeFilter("#cdata",function(t,u){
                var v=t.length,x;
                while(v--){
                    x=t[v];
                    x.type=8;
                    x.name="#comment";
                    x.value="[CDATA["+x.value+"]]"
                }
            });
            n.parser.addNodeFilter("p,h1,h2,h3,h4,h5,h6,div",function(u,v){
                var x=u.length,y,t=n.schema.getNonEmptyElements();
                while(x--){
                    y=u[x];
                    if(y.isEmpty(t)){
                        y.empty().append(new k.html.Node("br",1)).shortEnded=true
                    }
                }
            });
            n.serializer=new k.dom.Serializer(p,n.dom,n.schema);
            n.selection=new k.dom.Selection(n.dom,n.getWin(),n.serializer,n);
            n.formatter=new k.Formatter(n);
            n.undoManager=new k.UndoManager(n);
            n.forceBlocks=new k.ForceBlocks(n);
            n.enterKey=new k.EnterKey(n);
            n.editorCommands=new k.EditorCommands(n);
            n.onExecCommand.add(function(t,u){
                if(!/^(FontName|FontSize)$/.test(u)){
                    n.nodeChanged()
                }
            });
            n.serializer.onPreProcess.add(function(t,u){
                return n.onPreProcess.dispatch(n,u,t)
            });
            n.serializer.onPostProcess.add(function(t,u){
                return n.onPostProcess.dispatch(n,u,t)
            });
            n.onPreInit.dispatch(n);
            if(!p.browser_spellcheck&&!p.gecko_spellcheck){
                r.body.spellcheck=false
            }
            if(!p.readonly){
                n.bindNativeEvents()
            }
            n.controlManager.onPostRender.dispatch(n,n.controlManager);
            n.onPostRender.dispatch(n);
            n.quirks=k.util.Quirks(n);
            if(p.directionality){
                m.dir=p.directionality
            }
            if(p.nowrap){
                m.style.whiteSpace="nowrap"
            }
            if(p.protect){
                n.onBeforeSetContent.add(function(t,u){
                    i(p.protect,function(v){
                        u.content=u.content.replace(v,function(x){
                            return"<!--mce:protected "+escape(x)+"-->"
                        })
                    })
                })
            }
            n.onSetContent.add(function(){
                n.addVisual(n.getBody())
            });
            if(p.padd_empty_editor){
                n.onPostProcess.add(function(t,u){
                    u.content=u.content.replace(/^(<p[^>]*>(&nbsp;|&#160;|\s|\u00a0|)<\/p>[\r\n]*|<br \/>[\r\n]*)$/,"")
                })
            }
            n.load({
                initial:true,
                format:"html"
            });
            n.startContent=n.getContent({
                format:"raw"
            });
            n.initialized=true;
            n.onInit.dispatch(n);
            n.execCallback("setupcontent_callback",n.id,m,r);
            n.execCallback("init_instance_callback",n);
            n.focus(true);
            n.nodeChanged({
                initial:true
            });
            if(n.contentStyles.length>0){
                s="";
                i(n.contentStyles,function(t){
                    s+=t+"\r\n"
                });
                n.dom.addStyle(s)
            }
            i(n.contentCSS,function(t){
                n.dom.loadCSS(t)
            });
            if(p.auto_focus){
                setTimeout(function(){
                    var t=k.get(p.auto_focus);
                    t.selection.select(t.getBody(),1);
                    t.selection.collapse(1);
                    t.getBody().focus();
                    t.getWin().focus()
                },100)
            }
            q=r=m=null
        },
        focus:function(p){
            var o,u=this,t=u.selection,q=u.settings.content_editable,n,r,s=u.getDoc(),m;
            if(!p){
                if(u.lastIERng){
                    t.setRng(u.lastIERng)
                }
                n=t.getRng();
                if(n.item){
                    r=n.item(0)
                }
                u._refreshContentEditable();
                if(!q){
                    u.getWin().focus()
                }
                if(k.isGecko||q){
                    m=u.getBody();
                    if(m.setActive){
                        m.setActive()
                    }else{
                        m.focus()
                    }
                    if(q){
                        t.normalize()
                    }
                }
                if(r&&r.ownerDocument==s){
                    n=s.body.createControlRange();
                    n.addElement(r);
                    n.select()
                }
            }
            if(k.activeEditor!=u){
                if((o=k.activeEditor)!=null){
                    o.onDeactivate.dispatch(o,u)
                }
                u.onActivate.dispatch(u,o)
            }
            k._setActive(u)
        },
        execCallback:function(q){
            var m=this,p=m.settings[q],o;
            if(!p){
                return
            }
            if(m.callbackLookup&&(o=m.callbackLookup[q])){
                p=o.func;
                o=o.scope
            }
            if(d(p,"string")){
                o=p.replace(/\.\w+$/,"");
                o=o?k.resolve(o):0;
                p=k.resolve(p);
                m.callbackLookup=m.callbackLookup||{};
        
                m.callbackLookup[q]={
                    func:p,
                    scope:o
                }
            }
            return p.apply(o||m,Array.prototype.slice.call(arguments,1))
        },
        translate:function(m){
            var o=this.settings.language||"en",n=k.i18n;
            if(!m){
                return""
            }
            return n[o+"."+m]||m.replace(/\{\#([^\}]+)\}/g,function(q,p){
                return n[o+"."+p]||"{#"+p+"}"
            })
        },
        getLang:function(o,m){
            return k.i18n[(this.settings.language||"en")+"."+o]||(d(m)?m:"{#"+o+"}")
        },
        getParam:function(t,q,m){
            var r=k.trim,p=d(this.settings[t])?this.settings[t]:q,s;
            if(m==="hash"){
                s={};
        
                if(d(p,"string")){
                    i(p.indexOf("=")>0?p.split(/[;,](?![^=;,]*(?:[;,]|$))/):p.split(","),function(n){
                        n=n.split("=");
                        if(n.length>1){
                            s[r(n[0])]=r(n[1])
                        }else{
                            s[r(n[0])]=r(n)
                        }
                    })
                }else{
                    s=p
                }
                return s
            }
            return p
        },
        nodeChanged:function(q){
            var m=this,n=m.selection,p;
            if(m.initialized){
                q=q||{};
        
                p=n.getStart()||m.getBody();
                p=b&&p.ownerDocument!=m.getDoc()?m.getBody():p;
                q.parents=[];
                m.dom.getParent(p,function(o){
                    if(o.nodeName=="BODY"){
                        return true
                    }
                    q.parents.push(o)
                });
                m.onNodeChange.dispatch(m,q?q.controlManager||m.controlManager:m.controlManager,p,n.isCollapsed(),q)
            }
        },
        addButton:function(n,o){
            var m=this;
            m.buttons=m.buttons||{};
    
            m.buttons[n]=o
        },
        addCommand:function(m,o,n){
            this.execCommands[m]={
                func:o,
                scope:n||this
            }
        },
        addQueryStateHandler:function(m,o,n){
            this.queryStateCommands[m]={
                func:o,
                scope:n||this
            }
        },
        addQueryValueHandler:function(m,o,n){
            this.queryValueCommands[m]={
                func:o,
                scope:n||this
            }
        },
        addShortcut:function(o,q,m,p){
            var n=this,r;
            if(n.settings.custom_shortcuts===false){
                return false
            }
            n.shortcuts=n.shortcuts||{};
    
            if(d(m,"string")){
                r=m;
                m=function(){
                    n.execCommand(r,false,null)
                }
            }
            if(d(m,"object")){
                r=m;
                m=function(){
                    n.execCommand(r[0],r[1],r[2])
                }
            }
            i(g(o),function(s){
                var t={
                    func:m,
                    scope:p||this,
                    desc:n.translate(q),
                    alt:false,
                    ctrl:false,
                    shift:false
                };
    
                i(g(s,"+"),function(u){
                    switch(u){
                        case"alt":case"ctrl":case"shift":
                            t[u]=true;
                            break;
                        default:
                            t.charCode=u.charCodeAt(0);
                            t.keyCode=u.toUpperCase().charCodeAt(0)
                    }
                });
                n.shortcuts[(t.ctrl?"ctrl":"")+","+(t.alt?"alt":"")+","+(t.shift?"shift":"")+","+t.keyCode]=t
            });
            return true
        },
        execCommand:function(u,r,x,m){
            var p=this,q=0,v,n;
            if(!/^(mceAddUndoLevel|mceEndUndoLevel|mceBeginUndoLevel|mceRepaint|SelectAll)$/.test(u)&&(!m||!m.skip_focus)){
                p.focus()
            }
            m=f({},m);
            p.onBeforeExecCommand.dispatch(p,u,r,x,m);
            if(m.terminate){
                return false
            }
            if(p.execCallback("execcommand_callback",p.id,p.selection.getNode(),u,r,x)){
                p.onExecCommand.dispatch(p,u,r,x,m);
                return true
            }
            if(v=p.execCommands[u]){
                n=v.func.call(v.scope,r,x);
                if(n!==true){
                    p.onExecCommand.dispatch(p,u,r,x,m);
                    return n
                }
            }
            i(p.plugins,function(o){
                if(o.execCommand&&o.execCommand(u,r,x)){
                    p.onExecCommand.dispatch(p,u,r,x,m);
                    q=1;
                    return false
                }
            });
            if(q){
                return true
            }
            if(p.theme&&p.theme.execCommand&&p.theme.execCommand(u,r,x)){
                p.onExecCommand.dispatch(p,u,r,x,m);
                return true
            }
            if(p.editorCommands.execCommand(u,r,x)){
                p.onExecCommand.dispatch(p,u,r,x,m);
                return true
            }
            p.getDoc().execCommand(u,r,x);
            p.onExecCommand.dispatch(p,u,r,x,m)
        },
        queryCommandState:function(q){
            var n=this,r,p;
            if(n._isHidden()){
                return
            }
            if(r=n.queryStateCommands[q]){
                p=r.func.call(r.scope);
                if(p!==true){
                    return p
                }
            }
            r=n.editorCommands.queryCommandState(q);
            if(r!==-1){
                return r
            }
            try{
                return this.getDoc().queryCommandState(q)
            }catch(m){}
        },
        queryCommandValue:function(r){
            var n=this,q,p;
            if(n._isHidden()){
                return
            }
            if(q=n.queryValueCommands[r]){
                p=q.func.call(q.scope);
                if(p!==true){
                    return p
                }
            }
            q=n.editorCommands.queryCommandValue(r);
            if(d(q)){
                return q
            }
            try{
                return this.getDoc().queryCommandValue(r)
            }catch(m){}
        },
        show:function(){
            var m=this;
            l.show(m.getContainer());
            l.hide(m.id);
            m.load()
        },
        hide:function(){
            var m=this,n=m.getDoc();
            if(b&&n){
                n.execCommand("SelectAll")
            }
            m.save();
            l.hide(m.getContainer());
            l.setStyle(m.id,"display",m.orgDisplay)
        },
        isHidden:function(){
            return !l.isHidden(this.id)
        },
        setProgressState:function(m,n,p){
            this.onSetProgressState.dispatch(this,m,n,p);
            return m
        },
        load:function(q){
            var m=this,p=m.getElement(),n;
            if(p){
                q=q||{};
        
                q.load=true;
                n=m.setContent(d(p.value)?p.value:p.innerHTML,q);
                q.element=p;
                if(!q.no_events){
                    m.onLoadContent.dispatch(m,q)
                }
                q.element=p=null;
                return n
            }
        },
        save:function(r){
            var m=this,q=m.getElement(),n,p;
            if(!q||!m.initialized){
                return
            }
            r=r||{};
    
            r.save=true;
            r.element=q;
            n=r.content=m.getContent(r);
            if(!r.no_events){
                m.onSaveContent.dispatch(m,r)
            }
            n=r.content;
            if(!/TEXTAREA|INPUT/i.test(q.nodeName)){
                q.innerHTML=n;
                if(p=l.getParent(m.id,"form")){
                    i(p.elements,function(o){
                        if(o.name==m.id){
                            o.value=n;
                            return false
                        }
                    })
                }
            }else{
                q.value=n
            }
            r.element=q=null;
            return n
        },
        setContent:function(r,p){
            var o=this,n,m=o.getBody(),q;
            p=p||{};
    
            p.format=p.format||"html";
            p.set=true;
            p.content=r;
            if(!p.no_events){
                o.onBeforeSetContent.dispatch(o,p)
            }
            r=p.content;
            if(!k.isIE&&(r.length===0||/^\s+$/.test(r))){
                q=o.settings.forced_root_block;
                if(q){
                    r="<"+q+'><br data-mce-bogus="1"></'+q+">"
                }else{
                    r='<br data-mce-bogus="1">'
                }
                m.innerHTML=r;
                o.selection.select(m,true);
                o.selection.collapse(true);
                return
            }
            if(p.format!=="raw"){
                r=new k.html.Serializer({},o.schema).serialize(o.parser.parse(r))
            }
            p.content=k.trim(r);
            o.dom.setHTML(m,p.content);
            if(!p.no_events){
                o.onSetContent.dispatch(o,p)
            }
            if(!o.settings.content_editable||document.activeElement===o.getBody()){
                o.selection.normalize()
            }
            return p.content
        },
        getContent:function(o){
            var n=this,p,m=n.getBody();
            o=o||{};
    
            o.format=o.format||"html";
            o.get=true;
            o.getInner=true;
            if(!o.no_events){
                n.onBeforeGetContent.dispatch(n,o)
            }
            if(o.format=="raw"){
                p=m.innerHTML
            }else{
                if(o.format=="text"){
                    p=m.innerText||m.textContent
                }else{
                    p=n.serializer.serialize(m,o)
                }
            }
            if(o.format!="text"){
                o.content=k.trim(p)
            }else{
                o.content=p
            }
            if(!o.no_events){
                n.onGetContent.dispatch(n,o)
            }
            return o.content
        },
        isDirty:function(){
            var m=this;
            return k.trim(m.startContent)!=k.trim(m.getContent({
                format:"raw",
                no_events:1
            }))&&!m.isNotDirty
        },
        getContainer:function(){
            var m=this;
            if(!m.container){
                m.container=l.get(m.editorContainer||m.id+"_parent")
            }
            return m.container
        },
        getContentAreaContainer:function(){
            return this.contentAreaContainer
        },
        getElement:function(){
            return l.get(this.settings.content_element||this.id)
        },
        getWin:function(){
            var m=this,n;
            if(!m.contentWindow){
                n=l.get(m.id+"_ifr");
                if(n){
                    m.contentWindow=n.contentWindow
                }
            }
            return m.contentWindow
        },
        getDoc:function(){
            var m=this,n;
            if(!m.contentDocument){
                n=m.getWin();
                if(n){
                    m.contentDocument=n.document
                }
            }
            return m.contentDocument
        },
        getBody:function(){
            return this.bodyElement||this.getDoc().body
        },
        convertURL:function(o,n,q){
            var m=this,p=m.settings;
            if(p.urlconverter_callback){
                return m.execCallback("urlconverter_callback",o,q,true,n)
            }
            if(!p.convert_urls||(q&&q.nodeName=="LINK")||o.indexOf("file:")===0){
                return o
            }
            if(p.relative_urls){
                return m.documentBaseURI.toRelative(o)
            }
            o=m.documentBaseURI.toAbsolute(o,p.remove_script_host);
            return o
        },
        addVisual:function(q){
            var n=this,o=n.settings,p=n.dom,m;
            q=q||n.getBody();
            if(!d(n.hasVisual)){
                n.hasVisual=o.visual
            }
            i(p.select("table,a",q),function(s){
                var r;
                switch(s.nodeName){
                    case"TABLE":
                        m=o.visual_table_class||"mceItemTable";
                        r=p.getAttrib(s,"border");
                        if(!r||r=="0"){
                            if(n.hasVisual){
                                p.addClass(s,m)
                            }else{
                                p.removeClass(s,m)
                            }
                        }
                        return;
                    case"A":
                        if(!p.getAttrib(s,"href",false)){
                            r=p.getAttrib(s,"name")||s.id;
                            m="mceItemAnchor";
                            if(r){
                                if(n.hasVisual){
                                    p.addClass(s,m)
                                }else{
                                    p.removeClass(s,m)
                                }
                            }
                        }
                        return
                }
            });
            n.onVisualAid.dispatch(n,q,n.hasVisual)
        },
        remove:function(){
            var m=this,n=m.getContainer();
            if(!m.removed){
                m.removed=1;
                m.hide();
                if(!m.settings.content_editable){
                    j.unbind(m.getWin());
                    j.unbind(m.getDoc())
                }
                j.unbind(m.getBody());
                j.clear(n);
                m.execCallback("remove_instance_callback",m);
                m.onRemove.dispatch(m);
                m.onExecCommand.listeners=[];
                k.remove(m);
                l.remove(n)
            }
        },
        destroy:function(n){
            var m=this;
            if(m.destroyed){
                return
            }
            if(a){
                j.unbind(m.getDoc());
                j.unbind(m.getWin());
                j.unbind(m.getBody())
            }
            if(!n){
                k.removeUnload(m.destroy);
                tinyMCE.onBeforeUnload.remove(m._beforeUnload);
                if(m.theme&&m.theme.destroy){
                    m.theme.destroy()
                }
                m.controlManager.destroy();
                m.selection.destroy();
                m.dom.destroy()
            }
            if(m.formElement){
                m.formElement.submit=m.formElement._mceOldSubmit;
                m.formElement._mceOldSubmit=null
            }
            m.contentAreaContainer=m.formElement=m.container=m.settings.content_element=m.bodyElement=m.contentDocument=m.contentWindow=null;
            if(m.selection){
                m.selection=m.selection.win=m.selection.dom=m.selection.dom.doc=null
            }
            m.destroyed=1
        },
        _refreshContentEditable:function(){
            var n=this,m,o;
            if(n._isHidden()){
                m=n.getBody();
                o=m.parentNode;
                o.removeChild(m);
                o.appendChild(m);
                m.focus()
            }
        },
        _isHidden:function(){
            var m;
            if(!a){
                return 0
            }
            m=this.selection.getSel();
            return(!m||!m.rangeCount||m.rangeCount===0)
        }
    })
})(tinymce);
(function(a){
    var b=a.each;
    a.Editor.prototype.setupEvents=function(){
        var c=this,d=c.settings;
        b(["onPreInit","onBeforeRenderUI","onPostRender","onLoad","onInit","onRemove","onActivate","onDeactivate","onClick","onEvent","onMouseUp","onMouseDown","onDblClick","onKeyDown","onKeyUp","onKeyPress","onContextMenu","onSubmit","onReset","onPaste","onPreProcess","onPostProcess","onBeforeSetContent","onBeforeGetContent","onSetContent","onGetContent","onLoadContent","onSaveContent","onNodeChange","onChange","onBeforeExecCommand","onExecCommand","onUndo","onRedo","onVisualAid","onSetProgressState","onSetAttrib"],function(e){
            c[e]=new a.util.Dispatcher(c)
        });
        if(d.cleanup_callback){
            c.onBeforeSetContent.add(function(e,f){
                f.content=e.execCallback("cleanup_callback","insert_to_editor",f.content,f)
            });
            c.onPreProcess.add(function(e,f){
                if(f.set){
                    e.execCallback("cleanup_callback","insert_to_editor_dom",f.node,f)
                }
                if(f.get){
                    e.execCallback("cleanup_callback","get_from_editor_dom",f.node,f)
                }
            });
            c.onPostProcess.add(function(e,f){
                if(f.set){
                    f.content=e.execCallback("cleanup_callback","insert_to_editor",f.content,f)
                }
                if(f.get){
                    f.content=e.execCallback("cleanup_callback","get_from_editor",f.content,f)
                }
            })
        }
        if(d.save_callback){
            c.onGetContent.add(function(e,f){
                if(f.save){
                    f.content=e.execCallback("save_callback",e.id,f.content,e.getBody())
                }
            })
        }
        if(d.handle_event_callback){
            c.onEvent.add(function(f,g,h){
                if(c.execCallback("handle_event_callback",g,f,h)===false){
                    g.preventDefault();
                    g.stopPropagation()
                }
            })
        }
        if(d.handle_node_change_callback){
            c.onNodeChange.add(function(f,e,g){
                f.execCallback("handle_node_change_callback",f.id,g,-1,-1,true,f.selection.isCollapsed())
            })
        }
        if(d.save_callback){
            c.onSaveContent.add(function(e,g){
                var f=e.execCallback("save_callback",e.id,g.content,e.getBody());
                if(f){
                    g.content=f
                }
            })
        }
        if(d.onchange_callback){
            c.onChange.add(function(f,e){
                f.execCallback("onchange_callback",f,e)
            })
        }
    };

    a.Editor.prototype.bindNativeEvents=function(){
        var l=this,f,d=l.settings,e=l.dom,h;
        h={
            mouseup:"onMouseUp",
            mousedown:"onMouseDown",
            click:"onClick",
            keyup:"onKeyUp",
            keydown:"onKeyDown",
            keypress:"onKeyPress",
            submit:"onSubmit",
            reset:"onReset",
            contextmenu:"onContextMenu",
            dblclick:"onDblClick",
            paste:"onPaste"
        };
    
        function c(i,m){
            var n=i.type;
            if(l.removed){
                return
            }
            if(l.onEvent.dispatch(l,i,m)!==false){
                l[h[i.fakeType||i.type]].dispatch(l,i,m)
            }
        }
        function j(i){
            l.focus(true)
        }
        function k(i,m){
            if(m.keyCode!=65||!a.VK.metaKeyPressed(m)){
                l.selection.normalize()
            }
            l.nodeChanged()
        }
        b(h,function(m,n){
            var i=d.content_editable?l.getBody():l.getDoc();
            switch(n){
                case"contextmenu":
                    e.bind(i,n,c);
                    break;
                case"paste":
                    e.bind(l.getBody(),n,c);
                    break;
                case"submit":case"reset":
                    e.bind(l.getElement().form||a.DOM.getParent(l.id,"form"),n,c);
                    break;
                default:
                    e.bind(i,n,c)
            }
        });
        e.bind(d.content_editable?l.getBody():(a.isGecko?l.getDoc():l.getWin()),"focus",function(i){
            l.focus(true)
        });
        if(d.content_editable&&a.isOpera){
            e.bind(l.getBody(),"click",j);
            e.bind(l.getBody(),"keydown",j)
        }
        l.onMouseUp.add(k);
        l.onKeyUp.add(function(i,n){
            var m=n.keyCode;
            if((m>=33&&m<=36)||(m>=37&&m<=40)||m==13||m==45||m==46||m==8||(a.isMac&&(m==91||m==93))||n.ctrlKey){
                k(i,n)
            }
        });
        l.onReset.add(function(){
            l.setContent(l.startContent,{
                format:"raw"
            })
        });
        function g(m,i){
            if(m.altKey||m.ctrlKey||m.metaKey){
                b(l.shortcuts,function(n){
                    var o=a.isMac?m.metaKey:m.ctrlKey;
                    if(n.ctrl!=o||n.alt!=m.altKey||n.shift!=m.shiftKey){
                        return
                    }
                    if(m.keyCode==n.keyCode||(m.charCode&&m.charCode==n.charCode)){
                        m.preventDefault();
                        if(i){
                            n.func.call(n.scope)
                        }
                        return true
                    }
                })
            }
        }
        l.onKeyUp.add(function(i,m){
            g(m)
        });
        l.onKeyPress.add(function(i,m){
            g(m)
        });
        l.onKeyDown.add(function(i,m){
            g(m,true)
        });
        if(a.isOpera){
            l.onClick.add(function(i,m){
                m.preventDefault()
            })
        }
    }
})(tinymce);
(function(d){
    var e=d.each,b,a=true,c=false;
    d.EditorCommands=function(n){
        var m=n.dom,p=n.selection,j={
            state:{},
            exec:{},
            value:{}
        },k=n.settings,q=n.formatter,o;
        function r(z,y,x){
            var v;
            z=z.toLowerCase();
            if(v=j.exec[z]){
                v(z,y,x);
                return a
            }
            return c
        }
        function l(x){
            var v;
            x=x.toLowerCase();
            if(v=j.state[x]){
                return v(x)
            }
            return -1
        }
        function h(x){
            var v;
            x=x.toLowerCase();
            if(v=j.value[x]){
                return v(x)
            }
            return c
        }
        function u(v,x){
            x=x||"exec";
            e(v,function(z,y){
                e(y.toLowerCase().split(","),function(A){
                    j[x][A]=z
                })
            })
        }
        d.extend(this,{
            execCommand:r,
            queryCommandState:l,
            queryCommandValue:h,
            addCommands:u
        });
        function f(y,x,v){
            if(x===b){
                x=c
            }
            if(v===b){
                v=null
            }
            return n.getDoc().execCommand(y,x,v)
        }
        function t(v){
            return q.match(v)
        }
        function s(v,x){
            q.toggle(v,x?{
                value:x
            }:b)
        }
        function i(v){
            o=p.getBookmark(v)
        }
        function g(){
            p.moveToBookmark(o)
        }
        u({
            "mceResetDesignMode,mceBeginUndoLevel":function(){},
            "mceEndUndoLevel,mceAddUndoLevel":function(){
                n.undoManager.add()
            },
            "Cut,Copy,Paste":function(z){
                var y=n.getDoc(),v;
                try{
                    f(z)
                }catch(x){
                    v=a
                }
                if(v||!y.queryCommandSupported(z)){
                    if(d.isGecko){
                        n.windowManager.confirm(n.getLang("clipboard_msg"),function(A){
                            if(A){
                                open("http://www.mozilla.org/editor/midasdemo/securityprefs.html","_blank")
                            }
                        })
                    }else{
                        n.windowManager.alert(n.getLang("clipboard_no_support"))
                    }
                }
            },
            unlink:function(v){
                if(p.isCollapsed()){
                    p.select(p.getNode())
                }
                f(v);
                p.collapse(c)
            },
            "JustifyLeft,JustifyCenter,JustifyRight,JustifyFull":function(v){
                var x=v.substring(7);
                e("left,center,right,full".split(","),function(y){
                    if(x!=y){
                        q.remove("align"+y)
                    }
                });
                s("align"+x);
                r("mceRepaint")
            },
            "InsertUnorderedList,InsertOrderedList":function(y){
                var v,x;
                f(y);
                v=m.getParent(p.getNode(),"ol,ul");
                if(v){
                    x=v.parentNode;
                    if(/^(H[1-6]|P|ADDRESS|PRE)$/.test(x.nodeName)){
                        i();
                        m.split(x,v);
                        g()
                    }
                }
            },
            "Bold,Italic,Underline,Strikethrough,Superscript,Subscript":function(v){
                s(v)
            },
            "ForeColor,HiliteColor,FontName":function(y,x,v){
                s(y,v)
            },
            FontSize:function(z,y,x){
                var v,A;
                if(x>=1&&x<=7){
                    A=d.explode(k.font_size_style_values);
                    v=d.explode(k.font_size_classes);
                    if(v){
                        x=v[x-1]||x
                    }else{
                        x=A[x-1]||x
                    }
                }
                s(z,x)
            },
            RemoveFormat:function(v){
                q.remove(v)
            },
            mceBlockQuote:function(v){
                s("blockquote")
            },
            FormatBlock:function(y,x,v){
                return s(v||"p")
            },
            mceCleanup:function(){
                var v=p.getBookmark();
                n.setContent(n.getContent({
                    cleanup:a
                }),{
                    cleanup:a
                });
                p.moveToBookmark(v)
            },
            mceRemoveNode:function(z,y,x){
                var v=x||p.getNode();
                if(v!=n.getBody()){
                    i();
                    n.dom.remove(v,a);
                    g()
                }
            },
            mceSelectNodeDepth:function(z,y,x){
                var v=0;
                m.getParent(p.getNode(),function(A){
                    if(A.nodeType==1&&v++==x){
                        p.select(A);
                        return c
                    }
                },n.getBody())
            },
            mceSelectNode:function(y,x,v){
                p.select(v)
            },
            mceInsertContent:function(B,I,K){
                var y,J,E,z,F,G,D,C,L,x,A,M,v,H;
                y=n.parser;
                J=new d.html.Serializer({},n.schema);
                v='<span id="mce_marker" data-mce-type="bookmark">\uFEFF</span>';
                G={
                    content:K,
                    format:"html"
                };
    
                p.onBeforeSetContent.dispatch(p,G);
                K=G.content;
                if(K.indexOf("{$caret}")==-1){
                    K+="{$caret}"
                }
                K=K.replace(/\{\$caret\}/,v);
                if(!p.isCollapsed()){
                    n.getDoc().execCommand("Delete",false,null)
                }
                E=p.getNode();
                G={
                    context:E.nodeName.toLowerCase()
                };
        
                F=y.parse(K,G);
                A=F.lastChild;
                if(A.attr("id")=="mce_marker"){
                    D=A;
                    for(A=A.prev;A;A=A.walk(true)){
                        if(A.type==3||!m.isBlock(A.name)){
                            A.parent.insert(D,A,A.name==="br");
                            break
                        }
                    }
                }
                if(!G.invalid){
                    K=J.serialize(F);
                    A=E.firstChild;
                    M=E.lastChild;
                    if(!A||(A===M&&A.nodeName==="BR")){
                        m.setHTML(E,K)
                    }else{
                        p.setContent(K)
                    }
                }else{
                    p.setContent(v);
                    E=p.getNode();
                    z=n.getBody();
                    if(E.nodeType==9){
                        E=A=z
                    }else{
                        A=E
                    }while(A!==z){
                        E=A;
                        A=A.parentNode
                    }
                    K=E==z?z.innerHTML:m.getOuterHTML(E);
                    K=J.serialize(y.parse(K.replace(/<span (id="mce_marker"|id=mce_marker).+?<\/span>/i,function(){
                        return J.serialize(F)
                    })));
                    if(E==z){
                        m.setHTML(z,K)
                    }else{
                        m.setOuterHTML(E,K)
                    }
                }
                D=m.get("mce_marker");
                C=m.getRect(D);
                L=m.getViewPort(n.getWin());
                if((C.y+C.h>L.y+L.h||C.y<L.y)||(C.x>L.x+L.w||C.x<L.x)){
                    H=d.isIE?n.getDoc().documentElement:n.getBody();
                    H.scrollLeft=C.x;
                    H.scrollTop=C.y-L.h+25
                }
                x=m.createRng();
                A=D.previousSibling;
                if(A&&A.nodeType==3){
                    x.setStart(A,A.nodeValue.length)
                }else{
                    x.setStartBefore(D);
                    x.setEndBefore(D)
                }
                m.remove(D);
                p.setRng(x);
                p.onSetContent.dispatch(p,G);
                n.addVisual()
            },
            mceInsertRawHTML:function(y,x,v){
                p.setContent("tiny_mce_marker");
                n.setContent(n.getContent().replace(/tiny_mce_marker/g,function(){
                    return v
                }))
            },
            mceToggleFormat:function(y,x,v){
                s(v)
            },
            mceSetContent:function(y,x,v){
                n.setContent(v)
            },
            "Indent,Outdent":function(z){
                var x,v,y;
                x=k.indentation;
                v=/[a-z%]+$/i.exec(x);
                x=parseInt(x);
                if(!l("InsertUnorderedList")&&!l("InsertOrderedList")){
                    if(!k.forced_root_block&&!m.getParent(p.getNode(),m.isBlock)){
                        q.apply("div")
                    }
                    e(p.getSelectedBlocks(),function(A){
                        if(z=="outdent"){
                            y=Math.max(0,parseInt(A.style.paddingLeft||0)-x);
                            m.setStyle(A,"paddingLeft",y?y+v:"")
                        }else{
                            m.setStyle(A,"paddingLeft",(parseInt(A.style.paddingLeft||0)+x)+v)
                        }
                    })
                }else{
                    f(z)
                }
            },
            mceRepaint:function(){
                var x;
                if(d.isGecko){
                    try{
                        i(a);
                        if(p.getSel()){
                            p.getSel().selectAllChildren(n.getBody())
                        }
                        p.collapse(a);
                        g()
                    }catch(v){}
                }
            },
            mceToggleFormat:function(y,x,v){
                q.toggle(v)
            },
            InsertHorizontalRule:function(){
                n.execCommand("mceInsertContent",false,"<hr />")
            },
            mceToggleVisualAid:function(){
                n.hasVisual=!n.hasVisual;
                n.addVisual()
            },
            mceReplaceContent:function(y,x,v){
                n.execCommand("mceInsertContent",false,v.replace(/\{\$selection\}/g,p.getContent({
                    format:"text"
                })))
            },
            mceInsertLink:function(z,y,x){
                var v;
                if(typeof(x)=="string"){
                    x={
                        href:x
                    }
                }
                v=m.getParent(p.getNode(),"a");
                x.href=x.href.replace(" ","%20");
                if(!v||!x.href){
                    q.remove("link")
                }
                if(x.href){
                    q.apply("link",x,v)
                }
            },
            selectAll:function(){
                var x=m.getRoot(),v=m.createRng();
                if(p.getRng().setStart){
                    v.setStart(x,0);
                    v.setEnd(x,x.childNodes.length);
                    p.setRng(v)
                }else{
                    f("SelectAll")
                }
            }
        });
        u({
            "JustifyLeft,JustifyCenter,JustifyRight,JustifyFull":function(z){
                var x="align"+z.substring(7);
                var v=p.isCollapsed()?[m.getParent(p.getNode(),m.isBlock)]:p.getSelectedBlocks();
                var y=d.map(v,function(A){
                    return !!q.matchNode(A,x)
                });
                return d.inArray(y,a)!==-1
            },
            "Bold,Italic,Underline,Strikethrough,Superscript,Subscript":function(v){
                return t(v)
            },
            mceBlockQuote:function(){
                return t("blockquote")
            },
            Outdent:function(){
                var v;
                if(k.inline_styles){
                    if((v=m.getParent(p.getStart(),m.isBlock))&&parseInt(v.style.paddingLeft)>0){
                        return a
                    }
                    if((v=m.getParent(p.getEnd(),m.isBlock))&&parseInt(v.style.paddingLeft)>0){
                        return a
                    }
                }
                return l("InsertUnorderedList")||l("InsertOrderedList")||(!k.inline_styles&&!!m.getParent(p.getNode(),"BLOCKQUOTE"))
            },
            "InsertUnorderedList,InsertOrderedList":function(x){
                var v=m.getParent(p.getNode(),"ul,ol");
                return v&&(x==="insertunorderedlist"&&v.tagName==="UL"||x==="insertorderedlist"&&v.tagName==="OL")
            }
        },"state");
        u({
            "FontSize,FontName":function(y){
                var x=0,v;
                if(v=m.getParent(p.getNode(),"span")){
                    if(y=="fontsize"){
                        x=v.style.fontSize
                    }else{
                        x=v.style.fontFamily.replace(/, /g,",").replace(/[\'\"]/g,"").toLowerCase()
                    }
                }
                return x
            }
        },"value");
        u({
            Undo:function(){
                n.undoManager.undo()
            },
            Redo:function(){
                n.undoManager.redo()
            }
        })
    }
})(tinymce);
(function(b){
    var a=b.util.Dispatcher;
    b.UndoManager=function(h){
        var l,i=0,e=[],g,k,j,f;
        function c(){
            return b.trim(h.getContent({
                format:"raw",
                no_events:1
            }).replace(/<span[^>]+data-mce-bogus[^>]+>[\u200B\uFEFF]+<\/span>/g,""))
        }
        function d(){
            l.typing=false;
            l.add()
        }
        onBeforeAdd=new a(l);
        k=new a(l);
        j=new a(l);
        f=new a(l);
        k.add(function(m,n){
            if(m.hasUndo()){
                return h.onChange.dispatch(h,n,m)
            }
        });
        j.add(function(m,n){
            return h.onUndo.dispatch(h,n,m)
        });
        f.add(function(m,n){
            return h.onRedo.dispatch(h,n,m)
        });
        h.onInit.add(function(){
            l.add()
        });
        h.onBeforeExecCommand.add(function(m,p,o,q,n){
            if(p!="Undo"&&p!="Redo"&&p!="mceRepaint"&&(!n||!n.skip_undo)){
                l.beforeChange()
            }
        });
        h.onExecCommand.add(function(m,p,o,q,n){
            if(p!="Undo"&&p!="Redo"&&p!="mceRepaint"&&(!n||!n.skip_undo)){
                l.add()
            }
        });
        h.onSaveContent.add(d);
        h.dom.bind(h.dom.getRoot(),"dragend",d);
        h.dom.bind(h.getDoc(),b.isGecko?"blur":"focusout",function(m){
            if(!h.removed&&l.typing){
                d()
            }
        });
        h.onKeyUp.add(function(m,o){
            var n=o.keyCode;
            if((n>=33&&n<=36)||(n>=37&&n<=40)||n==45||n==13||o.ctrlKey){
                d()
            }
        });
        h.onKeyDown.add(function(m,o){
            var n=o.keyCode;
            if((n>=33&&n<=36)||(n>=37&&n<=40)||n==45){
                if(l.typing){
                    d()
                }
                return
            }
            if((n<16||n>20)&&n!=224&&n!=91&&!l.typing){
                l.beforeChange();
                l.typing=true;
                l.add()
            }
        });
        h.onMouseDown.add(function(m,n){
            if(l.typing){
                d()
            }
        });
        h.addShortcut("ctrl+z","undo_desc","Undo");
        h.addShortcut("ctrl+y","redo_desc","Redo");
        l={
            data:e,
            typing:false,
            onBeforeAdd:onBeforeAdd,
            onAdd:k,
            onUndo:j,
            onRedo:f,
            beforeChange:function(){
                g=h.selection.getBookmark(2,true)
            },
            add:function(p){
                var m,n=h.settings,o;
                p=p||{};
        
                p.content=c();
                l.onBeforeAdd.dispatch(l,p);
                o=e[i];
                if(o&&o.content==p.content){
                    return null
                }
                if(e[i]){
                    e[i].beforeBookmark=g
                }
                if(n.custom_undo_redo_levels){
                    if(e.length>n.custom_undo_redo_levels){
                        for(m=0;m<e.length-1;m++){
                            e[m]=e[m+1]
                        }
                        e.length--;
                        i=e.length
                    }
                }
                p.bookmark=h.selection.getBookmark(2,true);
                if(i<e.length-1){
                    e.length=i+1
                }
                e.push(p);
                i=e.length-1;
                l.onAdd.dispatch(l,p);
                h.isNotDirty=0;
                return p
            },
            undo:function(){
                var n,m;
                if(l.typing){
                    l.add();
                    l.typing=false
                }
                if(i>0){
                    n=e[--i];
                    h.setContent(n.content,{
                        format:"raw"
                    });
                    h.selection.moveToBookmark(n.beforeBookmark);
                    l.onUndo.dispatch(l,n)
                }
                return n
            },
            redo:function(){
                var m;
                if(i<e.length-1){
                    m=e[++i];
                    h.setContent(m.content,{
                        format:"raw"
                    });
                    h.selection.moveToBookmark(m.bookmark);
                    l.onRedo.dispatch(l,m)
                }
                return m
            },
            clear:function(){
                e=[];
                i=0;
                l.typing=false
            },
            hasUndo:function(){
                return i>0||this.typing
            },
            hasRedo:function(){
                return i<e.length-1&&!this.typing
            }
        };

        return l
    }
})(tinymce);
tinymce.ForceBlocks=function(c){
    var b=c.settings,e=c.dom,a=c.selection,d=c.schema.getBlockElements();
    function f(){
        var j=a.getStart(),h=c.getBody(),g,k,o,s,q,i,l,m=-16777215,p,r;
        if(!j||j.nodeType!==1||!b.forced_root_block){
            return
        }while(j&&j!=h){
            if(d[j.nodeName]){
                return
            }
            j=j.parentNode
        }
        g=a.getRng();
        if(g.setStart){
            k=g.startContainer;
            o=g.startOffset;
            s=g.endContainer;
            q=g.endOffset
        }else{
            if(g.item){
                j=g.item(0);
                g=c.getDoc().body.createTextRange();
                g.moveToElementText(j)
            }
            r=g.parentElement().ownerDocument===c.getDoc();
            tmpRng=g.duplicate();
            tmpRng.collapse(true);
            o=tmpRng.move("character",m)*-1;
            if(!tmpRng.collapsed){
                tmpRng=g.duplicate();
                tmpRng.collapse(false);
                q=(tmpRng.move("character",m)*-1)-o
            }
        }
        j=h.firstChild;
        while(j){
            if(j.nodeType===3||(j.nodeType==1&&!d[j.nodeName])){
                if(j.nodeType===3&&j.nodeValue.length==0){
                    l=j;
                    j=j.nextSibling;
                    e.remove(l);
                    continue
                }
                if(!i){
                    i=e.create(b.forced_root_block);
                    j.parentNode.insertBefore(i,j);
                    p=true
                }
                l=j;
                j=j.nextSibling;
                i.appendChild(l)
            }else{
                i=null;
                j=j.nextSibling
            }
        }
        if(p){
            if(g.setStart){
                g.setStart(k,o);
                g.setEnd(s,q);
                a.setRng(g)
            }else{
                if(r){
                    try{
                        g=c.getDoc().body.createTextRange();
                        g.moveToElementText(h);
                        g.collapse(true);
                        g.moveStart("character",o);
                        if(q>0){
                            g.moveEnd("character",q)
                        }
                        g.select()
                    }catch(n){}
                }
            }
            c.nodeChanged()
        }
    }
    if(b.forced_root_block){
        c.onKeyUp.add(f);
        c.onNodeChange.add(f)
    }
};
(function(c){
    var b=c.DOM,a=c.dom.Event,d=c.each,e=c.extend;
    c.create("tinymce.ControlManager",{
        ControlManager:function(f,j){
            var h=this,g;
            j=j||{};
            
            h.editor=f;
            h.controls={};
            
            h.onAdd=new c.util.Dispatcher(h);
            h.onPostRender=new c.util.Dispatcher(h);
            h.prefix=j.prefix||f.id+"_";
            h._cls={};
            
            h.onPostRender.add(function(){
                d(h.controls,function(i){
                    i.postRender()
                })
            })
        },
        get:function(f){
            return this.controls[this.prefix+f]||this.controls[f]
        },
        setActive:function(h,f){
            var g=null;
            if(g=this.get(h)){
                g.setActive(f)
            }
            return g
        },
        setDisabled:function(h,f){
            var g=null;
            if(g=this.get(h)){
                g.setDisabled(f)
            }
            return g
        },
        add:function(g){
            var f=this;
            if(g){
                f.controls[g.id]=g;
                f.onAdd.dispatch(g,f)
            }
            return g
        },
        createControl:function(j){
            var o,k,g,h=this,m=h.editor,n,f;
            if(!h.controlFactories){
                h.controlFactories=[];
                d(m.plugins,function(i){
                    if(i.createControl){
                        h.controlFactories.push(i)
                    }
                })
            }
            n=h.controlFactories;
            for(k=0,g=n.length;k<g;k++){
                o=n[k].createControl(j,h);
                if(o){
                    return h.add(o)
                }
            }
            if(j==="|"||j==="separator"){
                return h.createSeparator()
            }
            if(m.buttons&&(o=m.buttons[j])){
                return h.createButton(j,o)
            }
            return h.add(o)
        },
        createDropMenu:function(f,n,h){
            var m=this,i=m.editor,j,g,k,l;
            n=e({
                "class":"mceDropDown",
                constrain:i.settings.constrain_menus
            },n);
            n["class"]=n["class"]+" "+i.getParam("skin")+"Skin";
            if(k=i.getParam("skin_variant")){
                n["class"]+=" "+i.getParam("skin")+"Skin"+k.substring(0,1).toUpperCase()+k.substring(1)
            }
            n["class"]+=i.settings.directionality=="rtl"?" mceRtl":"";
            f=m.prefix+f;
            l=h||m._cls.dropmenu||c.ui.DropMenu;
            j=m.controls[f]=new l(f,n);
            j.onAddItem.add(function(r,q){
                var p=q.settings;
                p.title=i.getLang(p.title,p.title);
                if(!p.onclick){
                    p.onclick=function(o){
                        if(p.cmd){
                            i.execCommand(p.cmd,p.ui||false,p.value)
                        }
                    }
                }
            });
            i.onRemove.add(function(){
                j.destroy()
            });
            if(c.isIE){
                j.onShowMenu.add(function(){
                    i.focus();
                    g=i.selection.getBookmark(1)
                });
                j.onHideMenu.add(function(){
                    if(g){
                        i.selection.moveToBookmark(g);
                        g=0
                    }
                })
            }
            return m.add(j)
        },
        createListBox:function(f,n,h){
            var l=this,j=l.editor,i,k,m;
            if(l.get(f)){
                return null
            }
            n.title=j.translate(n.title);
            n.scope=n.scope||j;
            if(!n.onselect){
                n.onselect=function(o){
                    j.execCommand(n.cmd,n.ui||false,o||n.value)
                }
            }
            n=e({
                title:n.title,
                "class":"mce_"+f,
                scope:n.scope,
                control_manager:l
            },n);
            f=l.prefix+f;
            function g(o){
                return o.settings.use_accessible_selects&&!c.isGecko
            }
            if(j.settings.use_native_selects||g(j)){
                k=new c.ui.NativeListBox(f,n)
            }else{
                m=h||l._cls.listbox||c.ui.ListBox;
                k=new m(f,n,j)
            }
            l.controls[f]=k;
            if(c.isWebKit){
                k.onPostRender.add(function(p,o){
                    a.add(o,"mousedown",function(){
                        j.bookmark=j.selection.getBookmark(1)
                    });
                    a.add(o,"focus",function(){
                        j.selection.moveToBookmark(j.bookmark);
                        j.bookmark=null
                    })
                })
            }
            if(k.hideMenu){
                j.onMouseDown.add(k.hideMenu,k)
            }
            return l.add(k)
        },
        createButton:function(m,i,l){
            var h=this,g=h.editor,j,k,f;
            if(h.get(m)){
                return null
            }
            i.title=g.translate(i.title);
            i.label=g.translate(i.label);
            i.scope=i.scope||g;
            if(!i.onclick&&!i.menu_button){
                i.onclick=function(){
                    g.execCommand(i.cmd,i.ui||false,i.value)
                }
            }
            i=e({
                title:i.title,
                "class":"mce_"+m,
                unavailable_prefix:g.getLang("unavailable",""),
                scope:i.scope,
                control_manager:h
            },i);
            m=h.prefix+m;
            if(i.menu_button){
                f=l||h._cls.menubutton||c.ui.MenuButton;
                k=new f(m,i,g);
                g.onMouseDown.add(k.hideMenu,k)
            }else{
                f=h._cls.button||c.ui.Button;
                k=new f(m,i,g)
            }
            return h.add(k)
        },
        createMenuButton:function(h,f,g){
            f=f||{};
    
            f.menu_button=1;
            return this.createButton(h,f,g)
        },
        createSplitButton:function(m,i,l){
            var h=this,g=h.editor,j,k,f;
            if(h.get(m)){
                return null
            }
            i.title=g.translate(i.title);
            i.scope=i.scope||g;
            if(!i.onclick){
                i.onclick=function(n){
                    g.execCommand(i.cmd,i.ui||false,n||i.value)
                }
            }
            if(!i.onselect){
                i.onselect=function(n){
                    g.execCommand(i.cmd,i.ui||false,n||i.value)
                }
            }
            i=e({
                title:i.title,
                "class":"mce_"+m,
                scope:i.scope,
                control_manager:h
            },i);
            m=h.prefix+m;
            f=l||h._cls.splitbutton||c.ui.SplitButton;
            k=h.add(new f(m,i,g));
            g.onMouseDown.add(k.hideMenu,k);
            return k
        },
        createColorSplitButton:function(f,n,h){
            var l=this,j=l.editor,i,k,m,g;
            if(l.get(f)){
                return null
            }
            n.title=j.translate(n.title);
            n.scope=n.scope||j;
            if(!n.onclick){
                n.onclick=function(o){
                    if(c.isIE){
                        g=j.selection.getBookmark(1)
                    }
                    j.execCommand(n.cmd,n.ui||false,o||n.value)
                }
            }
            if(!n.onselect){
                n.onselect=function(o){
                    j.execCommand(n.cmd,n.ui||false,o||n.value)
                }
            }
            n=e({
                title:n.title,
                "class":"mce_"+f,
                menu_class:j.getParam("skin")+"Skin",
                scope:n.scope,
                more_colors_title:j.getLang("more_colors")
            },n);
            f=l.prefix+f;
            m=h||l._cls.colorsplitbutton||c.ui.ColorSplitButton;
            k=new m(f,n,j);
            j.onMouseDown.add(k.hideMenu,k);
            j.onRemove.add(function(){
                k.destroy()
            });
            if(c.isIE){
                k.onShowMenu.add(function(){
                    j.focus();
                    g=j.selection.getBookmark(1)
                });
                k.onHideMenu.add(function(){
                    if(g){
                        j.selection.moveToBookmark(g);
                        g=0
                    }
                })
            }
            return l.add(k)
        },
        createToolbar:function(k,h,j){
            var i,g=this,f;
            k=g.prefix+k;
            f=j||g._cls.toolbar||c.ui.Toolbar;
            i=new f(k,h,g.editor);
            if(g.get(k)){
                return null
            }
            return g.add(i)
        },
        createToolbarGroup:function(k,h,j){
            var i,g=this,f;
            k=g.prefix+k;
            f=j||this._cls.toolbarGroup||c.ui.ToolbarGroup;
            i=new f(k,h,g.editor);
            if(g.get(k)){
                return null
            }
            return g.add(i)
        },
        createSeparator:function(g){
            var f=g||this._cls.separator||c.ui.Separator;
            return new f()
        },
        setControlType:function(g,f){
            return this._cls[g.toLowerCase()]=f
        },
        destroy:function(){
            d(this.controls,function(f){
                f.destroy()
            });
            this.controls=null
        }
    })
})(tinymce);
(function(d){
    var a=d.util.Dispatcher,e=d.each,c=d.isIE,b=d.isOpera;
    d.create("tinymce.WindowManager",{
        WindowManager:function(f){
            var g=this;
            g.editor=f;
            g.onOpen=new a(g);
            g.onClose=new a(g);
            g.params={};
            
            g.features={}
        },
        open:function(z,h){
            var v=this,k="",n,m,i=v.editor.settings.dialog_type=="modal",q,o,j,g=d.DOM.getViewPort(),r;
            z=z||{};
        
            h=h||{};
        
            o=b?g.w:screen.width;
            j=b?g.h:screen.height;
            z.name=z.name||"mc_"+new Date().getTime();
            z.width=parseInt(z.width||320);
            z.height=parseInt(z.height||240);
            z.resizable=true;
            z.left=z.left||parseInt(o/2)-(z.width/2);
            z.top=z.top||parseInt(j/2)-(z.height/2);
            h.inline=false;
            h.mce_width=z.width;
            h.mce_height=z.height;
            h.mce_auto_focus=z.auto_focus;
            if(i){
                if(c){
                    z.center=true;
                    z.help=false;
                    z.dialogWidth=z.width+"px";
                    z.dialogHeight=z.height+"px";
                    z.scroll=z.scrollbars||false
                }
            }
            e(z,function(p,f){
                if(d.is(p,"boolean")){
                    p=p?"yes":"no"
                }
                if(!/^(name|url)$/.test(f)){
                    if(c&&i){
                        k+=(k?";":"")+f+":"+p
                    }else{
                        k+=(k?",":"")+f+"="+p
                    }
                }
            });
            v.features=z;
            v.params=h;
            v.onOpen.dispatch(v,z,h);
            r=z.url||z.file;
            r=d._addVer(r);
            try{
                if(c&&i){
                    q=1;
                    window.showModalDialog(r,window,k)
                }else{
                    q=window.open(r,z.name,k)
                }
            }catch(l){}
            if(!q){
                alert(v.editor.getLang("popup_blocked"))
            }
        },
        close:function(f){
            f.close();
            this.onClose.dispatch(this)
        },
        createInstance:function(i,h,g,m,l,k){
            var j=d.resolve(i);
            return new j(h,g,m,l,k)
        },
        confirm:function(h,f,i,g){
            g=g||window;
            f.call(i||this,g.confirm(this._decode(this.editor.getLang(h,h))))
        },
        alert:function(h,f,j,g){
            var i=this;
            g=g||window;
            g.alert(i._decode(i.editor.getLang(h,h)));
            if(f){
                f.call(j||i)
            }
        },
        resizeBy:function(f,g,h){
            h.resizeBy(f,g)
        },
        _decode:function(f){
            return d.DOM.decode(f).replace(/\\n/g,"\n")
        }
    })
}(tinymce));
(function(a){
    a.Formatter=function(aa){
        var Q={},T=a.each,c=aa.dom,r=aa.selection,t=a.dom.TreeWalker,N=new a.dom.RangeUtils(c),d=aa.schema.isValidChild,H=c.isBlock,m=aa.settings.forced_root_block,s=c.nodeIndex,G="\uFEFF",e=/^(src|href|style)$/,X=false,C=true,P,D,x=c.getContentEditable;
        function A(ab){
            return ab instanceof Array
        }
        function n(ac,ab){
            return c.getParents(ac,ab,c.getRoot())
        }
        function b(ab){
            return ab.nodeType===1&&ab.id==="_mce_caret"
        }
        function j(){
            l({
                alignleft:[{
                    selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li",
                    styles:{
                        textAlign:"left"
                    },
                    defaultBlock:"div"
                },{
                    selector:"img,table",
                    collapsed:false,
                    styles:{
                        "float":"left"
                    }
                }],
                aligncenter:[{
                    selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li",
                    styles:{
                        textAlign:"center"
                    },
                    defaultBlock:"div"
                },{
                    selector:"img",
                    collapsed:false,
                    styles:{
                        display:"block",
                        marginLeft:"auto",
                        marginRight:"auto"
                    }
                },{
                    selector:"table",
                    collapsed:false,
                    styles:{
                        marginLeft:"auto",
                        marginRight:"auto"
                    }
                }],
                alignright:[{
                    selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li",
                    styles:{
                        textAlign:"right"
                    },
                    defaultBlock:"div"
                },{
                    selector:"img,table",
                    collapsed:false,
                    styles:{
                        "float":"right"
                    }
                }],
                alignfull:[{
                    selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li",
                    styles:{
                        textAlign:"justify"
                    },
                    defaultBlock:"div"
                }],
                bold:[{
                    inline:"strong",
                    remove:"all"
                },{
                    inline:"span",
                    styles:{
                        fontWeight:"bold"
                    }
                },{
                    inline:"b",
                    remove:"all"
                }],
                italic:[{
                    inline:"em",
                    remove:"all"
                },{
                    inline:"span",
                    styles:{
                        fontStyle:"italic"
                    }
                },{
                    inline:"i",
                    remove:"all"
                }],
                underline:[{
                    inline:"span",
                    styles:{
                        textDecoration:"underline"
                    },
                    exact:true
                },{
                    inline:"u",
                    remove:"all"
                }],
                strikethrough:[{
                    inline:"span",
                    styles:{
                        textDecoration:"line-through"
                    },
                    exact:true
                },{
                    inline:"strike",
                    remove:"all"
                }],
                forecolor:{
                    inline:"span",
                    styles:{
                        color:"%value"
                    },
                    wrap_links:false
                },
                hilitecolor:{
                    inline:"span",
                    styles:{
                        backgroundColor:"%value"
                    },
                    wrap_links:false
                },
                fontname:{
                    inline:"span",
                    styles:{
                        fontFamily:"%value"
                    }
                },
                fontsize:{
                    inline:"span",
                    styles:{
                        fontSize:"%value"
                    }
                },
                fontsize_class:{
                    inline:"span",
                    attributes:{
                        "class":"%value"
                    }
                },
                blockquote:{
                    block:"blockquote",
                    wrapper:1,
                    remove:"all"
                },
                subscript:{
                    inline:"sub"
                },
                superscript:{
                    inline:"sup"
                },
                link:{
                    inline:"a",
                    selector:"a",
                    remove:"all",
                    split:true,
                    deep:true,
                    onmatch:function(ab){
                        return true
                    },
                    onformat:function(ad,ab,ac){
                        T(ac,function(af,ae){
                            c.setAttrib(ad,ae,af)
                        })
                    }
                },
                removeformat:[{
                    selector:"b,strong,em,i,font,u,strike",
                    remove:"all",
                    split:true,
                    expand:false,
                    block_expand:true,
                    deep:true
                },{
                    selector:"span",
                    attributes:["style","class"],
                    remove:"empty",
                    split:true,
                    expand:false,
                    deep:true
                },{
                    selector:"*",
                    attributes:["style","class"],
                    split:false,
                    expand:false,
                    deep:true
                }]
            });
            T("p h1 h2 h3 h4 h5 h6 div address pre div code dt dd samp".split(/\s/),function(ab){
                l(ab,{
                    block:ab,
                    remove:"all"
                })
            });
            l(aa.settings.formats)
        }
        function W(){
            aa.addShortcut("ctrl+b","bold_desc","Bold");
            aa.addShortcut("ctrl+i","italic_desc","Italic");
            aa.addShortcut("ctrl+u","underline_desc","Underline");
            for(var ab=1;ab<=6;ab++){
                aa.addShortcut("ctrl+"+ab,"",["FormatBlock",false,"h"+ab])
            }
            aa.addShortcut("ctrl+7","",["FormatBlock",false,"p"]);
            aa.addShortcut("ctrl+8","",["FormatBlock",false,"div"]);
            aa.addShortcut("ctrl+9","",["FormatBlock",false,"address"])
        }
        function V(ab){
            return ab?Q[ab]:Q
        }
        function l(ab,ac){
            if(ab){
                if(typeof(ab)!=="string"){
                    T(ab,function(ae,ad){
                        l(ad,ae)
                    })
                }else{
                    ac=ac.length?ac:[ac];
                    T(ac,function(ad){
                        if(ad.deep===D){
                            ad.deep=!ad.selector
                        }
                        if(ad.split===D){
                            ad.split=!ad.selector||ad.inline
                        }
                        if(ad.remove===D&&ad.selector&&!ad.inline){
                            ad.remove="none"
                        }
                        if(ad.selector&&ad.inline){
                            ad.mixed=true;
                            ad.block_expand=true
                        }
                        if(typeof(ad.classes)==="string"){
                            ad.classes=ad.classes.split(/\s+/)
                        }
                    });
                    Q[ab]=ac
                }
            }
        }
        var i=function(ac){
            var ab;
            aa.dom.getParent(ac,function(ad){
                ab=aa.dom.getStyle(ad,"text-decoration");
                return ab&&ab!=="none"
            });
            return ab
        };
    
        var L=function(ab){
            var ac;
            if(ab.nodeType===1&&ab.parentNode&&ab.parentNode.nodeType===1){
                ac=i(ab.parentNode);
                if(aa.dom.getStyle(ab,"color")&&ac){
                    aa.dom.setStyle(ab,"text-decoration",ac)
                }else{
                    if(aa.dom.getStyle(ab,"textdecoration")===ac){
                        aa.dom.setStyle(ab,"text-decoration",null)
                    }
                }
            }
        };

        function Y(ae,al,ag){
            var ah=V(ae),am=ah[0],ak,ac,aj,ai=r.isCollapsed();
            function ab(aq,ap){
                ap=ap||am;
                if(aq){
                    if(ap.onformat){
                        ap.onformat(aq,ap,al,ag)
                    }
                    T(ap.styles,function(at,ar){
                        c.setStyle(aq,ar,q(at,al))
                    });
                    T(ap.attributes,function(at,ar){
                        c.setAttrib(aq,ar,q(at,al))
                    });
                    T(ap.classes,function(ar){
                        ar=q(ar,al);
                        if(!c.hasClass(aq,ar)){
                            c.addClass(aq,ar)
                        }
                    })
                }
            }
            function af(){
                function ar(ay,aw){
                    var ax=new t(aw);
                    for(ag=ax.current();ag;ag=ax.prev()){
                        if(ag.childNodes.length>1||ag==ay||ag.tagName=="BR"){
                            return ag
                        }
                    }
                }
                var aq=aa.selection.getRng();
                var av=aq.startContainer;
                var ap=aq.endContainer;
                if(av!=ap&&aq.endOffset===0){
                    var au=ar(av,ap);
                    var at=au.nodeType==3?au.length:au.childNodes.length;
                    aq.setEnd(au,at)
                }
                return aq
            }
            function ad(at,ay,aw,av,aq){
                var ap=[],ar=-1,ax,aA=-1,au=-1,az;
                T(at.childNodes,function(aC,aB){
                    if(aC.nodeName==="UL"||aC.nodeName==="OL"){
                        ar=aB;
                        ax=aC;
                        return false
                    }
                });
                T(at.childNodes,function(aC,aB){
                    if(aC.nodeName==="SPAN"&&c.getAttrib(aC,"data-mce-type")=="bookmark"){
                        if(aC.id==ay.id+"_start"){
                            aA=aB
                        }else{
                            if(aC.id==ay.id+"_end"){
                                au=aB
                            }
                        }
                    }
                });
                if(ar<=0||(aA<ar&&au>ar)){
                    T(a.grep(at.childNodes),aq);
                    return 0
                }else{
                    az=c.clone(aw,X);
                    T(a.grep(at.childNodes),function(aC,aB){
                        if((aA<ar&&aB<ar)||(aA>ar&&aB>ar)){
                            ap.push(aC);
                            aC.parentNode.removeChild(aC)
                        }
                    });
                    if(aA<ar){
                        at.insertBefore(az,ax)
                    }else{
                        if(aA>ar){
                            at.insertBefore(az,ax.nextSibling)
                        }
                    }
                    av.push(az);
                    T(ap,function(aB){
                        az.appendChild(aB)
                    });
                    return az
                }
            }
            function an(aq,at,aw){
                var ap=[],av,ar,au=true;
                av=am.inline||am.block;
                ar=c.create(av);
                ab(ar);
                N.walk(aq,function(ax){
                    var ay;
                    function az(aA){
                        var aF,aD,aB,aC,aE;
                        aE=au;
                        aF=aA.nodeName.toLowerCase();
                        aD=aA.parentNode.nodeName.toLowerCase();
                        if(aA.nodeType===1&&x(aA)){
                            aE=au;
                            au=x(aA)==="true";
                            aC=true
                        }
                        if(g(aF,"br")){
                            ay=0;
                            if(am.block){
                                c.remove(aA)
                            }
                            return
                        }
                        if(am.wrapper&&y(aA,ae,al)){
                            ay=0;
                            return
                        }
                        if(au&&!aC&&am.block&&!am.wrapper&&I(aF)){
                            aA=c.rename(aA,av);
                            ab(aA);
                            ap.push(aA);
                            ay=0;
                            return
                        }
                        if(am.selector){
                            T(ah,function(aG){
                                if("collapsed" in aG&&aG.collapsed!==ai){
                                    return
                                }
                                if(c.is(aA,aG.selector)&&!b(aA)){
                                    ab(aA,aG);
                                    aB=true
                                }
                            });
                            if(!am.inline||aB){
                                ay=0;
                                return
                            }
                        }
                        if(au&&!aC&&d(av,aF)&&d(aD,av)&&!(!aw&&aA.nodeType===3&&aA.nodeValue.length===1&&aA.nodeValue.charCodeAt(0)===65279)&&!b(aA)){
                            if(!ay){
                                ay=c.clone(ar,X);
                                aA.parentNode.insertBefore(ay,aA);
                                ap.push(ay)
                            }
                            ay.appendChild(aA)
                        }else{
                            if(aF=="li"&&at){
                                ay=ad(aA,at,ar,ap,az)
                            }else{
                                ay=0;
                                T(a.grep(aA.childNodes),az);
                                if(aC){
                                    au=aE
                                }
                                ay=0
                            }
                        }
                    }
                    T(ax,az)
                });
                if(am.wrap_links===false){
                    T(ap,function(ax){
                        function ay(aC){
                            var aB,aA,az;
                            if(aC.nodeName==="A"){
                                aA=c.clone(ar,X);
                                ap.push(aA);
                                az=a.grep(aC.childNodes);
                                for(aB=0;aB<az.length;aB++){
                                    aA.appendChild(az[aB])
                                }
                                aC.appendChild(aA)
                            }
                            T(a.grep(aC.childNodes),ay)
                        }
                        ay(ax)
                    })
                }
                T(ap,function(az){
                    var ax;
                    function aA(aC){
                        var aB=0;
                        T(aC.childNodes,function(aD){
                            if(!f(aD)&&!K(aD)){
                                aB++
                            }
                        });
                        return aB
                    }
                    function ay(aB){
                        var aD,aC;
                        T(aB.childNodes,function(aE){
                            if(aE.nodeType==1&&!K(aE)&&!b(aE)){
                                aD=aE;
                                return X
                            }
                        });
                        if(aD&&h(aD,am)){
                            aC=c.clone(aD,X);
                            ab(aC);
                            c.replace(aC,aB,C);
                            c.remove(aD,1)
                        }
                        return aC||aB
                    }
                    ax=aA(az);
                    if((ap.length>1||!H(az))&&ax===0){
                        c.remove(az,1);
                        return
                    }
                    if(am.inline||am.wrapper){
                        if(!am.exact&&ax===1){
                            az=ay(az)
                        }
                        T(ah,function(aB){
                            T(c.select(aB.inline,az),function(aD){
                                var aC;
                                if(aB.wrap_links===false){
                                    aC=aD.parentNode;
                                    do{
                                        if(aC.nodeName==="A"){
                                            return
                                        }
                                    }while(aC=aC.parentNode)
                                }
                                Z(aB,al,aD,aB.exact?aD:null)
                            })
                        });
                        if(y(az.parentNode,ae,al)){
                            c.remove(az,1);
                            az=0;
                            return C
                        }
                        if(am.merge_with_parents){
                            c.getParent(az.parentNode,function(aB){
                                if(y(aB,ae,al)){
                                    c.remove(az,1);
                                    az=0;
                                    return C
                                }
                            })
                        }
                        if(az&&am.merge_siblings!==false){
                            az=u(E(az),az);
                            az=u(az,E(az,C))
                        }
                    }
                })
            }
            if(am){
                if(ag){
                    if(ag.nodeType){
                        ac=c.createRng();
                        ac.setStartBefore(ag);
                        ac.setEndAfter(ag);
                        an(p(ac,ah),null,true)
                    }else{
                        an(ag,null,true)
                    }
                }else{
                    if(!ai||!am.inline||c.select("td.mceSelected,th.mceSelected").length){
                        var ao=aa.selection.getNode();
                        if(!m&&ah[0].defaultBlock&&!c.getParent(ao,c.isBlock)){
                            Y(ah[0].defaultBlock)
                        }
                        aa.selection.setRng(af());
                        ak=r.getBookmark();
                        an(p(r.getRng(C),ah),ak);
                        if(am.styles&&(am.styles.color||am.styles.textDecoration)){
                            a.walk(ao,L,"childNodes");
                            L(ao)
                        }
                        r.moveToBookmark(ak);
                        R(r.getRng(C));
                        aa.nodeChanged()
                    }else{
                        U("apply",ae,al)
                    }
                }
            }
        }
        function B(ad,am,af){
            var ag=V(ad),ao=ag[0],ak,aj,ac,al=true;
            function ae(av){
                var au,at,ar,aq,ax,aw;
                if(av.nodeType===1&&x(av)){
                    ax=al;
                    al=x(av)==="true";
                    aw=true
                }
                au=a.grep(av.childNodes);
                if(al&&!aw){
                    for(at=0,ar=ag.length;at<ar;at++){
                        if(Z(ag[at],am,av,av)){
                            break
                        }
                    }
                }
                if(ao.deep){
                    if(au.length){
                        for(at=0,ar=au.length;at<ar;at++){
                            ae(au[at])
                        }
                        if(aw){
                            al=ax
                        }
                    }
                }
            }
            function ah(aq){
                var ar;
                T(n(aq.parentNode).reverse(),function(at){
                    var au;
                    if(!ar&&at.id!="_start"&&at.id!="_end"){
                        au=y(at,ad,am);
                        if(au&&au.split!==false){
                            ar=at
                        }
                    }
                });
                return ar
            }
            function ab(au,aq,aw,az){
                var aA,ay,ax,at,av,ar;
                if(au){
                    ar=au.parentNode;
                    for(aA=aq.parentNode;aA&&aA!=ar;aA=aA.parentNode){
                        ay=c.clone(aA,X);
                        for(av=0;av<ag.length;av++){
                            if(Z(ag[av],am,ay,ay)){
                                ay=0;
                                break
                            }
                        }
                        if(ay){
                            if(ax){
                                ay.appendChild(ax)
                            }
                            if(!at){
                                at=ay
                            }
                            ax=ay
                        }
                    }
                    if(az&&(!ao.mixed||!H(au))){
                        aq=c.split(au,aq)
                    }
                    if(ax){
                        aw.parentNode.insertBefore(ax,aw);
                        at.appendChild(aw)
                    }
                }
                return aq
            }
            function an(aq){
                return ab(ah(aq),aq,aq,true)
            }
            function ai(at){
                var ar=c.get(at?"_start":"_end"),aq=ar[at?"firstChild":"lastChild"];
                if(K(aq)){
                    aq=aq[at?"firstChild":"lastChild"]
                }
                c.remove(ar,true);
                return aq
            }
            function ap(aq){
                var at,au,ar;
                aq=p(aq,ag,C);
                if(ao.split){
                    at=M(aq,C);
                    au=M(aq);
                    if(at!=au){
                        if(/^(TR|TD)$/.test(at.nodeName)&&at.firstChild){
                            at=(at.nodeName=="TD"?at.firstChild:at.firstChild.firstChild)||at
                        }
                        at=S(at,"span",{
                            id:"_start",
                            "data-mce-type":"bookmark"
                        });
                        au=S(au,"span",{
                            id:"_end",
                            "data-mce-type":"bookmark"
                        });
                        an(at);
                        an(au);
                        at=ai(C);
                        au=ai()
                    }else{
                        at=au=an(at)
                    }
                    aq.startContainer=at.parentNode;
                    aq.startOffset=s(at);
                    aq.endContainer=au.parentNode;
                    aq.endOffset=s(au)+1
                }
                N.walk(aq,function(av){
                    T(av,function(aw){
                        ae(aw);
                        if(aw.nodeType===1&&aa.dom.getStyle(aw,"text-decoration")==="underline"&&aw.parentNode&&i(aw.parentNode)==="underline"){
                            Z({
                                deep:false,
                                exact:true,
                                inline:"span",
                                styles:{
                                    textDecoration:"underline"
                                }
                            },null,aw)
                        }
                    })
                })
            }
            if(af){
                if(af.nodeType){
                    ac=c.createRng();
                    ac.setStartBefore(af);
                    ac.setEndAfter(af);
                    ap(ac)
                }else{
                    ap(af)
                }
                return
            }
            if(!r.isCollapsed()||!ao.inline||c.select("td.mceSelected,th.mceSelected").length){
                ak=r.getBookmark();
                ap(r.getRng(C));
                r.moveToBookmark(ak);
                if(ao.inline&&k(ad,am,r.getStart())){
                    R(r.getRng(true))
                }
                aa.nodeChanged()
            }else{
                U("remove",ad,am)
            }
        }
        function F(ac,ae,ad){
            var ab=V(ac);
            if(k(ac,ae,ad)&&(!("toggle" in ab[0])||ab[0].toggle)){
                B(ac,ae,ad)
            }else{
                Y(ac,ae,ad)
            }
        }
        function y(ac,ab,ah,af){
            var ad=V(ab),ai,ag,ae;
            function aj(an,ap,aq){
                var am,ao,ak=ap[aq],al;
                if(ap.onmatch){
                    return ap.onmatch(an,ap,aq)
                }
                if(ak){
                    if(ak.length===D){
                        for(am in ak){
                            if(ak.hasOwnProperty(am)){
                                if(aq==="attributes"){
                                    ao=c.getAttrib(an,am)
                                }else{
                                    ao=O(an,am)
                                }
                                if(af&&!ao&&!ap.exact){
                                    return
                                }
                                if((!af||ap.exact)&&!g(ao,q(ak[am],ah))){
                                    return
                                }
                            }
                        }
                    }else{
                        for(al=0;al<ak.length;al++){
                            if(aq==="attributes"?c.getAttrib(an,ak[al]):O(an,ak[al])){
                                return ap
                            }
                        }
                    }
                }
                return ap
            }
            if(ad&&ac){
                for(ag=0;ag<ad.length;ag++){
                    ai=ad[ag];
                    if(h(ac,ai)&&aj(ac,ai,"attributes")&&aj(ac,ai,"styles")){
                        if(ae=ai.classes){
                            for(ag=0;ag<ae.length;ag++){
                                if(!c.hasClass(ac,ae[ag])){
                                    return
                                }
                            }
                        }
                        return ai
                    }
                }
            }
        }
        function k(ad,af,ae){
            var ac;
            function ab(ag){
                ag=c.getParent(ag,function(ah){
                    return !!y(ah,ad,af,true)
                });
                return y(ag,ad,af)
            }
            if(ae){
                return ab(ae)
            }
            ae=r.getNode();
            if(ab(ae)){
                return C
            }
            ac=r.getStart();
            if(ac!=ae){
                if(ab(ac)){
                    return C
                }
            }
            return X
        }
        function v(ai,ah){
            var af,ag=[],ae={},ad,ac,ab;
            af=r.getStart();
            c.getParent(af,function(al){
                var ak,aj;
                for(ak=0;ak<ai.length;ak++){
                    aj=ai[ak];
                    if(!ae[aj]&&y(al,aj,ah)){
                        ae[aj]=true;
                        ag.push(aj)
                    }
                }
            },c.getRoot());
            return ag
        }
        function z(af){
            var ah=V(af),ae,ad,ag,ac,ab;
            if(ah){
                ae=r.getStart();
                ad=n(ae);
                for(ac=ah.length-1;ac>=0;ac--){
                    ab=ah[ac].selector;
                    if(!ab){
                        return C
                    }
                    for(ag=ad.length-1;ag>=0;ag--){
                        if(c.is(ad[ag],ab)){
                            return C
                        }
                    }
                }
            }
            return X
        }
        function J(ab,ae,ac){
            var ad;
            if(!P){
                P={};
        
                ad={};
        
                aa.onNodeChange.addToTop(function(ag,af,ai){
                    var ah=n(ai),aj={};
            
                    T(P,function(ak,al){
                        T(ah,function(am){
                            if(y(am,al,{},ak.similar)){
                                if(!ad[al]){
                                    T(ak,function(an){
                                        an(true,{
                                            node:am,
                                            format:al,
                                            parents:ah
                                        })
                                    });
                                    ad[al]=ak
                                }
                                aj[al]=ak;
                                return false
                            }
                        })
                    });
                    T(ad,function(ak,al){
                        if(!aj[al]){
                            delete ad[al];
                            T(ak,function(am){
                                am(false,{
                                    node:ai,
                                    format:al,
                                    parents:ah
                                })
                            })
                        }
                    })
                })
            }
            T(ab.split(","),function(af){
                if(!P[af]){
                    P[af]=[];
                    P[af].similar=ac
                }
                P[af].push(ae)
            });
            return this
        }
        a.extend(this,{
            get:V,
            register:l,
            apply:Y,
            remove:B,
            toggle:F,
            match:k,
            matchAll:v,
            matchNode:y,
            canApply:z,
            formatChanged:J
        });
        j();
        W();
        function h(ab,ac){
            if(g(ab,ac.inline)){
                return C
            }
            if(g(ab,ac.block)){
                return C
            }
            if(ac.selector){
                return c.is(ab,ac.selector)
            }
        }
        function g(ac,ab){
            ac=ac||"";
            ab=ab||"";
            ac=""+(ac.nodeName||ac);
            ab=""+(ab.nodeName||ab);
            return ac.toLowerCase()==ab.toLowerCase()
        }
        function O(ac,ab){
            var ad=c.getStyle(ac,ab);
            if(ab=="color"||ab=="backgroundColor"){
                ad=c.toHex(ad)
            }
            if(ab=="fontWeight"&&ad==700){
                ad="bold"
            }
            return""+ad
        }
        function q(ab,ac){
            if(typeof(ab)!="string"){
                ab=ab(ac)
            }else{
                if(ac){
                    ab=ab.replace(/%(\w+)/g,function(ae,ad){
                        return ac[ad]||ae
                    })
                }
            }
            return ab
        }
        function f(ab){
            return ab&&ab.nodeType===3&&/^([\t \r\n]+|)$/.test(ab.nodeValue)
        }
        function S(ad,ac,ab){
            var ae=c.create(ac,ab);
            ad.parentNode.insertBefore(ae,ad);
            ae.appendChild(ad);
            return ae
        }
        function p(ab,am,ae){
            var ap,an,ah,al,ad=ab.startContainer,ai=ab.startOffset,ar=ab.endContainer,ak=ab.endOffset;
            function ao(az){
                var au,ax,ay,aw,av,at;
                au=ax=az?ad:ar;
                av=az?"previousSibling":"nextSibling";
                at=c.getRoot();
                if(au.nodeType==3&&!f(au)){
                    if(az?ai>0:ak<au.nodeValue.length){
                        return au
                    }
                }
                for(;;){
                    if(!am[0].block_expand&&H(ax)){
                        return ax
                    }
                    for(aw=ax[av];aw;aw=aw[av]){
                        if(!K(aw)&&!f(aw)){
                            return ax
                        }
                    }
                    if(ax.parentNode==at){
                        au=ax;
                        break
                    }
                    ax=ax.parentNode
                }
                return au
            }
            function ag(at,au){
                if(au===D){
                    au=at.nodeType===3?at.length:at.childNodes.length
                }while(at&&at.hasChildNodes()){
                    at=at.childNodes[au];
                    if(at){
                        au=at.nodeType===3?at.length:at.childNodes.length
                    }
                }
                return{
                    node:at,
                    offset:au
                }
            }
            if(ad.nodeType==1&&ad.hasChildNodes()){
                an=ad.childNodes.length-1;
                ad=ad.childNodes[ai>an?an:ai];
                if(ad.nodeType==3){
                    ai=0
                }
            }
            if(ar.nodeType==1&&ar.hasChildNodes()){
                an=ar.childNodes.length-1;
                ar=ar.childNodes[ak>an?an:ak-1];
                if(ar.nodeType==3){
                    ak=ar.nodeValue.length
                }
            }
            function aq(au){
                var at=au;
                while(at){
                    if(at.nodeType===1&&x(at)){
                        return x(at)==="false"?at:au
                    }
                    at=at.parentNode
                }
                return au
            }
            function aj(au,ay,aA){
                var ax,av,az,at;
                function aw(aC,aE){
                    var aF,aB,aD=aC.nodeValue;
                    if(typeof(aE)=="undefined"){
                        aE=aA?aD.length:0
                    }
                    if(aA){
                        aF=aD.lastIndexOf(" ",aE);
                        aB=aD.lastIndexOf("\u00a0",aE);
                        aF=aF>aB?aF:aB;
                        if(aF!==-1&&!ae){
                            aF++
                        }
                    }else{
                        aF=aD.indexOf(" ",aE);
                        aB=aD.indexOf("\u00a0",aE);
                        aF=aF!==-1&&(aB===-1||aF<aB)?aF:aB
                    }
                    return aF
                }
                if(au.nodeType===3){
                    az=aw(au,ay);
                    if(az!==-1){
                        return{
                            container:au,
                            offset:az
                        }
                    }
                    at=au
                }
                ax=new t(au,c.getParent(au,H)||aa.getBody());
                while(av=ax[aA?"prev":"next"]()){
                    if(av.nodeType===3){
                        at=av;
                        az=aw(av);
                        if(az!==-1){
                            return{
                                container:av,
                                offset:az
                            }
                        }
                    }else{
                        if(H(av)){
                            break
                        }
                    }
                }
                if(at){
                    if(aA){
                        ay=0
                    }else{
                        ay=at.length
                    }
                    return{
                        container:at,
                        offset:ay
                    }
                }
            }
            function af(au,at){
                var av,aw,ay,ax;
                if(au.nodeType==3&&au.nodeValue.length===0&&au[at]){
                    au=au[at]
                }
                av=n(au);
                for(aw=0;aw<av.length;aw++){
                    for(ay=0;ay<am.length;ay++){
                        ax=am[ay];
                        if("collapsed" in ax&&ax.collapsed!==ab.collapsed){
                            continue
                        }
                        if(c.is(av[aw],ax.selector)){
                            return av[aw]
                        }
                    }
                }
                return au
            }
            function ac(au,at,aw){
                var av;
                if(!am[0].wrapper){
                    av=c.getParent(au,am[0].block)
                }
                if(!av){
                    av=c.getParent(au.nodeType==3?au.parentNode:au,H)
                }
                if(av&&am[0].wrapper){
                    av=n(av,"ul,ol").reverse()[0]||av
                }
                if(!av){
                    av=au;
                    while(av[at]&&!H(av[at])){
                        av=av[at];
                        if(g(av,"br")){
                            break
                        }
                    }
                }
                return av||au
            }
            ad=aq(ad);
            ar=aq(ar);
            if(K(ad.parentNode)||K(ad)){
                ad=K(ad)?ad:ad.parentNode;
                ad=ad.nextSibling||ad;
                if(ad.nodeType==3){
                    ai=0
                }
            }
            if(K(ar.parentNode)||K(ar)){
                ar=K(ar)?ar:ar.parentNode;
                ar=ar.previousSibling||ar;
                if(ar.nodeType==3){
                    ak=ar.length
                }
            }
            if(am[0].inline){
                if(ab.collapsed){
                    al=aj(ad,ai,true);
                    if(al){
                        ad=al.container;
                        ai=al.offset
                    }
                    al=aj(ar,ak);
                    if(al){
                        ar=al.container;
                        ak=al.offset
                    }
                }
                ah=ag(ar,ak);
                if(ah.node){
                    while(ah.node&&ah.offset===0&&ah.node.previousSibling){
                        ah=ag(ah.node.previousSibling)
                    }
                    if(ah.node&&ah.offset>0&&ah.node.nodeType===3&&ah.node.nodeValue.charAt(ah.offset-1)===" "){
                        if(ah.offset>1){
                            ar=ah.node;
                            ar.splitText(ah.offset-1)
                        }
                    }
                }
            }
            if(am[0].inline||am[0].block_expand){
                if(!am[0].inline||(ad.nodeType!=3||ai===0)){
                    ad=ao(true)
                }
                if(!am[0].inline||(ar.nodeType!=3||ak===ar.nodeValue.length)){
                    ar=ao()
                }
            }
            if(am[0].selector&&am[0].expand!==X&&!am[0].inline){
                ad=af(ad,"previousSibling");
                ar=af(ar,"nextSibling")
            }
            if(am[0].block||am[0].selector){
                ad=ac(ad,"previousSibling");
                ar=ac(ar,"nextSibling");
                if(am[0].block){
                    if(!H(ad)){
                        ad=ao(true)
                    }
                    if(!H(ar)){
                        ar=ao()
                    }
                }
            }
            if(ad.nodeType==1){
                ai=s(ad);
                ad=ad.parentNode
            }
            if(ar.nodeType==1){
                ak=s(ar)+1;
                ar=ar.parentNode
            }
            return{
                startContainer:ad,
                startOffset:ai,
                endContainer:ar,
                endOffset:ak
            }
        }
        function Z(ah,ag,ae,ab){
            var ad,ac,af;
            if(!h(ae,ah)){
                return X
            }
            if(ah.remove!="all"){
                T(ah.styles,function(aj,ai){
                    aj=q(aj,ag);
                    if(typeof(ai)==="number"){
                        ai=aj;
                        ab=0
                    }
                    if(!ab||g(O(ab,ai),aj)){
                        c.setStyle(ae,ai,"")
                    }
                    af=1
                });
                if(af&&c.getAttrib(ae,"style")==""){
                    ae.removeAttribute("style");
                    ae.removeAttribute("data-mce-style")
                }
                T(ah.attributes,function(ak,ai){
                    var aj;
                    ak=q(ak,ag);
                    if(typeof(ai)==="number"){
                        ai=ak;
                        ab=0
                    }
                    if(!ab||g(c.getAttrib(ab,ai),ak)){
                        if(ai=="class"){
                            ak=c.getAttrib(ae,ai);
                            if(ak){
                                aj="";
                                T(ak.split(/\s+/),function(al){
                                    if(/mce\w+/.test(al)){
                                        aj+=(aj?" ":"")+al
                                    }
                                });
                                if(aj){
                                    c.setAttrib(ae,ai,aj);
                                    return
                                }
                            }
                        }
                        if(ai=="class"){
                            ae.removeAttribute("className")
                        }
                        if(e.test(ai)){
                            ae.removeAttribute("data-mce-"+ai)
                        }
                        ae.removeAttribute(ai)
                    }
                });
                T(ah.classes,function(ai){
                    ai=q(ai,ag);
                    if(!ab||c.hasClass(ab,ai)){
                        c.removeClass(ae,ai)
                    }
                });
                ac=c.getAttribs(ae);
                for(ad=0;ad<ac.length;ad++){
                    if(ac[ad].nodeName.indexOf("_")!==0){
                        return X
                    }
                }
            }
            if(ah.remove!="none"){
                o(ae,ah);
                return C
            }
        }
        function o(ad,ae){
            var ab=ad.parentNode,ac;
            function af(ah,ag,ai){
                ah=E(ah,ag,ai);
                return !ah||(ah.nodeName=="BR"||H(ah))
            }
            if(ae.block){
                if(!m){
                    if(H(ad)&&!H(ab)){
                        if(!af(ad,X)&&!af(ad.firstChild,C,1)){
                            ad.insertBefore(c.create("br"),ad.firstChild)
                        }
                        if(!af(ad,C)&&!af(ad.lastChild,X,1)){
                            ad.appendChild(c.create("br"))
                        }
                    }
                }else{
                    if(ab==c.getRoot()){
                        if(!ae.list_block||!g(ad,ae.list_block)){
                            T(a.grep(ad.childNodes),function(ag){
                                if(d(m,ag.nodeName.toLowerCase())){
                                    if(!ac){
                                        ac=S(ag,m)
                                    }else{
                                        ac.appendChild(ag)
                                    }
                                }else{
                                    ac=0
                                }
                            })
                        }
                    }
                }
            }
            if(ae.selector&&ae.inline&&!g(ae.inline,ad)){
                return
            }
            c.remove(ad,1)
        }
        function E(ac,ab,ad){
            if(ac){
                ab=ab?"nextSibling":"previousSibling";
                for(ac=ad?ac:ac[ab];ac;ac=ac[ab]){
                    if(ac.nodeType==1||!f(ac)){
                        return ac
                    }
                }
            }
        }
        function K(ab){
            return ab&&ab.nodeType==1&&ab.getAttribute("data-mce-type")=="bookmark"
        }
        function u(af,ae){
            var ab,ad,ac;
            function ah(ak,aj){
                if(ak.nodeName!=aj.nodeName){
                    return X
                }
                function ai(am){
                    var an={};
            
                    T(c.getAttribs(am),function(ao){
                        var ap=ao.nodeName.toLowerCase();
                        if(ap.indexOf("_")!==0&&ap!=="style"){
                            an[ap]=c.getAttrib(am,ap)
                        }
                    });
                    return an
                }
                function al(ap,ao){
                    var an,am;
                    for(am in ap){
                        if(ap.hasOwnProperty(am)){
                            an=ao[am];
                            if(an===D){
                                return X
                            }
                            if(ap[am]!=an){
                                return X
                            }
                            delete ao[am]
                        }
                    }
                    for(am in ao){
                        if(ao.hasOwnProperty(am)){
                            return X
                        }
                    }
                    return C
                }
                if(!al(ai(ak),ai(aj))){
                    return X
                }
                if(!al(c.parseStyle(c.getAttrib(ak,"style")),c.parseStyle(c.getAttrib(aj,"style")))){
                    return X
                }
                return C
            }
            function ag(aj,ai){
                for(ad=aj;ad;ad=ad[ai]){
                    if(ad.nodeType==3&&ad.nodeValue.length!==0){
                        return aj
                    }
                    if(ad.nodeType==1&&!K(ad)){
                        return ad
                    }
                }
                return aj
            }
            if(af&&ae){
                af=ag(af,"previousSibling");
                ae=ag(ae,"nextSibling");
                if(ah(af,ae)){
                    for(ad=af.nextSibling;ad&&ad!=ae;){
                        ac=ad;
                        ad=ad.nextSibling;
                        af.appendChild(ac)
                    }
                    c.remove(ae);
                    T(a.grep(ae.childNodes),function(ai){
                        af.appendChild(ai)
                    });
                    return af
                }
            }
            return ae
        }
        function I(ab){
            return/^(h[1-6]|p|div|pre|address|dl|dt|dd)$/.test(ab)
        }
        function M(ac,ag){
            var ab,af,ad,ae;
            ab=ac[ag?"startContainer":"endContainer"];
            af=ac[ag?"startOffset":"endOffset"];
            if(ab.nodeType==1){
                ad=ab.childNodes.length-1;
                if(!ag&&af){
                    af--
                }
                ab=ab.childNodes[af>ad?ad:af]
            }
            if(ab.nodeType===3&&ag&&af>=ab.nodeValue.length){
                ab=new t(ab,aa.getBody()).next()||ab
            }
            if(ab.nodeType===3&&!ag&&af===0){
                ab=new t(ab,aa.getBody()).prev()||ab
            }
            return ab
        }
        function U(ak,ab,ai){
            var al="_mce_caret",ac=aa.settings.caret_debug;
            function ad(ap){
                var ao=c.create("span",{
                    id:al,
                    "data-mce-bogus":true,
                    style:ac?"color:red":""
                });
                if(ap){
                    ao.appendChild(aa.getDoc().createTextNode(G))
                }
                return ao
            }
            function aj(ap,ao){
                while(ap){
                    if((ap.nodeType===3&&ap.nodeValue!==G)||ap.childNodes.length>1){
                        return false
                    }
                    if(ao&&ap.nodeType===1){
                        ao.push(ap)
                    }
                    ap=ap.firstChild
                }
                return true
            }
            function ag(ao){
                while(ao){
                    if(ao.id===al){
                        return ao
                    }
                    ao=ao.parentNode
                }
            }
            function af(ao){
                var ap;
                if(ao){
                    ap=new t(ao,ao);
                    for(ao=ap.current();ao;ao=ap.next()){
                        if(ao.nodeType===3){
                            return ao
                        }
                    }
                }
            }
            function ae(aq,ap){
                var ar,ao;
                if(!aq){
                    aq=ag(r.getStart());
                    if(!aq){
                        while(aq=c.get(al)){
                            ae(aq,false)
                        }
                    }
                }else{
                    ao=r.getRng(true);
                    if(aj(aq)){
                        if(ap!==false){
                            ao.setStartBefore(aq);
                            ao.setEndBefore(aq)
                        }
                        c.remove(aq)
                    }else{
                        ar=af(aq);
                        if(ar.nodeValue.charAt(0)===G){
                            ar=ar.deleteData(0,1)
                        }
                        c.remove(aq,1)
                    }
                    r.setRng(ao)
                }
            }
            function ah(){
                var aq,ao,av,au,ar,ap,at;
                aq=r.getRng(true);
                au=aq.startOffset;
                ap=aq.startContainer;
                at=ap.nodeValue;
                ao=ag(r.getStart());
                if(ao){
                    av=af(ao)
                }
                if(at&&au>0&&au<at.length&&/\w/.test(at.charAt(au))&&/\w/.test(at.charAt(au-1))){
                    ar=r.getBookmark();
                    aq.collapse(true);
                    aq=p(aq,V(ab));
                    aq=N.split(aq);
                    Y(ab,ai,aq);
                    r.moveToBookmark(ar)
                }else{
                    if(!ao||av.nodeValue!==G){
                        ao=ad(true);
                        av=ao.firstChild;
                        aq.insertNode(ao);
                        au=1;
                        Y(ab,ai,ao)
                    }else{
                        Y(ab,ai,ao)
                    }
                    r.setCursorLocation(av,au)
                }
            }
            function am(){
                var ao=r.getRng(true),ap,ar,av,au,aq,ay,ax=[],at,aw;
                ap=ao.startContainer;
                ar=ao.startOffset;
                aq=ap;
                if(ap.nodeType==3){
                    if(ar!=ap.nodeValue.length||ap.nodeValue===G){
                        au=true
                    }
                    aq=aq.parentNode
                }while(aq){
                    if(y(aq,ab,ai)){
                        ay=aq;
                        break
                    }
                    if(aq.nextSibling){
                        au=true
                    }
                    ax.push(aq);
                    aq=aq.parentNode
                }
                if(!ay){
                    return
                }
                if(au){
                    av=r.getBookmark();
                    ao.collapse(true);
                    ao=p(ao,V(ab),true);
                    ao=N.split(ao);
                    B(ab,ai,ao);
                    r.moveToBookmark(av)
                }else{
                    aw=ad();
                    aq=aw;
                    for(at=ax.length-1;at>=0;at--){
                        aq.appendChild(c.clone(ax[at],false));
                        aq=aq.firstChild
                    }
                    aq.appendChild(c.doc.createTextNode(G));
                    aq=aq.firstChild;
                    c.insertAfter(aw,ay);
                    r.setCursorLocation(aq,1)
                }
            }
            function an(){
                var ap,ao,aq;
                ao=ag(r.getStart());
                if(ao&&!c.isEmpty(ao)){
                    a.walk(ao,function(ar){
                        if(ar.nodeType==1&&ar.id!==al&&!c.isEmpty(ar)){
                            c.setAttrib(ar,"data-mce-bogus",null)
                        }
                    },"childNodes")
                }
            }
            if(!self._hasCaretEvents){
                aa.onBeforeGetContent.addToTop(function(){
                    var ao=[],ap;
                    if(aj(ag(r.getStart()),ao)){
                        ap=ao.length;
                        while(ap--){
                            c.setAttrib(ao[ap],"data-mce-bogus","1")
                        }
                    }
                });
                a.each("onMouseUp onKeyUp".split(" "),function(ao){
                    aa[ao].addToTop(function(){
                        ae();
                        an()
                    })
                });
                aa.onKeyDown.addToTop(function(ao,aq){
                    var ap=aq.keyCode;
                    if(ap==8||ap==37||ap==39){
                        ae(ag(r.getStart()))
                    }
                    an()
                });
                r.onSetContent.add(an);
                self._hasCaretEvents=true
            }
            if(ak=="apply"){
                ah()
            }else{
                am()
            }
        }
        function R(ac){
            var ab=ac.startContainer,ai=ac.startOffset,ae,ah,ag,ad,af;
            if(ab.nodeType==3&&ai>=ab.nodeValue.length){
                ai=s(ab);
                ab=ab.parentNode;
                ae=true
            }
            if(ab.nodeType==1){
                ad=ab.childNodes;
                ab=ad[Math.min(ai,ad.length-1)];
                ah=new t(ab,c.getParent(ab,c.isBlock));
                if(ai>ad.length-1||ae){
                    ah.next()
                }
                for(ag=ah.current();ag;ag=ah.next()){
                    if(ag.nodeType==3&&!f(ag)){
                        af=c.create("a",null,G);
                        ag.parentNode.insertBefore(af,ag);
                        ac.setStart(ag,0);
                        r.setRng(ac);
                        c.remove(af);
                        return
                    }
                }
            }
        }
    }
})(tinymce);
tinymce.onAddEditor.add(function(e,a){
    var d,h,g,c=a.settings;
    function b(j,i){
        e.each(i,function(l,k){
            if(l){
                g.setStyle(j,k,l)
            }
        });
        g.rename(j,"span")
    }
    function f(i,j){
        g=i.dom;
        if(c.convert_fonts_to_spans){
            e.each(g.select("font,u,strike",j.node),function(k){
                d[k.nodeName.toLowerCase()](a.dom,k)
            })
        }
    }
    if(c.inline_styles){
        h=e.explode(c.font_size_legacy_values);
        d={
            font:function(j,i){
                b(i,{
                    backgroundColor:i.style.backgroundColor,
                    color:i.color,
                    fontFamily:i.face,
                    fontSize:h[parseInt(i.size,10)-1]
                })
            },
            u:function(j,i){
                b(i,{
                    textDecoration:"underline"
                })
            },
            strike:function(j,i){
                b(i,{
                    textDecoration:"line-through"
                })
            }
        };
    
        a.onPreProcess.add(f);
        a.onSetContent.add(f);
        a.onInit.add(function(){
            a.selection.onSetContent.add(f)
        })
    }
});
(function(b){
    var a=b.dom.TreeWalker;
    b.EnterKey=function(f){
        var i=f.dom,e=f.selection,d=f.settings,h=f.undoManager,c=f.schema.getNonEmptyElements();
        function g(A){
            var v=e.getRng(true),G,j,z,u,p,M,B,o,k,n,t,J,x,C;
            function E(N){
                return N&&i.isBlock(N)&&!/^(TD|TH|CAPTION|FORM)$/.test(N.nodeName)&&!/^(fixed|absolute)/i.test(N.style.position)&&i.getContentEditable(N)!=="true"
            }
            function F(O){
                var N;
                if(b.isIE&&i.isBlock(O)){
                    N=e.getRng();
                    O.appendChild(i.create("span",null,"\u00a0"));
                    e.select(O);
                    O.lastChild.outerHTML="";
                    e.setRng(N)
                }
            }
            function y(P){
                var O=P,Q=[],N;
                while(O=O.firstChild){
                    if(i.isBlock(O)){
                        return
                    }
                    if(O.nodeType==1&&!c[O.nodeName.toLowerCase()]){
                        Q.push(O)
                    }
                }
                N=Q.length;
                while(N--){
                    O=Q[N];
                    if(!O.hasChildNodes()||(O.firstChild==O.lastChild&&O.firstChild.nodeValue==="")){
                        i.remove(O)
                    }else{
                        if(O.nodeName=="A"&&(O.innerText||O.textContent)===" "){
                            i.remove(O)
                        }
                    }
                }
            }
            function m(O){
                var T,R,N,U,S,Q=O,P;
                N=i.createRng();
                if(O.hasChildNodes()){
                    T=new a(O,O);
                    while(R=T.current()){
                        if(R.nodeType==3){
                            N.setStart(R,0);
                            N.setEnd(R,0);
                            break
                        }
                        if(c[R.nodeName.toLowerCase()]){
                            N.setStartBefore(R);
                            N.setEndBefore(R);
                            break
                        }
                        Q=R;
                        R=T.next()
                    }
                    if(!R){
                        N.setStart(Q,0);
                        N.setEnd(Q,0)
                    }
                }else{
                    if(O.nodeName=="BR"){
                        if(O.nextSibling&&i.isBlock(O.nextSibling)){
                            if(!M||M<9){
                                P=i.create("br");
                                O.parentNode.insertBefore(P,O)
                            }
                            N.setStartBefore(O);
                            N.setEndBefore(O)
                        }else{
                            N.setStartAfter(O);
                            N.setEndAfter(O)
                        }
                    }else{
                        N.setStart(O,0);
                        N.setEnd(O,0)
                    }
                }
                e.setRng(N);
                i.remove(P);
                S=i.getViewPort(f.getWin());
                U=i.getPos(O).y;
                if(U<S.y||U+25>S.y+S.h){
                    f.getWin().scrollTo(0,U<S.y?U:U-S.h+25)
                }
            }
            function r(O){
                var P=z,R,Q,N;
                R=O||t=="TABLE"?i.create(O||x):p.cloneNode(false);
                N=R;
                if(d.keep_styles!==false){
                    do{
                        if(/^(SPAN|STRONG|B|EM|I|FONT|STRIKE|U)$/.test(P.nodeName)){
                            Q=P.cloneNode(false);
                            i.setAttrib(Q,"id","");
                            if(R.hasChildNodes()){
                                Q.appendChild(R.firstChild);
                                R.appendChild(Q)
                            }else{
                                N=Q;
                                R.appendChild(Q)
                            }
                        }
                    }while(P=P.parentNode)
                }
                if(!b.isIE){
                    N.innerHTML="<br>"
                }
                return R
            }
            function q(Q){
                var P,O,N;
                if(z.nodeType==3&&(Q?u>0:u<z.nodeValue.length)){
                    return false
                }
                if(z.parentNode==p&&C&&!Q){
                    return true
                }
                if(Q&&z.nodeType==1&&z==p.firstChild){
                    return true
                }
                if(z.nodeName==="TABLE"||(z.previousSibling&&z.previousSibling.nodeName=="TABLE")){
                    return(C&&!Q)||(!C&&Q)
                }
                P=new a(z,p);
                if(z.nodeType==3){
                    if(Q&&u==0){
                        P.prev()
                    }else{
                        if(!Q&&u==z.nodeValue.length){
                            P.next()
                        }
                    }
                }while(O=P.current()){
                    if(O.nodeType===1){
                        if(!O.getAttribute("data-mce-bogus")){
                            N=O.nodeName.toLowerCase();
                            if(c[N]&&N!=="br"){
                                return false
                            }
                        }
                    }else{
                        if(O.nodeType===3&&!/^[ \t\r\n]*$/.test(O.nodeValue)){
                            return false
                        }
                    }
                    if(Q){
                        P.prev()
                    }else{
                        P.next()
                    }
                }
                return true
            }
            function l(N,T){
                var U,S,P,R,Q,O=x||"P";
                S=i.getParent(N,i.isBlock);
                if(!S||!E(S)){
                    S=S||j;
                    if(!S.hasChildNodes()){
                        U=i.create(O);
                        S.appendChild(U);
                        v.setStart(U,0);
                        v.setEnd(U,0);
                        return U
                    }
                    R=N;
                    while(R.parentNode!=S){
                        R=R.parentNode
                    }while(R&&!i.isBlock(R)){
                        P=R;
                        R=R.previousSibling
                    }
                    if(P){
                        U=i.create(O);
                        P.parentNode.insertBefore(U,P);
                        R=P;
                        while(R&&!i.isBlock(R)){
                            Q=R.nextSibling;
                            U.appendChild(R);
                            R=Q
                        }
                        v.setStart(N,T);
                        v.setEnd(N,T)
                    }
                }
                return N
            }
            function H(){
                function N(P){
                    var O=n[P?"firstChild":"lastChild"];
                    while(O){
                        if(O.nodeType==1){
                            break
                        }
                        O=O[P?"nextSibling":"previousSibling"]
                    }
                    return O===p
                }
                o=x?r(x):i.create("BR");
                if(N(true)&&N()){
                    i.replace(o,n)
                }else{
                    if(N(true)){
                        n.parentNode.insertBefore(o,n)
                    }else{
                        if(N()){
                            i.insertAfter(o,n);
                            F(o)
                        }else{
                            G=v.cloneRange();
                            G.setStartAfter(p);
                            G.setEndAfter(n);
                            k=G.extractContents();
                            i.insertAfter(k,n);
                            i.insertAfter(o,n)
                        }
                    }
                }
                i.remove(p);
                m(o);
                h.add()
            }
            function D(){
                var O=new a(z,p),N;
                while(N=O.current()){
                    if(N.nodeName=="BR"){
                        return true
                    }
                    N=O.next()
                }
            }
            function L(){
                var O,N;
                if(z&&z.nodeType==3&&u>=z.nodeValue.length){
                    if(!b.isIE&&!D()){
                        O=i.create("br");
                        v.insertNode(O);
                        v.setStartAfter(O);
                        v.setEndAfter(O);
                        N=true
                    }
                }
                O=i.create("br");
                v.insertNode(O);
                if(b.isIE&&t=="PRE"&&(!M||M<8)){
                    O.parentNode.insertBefore(i.doc.createTextNode("\r"),O)
                }
                if(!N){
                    v.setStartAfter(O);
                    v.setEndAfter(O)
                }else{
                    v.setStartBefore(O);
                    v.setEndBefore(O)
                }
                e.setRng(v);
                h.add()
            }
            function s(N){
                do{
                    if(N.nodeType===3){
                        N.nodeValue=N.nodeValue.replace(/^[\r\n]+/,"")
                    }
                    N=N.firstChild
                }while(N)
            }
            function K(P){
                var N=i.getRoot(),O,Q;
                O=P;
                while(O!==N&&i.getContentEditable(O)!=="false"){
                    if(i.getContentEditable(O)==="true"){
                        Q=O
                    }
                    O=O.parentNode
                }
                return O!==N?Q:N
            }
            function I(O){
                var N;
                if(!b.isIE){
                    O.normalize();
                    N=O.lastChild;
                    if(!N||(/^(left|right)$/gi.test(i.getStyle(N,"float",true)))){
                        i.add(O,"br")
                    }
                }
            }
            if(!v.collapsed){
                f.execCommand("Delete");
                return
            }
            if(A.isDefaultPrevented()){
                return
            }
            z=v.startContainer;
            u=v.startOffset;
            x=(d.force_p_newlines?"p":"")||d.forced_root_block;
            x=x?x.toUpperCase():"";
            M=i.doc.documentMode;
            B=A.shiftKey;
            if(z.nodeType==1&&z.hasChildNodes()){
                C=u>z.childNodes.length-1;
                z=z.childNodes[Math.min(u,z.childNodes.length-1)]||z;
                if(C&&z.nodeType==3){
                    u=z.nodeValue.length
                }else{
                    u=0
                }
            }
            j=K(z);
            if(!j){
                return
            }
            h.beforeChange();
            if(!i.isBlock(j)&&j!=i.getRoot()){
                if(!x||B){
                    L()
                }
                return
            }
            if((x&&!B)||(!x&&B)){
                z=l(z,u)
            }
            p=i.getParent(z,i.isBlock);
            n=p?i.getParent(p.parentNode,i.isBlock):null;
            t=p?p.nodeName.toUpperCase():"";
            J=n?n.nodeName.toUpperCase():"";
            if(t=="LI"){
                if(!x&&B){
                    L();
                    return
                }
                if(i.isEmpty(p)){
                    if(/^(UL|OL|LI)$/.test(n.parentNode.nodeName)){
                        return false
                    }
                    H();
                    return
                }
            }
            if(t=="PRE"&&d.br_in_pre!==false){
                if(!B){
                    L();
                    return
                }
            }else{
                if((!x&&!B&&t!="LI")||(x&&B)){
                    L();
                    return
                }
            }
            x=x||"P";
            if(q()){
                if(/^(H[1-6]|PRE)$/.test(t)&&J!="HGROUP"){
                    o=r(x)
                }else{
                    o=r()
                }
                if(d.end_container_on_empty_block&&E(n)&&i.isEmpty(p)){
                    o=i.split(n,p)
                }else{
                    i.insertAfter(o,p)
                }
                m(o)
            }else{
                if(q(true)){
                    o=p.parentNode.insertBefore(r(),p);
                    F(o)
                }else{
                    G=v.cloneRange();
                    G.setEndAfter(p);
                    k=G.extractContents();
                    s(k);
                    o=k.firstChild;
                    i.insertAfter(k,p);
                    y(o);
                    I(p);
                    m(o)
                }
            }
            i.setAttrib(o,"id","");
            h.add()
        }
        f.onKeyDown.add(function(k,j){
            if(j.keyCode==13){
                if(g(j)!==false){
                    j.preventDefault()
                }
            }
        })
    }
})(tinymce);