/* ================================================================================
* Title: Jquery Function
*
* Copyright (c) 2009 Astra The Studio Inc.
* http://www.studio.co.jp/
* Date: Feb.13, 2009
* @author: Chihiro Mori
* @version: 1.0.3
*
* jQuery 1.3.2
* exFixed 1.2.2
* jQuery.ScrollTo 1.4.2
*
* 確認済ブラウザ: [Mac] FireFox3.0, Safari3.1.2 [Win] IE6.0, 7.0
* Macで作業するときの注意：バックスラッシュ\を入力するときはoptionを押しながらエンマーク
================================================================================ */
/* 目次
selfLink()     : 自ページリンクにクラス付与
loadFlash()    : SWFObject使ったFlashファイルの埋め込み
fontSwitcher()  : フォントサイズ変更
menuRollover() : 透明効果を使ったナビゲーションのマウスオーバー
btnRollover()  : 透明効果を使ったナビゲーションのマウスオーバー(クラス付与)
selfScroll()   : ページ内スムーススクロール。jQuery.ScrollTo を使用
loadCseId()    : Googleカスタム検索のロゴ読み込み
*/

(function($)
{
//---------------------------------------------------------------------
	$(function()
	{
		function init(){
			$.ASconf.selfLink();
			$.ASconf.pulldown();
			$.ASconf.menuRollover();
			$.ASconf.menuRollover2();
			$.ASconf.okSlider();
			//$.ASconf.topLinkFix();
			$.ASconf.okCntChanger();
			$.ASconf.ranking_sideNav();
			$.ASconf.selfScroll();
			$.ASconf.faqToggle();
			$.ASconf.shopAutoHeight();
		};
		if($('#header').length && $('#footer').length)
		{
			$("#header").load("/header.html", function()
			{
				$("#footer").load("/footer.html", function()
				{
					init();
				});
			});
		}else if($('#header').length)
		{
			$("#header").load("/header.html", function()
			{
				init();
			});
		}else if($('#footer').length)
		{
			$("#footer").load("/footer.html", function()
			{
				init();
			});
		}else {
			init();
		};
	});
//---------------------------------------------------------------------
	$.ASconf =
	{
	//---------------------------------------------------------------------
		selfLink: function ()
		{
			var c = $.extend(
			{
				selfLinkClass:'current'
			});
			
			$.ASconf.selfLinkClass = '.' + c.selfLinkClass;
			$.ASconf.theUrl = location.href.replace(location.hash, '');
			$.ASconf.shrUrl = document.getElementById('defaultCSS').href.replace('css/import.css', '');
			var theUrl = $.ASconf.theUrl.replace(/(\/|\#)$/, '/index.html');
			
			$('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(c.selfLinkClass).removeAttr('href');
				}
			});
		}
		,
		//-----------------------------------------------------------------
		pulldown: function()
		{
			var c = $.extend(
			{
				selector:'#gnavi li[id]'
			});
			
			$(c.selector).hover(function()
			{
				$(this).find('ul:not(:animated)').slideDown('normal');
				//$('#headerWrap').css('height','300');
			}
			,function()
			{
				$(this).find('ul').slideUp(0);
				//$('#headerWrap').css('height','auto');
			});
		}
		,
		//-----------------------------------------------------------------
		menuRollover: function()
		{
			var c = $.extend(
			{
				selector:'#gnavi li ul li a img'
			});
			$(c.selector).each(function()
			{
				if($(this).parent().attr('class'))
				{
					$(this).fadeTo(0, 0);
				}
				else
				{
					$(this).hover(function()
					{
						$(this).not(':animated').fadeTo('fast', 0);
					}
					,function()
					{
						$(this).fadeTo('fast', 1);
					});
				};
			});
		}
		,
		menuRollover2: function()
		{
			var c = $.extend(
			{
				selector:'#gnavi li img, #footerMain li img, #hnavi li img,.btn,#side ul li:not(.sideTitle) a:not(.current) img'
			});
			$(c.selector).each(function()
			{
					$(this).hover(function()
					{
						$(this).not(':animated').fadeTo('fast', 0.5);
					}
					,function()
					{
						$(this).fadeTo('fast', 1);
					});
			});
		}
		,
		okCntChanger: function(){
		    $.getScript("../history/js/jquery.okcntchanger.js", function(){
    		 	$.fn.okcntchanger({
					slider : '#ok-cntChanger',
					holder : '#ok-cntHolder',
					thum : '',
					nextbtn: '#ok-cntNextBtn',
					prevbtn: '#ok-cntPrevBtn',
					slide:'.slide',
					pagecount:'',
					pagecountsep:' / ',
					auto:false,
					loop:false,
					thumclick:true,
					fadetime:2250,
					interval:1000
				});
    		});
		
		},
		
		
		//-----------------------------------------------------------------
		okSlider: function()
		{	
			var slider = $('#ok-slider');
			if(slider){
			var interval = 3500;
			var fadeInTime = 1500;
			var slideNum = slider.find('#ok-slidesHolder .slide').length;
			var sh = $('#ok-slidesHolder');
			var thums = $('#ok-slideThum');
			var pn = 0;
			var tw = $('#ok-slideThum').width();
			slider.find('#ok-slideThum li').each(function(n){
			//	slides_ar.push('#' + String($(this).attr('id')).slice(0,-5));
				$(this).hover(function (){
					//var tname ='#' + String($(this).attr('id')).slice(0,-5);
					//var tname ='#' + String($(this).attr('id')).slice(0,-5);
					//slider.find('#ok-slidesHolder div.slide:not('+ tname +')').fadeOut();
					sh.find('div.slide:not(:eq('+ n +'))').fadeOut(fadeInTime);
					sh.find('div.slide:eq('+ n +')').fadeIn(fadeInTime);
				},
				function(){
				});
				$(this).hover(function (){
					clearInterval(setIntervalID);
				},
				function (){
					setIntervalID = setInterval(function (){
						if($('#ok-slideThum li:animated').length == 0){
							next(); 
						}
					},interval+fadeInTime);
				})
			});
			slider.find('#ok-nextBtn').hover(function (){
					clearInterval(setIntervalID);
				},
				function (){
					setIntervalID = setInterval(function (){
						if($('#ok-slideThum li:animated').length == 0){
							next(); 
						}
					},interval+fadeInTime);
				})
			slider.find('#ok-prevBtn').hover(function (){
					clearInterval(setIntervalID);
				},
				function (){
					setIntervalID = setInterval(function (){
						if($('#ok-slideThum li:animated').length == 0){
							next(); 
						}
					},interval+fadeInTime);
				})			
			setIntervalID = setInterval(function (){
				if($('#ok-slideThum li:animated').length == 0){
				next(); 
				}
				
			},interval+fadeInTime);
			
			slider.find('#ok-nextBtn').click(function(){
				if($('#ok-slideThum li:animated').length == 0){
					next();
					clearInterval(setIntervalID);
					/*setInterval(function(){
							autoTime = setInterval("autoslide()",interval+fadeInTime);
						},
						interval
					);*/
				}
			});
			slider.find('#ok-prevBtn').click(function(){
				if($('#ok-slideThum li:animated').length == 0){
					prev();
					clearInterval(setIntervalID);
					/*clearInterval(autoTime);
					setInterval(function(){
							autoTime = setInterval("autoslide()",interval+fadeInTime);
						},
						interval
					);*/
				}
			});
			function next(){
				pn ++;
				pnFix();
				sh.find('div.slide:not(:eq('+ pn +'))').fadeOut(fadeInTime);
				sh.find('div.slide:eq('+ pn +')').fadeIn(fadeInTime);
				
				var thumW = thums.find('li').width();	
					thums.find('li:first').animate({
						marginLeft: '-=' + thumW
					},
					fadeInTime,
					function(){
						if(Number(thums.find('li:first').css('margin-left').match(/\-*[0-9]+/) < 0)){
							//console.log(thums.find('li:first'));
							thums.find('li:first').appendTo('#ok-slideThum').css({marginLeft : 'auto'});
						}
					});
			}
			function prev(){
				pn --;
				pnFix();
				sh.find('div.slide:not(:eq('+ pn +'))').fadeOut(fadeInTime);
				sh.find('div.slide:eq('+ pn +')').fadeIn(fadeInTime);
															  
				var thumW = thums.find('li').width();	
					thums.find('li:last').prependTo('#ok-slideThum').css({marginLeft:thumW * -1});
					thums.find('li:first').animate({
						marginLeft: '+=' + thums.find('li').width()
					},
					fadeInTime
			)};
		//	console.log(tw);
			function pnFix(){
					if(pn >= slideNum){
						pn = 0;
					} else if(pn < 0){
						pn = slideNum -1;
					}
				}
			}
//------------------------------------------------------------------------------------------			

		},
			topLinkFix: function()
		{
			target = $('#shopBox dl');
			className = 'hover';
			target.find('a.item1').hover(
				function (){
					target.find('dt.item1').addClass(className)
					target.find('dd.item1').addClass(className)
				},
				function(){
					target.find('dt.item1').removeClass(className)
					target.find('dd.item1').removeClass(className)
				}
			);
			
			target.find('a.item2').hover(
				function (){
					target.find('dt.item2').addClass(className)
					target.find('dd.item2').addClass(className)
				},
				function(){
					target.find('dt.item2').removeClass(className)
					target.find('dd.item2').removeClass(className)
				}
			);
			
			target.find('a.item3').hover(
				function (){
					target.find('dt.item3').addClass(className)
					target.find('dd.item3').addClass(className)
				},
				function(){
					target.find('dt.item3').removeClass(className)
					target.find('dd.item3').removeClass(className)
				}
			);
			
			target.find('a.item4').hover(
				function (){
					target.find('dt.item4').addClass(className)
					target.find('dd.item4').addClass(className)
				},
				function(){
					target.find('dt.item4').removeClass(className)
					target.find('dd.item4').removeClass(className)
				}
			);
			
			target.find('a.item5').hover(
				function (){
					target.find('dt.item5').addClass(className)
					target.find('dd.item5').addClass(className)
				},
				function(){
					target.find('dt.item5').removeClass(className)
					target.find('dd.item5').removeClass(className)
				}
			);
		}
		,
		//-----------------------------------------------------------------
		menuScroll: function()
		{
			
			$('#container #side').each(function()
			{
				var target = $(this);
				var offsetTop = target.offset().top;
				var defaultOffset = offsetTop;
				var targetHeight = target.attr('offsetHeight');
				var footerOffset = $('#footer').offset().top;
				var maxScroll = footerOffset - (targetHeight + defaultOffset);				
				function winScroll(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 });
					}
				}
				winScroll();//Fire Fox で Google Analyticsを埋め込んだページでは、ページ読み込み時のscrollイベントが発生しない？？ので、その対策
				$(window).bind('scroll', winScroll);
				$(window).bind('resize', winScroll);
			});
		}
		,
		//-----------------------------------------------------------------
		ranking_sideNav: function()
		{
			if($('#contentBox.ranking').length){
				$("#side").load("/ranking/side.html", function(){ $.ASconf.rankingSideMenu() });
			}
		}
		,
		//-----------------------------------------------------------------
		rankingSideMenu: function()
		{
			$('#contentBox.ranking.eng').each(function()
			{
				var target = $('#side li.mar');
				target.hide();
			});
			$('#contentBox.ranking.mar').each(function()
			{
				var target = $('#side li.eng');
				target.hide();
			});
		}
		,
		//-----------------------------------------------------------------
		selfScroll: function()
		{
			var c = $.extend(
			{
				selector:'#pagetop'
			});
			$('a[href*="#"]:not(a[href=#])').each(function()
			{
				if(this.href.split('#')[0] == $.ASconf.theUrl)
				{//ページ内リンクだったら
					$(this).click(function()
					{
						var hash= this.hash;
						var target = $(hash).offset().top;
						$.scrollTo( target, { duration:300 });				
						return false;
					});
				}
			});
		}
		,
		//-----------------------------------------------------------------
		faqToggle: function()
		{
			if($('div#faqBox dl'))
			{
				$('div#faqBox dl').each(function()
				{
					$(this).find('dd').hide();
					$(this).find('dt').click(function(){
						$(this).parent().find('dd').slideToggle('fast');
					});
					$(this).find('dt').hover(function()
					{
						$(this).css("color", "#CCC");
					}
					,function()
					{
						$(this).css("color", "#808080");
					});
				});
			};
		}
		,
		//-----------------------------------------------------------------
		shopAutoHeight: function()
		{
			if($('div#shop_list').length)
			{
				$('div#shop_list div#listWrapper dl').autoHeight({column:3});
			};
		}
	//-----------------------------------------------------------------
	};
//---------------------------------------------------------------------
})(jQuery);

