(function($){ $.attentionbar=function(options) { if(typeof options=="string"){ options={"messages":[options]}; }; var settings=$.extend(true,{},defaults,options); bar.apply(settings); }; $.fn.textWidth=function(){ var html_org=$(this).html(); var html_calc=''+html_org+'' $(this).html(html_calc); var width=$(this).find('span:first').width(); $(this).html(html_org); return width; }; 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":{ "backgroundColor":[], "fontColor":"white", "aFontColor":"white", "text":[] }, "messagesDelay":2000, "messagesFadeDelay":500, "messagesScrollSpeed":50, "messagesScrollDelay":2000, "messagesScrollDirection":"left", "enableCookie":false, "cookieHash":"", "cookieExpire":1, "positionClose":"right", "positionAnnouncement":"left", "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, "announcement":{ "text":"IMPORTANT!:", "fontFamily":"Verdana", "fontSize":[], "fontColor":"White", "fontShadow":null, "icon":[] }, "sideBar2":{ "enabled":false, "googleAPIKey":"", "url":"http://my-domain.com/rss", "maxResults":5, "linkText":"Read More", "linkTarget":"_blank" } }; 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, initialize:function(){ var $html=$('html'); bar.htmlMarginTop=parseInt($html.css('margin-top')); bar.htmlMarginTop=isNaN(bar.htmlMarginTop)?0:bar.htmlMarginTop; if($('.attentionbar-wrapper').length==0){ bar.wrapper=$('
').addClass('attentionbar-wrapper'); bar.container=$('
').addClass('attentionbar-container'); bar.shadow=$('
').addClass('attentionbar-shadow'); bar.left=$('
').addClass('attentionbar-container-left'); bar.center=$('
').addClass('attentionbar-container-center'); bar.message=$('').addClass('attentionbar-message'); bar.right=$('
').addClass('attentionbar-container-right'); bar.closeButtonContainer=$('
').addClass('attentionbar-close-button-container'); bar.closeButton=$('').attr('href','#close-attentionbar').addClass('attentionbar-close-button').text(' '); bar.openButtonContainer=$('
').addClass('attentionbar-open-button-container'); bar.openButton=$('').attr('href','#open-attentionbar').addClass('attentionbar-open-button').text(' '); bar.addTo('body'); bar.initialized=true; }else{ bar.wrapper=$('.attentionbar-wrapper'); bar.container=$('.attentionbar-container'); bar.shadow=$('.attentionbar-shadow'); bar.left=$('.attentionbar-container-left'); bar.center=$('.attentionbar-container-center'); bar.message=$('attentionbar-message'); bar.right=$('.attentionbar-container-right'); bar.closeButtonContainer=$('.attentionbar-close-button-container'); bar.closeButton=$('.attentionbar-close-button').text(' '); bar.openButtonContainer=$('.attentionbar-open-button-container'); bar.openButton=$('.attentionbar-open-button').text(' '); bar.initialized=true; }; }, setCookie:function(name,value,days){ if(days){ var date=new Date(); date.setTime(date.getTime()+(days*24*60*60*1000)); var expires="; expires="+date.toGMTString(); }else{ var expires=""; }; document.cookie=name+"="+value+expires+"; path=/"; }, getCookie:function(name){ var nameEQ=name+"="; var ca=document.cookie.split(';'); for(var i=0;icWidth){ var diff=mWidth-cWidth; var speed=Math.round(diff/bar.settings.messagesScrollSpeed)*1000; bar.message.css({'width':mWidth}).animate({'left':0},500); bar.message.delay(bar.settings.messagesScrollDelay).animate({'left':'-'+diff }, speed,'linear', function(){ bar.messageTimeoutId=setTimeout(bar.messageCycle,bar.settings.messagesDelay); }); }; }else if(bar.settings.messages.text.length>1){ bar.message.animate({'opacity':0}, bar.settings.messagesFadeDelay/2, function(){ bar.message.css({'left':0,'width':'auto'}); bar.message.html(bar.settings.messages.text[bar.messageIndex]); bar.container.add(bar.openButton).css({'background-color':bar.settings.messages.backgroundColor[bar.messageIndex]}); bar.message.css('color',bar.settings.messages.fontColor[bar.messageIndex]); var $announcement = bar.left.find('ul'); var $text = $announcement.find('li.'+bar.settings.announcementClass); var $announcementicon = $announcement.find('a.announcementicon'); if(icon.image[bar.messageIndex] != '') { $announcementicon.attr('title',icon.name[bar.messageIndex]).attr('target',icon.target).css({'background':"url('"+icon.image[bar.messageIndex]+"') no-repeat center center",'height':bar.settings.height}); } else { $announcementicon.attr('title',icon.name[bar.messageIndex]).attr('target',icon.target).css('background',''); } $text.animate({fontSize: bar.settings.announcement.fontSize[bar.messageIndex]}, 500 ).css('color',bar.settings.messages.fontColor[bar.messageIndex]).text(bar.settings.announcement.text[bar.messageIndex]); if(!bar.isNotNullOrEmpty(bar.settings.messageClass)){ var $a=bar.message.find('a'); bar.styleLinks($a,bar.messageIndex); bar.styleLinksHover($a); }; (bar.messageIndex>=(bar.settings.messages.text.length-1))?bar.messageIndex=0:bar.messageIndex++; bar.message.animate({'opacity':100}, bar.settings.messagesFadeDelay/2,function(){ var mWidth=bar.message.textWidth(); var cWidth=bar.center.width(); var diff=mWidth-cWidth; if(mWidth>cWidth){ var speed=Math.round(diff/bar.settings.messagesScrollSpeed)*1000; bar.message.css({'width':mWidth}).delay(bar.settings.messagesScrollDelay).animate({'left':'-'+diff},speed,'linear', function(){ bar.messageTimeoutId=setTimeout(bar.messageCycle,bar.settings.messagesDelay); }); }else{ bar.messageTimeoutId=setTimeout(bar.messageCycle,bar.settings.messagesDelay); }; }); }); }else{ bar.message.empty(); bar.messageTimeoutId=setTimeout(bar.messageCycle,bar.settings.messagesDelay); }; },styleLinks:function(links,messageindex){ if(bar.isNotNullOrEmpty(bar.settings.aFontFamily)){ links.css('font-family',bar.settings.aFontFamily); }; if(bar.isNotNullOrEmpty(bar.settings.aFontSize)){ links.css('font-size',bar.settings.aFontSize); }; if(bar.isNotNullOrEmpty(bar.settings.messages.aFontColor[messageindex])){ links.css('color',bar.settings.messages.aFontColor[messageindex]); }; if(bar.isNotNullOrEmpty(bar.settings.aFontDecoration)){ links.css('text-decoration',bar.settings.aFontDecoration); }; if(bar.isNotNullOrEmpty(bar.settings.aFontShadow)){ links.css('text-shadow',bar.settings.aFontShadow); }; },styleLinksHover:function(links){ links.unbind('mouseenter.attentionbar').bind({'mouseenter.attentionbar':function(){ if(bar.isNotNullOrEmpty(bar.settings.aHoverFontFamily)){ links.css('font-family',bar.settings.aHoverFontFamily); }; if(bar.isNotNullOrEmpty(bar.settings.aHoverFontSize)){ links.css('font-size',bar.settings.aHoverFontSize); }; if(bar.isNotNullOrEmpty(bar.settings.aHoverFontColor)){ links.css('color',bar.settings.aHoverFontColor); }; if(bar.isNotNullOrEmpty(bar.settings.aHoverFontDecoration)){ links.css('text-decoration',bar.settings.aHoverFontDecoration); }; if(bar.isNotNullOrEmpty(bar.settings.aHoverFontShadow)){ links.css('text-shadow',bar.settings.aHoverFontShadow); }; },'mouseleave.attentionbar':function(){ bar.styleLinks(links);}});},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 googleAPI=false;$('head > script[type="text/javascript"]').each(function(){ var src=$(this).attr('src'); var check="http://www.google.com/jsapi?key="; if(bar.isNotNullOrEmpty(src)&&src.length>=check.length&&src.substr(0,check.length)===check){ googleAPI=true; }; }); return(googleAPI&&!(typeof google=='undefined'));}, isFeedsLoaded:function(){ return(bar.isGoogleLoaded()&&!(typeof google.feeds=='undefined')); }, loadGoogle:function(){ var script=document.createElement("script"); script.src="http://www.google.com/jsapi?key="+bar.settings.sideBar2.googleAPIKey+"&callback=jQuery.attentionbarGoogleCallback"; script.type="text/javascript"; document.getElementsByTagName("head")[0].appendChild(script); }, loadFeeds:function(){ google.load("feeds","1",{'callback':bar.loadRss}); }, loadRss:function(){ var feed=new google.feeds.Feed(bar.settings.sideBar2.url); feed.setNumEntries(bar.settings.sideBar2.maxResults); feed.load(function(result){ bar.clearMessageTimeout(); if(!result.error){ for(var i=0;i'+bar.settings.sideBar2.linkText+''; }; bar.settings.messages.push(msg); } }; bar.message.stop().css({'left':0,'opacity':100}); bar.messageCycle(); }); }, expand:function(e){ if(typeof e!='undefined'&&e!=null&&typeof e.preventDefault=='function'){ e.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); if(bar.settings.positioning=='fixed'){ $('html').animate({'margin-top':'+='+(bar.settings.height+5)}); }else{ $('html').css({'margin-top':bar.htmlMarginTop+'px'}); }; bar.wrapper.focus(); }); bar.isOpen=true; if(bar.settings.enableCookie){ bar.setCookie('attentionbar-state'+bar.settings.cookieHash,true,bar.settings.cookieExpire); } }; }, collapse:function(e){ if(typeof e!='undefined'&&e!=null&&typeof e.preventDefault=='function'){ e.preventDefault(); } if(bar.isOpen){ bar.container.animate({'height':0},bar.settings.speed).css({'border':'none'}); if(bar.settings.positioning=='fixed'){ $('html').animate({'margin-top':'-='+(bar.settings.height+5)}); }else{ $('html').css({'margin-top':bar.htmlMarginTop+'px'}); }; bar.wrapper.animate({'height':5}, bar.settings.speed, function(){ 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('attentionbar-state'+bar.settings.cookieHash,false,bar.settings.cookieExpire); } }; }, 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'){ $('html').css({'margin-top':(bar.htmlMarginTop<=0)?(bar.settings.height+5)+'px':(bar.htmlMarginTop+(bar.settings.height+5))+'px'}); }else{ $('html').css({'margin-top':bar.htmlMarginTop+'px'}); }; bar.isOpen=true; if(bar.settings.enableCookie){ bar.setCookie('attentionbar-state'+bar.settings.cookieHash,true,bar.settings.cookieExpire); } }, 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'){ $('html').css({'margin-top':(bar.htmlMarginTop<=0)?0+'px':(bar.htmlMarginTop-(bar.settings.height+5))+'px'}); }else{ $('html').css({'margin-top':bar.htmlMarginTop+'px'}); }; bar.isOpen=false; if(bar.settings.enableCookie){ bar.setCookie('attentionbar-state'+bar.settings.cookieHash,false,bar.settings.cookieExpire); }}, apply:function(settings){ wasinit=true; bar.settings=settings; if(!bar.initialized){ bar.initialize(); wasinit=false; } if(settings.messagesScrollDirection!='left'&&settings.messagesScrollDirection!='right'){ settings.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('attentionbar-open-button'); bar.closeButton.addClass('attentionbar-close-button'); bar.openButton.add(bar.closeButton).addClass(settings.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.sideBar2.enabled&&bar.isNotNullOrEmpty(bar.settings.sideBar2.googleAPIKey)&&bar.isNotNullOrEmpty(bar.settings.sideBar2.url)){ bar.messageIndex=0; if(bar.isGoogleLoaded()&&bar.isFeedsLoaded()){ bar.loadRss(); }else if(bar.isFeedsLoaded()){ bar.loadFeeds(); }else{ bar.loadGoogle(); }; }else{ bar.center.hover(bar.clearMessageTimeout,bar.setMessageTimeout); bar.message.stop(true,false).css({'left':0,'opacity':100}); bar.messageCycle(); }; if(bar.settings.positionAnnouncement=='left'||bar.settings.positionAnnouncement=='right'){ if(bar.settings.announcement.icon.length>0){ var $announcement=$('.attentionbar-announcement').length>0?$('.attentionbar-announcement'):$('