/**
* KAI_CORP App
* 貝印コーポレート
* @version 1.1
* @module KAI_CORPApp
*/
var KAI_CORP_APP = KAI_CORP_APP || {};
KAI_CORP_APP.module = KAI_CORP_APP.module || {};

/**
* socialButton Module
* @namespace KAI_CORP_APP
* @module socialButton
*/
KAI_CORP_APP.module.socialButton = (function() {
	/* ------------------------------------------------------------
	* Private Variables
	* ------------------------------------------------------------*/
	var isInit = false,
		targets,
		_url = encodeURIComponent(location.href),
		_path = location.pathname,
		_title,
		_etitle;
		
	/* ------------------------------------------------------------
	* Private CONST
	* ------------------------------------------------------------*/
	var DEBUG = true,
		DEFAULT_TARGET_CLASS = 'socialbutton-area',
		JQ_SOCIAL_PATH = '/common/js/jquery.socialbutton-1.7.1.js',
		MIXI_KEY = '6ce8dabbdb6dcaaae10c1b6b71c04083c4545669',
		AMEBA_BLOG_ENTRY = 'http://blog.ameba.jp/ucs/entry/srventryinsertinput.do?editor_flg=1&entry_text=',
		RAKUTEN_BLOG_ENTRY = 'http://my.plaza.rakuten.co.jp/?func=diary&act=write&d_text=',
		LIVEDOOR_BLOG_ENTRY = 'http://livedoor.blogcms.jp/blog/kai/article/edit?_body=';
		
	
	/* ------------------------------------------------------------
	* Private Method
	* ------------------------------------------------------------*/
	
	
	/**
	* ソーシャルボタン1セットを作成する
	* @param jqTarget {jQuery Object} 作成するターゲット
	*/
	function createSocialParts(jqTarget) {
		jqTarget.empty();
		jqTarget.append('<div class="upper-border"></div>');
		jqTarget.append(createBlogs());
		jqTarget.append(createMixicheck());
		jqTarget.append(createTwitter());
		jqTarget.append(createHatena());
		jqTarget.append(createFacebook());
	}
	
	/**
	* twitterボタン配置用エリア作成
	* @return {String}
	*/
	function createTwitter() {
		return '<div class="twitter-area"></div>';
	}
	
	/**
	* facebookいいねボタン配置用エリア作成
	* @return {String}
	*/
	function createFacebook() {
		var result;
		if (isFIE()) {
			result = '<div id="fb-root" class="facebook-area"></div>'
		} else {
			result = '<div class="facebook-area"><fb:like href="' + _url + '" layout="button_count" show_faces="false" width="120" font="tahoma"></fb:like></div>';
		}
		return result;
		
	}
	/**
	* mixicheck用ボタン配置用エリア作成
	* @return {String}
	*/
	function createMixicheck() {
		return '<div class="mixi-area"></div>';
	}
	
	/**
	* はてなブックマーク用ボタン配置エリア作成
	* @return {String}
	*/
	function createHatena() {
		return '<div class="hatenab-area"></div>';
	}
	
	function createBlogs() {
		var result = '<div class="blog-area">';
		result += '<span class="btn-parent">ブログに書く\n';
		result += '<span class="childBox">\n';
		result += '<span class="inner">\n';
		result += '<span class=" btn-child ameba-button"><a href="';
		result += AMEBA_BLOG_ENTRY + _etitle + '%0A' + _url;
		result += '" target="_blank"><img src="/common/img/btn_sns_blog_ameba.jpg" alt="Ameba" /></a></span>\n';
		result += '<span class=" btn-child rakuten-button last"><a href="';
		result += RAKUTEN_BLOG_ENTRY + _etitle + '%0A' + _url;
		result += '" target="_blank"><img src="/common/img/btn_sns_blog_rakuten.jpg" alt="楽天BLOG" /></a></span>\n';
		//result += '<span class=" btn-child livedoor-button last"><a href="';
		//result += LIVEDOOR_BLOG_ENTRY + _etitle + '%0A' + _url;
		//result += '" target="_blank"><img src="/common/img/btn_sns_blog_livedoor.jpg" alt="livedoor&reg; Blog" /></a></span>\n';
		result += '</span></span></span></div>\n';
		
		return result;
	}
	
	/**
	* 各サービスのボタン化
	*/
	function setupParts() {
		var tw = $('.twitter-area');
		
		var checkurl = "http://mixi.jp/share.pl";
		$('.mixi-area').html('<a href="' + checkurl + '" class="mixi-check-button" data-key="' + MIXI_KEY + '" data-url="' + decodeURIComponent(_url) + '">Check</a><script type="text/javascript" src="http://static.mixi.jp/js/share.js"></script>');
		
		
		$('.hatenab-area').socialbutton('hatena', {
			button: 'simple',
			url: _url,
			title: _title
		});
		
		tw.append('<a href="javascript:void(0);" class="twitter-custom-share-button">Tweet</a>');
		tw.find('a').click(function() {
			window.open('http://twitter.com/share?button=none&lang=ja&url=' + _url + '&text=' + _etitle + '&counturl=' + _url, 'twitterWindow', 'width=550,height=370');
		});
		
		if (!isFIE() && FB) {
			FB.Event.subscribe('edge.create', function() {
				if (_gaq) {
					_gaq.push(['_trackEvent', 'clickFacebook', _path]);
				}
				if (window.pageTracker) {
					pageTracker._trackEvent('clickFacebook', _path, '_clickFacebook');
				}
			});
			FB.Event.subscribe('xfbml.render', function(href, widget) {
				if (_gaq) {
					_gaq.push(['_trackEvent', 'loadFacebook', _path]);
				}
				if (window.pageTracker) {
					pageTracker._trackEvent('loadFacebook', _path, '_loadFacebook');
				}
			});
			
			FB.init({
				cookie: true,
				xfbml: true
			});
			$('.facebook-area').socialbutton('facebook_like', {
				layout: 'button_count',
				url: _url,
				height: 17,
				show_faces: false
			});
		} else {
			$('.facebook-area').socialbutton('facebook_like', {
				layout: 'button_count',
				url: _url,
				height: 17,
				show_faces: false
			});
		}
		
		$('.mixi-area a').click(function() {
			if (_gaq) {
				_gaq.push(['_trackEvent', 'clickMixi', _path]);
			}
			if (window.pageTracker) {
				pageTracker._trackEvent('clickMixi', _path, '_clickMixi', 1);
			}
		});
		
		$('.twitter-custom-share-button').click(function() {
			if (_gaq) {
				_gaq.push(['_trackEvent', 'clickTwitter', _path]);
			}
			if (window.pageTracker) {
				pageTracker._trackEvent('clickTwitter', _path, '_clickTwitter');
			}
		});
		
		$('.ameba-button a').click(function() {
			if (_gaq) {
				_gaq.push(['_trackEvent', 'clickAmeba', _path]);
			}
			if (window.pageTracker) {
				pageTracker._trackEvent('clickAmeba', _path, '_clickAmeba', 1);
			}
		});
		
		$('.rakuten-button a').click(function() {
			if (_gaq) {
				_gaq.push(['_trackEvent', 'clickRakuten', _path]);
			}
			if (window.pageTracker) {
				pageTracker._trackEvent('clickRakuten', _path, '_clickRakuten', 1);
			}
		});
		
		$('.livedoor-button a').click(function() {
			if (_gaq) {
				_gaq.push(['_trackEvent', 'clickLivedoor', _path]);
			}
			if (window.pageTracker) {
				pageTracker._trackEvent('clickLivedoor', _path, '_clickLivedoor', 1);
			}
		});
	}
	
	/* ------------------------------------------------------------
	* Exports
	* ------------------------------------------------------------*/
	var exports = {
		
		initWithClass: function($class) {
			var i, len;
			_title = $('title').html();
			_etitle = encodeURIComponent(_title);
			$class = $class || DEFAULT_TARGET_CLASS;
			targets = $('.' + $class);
			$('html').attr('xmlns:fb', 'http://www.facebook.com/2008/fbml');
			if (targets && targets.length !== 0) {
				len = targets.length;
				for (i = 0; i < len; ++i) {
					createSocialParts($(targets[i]));
				}
			}
			if (!isInit) {
				jQuery.getScript(JQ_SOCIAL_PATH, function() {
					if (isFIE()) {
						setupParts();
					}
					else {
						jQuery.getScript('http://connect.facebook.net/ja_JP/all.js#xfbml=1', setupParts);
					}
				});
			}
			isInit = true;
			blogPulldown();
		}
	};
	
	/**
	* is Fxxkin' browser
	* return {Boolean} When you use [Fxxkin' browser], it returns TRUE.
	*/
	function isFIE() {
		return $.browser.msie && parseFloat($.browser.version) < 8;
	}
	
	/* ------------------------------------------------------------
	* blogPulldown
	* ------------------------------------------------------------*/
	function blogPulldown(){
		$('.blog-area').hover(function(){
			$(this).addClass('on').find('span.childBox').addClass('on')
		},function(){
			$(this).removeClass('on').find('span.childBox').removeClass('on')
		});
	}
	
		return exports
}());
$(function(){
	
	KAI_CORP_APP.module.socialButton.initWithClass();
});
