﻿/*!
 * FooBar - The Unobtrusive Notification Bar That Doesn’t Suck!
 * http://bit.ly/getfoobar
 *
 * Copyright 2011, Steven Usher & Brad Vincent
 * http://themergency.com
 * http://themergency.com/foobar-a-jquery-notification-plugin/
 *
 * Date: 25 July 2011
 * Version : 1.4.1
 */
(function(a){a.foobar=function(b){if(typeof b=="string"){b={messages:[b]}}var c=a.extend(true,{},defaults,b);bar.apply(c)};a.foobarGoogleCallback=function(){bar.loadFeeds()};defaults={height:30,collapsedButtonHeight:30,positioning:"fixed",backgroundColor:"IndianRed",border:"solid 3px #FFF",enableShadow:true,buttonTheme:"triangle-arrow",display:"expanded",displayDelay:0,speed:200,easing:"swing",messages:[],messageSizes:[],messagesDelay:4e3,messagesFadeDelay:500,messagesScrollSpeed:50,messagesScrollDelay:2e3,messagesScrollDirection:"left",enableCookie:false,positionClose:"right",positionSocial:"left",rightHtml:null,leftHtml:null,leftWidth:null,rightWidth:null,centerWidth:null,messageClass:"",fontFamily:"Verdana",fontSize:"10pt",fontColor:"White",fontShadow:null,aFontFamily:"Verdana",aFontSize:"10pt",aFontColor:"LightYellow",aFontDecoration:"underline",aFontShadow:null,aHoverFontFamily:null,aHoverFontSize:null,aHoverFontColor:null,aHoverFontDecoration:null,aHoverFontShadow:null,social:{text:"Follow us:",fontFamily:"Verdana",fontSize:"10pt",fontColor:"White",fontShadow:null,profiles:[]},rss:{enabled:false,googleAPIKey:"",url:"http://my-domain.com/rss",maxResults:5,linkText:"Read More",linkTarget:"_blank"},twitter:{enabled:false,user:null,maxTweets:5}};bar={settings:{},wrapper:null,container:null,shadow:null,left:null,center:null,message:null,right:null,closeButtonContainer:null,closeButton:null,openButtonContainer:null,openButton:null,initialized:false,isOpen:false,htmlMarginTop:0,messageTimeoutId:null,messageIndex:0,currentMesasgeIndex:-1,messageHover:false,initialize:function(){var b=a("html");bar.htmlMarginTop=parseInt(b.css("margin-top"));bar.htmlMarginTop=isNaN(bar.htmlMarginTop)?0:bar.htmlMarginTop;if(a(".foobar-wrapper").length==0){bar.wrapper=a("<div/>").addClass("foobar-wrapper");bar.container=a("<div/>").addClass("foobar-container");bar.shadow=a("<div/>").addClass("foobar-shadow");bar.left=a("<div/>").addClass("foobar-container-left");bar.center=a("<div/>").addClass("foobar-container-center");bar.message=a("<span/>").addClass("foobar-message");bar.right=a("<div/>").addClass("foobar-container-right");bar.closeButtonContainer=a("<div/>").addClass("foobar-close-button-container");bar.closeButton=a("<a/>").attr("href","#close-foobar").addClass("foobar-close-button").text(" ");bar.openButtonContainer=a("<div/>").addClass("foobar-open-button-container");bar.openButton=a("<a/>").attr("href","#open-foobar").addClass("foobar-open-button").text(" ");bar.addTo("body");bar.initialized=true}else{bar.wrapper=a(".foobar-wrapper");bar.container=a(".foobar-container");bar.shadow=a(".foobar-shadow");bar.left=a(".foobar-container-left");bar.center=a(".foobar-container-center");bar.message=a(".foobar-message");bar.right=a(".foobar-container-right");bar.closeButtonContainer=a(".foobar-close-button-container");bar.closeButton=a(".foobar-close-button").text(" ");bar.openButtonContainer=a(".foobar-open-button-container");bar.openButton=a(".foobar-open-button").text(" ");bar.initialized=true}},reset:function(){bar.left.empty();bar.right.empty()},setCookie:function(a,b,c){if(c){var d=new Date;d.setTime(d.getTime()+c*24*60*60*1e3);var e="; expires="+d.toGMTString()}else{var e=""}document.cookie=a+"="+b+e+"; path=/"},getCookie:function(a){var b=a+"=";var c=document.cookie.split(";");for(var d=0;d<c.length;d++){var e=c[d];while(e.charAt(0)==" ")e=e.substring(1,e.length);if(e.indexOf(b)==0)return e.substring(b.length,e.length)}return null},deleteCookie:function(a){bar.setCookie(a,"",-1)},addTo:function(b){a(b).prepend(bar.wrapper);bar.wrapper.append(bar.container).append(bar.shadow).append(bar.openButtonContainer);bar.container.append(bar.closeButtonContainer).append(bar.left).append(bar.center.append(bar.message)).append(bar.right);bar.closeButtonContainer.append(bar.closeButton);bar.openButtonContainer.append(bar.openButton)},isNotNullOrEmpty:function(a){return typeof a=="string"&&a!=null&&a!=""},messageCycleReset:function(){if(bar.messageHover){bar.messageTimeoutId=setTimeout(bar.messageCycleReset,bar.settings.messagesDelay);return}a("#foobar-message-"+bar.currentMesasgeIndex).animate({"margin-left":0},500,function(){bar.currentMesasgeIndex=-1;bar.messageCycle()})},messageCycleFade:function(){if(bar.messageHover){bar.messageTimeoutId=setTimeout(bar.messageCycleFade,bar.settings.messagesDelay);return}$current=a("#foobar-message-"+bar.currentMesasgeIndex);$current.animate({opacity:0},bar.settings.messagesFadeDelay/2,function(){$current.css({"margin-left":0}).hide();bar.messageCycle()})},parseHtml:function(b){if(!bar.isNotNullOrEmpty(b))return b;if(b&&b.match("{{include:(.*?)}}")){var c=new RegExp("{{include:(.*?)}}");var d=c.exec(b);while(d!=null){var e=a(d[1]).html();b=b.replace(d[0],e);d=c.exec(b)}}return b},messageCycle:function(){if(!bar.isOpen){return}if(bar.messageHover){bar.messageTimeoutId=setTimeout(bar.messageCycle,bar.settings.messagesDelay);return}if(bar.currentMesasgeIndex==bar.messageIndex){return}bar.clearMessageTimeout();if(a(".foobar-message-wrapper").length==0){for(var b=0;b<bar.settings.messages.length;b++){var c=bar.parseHtml(bar.settings.messages[b]);var d=a('<div id="foobar-message-'+b+'" class="foobar-message-wrapper">'+c+"</div>");d.css({position:"absolute",display:"block",width:"auto"});d.css({left:"0",top:b*100+100});if(!bar.isNotNullOrEmpty(bar.settings.messageClass)){var e=d.find("a");bar.styleLinks(e);bar.styleLinksHover(e)}bar.message.append(d);bar.settings.messageSizes[b]=d.width();d.hover(bar.pauseMessages,bar.resumeMessages);if(b!=bar.messageIndex){d.hide()}}}var f=a("#foobar-message-"+bar.messageIndex);f.css({position:"static",visability:"visible",marginLeft:"0",opacity:"100"}).show();bar.currentMesasgeIndex=bar.messageIndex;var g=bar.center.width();var h=bar.settings.messageSizes[bar.messageIndex];bar.messageIndex>=bar.settings.messages.length-1?bar.messageIndex=0:bar.messageIndex++;if(h>g){var i=h-g;var j=Math.round(i/bar.settings.messagesScrollSpeed)*1e3;f.css({width:h});bar.message.css({width:g});f.delay(bar.settings.messagesScrollDelay).animate({"margin-left":"-"+i},j,"linear",function(){if(bar.messageIndex==bar.currentMesasgeIndex){bar.messageTimeoutId=setTimeout(bar.messageCycleReset,bar.settings.messagesDelay)}else{bar.messageTimeoutId=setTimeout(bar.messageCycleFade,bar.settings.messagesDelay)}})}else{if(bar.messageIndex!=bar.currentMesasgeIndex){bar.messageTimeoutId=setTimeout(bar.messageCycleFade,bar.settings.messagesDelay)}}return},styleLinks:function(a){if(bar.isNotNullOrEmpty(bar.settings.aFontFamily)){a.css("font-family",bar.settings.aFontFamily)}if(bar.isNotNullOrEmpty(bar.settings.aFontSize)){a.css("font-size",bar.settings.aFontSize)}if(bar.isNotNullOrEmpty(bar.settings.aFontColor)){a.css("color",bar.settings.aFontColor)}if(bar.isNotNullOrEmpty(bar.settings.aFontDecoration)){a.css("text-decoration",bar.settings.aFontDecoration)}if(bar.isNotNullOrEmpty(bar.settings.aFontShadow)){a.css("text-shadow",bar.settings.aFontShadow)}},styleLinksHover:function(b){b.unbind("mouseenter").bind({mouseenter:function(){if(bar.isNotNullOrEmpty(bar.settings.aHoverFontFamily)){a(this).css("font-family",bar.settings.aHoverFontFamily)}if(bar.isNotNullOrEmpty(bar.settings.aHoverFontSize)){a(this).css("font-size",bar.settings.aHoverFontSize)}if(bar.isNotNullOrEmpty(bar.settings.aHoverFontColor)){a(this).css("color",bar.settings.aHoverFontColor)}if(bar.isNotNullOrEmpty(bar.settings.aHoverFontDecoration)){a(this).css("text-decoration",bar.settings.aHoverFontDecoration)}if(bar.isNotNullOrEmpty(bar.settings.aHoverFontShadow)){a(this).css("text-shadow",bar.settings.aHoverFontShadow)}},mouseleave:function(){bar.styleLinks(a(this))}})},clearMessageTimeout:function(){if(typeof bar.messageTimeoutId!="undefined"&&bar.messageTimeoutId!=null){clearTimeout(bar.messageTimeoutId)}bar.messageTimeoutId=null},setMessageTimeout:function(){bar.clearMessageTimeout();if(typeof bar.messageTimeoutId=="undefined"||bar.messageTimeoutId==null){bar.messageTimeoutId=setTimeout(bar.messageCycle,bar.settings.messagesDelay)}},isGoogleLoaded:function(){var b=false;a('head > script[type="text/javascript"]').each(function(){var c=a(this).attr("src");var d="http://www.google.com/jsapi?key=";if(bar.isNotNullOrEmpty(c)&&c.length>=d.length&&c.substr(0,d.length)===d){b=true}});return b&&!(typeof google=="undefined")},isFeedsLoaded:function(){return bar.isGoogleLoaded()&&!(typeof google.feeds=="undefined")},loadGoogle:function(){var a=document.createElement("script");a.src="http://www.google.com/jsapi?key="+bar.settings.rss.googleAPIKey+"&callback=jQuery.foobarGoogleCallback";a.type="text/javascript";document.getElementsByTagName("head")[0].appendChild(a)},loadFeeds:function(){google.load("feeds","1",{callback:bar.loadRss})},loadRss:function(){var a=new google.feeds.Feed(bar.settings.rss.url);a.setNumEntries(bar.settings.rss.maxResults);a.load(function(a){bar.clearMessageTimeout();if(!a.error){for(var b=0;b<a.feed.entries.length;b++){var c=a.feed.entries[b].title;if(bar.isNotNullOrEmpty(bar.settings.rss.linkText)){c+=' <a href="'+a.feed.entries[b].link+'" target="'+bar.settings.rss.linkTarget+'">'+bar.settings.rss.linkText+"</a>"}bar.settings.messages.push(c)}}bar.message.stop().css({left:0,opacity:100});bar.messageCycle()})},loadTwitter:function(){var a="http://twitter.com/statuses/user_timeline/"+bar.settings.twitter.user+".json?callback=?&page=1&count="+bar.settings.twitter.maxTweets;jQuery.ajax({url:a,dataType:"json",success:function(a){jQuery.each(a,function(a,b){var c=bar.formatTweetHtml(b.text);bar.settings.messages.push(c)});bar.message.stop().css({left:0,opacity:100});bar.messageCycle()},error:function(){alert("There was a problem connecting to Twitter")}})},formatTweetHtml:function(a){a=" "+a;a=a.replace(/\b(((https*\:\/\/)|www\.)[^\"\']+?)(([!?,.\)]+)?(\s|$))/g,function(a,b,c,d,e){var f=c.match(/w/)?"http://":"";return'<a class="twtr-hyperlink" target="_blank" href="'+f+b+'">'+b+"</a>"+e});a=a.replace(/\B[@＠]([a-zA-Z0-9_]{1,20})/g,function(a,b){return'<a target="_blank" class="twtr-atreply" href="http://twitter.com/intent/user?screen_name='+b+'">@'+b+"</a>"});a=a.replace(/\B[@＠]([a-zA-Z0-9_]{1,20}\/\w+)/g,function(a,b){return'<a target="_blank" class="twtr-atreply" href="http://twitter.com/'+b+'">@'+b+"</a>"});a=a.replace(/(^|\s+)#(\w+)/gi,function(a,b,c){return b+'<a target="_blank" class="twtr-hashtag" href="http://twitter.com/search?q=%23'+c+'">#'+c+"</a>"});return a},expand:function(b){if(typeof b!="undefined"&&b!=null&&typeof b.preventDefault=="function"){b.preventDefault()}if(!bar.isOpen){bar.openButton.animate({height:0},bar.settings.speed);bar.openButtonContainer.animate({height:0},bar.settings.speed,function(){bar.container.animate({height:bar.settings.height},bar.settings.speed,bar.settings.easing).css({"border-bottom":bar.settings.border});bar.wrapper.animate({height:bar.settings.height+5},bar.settings.speed,bar.settings.easing);bar.message.show();bar.left.show();bar.right.show();if(bar.settings.positioning=="fixed"){a("html").animate({"margin-top":"+="+(bar.settings.height+5)})}else{a("html").css({"margin-top":bar.htmlMarginTop+"px"})}bar.wrapper.focus();bar.isOpen=true;bar.messageCycle()});if(bar.settings.enableCookie){bar.setCookie("foobar-state",true,1)}}},collapse:function(b){if(typeof b!="undefined"&&b!=null&&typeof b.preventDefault=="function"){b.preventDefault()}if(bar.isOpen){bar.container.animate({height:0},bar.settings.speed).css({border:"none"});if(bar.settings.positioning=="fixed"){a("html").animate({"margin-top":"-="+(bar.settings.height+5)})}else{a("html").css({"margin-top":bar.htmlMarginTop+"px"})}bar.wrapper.animate({height:5},bar.settings.speed,function(){bar.message.hide();bar.left.hide();bar.right.hide();bar.openButtonContainer.animate({height:bar.settings.collapsedButtonHeight+11},bar.settings.speed,bar.settings.easing);bar.openButton.animate({height:bar.settings.collapsedButtonHeight},bar.settings.speed,bar.settings.easing)});bar.isOpen=false;if(bar.settings.enableCookie){bar.setCookie("foobar-state",false,1)}}},setExpanded:function(){bar.container.height(bar.settings.height).css({"border-bottom":bar.settings.border});bar.wrapper.height(bar.settings.height+5);bar.openButtonContainer.add(bar.openButton).height(0);if(bar.settings.positioning=="fixed"){a("html").css({"margin-top":bar.htmlMarginTop<=0?bar.settings.height+5+"px":bar.htmlMarginTop+(bar.settings.height+5)+"px"})}else{a("html").css({"margin-top":bar.htmlMarginTop+"px"})}bar.isOpen=true;bar.message.show();bar.left.show();bar.right.show();if(bar.settings.enableCookie){bar.setCookie("foobar-state",true,1)}},setCollapsed:function(){bar.container.height(0).css({"border-bottom":0});bar.wrapper.height(5);bar.openButtonContainer.height(bar.settings.collapsedButtonHeight+11);bar.openButton.height(bar.settings.collapsedButtonHeight);if(bar.settings.positioning=="fixed"){a("html").css({"margin-top":bar.htmlMarginTop<=0?0+"px":bar.htmlMarginTop-(bar.settings.height+5)+"px"})}else{a("html").css({"margin-top":bar.htmlMarginTop+"px"})}bar.isOpen=false;bar.message.hide();bar.left.hide();bar.right.hide();if(bar.settings.enableCookie){bar.setCookie("foobar-state",false,1)}},pauseMessages:function(){bar.messageHover=true},resumeMessages:function(){bar.messageHover=false},apply:function(b){wasinit=true;bar.settings=b;if(!bar.initialized){bar.initialize();wasinit=false}else{bar.reset()}if(b.messagesScrollDirection!="left"&&b.messagesScrollDirection!="right"){b.messagesScrollDirection=defaults.messagesScrollDirection}bar.wrapper.height(bar.settings.height+5);bar.openButtonContainer.height(bar.settings.collapsedButtonHeight+11);bar.openButton.height(bar.settings.collapsedButtonHeight);bar.container.add(bar.right).add(bar.left).add(bar.center).add(bar.message).add(bar.closeButtonContainer).add(bar.closeButton).height(bar.settings.height);bar.right.add(bar.left).add(bar.center).add(bar.message).css({"line-height":bar.settings.height+"px"});bar.container.add(bar.openButton).css({"background-color":bar.settings.backgroundColor});bar.container.css({"border-bottom":bar.settings.border});bar.openButton.css({border:bar.settings.border,"border-top":"none"});bar.openButtonContainer.css({top:bar.htmlMarginTop+"px"});bar.openButton.add(bar.closeButton).removeClass();bar.openButton.addClass("foobar-open-button");bar.closeButton.addClass("foobar-close-button");bar.openButton.add(bar.closeButton).addClass(b.buttonTheme);if(bar.settings.enableShadow){bar.shadow.show();bar.openButtonContainer.addClass("shadow")}else{bar.shadow.hide();bar.openButtonContainer.removeClass("shadow")}if(bar.isNotNullOrEmpty(bar.settings.messageClass)){bar.message.addClass(bar.settings.messageClass)}else{if(bar.isNotNullOrEmpty(bar.settings.fontFamily)){bar.message.css("font-family",bar.settings.fontFamily)}if(bar.isNotNullOrEmpty(bar.settings.fontSize)){bar.message.css("font-size",bar.settings.fontSize)}if(bar.isNotNullOrEmpty(bar.settings.fontColor)){bar.message.css("color",bar.settings.fontColor)}if(bar.isNotNullOrEmpty(bar.settings.fontShadow)){bar.message.css("text-shadow",bar.settings.fontShadow)}}if(bar.settings.positionSocial=="left"||bar.settings.positionSocial=="right"){if(bar.settings.social.profiles.length>0){var c=a(".foobar-social").length>0?a(".foobar-social"):a("<ul/>").addClass("foobar-social");c.empty();var d=a("<li/>").text(bar.settings.social.text).css({height:bar.settings.height,"line-height":bar.settings.height+"px"});if(bar.isNotNullOrEmpty(bar.settings.socialClass)){d.addClass(bar.settings.socialClass)}else{d.css({"padding-right":"10px","padding-left":"10px"});if(bar.isNotNullOrEmpty(bar.settings.social.fontFamily)){d.css("font-family",bar.settings.social.fontFamily)}if(bar.isNotNullOrEmpty(bar.settings.social.fontSize)){d.css("font-size",bar.settings.social.fontSize)}if(bar.isNotNullOrEmpty(bar.settings.social.fontColor)){d.css("color",bar.settings.social.fontColor)}if(bar.isNotNullOrEmpty(bar.settings.social.fontShadow)){d.css("text-shadow",bar.settings.social.fontShadow)}}c.append(d);pdef={name:null,url:null,image:null,target:"_blank"};a.each(bar.settings.social.profiles,function(b,d){profile=a.extend({},pdef,d);if(profile.name!=null&&profile.url!=null&&profile.image!=null){var e=a("<a/>").attr("href",profile.url).attr("title",profile.name).attr("target",profile.target).css({background:"url('"+profile.image+"') no-repeat center center",height:bar.settings.height});c.append(a("<li/>").css({height:bar.settings.height}).append(e))}});if(bar.settings.positionSocial=="right"){c.css("float","right");bar.right.append(c)}else if(bar.settings.positionSocial=="left"){c.css("float","left");bar.left.append(c)}}else{a(".foobar-social").remove()}}else{a(".foobar-social").remove()}if(bar.isNotNullOrEmpty(bar.settings.rightHtml)){bar.right.append(bar.parseHtml(bar.settings.rightHtml))}if(bar.isNotNullOrEmpty(bar.settings.leftHtml)){bar.left.append(bar.parseHtml(bar.settings.leftHtml))}if(bar.settings.positioning=="fixed"){bar.wrapper.css({position:"fixed",top:bar.htmlMarginTop+"px",left:"0px"});bar.openButtonContainer.css({position:"fixed"})}else{bar.wrapper.css({position:"relative",top:0,left:0});bar.openButtonContainer.css({position:"absolute"})}if(bar.settings.positionClose=="right"){if(!bar.isNotNullOrEmpty(bar.settings.leftWidth)){bar.left.css("width","25%")}if(!bar.isNotNullOrEmpty(bar.settings.rightWidth)){bar.right.css("width","20%")}bar.closeButtonContainer.css("float","right");bar.openButtonContainer.css({left:"auto",right:"0px"})}else if(bar.settings.positionClose=="left"){if(!bar.isNotNullOrEmpty(bar.settings.leftWidth)){bar.left.css("width","20%")}if(!bar.isNotNullOrEmpty(bar.settings.rightWidth)){bar.right.css("width","25%")}bar.closeButtonContainer.css("float","left");bar.openButtonContainer.css({right:"auto",left:"0px"})}else{if(!bar.isNotNullOrEmpty(bar.settings.leftWidth)){bar.left.css("width","25%")}if(!bar.isNotNullOrEmpty(bar.settings.rightWidth)){bar.right.css("width","25%")}}if(bar.isNotNullOrEmpty(bar.settings.leftWidth)){bar.left.css("width",bar.settings.leftWidth)}if(bar.isNotNullOrEmpty(bar.settings.rightWidth)){bar.right.css("width",bar.settings.rightWidth)}if(bar.isNotNullOrEmpty(bar.settings.centerWidth)){bar.center.css("width",bar.settings.centerWidth)}var e=bar.getCookie("foobar-state");if(e==null||!bar.settings.enableCookie){if(!bar.settings.enableCookie){bar.deleteCookie("foobar-state")}switch(bar.settings.display){case"onscroll":bar.setCollapsed();a(window).one("scroll",function(){setTimeout(bar.expand,bar.settings.displayDelay)});break;case"delayed":bar.setCollapsed();setTimeout(bar.expand,bar.settings.displayDelay);break;case"collapsed":bar.setCollapsed();break;case"expanded":default:bar.setExpanded();break}}else{e=="true"?bar.setExpanded():bar.setCollapsed()}bar.openButton.unbind().click(bar.expand);bar.closeButton.unbind().click(bar.collapse);a(".foobar-message-wrapper").remove();bar.messageHover=false;bar.messageIndex=0;bar.currentMesasgeIndex=-1;var f=true;if(bar.settings.twitter.enabled&&bar.isNotNullOrEmpty(bar.settings.twitter.user)){f=false;bar.loadTwitter()}if(bar.settings.rss.enabled&&bar.isNotNullOrEmpty(bar.settings.rss.googleAPIKey)&&bar.isNotNullOrEmpty(bar.settings.rss.url)){f=false;if(bar.isGoogleLoaded()&&bar.isFeedsLoaded()){bar.loadRss()}else if(bar.isFeedsLoaded()){bar.loadFeeds()}else{bar.loadGoogle()}}if(f){bar.message.stop(true,false).css({opacity:100});bar.messageCycle()}}}})(jQuery)
