From 7698ee1fe6bd40108fbe48bb641ea99a5b8f2bef Mon Sep 17 00:00:00 2001 From: Leif Johansson Date: Mon, 5 Jul 2010 21:49:41 +0200 Subject: site-media import from lobber with flick theme --- site-media/js/jquery.jnotify.js | 143 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 143 insertions(+) create mode 100644 site-media/js/jquery.jnotify.js (limited to 'site-media/js/jquery.jnotify.js') diff --git a/site-media/js/jquery.jnotify.js b/site-media/js/jquery.jnotify.js new file mode 100644 index 0000000..0366e79 --- /dev/null +++ b/site-media/js/jquery.jnotify.js @@ -0,0 +1,143 @@ +/** +* jQuery.jNotify +* jQuery Notification Engine +* +* Copyright (c) 2010 Fabio Franzini +* +* Permission is hereby granted, free of charge, to any person obtaining a copy +* of this software and associated documentation files (the "Software"), to deal +* in the Software without restriction, including without limitation the rights +* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +* copies of the Software, and to permit persons to whom the Software is +* furnished to do so, subject to the following conditions: +* +* The above copyright notify and this permission notify shall be included in +* all copies or substantial portions of the Software. +* +* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +* THE SOFTWARE. +* +* @author Fabio Franzini +* @copyright 2010 www.fabiofranzini.com +* @version 1 +**/ + +(function(jQuery) { + jQuery.fn.jnotifyInizialize = function(options) { + var element = this; + + var defaults = { + oneAtTime: false, + appendType: 'append' + }; + + var options = jQuery.extend({}, defaults, options); + + this.addClass('notify-wrapper'); + + if (options.oneAtTime) + this.addClass('notify-wrapper-oneattime'); + + if (options.appendType == 'prepend' && options.oneAtTime == false) + this.addClass('notify-wrapper-prepend'); + + return this; + }; + jQuery.fn.jnotifyAddMessage = function(options) { + + var notifyWrapper = this; + + if (notifyWrapper.hasClass('notify-wrapper')) { + + var defaults = { + text: '', + type: 'message', + showIcon: true, + permanent: false, + disappearTime: 3000 + }; + + var options = jQuery.extend({}, defaults, options); + var styleClass; + var iconClass; + + switch (options.type) { + case 'message': + { + styleClass = 'ui-state-highlight'; + iconClass = 'ui-icon-info'; + } + break; + case 'error': + { + styleClass = 'ui-state-error'; + iconClass = 'ui-icon-alert'; + } + break; + default: + { + styleClass = 'ui-state-highlight'; + iconClass = 'ui-icon-info'; + } + break; + } + + if (notifyWrapper.hasClass('notify-wrapper-oneattime')) { + this.children().remove(); + } + + var notifyItemWrapper = jQuery('
'); + var notifyItem = jQuery('
') + .addClass(styleClass); + + if (notifyWrapper.hasClass('notify-wrapper-prepend')) + notifyItem.prependTo(notifyWrapper); + else + notifyItem.appendTo(notifyWrapper); + + notifyItem.wrap(notifyItemWrapper); + + if (options.showIcon) + jQuery('') + .addClass(iconClass) + .appendTo(notifyItem); + + jQuery('').html(options.text).appendTo(notifyItem); + jQuery('
') + .prependTo(notifyItem) + .click(function() { remove(notifyItem) }); + + // IEsucks + if (navigator.userAgent.match(/MSIE (\d+\.\d+);/)) { + notifyWrapper.css({ top: document.documentElement.scrollTop }); + //http://groups.google.com/group/jquery-dev/browse_thread/thread/ba38e6474e3e9a41 + notifyWrapper.removeClass('IEsucks'); + } + // ------ + + if (!options.permanent) { + setTimeout(function() { remove(notifyItem); }, options.disappearTime); + } + } + + function remove(obj) { + obj.animate({ opacity: '0' }, 600, function() { + obj.parent().animate({ height: '0px' }, 300, + function() { + obj.parent().remove(); + // IEsucks + if (navigator.userAgent.match(/MSIE (\d+\.\d+);/)) { + //http://groups.google.com/group/jquery-dev/browse_thread/thread/ba38e6474e3e9a41 + obj.parent().parent().removeClass('IEsucks'); + } + // ------- + }); + }); + } + }; +})(jQuery); \ No newline at end of file -- cgit v1.1