/*
Copyright (c) 2008, Yahoo! Inc. All rights reserved.
Code licensed under the BSD License:
http://developer.yahoo.net/yui/license.txt
version: 2.5.0
*/
(function(){
    YAHOO.util.Config=function(D){
        if(D){
            this.init(D);
        }
    };

var B=YAHOO.lang,C=YAHOO.util.CustomEvent,A=YAHOO.util.Config;
A.CONFIG_CHANGED_EVENT="configChanged";
A.BOOLEAN_TYPE="boolean";
A.prototype={
    owner:null,
    queueInProgress:false,
    config:null,
    initialConfig:null,
    eventQueue:null,
    configChangedEvent:null,
    init:function(D){
        this.owner=D;
        this.configChangedEvent=this.createEvent(A.CONFIG_CHANGED_EVENT);
        this.configChangedEvent.signature=C.LIST;
        this.queueInProgress=false;
        this.config={};

        this.initialConfig={};

        this.eventQueue=[];
    },
    checkBoolean:function(D){
        return(typeof D==A.BOOLEAN_TYPE);
    },
    checkNumber:function(D){
        return(!isNaN(D));
    },
    fireEvent:function(D,F){
        var E=this.config[D];
        if(E&&E.event){
            E.event.fire(F);
        }
    },
addProperty:function(E,D){
    E=E.toLowerCase();
    this.config[E]=D;
    D.event=this.createEvent(E,{
        scope:this.owner
        });
    D.event.signature=C.LIST;
    D.key=E;
    if(D.handler){
        D.event.subscribe(D.handler,this.owner);
    }
    this.setProperty(E,D.value,true);
    if(!D.suppressEvent){
        this.queueProperty(E,D.value);
    }
},
getConfig:function(){
    var D={},F,E;
    for(F in this.config){
        E=this.config[F];
        if(E&&E.event){
            D[F]=E.value;
        }
    }
    return D;
},
getProperty:function(D){
    var E=this.config[D.toLowerCase()];
    if(E&&E.event){
        return E.value;
    }else{
        return undefined;
    }
},
resetProperty:function(D){
    D=D.toLowerCase();
    var E=this.config[D];
    if(E&&E.event){
        if(this.initialConfig[D]&&!B.isUndefined(this.initialConfig[D])){
            this.setProperty(D,this.initialConfig[D]);
            return true;
        }
    }else{
    return false;
}
},
setProperty:function(E,G,D){
    var F;
    E=E.toLowerCase();
    if(this.queueInProgress&&!D){
        this.queueProperty(E,G);
        return true;
    }else{
        F=this.config[E];
        if(F&&F.event){
            if(F.validator&&!F.validator(G)){
                return false;
            }else{
                F.value=G;
                if(!D){
                    this.fireEvent(E,G);
                    this.configChangedEvent.fire([E,G]);
                }
                return true;
            }
        }else{
        return false;
    }
}
},
queueProperty:function(S,P){
    S=S.toLowerCase();
    var R=this.config[S],K=false,J,G,H,I,O,Q,F,M,N,D,L,T,E;
    if(R&&R.event){
        if(!B.isUndefined(P)&&R.validator&&!R.validator(P)){
            return false;
        }else{
            if(!B.isUndefined(P)){
                R.value=P;
            }else{
                P=R.value;
            }
            K=false;
            J=this.eventQueue.length;
            for(L=0;L<J;L++){
                G=this.eventQueue[L];
                if(G){
                    H=G[0];
                    I=G[1];
                    if(H==S){
                        this.eventQueue[L]=null;
                        this.eventQueue.push([S,(!B.isUndefined(P)?P:I)]);
                        K=true;
                        break;
                    }
                }
            }
            if(!K&&!B.isUndefined(P)){
        this.eventQueue.push([S,P]);
    }
}
if(R.supercedes){
    O=R.supercedes.length;
    for(T=0;T<O;T++){
        Q=R.supercedes[T];
        F=this.eventQueue.length;
        for(E=0;E<F;E++){
            M=this.eventQueue[E];
            if(M){
                N=M[0];
                D=M[1];
                if(N==Q.toLowerCase()){
                    this.eventQueue.push([N,D]);
                    this.eventQueue[E]=null;
                    break;
                }
            }
        }
    }
}
return true;
}else{
    return false;
}
},
refireEvent:function(D){
    D=D.toLowerCase();
    var E=this.config[D];
    if(E&&E.event&&!B.isUndefined(E.value)){
        if(this.queueInProgress){
            this.queueProperty(D);
        }else{
            this.fireEvent(D,E.value);
        }
    }
},
applyConfig:function(D,G){
    var F,E;
    if(G){
        E={};

        for(F in D){
            if(B.hasOwnProperty(D,F)){
                E[F.toLowerCase()]=D[F];
            }
        }
        this.initialConfig=E;
}
for(F in D){
    if(B.hasOwnProperty(D,F)){
        this.queueProperty(F,D[F]);
    }
}
},
refresh:function(){
    var D;
    for(D in this.config){
        this.refireEvent(D);
    }
    },
fireQueue:function(){
    var E,H,D,G,F;
    this.queueInProgress=true;
    for(E=0;E<this.eventQueue.length;E++){
        H=this.eventQueue[E];
        if(H){
            D=H[0];
            G=H[1];
            F=this.config[D];
            F.value=G;
            this.fireEvent(D,G);
        }
    }
    this.queueInProgress=false;
this.eventQueue=[];
},
subscribeToConfigEvent:function(E,F,H,D){
    var G=this.config[E.toLowerCase()];
    if(G&&G.event){
        if(!A.alreadySubscribed(G.event,F,H)){
            G.event.subscribe(F,H,D);
        }
        return true;
    }else{
        return false;
    }
},
unsubscribeFromConfigEvent:function(D,E,G){
    var F=this.config[D.toLowerCase()];
    if(F&&F.event){
        return F.event.unsubscribe(E,G);
    }else{
        return false;
    }
},
toString:function(){
    var D="Config";
    if(this.owner){
        D+=" ["+this.owner.toString()+"]";
    }
    return D;
},
outputEventQueue:function(){
    var D="",G,E,F=this.eventQueue.length;
    for(E=0;E<F;E++){
        G=this.eventQueue[E];
        if(G){
            D+=G[0]+"="+G[1]+", ";
        }
    }
    return D;
},
destroy:function(){
    var E=this.config,D,F;
    for(D in E){
        if(B.hasOwnProperty(E,D)){
            F=E[D];
            F.event.unsubscribeAll();
            F.event=null;
        }
    }
    this.configChangedEvent.unsubscribeAll();
this.configChangedEvent=null;
this.owner=null;
this.config=null;
this.initialConfig=null;
this.eventQueue=null;
}
};

A.alreadySubscribed=function(E,H,I){
    var F=E.subscribers.length,D,G;
    if(F>0){
        G=F-1;
        do{
            D=E.subscribers[G];
            if(D&&D.obj==I&&D.fn==H){
                return true;
            }
        }while(G--);
}
return false;
};

YAHOO.lang.augmentProto(A,YAHOO.util.EventProvider);
}());
(function(){
    YAHOO.widget.Module=function(Q,P){
        if(Q){
            this.init(Q,P);
        }else{}
};

var F=YAHOO.util.Dom,D=YAHOO.util.Config,M=YAHOO.util.Event,L=YAHOO.util.CustomEvent,G=YAHOO.widget.Module,H,O,N,E,A={
    "BEFORE_INIT":"beforeInit",
    "INIT":"init",
    "APPEND":"append",
    "BEFORE_RENDER":"beforeRender",
    "RENDER":"render",
    "CHANGE_HEADER":"changeHeader",
    "CHANGE_BODY":"changeBody",
    "CHANGE_FOOTER":"changeFooter",
    "CHANGE_CONTENT":"changeContent",
    "DESTORY":"destroy",
    "BEFORE_SHOW":"beforeShow",
    "SHOW":"show",
    "BEFORE_HIDE":"beforeHide",
    "HIDE":"hide"
},I={
    "VISIBLE":{
        key:"visible",
        value:true,
        validator:YAHOO.lang.isBoolean
        },
    "EFFECT":{
        key:"effect",
        suppressEvent:true,
        supercedes:["visible"]
        },
    "MONITOR_RESIZE":{
        key:"monitorresize",
        value:true
    },
    "APPEND_TO_DOCUMENT_BODY":{
        key:"appendtodocumentbody",
        value:false
    }
};

G.IMG_ROOT=null;
G.IMG_ROOT_SSL=null;
G.CSS_MODULE="yui-module";
G.CSS_HEADER="hd";
G.CSS_BODY="bd";
G.CSS_FOOTER="ft";
G.RESIZE_MONITOR_SECURE_URL="javascript:false;";
G.textResizeEvent=new L("textResize");
    function K(){
    if(!H){
        H=document.createElement("div");
        H.innerHTML=("<div class=\""+G.CSS_HEADER+"\"></div><div class=\""+G.CSS_BODY+"\"></div><div class=\""+G.CSS_FOOTER+"\"></div>");
        O=H.firstChild;
        N=O.nextSibling;
        E=N.nextSibling;
    }
    return H;
}
function J(){
    if(!O){
        K();
    }
    return(O.cloneNode(false));
}
function B(){
    if(!N){
        K();
    }
    return(N.cloneNode(false));
}
function C(){
    if(!E){
        K();
    }
    return(E.cloneNode(false));
}
G.prototype={
    constructor:G,
    element:null,
    header:null,
    body:null,
    footer:null,
    id:null,
    imageRoot:G.IMG_ROOT,
    initEvents:function(){
        var P=L.LIST;
        this.beforeInitEvent=this.createEvent(A.BEFORE_INIT);
        this.beforeInitEvent.signature=P;
        this.initEvent=this.createEvent(A.INIT);
        this.initEvent.signature=P;
        this.appendEvent=this.createEvent(A.APPEND);
        this.appendEvent.signature=P;
        this.beforeRenderEvent=this.createEvent(A.BEFORE_RENDER);
        this.beforeRenderEvent.signature=P;
        this.renderEvent=this.createEvent(A.RENDER);
        this.renderEvent.signature=P;
        this.changeHeaderEvent=this.createEvent(A.CHANGE_HEADER);
        this.changeHeaderEvent.signature=P;
        this.changeBodyEvent=this.createEvent(A.CHANGE_BODY);
        this.changeBodyEvent.signature=P;
        this.changeFooterEvent=this.createEvent(A.CHANGE_FOOTER);
        this.changeFooterEvent.signature=P;
        this.changeContentEvent=this.createEvent(A.CHANGE_CONTENT);
        this.changeContentEvent.signature=P;
        this.destroyEvent=this.createEvent(A.DESTORY);
        this.destroyEvent.signature=P;
        this.beforeShowEvent=this.createEvent(A.BEFORE_SHOW);
        this.beforeShowEvent.signature=P;
        this.showEvent=this.createEvent(A.SHOW);
        this.showEvent.signature=P;
        this.beforeHideEvent=this.createEvent(A.BEFORE_HIDE);
        this.beforeHideEvent.signature=P;
        this.hideEvent=this.createEvent(A.HIDE);
        this.hideEvent.signature=P;
    },
    platform:function(){
        var P=navigator.userAgent.toLowerCase();
        if(P.indexOf("windows")!=-1||P.indexOf("win32")!=-1){
            return"windows";
        }else{
            if(P.indexOf("macintosh")!=-1){
                return"mac";
            }else{
                return false;
            }
        }
    }(),
browser:function(){
    var P=navigator.userAgent.toLowerCase();
    if(P.indexOf("opera")!=-1){
        return"opera";
    }else{
        if(P.indexOf("msie 7")!=-1){
            return"ie7";
        }else{
            if(P.indexOf("msie")!=-1){
                return"ie";
            }else{
                if(P.indexOf("safari")!=-1){
                    return"safari";
                }else{
                    if(P.indexOf("gecko")!=-1){
                        return"gecko";
                    }else{
                        return false;
                    }
                }
            }
    }
}
}(),
isSecure:function(){
    if(window.location.href.toLowerCase().indexOf("https")===0){
        return true;
    }else{
        return false;
    }
}(),
initDefaultConfig:function(){
    this.cfg.addProperty(I.VISIBLE.key,{
        handler:this.configVisible,
        value:I.VISIBLE.value,
        validator:I.VISIBLE.validator
        });
    this.cfg.addProperty(I.EFFECT.key,{
        suppressEvent:I.EFFECT.suppressEvent,
        supercedes:I.EFFECT.supercedes
        });
    this.cfg.addProperty(I.MONITOR_RESIZE.key,{
        handler:this.configMonitorResize,
        value:I.MONITOR_RESIZE.value
        });
    this.cfg.addProperty(I.APPEND_TO_DOCUMENT_BODY.key,{
        value:I.APPEND_TO_DOCUMENT_BODY.value
        });
},
init:function(U,T){
    var R,V;
    this.initEvents();
    this.beforeInitEvent.fire(G);
    this.cfg=new D(this);
    if(this.isSecure){
        this.imageRoot=G.IMG_ROOT_SSL;
    }
    if(typeof U=="string"){
        R=U;
        U=document.getElementById(U);
        if(!U){
            U=(K()).cloneNode(false);
            U.id=R;
        }
    }
    this.element=U;
if(U.id){
    this.id=U.id;
}
V=this.element.firstChild;
if(V){
    var Q=false,P=false,S=false;
    do{
        if(1==V.nodeType){
            if(!Q&&F.hasClass(V,G.CSS_HEADER)){
                this.header=V;
                Q=true;
            }else{
                if(!P&&F.hasClass(V,G.CSS_BODY)){
                    this.body=V;
                    P=true;
                }else{
                    if(!S&&F.hasClass(V,G.CSS_FOOTER)){
                        this.footer=V;
                        S=true;
                    }
                }
            }
    }
}while((V=V.nextSibling));
}
this.initDefaultConfig();
F.addClass(this.element,G.CSS_MODULE);
if(T){
    this.cfg.applyConfig(T,true);
}
if(!D.alreadySubscribed(this.renderEvent,this.cfg.fireQueue,this.cfg)){
    this.renderEvent.subscribe(this.cfg.fireQueue,this.cfg,true);
}
this.initEvent.fire(G);
},
initResizeMonitor:function(){
    var Q=(YAHOO.env.ua.gecko&&this.platform=="windows");
    if(Q){
        var P=this;
        setTimeout(function(){
            P._initResizeMonitor();
        },0);
    }else{
        this._initResizeMonitor();
    }
},
_initResizeMonitor:function(){
    var P,R,T;
    function V(){
        G.textResizeEvent.fire();
    }
    if(!YAHOO.env.ua.opera){
        R=F.get("_yuiResizeMonitor");
        var U=this._supportsCWResize();
        if(!R){
            R=document.createElement("iframe");
            if(this.isSecure&&G.RESIZE_MONITOR_SECURE_URL&&YAHOO.env.ua.ie){
                R.src=G.RESIZE_MONITOR_SECURE_URL;
            }
            if(!U){
                T=["<html><head><script ","type=\"text/javascript\">","window.onresize=function(){window.parent.","YAHOO.widget.Module.textResizeEvent.","fire();};<","/script></head>","<body></body></html>"].join("");
                R.src="data:text/html;charset=utf-8,"+encodeURIComponent(T);
            }
            R.id="_yuiResizeMonitor";
            R.style.position="absolute";
            R.style.visibility="hidden";
            var Q=document.body,S=Q.firstChild;
            if(S){
                Q.insertBefore(R,S);
            }else{
                Q.appendChild(R);
            }
            R.style.width="10em";
            R.style.height="10em";
            R.style.top=(-1*R.offsetHeight)+"px";
            R.style.left=(-1*R.offsetWidth)+"px";
            R.style.borderWidth="0";
            R.style.visibility="visible";
            if(YAHOO.env.ua.webkit){
                P=R.contentWindow.document;
                P.open();
                P.close();
            }
        }
        if(R&&R.contentWindow){
        G.textResizeEvent.subscribe(this.onDomResize,this,true);
        if(!G.textResizeInitialized){
            if(U){
                if(!M.on(R.contentWindow,"resize",V)){
                    M.on(R,"resize",V);
                }
            }
            G.textResizeInitialized=true;
    }
    this.resizeMonitor=R;
}
}
},
_supportsCWResize:function(){
    var P=true;
    if(YAHOO.env.ua.gecko&&YAHOO.env.ua.gecko<=1.8){
        P=false;
    }
    return P;
},
onDomResize:function(S,R){
    var Q=-1*this.resizeMonitor.offsetWidth,P=-1*this.resizeMonitor.offsetHeight;
    this.resizeMonitor.style.top=P+"px";
    this.resizeMonitor.style.left=Q+"px";
},
setHeader:function(Q){
    var P=this.header||(this.header=J());
    if(Q.tagName){
        P.innerHTML="";
        P.appendChild(Q);
    }else{
        P.innerHTML=Q;
    }
    this.changeHeaderEvent.fire(Q);
    this.changeContentEvent.fire();
},
appendToHeader:function(Q){
    var P=this.header||(this.header=J());
    P.appendChild(Q);
    this.changeHeaderEvent.fire(Q);
    this.changeContentEvent.fire();
},
setBody:function(Q){
    var P=this.body||(this.body=B());
    if(Q.tagName){
        P.innerHTML="";
        P.appendChild(Q);
    }else{
        P.innerHTML=Q;
    }
    this.changeBodyEvent.fire(Q);
    this.changeContentEvent.fire();
},
appendToBody:function(Q){
    var P=this.body||(this.body=B());
    P.appendChild(Q);
    this.changeBodyEvent.fire(Q);
    this.changeContentEvent.fire();
},
setFooter:function(Q){
    var P=this.footer||(this.footer=C());
    if(Q.tagName){
        P.innerHTML="";
        P.appendChild(Q);
    }else{
        P.innerHTML=Q;
    }
    this.changeFooterEvent.fire(Q);
    this.changeContentEvent.fire();
},
appendToFooter:function(Q){
    var P=this.footer||(this.footer=C());
    P.appendChild(Q);
    this.changeFooterEvent.fire(Q);
    this.changeContentEvent.fire();
},
render:function(R,P){
    var S=this,T;
    function Q(U){
        if(typeof U=="string"){
            U=document.getElementById(U);
        }
        if(U){
            S._addToParent(U,S.element);
            S.appendEvent.fire();
        }
    }
    this.beforeRenderEvent.fire();
if(!P){
    P=this.element;
}
if(R){
    Q(R);
}else{
    if(!F.inDocument(this.element)){
        return false;
    }
}
if(this.header&&!F.inDocument(this.header)){
    T=P.firstChild;
    if(T){
        P.insertBefore(this.header,T);
    }else{
        P.appendChild(this.header);
    }
}
if(this.body&&!F.inDocument(this.body)){
    if(this.footer&&F.isAncestor(this.moduleElement,this.footer)){
        P.insertBefore(this.body,this.footer);
    }else{
        P.appendChild(this.body);
    }
}
if(this.footer&&!F.inDocument(this.footer)){
    P.appendChild(this.footer);
}
this.renderEvent.fire();
return true;
},
destroy:function(){
    var P,Q;
    if(this.element){
        M.purgeElement(this.element,true);
        P=this.element.parentNode;
    }
    if(P){
        P.removeChild(this.element);
    }
    this.element=null;
    this.header=null;
    this.body=null;
    this.footer=null;
    G.textResizeEvent.unsubscribe(this.onDomResize,this);
    this.cfg.destroy();
    this.cfg=null;
    this.destroyEvent.fire();
    for(Q in this){
        if(Q instanceof L){
            Q.unsubscribeAll();
        }
    }
    },
show:function(){
    this.cfg.setProperty("visible",true);
},
hide:function(){
    this.cfg.setProperty("visible",false);
},
configVisible:function(Q,P,R){
    var S=P[0];
    if(S){
        this.beforeShowEvent.fire();
        F.setStyle(this.element,"display","block");
        this.showEvent.fire();
    }else{
        this.beforeHideEvent.fire();
        F.setStyle(this.element,"display","none");
        this.hideEvent.fire();
    }
},
configMonitorResize:function(R,Q,S){
    var P=Q[0];
    if(P){
        this.initResizeMonitor();
    }else{
        G.textResizeEvent.unsubscribe(this.onDomResize,this,true);
        this.resizeMonitor=null;
    }
},
_addToParent:function(P,Q){
    if(!this.cfg.getProperty("appendtodocumentbody")&&P===document.body&&P.firstChild){
        P.insertBefore(Q,P.firstChild);
    }else{
        P.appendChild(Q);
    }
},
toString:function(){
    return"Module "+this.id;
}
};

YAHOO.lang.augmentProto(G,YAHOO.util.EventProvider);
}());
(function(){
    YAHOO.widget.Overlay=function(L,K){
        YAHOO.widget.Overlay.superclass.constructor.call(this,L,K);
    };

    var F=YAHOO.lang,I=YAHOO.util.CustomEvent,E=YAHOO.widget.Module,J=YAHOO.util.Event,D=YAHOO.util.Dom,C=YAHOO.util.Config,B=YAHOO.widget.Overlay,G,A={
        "BEFORE_MOVE":"beforeMove",
        "MOVE":"move"
    },H={
        "X":{
            key:"x",
            validator:F.isNumber,
            suppressEvent:true,
            supercedes:["iframe"]
            },
        "Y":{
            key:"y",
            validator:F.isNumber,
            suppressEvent:true,
            supercedes:["iframe"]
            },
        "XY":{
            key:"xy",
            suppressEvent:true,
            supercedes:["iframe"]
            },
        "CONTEXT":{
            key:"context",
            suppressEvent:true,
            supercedes:["iframe"]
            },
        "FIXED_CENTER":{
            key:"fixedcenter",
            value:false,
            validator:F.isBoolean,
            supercedes:["iframe","visible"]
            },
        "WIDTH":{
            key:"width",
            suppressEvent:true,
            supercedes:["context","fixedcenter","iframe"]
            },
        "HEIGHT":{
            key:"height",
            suppressEvent:true,
            supercedes:["context","fixedcenter","iframe"]
            },
        "ZINDEX":{
            key:"zindex",
            value:null
        },
        "CONSTRAIN_TO_VIEWPORT":{
            key:"constraintoviewport",
            value:false,
            validator:F.isBoolean,
            supercedes:["iframe","x","y","xy"]
            },
        "IFRAME":{
            key:"iframe",
            value:(YAHOO.env.ua.ie==6?true:false),
            validator:F.isBoolean,
            supercedes:["zindex"]
            }
        };

B.IFRAME_SRC="javascript:false;";
B.IFRAME_OFFSET=3;
B.VIEWPORT_OFFSET=10;
B.TOP_LEFT="tl";
B.TOP_RIGHT="tr";
B.BOTTOM_LEFT="bl";
B.BOTTOM_RIGHT="br";
B.CSS_OVERLAY="yui-overlay";
B.windowScrollEvent=new I("windowScroll");
    B.windowResizeEvent=new I("windowResize");
    B.windowScrollHandler=function(K){
    if(YAHOO.env.ua.ie){
        if(!window.scrollEnd){
            window.scrollEnd=-1;
        }
        clearTimeout(window.scrollEnd);
        window.scrollEnd=setTimeout(function(){
            B.windowScrollEvent.fire();
        },1);
    }else{
        B.windowScrollEvent.fire();
    }
};

B.windowResizeHandler=function(K){
    if(YAHOO.env.ua.ie){
        if(!window.resizeEnd){
            window.resizeEnd=-1;
        }
        clearTimeout(window.resizeEnd);
        window.resizeEnd=setTimeout(function(){
            B.windowResizeEvent.fire();
        },100);
    }else{
        B.windowResizeEvent.fire();
    }
};

B._initialized=null;
if(B._initialized===null){
    J.on(window,"scroll",B.windowScrollHandler);
    J.on(window,"resize",B.windowResizeHandler);
    B._initialized=true;
}
YAHOO.extend(B,E,{
    init:function(L,K){
        B.superclass.init.call(this,L);
        this.beforeInitEvent.fire(B);
        D.addClass(this.element,B.CSS_OVERLAY);
        if(K){
            this.cfg.applyConfig(K,true);
        }
        if(this.platform=="mac"&&YAHOO.env.ua.gecko){
            if(!C.alreadySubscribed(this.showEvent,this.showMacGeckoScrollbars,this)){
                this.showEvent.subscribe(this.showMacGeckoScrollbars,this,true);
            }
            if(!C.alreadySubscribed(this.hideEvent,this.hideMacGeckoScrollbars,this)){
                this.hideEvent.subscribe(this.hideMacGeckoScrollbars,this,true);
            }
        }
        this.initEvent.fire(B);
},
initEvents:function(){
    B.superclass.initEvents.call(this);
    var K=I.LIST;
    this.beforeMoveEvent=this.createEvent(A.BEFORE_MOVE);
    this.beforeMoveEvent.signature=K;
    this.moveEvent=this.createEvent(A.MOVE);
    this.moveEvent.signature=K;
},
initDefaultConfig:function(){
    B.superclass.initDefaultConfig.call(this);
    this.cfg.addProperty(H.X.key,{
        handler:this.configX,
        validator:H.X.validator,
        suppressEvent:H.X.suppressEvent,
        supercedes:H.X.supercedes
        });
    this.cfg.addProperty(H.Y.key,{
        handler:this.configY,
        validator:H.Y.validator,
        suppressEvent:H.Y.suppressEvent,
        supercedes:H.Y.supercedes
        });
    this.cfg.addProperty(H.XY.key,{
        handler:this.configXY,
        suppressEvent:H.XY.suppressEvent,
        supercedes:H.XY.supercedes
        });
    this.cfg.addProperty(H.CONTEXT.key,{
        handler:this.configContext,
        suppressEvent:H.CONTEXT.suppressEvent,
        supercedes:H.CONTEXT.supercedes
        });
    this.cfg.addProperty(H.FIXED_CENTER.key,{
        handler:this.configFixedCenter,
        value:H.FIXED_CENTER.value,
        validator:H.FIXED_CENTER.validator,
        supercedes:H.FIXED_CENTER.supercedes
        });
    this.cfg.addProperty(H.WIDTH.key,{
        handler:this.configWidth,
        suppressEvent:H.WIDTH.suppressEvent,
        supercedes:H.WIDTH.supercedes
        });
    this.cfg.addProperty(H.HEIGHT.key,{
        handler:this.configHeight,
        suppressEvent:H.HEIGHT.suppressEvent,
        supercedes:H.HEIGHT.supercedes
        });
    this.cfg.addProperty(H.ZINDEX.key,{
        handler:this.configzIndex,
        value:H.ZINDEX.value
        });
    this.cfg.addProperty(H.CONSTRAIN_TO_VIEWPORT.key,{
        handler:this.configConstrainToViewport,
        value:H.CONSTRAIN_TO_VIEWPORT.value,
        validator:H.CONSTRAIN_TO_VIEWPORT.validator,
        supercedes:H.CONSTRAIN_TO_VIEWPORT.supercedes
        });
    this.cfg.addProperty(H.IFRAME.key,{
        handler:this.configIframe,
        value:H.IFRAME.value,
        validator:H.IFRAME.validator,
        supercedes:H.IFRAME.supercedes
        });
},
moveTo:function(K,L){
    this.cfg.setProperty("xy",[K,L]);
},
hideMacGeckoScrollbars:function(){
    D.removeClass(this.element,"show-scrollbars");
    D.addClass(this.element,"hide-scrollbars");
},
showMacGeckoScrollbars:function(){
    D.removeClass(this.element,"hide-scrollbars");
    D.addClass(this.element,"show-scrollbars");
},
configVisible:function(N,K,T){
    var M=K[0],O=D.getStyle(this.element,"visibility"),U=this.cfg.getProperty("effect"),R=[],Q=(this.platform=="mac"&&YAHOO.env.ua.gecko),b=C.alreadySubscribed,S,L,a,Y,X,W,Z,V,P;
    if(O=="inherit"){
        a=this.element.parentNode;
        while(a.nodeType!=9&&a.nodeType!=11){
            O=D.getStyle(a,"visibility");
            if(O!="inherit"){
                break;
            }
            a=a.parentNode;
        }
        if(O=="inherit"){
            O="visible";
        }
    }
    if(U){
    if(U instanceof Array){
        V=U.length;
        for(Y=0;Y<V;Y++){
            S=U[Y];
            R[R.length]=S.effect(this,S.duration);
        }
        }else{
    R[R.length]=U.effect(this,U.duration);
}
}
if(M){
    if(Q){
        this.showMacGeckoScrollbars();
    }
    if(U){
        if(M){
            if(O!="visible"||O===""){
                this.beforeShowEvent.fire();
                P=R.length;
                for(X=0;X<P;X++){
                    L=R[X];
                    if(X===0&&!b(L.animateInCompleteEvent,this.showEvent.fire,this.showEvent)){
                        L.animateInCompleteEvent.subscribe(this.showEvent.fire,this.showEvent,true);
                    }
                    L.animateIn();
                }
                }
            }
}else{
    if(O!="visible"||O===""){
        this.beforeShowEvent.fire();
        D.setStyle(this.element,"visibility","visible");
        this.cfg.refireEvent("iframe");
        this.showEvent.fire();
    }
}
}else{
    if(Q){
        this.hideMacGeckoScrollbars();
    }
    if(U){
        if(O=="visible"){
            this.beforeHideEvent.fire();
            P=R.length;
            for(W=0;W<P;W++){
                Z=R[W];
                if(W===0&&!b(Z.animateOutCompleteEvent,this.hideEvent.fire,this.hideEvent)){
                    Z.animateOutCompleteEvent.subscribe(this.hideEvent.fire,this.hideEvent,true);
                }
                Z.animateOut();
            }
            }else{
        if(O===""){
            D.setStyle(this.element,"visibility","hidden");
        }
    }
}else{
    if(O=="visible"||O===""){
        this.beforeHideEvent.fire();
        D.setStyle(this.element,"visibility","hidden");
        this.hideEvent.fire();
    }
}
}
},
doCenterOnDOMEvent:function(){
    if(this.cfg.getProperty("visible")){
        this.center();
    }
},
configFixedCenter:function(O,M,P){
    var Q=M[0],L=C.alreadySubscribed,N=B.windowResizeEvent,K=B.windowScrollEvent;
    if(Q){
        this.center();
        if(!L(this.beforeShowEvent,this.center,this)){
            this.beforeShowEvent.subscribe(this.center);
        }
        if(!L(N,this.doCenterOnDOMEvent,this)){
            N.subscribe(this.doCenterOnDOMEvent,this,true);
        }
        if(!L(K,this.doCenterOnDOMEvent,this)){
            K.subscribe(this.doCenterOnDOMEvent,this,true);
        }
    }else{
    this.beforeShowEvent.unsubscribe(this.center);
    N.unsubscribe(this.doCenterOnDOMEvent,this);
    K.unsubscribe(this.doCenterOnDOMEvent,this);
}
},
configHeight:function(N,L,O){
    var K=L[0],M=this.element;
    D.setStyle(M,"height",K);
    this.cfg.refireEvent("iframe");
},
configWidth:function(N,K,O){
    var M=K[0],L=this.element;
    D.setStyle(L,"width",M);
    this.cfg.refireEvent("iframe");
},
configzIndex:function(M,K,N){
    var O=K[0],L=this.element;
    if(!O){
        O=D.getStyle(L,"zIndex");
        if(!O||isNaN(O)){
            O=0;
        }
    }
    if(this.iframe||this.cfg.getProperty("iframe")===true){
    if(O<=0){
        O=1;
    }
}
D.setStyle(L,"zIndex",O);
this.cfg.setProperty("zIndex",O,true);
if(this.iframe){
    this.stackIframe();
}
},
configXY:function(M,L,N){
    var P=L[0],K=P[0],O=P[1];
    this.cfg.setProperty("x",K);
    this.cfg.setProperty("y",O);
    this.beforeMoveEvent.fire([K,O]);
    K=this.cfg.getProperty("x");
    O=this.cfg.getProperty("y");
    this.cfg.refireEvent("iframe");
    this.moveEvent.fire([K,O]);
},
configX:function(M,L,N){
    var K=L[0],O=this.cfg.getProperty("y");
    this.cfg.setProperty("x",K,true);
    this.cfg.setProperty("y",O,true);
    this.beforeMoveEvent.fire([K,O]);
    K=this.cfg.getProperty("x");
    O=this.cfg.getProperty("y");
    D.setX(this.element,K,true);
    this.cfg.setProperty("xy",[K,O],true);
    this.cfg.refireEvent("iframe");
    this.moveEvent.fire([K,O]);
},
configY:function(M,L,N){
    var K=this.cfg.getProperty("x"),O=L[0];
    this.cfg.setProperty("x",K,true);
    this.cfg.setProperty("y",O,true);
    this.beforeMoveEvent.fire([K,O]);
    K=this.cfg.getProperty("x");
    O=this.cfg.getProperty("y");
    D.setY(this.element,O,true);
    this.cfg.setProperty("xy",[K,O],true);
    this.cfg.refireEvent("iframe");
    this.moveEvent.fire([K,O]);
},
showIframe:function(){
    var L=this.iframe,K;
    if(L){
        K=this.element.parentNode;
        if(K!=L.parentNode){
            this._addToParent(K,L);
        }
        L.style.display="block";
    }
},
hideIframe:function(){
    if(this.iframe){
        this.iframe.style.display="none";
    }
},
syncIframe:function(){
    var K=this.iframe,M=this.element,O=B.IFRAME_OFFSET,L=(O*2),N;
    if(K){
        K.style.width=(M.offsetWidth+L+"px");
        K.style.height=(M.offsetHeight+L+"px");
        N=this.cfg.getProperty("xy");
        if(!F.isArray(N)||(isNaN(N[0])||isNaN(N[1]))){
            this.syncPosition();
            N=this.cfg.getProperty("xy");
        }
        D.setXY(K,[(N[0]-O),(N[1]-O)]);
    }
},
stackIframe:function(){
    if(this.iframe){
        var K=D.getStyle(this.element,"zIndex");
        if(!YAHOO.lang.isUndefined(K)&&!isNaN(K)){
            D.setStyle(this.iframe,"zIndex",(K-1));
        }
    }
},
configIframe:function(N,M,O){
    var K=M[0];
    function P(){
        var R=this.iframe,S=this.element,T;
        if(!R){
            if(!G){
                G=document.createElement("iframe");
                if(this.isSecure){
                    G.src=B.IFRAME_SRC;
                }
                if(YAHOO.env.ua.ie){
                    G.style.filter="alpha(opacity=0)";
                    G.frameBorder=0;
                }else{
                    G.style.opacity="0";
                }
                G.style.position="absolute";
                G.style.border="none";
                G.style.margin="0";
                G.style.padding="0";
                G.style.display="none";
            }
            R=G.cloneNode(false);
            T=S.parentNode;
            var Q=T||document.body;
            this._addToParent(Q,R);
            this.iframe=R;
        }
        this.showIframe();
        this.syncIframe();
        this.stackIframe();
        if(!this._hasIframeEventListeners){
            this.showEvent.subscribe(this.showIframe);
            this.hideEvent.subscribe(this.hideIframe);
            this.changeContentEvent.subscribe(this.syncIframe);
            this._hasIframeEventListeners=true;
        }
    }
    function L(){
    P.call(this);
    this.beforeShowEvent.unsubscribe(L);
    this._iframeDeferred=false;
}
if(K){
    if(this.cfg.getProperty("visible")){
        P.call(this);
    }else{
        if(!this._iframeDeferred){
            this.beforeShowEvent.subscribe(L);
            this._iframeDeferred=true;
        }
    }
}else{
    this.hideIframe();
    if(this._hasIframeEventListeners){
        this.showEvent.unsubscribe(this.showIframe);
        this.hideEvent.unsubscribe(this.hideIframe);
        this.changeContentEvent.unsubscribe(this.syncIframe);
        this._hasIframeEventListeners=false;
    }
}
},
_primeXYFromDOM:function(){
    if(YAHOO.lang.isUndefined(this.cfg.getProperty("xy"))){
        this.syncPosition();
        this.cfg.refireEvent("xy");
        this.beforeShowEvent.unsubscribe(this._primeXYFromDOM);
    }
},
configConstrainToViewport:function(L,K,M){
    var N=K[0];
    if(N){
        if(!C.alreadySubscribed(this.beforeMoveEvent,this.enforceConstraints,this)){
            this.beforeMoveEvent.subscribe(this.enforceConstraints,this,true);
        }
        if(!C.alreadySubscribed(this.beforeShowEvent,this._primeXYFromDOM)){
            this.beforeShowEvent.subscribe(this._primeXYFromDOM);
        }
    }else{
    this.beforeShowEvent.unsubscribe(this._primeXYFromDOM);
    this.beforeMoveEvent.unsubscribe(this.enforceConstraints,this);
}
},
configContext:function(M,L,O){
    var Q=L[0],N,P,K;
    if(Q){
        N=Q[0];
        P=Q[1];
        K=Q[2];
        if(N){
            if(typeof N=="string"){
                this.cfg.setProperty("context",[document.getElementById(N),P,K],true);
            }
            if(P&&K){
                this.align(P,K);
            }
        }
    }
},
align:function(L,K){
    var Q=this.cfg.getProperty("context"),P=this,O,N,R;
    function M(S,T){
        switch(L){
            case B.TOP_LEFT:
                P.moveTo(T,S);
                break;
            case B.TOP_RIGHT:
                P.moveTo((T-N.offsetWidth),S);
                break;
            case B.BOTTOM_LEFT:
                P.moveTo(T,(S-N.offsetHeight));
                break;
            case B.BOTTOM_RIGHT:
                P.moveTo((T-N.offsetWidth),(S-N.offsetHeight));
                break;
        }
    }
    if(Q){
    O=Q[0];
    N=this.element;
    P=this;
    if(!L){
        L=Q[1];
    }
    if(!K){
        K=Q[2];
    }
    if(N&&O){
        R=D.getRegion(O);
        switch(K){
            case B.TOP_LEFT:
                M(R.top,R.left);
                break;
            case B.TOP_RIGHT:
                M(R.top,R.right);
                break;
            case B.BOTTOM_LEFT:
                M(R.bottom,R.left);
                break;
            case B.BOTTOM_RIGHT:
                M(R.bottom,R.right);
                break;
        }
    }
}
},
enforceConstraints:function(L,K,M){
    var O=K[0];
    var N=this.getConstrainedXY(O[0],O[1]);
    this.cfg.setProperty("x",N[0],true);
    this.cfg.setProperty("y",N[1],true);
    this.cfg.setProperty("xy",N,true);
},
getConstrainedXY:function(V,T){
    var N=B.VIEWPORT_OFFSET,U=D.getViewportWidth(),Q=D.getViewportHeight(),M=this.element.offsetHeight,S=this.element.offsetWidth,Y=D.getDocumentScrollLeft(),W=D.getDocumentScrollTop();
    var P=V;
    var L=T;
    if(S+N<U){
        var R=Y+N;
        var X=Y+U-S-N;
        if(V<R){
            P=R;
        }else{
            if(V>X){
                P=X;
            }
        }
    }else{
    P=N+Y;
}
if(M+N<Q){
    var O=W+N;
    var K=W+Q-M-N;
    if(T<O){
        L=O;
    }else{
        if(T>K){
            L=K;
        }
    }
}else{
    L=N+W;
}
return[P,L];
},
center:function(){
    var N=B.VIEWPORT_OFFSET,O=this.element.offsetWidth,M=this.element.offsetHeight,L=D.getViewportWidth(),P=D.getViewportHeight(),K,Q;
    if(O<L){
        K=(L/2)-(O/2)+D.getDocumentScrollLeft();
    }else{
        K=N+D.getDocumentScrollLeft();
    }
    if(M<P){
        Q=(P/2)-(M/2)+D.getDocumentScrollTop();
    }else{
        Q=N+D.getDocumentScrollTop();
    }
    this.cfg.setProperty("xy",[parseInt(K,10),parseInt(Q,10)]);
    this.cfg.refireEvent("iframe");
},
syncPosition:function(){
    var K=D.getXY(this.element);
    this.cfg.setProperty("x",K[0],true);
    this.cfg.setProperty("y",K[1],true);
    this.cfg.setProperty("xy",K,true);
},
onDomResize:function(M,L){
    var K=this;
    B.superclass.onDomResize.call(this,M,L);
    setTimeout(function(){
        K.syncPosition();
        K.cfg.refireEvent("iframe");
        K.cfg.refireEvent("context");
    },0);
},
bringToTop:function(){
    var O=[],N=this.element;
    function R(V,U){
        var X=D.getStyle(V,"zIndex"),W=D.getStyle(U,"zIndex"),T=(!X||isNaN(X))?0:parseInt(X,10),S=(!W||isNaN(W))?0:parseInt(W,10);
        if(T>S){
            return -1;
        }else{
            if(T<S){
                return 1;
            }else{
                return 0;
            }
        }
    }
function M(U){
    var S=D.hasClass(U,B.CSS_OVERLAY),T=YAHOO.widget.Panel;
    if(S&&!D.isAncestor(N,S)){
        if(T&&D.hasClass(U,T.CSS_PANEL)){
            O[O.length]=U.parentNode;
        }else{
            O[O.length]=U;
        }
    }
}
D.getElementsBy(M,"DIV",document.body);
O.sort(R);
var K=O[0],Q;
if(K){
    Q=D.getStyle(K,"zIndex");
    if(!isNaN(Q)){
        var P=false;
        if(K!=N){
            P=true;
        }else{
            if(O.length>1){
                var L=D.getStyle(O[1],"zIndex");
                if(!isNaN(L)&&(Q==L)){
                    P=true;
                }
            }
        }
    if(P){
    this.cfg.setProperty("zindex",(parseInt(Q,10)+2));
}
}
}
},
destroy:function(){
    if(this.iframe){
        this.iframe.parentNode.removeChild(this.iframe);
    }
    this.iframe=null;
    B.windowResizeEvent.unsubscribe(this.doCenterOnDOMEvent,this);
    B.windowScrollEvent.unsubscribe(this.doCenterOnDOMEvent,this);
    B.superclass.destroy.call(this);
},
toString:function(){
    return"Overlay "+this.id;
}
});
}());
(function(){
    YAHOO.widget.OverlayManager=function(G){
        this.init(G);
    };

    var D=YAHOO.widget.Overlay,C=YAHOO.util.Event,E=YAHOO.util.Dom,B=YAHOO.util.Config,F=YAHOO.util.CustomEvent,A=YAHOO.widget.OverlayManager;
    A.CSS_FOCUSED="focused";
    A.prototype={
        constructor:A,
        overlays:null,
        initDefaultConfig:function(){
            this.cfg.addProperty("overlays",{
                suppressEvent:true
            });
            this.cfg.addProperty("focusevent",{
                value:"mousedown"
            });
        },
        init:function(I){
            this.cfg=new B(this);
            this.initDefaultConfig();
            if(I){
                this.cfg.applyConfig(I,true);
            }
            this.cfg.fireQueue();
            var H=null;
            this.getActive=function(){
                return H;
            };

            this.focus=function(J){
                var K=this.find(J);
                if(K){
                    if(H!=K){
                        if(H){
                            H.blur();
                        }
                        this.bringToTop(K);
                        H=K;
                        E.addClass(H.element,A.CSS_FOCUSED);
                        K.focusEvent.fire();
                    }
                }
            };

    this.remove=function(K){
        var M=this.find(K),J;
        if(M){
            if(H==M){
                H=null;
            }
            var L=(M.element===null&&M.cfg===null)?true:false;
            if(!L){
                J=E.getStyle(M.element,"zIndex");
                M.cfg.setProperty("zIndex",-1000,true);
            }
            this.overlays.sort(this.compareZIndexDesc);
            this.overlays=this.overlays.slice(0,(this.overlays.length-1));
            M.hideEvent.unsubscribe(M.blur);
            M.destroyEvent.unsubscribe(this._onOverlayDestroy,M);
            if(!L){
                C.removeListener(M.element,this.cfg.getProperty("focusevent"),this._onOverlayElementFocus);
                M.cfg.setProperty("zIndex",J,true);
                M.cfg.setProperty("manager",null);
            }
            M.focusEvent.unsubscribeAll();
            M.blurEvent.unsubscribeAll();
            M.focusEvent=null;
            M.blurEvent=null;
            M.focus=null;
            M.blur=null;
        }
    };

this.blurAll=function(){
    var K=this.overlays.length,J;
    if(K>0){
        J=K-1;
        do{
            this.overlays[J].blur();
        }while(J--);
    }
};

this._onOverlayBlur=function(K,J){
    H=null;
};

var G=this.cfg.getProperty("overlays");
    if(!this.overlays){
    this.overlays=[];
}
if(G){
    this.register(G);
    this.overlays.sort(this.compareZIndexDesc);
}
},
_onOverlayElementFocus:function(I){
    var G=C.getTarget(I),H=this.close;
    if(H&&(G==H||E.isAncestor(H,G))){
        this.blur();
    }else{
        this.focus();
    }
},
_onOverlayDestroy:function(H,G,I){
    this.remove(I);
},
register:function(G){
    var K=this,L,I,H,J;
    if(G instanceof D){
        G.cfg.addProperty("manager",{
            value:this
        });
        G.focusEvent=G.createEvent("focus");
        G.focusEvent.signature=F.LIST;
        G.blurEvent=G.createEvent("blur");
        G.blurEvent.signature=F.LIST;
        G.focus=function(){
            K.focus(this);
        };

        G.blur=function(){
            if(K.getActive()==this){
                E.removeClass(this.element,A.CSS_FOCUSED);
                this.blurEvent.fire();
            }
        };

    G.blurEvent.subscribe(K._onOverlayBlur);
    G.hideEvent.subscribe(G.blur);
    G.destroyEvent.subscribe(this._onOverlayDestroy,G,this);
    C.on(G.element,this.cfg.getProperty("focusevent"),this._onOverlayElementFocus,null,G);
    L=E.getStyle(G.element,"zIndex");
    if(!isNaN(L)){
        G.cfg.setProperty("zIndex",parseInt(L,10));
    }else{
        G.cfg.setProperty("zIndex",0);
    }
    this.overlays.push(G);
    this.bringToTop(G);
    return true;
}else{
    if(G instanceof Array){
        I=0;
        J=G.length;
        for(H=0;H<J;H++){
            if(this.register(G[H])){
                I++;
            }
        }
        if(I>0){
        return true;
    }
}else{
    return false;
}
}
},
bringToTop:function(M){
    var I=this.find(M),L,G,J;
    if(I){
        J=this.overlays;
        J.sort(this.compareZIndexDesc);
        G=J[0];
        if(G){
            L=E.getStyle(G.element,"zIndex");
            if(!isNaN(L)){
                var K=false;
                if(G!==I){
                    K=true;
                }else{
                    if(J.length>1){
                        var H=E.getStyle(J[1].element,"zIndex");
                        if(!isNaN(H)&&(L==H)){
                            K=true;
                        }
                    }
                }
            if(K){
            I.cfg.setProperty("zindex",(parseInt(L,10)+2));
        }
    }
    J.sort(this.compareZIndexDesc);
}
}
},
find:function(G){
    var I=this.overlays,J=I.length,H;
    if(J>0){
        H=J-1;
        if(G instanceof D){
            do{
                if(I[H]==G){
                    return I[H];
                }
            }while(H--);
    }else{
        if(typeof G=="string"){
            do{
                if(I[H].id==G){
                    return I[H];
                }
            }while(H--);
    }
}
return null;
}
},
compareZIndexDesc:function(J,I){
    var H=(J.cfg)?J.cfg.getProperty("zIndex"):null,G=(I.cfg)?I.cfg.getProperty("zIndex"):null;
    if(H===null&&G===null){
        return 0;
    }else{
        if(H===null){
            return 1;
        }else{
            if(G===null){
                return -1;
            }else{
                if(H>G){
                    return -1;
                }else{
                    if(H<G){
                        return 1;
                    }else{
                        return 0;
                    }
                }
            }
    }
}
},
showAll:function(){
    var H=this.overlays,I=H.length,G;
    if(I>0){
        G=I-1;
        do{
            H[G].show();
        }while(G--);
    }
},
hideAll:function(){
    var H=this.overlays,I=H.length,G;
    if(I>0){
        G=I-1;
        do{
            H[G].hide();
        }while(G--);
    }
},
toString:function(){
    return"OverlayManager";
}
};

}());
(function(){
    YAHOO.widget.ContainerEffect=function(F,I,H,E,G){
        if(!G){
            G=YAHOO.util.Anim;
        }
        this.overlay=F;
        this.attrIn=I;
        this.attrOut=H;
        this.targetElement=E||F.element;
        this.animClass=G;
    };

    var B=YAHOO.util.Dom,D=YAHOO.util.CustomEvent,C=YAHOO.util.Easing,A=YAHOO.widget.ContainerEffect;
    A.FADE=function(E,G){
        var I={
            attributes:{
                opacity:{
                    from:0,
                    to:1
                }
            },
        duration:G,
        method:C.easeIn
        };

    var F={
        attributes:{
            opacity:{
                to:0
            }
        },
    duration:G,
    method:C.easeOut
    };

var H=new A(E,I,F,E.element);
    H.handleUnderlayStart=function(){
    var K=this.overlay.underlay;
    if(K&&YAHOO.env.ua.ie){
        var J=(K.filters&&K.filters.length>0);
        if(J){
            B.addClass(E.element,"yui-effect-fade");
        }
    }
};

H.handleUnderlayComplete=function(){
    var J=this.overlay.underlay;
    if(J&&YAHOO.env.ua.ie){
        B.removeClass(E.element,"yui-effect-fade");
    }
};

H.handleStartAnimateIn=function(K,J,L){
    B.addClass(L.overlay.element,"hide-select");
    if(!L.overlay.underlay){
        L.overlay.cfg.refireEvent("underlay");
    }
    L.handleUnderlayStart();
    B.setStyle(L.overlay.element,"visibility","visible");
    B.setStyle(L.overlay.element,"opacity",0);
};

H.handleCompleteAnimateIn=function(K,J,L){
    B.removeClass(L.overlay.element,"hide-select");
    if(L.overlay.element.style.filter){
        L.overlay.element.style.filter=null;
    }
    L.handleUnderlayComplete();
    L.overlay.cfg.refireEvent("iframe");
    L.animateInCompleteEvent.fire();
};

H.handleStartAnimateOut=function(K,J,L){
    B.addClass(L.overlay.element,"hide-select");
    L.handleUnderlayStart();
};

H.handleCompleteAnimateOut=function(K,J,L){
    B.removeClass(L.overlay.element,"hide-select");
    if(L.overlay.element.style.filter){
        L.overlay.element.style.filter=null;
    }
    B.setStyle(L.overlay.element,"visibility","hidden");
    B.setStyle(L.overlay.element,"opacity",1);
    L.handleUnderlayComplete();
    L.overlay.cfg.refireEvent("iframe");
    L.animateOutCompleteEvent.fire();
};

H.init();
return H;
};

A.SLIDE=function(G,I){
    var F=G.cfg.getProperty("x")||B.getX(G.element),K=G.cfg.getProperty("y")||B.getY(G.element),J=B.getClientWidth(),H=G.element.offsetWidth,E=new A(G,{
        attributes:{
            points:{
                to:[F,K]
                }
            },
    duration:I,
    method:C.easeIn
    },{
        attributes:{
            points:{
                to:[(J+25),K]
                }
            },
    duration:I,
    method:C.easeOut
    },G.element,YAHOO.util.Motion);
E.handleStartAnimateIn=function(M,L,N){
    N.overlay.element.style.left=((-25)-H)+"px";
    N.overlay.element.style.top=K+"px";
};

E.handleTweenAnimateIn=function(O,N,P){
    var Q=B.getXY(P.overlay.element),M=Q[0],L=Q[1];
    if(B.getStyle(P.overlay.element,"visibility")=="hidden"&&M<F){
        B.setStyle(P.overlay.element,"visibility","visible");
    }
    P.overlay.cfg.setProperty("xy",[M,L],true);
    P.overlay.cfg.refireEvent("iframe");
};

E.handleCompleteAnimateIn=function(M,L,N){
    N.overlay.cfg.setProperty("xy",[F,K],true);
    N.startX=F;
    N.startY=K;
    N.overlay.cfg.refireEvent("iframe");
    N.animateInCompleteEvent.fire();
};

E.handleStartAnimateOut=function(M,L,P){
    var N=B.getViewportWidth(),Q=B.getXY(P.overlay.element),O=Q[1];
    P.animOut.attributes.points.to=[(N+25),O];
};

E.handleTweenAnimateOut=function(N,M,O){
    var Q=B.getXY(O.overlay.element),L=Q[0],P=Q[1];
    O.overlay.cfg.setProperty("xy",[L,P],true);
    O.overlay.cfg.refireEvent("iframe");
};

E.handleCompleteAnimateOut=function(M,L,N){
    B.setStyle(N.overlay.element,"visibility","hidden");
    N.overlay.cfg.setProperty("xy",[F,K]);
    N.animateOutCompleteEvent.fire();
};

E.init();
return E;
};

A.prototype={
    init:function(){
        this.beforeAnimateInEvent=this.createEvent("beforeAnimateIn");
        this.beforeAnimateInEvent.signature=D.LIST;
        this.beforeAnimateOutEvent=this.createEvent("beforeAnimateOut");
        this.beforeAnimateOutEvent.signature=D.LIST;
        this.animateInCompleteEvent=this.createEvent("animateInComplete");
        this.animateInCompleteEvent.signature=D.LIST;
        this.animateOutCompleteEvent=this.createEvent("animateOutComplete");
        this.animateOutCompleteEvent.signature=D.LIST;
        this.animIn=new this.animClass(this.targetElement,this.attrIn.attributes,this.attrIn.duration,this.attrIn.method);
        this.animIn.onStart.subscribe(this.handleStartAnimateIn,this);
        this.animIn.onTween.subscribe(this.handleTweenAnimateIn,this);
        this.animIn.onComplete.subscribe(this.handleCompleteAnimateIn,this);
        this.animOut=new this.animClass(this.targetElement,this.attrOut.attributes,this.attrOut.duration,this.attrOut.method);
        this.animOut.onStart.subscribe(this.handleStartAnimateOut,this);
        this.animOut.onTween.subscribe(this.handleTweenAnimateOut,this);
        this.animOut.onComplete.subscribe(this.handleCompleteAnimateOut,this);
    },
    animateIn:function(){
        this.beforeAnimateInEvent.fire();
        this.animIn.animate();
    },
    animateOut:function(){
        this.beforeAnimateOutEvent.fire();
        this.animOut.animate();
    },
    handleStartAnimateIn:function(F,E,G){},
    handleTweenAnimateIn:function(F,E,G){},
    handleCompleteAnimateIn:function(F,E,G){},
    handleStartAnimateOut:function(F,E,G){},
    handleTweenAnimateOut:function(F,E,G){},
    handleCompleteAnimateOut:function(F,E,G){},
    toString:function(){
        var E="ContainerEffect";
        if(this.overlay){
            E+=" ["+this.overlay.toString()+"]";
        }
        return E;
    }
};

YAHOO.lang.augmentProto(A,YAHOO.util.EventProvider);
})();
YAHOO.register("containercore",YAHOO.widget.Module,{
    version:"2.5.0",
    build:"897"
});
