+++ /dev/null
-/**
- * Multi Social Service Plugin
- *
- * This Plugin is connect your site to social service.
- *
- * [Support Social Service]
- * + Hatena Bookmark
- * + Twitter
- * + Facebook
- * + Evernote
- * + mixi check
- * + mixi like
- * + gree like
- * + Google +1
- * + tumblr(comming soon...)
- *
- * @author Ryosuke Sawada as manji6 <http://manjiro.net>
- * @requires jQuery
- * @license MIT licence
- *
- **/
-
-/**
- * multiSocialService setting object
- *
-*/
-jQuery.multiSocialService = {
- url:location.href,
- useService:['twitter','facebookLike','hatenaBookmark','evernoteClip','mixiLike','greeLike'],
- hatenaBookmark: {
- type:"horizontal"
- },
- twitter: {
- type:'horizontal',
- lang:'',
- text:'',
- via:''
- },
- facebook: {
- like: {
- type:'button_count',
- show_faces:'false',
- color:'light',
- width:100,
- height:23,
- lang:'',
- ogp: {
- title: document.title,
- image: "",
- description: "",
- app_id: "",
- type: "blog",
- site_name: ""
- }
- }
- },
- evernote: {
- clip: {
- targetId: 'container',
- name:'',
- tag: '',
- url: '',
- noteTitle: $("title").text()
- }
- },
- mixi: {
- check: {
- 'data-key':'',
- 'data-url':'',
- 'data-button':'button-1'
- },
- like: {
- href:"",
- service_key:"",
- width:"450",
- height:"80",
- show_faces:"false"
- }
- },
- gree: {
- like: {
- href:"",
- service_key:"",
- type:0,
- height:20
- }
- },
- google:{
- plus1: {
- lang: "ja",
- callback:"",
- count:true,
- size:""
- }
- },
- tumblr: {
- url:"",
- setType:"link",
- type:"vertical",
- title:document.title,
- description:$("meta:[name^='description']").attr("content")
- }
-}
-
-jQuery.fn.setMultiSocialService = function(option){
-
- var sInsertHtml = "<div class='multiSocialService-container'><ul class='multiSocialService-list' style='list-style-type:none'>";
- for(i in jQuery.multiSocialService.useService){
- switch(jQuery.multiSocialService.useService[i]){
- case "hatenaBookmark":
- sInsertHtml += '<li class="multiSocialService-hatenaBookmark">'+jQuery("<li />").setHatenaBookmark(jQuery.multiSocialService.hatenaBookmark).html()+'</li>';
- break;
- case "twitter":
- sInsertHtml += '<li class="multiSocialService-twitter">'+jQuery("<li />").setTwitter(jQuery.multiSocialService.twitter).html()+'</li>';
- break;
- case "facebookLike":
- sInsertHtml += '<li class="multiSocialService-facebookLike">'+jQuery("<li />").setFacebookLike(jQuery.multiSocialService.facebook.like).html()+'</li>';
- break;
- case "evernoteClip":
- sInsertHtml += '<li class="multiSocialService-evernoteClip">'+jQuery("<li />").setEvernoteClip(jQuery.multiSocialService.evernote.clip).html()+'</li>';
- break;
- case "mixiCheck":
- sInsertHtml += '<li class="multiSocialService-mixiCheck">'+jQuery("<li />").setMixiCheck(jQuery.multiSocialService.mixi.check).html()+'</li>';
- break;
- case "mixiLike":
- sInsertHtml += '<li class="multiSocialService-mixiLike">'+jQuery("<li />").setMixiLike(jQuery.multiSocialService.mixi.like).html()+'</li>';
- break;
- case "greeLike":
- sInsertHtml += '<li class="multiSocialService-greeLike">'+jQuery("<li />").setGreeLike(jQuery.multiSocialService.gree.like).html()+'</li>';
- break;
- case "googlePlus1":
- sInsertHtml += '<li class="multiSocialService-googlePlus1">'+jQuery("<li />").setGooglePlus1(jQuery.multiSocialService.google.plus1).html()+'</li>';
- break;
-/*
-//TODO comming soon.
-case "tumblr":
-sInsertHtml += '<li class="multiSocialService-tumblr">'+jQuery("<li />").setTumblr(jQuery.multiSocialService.tumblr).html()+'</li>';
-break;
-*/
- }
- }
- sInsertHtml += '</ul></div>';
-
- $(this).html($(sInsertHtml).find("li").css("display","inline").end().html());
- return this;
-}
-
-
-/**
- *
- * common initialize process
- * (ex.xss countermeasure)
- **/
-jQuery.multiSocialService.initialize = function(option){
-
- //xss countermeasure(url sanitize)
- if(typeof option === 'string'){
- option = encodeURIComponentRFC3986(decodeURIComponent(option));
- }else{
- option.url = encodeURIComponentRFC3986(decodeURIComponent(option.url));
- }
- return option;
-}
-
-/**
- * set HatenaBookmark
- *
- * @param {Object} option setting object
-*/
-jQuery.fn.setHatenaBookmark = function(option){
-
- option = jQuery.multiSocialService.initialize(jQuery.extend(true,{},jQuery.multiSocialService.hatenaBookmark,option));
-
- var htmlHatenaBookmark = '\
- <a href="http://b.hatena.ne.jp/entry/'+jQuery.multiSocialService.url+'" \
- class="hatena-bookmark-button" data-hatena-bookmark-layout="'+option.type+'" \
- title="このエントリーをはてなブックマークに追加">\
- <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>';
-
- $(this).html(htmlHatenaBookmark);
- return this;
-}
-
-/**
- * set Twitter tweet button
- *
- * @param {Object} option setting object
-*/
-jQuery.fn.setTwitter = function(option){
-
- option = jQuery.multiSocialService.initialize(jQuery.extend(true,{},jQuery.multiSocialService.twitter,option));
-
-
- var htmlTweetButton = '<a href="http://twitter.com/share" data-url="'+jQuery.multiSocialService.url+'" class="twitter-share-button" data-count="'+option.type+'" data-via="'+option.via+'" data-text="'+option.text+'" data-lang="'+option.lang+'">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js" charset="utf-8"></script>';
-
- $(this).html(htmlTweetButton);
- return this;
-
-}
-
-
-/**
- * set Facebook like button
- *
- * @param {Object} option setting object
-*/
-jQuery.fn.setFacebookLike = function(option){
-
- //extended option.
- option = jQuery.extend(true,{},jQuery.multiSocialService.facebook.like,option);
-
- if(option.lang === 'en'){
- option.lang = 'locale=en_US&';
- }
-
- //set tag "meta" for OGP
- if(option.ogp.app_id){
- $("head").append("<meta property='fb:app_id' content='"+option.ogp.app_id+"' />");
- }
-
- //attachment-post-thumbnail
-
- var htmlFacebookLikeButton = "<iframe src='http://www.facebook.com/plugins/like.php?"+option.lang+"app_id="+option.ogp.app_id+"&href="+encodeURIComponent(jQuery.multiSocialService.url)+"&layout="+option.type+"&show_faces="+option.show_faces+"&width=450&action=like&font&colorscheme="+option.color+"&height=21' scrolling='no' frameborder='0' style='border:none; overflow:hidden; width:"+option.width+"px; height:"+option.height+"px;' allowTransparency='true'></iframe>";
-
- $(this).html(htmlFacebookLikeButton);
-
- return this;
-}
-
-
-/**
- * set EvernoteClip
- *
- * @param {Object} option setting object
-*/
-jQuery.fn.setEvernoteClip = function(option){
-
- option = jQuery.extend(true,{},jQuery.multiSocialService.evernote.clip,option);
-
- var htmlEvernoteClip = '<script type="text/javascript" src="http://static.evernote.com/noteit.js" charset="utf-8"></script><a href="#" onclick="Evernote.doClip({contentId:\''+option.targetId+'\',providerName:\''+option.name+'\',url:\''+option.url+'\',suggestTags:\''+option.tag+'\',title:\''+option.noteTitle+'\'}); return false;"><img src="http://static.evernote.com/article-clipper-jp.png" alt="Clip to Evernote" /></a>';
-
- $(this).html(htmlEvernoteClip);
- return this;
-}
-
-/**
- * set mixi check button
- *
- * @param {Object} option parameter setting object
-*/
-jQuery.fn.setMixiCheck = function(option){
-
- option = jQuery.extend(true,{},jQuery.multiSocialService.mixi.check,option);
-
- //if use "mixi like" button, required service_key.
- if(option.data_key === ''){
- alert('plase set data_key.');
- return false;
- }
-
-
- var htmlMixiCheck = '<a href="http://mixi.jp/share.pl" class="mixi-check-button" data-key="'+option['data-key']+'" data-url="'+option['data-url']+'" data-button="'+option['data-button']+'">mixiチェック</a>\
- <script type="text/javascript" src="http://static.mixi.jp/js/share.js" charset="utf-8"></script>\
- ';
-
- $(this).html(htmlMixiCheck);
-
- return this;
-}
-
-
-/**
- * set mixi like button
- *
- * @param {Object} option parameter setting object
-*/
-jQuery.fn.setMixiLike = function(option){
-
- option = jQuery.extend(true,jQuery.multiSocialService.mixi.like,option);
- option.href = jQuery.multiSocialService.url;
-
- //if use "mixi like" button, required service_key.
- if(option.service_key === ""){
- alert("plase set service_key.");
- return false;
- }
-
- var htmlMixiLike = '<iframe src="http://plugins.mixi.jp/favorite.pl?'+$.param(option)+'" \
- scrolling="no" frameborder="0" allowTransparency="true" style="border:0; overflow:hidden; width:'+option.width+'px; height:'+option.height+'px;"></iframe>';
-
- $(this).html(htmlMixiLike);
-
- return this;
-}
-
-
-/**
- * set gree like button
- *
- * @param {Object} option parameter setting object
-*/
-jQuery.fn.setGreeLike = function(option){
-
- option = jQuery.extend(true,{},jQuery.multiSocialService.gree.like,option);
- option.href = jQuery.multiSocialService.url;
-
- var htmlGreeLike = '<iframe src="http://share.gree.jp/share?url='+option.href+'&type='+option.type+'&height='+option.height+'" \
- scrolling="no" frameborder="0" marginwidth="0" marginheight="0" style="border:none; overflow:hidden; \
- width:100px; height:'+option.height+'px;" allowTransparency="true">\
- </iframe>';
-
- $(this).html(htmlGreeLike);
-
- return this;
-}
-
-/**
- * set google +1 button
- *
- * @param {Object} option parameter setting object
- **/
-jQuery.fn.setGooglePlus1 = function(option){
-
- option = jQuery.extend(true, {}, jQuery.multiSocialService.google.plus1,option);
-
- var htmlGooglePlus1 = [];
- htmlGooglePlus1.push('<script type="text/javascript" src="https://apis.google.com/js/plusone.js" charset="utf-8">{lang: "'+option.lang+'"}</script>');
- htmlGooglePlus1.push('<g:plusone size="'+option.size+'" count="'+option.count+'" href="'+jQuery.multiSocialService.url+'" callback="'+option.callback+'"></g:plusone>');
- $(this).html(htmlGooglePlus1.join(''));
-
- return this;
-}
-
-
-/**
- * set OpenGraphProtocol
- *
- * @param {Object} option Parameter setting object
- **/
-jQuery.setOGP = function(option){
-
- option = jQuery.extend(true,{},{
- title: document.title
- },option);
-
-
- //set tag "meta" for OGP
- $("head").append("<meta property='og:title' content='"+option.title+"' />");
- $("head").append("<meta property='og:url' content='"+jQuery.multiSocialService.url+"' />");
- if(option.image){
- $("head").append("<meta property='og:image' content='"+option.image+"' />");
- }
- if(option.description){
- $("head").append("<meta property='og:description' content='"+option.description+"' />");
- }
- if(option.type){
- $("head").append("<meta property='og:type' content='"+option.type+"' />");
- }
- if(option.site_name){
- $("head").append("<meta property='og:site_name' content='"+option.site_name+"' />");
- }
-}
-
-/**
- * set tumblr button
- *
- * TODO comming soon...
- *
- * @param {Object} option parameter setting object
- **/
-jQuery.fn.setTumblr = function(option){
-
- option = jQuery.multiSocialService.initialize(jQuery.extend(true,{},jQuery.multiSocialService.tumblr,option));
- option.href = jQuery.multiSocialService.url;
-
- //set type
- var oParam = {};
-
- switch(option.setType){
-
- case 'link':
- //option.url ? oParam.url = $.multiSocialService.initialize(option.url):null;
- option.url ? oParam.url = option.url:null;
- option.name ? oParam.name = option.title:null;
- option.description ? oParam.description = option.description:null;
- break;
- }
-
- var aHtmlTumblr = [];
-
- aHtmlTumblr.push('<script type="text/javascript" src="http://platform.tumblr.com/v1/share.js"></script>');
- aHtmlTumblr.push('<a href="http://www.tumblr.com/share/link?'+jQuery.param(oParam)+'" title="Share on Tumblr" style="display:inline-block; text-indent:-9999px; overflow:hidden; width:81px; height:20px; background:url(\'http://platform.tumblr.com/v1/share_1.png\') top left no-repeat transparent;">');
- aHtmlTumblr.push('Share on Tumblr');
- aHtmlTumblr.push('</a>');
-
- $(this).html(aHtmlTumblr.join(''));
-
- return this;
-}
-
-/**
- * secure encodeURIComponent
- *
- * @param {String} url
- **/
-function encodeURIComponentRFC3986(str) {
- return encodeURIComponent(str).
- replace(/[!*'()]/g, function(p){
- return "%" + p.charCodeAt(0).toString(16);
- });
-}
-
+++ /dev/null
-/**\r
- * jquery.socialbutton - jQuery plugin for social networking websites\r
- * http://itra.jp/jquery_socialbutton_plugin/\r
- * \r
- * Copyright 2010, Itrans, Inc. http://itra.jp/\r
- * \r
- * Dual licensed under the MIT or GPL Version 2 licenses.\r
- * http://jquery.org/license\r
- * \r
- * Version: 1.8.0\r
- */\r
-\r
-/**\r
- * SYNOPSIS\r
- * \r
- * \r
- * mixi_check\r
- * http://developer.mixi.co.jp/connect/mixi_plugin/mixi_check/spec_mixi_check\r
- * \r
- * $('#mixi_check').socialbutton('mixi_check', {\r
- * key: 'mixi-check-key'\r
- * });\r
- * \r
- * $('#mixi_check').socialbutton('mixi_check', {\r
- * key: 'mixi-check-key',\r
- * button: 'button-1',\r
- * url: 'http://itra.jp/'\r
- * });\r
- * \r
- * \r
- * mixi_like\r
- * http://developer.mixi.co.jp/connect/mixi_plugin/favorite_button/spec\r
- * \r
- * $('#mixi_like').socialbutton('mixi_like', {\r
- * key: 'mixi-check-key',\r
- * });\r
- * \r
- * $('#mixi_like').socialbutton('mixi_like', {\r
- * key: 'mixi-check-key',\r
- * url: 'http://itra.jp/',\r
- * width: 450,\r
- * height: 80,\r
- * show_faces: true,\r
- * style: 'additional-style-here'\r
- * });\r
- * \r
- * \r
- * facebook_like\r
- * http://developers.facebook.com/docs/reference/plugins/like\r
- * \r
- * $('#facebook_like').socialbutton('facebook_like');\r
- * \r
- * $('#facebook_like').socialbutton('facebook_like', {\r
- * button: 'standard', // synonym 'layout'\r
- * url: 'http://itra.jp',\r
- * show_faces: true,\r
- * width: 450,\r
- * height: 80,\r
- * action: 'like',\r
- * locale: 'en_US',\r
- * font: 'arial',\r
- * colorscheme: 'light'\r
- * });\r
- * \r
- * \r
- * facebook_share\r
- * http://developers.facebook.com/docs/share\r
- * \r
- * $('#facebook_share').socialbutton('facebook_share');\r
- * \r
- * $('#facebook_share').socialbutton('facebook_share', {\r
- * button: 'button_count', // synonym 'type'\r
- * url: 'http://itra.jp',\r
- * text: 'Share'\r
- * });\r
- * \r
- * \r
- * Twitter\r
- * http://twitter.com/goodies/tweetbutton\r
- * \r
- * $('#twitter').socialbutton('twitter');\r
- * \r
- * $('#twitter').socialbutton('twitter', {\r
- * button: 'vertical', // synonym 'count'\r
- * url: 'http://itra.jp/',\r
- * text: 'tweet text',\r
- * lang: 'ja',\r
- * via: 'ishiiyoshinori',\r
- * related: 'twitter'\r
- * });\r
- * \r
- * \r
- * GREE Social Feedback\r
- * http://developer.gree.co.jp/connect/plugins/sf\r
- * \r
- * $('#gree_sf').socialbutton('gree_sf');\r
- * \r
- * $('#gree_sf').socialbutton('gree_sf', {\r
- * button: 0, // synonym 'type'\r
- * url: 'http://itra.jp/',\r
- * width: 0, // auto\r
- * height: 20\r
- * });\r
- * \r
- * \r
- * Evernote Site Memory\r
- * http://www.evernote.com/about/developer/sitememory/\r
- * \r
- * $('#evernote').socialbutton('evernote');\r
- * \r
- * $('#evernote').socialbutton('evernote', {\r
- * button: 'article-clipper',\r
- * url: 'http://itra.jp/',\r
- * provider_name: 'itra.jp',\r
- * suggest_notebook: 'webclip',\r
- * content_id: 'element-id-to-clip',\r
- * code: 'your-affiliate-code',\r
- * title: 'note-title',\r
- * suggest_tags: 'comma-separated-tags,up-to-three-tags',\r
- * styling: 'full'\r
- * });\r
- * \r
- * \r
- * Hatena Bookmark\r
- * http://b.hatena.ne.jp/\r
- * \r
- * $('#hatena').socialbutton('hatena');\r
- * \r
- * $('#hatena').socialbutton('hatena', {\r
- * button: 'standard',\r
- * url: 'http://itra.jp/',\r
- * title: 'page-title'\r
- * });\r
- * \r
- * \r
- * Hatena Bookmark (Old Style)\r
- * http://b.hatena.ne.jp/\r
- * \r
- * $('#hatena').socialbutton('hatena_oldstyle');\r
- * \r
- * $('#hatena').socialbutton('hatena_oldstyle', {\r
- * button: '/path/to/your-icon.png',\r
- * url: 'http://itra.jp/',\r
- * padding: 10,\r
- * height: 15\r
- * });\r
- * \r
- * \r
- * Google +1 Button\r
- * http://www.google.com/webmasters/+1/button/\r
- * \r
- * $('#google').socialbutton('google_plusone');\r
- * \r
- * $('#google').socialbutton('google_plusone', {\r
- * lang: 'ja',\r
- * parsetags: 'explicit',\r
- * callback: 'some_callback_function',\r
- * count: true,\r
- * href: 'http://itra.jp/',\r
- * size: 'standard'\r
- * });\r
- * \r
- */\r
-(function($) {\r
-\r
-$.fn.socialbutton = function(service, options) {\r
-\r
- options = options || {};\r
-\r
- var defaults = {\r
- mixi_check: {\r
- key: '',\r
- button: 'button-1', // button-1,button-2,button-3,button-4,button-5\r
- url: '' // document.URL\r
- },\r
- mixi_like: {\r
- key: '',\r
- url: document.URL,\r
- width: 0, // auto\r
- height: 0, // auto\r
- show_faces: true,\r
- style: '',\r
-\r
- sizes: {\r
- width: {\r
- with_faces: 450,\r
- without_faces: 140\r
- },\r
- height: {\r
- with_faces_minimum: 80,\r
- without_faces_minimum: 20\r
- }\r
- }\r
- },\r
- facebook_like: {\r
- button: 'standard', // standard / button_count / box_count\r
- url: document.URL,\r
-\r
- show_faces: true,\r
- width: 0, // auto\r
- height: 0, // auto\r
-\r
- width_standard_default: 450, // orig: 450\r
- width_standard_minimum: 225,\r
- height_standard_without_photo: 35,\r
- height_standard_with_photo: 80,\r
-\r
- width_button_count_default: 120, // orig: 90, jp_min: 114\r
- width_button_count_minimum: 90,\r
- height_button_count: 25, // orig:20, jp_min: 21\r
-\r
- width_box_count_default: 80, // orig:55, jp_min: 75\r
- width_box_count_minimum: 55,\r
- height_box_count: 70, // orig: 65, jp_min: 66\r
-\r
- action: 'like', // like / recommend\r
- locale: '', // auto\r
- font: '',\r
- colorscheme: 'light' // light / dark\r
- },\r
- facebook_share: {\r
- button: 'button_count', // box_count / button / icon_link / icon\r
- url: '', //document.URL\r
- text: '' //Share\r
- },\r
- twitter: {\r
- button: 'vertical', // vertical / horizontal / none\r
- url: '', // document.URL\r
- text: '',\r
- lang: 'ja', // ja / en /de / fr / es\r
- via: '',\r
- related: ''\r
- },\r
- gree_sf: {\r
- button: 0, // 0,1,2,3,4\r
- url: document.URL,\r
- width: 0, // auto\r
- height: 20,\r
-\r
- widths: {\r
- type0_16: 58, type0_20: 70, type0_23: 76,\r
- type1_16: 58, type1_20: 73, type1_23: 78,\r
- type2_16: 58, type2_20: 73, type2_23: 78,\r
- type3_16: 49, type3_20: 61, type3_23: 64,\r
- type4_16: 16, type4_22: 21, type4_32: 32\r
- }\r
- },\r
- evernote: {\r
- button: 'article-clipper', // article-clipper, article-clipper-remember, article-clipper-jp, article-clipper-rus, article-clipper-fr, article-clipper-es, article-clipper-de, article-clipper-vert, site-mem-32, site-mem-36, site-mem-22, site-mem-16\r
- url: '', // document.URL\r
- provider_name: '', // domain name\r
- suggest_notebook: '', // notebook name\r
- content_id: '', // element id for clip\r
- code: '', // affiliate code\r
- title: '',\r
- suggest_tags: '',\r
- styling: '' // none(text-only), full\r
- },\r
- hatena: {\r
- button: 'standard', // standard, vertical, simple\r
- url: document.URL,\r
- title: document.title\r
- },\r
- hatena_oldstyle: {\r
- button: 'http://d.hatena.ne.jp/images/b_append.gif',\r
- url: document.URL,\r
- height: 13,\r
- padding: 7\r
- },\r
- google_plusone: {\r
- lang: '', // en-US\r
- parsetags: '', // none(onload), explicit\r
- callback: '',\r
- count: true, // true, false\r
- href: '',\r
- size: '' // small, standard, medium, tall\r
- }\r
- };\r
-\r
- var max_index = this.size() - 1;\r
-\r
- return this.each(function(index) {\r
-\r
- switch (service) {\r
- case 'mixi_check':\r
- socialbutton_mixi_check(this, options, defaults.mixi_check, index, max_index);\r
- break;\r
-\r
- case 'mixi_like':\r
- socialbutton_mixi_like(this, options, defaults.mixi_like, index, max_index);\r
- break;\r
-\r
- case 'facebook_like':\r
- socialbutton_facebook_like(this, options, defaults.facebook_like, index, max_index);\r
- break;\r
-\r
- case 'facebook_share':\r
- socialbutton_facebook_share(this, options, defaults.facebook_share, index, max_index);\r
- break;\r
-\r
- case 'twitter':\r
- socialbutton_twitter(this, options, defaults.twitter, index, max_index);\r
- break;\r
-\r
- case 'gree_sf':\r
- socialbutton_gree_sf(this, options, defaults.gree_sf, index, max_index);\r
- break;\r
-\r
- case 'evernote':\r
- socialbutton_evernote(this, options, defaults.evernote, index, max_index);\r
- break;\r
-\r
- case 'hatena':\r
- socialbutton_hatena(this, options, defaults.hatena, index, max_index);\r
- break;\r
-\r
- case 'hatena_oldstyle':\r
- socialbutton_hatena_oldstyle(this, options, defaults.hatena_oldstyle, index, max_index);\r
- break;\r
-\r
- case 'google_plusone':\r
- socialbutton_google_plusone(this, options, defaults.google_plusone, index, max_index);\r
- break;\r
-\r
- default:\r
- break;\r
- }\r
-\r
- return true;\r
- });\r
-}\r
-\r
-function socialbutton_mixi_check(target, options, defaults, index, max_index)\r
-{\r
- var key = options.key || defaults.key;\r
- var button = options.button || defaults.button;\r
- var url = options.url || defaults.url;\r
-\r
- if (key == '') {\r
- return;\r
- }\r
-\r
- var attr = merge_attributes({\r
- 'data-key': key,\r
- 'data-url': htmlspecialchars(url),\r
- 'data-button': button\r
- });\r
-\r
- var tag = '<a href="http://mixi.jp/share.pl" class="mixi-check-button"' + attr + '>Check</a>';\r
-\r
- $(target).html(tag);\r
-\r
- if (index == max_index) {\r
- $('body').append('<script type="text/javascript" src="http://static.mixi.jp/js/share.js"></script>');\r
- }\r
-}\r
-\r
-function socialbutton_mixi_like(target, options, defaults, index, max_index)\r
-{\r
- var key = options.key || defaults.key;\r
- var url = options.url || defaults.url;\r
- var width = options.width != undefined ? options.width : defaults.width;\r
- var height = options.height != undefined ? options.height : defaults.height;\r
- var show_faces = options.show_faces != undefined ? options.show_faces : defaults.show_faces;\r
- var style = options.style || defaults.style;\r
-\r
- if (key == '') {\r
- return;\r
- }\r
-\r
- if (options.url) {\r
- url = decodeURIComponent(url);\r
- }\r
- url = url_encode_rfc3986(url);\r
-\r
- if (width == 0) {\r
- width = show_faces ? defaults.sizes.width.with_faces : defaults.sizes.width.without_faces;\r
- }\r
-\r
- if (height == 0) {\r
- height = show_faces ? defaults.sizes.height.with_faces_minimum : defaults.sizes.height.without_faces_minimum;\r
- } else {\r
- if (show_faces && height < defaults.sizes.height.with_faces_minimum) {\r
- height = defaults.sizes.height.with_faces_minimum;\r
- } else if (!show_faces && height < defaults.sizes.height.without_faces_minimum) {\r
- height = defaults.sizes.height.without_faces_minimum;\r
- }\r
- }\r
-\r
- var params = merge_parameters({\r
- 'href': url,\r
- 'service_key': key,\r
- 'width': width,\r
- 'show_faces': show_faces ? 'true' : 'false'\r
- });\r
-\r
- var attr = merge_attributes({\r
- src: 'http://plugins.mixi.jp/favorite.pl?' + params,\r
- scrolling: 'no',\r
- frameborder: '0',\r
- allowTransparency: 'true',\r
- style: 'border:0; overflow:hidden; width:' + width + 'px; height:' + height + 'px; ' + style\r
- });\r
-\r
- var tag = '<iframe' + attr + '></iframe>';\r
-\r
- $(target).html(tag);\r
-}\r
-\r
-function socialbutton_facebook_like(target, options, defaults, index, max_index)\r
-{\r
- var layout = options.layout || options.button || defaults.button;\r
- var url = options.url || defaults.url;\r
-\r
- var show_faces = options.show_faces != undefined ? options.show_faces : defaults.show_faces;\r
- var width = options.width != undefined ? options.width : defaults.width;\r
- var height = options.height != undefined ? options.height : defaults.height;\r
- var action = options.action || defaults.action;\r
- var locale = options.locale || defaults.locale;\r
- var font = options.font || defaults.font;\r
- var colorscheme = options.colorscheme || defaults.colorscheme;\r
-\r
- if (options.url) {\r
- url = decodeURIComponent(url);\r
- }\r
- url = url_encode_rfc3986(url);\r
-\r
- switch (layout) {\r
- case 'standard':\r
- if (width == 0) {\r
- width = defaults.width_standard_default;\r
- } else if (width < defaults.width_standard_minimum) {\r
- width = defaults.width_standard_minimum;\r
- }\r
- if (height == 0) {\r
- height = show_faces ? defaults.height_standard_with_photo : defaults.height_standard_without_photo;\r
- } else if (height < defaults.height_standard_without_photo) {\r
- height = defaults.height_standard_without_photo;\r
- }\r
- break;\r
- case 'button_count':\r
- if (width == 0) {\r
- width = defaults.width_button_count_default;\r
- } else if (width < defaults.width_button_count_minimum) {\r
- width = defaults.width_button_count_minimum;\r
- }\r
- if (height == 0) {\r
- height = defaults.height_button_count;\r
- } else if (height < defaults.height_button_count) {\r
- height = defaults.height_button_count;\r
- }\r
- break;\r
- case 'box_count':\r
- if (width == 0) {\r
- width = defaults.width_box_count_default;\r
- } else if (width < defaults.width_box_count_minimum) {\r
- width = defaults.width_box_count_minimum;\r
- }\r
- if (height == 0) {\r
- height = defaults.height_box_count;\r
- } else if (height < defaults.height_box_count) {\r
- height = defaults.height_box_count;\r
- }\r
- break;\r
- }\r
-\r
- var params = merge_parameters({\r
- 'href': url,\r
- 'layout': layout,\r
- 'show_faces': show_faces ? 'true' : 'false',\r
- 'width': width,\r
- 'action': action,\r
- 'locale': locale,\r
- 'font': font,\r
- 'colorscheme': colorscheme,\r
- 'height': height\r
- });\r
-\r
- 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>';\r
-\r
- $(target).html(tag);\r
-}\r
-\r
-function socialbutton_facebook_share(target, options, defaults, index, max_index)\r
-{\r
- var type = options.type || options.button || defaults.button;\r
- var url = options.url || defaults.url;\r
- var text = options.text || defaults.text;\r
-\r
- var attr = merge_attributes({\r
- 'type': type,\r
- 'share_url': htmlspecialchars(url)\r
- });\r
-\r
- var tag = '<a name="fb_share"' + attr + '>' + text + '</a>';\r
-\r
- if(index == 0) {\r
- tag += '<script type="text/javascript" src="http://static.ak.fbcdn.net/connect.php/js/FB.Share"></script>';\r
- }\r
-\r
- $(target).html(tag);\r
-}\r
-\r
-function socialbutton_twitter(target, options, defaults, index, max_index)\r
-{\r
- var count = options.count || options.button || defaults.button;\r
- var url = options.url || defaults.url;\r
-\r
- var text = options.text || defaults.text;\r
- var lang = options.lang || defaults.lang;\r
- var via = options.via || defaults.via;\r
- var related = options.related || defaults.related;\r
-\r
- var attr = merge_attributes({\r
- 'data-count': count,\r
- 'data-url': htmlspecialchars(url),\r
- 'data-text': text,\r
- 'data-lang': lang,\r
- 'data-via': via,\r
- 'data-related': related\r
- });\r
-\r
- var tag = '<a href="http://twitter.com/share" class="twitter-share-button"' + attr + '>Tweet</a>';\r
-\r
- $(target).html(tag);\r
-\r
- if (index == max_index) {\r
- $('body').append('<script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script>');\r
- }\r
-}\r
-\r
-function socialbutton_gree_sf(target, options, defaults, index, max_index)\r
-{\r
- var type = options.type || options.button || defaults.button;\r
- var url = options.url || defaults.url;\r
-\r
- var width = options.width != undefined ? options.width : defaults.width;\r
- var height = options.height != undefined ? options.height : defaults.height;\r
-\r
- if (options.url) {\r
- url = decodeURIComponent(url);\r
- }\r
- url = url_encode_rfc3986(url);\r
-\r
- switch (type) {\r
- case 0:\r
- case 1:\r
- case 2:\r
- case 3:\r
- if (height != 16 && height != 20 && height != 23) {\r
- height = 20;\r
- }\r
- break;\r
-\r
- case 4:\r
- if (height != 16 && height != 22 && height != 32) {\r
- height = 22;\r
- }\r
- break;\r
-\r
- default:\r
- type = 0;\r
- width = 0;\r
- height = 20;\r
- break;\r
- }\r
-\r
- if (width == 0) {\r
- width = defaults.widths['type' + type + '_' + height];\r
- }\r
-\r
- var params = merge_parameters({\r
- 'url': url,\r
- 'type': String(type),\r
- 'height': height\r
- });\r
-\r
- 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>';\r
-\r
- $(target).html(tag);\r
-}\r
-\r
-function socialbutton_evernote(target, options, defaults, index, max_index)\r
-{\r
- var button = options.button || defaults.button;\r
- var url = options.url || defaults.url;\r
-\r
- var provider_name = options.provider_name || defaults.provider_name;\r
- var suggest_notebook = options.suggest_notebook || defaults.suggest_notebook;\r
- var content_id = options.content_id || defaults.content_id;\r
- var code = options.code || defaults.code;\r
- var title = options.title || defaults.title;\r
- var suggest_tags = options.suggest_tags || defaults.suggest_tags;\r
- var styling = options.styling || defaults.styling;\r
-\r
- if (button == 'article-clipper' ||\r
- button == 'article-clipper-remember' ||\r
- button == 'article-clipper-jp' ||\r
- button == 'article-clipper-rus' ||\r
- button == 'article-clipper-fr' ||\r
- button == 'article-clipper-es' ||\r
- button == 'article-clipper-de' ||\r
- button == 'article-clipper-vert' ||\r
- button == 'site-mem-32' ||\r
- button == 'site-mem-36' ||\r
- button == 'site-mem-22' ||\r
- button == 'site-mem-16'\r
- ) {\r
- button = 'http://static.evernote.com/' + button + '.png';\r
- }\r
-\r
- var clipoptions = {\r
- 'url': url,\r
- 'providerName': provider_name,\r
- 'suggestNotebook': suggest_notebook,\r
- 'contentId': content_id,\r
- 'code': code,\r
- 'title': title,\r
- 'suggestTags': suggest_tags,\r
- 'styling': styling\r
- };\r
-\r
- if (index == 0) {\r
- $('body').append('<script type="text/javascript" src="http://static.evernote.com/noteit.js"></script>');\r
- }\r
-\r
- var tag = $(document.createElement('a'))\r
- .attr({href: '#'})\r
- .click(function(){\r
- if (Evernote) {\r
- Evernote.doClip(clipoptions);\r
- }\r
- return false;\r
- })\r
- .append('<img src="' + button + '" alt="Clip to Evernote" style="border: none" />');\r
-\r
- $(target).html(tag);\r
-}\r
-\r
-function socialbutton_hatena(target, options, defaults, index, max_index)\r
-{\r
- var layout = options.layout || options.button || defaults.button;\r
- var url = options.url || defaults.url;\r
- var title = options.title || defaults.title;\r
-\r
- url = htmlspecialchars(url);\r
- title = htmlspecialchars(title);\r
-\r
- var attr = merge_attributes({\r
- 'href': 'http://b.hatena.ne.jp/entry/' + url,\r
- 'class': 'hatena-bookmark-button',\r
- 'data-hatena-bookmark-title': title,\r
- 'data-hatena-bookmark-layout': layout,\r
- 'title': 'このエントリーをはてなブックマークに追加'\r
- });\r
- \r
- 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>'\r
- + '<script type="text/javascript" src="http://b.st-hatena.com/js/bookmark_button.js" charset="utf-8" async="async"></script>';\r
-\r
- $(target).html(tag);\r
-}\r
-\r
-function socialbutton_hatena_oldstyle(target, options, defaults, index, max_index)\r
-{\r
- var button = options.button || defaults.button;\r
- var url = options.url || defaults.url;\r
-\r
- var height = options.height != undefined ? options.height : defaults.height;\r
- var padding = options.padding != undefined ? options.padding : defaults.padding;\r
-\r
- url = htmlspecialchars(url);\r
-\r
- var tag = '<span style="font-size: ' + height + 'px; line-height: 100%; ">'\r
- + '<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>'\r
- + '<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>'\r
- + '</span>';\r
-\r
- $(target).html(tag);\r
-}\r
-\r
-function socialbutton_google_plusone(target, options, defaults, index, max_index)\r
-{\r
- if ($.browser.msie && parseInt($.browser.version, 10) < 8) {\r
- return;\r
- }\r
-\r
- var lang = options.lang || defaults.lang;\r
- var parsetags = options.parsetags || defaults.parsetags;\r
-\r
- var callback = options.callback || defaults.callback;\r
- var count = options.count != undefined ? options.count : defaults.count;\r
- var href = options.href || defaults.href;\r
- var size = options.size || defaults.size;\r
-\r
- switch (size) {\r
- case 'small':\r
- case 'standard':\r
- case 'medium':\r
- break;\r
-\r
- case 'tall':\r
- count = true;\r
- break;\r
-\r
- default:\r
- size = 'standard';\r
- count = true;\r
- }\r
-\r
- var tag = $('<div>')\r
- .attr({\r
- 'data-callback': callback,\r
- 'data-count': count ? 'true' : 'false',\r
- 'data-href': href,\r
- 'data-size': size\r
- }).addClass('g-plusone');\r
- $(target).append(tag);\r
-\r
- if (index == max_index) {\r
-\r
- var script_params = '';\r
-\r
- if (lang != '') {\r
- script_params += 'lang: "' + htmlspecialchars(lang) + '"';\r
- }\r
- if (parsetags != '') {\r
- script_params += script_params != '' ? ',' : '';\r
- script_params += 'parsetags: "' + htmlspecialchars(parsetags) + "'";\r
- }\r
- if (script_params != '') {\r
- script_params = '{' + script_params + '}';\r
- }\r
-\r
- $('body').append('<script type="text/javascript" src="https://apis.google.com/js/plusone.js">' + script_params + '</script>');\r
- }\r
-}\r
-\r
-function merge_attributes(attr)\r
-{\r
- var merged = '';\r
-\r
- for (var i in attr) {\r
- if (attr[i] == '') {\r
- continue;\r
- }\r
- merged += ' ' + i + '="' + attr[i] + '"';\r
- }\r
-\r
- return merged;\r
-}\r
-\r
-function merge_parameters(params)\r
-{\r
- var merged = '';\r
-\r
- for (var i in params) {\r
- if (params[i] == '') {\r
- continue;\r
- }\r
- merged += merged != '' ? '&' : '';\r
- merged += i + '=' + params[i] + '';\r
- }\r
-\r
- return merged;\r
-}\r
-\r
-function htmlspecialchars(string)\r
-{\r
- var table = [\r
- [/&/g, '&'],\r
- [/</g, '<'],\r
- [/>/g, '>'],\r
- [/"/g, '"'],\r
- [/'/g, ''']\r
- ];\r
-\r
- for (var i in table) {\r
- string = string.replace(table[i][0], table[i][1]);\r
- }\r
-\r
- return string;\r
-}\r
-\r
-function url_encode_rfc3986(url)\r
-{\r
- return encodeURIComponent(url).replace(/[!*'()]/g, function(p) {\r
- return "%" + p.charCodeAt(0).toString(16);\r
- });\r
-}\r
-\r
-})(jQuery);\r