(function($)
{$.extend({notifier:{defaults:{core:"notifier",duration:5000},skins:{base:"#_{position:fixed;top:5px;right:5px;font-family:Arial;z-index:9999;}\n",box:"#_ #-{float:left;clear:both;padding:10px 0;color:#FFFFFF;position:relative;width:250px;margin-bottom:5px;}\n#_ #- .bg{z-index:-1;position:absolute;top:0;width:100%;height:100%;background:#000000;opacity:.5;-moz-opacity:0.5;filter:alpha(opacity=50);}\n#_ #- h1, #_ #- p{clear:both;padding:0 10px;margin:0;font-size:24px;font-family:Arial;color:#FFFFFF;letter-spacing:0;}\n#_ #- p{font-size:16px;margin:5px 0}\n#_ #- p.time{font-size:10px;}\n#_ #- button{position:absolute;right:5px;top:5px;}",rounded:"#_ #- > div{border-radius:5px;-moz-border-radius:5px;-webkit-border-radius:5px;}\n",red:"#_ #-{color:#4CC744;}\n#_ #- .bg{background:#4CC744;}\n"},notices:{},broadcast:function(properties)
{this.core();var id;id="notice-"+this.timestamp();var notice=this.notices[id]={id:id};for(i in properties){notice[i]=properties[i]}
this.css(notice);$("#"+this.defaults.core).append(this.box(notice));},core:function()
{var core=this.defaults.core;return $("#"+core).length==0?$('body').append("<div id=\""+core+"\"></div>"):$("#"+core);},box:function(notice)
{var box=$("<div id=\""+notice.id+"\"></div>");box.append($("<button></button>").append("x"));box.append($("<h1></h1>").append(notice.ttl));box.append($("<p></p>").append(notice.msg));box.append($("<p></p>").addClass("time").append(Date()));box.append($("<div></div>").addClass("bg"));box.hide().fadeIn();this.life(box,notice.id);this.events(box,notice.id);return box;},events:function(box,seed)
{$(box).children("button").bind('click',function()
{var seed=$(this).parent().attr("id");$.notifier.destroy(seed,true);})
$(box).bind('mouseover',function()
{if($.notifier.notices[$(this).attr("id")].interval)
{var seed=$(this).attr("id");$.notifier.destroy(seed)}})
$(box).bind('mouseout',function()
{$.notifier.life(this,$(this).attr("id"));})},life:function(box,seed)
{if(!this.notices[seed].duration){this.notices[seed].duration=this.defaults.duration}
this.notices[seed].interval={};this.notices[seed].interval=setInterval(function()
{(function(seed)
{$.notifier.destroy(seed,true)})
(seed)},this.notices[seed].duration)},destroy:function(seed,remove)
{clearInterval($.notifier.notices[seed].interval);delete $.notifier.notices[seed].interval;if(remove==true){$("#"+seed).slideUp(250,function(){$(this).remove()});}},css:function(notice)
{var css=""
var skin;var style=$("<style></style>");skin=!notice.skin?['base','box']:('base,box,'+notice.skin).split(",");for(var n=0;n<skin.length;n++){css+=this.skins[skin[n]].replace(/#_/g,"#"+this.defaults.core).replace(/#-/g,"#"+notice.id);}
$("#"+this.defaults.core).prepend(style.append(css));},timestamp:function()
{return new Date().getTime();}}})})(jQuery)
