if(typeof YAHOO=="undefined"){
    var YAHOO={
    };
}
YAHOO.namespace=function(){
    var a=arguments,o=null,i,j,d;
    for(i=0;i<a.length;i=i+1){
        d=a[i].split(".");
        o=YAHOO;
        for(j=(d[0]=="YAHOO")?1:0;j<d.length;j=j+1){
            o[d[j]]=o[d[j]]||{
            };
            o=o[d[j]];
        }
    }
    return o;
};
YAHOO.log=function(msg,cat,src){
    var l=YAHOO.widget.Logger;
    if(l&&l.log){
        return l.log(msg,cat,src);
    }
    else{
        return false;
    }
};
YAHOO.register=function(name,mainClass,data){
    var mods=YAHOO.env.modules;
    if(!mods[name]){
        mods[name]={
            versions:[],builds:[]
        };
    }
    var m=mods[name],v=data.version,b=data.build,ls=YAHOO.env.listeners;
    m.name=name;
    m.version=v;
    m.build=b;
    m.versions.push(v);
    m.builds.push(b);
    m.mainClass=mainClass;
    for(var i=0;i<ls.length;i=i+1){
        ls[i](m);
    }
    if(mainClass){
        mainClass.VERSION=v;
        mainClass.BUILD=b;
    }
    else{
        YAHOO.log("mainClass is undefined for module "+name,"warn");
    }
};
YAHOO.env=YAHOO.env||{
    modules:[],listeners:[]
};
YAHOO.env.getVersion=function(name){
    return YAHOO.env.modules[name]||null;
};
YAHOO.env.ua=function(){
    var o={
        ie:0,opera:0,gecko:0,webkit:0
    };
    var ua=navigator.userAgent,m;
    if((/KHTML/).test(ua)){
        o.webkit=1;
    }
    m=ua.match(/AppleWebKit\/([^\s]*)/);
    if(m&&m[1]){
        o.webkit=parseFloat(m[1]);
    }
    if(!o.webkit){
        m=ua.match(/Opera[\s\/]([^\s]*)/);
        if(m&&m[1]){
            o.opera=parseFloat(m[1]);
        }
        else{
            m=ua.match(/MSIE\s([^;]*)/);
            if(m&&m[1]){
                o.ie=parseFloat(m[1]);
            }
            else{
                m=ua.match(/Gecko\/([^\s]*)/);
                if(m){
                    o.gecko=1;
                    m=ua.match(/rv:([^\s\)]*)/);
                    if(m&&m[1]){
                        o.gecko=parseFloat(m[1]);
                    }
                }
            }
        }
    }
    return o;
}
();
(function(){
    YAHOO.namespace("util","widget","example");
    if(typeof YAHOO_config!="undefined"){
        var l=YAHOO_config.listener,ls=YAHOO.env.listeners,unique=true,i;
        if(l){
            for(i=0;i<ls.length;i=i+1){
                if(ls[i]==l){
                    unique=false;
                    break;
                }
            }
            if(unique){
                ls.push(l);
            }
        }
    }
}
)();
YAHOO.lang={
    isArray:function(o){
        if(o){
            var l=YAHOO.lang;
            return l.isNumber(o.length)&&l.isFunction(o.splice)&&!l.hasOwnProperty(o.length);
        }
        return false;
    }
    ,isBoolean:function(o){
        return typeof o==='boolean';
    }
    ,isFunction:function(o){
        return typeof o==='function';
    }
    ,isNull:function(o){
        return o===null;
    }
    ,isNumber:function(o){
        return typeof o==='number'&&isFinite(o);
    }
    ,isObject:function(o){
        return(o&&(typeof o==='object'||YAHOO.lang.isFunction(o)))||false;
    }
    ,isString:function(o){
        return typeof o==='string';
    }
    ,isUndefined:function(o){
        return typeof o==='undefined';
    }
    ,hasOwnProperty:function(o,prop){
        if(Object.prototype.hasOwnProperty){
            return o.hasOwnProperty(prop);
        }
        return!YAHOO.lang.isUndefined(o[prop])&&o.constructor.prototype[prop]!==o[prop];
    }
    ,_IEEnumFix:function(r,s){
        if(YAHOO.env.ua.ie){
            var add=["toString","valueOf"];
            for(i=0;i<add.length;i=i+1){
                var fname=add[i],f=s[fname];
                if(YAHOO.lang.isFunction(f)&&f!=Object.prototype[fname]){
                    r[fname]=f;
                }
            }
        }
    }
    ,extend:function(subc,superc,overrides){
        if(!superc||!subc){
            throw new Error("YAHOO.lang.extend failed, please check that "+"all dependencies are included.");
        }
        var F=function(){
        };
        F.prototype=superc.prototype;
        subc.prototype=new F();
        subc.prototype.constructor=subc;
        subc.superclass=superc.prototype;
        if(superc.prototype.constructor==Object.prototype.constructor){
            superc.prototype.constructor=superc;
        }
        if(overrides){
            for(var i in overrides){
                subc.prototype[i]=overrides[i];
            }
            YAHOO.lang._IEEnumFix(subc.prototype,overrides);
        }
    }
    ,augmentObject:function(r,s){
        if(!s||!r){
            throw new Error("Absorb failed, verify dependencies.");
        }
        var a=arguments,i,p,override=a[2];
        if(override&&override!==true){
            for(i=2;i<a.length;i=i+1){
                r[a[i]]=s[a[i]];
            }
        }
        else{
            for(p in s){
                if(override||!r[p]){
                    r[p]=s[p];
                }
            }
            YAHOO.lang._IEEnumFix(r,s);
        }
    }
    ,augmentProto:function(r,s){
        if(!s||!r){
            throw new Error("Augment failed, verify dependencies.");
        }
        var a=[r.prototype,s.prototype];
        for(var i=2;i<arguments.length;i=i+1){
            a.push(arguments[i]);
        }
        YAHOO.lang.augmentObject.apply(this,a);
    }
    ,dump:function(o,d){
        var l=YAHOO.lang,i,len,s=[],OBJ="{...}",FUN="f(){...}",COMMA=', ',ARROW=' => ';
        if(!l.isObject(o)||o instanceof Date||("nodeType"in o&&"tagName"in o)){
            return o;
        }
        else if(l.isFunction(o)){
            return FUN;
        }
        d=(l.isNumber(d))?d:3;
        if(l.isArray(o)){
            s.push("[");
            for(i=0,len=o.length;i<len;i=i+1){
                if(l.isObject(o[i])){
                    s.push((d>0)?l.dump(o[i],d-1):OBJ);
                }
                else{
                    s.push(o[i]);
                }
                s.push(COMMA);
            }
            if(s.length>1){
                s.pop();
            }
            s.push("]");
        }
        else{
            s.push("{");
            for(i in o){
                if(l.hasOwnProperty(o,i)){
                    s.push(i+ARROW);
                    if(l.isObject(o[i])){
                        s.push((d>0)?l.dump(o[i],d-1):OBJ);
                    }
                    else{
                        s.push(o[i]);
                    }
                    s.push(COMMA);
                }
            }
            if(s.length>1){
                s.pop();
            }
            s.push("}");
        }
        return s.join("");
    }
    ,substitute:function(s,o,f){
        var i,j,k,key,v,meta,l=YAHOO.lang,saved=[],token,DUMP='dump',SPACE=' ',LBRACE='{',RBRACE='}';
        for(;;){
            i=s.lastIndexOf(LBRACE);
            if(i<0){
                break;
            }
            j=s.indexOf(RBRACE,i);
            if(i+1>=j){
                break;
            }
            token=s.substring(i+1,j);
            key=token;
            meta=null;
            k=key.indexOf(SPACE);
            if(k>-1){
                meta=key.substring(k+1);
                key=key.substring(0,k);
            }
            v=o[key];
            if(f){
                v=f(key,v,meta);
            }
            if(l.isObject(v)){
                if(l.isArray(v)){
                    v=l.dump(v,parseInt(meta,10));
                }
                else{
                    meta=meta||"";
                    var dump=meta.indexOf(DUMP);
                    if(dump>-1){
                        meta=meta.substring(4);
                    }
                    if(v.toString===Object.prototype.toString||dump>-1){
                        v=l.dump(v,parseInt(meta,10));
                    }
                    else{
                        v=v.toString();
                    }
                }
            }
            else if(!l.isString(v)&&!l.isNumber(v)){
                v="~-"+saved.length+"-~";
                saved[saved.length]=token;
            }
            s=s.substring(0,i)+v+s.substring(j+1);
        }
        for(i=saved.length-1;i>=0;i=i-1){
            s=s.replace(new RegExp("~-"+i+"-~"),"{"+saved[i]+"}","g");
        }
        return s;
    }
    ,trim:function(s){
        try{
            return s.replace(/^\s+|\s+$/g,"");
        }
        catch(e){
            return s;
        }
    }
    ,merge:function(){
        var o={
        }
        ,a=arguments,i;
        for(i=0;i<a.length;i=i+1){
            YAHOO.lang.augmentObject(o,a[i],true);
        }
        return o;
    }
    ,isValue:function(o){
        var l=YAHOO.lang;
        return(l.isObject(o)||l.isString(o)||l.isNumber(o)||l.isBoolean(o));
    }
};
YAHOO.util.Lang=YAHOO.lang;
YAHOO.lang.augment=YAHOO.lang.augmentProto;
YAHOO.augment=YAHOO.lang.augmentProto;
YAHOO.extend=YAHOO.lang.extend;
YAHOO.register("yahoo",YAHOO,{
    version:"2.3.0",build:"442"
}
);

