jQuery.Flash = function(element){ this.element = $(element); this.timeout = undefined; var content = $('
'); //
$(element).html(content); this.mess = $(this.element).find('.message'); // $(this.mess).hide() $(this.mess) .click(function(){ jQuery.flash.hide(); }) .hover(function(){ jQuery.flash.onOver(); }, function(){ jQuery.flash.onLeave(); }); }; jQuery.Flash.version = 1.1; jQuery.Flash.prototype.onOver = function() { this.mess.addClass('over') } jQuery.Flash.prototype.onLeave = function() { $(this.mess).removeClass('over'); if ( this.mess.hasClass('expired') ) this.hide(); } jQuery.Flash.prototype.onTimeout = function() { $(this.mess).addClass('expired'); if ( ! this.mess.hasClass('over') ) this.hide(); } jQuery.Flash.prototype.show = function() { $(this.mess).fadeIn(300); // $(this.element).vkfade(); if ( ! this.mess.hasClass('error') ) // this.timeout = window.setTimeout(function(){ jQuery.flash.onTimeout() }, 10000); this.timeout = null; } jQuery.Flash.prototype.hide = function() { if ( this.timeout ) { clearTimeout(this.timeout); this.timeout = undefined; } this.mess.fadeOut(300).removeClass('expired').removeClass('over'); } jQuery.Flash.prototype.message = function(message, level) { this.mess.removeClass('expired'); if ( $(this.mess).is(":visible") ) { if ( this.timeout ) { clearTimeout(this.timeout); this.timeout = undefined; } if (message == '') { this.mess.hide(); } if (message != $(this.mess).html()) { this.mess.fadeOut(500, function(){ jQuery.flash.message(message,level); }); } return; } $(this.mess).addClass(level).html(message); this.show(); } jQuery.Flash.prototype.subtle = function(message) { this.message(message, 'subtle'); } jQuery.Flash.prototype.error = function(message) { this.message(message, 'error'); } jQuery.Flash.prototype.warning = function(message) { this.message(message, 'warn'); } jQuery.Flash.prototype.warn = function(message) { this.message(message, 'warn'); } jQuery.Flash.prototype.info = function(message) { this.message(message, 'info'); } $(function(){ jQuery.flash = new jQuery.Flash('#flash'); });