(function($){var PROP_NAME='bookmark';function Bookmark(){this._uuid=new Date().getTime();this._defaults={url:'',sourceTag:'',title:'',description:'this is a longer description',sites:[],iconsStyle:'bookmark_icons',icons:'bookmarks32.png',iconSize:32,iconCols:16,target:'_blank',compact:true,hint:'{s}',popup:false,popupText:'Bookmark this site...',addFavorite:false,favoriteText:'Favorite',favoriteIcon:0,addEmail:false,emailText:'E-mail',emailIcon:1,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.',onSelect:null};this._sites={'facebook':{display:'Facebook',icon:0,lang:'en',url:'http://www.facebook.com/sharer.php?u={u}&amp;t={t}'},'twitter':{display:'twitter',icon:1,lang:'en',url:'http://twitter.com/home?status={t}%20{u}'},'digg':{display:'Digg',icon:2,lang:'en',url:'http://digg.com/submit?phase=2&amp;url={u}&amp;title={t}'},'stumbleupon':{display:'StumbleUpon',icon:3,lang:'en',url:'http://www.stumbleupon.com/submit?url={u}&amp;title={t}'},'delicious':{display:'del.icio.us',icon:4,lang:'en',url:'http://del.icio.us/post?url={u}&amp;title={t}'},'google':{display:'Google',icon:5,lang:'en',url:'http://www.google.com/bookmarks/mark?op=edit&amp;bkmk={u}&amp;title={t}'},'myspace':{display:'MySpace',icon:8,lang:'en',url:'http://www.myspace.com/Modules/PostTo/Pages/?u={u}&amp;t={t}'}}}$.extend(Bookmark.prototype,{markerClassName:'hasBookmark',setDefaults:function(settings){extendRemove(this._defaults,settings||{});return this},addSite:function(id,display,icon,lang,url){this._sites[id]={display:display,icon:icon,lang:lang,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);if(!target[0].id){target[0].id='bm'+(++this._uuid)}this._updateBookmark(target,settings)},_changeBookmark:function(target,settings,value){target=$(target);if(!target.hasClass(this.markerClassName)){return}if(typeof settings=='string'){var name=settings;settings={};settings[name]=value}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;var allSites=this._sites;if(sites.length==0){$.each(allSites,function(id){sites.push(id)})}else{$.each(sites,function(index,value){var lang=value.match(/lang:(.*)/);if(lang){var ids=[];$.each(allSites,function(id,site){if(site.lang==lang[1]){ids.push(id)}});sites=sites.slice(0,index).concat(ids,sites.slice(index+1))}})}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+'" '+(settings.iconsStyle?'class="'+settings.iconsStyle+'" ':'')+'style="'+(settings.iconsStyle?'background-position: ':'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-16))+'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;var desc=settings.description||'';if(settings.addFavorite){html+=addSite(settings.favoriteText,settings.favoriteIcon,'#','jQuery.bookmark._addFavourite(\''+url.replace(/'/g,'\\\'')+'\',\''+title.replace(/'/g,'\\\'')+'\')')}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).replace(/\{d\}/,settings.desc)))}var sourceTag=(!settings.sourceTag?'':encodeURIComponent((url.indexOf('?')>-1?'&':'?')+settings.sourceTag+'='));url=encodeURIComponent(url);title=encodeURIComponent(title);desc=encodeURIComponent(desc);var allSites=this._sites;$.each(sites,function(index,id){var site=allSites[id];if(site){html+=addSite(site.display,site.icon,(settings.onSelect?'#':site.url.replace(/\{u\}/,url+(sourceTag?sourceTag+id:'')).replace(/\{t\}/,title).replace(/\{d\}/,desc)),(settings.onSelect?'return jQuery.bookmark._selected(\''+target[0].id+'\',\''+id+'\')':''))}});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();target.find('.bookmark_popup').css('left',offset.left).css('top',offset.top+target.outerHeight()).slideToggle(900);return false});$(document).click(function(event){target.find('.bookmark_popup').hide()})}},_destroyBookmark:function(target){target=$(target);if(!target.hasClass(this.markerClassName)){return}target.removeClass(this.markerClassName).empty();$.removeData(target[0],PROP_NAME)},_selected:function(id,siteID){var target=$('#'+id)[0];var settings=$.data(target,PROP_NAME);var site=$.bookmark._sites[siteID];var url=settings.url||window.location.href;var sourceTag=(!settings.sourceTag?'':encodeURIComponent((url.indexOf('?')>-1?'&':'?')+settings.sourceTag+'='));var url=encodeURIComponent(url);var title=encodeURIComponent(settings.title||document.title);var desc=encodeURIComponent(settings.description||'');settings.onSelect.apply(target,[siteID,site.display,site.url.replace(/\{u\}/,url+(sourceTag?sourceTag+siteID:'')).replace(/\{t\}/,title).replace(/\{d\}/,desc)]);return false},_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);