//-----------------------------------------------------------------------------------------

// Google Analytics External Link Tracking

//-----------------------------------------------------------------------------------------
$(function(){
	$("a").filter(function(){
		return this.hostname && this.hostname !== location.hostname;
	}).click(function(){
//		_gaq.push(["_trackPageview", "/external_link/" + this.hostname]);
		_gaq.push(["_trackPageview", "/external_link/" + this.href]);
	});
});

//-----------------------------------------------------------------------------------------

// imageOverChange

//-----------------------------------------------------------------------------------------
(function($) {
	$.fn.imageOverChange = function(options) {
		// elementに格納
		var element = $(this);
		
		// 初期オプション
		var conf = $.extend({
			// アニメーション設定 false or true
			animate:		false,
			animateOpacity: 0.4,
			animateSpeed: 	800,
			// 追加するホバーイメージ名
			hoverImage: 	"_on",
			// キャンセルクラス
			changeCance: 	"activeImg"
		}, options);
		
		element.each(function(){
			var thisSrc = this.src;
			
			// ON画像プリロード
			if(thisSrc.indexOf("_off.") > 1){
				var hoverSrc = thisSrc.replace("_off.",conf.hoverImage+'.');
				var preloadImages = $("<img>").attr("src", hoverSrc);
			}

			// ホバー処理
			$(this).hover(function(){
				if(!$(this).hasClass(conf.changeCance)){
					$(this).attr("src",hoverSrc);
					if(conf.animate) {
						$(this).stop().animate({opacity: conf.animateOpacity}, 0).animate({opacity: 1}, conf.animateSpeed);
					}
				}
			},function (){
				if(!$(this).hasClass(conf.changeCance)){
					$(this).attr("src",thisSrc);
				}
			});
		});
		return this;
	}
})(jQuery);


// プラグイン実行
$(function (){
/*
	$("a img.on,input.on").imageOverChange({
		animate: true
	});
	$("#side a img").imageOverChange({
		animate: true
	});
*/
	$("a img,input.on").imageOverChange({
		animate: false
	});

});

//-----------------------------------------------------------------------------------------

// fontSizeSwitcher

//-----------------------------------------------------------------------------------------
(function($) {
	$.fn.fontSizeSwitcher = function(options) {
		// elementに格納
		var element = this;

		// 初期オプション
		var conf = $.extend({
			cookieName:		"fontSizeSwitch",
			expires:		7,
			path:			"/",
			tagetelm:		"#container",
			defaultSize:	"fontM",
			activeClass:	"active",
			handlerTag:		"li",
			changeCance: 	"activeImg" //  imageOver用
		}, options);
		
		// Cookie の中身をチェック
		var cookieCheck = function(){
			// cookie 呼び出し
			var cookie = $.cookie(conf.cookieName);

			if(!cookie == ""){
				$(conf.tagetelm).addClass(cookie);
				$("#" + cookie).addClass(conf.activeClass).children().children("img").addClass(conf.changeCance);
			}else{
				// 空だった場合defaultSizeを代入
				$(conf.tagetelm).addClass(conf.defaultSize);
				$("#" + conf.defaultSize).addClass(conf.activeClass).children().children("img").addClass(conf.changeCance);
			}
			iamgeCheck();
		}
		// iamge active  をチェック
		var iamgeCheck = function(){
			$(conf.handlerTag,element).each(function(){
				var imgSrc = $(this).children().children("img").attr("src");
											  
				if($(this).hasClass(conf.activeClass)){
					var onSrc = imgSrc.replace("_off","_on");
				}else{
					var onSrc = imgSrc.replace("_on","_off");
				}
				$(this).children().children("img").attr("src",onSrc);
			});			
		}

		$(conf.handlerTag,element).each(function(){
			// クリック
			$(this).click(function(){
				$(this).addClass(conf.activeClass).siblings().removeClass(conf.activeClass);
				
				// imageOver cancel
				$(this).siblings().children().children("img").removeClass(conf.changeCance);
				$(this).children().children("img").addClass(conf.changeCance);
				
				var setFontSize = this.id;
				$.cookie(conf.cookieName , setFontSize, { expires: conf.expires, path: conf.path });
				$(conf.tagetelm).removeClass().addClass(setFontSize);
				
				iamgeCheck();
				return false;
			});
		});

		$(element).each(function(){
			cookieCheck();
		});
		
	return this;
	};
})(jQuery);

$(function(){
	$("#fontChange").fontSizeSwitcher({
		handlerTag:		"p"
	});

/*-
	オプションで以下変更可
	
	クッキーの名前
	cookieName:		"fontSizeSwitch",
	
	クッキー保存日数
	expires:		7,
	
	フォントサイズを付与するターゲットID
	tagetelm:		"#container",
	
	ターゲットに付与されるデフォルトClass
	defaultSize:	"fontM",
	
	アクティブクラス名
	activeClass:	"active"	
	
-*/
});

//-----------------------------------------------------------------------------------------

// pageScroller

//-----------------------------------------------------------------------------------------
(function($) {
	$.fn.pageScroller = function(options){
		// elementに格納
		var element = this;

		// 初期オプション
		var conf = $.extend({
			ScrollSpeed:		800
		}, options);
		
		// Easingの追加
		jQuery.easing.quart = function (x, t, b, c, d) {
			return -c * ((t=t/d-1)*t*t*t - 1) + b;
		};

		$("a[href^=#]",element).click(function(){
			var hash = this.hash;
			var offsetTop = $(hash).offset().top;
			var windowHeight = $("body").height();
			var flameHeight = $(window).height();
			
			if(windowHeight < flameHeight){
				var windowHeight = flameHeight;
			}
			if(offsetTop > windowHeight){
				var offsetTop = offsetTop - flameHeight;
			}
			
			if(!hash || hash == "#")
			return false;
			
			$($.browser.safari ? 'body' : 'html').animate({scrollTop: offsetTop}, conf.ScrollSpeed, "quart");
			return false;
			
		});
		
	return this;
	};
})(jQuery);


$(function(){
	$(".pagetop").pageScroller();
	
/*-
	スクロールさせるクラスを追加する場合は以下のように
	$(".追加クラス").pageScroller();
	
	オプションでスクロール早さ変更可
-*/

});


