(function(){
    var d=tinymce.DOM,b=tinymce.dom.Element,a=tinymce.dom.Event,e=tinymce.each,c=tinymce.is;
    tinymce.create("tinymce.plugins.InlinePopups",{
        init:function(f,g){
            f.onBeforeRenderUI.add(function(){
                f.windowManager=new tinymce.InlineWindowManager(f);
                d.loadCSS(g+"/skins/"+(f.settings.inlinepopups_skin||"clearlooks2")+"/window.css")
                })
            },
        getInfo:function(){
            return{
                longname:"InlinePopups",
                author:"Moxiecode Systems AB",
                authorurl:"http://tinymce.moxiecode.com",
                infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/inlinepopups",
                version:tinymce.majorVersion+"."+tinymce.minorVersion
                }
            }
    });
tinymce.create("tinymce.InlineWindowManager:tinymce.WindowManager",{
    InlineWindowManager:function(f){
        var g=this;
        g.parent(f);
        g.zIndex=300000;
        g.count=0;
        g.windows={}
    },
open:function(s,j){
    var z=this,i,k="",r=z.editor,g=0,v=0,h,m,o,q,l,x,y,n;
    s=s||{};
    
    j=j||{};
    
    if(!s.inline){
        return z.parent(s,j)
        }
        n=z._frontWindow();
    if(n&&d.get(n.id+"_ifr")){
        n.focussedElement=d.get(n.id+"_ifr").contentWindow.document.activeElement
        }
        if(!s.type){
        z.bookmark=r.selection.getBookmark(1)
        }
        i=d.uniqueId();
    h=d.getViewPort();
    s.width=parseInt(s.width||320);
    if(s.width > 500)
        s.width = 400;
    s.height=parseInt(s.height||240)+(tinymce.isIE?8:0);
    if(s.height > 300)
        s.height = 260;
    s.min_width=parseInt(s.min_width||150);
    s.min_height=parseInt(s.min_height||100);
    s.max_width=parseInt(s.max_width||2000);
    s.max_height=parseInt(s.max_height||2000);
    s.left=s.left||Math.round(Math.max(h.x,h.x+(h.w/2)-(s.width/2)));
    s.top=s.top||Math.round(Math.max(h.y,h.y+(h.h/2)-(s.height/2)));
    s.movable=s.resizable=true;
    j.mce_width=s.width;
    j.mce_height=s.height;
    j.mce_inline=true;
    j.mce_window_id=i;
    j.mce_auto_focus=s.auto_focus;
    z.features=s;
    z.params=j;
    z.onOpen.dispatch(z,s,j);
    if(s.type){
        k+=" mceModal";
        if(s.type){
            k+=" mce"+s.type.substring(0,1).toUpperCase()+s.type.substring(1)
            }
            s.resizable=false
        }
        if(s.statusbar){
        k+=" mceStatusbar"
        }
        if(s.resizable){
        k+=" mceResizable"
        }
        if(s.minimizable){
        k+=" mceMinimizable"
        }
        if(s.maximizable){
        k+=" mceMaximizable"
        }
        if(s.movable){
        k+=" mceMovable"
        }
        z._addAll(d.doc.body,["div",{
        id:i,
        role:"dialog",
        "aria-labelledby":s.type?i+"_content":i+"_title",
        "class":(r.settings.inlinepopups_skin||"clearlooks2")+(tinymce.isIE&&window.getSelection?" ie9":""),
        style:"width:100px;height:100px"
    },["div",{
        id:i+"_wrapper",
        "class":"mceWrapper"+k
        },["div",{
        id:i+"_top",
        "class":"mceTop"
    },["div",{
        "class":"mceLeft"
    }],["div",{
        "class":"mceCenter"
    }],["div",{
        "class":"mceRight"
    }],["span",{
        id:i+"_title"
        },s.title||""]],["div",{
        id:i+"_middle",
        "class":"mceMiddle"
    },["div",{
        id:i+"_left",
        "class":"mceLeft",
        tabindex:"0"
    }],["span",{
        id:i+"_content"
        }],["div",{
        id:i+"_right",
        "class":"mceRight",
        tabindex:"0"
    }]],["div",{
        id:i+"_bottom",
        "class":"mceBottom"
    },["div",{
        "class":"mceLeft"
    }],["div",{
        "class":"mceCenter"
    }],["div",{
        "class":"mceRight"
    }],["span",{
        id:i+"_status"
        },"Content"]],["a",{
        "class":"mceMove",
        tabindex:"-1",
        href:"javascript:;"
    }],["a",{
        "class":"mceMin",
        tabindex:"-1",
        href:"javascript:;",
        onmousedown:"return false;"
    }],["a",{
        "class":"mceMax",
        tabindex:"-1",
        href:"javascript:;",
        onmousedown:"return false;"
    }],["a",{
        "class":"mceMed",
        tabindex:"-1",
        href:"javascript:;",
        onmousedown:"return false;"
    }],["a",{
        "class":"mceClose",
        tabindex:"-1",
        href:"javascript:;",
        onmousedown:"return false;"
    }],["a",{
        id:i+"_resize_n",
        "class":"mceResize mceResizeN",
        tabindex:"-1",
        href:"javascript:;"
    }],["a",{
        id:i+"_resize_s",
        "class":"mceResize mceResizeS",
        tabindex:"-1",
        href:"javascript:;"
    }],["a",{
        id:i+"_resize_w",
        "class":"mceResize mceResizeW",
        tabindex:"-1",
        href:"javascript:;"
    }],["a",{
        id:i+"_resize_e",
        "class":"mceResize mceResizeE",
        tabindex:"-1",
        href:"javascript:;"
    }],["a",{
        id:i+"_resize_nw",
        "class":"mceResize mceResizeNW",
        tabindex:"-1",
        href:"javascript:;"
    }],["a",{
        id:i+"_resize_ne",
        "class":"mceResize mceResizeNE",
        tabindex:"-1",
        href:"javascript:;"
    }],["a",{
        id:i+"_resize_sw",
        "class":"mceResize mceResizeSW",
        tabindex:"-1",
        href:"javascript:;"
    }],["a",{
        id:i+"_resize_se",
        "class":"mceResize mceResizeSE",
        tabindex:"-1",
        href:"javascript:;"
    }]]]);
    d.setStyles(i,{
        top:-10000,
        left:-10000
    });
    if(tinymce.isGecko){
        d.setStyle(i,"overflow","auto")
        }
        if(!s.type){
        g+=d.get(i+"_left").clientWidth;
        g+=d.get(i+"_right").clientWidth;
        v+=d.get(i+"_top").clientHeight;
        v+=d.get(i+"_bottom").clientHeight
        }
        d.setStyles(i,{
        top:s.top,
        left:s.left,
        width:s.width+g,
        height:s.height+v
        });
    y=s.url||s.file;
    if(y){
        if(tinymce.relaxedDomain){
            y+=(y.indexOf("?")==-1?"?":"&")+"mce_rdomain="+tinymce.relaxedDomain
            }
            y=tinymce._addVer(y)
        }
        if(!s.type){
        d.add(i+"_content","iframe",{
            id:i+"_ifr",
            src:'javascript:""',
            frameBorder:0,
            style:"border:0;width:10px;height:10px"
        });
        d.setStyles(i+"_ifr",{
            width:s.width,
            height:s.height
            });
        d.setAttrib(i+"_ifr","src",y)
        }else{
        d.add(i+"_wrapper","a",{
            id:i+"_ok",
            "class":"mceButton mceOk",
            href:"javascript:;",
            onmousedown:"return false;"
        },"Ok");
        if(s.type=="confirm"){
            d.add(i+"_wrapper","a",{
                "class":"mceButton mceCancel",
                href:"javascript:;",
                onmousedown:"return false;"
            },"Cancel")
            }
            d.add(i+"_middle","div",{
            "class":"mceIcon"
        });
        d.setHTML(i+"_content",s.content.replace("\n","<br />"));
        a.add(i,"keyup",function(f){
            var p=27;
            if(f.keyCode===p){
                s.button_func(false);
                return a.cancel(f)
                }
            });
    a.add(i,"keydown",function(f){
        var t,p=9;
        if(f.keyCode===p){
            t=d.select("a.mceCancel",i+"_wrapper")[0];
            if(t&&t!==f.target){
                t.focus()
                }else{
                d.get(i+"_ok").focus()
                }
                return a.cancel(f)
            }
        })
}
o=a.add(i,"mousedown",function(t){
    var u=t.target,f,p;
    f=z.windows[i];
    z.focus(i);
    if(u.nodeName=="A"||u.nodeName=="a"){
        if(u.className=="mceClose"){
            z.close(null,i);
            return a.cancel(t)
            }else{
            if(u.className=="mceMax"){
                f.oldPos=f.element.getXY();
                f.oldSize=f.element.getSize();
                p=d.getViewPort();
                p.w-=2;
                p.h-=2;
                f.element.moveTo(p.x,p.y);
                f.element.resizeTo(p.w,p.h);
                d.setStyles(i+"_ifr",{
                    width:p.w-f.deltaWidth,
                    height:p.h-f.deltaHeight
                    });
                d.addClass(i+"_wrapper","mceMaximized")
                }else{
                if(u.className=="mceMed"){
                    f.element.moveTo(f.oldPos.x,f.oldPos.y);
                    f.element.resizeTo(f.oldSize.w,f.oldSize.h);
                    f.iframeElement.resizeTo(f.oldSize.w-f.deltaWidth,f.oldSize.h-f.deltaHeight);
                    d.removeClass(i+"_wrapper","mceMaximized")
                    }else{
                    if(u.className=="mceMove"){
                        return z._startDrag(i,t,u.className)
                        }else{
                        if(d.hasClass(u,"mceResize")){
                            return z._startDrag(i,t,u.className.substring(13))
                            }
                        }
                }
        }
}
}
});
q=a.add(i,"click",function(f){
    var p=f.target;
    z.focus(i);
    if(p.nodeName=="A"||p.nodeName=="a"){
        switch(p.className){
            case"mceClose":
                z.close(null,i);
                return a.cancel(f);
            case"mceButton mceOk":case"mceButton mceCancel":
                s.button_func(p.className=="mceButton mceOk");
                return a.cancel(f)
                }
            }
});
a.add([i+"_left",i+"_right"],"focus",function(p){
    var t=d.get(i+"_ifr");
    if(t){
        var f=t.contentWindow.document.body;
        var u=d.select(":input:enabled,*[tabindex=0]",f);
        if(p.target.id===(i+"_left")){
            u[u.length-1].focus()
            }else{
            u[0].focus()
            }
        }else{
    d.get(i+"_ok").focus()
    }
});
x=z.windows[i]={
    id:i,
    mousedown_func:o,
    click_func:q,
    element:new b(i,{
        blocker:1,
        container:r.getContainer()
        }),
    iframeElement:new b(i+"_ifr"),
    features:s,
    deltaWidth:g,
    deltaHeight:v
};

x.iframeElement.on("focus",function(){
    z.focus(i)
    });
if(z.count==0&&z.editor.getParam("dialog_type","modal")=="modal"){
    d.add(d.doc.body,"div",{
        id:"mceModalBlocker",
        "class":(z.editor.settings.inlinepopups_skin||"clearlooks2")+"_modalBlocker",
        style:{
            zIndex:z.zIndex-1
            }
        });
d.show("mceModalBlocker");
d.setAttrib(d.doc.body,"aria-hidden","true")
}else{
    d.setStyle("mceModalBlocker","z-index",z.zIndex-1)
    }
    if(tinymce.isIE6||/Firefox\/2\./.test(navigator.userAgent)||(tinymce.isIE&&!d.boxModel)){
    d.setStyles("mceModalBlocker",{
        position:"absolute",
        left:h.x,
        top:h.y,
        width:h.w-2,
        height:h.h-2
        })
    }
    d.setAttrib(i,"aria-hidden","false");
z.focus(i);
z._fixIELayout(i,1);
if(d.get(i+"_ok")){
    d.get(i+"_ok").focus()
    }
    z.count++;
return x
},
focus:function(h){
    var g=this,f;
    if(f=g.windows[h]){
        f.zIndex=this.zIndex++;
        f.element.setStyle("zIndex",f.zIndex);
        f.element.update();
        h=h+"_wrapper";
        d.removeClass(g.lastId,"mceFocus");
        d.addClass(h,"mceFocus");
        g.lastId=h;
        if(f.focussedElement){
            f.focussedElement.focus()
            }else{
            if(d.get(h+"_ok")){
                d.get(f.id+"_ok").focus()
                }else{
                if(d.get(f.id+"_ifr")){
                    d.get(f.id+"_ifr").focus()
                    }
                }
        }
}
},
_addAll:function(k,h){
    var g,l,f=this,j=tinymce.DOM;
    if(c(h,"string")){
        k.appendChild(j.doc.createTextNode(h))
        }else{
        if(h.length){
            k=k.appendChild(j.create(h[0],h[1]));
            for(g=2;g<h.length;g++){
                f._addAll(k,h[g])
                }
            }
        }
},
_startDrag:function(v,G,E){
    var o=this,u,z,C=d.doc,f,l=o.windows[v],h=l.element,y=h.getXY(),x,q,F,g,A,s,r,j,i,m,k,n,B;
    g={
        x:0,
        y:0
    };
    
    A=d.getViewPort();
    A.w-=2;
    A.h-=2;
    j=G.screenX;
    i=G.screenY;
    m=k=n=B=0;
    u=a.add(C,"mouseup",function(p){
        a.remove(C,"mouseup",u);
        a.remove(C,"mousemove",z);
        if(f){
            f.remove()
            }
            h.moveBy(m,k);
        h.resizeBy(n,B);
        q=h.getSize();
        d.setStyles(v+"_ifr",{
            width:q.w-l.deltaWidth,
            height:q.h-l.deltaHeight
            });
        o._fixIELayout(v,1);
        return a.cancel(p)
        });
    if(E!="Move"){
        D()
        }
        function D(){
        if(f){
            return
        }
        o._fixIELayout(v,0);
        d.add(C.body,"div",{
            id:"mceEventBlocker",
            "class":"mceEventBlocker "+(o.editor.settings.inlinepopups_skin||"clearlooks2"),
            style:{
                zIndex:o.zIndex+1
                }
            });
    if(tinymce.isIE6||(tinymce.isIE&&!d.boxModel)){
        d.setStyles("mceEventBlocker",{
            position:"absolute",
            left:A.x,
            top:A.y,
            width:A.w-2,
            height:A.h-2
            })
        }
        f=new b("mceEventBlocker");
    f.update();
    x=h.getXY();
    q=h.getSize();
    s=g.x+x.x-A.x;
    r=g.y+x.y-A.y;
    d.add(f.get(),"div",{
        id:"mcePlaceHolder",
        "class":"mcePlaceHolder",
        style:{
            left:s,
            top:r,
            width:q.w,
            height:q.h
            }
        });
F=new b("mcePlaceHolder")
}
z=a.add(C,"mousemove",function(w){
    var p,H,t;
    D();
    p=w.screenX-j;
    H=w.screenY-i;
    switch(E){
        case"ResizeW":
            m=p;
            n=0-p;
            break;
        case"ResizeE":
            n=p;
            break;
        case"ResizeN":case"ResizeNW":case"ResizeNE":
            if(E=="ResizeNW"){
            m=p;
            n=0-p
            }else{
            if(E=="ResizeNE"){
                n=p
                }
            }
        k=H;
        B=0-H;
        break;
    case"ResizeS":case"ResizeSW":case"ResizeSE":
        if(E=="ResizeSW"){
        m=p;
        n=0-p
        }else{
        if(E=="ResizeSE"){
            n=p
            }
        }
    B=H;
    break;
case"mceMove":
    m=p;
    k=H;
    break
    }
    if(n<(t=l.features.min_width-q.w)){
    if(m!==0){
        m+=n-t
        }
        n=t
    }
    if(B<(t=l.features.min_height-q.h)){
    if(k!==0){
        k+=B-t
        }
        B=t
    }
    n=Math.min(n,l.features.max_width-q.w);
B=Math.min(B,l.features.max_height-q.h);
m=Math.max(m,A.x-(s+A.x));
k=Math.max(k,A.y-(r+A.y));
m=Math.min(m,(A.w+A.x)-(s+q.w+A.x));
k=Math.min(k,(A.h+A.y)-(r+q.h+A.y));
if(m+k!==0){
    if(s+m<0){
        m=0
        }
        if(r+k<0){
        k=0
        }
        F.moveTo(s+m,r+k)
    }
    if(n+B!==0){
    F.resizeTo(q.w+n,q.h+B)
    }
    return a.cancel(w)
});
return a.cancel(G)
},
resizeBy:function(g,h,i){
    var f=this.windows[i];
    if(f){
        f.element.resizeBy(g,h);
        f.iframeElement.resizeBy(g,h)
        }
    },
close:function(i,k){
    var g=this,f,j=d.doc,h,k;
    k=g._findId(k||i);
    if(!g.windows[k]){
        g.parent(i);
        return
    }
    g.count--;
    if(g.count==0){
        d.remove("mceModalBlocker");
        d.setAttrib(d.doc.body,"aria-hidden","false");
        g.editor.focus()
        }
        if(f=g.windows[k]){
        g.onClose.dispatch(g);
        a.remove(j,"mousedown",f.mousedownFunc);
        a.remove(j,"click",f.clickFunc);
        a.clear(k);
        a.clear(k+"_ifr");
        d.setAttrib(k+"_ifr","src",'javascript:""');
        f.element.remove();
        delete g.windows[k];
        h=g._frontWindow();
        if(h){
            g.focus(h.id)
            }
        }
},
_frontWindow:function(){
    var g,f=0;
    e(this.windows,function(h){
        if(h.zIndex>f){
            g=h;
            f=h.zIndex
            }
        });
return g
},
setTitle:function(f,g){
    var h;
    f=this._findId(f);
    if(h=d.get(f+"_title")){
        h.innerHTML=d.encode(g)
        }
    },
alert:function(g,f,j){
    var i=this,h;
    h=i.open({
        title:i,
        type:"alert",
        button_func:function(k){
            if(f){
                f.call(k||i,k)
                }
                i.close(null,h.id)
            },
        content:d.encode(i.editor.getLang(g,g)),
        inline:1,
        width:400,
        height:130
    })
    },
confirm:function(g,f,j){
    var i=this,h;
    h=i.open({
        title:i,
        type:"confirm",
        button_func:function(k){
            if(f){
                f.call(k||i,k)
                }
                i.close(null,h.id)
            },
        content:d.encode(i.editor.getLang(g,g)),
        inline:1,
        width:400,
        height:130
    })
    },
_findId:function(f){
    var g=this;
    if(typeof(f)=="string"){
        return f
        }
        e(g.windows,function(h){
        var i=d.get(h.id+"_ifr");
        if(i&&f==i.contentWindow){
            f=h.id;
            return false
            }
        });
return f
},
_fixIELayout:function(i,h){
    var f,g;
    if(!tinymce.isIE6){
        return
    }
    e(["n","s","w","e","nw","ne","sw","se"],function(j){
        var k=d.get(i+"_resize_"+j);
        d.setStyles(k,{
            width:h?k.clientWidth:"",
            height:h?k.clientHeight:"",
            cursor:d.getStyle(k,"cursor",1)
            });
        d.setStyle(i+"_bottom","bottom","-1px");
        k=0
        });
    if(f=this.windows[i]){
        f.element.hide();
        f.element.show();
        e(d.select("div,a",i),function(k,j){
            if(k.currentStyle.backgroundImage!="none"){
                g=new Image();
                g.src=k.currentStyle.backgroundImage.replace(/url\(\"(.+)\"\)/,"$1")
                }
            });
    d.get(i).style.filter=""
    }
}
});
tinymce.PluginManager.add("inlinepopups",tinymce.plugins.InlinePopups)
})();