OSDN Git Service

admin
authorYuki.i <yuito@mail4.kbmj.com>
Mon, 29 Aug 2011 04:37:02 +0000 (13:37 +0900)
committerYuki.i <yuito@mail4.kbmj.com>
Mon, 29 Aug 2011 04:37:02 +0000 (13:37 +0900)
app/views/admin/shops/_social_form.html.erb
db/migrate/20110819043121_create_socials.rb
public/javascripts/admin/social.js
public/javascripts/jquery.multiSocialService.js [deleted file]
public/javascripts/jquery.socialbutton.js [deleted file]

index bf94110..eb43869 100644 (file)
@@ -9,7 +9,11 @@
   </tr>
   <tr>
     <th>Twitter</th>
-    <td><%= check_box "social", "twitter" %></td>
+    <td><%= check_box "social", "twitter", {:onclick => "changetwitter()", :id => "twitter"} %></td>
+  </tr>
+  <tr>
+    <th>Twitterおすすめアカウント</th>
+    <td><%= text_field "social", "twitter_user", :id => "twitter_user" %></td>
   </tr>
   <tr>
     <th>Facebook</th>
   </tr> 
   <tr>
     <th>mixi チェック</th>
-    <td><%= check_box "social", "mixi_check",{:onclick => "change()", :id => "mixi_check"} %></td>
+    <td><%= check_box "social", "mixi_check",{:onclick => "changemixi()", :id => "mixi_check"} %></td>
   </tr>
   <tr>
     <th>mixi イイネ!</th>
-    <td><%= check_box "social", "mixi_like",{:onclick => "change()", :id => "mixi_like"} %></td>
+    <td><%= check_box "social", "mixi_like",{:onclick => "changemixi()", :id => "mixi_like"} %></td>
+  </tr>
+  <tr>
+    <th>mixi 説明文</th>
+    <td><%= text_field "social", "mixi_description", :id => "mixi_description" %></td>
   </tr>
   <tr>
     <th>mixi チェックキー</th>
index 5602620..c92946a 100644 (file)
@@ -11,7 +11,7 @@ class CreateSocials < ActiveRecord::Migration
       t.boolean :hatena
       t.boolean :mixi_check
       t.boolean :mixi_like
-      t.text :mixi_discription
+      t.text :mixi_description
       t.string :mixi_key
 
       t.timestamps
index ef29be9..5b07027 100644 (file)
@@ -1,16 +1,34 @@
 //mixy_keyの入力可否
 window.onload = function(){
-       if(document.getElementById("mixi_check").checked || document.getElementById("mixi_like").checked ){
+       if(document.getElementById("mixi_check").checked || document.getElementById("mixi_like").checked){
                document.getElementById("mixi_key").disabled = false;
+               document.getElementById("mixi_description").disabled = false;
        } else {
                document.getElementById("mixi_key").disabled = true;
+               document.getElementById("mixi_description").disabled = true;
+       }
+               if(document.getElementById("twitter").checked){
+               document.getElementById("twitter_user").disabled = false;
+       } else {
+               document.getElementById("twitter_user").disabled = true;
        }
 }
 
-function change(){
+function changemixi(){
        if(document.getElementById("mixi_check").checked || document.getElementById("mixi_like").checked){
                document.getElementById("mixi_key").disabled = false;
+               document.getElementById("mixi_description").disabled = false;
        } else {
                document.getElementById("mixi_key").disabled = true;
+               document.getElementById("mixi_description").disabled = true;
+       }
+}
+
+function changetwitter(){
+       if(document.getElementById("twitter").checked){
+               document.getElementById("twitter_user").disabled = false;
+       } else {
+               document.getElementById("twitter_user").disabled = true;
        }
+
 }
diff --git a/public/javascripts/jquery.multiSocialService.js b/public/javascripts/jquery.multiSocialService.js
deleted file mode 100644 (file)
index 6cd15a3..0000000
+++ /dev/null
@@ -1,416 +0,0 @@
-/**
- * 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)+"&amp;layout="+option.type+"&amp;show_faces="+option.show_faces+"&amp;width=450&amp;action=like&amp;font&amp;colorscheme="+option.color+"&amp;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);
-       });
-}
-
diff --git a/public/javascripts/jquery.socialbutton.js b/public/javascripts/jquery.socialbutton.js
deleted file mode 100644 (file)
index d4bb90c..0000000
+++ /dev/null
@@ -1,791 +0,0 @@
-/**\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 != '' ? '&amp;' : '';\r
-               merged += i + '=' + params[i] + '';\r
-       }\r
-\r
-       return merged;\r
-}\r
-\r
-function htmlspecialchars(string)\r
-{\r
-       var table = [\r
-               [/&/g, '&amp;'],\r
-               [/</g, '&lt;'],\r
-               [/>/g, '&gt;'],\r
-               [/"/g, '&quot;'],\r
-               [/'/g, '&#039;']\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