/* ================================================================================
* Title: Jquery Function
*
* Copyright (c) 2010 Astra The Studio Inc.
* http://www.studio.co.jp/
* Date: Mar.26, 2010
* @author: Chihiro Mori
* @version: 1.0.4
*
* jQuery 1.4.2
*
* 確認済ブラウザ: [Mac] FireFox3.0, Safari3.1.2 [Win] IE6.0, 7.0, 8.0
* Macで作業するときの注意：バックスラッシュ\を入力するときはoptionを押しながらエンマーク
================================================================================ */

(function($)
{
//---------------------------------------------------------------------
	$(function()
	{
		$.ASconf.selfLink();
		$.ASconf.fontSwitcher();
		$.ASconf.serchPulldown();
		$.ASconf.btnRollover();
		$.ASconf.selfScroll();
		$.ASconf.sideScroll();
		$.ASconf.homeNewsBox();
		$.ASconf.loadjScrollPane();
		//$.ASconf.loadShadowbox();
		$.ASconf.swapImg();
	});
//---------------------------------------------------------------------
	$.ASconf =
	{
	//---------------------------------------------------------------------
		selfLink: function ()
		{
			var selfLinkClass = 'current';
			
			var theUrl = location.href.replace(location.hash, '').replace(/(\/|\#)$/, '/index.html');
			$.ASconf.theUrl = theUrl;
			
			$('a[href]').each(function()
			{
				var i = document.createElement('span');
				i.innerHTML = '<a href="' + $(this).attr('href') + '" />';
				var absolutePath = i.firstChild.href;
				if(absolutePath == theUrl)
					$(this).addClass(selfLinkClass).removeAttr('href');
			});
		}
		,
		//-------------------------------------------------------------------
		fontSwitcher: function()
		{
			var fontClass = "fontNormal"; // Small, Normal, Largeのどれかを指定
		
			// クッキーを読み込む
			var value = $.cookie('fontSize');
		
			if (value)
			{
				$('body').addClass(value);
				$('#fontSwitcher .' + value).css({'opacity':0, 'cursor':'inherit'});
			}
			else
			{
				$('body').addClass(fontClass);
				$('#fontSwitcher .' + fontClass).css({'opacity':0, 'cursor':'inherit'});
			}
		
			$('#fontSwitcher dd').click(function()
			{
				value = $(this).attr('class');	
				
				// bodyに付いているフォントサイズ調整用のクラスを削除し新たにクラスを追加
				$('body').removeClass('fontNormal fontSmall fontLarge').addClass(value);
				
				//ボタン表示調整
				$('#fontSwitcher dd').css({'opacity':1, 'cursor':'pointer'});
				$(this).css({'opacity':0, 'cursor':'inherit'});

				// クッキーに保存
				$.cookie('fontSize', value);
			});
		}
		,
		//-----------------------------------------------------------------
		serchPulldown: function()
		{
			$('body.EXSearch, div.EXSearch').each(function()
			{
				//pulldown customize (Not Safari)
				$("div#reserveSelect select.linkselect").linkselect();
				
			});
		}
		,
		//-----------------------------------------------------------------
		btnRollover: function()
		{
			var parentClass = 'current';
			
			$('a img').each(function()
			{
				if($(this).parent().attr('class') == parentClass)
				{
					if($(this).attr('class') == 'op0')
					{
						$(this).fadeTo(0, 0);
					}
					else if(!$('body').hasClass('home'))
					{
						$(this).fadeTo(0, 0.7);
					}
				}
				else
				{
					$(this).hover(function(){
						$(this).not(':animated').fadeTo('fast', 0.6);}
					,function(){
						$(this).fadeTo('fast', 1);});
				};
			});
		}
		,
		//-----------------------------------------------------------------
		selfScroll: function()
		{//^は初めの文字が#だった場合。*にするとhoge.html#hogeもマッチ
			$('a[href^=#]').click(function()
			{
				var hash = this.hash;
				if(!hash || hash == "#")
					return false;
				if(hash!='#top')
				{//ASPページでは効かないの除外
					$($.browser.safari ? 'body' : 'html')
					.animate({scrollTop: $(hash).offset().top}, 300, "swing");
					return false;
				}
			});
		}
		,
		//-----------------------------------------------------------------
		sideScroll: function()
		{
			$('div#side').each(function()
			{
				var target = $(this);
				var offsetTop = target.offset().top;
				var defaultOffset = offsetTop;
				var targetHeight = target.attr('offsetHeight');
				var footerOffset = $('div#footerWrap').offset().top;
				var maxScroll = footerOffset - (targetHeight + defaultOffset + 39);				
				
				function menuScroll(e)
				{
					var scrollTop = $(document).scrollTop();
					if(scrollTop - defaultOffset < maxScroll)
					{
						if(offsetTop < scrollTop)
						{
							var offset = (scrollTop - defaultOffset);
							$(target).stop().animate({top:offset+'px'},{ duration:350, queue: false });
						}
						else
							$(target).stop().animate({top:0},{ duration:350, queue: false });
					}
					else
						$(target).stop().animate({top:maxScroll},{ duration:350, queue: false });
				}
				$(window).bind('scroll', menuScroll);
				$(window).bind('resize', menuScroll);
				menuScroll();				
			});
		}
		,
		//-----------------------------------------------------------------
		homeNewsBox: function()
		{
			$('body.home').each(function()
			{
				$('table#newsBoxCont td').each(function()
				{
					var url = $(this).find('a').attr('href');
					var target = $(this).find('a').attr('target');
					
					//if(target) console.log(target);
					
					$(this).css('cursor','pointer')
					.hover(function(){
						$(this).not(':animated').fadeTo('fast', 0.6);}
					,function(){
						$(this).fadeTo('fast', 1);})
					.click(function(){
						//targetが指定されていれば別ウィンドウ表示
						if(target) window.open(url,target);
						else location.href = url;
						return false;
						});
				});
			});
		}
		,
		//-----------------------------------------------------------------
		loadjScrollPane: function()
		{
			$('body.EXscrollPane').each(function()
			{
				$('div#newsCont').jScrollPane({showArrows:true, scrollbarWidth:15});
			});
		}
		,
		//-----------------------------------------------------------------
//		loadShadowbox: function()
//		{			
//			$('body.EXshadowBox').each(function()
//			{
//				Shadowbox.init();
//			});
//		}
//		,
		//-----------------------------------------------------------------
		swapImg: function()
		{			
			$('div#main div.potoBox').each(function()
			{
				var selectClass = 'select';
				var trigger = $(this).find('ul#thumb img');
				var targetParent = $(this).find('ul#photos');
				var target = targetParent.find('li');
						
				$(trigger).css('cursor','pointer')
				.hover(function()
				{
					if(!$(this).hasClass('select'))
					{
						var targetClass = '.'+$(this).attr('class');
						var photo = target.filter(targetClass);
						targetParent.append(photo).css('opacity',0.6).not(':animated').fadeTo('slow', 1);
						$(this).not(':animated').fadeTo('fast', 0.6);
						trigger.removeClass(selectClass);
						$(this).addClass(selectClass);
					}
				}
				,function()
				{
					$(this).fadeTo('fast', 1);
				});
			});
		}
	//-----------------------------------------------------------------
	};
//---------------------------------------------------------------------
})(jQuery);
