/*
Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or http://ckeditor.com/license
 */

(function(){
    var a=function(b,c){
        var d=1,e=2,f=4,g=8,h=/^\s*(\d+)((px)|\%)?\s*$/i,i=/(^\s*(\d+)((px)|\%)?\s*$)|^$/i,j=/^\d+px$/,k=function(){
            var B=this.getValue(),C=this.getDialog(),D=B.match(h);
            if(D){
                if(D[2]=='%')p(C,false);
                B=D[1];
            }
            if(C.lockRatio){
                var E=C.originalElement;
                if(E.getCustomData('isReady')=='true')if(this.id=='txtHeight'){
                    if(B&&B!='0')B=Math.round(E.$.width*(B/E.$.height));
                    if(!isNaN(B))C.setValueOf('info','txtWidth',B);
                }else{
                    if(B&&B!='0')B=Math.round(E.$.height*(B/E.$.width));
                    if(!isNaN(B))C.setValueOf('info','txtHeight',B);
                }
            }
            l(C);
        },l=function(B){
            if(!B.originalElement||!B.preview)return 1;
            B.commitContent(f,B.preview);
            return 0;
        };
    
        function m(){
            var B=arguments,C=this.getContentElement('advanced','txtdlgGenStyle');
            C&&C.commit.apply(C,B);
            this.foreach(function(D){
                if(D.commit&&D.id!='txtdlgGenStyle')D.commit.apply(D,B);
            });
        };
    
        var n;
        function o(B){
            if(n)return;
            n=1;
            var C=this.getDialog(),D=C.imageElement;
            if(D){
                this.commit(d,D);
                B=[].concat(B);
                var E=B.length,F;
                for(var G=0;G<E;G++){
                    F=C.getContentElement.apply(C,B[G].split(':'));
                    F&&F.setup(d,D);
                }
            }
            n=0;
        };

        var p=function(B,C){
            if(!B.getContentElement('info','ratioLock'))return null;
            var D=B.originalElement;
            if(!D)return null;
            if(C=='check'){
                if(!B.userlockRatio&&D.getCustomData('isReady')=='true'){
                    var E=B.getValueOf('info','txtWidth'),F=B.getValueOf('info','txtHeight'),G=D.$.width*1000/D.$.height,H=E*1000/F;
                    B.lockRatio=false;
                    if(!E&&!F)B.lockRatio=true;
                    else if(!isNaN(G)&&!isNaN(H))if(Math.round(G)==Math.round(H))B.lockRatio=true;
                }
            }else if(C!=undefined)B.lockRatio=C;
            else{
                B.userlockRatio=1;
                B.lockRatio=!B.lockRatio;
            }
            var I=CKEDITOR.document.getById(w);
            if(B.lockRatio)I.removeClass('cke_btn_unlocked');else I.addClass('cke_btn_unlocked');
            I.setAttribute('aria-checked',B.lockRatio);
            if(CKEDITOR.env.hc){
                var J=I.getChild(0);
                J.setHtml(B.lockRatio?CKEDITOR.env.ie?'■':'▣':CKEDITOR.env.ie?'□':'▢');
            }
            return B.lockRatio;
        },q=function(B){
            var C=B.originalElement;
            if(C.getCustomData('isReady')=='true'){
                var D=B.getContentElement('info','txtWidth'),E=B.getContentElement('info','txtHeight');
                D&&D.setValue(C.$.width);
                E&&E.setValue(C.$.height);
            }
            l(B);
        },r=function(B,C){
            if(B!=d)return;
            function D(I,J){
                var K=I.match(h);
                if(K){
                    if(K[2]=='%'){
                        K[1]+='%';
                        p(E,false);
                    }
                    return K[1];
                }
                return J;
            };
    
            var E=this.getDialog(),F='',G=this.id=='txtWidth'?'width':'height',H=C.getAttribute(G);
            if(H)F=D(H,F);
            F=D(C.getStyle(G),F);
            this.setValue(F);
        },s,t=function(){
            var B=this.originalElement;
            B.setCustomData('isReady','true');
            B.removeListener('load',t);
            B.removeListener('error',u);
            B.removeListener('abort',u);
            CKEDITOR.document.getById(y).setStyle('display','none');
            if(!this.dontResetSize)q(this);
            if(this.firstLoad)CKEDITOR.tools.setTimeout(function(){
                p(this,'check');
            },0,this);
            this.firstLoad=false;
            this.dontResetSize=false;
        },u=function(){
            var D=this;
            var B=D.originalElement;
            B.removeListener('load',t);
            B.removeListener('error',u);
            B.removeListener('abort',u);
            var C=CKEDITOR.getUrl(b.skinPath+'images/noimage.png');
            if(D.preview)D.preview.setAttribute('src',C);
            CKEDITOR.document.getById(y).setStyle('display','none');
            p(D,false);
        },v=function(B){
            return CKEDITOR.tools.getNextId()+'_'+B;
        },w=v('btnLockSizes'),x=v('btnResetSize'),y=v('ImagePreviewLoader'),z=v('previewLink'),A=v('previewImage');
        return{
            title:b.lang.image[c=='image'?'title':'titleButton'],
            minWidth:420,
            minHeight:360,
            onShow:function(){
                var H=this;
                H.imageElement=false;
                H.linkElement=false;
                H.imageEditMode=false;
                H.linkEditMode=false;
                H.lockRatio=true;
                H.userlockRatio=0;
                H.dontResetSize=false;
                H.firstLoad=true;
                H.addLink=false;
                var B=H.getParentEditor(),C=B.getSelection(),D=C&&C.getSelectedElement(),E=D&&D.getAscendant('a');
                CKEDITOR.document.getById(y).setStyle('display','none');
                s=new CKEDITOR.dom.element('img',B.document);
                H.preview=CKEDITOR.document.getById(A);
                H.originalElement=B.document.createElement('img');
                H.originalElement.setAttribute('alt','');
                H.originalElement.setCustomData('isReady','false');
                if(E){
                    H.linkElement=E;
                    H.linkEditMode=true;
                    var F=E.getChildren();
                    if(F.count()==1){
                        var G=F.getItem(0).getName();
                        if(G=='img'||G=='input'){
                            H.imageElement=F.getItem(0);
                            if(H.imageElement.getName()=='img')H.imageEditMode='img';
                            else if(H.imageElement.getName()=='input')H.imageEditMode='input';
                        }
                    }
                    if(c=='image')H.setupContent(e,E);
                }
                if(D&&D.getName()=='img'&&!D.data('cke-realelement')||D&&D.getName()=='input'&&D.getAttribute('type')=='image'){
                    H.imageEditMode=D.getName();
                    H.imageElement=D;
                }
                if(H.imageEditMode){
                    H.cleanImageElement=H.imageElement;
                    H.imageElement=H.cleanImageElement.clone(true,true);
                    H.setupContent(d,H.imageElement);
                }else H.imageElement=B.document.createElement('img');
                p(H,true);
                if(!CKEDITOR.tools.trim(H.getValueOf('info','txtUrl'))){
                    H.preview.removeAttribute('src');
                    H.preview.setStyle('display','none');
                }
            },
            onOk:function(){
                var C=this;
                if(C.imageEditMode){
                    var B=C.imageEditMode;
                    if(c=='image'&&B=='input'&&confirm(b.lang.image.button2Img)){
                        B='img';
                        C.imageElement=b.document.createElement('img');
                        C.imageElement.setAttribute('alt','');
                        b.insertElement(C.imageElement);
                    }else if(c!='image'&&B=='img'&&confirm(b.lang.image.img2Button)){
                        B='input';
                        C.imageElement=b.document.createElement('input');
                        C.imageElement.setAttributes({
                            type:'image',
                            alt:''
                        });
                        b.insertElement(C.imageElement);
                    }else{
                        C.imageElement=C.cleanImageElement;
                        delete C.cleanImageElement;
                    }
                }else{
                    if(c=='image')C.imageElement=b.document.createElement('img');
                    else{
                        C.imageElement=b.document.createElement('input');
                        C.imageElement.setAttribute('type','image');
                    }
                    C.imageElement.setAttribute('alt','');
                }
                if(!C.linkEditMode)C.linkElement=b.document.createElement('a');
                C.commitContent(d,C.imageElement);
                C.commitContent(e,C.linkElement);
                if(!C.imageElement.getAttribute('style'))C.imageElement.removeAttribute('style');
                if(!C.imageEditMode){
                    if(C.addLink){
                        if(!C.linkEditMode){
                            b.insertElement(C.linkElement);
                            C.linkElement.append(C.imageElement,false);
                        }else b.insertElement(C.imageElement);
                    }else b.insertElement(C.imageElement);
                }else if(!C.linkEditMode&&C.addLink){
                    b.insertElement(C.linkElement);
                    C.imageElement.appendTo(C.linkElement);
                }else if(C.linkEditMode&&!C.addLink){
                    b.getSelection().selectElement(C.linkElement);
                    b.insertElement(C.imageElement);
                }
            },
            onLoad:function(){
                var C=this;
                if(c!='image')C.hidePage('Link');
                var B=C._.element.getDocument();
                if(C.getContentElement('info','ratioLock')){
                    C.addFocusable(B.getById(x),5);
                    C.addFocusable(B.getById(w),5);
                }
                C.commitContent=m;
            },
            onHide:function(){
                var B=this;
                if(B.preview)B.commitContent(g,B.preview);
                if(B.originalElement){
                    B.originalElement.removeListener('load',t);
                    B.originalElement.removeListener('error',u);
                    B.originalElement.removeListener('abort',u);
                    B.originalElement.remove();
                    B.originalElement=false;
                }
                delete B.imageElement;
            },
            contents:[{
                id:'info',
                label:b.lang.image.infoTab,
                accessKey:'I',
                elements:[{
                    type:'vbox',
                    padding:0,
                    children:[{
                        type:'hbox',
                        widths:['280px','110px'],
                        align:'right',
                        children:[{
                            id:'txtUrl',
                            type:'text',
                            label:b.lang.common.url,
                            required:true,
                            onChange:function(){
                                var B=this.getDialog(),C=this.getValue();
                                if(C.length>0){
                                    B=this.getDialog();
                                    var D=B.originalElement;
                                    B.preview.removeStyle('display');
                                    D.setCustomData('isReady','false');
                                    var E=CKEDITOR.document.getById(y);
                                    if(E)E.setStyle('display','');
                                    D.on('load',t,B);
                                    D.on('error',u,B);
                                    D.on('abort',u,B);
                                    D.setAttribute('src',C);
                                    s.setAttribute('src',C);
                                    B.preview.setAttribute('src',s.$.src);
                                    l(B);
                                }else if(B.preview){
                                    B.preview.removeAttribute('src');
                                    B.preview.setStyle('display','none');
                                }
                            },
                            setup:function(B,C){
                                if(B==d){
                                    var D=C.data('cke-saved-src')||C.getAttribute('src'),E=this;
                                    this.getDialog().dontResetSize=true;
                                    E.setValue(D);
                                    E.setInitValue();
                                }
                            },
                            commit:function(B,C){
                                var D=this;
                                if(B==d&&(D.getValue()||D.isChanged())){
                                    C.data('cke-saved-src',D.getValue());
                                    C.setAttribute('src',D.getValue());
                                }else if(B==g){
                                    C.setAttribute('src','');
                                    C.removeAttribute('src');
                                }
                            },
                            validate:CKEDITOR.dialog.validate.notEmpty(b.lang.image.urlMissing)
                        },
                        {
                            type:'button',
                            id:'browse',
                           
                            align:'center',
                            label:b.lang.common.browseServer,
                            hidden:true,
                            filebrowser:'info:txtUrl'
                        }]
                    }]
                },{
                    id:'txtAlt',
                    type:'text',
                    label:b.lang.image.alt,
                    accessKey:'T',
                    'default':'',
                    onChange:function(){
                        l(this.getDialog());
                    },
                    setup:function(B,C){
                        if(B==d)this.setValue(C.getAttribute('alt'));
                    },
                    commit:function(B,C){
                        var D=this;
                        if(B==d){
                            if(D.getValue()||D.isChanged())C.setAttribute('alt',D.getValue());
                        }else if(B==f)C.setAttribute('alt',D.getValue());
                        else if(B==g)C.removeAttribute('alt');
                    }
                },{
                    type:'hbox',
                    children:[{
                        id:'basic',
                        type:'vbox',
                        children:[{
                            type:'hbox',
                            widths:['50%','50%'],
                            children:[{
                                type:'vbox',
                                padding:1,
                                children:[{
                                    type:'text',
                                    width:'40px',
                                    id:'txtWidth',
                                    label:b.lang.common.width,
                                    onKeyUp:k,
                                    onChange:function(){
                                        o.call(this,'advanced:txtdlgGenStyle');
                                    },
                                    validate:function(){
                                        var B=this.getValue().match(i),C=!!(B&&parseInt(B[1],10)!==0);
                                        if(!C)alert(b.lang.common.invalidWidth);
                                        return C;
                                    },
                                    setup:r,
                                    commit:function(B,C,D){
                                        var E=this.getValue();
                                        if(B==d){
                                            if(E)C.setStyle('width',CKEDITOR.tools.cssLength(E));else C.removeStyle('width');
                                            !D&&C.removeAttribute('width');
                                        }else if(B==f){
                                            var F=E.match(h);
                                            if(!F){
                                                var G=this.getDialog().originalElement;
                                                if(G.getCustomData('isReady')=='true')C.setStyle('width',G.$.width+'px');
                                            }else C.setStyle('width',CKEDITOR.tools.cssLength(E));
                                        }else if(B==g){
                                            C.removeAttribute('width');
                                            C.removeStyle('width');
                                        }
                                    }
                                },{
                                    type:'text',
                                    id:'txtHeight',
                                    width:'40px',
                                    label:b.lang.common.height,
                                    onKeyUp:k,
                                    onChange:function(){
                                        o.call(this,'advanced:txtdlgGenStyle');
                                    },
                                    validate:function(){
                                        var B=this.getValue().match(i),C=!!(B&&parseInt(B[1],10)!==0);
                                        if(!C)alert(b.lang.common.invalidHeight);
                                        return C;
                                    },
                                    setup:r,
                                    commit:function(B,C,D){
                                        var E=this.getValue();
                                        if(B==d){
                                            if(E)C.setStyle('height',CKEDITOR.tools.cssLength(E));else C.removeStyle('height');
                                            !D&&C.removeAttribute('height');
                                        }else if(B==f){
                                            var F=E.match(h);
                                            if(!F){
                                                var G=this.getDialog().originalElement;
                                                if(G.getCustomData('isReady')=='true')C.setStyle('height',G.$.height+'px');
                                            }else C.setStyle('height',CKEDITOR.tools.cssLength(E));
                                        }else if(B==g){
                                            C.removeAttribute('height');
                                            C.removeStyle('height');
                                        }
                                    }
                                }]
                            },{
                                id:'ratioLock',
                                type:'html',
                                style:'margin-top:30px;width:40px;height:40px;',
                                onLoad:function(){
                                    var B=CKEDITOR.document.getById(x),C=CKEDITOR.document.getById(w);
                                    if(B){
                                        B.on('click',function(D){
                                            q(this);
                                            D.data&&D.data.preventDefault();
                                        },this.getDialog());
                                        B.on('mouseover',function(){
                                            this.addClass('cke_btn_over');
                                        },B);
                                        B.on('mouseout',function(){
                                            this.removeClass('cke_btn_over');
                                        },B);
                                    }
                                    if(C){
                                        C.on('click',function(D){
                                            var I=this;
                                            var E=p(I),F=I.originalElement,G=I.getValueOf('info','txtWidth');
                                            if(F.getCustomData('isReady')=='true'&&G){
                                                var H=F.$.height/F.$.width*G;
                                                if(!isNaN(H)){
                                                    I.setValueOf('info','txtHeight',Math.round(H));
                                                    l(I);
                                                }
                                            }
                                            D.data&&D.data.preventDefault();
                                        },this.getDialog());
                                        C.on('mouseover',function(){
                                            this.addClass('cke_btn_over');
                                        },C);
                                        C.on('mouseout',function(){
                                            this.removeClass('cke_btn_over');
                                        },C);
                                    }
                                },
                                html:'<div><a href="javascript:void(0)" tabindex="-1" title="'+b.lang.image.lockRatio+'" class="cke_btn_locked" id="'+w+'" role="checkbox"><span class="cke_icon"></span><span class="cke_label">'+b.lang.image.lockRatio+'</span></a>'+'<a href="javascript:void(0)" tabindex="-1" title="'+b.lang.image.resetSize+'" class="cke_btn_reset" id="'+x+'" role="button"><span class="cke_label">'+b.lang.image.resetSize+'</span></a>'+'</div>'
                            }]
                        },{
                            type:'vbox',
                            padding:1,
                            children:[{
                                type:'text',
                                id:'txtBorder',
                                width:'60px',
                                label:b.lang.image.border,
                                'default':'',
                                onKeyUp:function(){
                                    l(this.getDialog());
                                },
                                onChange:function(){
                                    o.call(this,'advanced:txtdlgGenStyle');
                                },
                                validate:CKEDITOR.dialog.validate.integer(b.lang.image.validateBorder),
                                setup:function(B,C){
                                    if(B==d){
                                        var D,E=C.getStyle('border-width');
                                        E=E&&E.match(/^(\d+px)(?: \1 \1 \1)?$/);
                                        D=E&&parseInt(E[1],10);
                                        isNaN(parseInt(D,10))&&(D=C.getAttribute('border'));
                                        this.setValue(D);
                                    }
                                },
                                commit:function(B,C,D){
                                    var E=parseInt(this.getValue(),10);
                                    if(B==d||B==f){
                                        if(!isNaN(E)){
                                            C.setStyle('border-width',CKEDITOR.tools.cssLength(E));
                                            C.setStyle('border-style','solid');
                                        }else if(!E&&this.isChanged())C.removeStyle('border');
                                        if(!D&&B==d)C.removeAttribute('border');
                                    }else if(B==g){
                                        C.removeAttribute('border');
                                        C.removeStyle('border-width');
                                        C.removeStyle('border-style');
                                        C.removeStyle('border-color');
                                    }
                                }
                            },{
                                type:'text',
                                id:'txtHSpace',
                                width:'60px',
                                label:b.lang.image.hSpace,
                                'default':'',
                                onKeyUp:function(){
                                    l(this.getDialog());
                                },
                                onChange:function(){
                                    o.call(this,'advanced:txtdlgGenStyle');
                                },
                                validate:CKEDITOR.dialog.validate.integer(b.lang.image.validateHSpace),
                                setup:function(B,C){
                                    if(B==d){
                                        var D,E,F,G=C.getStyle('margin-left'),H=C.getStyle('margin-right');
                                        G=G&&G.match(j);
                                        H=H&&H.match(j);
                                        E=parseInt(G,10);
                                        F=parseInt(H,10);
                                        D=E==F&&E;
                                        isNaN(parseInt(D,10))&&(D=C.getAttribute('hspace'));
                                        this.setValue(D);
                                    }
                                },
                                commit:function(B,C,D){
                                    var E=parseInt(this.getValue(),10);
                                    if(B==d||B==f){
                                        if(!isNaN(E)){
                                            C.setStyle('margin-left',CKEDITOR.tools.cssLength(E));
                                            C.setStyle('margin-right',CKEDITOR.tools.cssLength(E));
                                        }else if(!E&&this.isChanged()){
                                            C.removeStyle('margin-left');
                                            C.removeStyle('margin-right');
                                        }
                                        if(!D&&B==d)C.removeAttribute('hspace');
                                    }else if(B==g){
                                        C.removeAttribute('hspace');
                                        C.removeStyle('margin-left');
                                        C.removeStyle('margin-right');
                                    }
                                }
                            },{
                                type:'text',
                                id:'txtVSpace',
                                width:'60px',
                                label:b.lang.image.vSpace,
                                'default':'',
                                onKeyUp:function(){
                                    l(this.getDialog());
                                },
                                onChange:function(){
                                    o.call(this,'advanced:txtdlgGenStyle');
                                },
                                validate:CKEDITOR.dialog.validate.integer(b.lang.image.validateVSpace),
                                setup:function(B,C){
                                    if(B==d){
                                        var D,E,F,G=C.getStyle('margin-top'),H=C.getStyle('margin-bottom');
                                        G=G&&G.match(j);
                                        H=H&&H.match(j);
                                        E=parseInt(G,10);
                                        F=parseInt(H,10);
                                        D=E==F&&E;
                                        isNaN(parseInt(D,10))&&(D=C.getAttribute('vspace'));
                                        this.setValue(D);
                                    }
                                },
                                commit:function(B,C,D){
                                    var E=parseInt(this.getValue(),10);
                                    if(B==d||B==f){
                                        if(!isNaN(E)){
                                            C.setStyle('margin-top',CKEDITOR.tools.cssLength(E));
                                            C.setStyle('margin-bottom',CKEDITOR.tools.cssLength(E));
                                        }else if(!E&&this.isChanged()){
                                            C.removeStyle('margin-top');
                                            C.removeStyle('margin-bottom');
                                        }
                                        if(!D&&B==d)C.removeAttribute('vspace');
                                    }else if(B==g){
                                        C.removeAttribute('vspace');
                                        C.removeStyle('margin-top');
                                        C.removeStyle('margin-bottom');
                                    }
                                }
                            },{
                                id:'cmbAlign',
                                type:'select',
                                widths:['35%','65%'],
                                style:'width:90px',
                                label:b.lang.common.align,
                                'default':'',
                                items:[[b.lang.common.notSet,''],[b.lang.common.alignLeft,'left'],[b.lang.common.alignRight,'right']],
                                onChange:function(){
                                    l(this.getDialog());
                                    o.call(this,'advanced:txtdlgGenStyle');
                                },
                                setup:function(B,C){
                                    if(B==d){
                                        var D=C.getStyle('float');
                                        switch(D){
                                            case 'inherit':case 'none':
                                                D='';
                                        }!D&&(D=(C.getAttribute('align')||'').toLowerCase());
                                        this.setValue(D);
                                    }
                                },
                                commit:function(B,C,D){
                                    var E=this.getValue();
                                    if(B==d||B==f){
                                        if(E)C.setStyle('float',E);else C.removeStyle('float');
                                        if(!D&&B==d){
                                            E=(C.getAttribute('align')||'').toLowerCase();
                                            switch(E){
                                                case 'left':case 'right':
                                                    C.removeAttribute('align');
                                            }
                                        }
                                    }else if(B==g)C.removeStyle('float');
                                }
                            }]
                        }]
                    },{
                        type:'vbox',
                        height:'250px',
                        children:[{
                            type:'html',
                            id:'htmlPreview',
                            style:'width:95%;',
                            html:'<div>'+CKEDITOR.tools.htmlEncode(b.lang.common.preview)+'<br>'+'<div id="'+y+'" class="ImagePreviewLoader" style="display:none"><div class="loading">&nbsp;</div></div>'+'<div class="ImagePreviewBox"><table><tr><td>'+'<a href="javascript:void(0)" target="_blank" onclick="return false;" id="'+z+'">'+'<img id="'+A+'" alt="" /></a>'+(b.config.image_previewText||'')+'</td></tr></table></div></div>'
                        }]
                    }]
                }]
            },{
                id:'Link',
                label:b.lang.link.title,
                padding:0,
                elements:[{
                    id:'txtUrl',
                    type:'text',
                    label:b.lang.common.url,
                    style:'width: 100%',
                    'default':'',
                    setup:function(B,C){
                        if(B==e){
                            var D=C.data('cke-saved-href');
                            if(!D)D=C.getAttribute('href');
                            this.setValue(D);
                        }
                    },
                    commit:function(B,C){
                        var E=this;
                        if(B==e)if(E.getValue()||E.isChanged()){
                            var D=decodeURI(E.getValue());
                            C.data('cke-saved-href',D);
                            C.setAttribute('href',D);
                            if(E.getValue()||!b.config.image_removeLinkByEmptyURL)E.getDialog().addLink=true;
                        }
                    }
                },{
                    type:'button',
                    id:'browse',
                    filebrowser:{
                        action:'Browse',
                        target:'Link:txtUrl',
                        url:b.config.filebrowserImageBrowseLinkUrl
                    },
                    style:'float:right',
                    hidden:true,
                    label:b.lang.common.browseServer
                },{
                    id:'cmbTarget',
                    type:'select',
                    label:b.lang.common.target,
                    'default':'',
                    items:[[b.lang.common.notSet,''],[b.lang.common.targetNew,'_blank'],[b.lang.common.targetTop,'_top'],[b.lang.common.targetSelf,'_self'],[b.lang.common.targetParent,'_parent']],
                    setup:function(B,C){
                        if(B==e)this.setValue(C.getAttribute('target')||'');
                    },
                    commit:function(B,C){
                        if(B==e)if(this.getValue()||this.isChanged())C.setAttribute('target',this.getValue());
                    }
                }]
            },{
                id:'Upload',
                hidden:true,
                filebrowser:'uploadButton',
                label:b.lang.image.upload,
                elements:[{
                    type:'file',
                    id:'upload',
                    label:b.lang.image.btnUpload,
                    style:'height:40px',
                    size:38
                },{
                    type:'fileButton',
                    id:'uploadButton',
                    filebrowser:'info:txtUrl',
                    label:b.lang.image.btnUpload,
                    'for':['Upload','upload']
                }]
            },{
                id:'advanced',
                label:b.lang.common.advancedTab,
                elements:[{
                    type:'hbox',
                    widths:['50%','25%','25%'],
                    children:[{
                        type:'text',
                        id:'linkId',
                        label:b.lang.common.id,
                        setup:function(B,C){
                            if(B==d)this.setValue(C.getAttribute('id'));
                        },
                        commit:function(B,C){
                            if(B==d)if(this.getValue()||this.isChanged())C.setAttribute('id',this.getValue());
                        }
                    },{
                        id:'cmbLangDir',
                        type:'select',
                        style:'width : 100px;',
                        label:b.lang.common.langDir,
                        'default':'',
                        items:[[b.lang.common.notSet,''],[b.lang.common.langDirLtr,'ltr'],[b.lang.common.langDirRtl,'rtl']],
                        setup:function(B,C){
                            if(B==d)this.setValue(C.getAttribute('dir'));
                        },
                        commit:function(B,C){
                            if(B==d)if(this.getValue()||this.isChanged())C.setAttribute('dir',this.getValue());
                        }
                    },{
                        type:'text',
                        id:'txtLangCode',
                        label:b.lang.common.langCode,
                        'default':'',
                        setup:function(B,C){
                            if(B==d)this.setValue(C.getAttribute('lang'));
                        },
                        commit:function(B,C){
                            if(B==d)if(this.getValue()||this.isChanged())C.setAttribute('lang',this.getValue());
                        }
                    }]
                },{
                    type:'text',
                    id:'txtGenLongDescr',
                    label:b.lang.common.longDescr,
                    setup:function(B,C){
                        if(B==d)this.setValue(C.getAttribute('longDesc'));
                    },
                    commit:function(B,C){
                        if(B==d)if(this.getValue()||this.isChanged())C.setAttribute('longDesc',this.getValue());
                    }
                },{
                    type:'hbox',
                    widths:['50%','50%'],
                    children:[{
                        type:'text',
                        id:'txtGenClass',
                        label:b.lang.common.cssClass,
                        'default':'',
                        setup:function(B,C){
                            if(B==d)this.setValue(C.getAttribute('class'));
                        },
                        commit:function(B,C){
                            if(B==d)if(this.getValue()||this.isChanged())C.setAttribute('class',this.getValue());
                        }
                    },{
                        type:'text',
                        id:'txtGenTitle',
                        label:b.lang.common.advisoryTitle,
                        'default':'',
                        onChange:function(){
                            l(this.getDialog());
                        },
                        setup:function(B,C){
                            if(B==d)this.setValue(C.getAttribute('title'));
                        },
                        commit:function(B,C){
                            var D=this;
                            if(B==d){
                                if(D.getValue()||D.isChanged())C.setAttribute('title',D.getValue());
                            }else if(B==f)C.setAttribute('title',D.getValue());
                            else if(B==g)C.removeAttribute('title');
                        }
                    }]
                },{
                    type:'text',
                    id:'txtdlgGenStyle',
                    label:b.lang.common.cssStyle,
                    validate:CKEDITOR.dialog.validate.inlineStyle(b.lang.common.invalidInlineStyle),
                    'default':'',
                    setup:function(B,C){
                        if(B==d){
                            var D=C.getAttribute('style');
                            if(!D&&C.$.style.cssText)D=C.$.style.cssText;
                            this.setValue(D);
                            var E=C.$.style.height,F=C.$.style.width,G=(E?E:'').match(h),H=(F?F:'').match(h);
                            this.attributesInStyle={
                                height:!!G,
                                width:!!H
                            };
            
                        }
                    },
                    onChange:function(){
                        o.call(this,['info:cmbFloat','info:cmbAlign','info:txtVSpace','info:txtHSpace','info:txtBorder','info:txtWidth','info:txtHeight']);
                        l(this);
                    },
                    commit:function(B,C){
                        if(B==d&&(this.getValue()||this.isChanged()))C.setAttribute('style',this.getValue());
                    }
                }]
            }]
        };

    };

    CKEDITOR.dialog.add('image',function(b){
        return a(b,'image');
    });
    CKEDITOR.dialog.add('imagebutton',function(b){
        return a(b,'imagebutton');
    });
})();
