YUI.add("oop",function(Y){
var L=Y.Lang,A=Y.Array,OP=Object.prototype,_1="_~yuim~_";
Y.augment=function(r,s,ov,wl,_2){
var _3=s.prototype,_4=null,_5=s,a=(_2)?Y.Array(_2):[],_6=r.prototype,_7=_6||r,_8=false,_9,_a,i;
if(_6&&_5){
_9={};
_a={};
_4={};
Y.each(_3,function(v,k){
_a[k]=function(){
for(i in _9){
if(_9.hasOwnProperty(i)&&(this[i]===_a[i])){
this[i]=_9[i];
}
}
_5.apply(this,a);
return _9[k].apply(this,arguments);
};
if((!wl||(k in wl))&&(ov||!(k in this))){
if(L.isFunction(v)){
_9[k]=v;
this[k]=_a[k];
}else{
this[k]=v;
}
}
},_4,true);
}else{
_8=true;
}
Y.mix(_7,_4||_3,ov,wl);
if(_8){
s.apply(_7,a);
}
return r;
};
Y.aggregate=function(r,s,ov,wl){
return Y.mix(r,s,ov,wl,0,true);
};
Y.extend=function(r,s,px,sx){
if(!s||!r){
Y.error("extend failed, verify dependencies");
}
var sp=s.prototype,rp=Y.Object(sp);
r.prototype=rp;
rp.constructor=r;
r.superclass=sp;
if(s!=Object&&sp.constructor==OP.constructor){
sp.constructor=s;
}
if(px){
Y.mix(rp,px,true);
}
if(sx){
Y.mix(r,sx,true);
}
return r;
};
Y.each=function(o,f,c,_b){
if(o.each&&o.item){
return o.each.call(o,f,c);
}else{
switch(A.test(o)){
case 1:
return A.each(o,f,c);
case 2:
return A.each(Y.Array(o,0,true),f,c);
default:
return Y.Object.each(o,f,c,_b);
}
}
};
Y.clone=function(o,_c,f,c,_d,_e){
if(!L.isObject(o)){
return o;
}
var o2,_f=_e||{},_10;
switch(L.type(o)){
case "date":
return new Date(o);
case "regexp":
return new RegExp(o.source);
case "function":
o2=Y.bind(o,_d);
break;
case "array":
o2=[];
break;
default:
if(o[_1]){
return _f[o[_1]];
}
_10=Y.guid();
o2=(_c)?{}:Y.Object(o);
o[_1]=_10;
_f[_10]=o;
}
if(!o.addEventListener&&!o.attachEvent){
Y.each(o,function(v,k){
if(!f||(f.call(c||this,v,k,this,o)!==false)){
if(k!==_1){
this[k]=Y.clone(v,_c,f,c,_d||o,_f);
}
}
},o2);
}
if(!_e){
Y.each(_f,function(v,k){
delete v[_1];
});
_f=null;
}
return o2;
};
Y.bind=function(f,c){
var _11=arguments.length>2?Y.Array(arguments,2,true):null;
return function(){
var fn=L.isString(f)?c[f]:f,_12=(_11)?_11.concat(Y.Array(arguments,0,true)):arguments;
return fn.apply(c||fn,_12);
};
};
Y.rbind=function(f,c){
var _13=arguments.length>2?Y.Array(arguments,2,true):null;
return function(){
var fn=L.isString(f)?c[f]:f,_14=(_13)?Y.Array(arguments,0,true).concat(_13):arguments;
return fn.apply(c||fn,_14);
};
};
},"3.0.0");

