;(function(window){'use strict';var docElem=window.document.documentElement,support={animations:Modernizr.cssanimations},animEndEventNames={'WebkitAnimation':'webkitAnimationEnd','OAnimation':'oAnimationEnd','msAnimation':'MSAnimationEnd','animation':'animationend'},animEndEventName=animEndEventNames[Modernizr.prefixed('animation')];function extend(a,b){for(var key in b){if(b.hasOwnProperty(key)){a[key]=b[key];}} return a;} function NotificationFx(options){this.options=extend({},this.options);extend(this.options,options);this._init();} NotificationFx.prototype.options={wrapper:document.body,message:'yo!',layout:'growl',effect:'slide',type:'error',ttl:6000,onClose:function(){return false;},onOpen:function(){return false;}} NotificationFx.prototype._init=function(){this.ntf=document.createElement('div');this.ntf.className='ns-box ns-'+ this.options.layout+' ns-effect-'+ this.options.effect+' ns-type-'+ this.options.type;var strinner='
';strinner+=this.options.message;strinner+='
';strinner+='';this.ntf.innerHTML=strinner;this.options.wrapper.insertBefore(this.ntf,this.options.wrapper.firstChild);var self=this;this.dismissttl=setTimeout(function(){if(self.active){self.dismiss();}},this.options.ttl);this._initEvents();} NotificationFx.prototype._initEvents=function(){var self=this;this.ntf.querySelector('.ns-close').addEventListener('click',function(){self.dismiss();});} NotificationFx.prototype.show=function(){this.active=true;classie.remove(this.ntf,'ns-hide');classie.add(this.ntf,'ns-show');this.options.onOpen();} NotificationFx.prototype.dismiss=function(){var self=this;this.active=false;clearTimeout(this.dismissttl);classie.remove(this.ntf,'ns-show');setTimeout(function(){classie.add(self.ntf,'ns-hide');self.options.onClose();},25);var onEndAnimationFn=function(ev){if(support.animations){if(ev.target!==self.ntf)return false;this.removeEventListener(animEndEventName,onEndAnimationFn);} self.options.wrapper.removeChild(this);};if(support.animations){this.ntf.addEventListener(animEndEventName,onEndAnimationFn);} else{onEndAnimationFn();}} window.NotificationFx=NotificationFx;})(window);