a958fdd529761b111fb3d448b732519434c5d4afLuke SmithYUI({ filter: 'raw' }).use('gallery-event-konami', 'event-focus', 'event-outside', function (Y) {
a958fdd529761b111fb3d448b732519434c5d4afLuke Smith var selectors = [
a958fdd529761b111fb3d448b732519434c5d4afLuke Smith 'blur','change','click','dblclick','focus','keydown','keypress',
a958fdd529761b111fb3d448b732519434c5d4afLuke Smith 'keyup','mousedown','mousemove','mouseout','mouseover','mouseup',
a958fdd529761b111fb3d448b732519434c5d4afLuke Smith 'select','submit','konami'
a958fdd529761b111fb3d448b732519434c5d4afLuke Smith ],
a958fdd529761b111fb3d448b732519434c5d4afLuke Smith timers = {};
a958fdd529761b111fb3d448b732519434c5d4afLuke Smith
a958fdd529761b111fb3d448b732519434c5d4afLuke Smith function setup(selector) {
a958fdd529761b111fb3d448b732519434c5d4afLuke Smith var node = Y.one('#' + selector);
a958fdd529761b111fb3d448b732519434c5d4afLuke Smith
a958fdd529761b111fb3d448b732519434c5d4afLuke Smith node.on(selector + 'outside', function (e) {
a958fdd529761b111fb3d448b732519434c5d4afLuke Smith clearTimeout(timers[selector]);
a958fdd529761b111fb3d448b732519434c5d4afLuke Smith
a958fdd529761b111fb3d448b732519434c5d4afLuke Smith var t = e.target,
a958fdd529761b111fb3d448b732519434c5d4afLuke Smith id = t.get('id'),
a958fdd529761b111fb3d448b732519434c5d4afLuke Smith text = t.get('tagName').toLowerCase() + (id ? '#' + id : '');
a958fdd529761b111fb3d448b732519434c5d4afLuke Smith
a958fdd529761b111fb3d448b732519434c5d4afLuke Smith this.addClass('outside');
a958fdd529761b111fb3d448b732519434c5d4afLuke Smith this.one('span').set('innerHTML', text);
a958fdd529761b111fb3d448b732519434c5d4afLuke Smith
a958fdd529761b111fb3d448b732519434c5d4afLuke Smith if (id === 'link' || selector === 'submit') {
a958fdd529761b111fb3d448b732519434c5d4afLuke Smith e.preventDefault();
a958fdd529761b111fb3d448b732519434c5d4afLuke Smith }
a958fdd529761b111fb3d448b732519434c5d4afLuke Smith
a958fdd529761b111fb3d448b732519434c5d4afLuke Smith timers[selector] = setTimeout(function () {
a958fdd529761b111fb3d448b732519434c5d4afLuke Smith node.removeClass('outside');
a958fdd529761b111fb3d448b732519434c5d4afLuke Smith node.one('span').set('innerHTML', '');
a958fdd529761b111fb3d448b732519434c5d4afLuke Smith }, 700);
a958fdd529761b111fb3d448b732519434c5d4afLuke Smith });
a958fdd529761b111fb3d448b732519434c5d4afLuke Smith }
a958fdd529761b111fb3d448b732519434c5d4afLuke Smith
a958fdd529761b111fb3d448b732519434c5d4afLuke Smith Y.Event.defineOutside('konami');
a958fdd529761b111fb3d448b732519434c5d4afLuke Smith
a958fdd529761b111fb3d448b732519434c5d4afLuke Smith Y.each(selectors, setup);
a958fdd529761b111fb3d448b732519434c5d4afLuke Smith});