(function($){$.fn.socialbutton=function(service,options){options=options||{};var defaults={mixi_check:{key:'',button:'button-1',url:''},mixi_like:{key:'',url:document.URL,width:0,height:0,show_faces:true,style:'',sizes:{width:{with_faces:450,without_faces:140},height:{with_faces_minimum:80,without_faces_minimum:20}}},facebook_like:{button:'standard',url:document.URL,show_faces:true,width:0,height:0,width_standard_default:450,width_standard_minimum:225,height_standard_without_photo:35,height_standard_with_photo:80,width_button_count_default:120,width_button_count_minimum:90,height_button_count:25,width_box_count_default:80,width_box_count_minimum:55,height_box_count:70,action:'like',locale:'',font:'',colorscheme:'light'},facebook_share:{button:'button_count',url:'',text:''},twitter:{button:'vertical',url:'',text:'',lang:'ja',via:'',related:''},gree_sf:{button:0,url:document.URL,width:0,height:20,widths:{type0_16:58,type0_20:70,type0_23:76,type1_16:58,type1_20:73,type1_23:78,type2_16:58,type2_20:73,type2_23:78,type3_16:49,type3_20:61,type3_23:64,type4_16:16,type4_22:21,type4_32:32}},evernote:{button:'article-clipper',url:'',provider_name:'',suggest_notebook:'',content_id:'',code:'',title:'',suggest_tags:'',styling:''},hatena:{button:'standard',url:document.URL,title:document.title},hatena_oldstyle:{button:'http://d.hatena.ne.jp/images/b_append.gif',url:document.URL,height:13,padding:7},google_plusone:{button:'',url:'',lang:'',parsetags:'',callback:'',count:true}};var max_index=this.size()-1;return this.each(function(index){switch(service){case'mixi_check':socialbutton_mixi_check(this,options,defaults.mixi_check,index,max_index);break;case'mixi_like':socialbutton_mixi_like(this,options,defaults.mixi_like,index,max_index);break;case'facebook_like':socialbutton_facebook_like(this,options,defaults.facebook_like,index,max_index);break;case'facebook_share':socialbutton_facebook_share(this,options,defaults.facebook_share,index,max_index);break;case'twitter':socialbutton_twitter(this,options,defaults.twitter,index,max_index);break;case'gree_sf':socialbutton_gree_sf(this,options,defaults.gree_sf,index,max_index);break;case'evernote':socialbutton_evernote(this,options,defaults.evernote,index,max_index);break;case'hatena':socialbutton_hatena(this,options,defaults.hatena,index,max_index);break;case'hatena_oldstyle':socialbutton_hatena_oldstyle(this,options,defaults.hatena_oldstyle,index,max_index);break;case'google_plusone':socialbutton_google_plusone(this,options,defaults.google_plusone,index,max_index);break;default:break;}
return true;});}
function socialbutton_mixi_check(target,options,defaults,index,max_index)
{var key=options.key||defaults.key;var button=options.button||defaults.button;var url=options.url||defaults.url;if(key==''){return;}
var attr=merge_attributes({'data-key':key,'data-url':htmlspecialchars(url),'data-button':button});var tag='<a href="http://mixi.jp/share.pl" class="mixi-check-button"'+attr+'>Check</a>';$(target).html(tag);if(index==max_index){$('body').append('<script type="text/javascript" src="http://static.mixi.jp/js/share.js"></script>');}}
function socialbutton_mixi_like(target,options,defaults,index,max_index)
{var key=options.key||defaults.key;var url=options.url||defaults.url;var width=options.width!=undefined?options.width:defaults.width;var height=options.height!=undefined?options.height:defaults.height;var show_faces=options.show_faces!=undefined?options.show_faces:defaults.show_faces;var style=options.style||defaults.style;if(key==''){return;}
if(options.url){url=decodeURIComponent(url);}
url=url_encode_rfc3986(url);if(width==0){width=show_faces?defaults.sizes.width.with_faces:defaults.sizes.width.without_faces;}
if(height==0){height=show_faces?defaults.sizes.height.with_faces_minimum:defaults.sizes.height.without_faces_minimum;}else{if(show_faces&&height<defaults.sizes.height.with_faces_minimum){height=defaults.sizes.height.with_faces_minimum;}else if(!show_faces&&height<defaults.sizes.height.without_faces_minimum){height=defaults.sizes.height.without_faces_minimum;}}
var params=merge_parameters({'href':url,'service_key':key,'width':width,'show_faces':show_faces?'true':'false'});var attr=merge_attributes({src:'http://plugins.mixi.jp/favorite.pl?'+params,scrolling:'no',frameborder:'0',allowTransparency:'true',style:'border:0; overflow:hidden; width:'+width+'px; height:'+height+'px; '+style});var tag='<iframe'+attr+'></iframe>';$(target).html(tag);}
function socialbutton_facebook_like(target,options,defaults,index,max_index)
{var layout=options.layout||options.button||defaults.button;var url=options.url||defaults.url;var show_faces=options.show_faces!=undefined?options.show_faces:defaults.show_faces;var width=options.width!=undefined?options.width:defaults.width;var height=options.height!=undefined?options.height:defaults.height;var action=options.action||defaults.action;var locale=options.locale||defaults.locale;var font=options.font||defaults.font;var colorscheme=options.colorscheme||defaults.colorscheme;if(options.url){url=decodeURIComponent(url);}
url=url_encode_rfc3986(url);switch(layout){case'standard':if(width==0){width=defaults.width_standard_default;}else if(width<defaults.width_standard_minimum){width=defaults.width_standard_minimum;}
if(height==0){height=show_faces?defaults.height_standard_with_photo:defaults.height_standard_without_photo;}else if(height<defaults.height_standard_without_photo){height=defaults.height_standard_without_photo;}
break;case'button_count':if(width==0){width=defaults.width_button_count_default;}else if(width<defaults.width_button_count_minimum){width=defaults.width_button_count_minimum;}
if(height==0){height=defaults.height_button_count;}else if(height<defaults.height_button_count){height=defaults.height_button_count;}
break;case'box_count':if(width==0){width=defaults.width_box_count_default;}else if(width<defaults.width_box_count_minimum){width=defaults.width_box_count_minimum;}
if(height==0){height=defaults.height_box_count;}else if(height<defaults.height_box_count){height=defaults.height_box_count;}
break;}
var params=merge_parameters({'href':url,'layout':layout,'show_faces':show_faces?'true':'false','width':width,'action':action,'locale':locale,'font':font,'colorscheme':colorscheme,'height':height});var tag='<iframe src="http://www.facebook.com/plugins/like.php?'+params+'" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:'+width+'px; height:'+height+'px;" allowTransparency="true"></iframe>';$(target).html(tag);}
function socialbutton_facebook_share(target,options,defaults,index,max_index)
{var type=options.type||options.button||defaults.button;var url=options.url||defaults.url;var text=options.text||defaults.text;var attr=merge_attributes({'type':type,'share_url':htmlspecialchars(url)});var tag='<a name="fb_share"'+attr+'>'+text+'</a>';if(index==0){tag+='<script type="text/javascript" src="http://static.ak.fbcdn.net/connect.php/js/FB.Share"></script>';}
$(target).html(tag);}
function socialbutton_twitter(target,options,defaults,index,max_index)
{var count=options.count||options.button||defaults.button;var url=options.url||defaults.url;var text=options.text||defaults.text;var lang=options.lang||defaults.lang;var via=options.via||defaults.via;var related=options.related||defaults.related;var attr=merge_attributes({'data-count':count,'data-url':htmlspecialchars(url),'data-text':text,'data-lang':lang,'data-via':via,'data-related':related});var tag='<a href="http://twitter.com/share" class="twitter-share-button"'+attr+'>Tweet</a>';$(target).html(tag);if(index==max_index){$('body').append('<script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script>');}}
function socialbutton_gree_sf(target,options,defaults,index,max_index)
{var type=options.type||options.button||defaults.button;var url=options.url||defaults.url;var width=options.width!=undefined?options.width:defaults.width;var height=options.height!=undefined?options.height:defaults.height;if(options.url){url=decodeURIComponent(url);}
url=url_encode_rfc3986(url);switch(type){case 0:case 1:case 2:case 3:if(height!=16&&height!=20&&height!=23){height=20;}
break;case 4:if(height!=16&&height!=22&&height!=32){height=22;}
break;default:type=0;width=0;height=20;break;}
if(width==0){width=defaults.widths['type'+type+'_'+height];}
var params=merge_parameters({'url':url,'type':String(type),'height':height});var tag='<iframe src="http://share.gree.jp/share?'+params+'" scrolling="no" frameborder="0" marginwidth="0" marginheight="0" style="border:none; overflow:hidden; width:'+width+'px; height:'+height+'px;" allowTransparency="true"></iframe>';$(target).html(tag);}
function socialbutton_evernote(target,options,defaults,index,max_index)
{var button=options.button||defaults.button;var url=options.url||defaults.url;var provider_name=options.provider_name||defaults.provider_name;var suggest_notebook=options.suggest_notebook||defaults.suggest_notebook;var content_id=options.content_id||defaults.content_id;var code=options.code||defaults.code;var title=options.title||defaults.title;var suggest_tags=options.suggest_tags||defaults.suggest_tags;var styling=options.styling||defaults.styling;if(button=='article-clipper'||button=='article-clipper-remember'||button=='article-clipper-jp'||button=='article-clipper-rus'||button=='article-clipper-fr'||button=='article-clipper-es'||button=='article-clipper-de'||button=='article-clipper-vert'||button=='site-mem-32'||button=='site-mem-36'||button=='site-mem-22'||button=='site-mem-16'){button='http://static.evernote.com/'+button+'.png';}
var clipoptions={'url':url,'providerName':provider_name,'suggestNotebook':suggest_notebook,'contentId':content_id,'code':code,'title':title,'suggestTags':suggest_tags,'styling':styling};if(index==0){$('body').append('<script type="text/javascript" src="http://static.evernote.com/noteit.js"></script>');}
var tag=$(document.createElement('a')).attr({href:'#'}).click(function(){if(Evernote){Evernote.doClip(clipoptions);}
return false;}).append('<img src="'+button+'" alt="Clip to Evernote" style="border: none" />');$(target).html(tag);}
function socialbutton_hatena(target,options,defaults,index,max_index)
{var layout=options.layout||options.button||defaults.button;var url=options.url||defaults.url;var title=options.title||defaults.title;url=htmlspecialchars(url);title=htmlspecialchars(title);var attr=merge_attributes({'href':'http://b.hatena.ne.jp/entry/'+url,'class':'hatena-bookmark-button','data-hatena-bookmark-title':title,'data-hatena-bookmark-layout':layout,'title':'このエントリーをはてなブックマークに追加'});var tag='<a'+attr+'><img src="http://b.st-hatena.com/images/entry-button/button-only.gif" alt="このエントリーをはてなブックマークに追加" width="20" height="20" style="border: none;" /></a>'
+'<script type="text/javascript" src="http://b.st-hatena.com/js/bookmark_button.js" charset="utf-8" async="async"></script>';$(target).html(tag);}
function socialbutton_hatena_oldstyle(target,options,defaults,index,max_index)
{var button=options.button||defaults.button;var url=options.url||defaults.url;var height=options.height!=undefined?options.height:defaults.height;var padding=options.padding!=undefined?options.padding:defaults.padding;url=htmlspecialchars(url);var tag='<span style="font-size: '+height+'px; line-height: 100%; ">'
+'<span style="padding-right: '+padding+'px"><a href="http://b.hatena.ne.jp/entry/add/'+url+'" target="_blank"><img src="'+button+'" style="border: none; vertical-align: text-bottom" /></a></span>'
+'<a href="http://b.hatena.ne.jp/entry/'+url+'" target="_blank"><img src="http://b.hatena.ne.jp/entry/image/'+url+'" style="border: none; vertical-align: text-bottom" /></a>'
+'</span>';$(target).html(tag);}
function socialbutton_google_plusone(target,options,defaults,index,max_index)
{if($.browser.msie&&parseInt($.browser.version,10)<8){return;}
var size=options.size||options.button||defaults.button;var href=options.href||options.url||defaults.url;var lang=options.lang||defaults.lang;var parsetags=options.parsetags||defaults.parsetags;var callback=options.callback||defaults.callback;var count=options.count!=undefined?options.count:defaults.count;switch(size){case'small':case'standard':case'medium':break;case'tall':count=true;break;default:size='standard';count=true;}
var tag=$('<div>').attr({'data-callback':callback,'data-count':count?'true':'false','data-href':href,'data-size':size}).addClass('g-plusone');$(target).append(tag);if(index==max_index){var script_params='';if(lang!=''){script_params+='lang: "'+htmlspecialchars(lang)+'"';}
if(parsetags!=''){script_params+=script_params!=''?',':'';script_params+='parsetags: "'+htmlspecialchars(parsetags)+"'";}
if(script_params!=''){script_params='{'+script_params+'}';}
if(typeof gapi==='undefined'||typeof gapi.plusone==='undefined'){$('body').append('<script type="text/javascript" src="https://apis.google.com/js/plusone.js">'+script_params+'</script>');}else{gapi.plusone.go();}}}
function merge_attributes(attr)
{var merged='';for(var i in attr){if(attr[i]==''){continue;}
merged+=' '+i+'="'+attr[i]+'"';}
return merged;}
function merge_parameters(params)
{var merged='';for(var i in params){if(params[i]==''){continue;}
merged+=merged!=''?'&amp;':'';merged+=i+'='+params[i]+'';}
return merged;}
function htmlspecialchars(string)
{var table=[[/&/g,'&amp;'],[/</g,'&lt;'],[/>/g,'&gt;'],[/"/g,'&quot;'],[/'/g,'&#039;']];for(var i in table){string=string.replace(table[i][0],table[i][1]);}
return string;}
function url_encode_rfc3986(url)
{return encodeURIComponent(url).replace(/[!*'()]/g,function(p){return"%"+p.charCodeAt(0).toString(16);});}})(jQuery);


