event-delegate-min.js revision f6baa527839e75655081768c365a749c59edc80d
YUI.add("event-delegate",function(g){var d=g.Array,b=g.Lang,a=b.isString,f=g.Selector.test,c=g.Env.evt.handles;function e(q,s,j,i){var o=d(arguments,0,true),p=a(j)?j:null,n=q.split(/\|/),l,h,k,r,m;if(n.length>1){r=n.shift();q=n.shift();}l=g.Node.DOM_EVENTS[q];if(b.isObject(l)&&l.delegate){m=l.delegate.apply(l,arguments);}if(!m){if(!q||!s||!j||!i){return;}h=(p)?g.Selector.query(p,null,true):j;if(!h&&a(j)){m=g.on("available",function(){g.mix(m,g.delegate.apply(g,o),true);},j);}if(!m&&h){o.splice(2,2,h);if(a(i)){i=g.delegate.compileFilter(i);}m=g.on.apply(g,o);m.sub.filter=i;m.sub._notify=e.notifySub;}}if(m&&r){k=c[r]||(c[r]={});k=k[q]||(k[q]=[]);k.push(m);}return m;}e.notifySub=function(l,q,j){q=q.slice();if(this.args){q.push.apply(q,this.args);}var o=q[0],k=e._applyFilter(this.filter,q),h=o.currentTarget,m,p,n;if(k){k=d(k);for(m=k.length-1;m>=0;--m){n=k[m];q[0]=new g.DOMEventFacade(o,n,j);q[0].container=h;l=this.context||n;p=this.fn.apply(l,q);if(p===false){break;}}return p;}};e.compileFilter=g.cached(function(h){return function(j,i){return f(j._node,h,i.currentTarget._node);};});e._applyFilter=function(k,j){var m=j[0],h=m.currentTarget,l=m.target,i=[];j.unshift(l);while(l&&l!==h){if(k.apply(l,j)){i.push(l);}j[0]=l=l.get("parentNode");}if(i.length<=1){i=i[0];}j.shift();return i;};g.delegate=g.Event.delegate=e;},"@VERSION@",{requires:["node-base"]});