
﻿
(function($){var PROP_NAME='bookmark';function Bookmark(){this._defaults={url:'',title:'',sites:[],icons:'social_32.png',iconSize:32,iconCols:32,target:'_blank',compact:true,hint:'Send to {s}',popup:false,popupText:'Bookmark this site...',addFavorite:false,favoriteText:'Favorite',favoriteIcon:0,addEmail:false,emailText:'E-mail',emailIcon:6,emailSubject:'Interesting page',emailBody:'I thought you might find this page interesting:\n{t} ({u})',manualBookmark:'Please close this dialog and\npress Ctrl-D to bookmark this page.'};this._sites={'facebook':{display:'Facebook',icon:0,url:'http://www.facebook.com/sharer.php?u={u}&amp;t={t}'},'stumbleupon':{display:'StumbleUpon',icon:1,url:'http://www.stumbleupon.com/submit?url={u}&amp;title={t}'},'digg':{display:'Digg',icon:2,url:'http://digg.com/submit?phase=2&amp;url={u}&amp;title={t}'},'yahoobuzz':{display:'Yahoo Buzz',icon:3,url:'http://buzz.yahoo.com/submit?submitUrl={u}&amp;submitHeadline={t}'},'google':{display:'Google',icon:4,url:'http://www.google.com/bookmarks/mark?op=edit&amp;bkmk={u}&amp;title={t}'},'twitthis':{display:'TwitThis',icon:5,url:'http://twitthis.com/twit?url={u}'}};}
$.extend(Bookmark.prototype,{markerClassName:'hasBookmark',setDefaults:function(settings){extendRemove(this._defaults,settings||{});return this;},addSite:function(id,display,icon,url){this._sites[id]={display:display,icon:icon,url:url};return this;},getSites:function(){return this._sites;},_attachBookmark:function(target,settings){target=$(target);if(target.hasClass(this.markerClassName)){return;}
target.addClass(this.markerClassName);this._updateBookmark(target,settings);},_changeBookmark:function(target,settings){target=$(target);if(!target.hasClass(this.markerClassName)){return;}
this._updateBookmark(target,settings);},_updateBookmark:function(target,settings){var oldSettings=$.data(target[0],PROP_NAME)||$.extend({},this._defaults);settings=extendRemove(oldSettings,settings||{});$.data(target[0],PROP_NAME,settings);var sites=settings.sites;if(sites.length==0){$.each(this._sites,function(id){sites.push(id);});}
var hint=settings.hint||'{s}';var html=(settings.popup?'<a href="#" class="bookmark_popup_text">'+
settings.popupText+'</a><div class="bookmark_popup">':'')+'<ul class="bookmark_list'+(settings.compact?' bookmark_compact':'')+'">';var addSite=function(display,icon,url,onclick){var html='<li><a href="'+url+'"'+(onclick?' onclick="'+onclick+'"':(settings.target?' target="'+settings.target+'"':''))+'>';if(icon!=null){var title=hint.replace(/\{s\}/,display);if(typeof icon=='number'){html+='<span title="'+title+'" style="background: '+'transparent url('+settings.icons+') no-repeat -'+
((icon%settings.iconCols)*settings.iconSize)+'px -'+
(Math.floor(icon/settings.iconCols)*settings.iconSize)+'px;'+
($.browser.mozilla&&$.browser.version<'1.9'?' padding-left: '+settings.iconSize+'px; padding-bottom: '+
(Math.max(0,settings.iconSize-32))+'px;':'')+'"></span>';}
else{html+='<img src="'+icon+'" alt="'+title+'" title="'+
title+'"'+(($.browser.mozilla&&$.browser.version<'1.9')||($.browser.msie&&$.browser.version<'7.0')?' style="vertical-align: bottom;"':($.browser.msie?' style="vertical-align: middle;"':($.browser.opera||$.browser.safari?' style="vertical-align: baseline;"':'')))+'/>';}
html+=(settings.compact?'':'&#xa0;');}
html+=(settings.compact?'':display)+'</a></li>';return html;};var url=settings.url||window.location.href;var title=settings.title||document.title;if(settings.addFavorite){html+=addSite(settings.favoriteText,settings.favoriteIcon,'#','jQuery.bookmark._addFavourite(\''+url.replace(/'/g,'\\\'')+'\',\''+title.replace(/'/g,'\\\'')+'\')');}
url=encodeURIComponent(url);title=encodeURIComponent(title);var allSites=this._sites;$.each(sites,function(index,id){var site=allSites[id];if(site){html+=addSite(site.display,site.icon,site.url.replace(/{u}/,url).replace(/{t}/,title));}});if(settings.addEmail){html+=addSite(settings.emailText,settings.emailIcon,'mailto:?subject='+encodeURIComponent(settings.emailSubject)+'&amp;body='+encodeURIComponent(settings.emailBody.replace(/{u}/,url).replace(/{t}/,title)));}
html+='</ul>'+(settings.popup?'</div>':'');target.html(html);if(settings.popup){$(target).find('.bookmark_popup_text').click(function(){var target=$(this).parent();var offset=target.offset();$('.bookmark_popup',target).css('left',offset.left).css('top',offset.top+target.outerHeight()).toggle();return false;});$(document).click(function(event){$('.bookmark_popup',target).hide();});}},_destroyBookmark:function(target){target=$(target);if(!target.hasClass(this.markerClassName)){return;}
target.removeClass(this.markerClassName).empty();$.removeData(target[0],PROP_NAME);},_addFavourite:function(url,title){if($.browser.msie){window.external.addFavorite(url,title);}
else{alert(this._defaults.manualBookmark);}}});function extendRemove(target,props){$.extend(target,props);for(var name in props){if(props[name]==null){target[name]=null;}}
return target;}
$.fn.bookmark=function(options){var otherArgs=Array.prototype.slice.call(arguments,1);return this.each(function(){if(typeof options=='string'){$.bookmark['_'+options+'Bookmark'].apply($.bookmark,[this].concat(otherArgs));}
else{$.bookmark._attachBookmark(this,options||{});}});};$.bookmark=new Bookmark();})(jQuery);
