/* ///////////////////////////////////////////////////////////////////////////////////

cookie処理

/////////////////////////////////////////////////////////////////////////////////// */
/* -----------------------------------------------------------------------------------
　checkCookie、setCookie のデバッグ用

$(function(){
	var cookieName = 'aqfct_bnr_setting';
	var param = 'value_a';
	var value = '1111';
	
	checkCookie(cookieName, param, value);
});
----------------------------------------------------------------------------------- */

function checkCookie(cookieName, param, value) {
	var returnValue = new Array();
	
	if ($.cookie(cookieName) == null) {
		// cookie が全く無い
		if (value) {
			// 値を送って来ている
			returnValue[param] = value;
			setCookie(cookieName, returnValue, 10000);
			
			return returnValue[param] = value;
		} else {
			return false;
		}
	} else {
		
		// cookie の設定内容を連想配列に分解
		var tmp = $.cookie(cookieName).split('&');
		for (var i = 0; i < tmp.length; i++) {
			returnValue[tmp[i].split('=')[0]] = tmp[i].split('=')[1];
		}
		
		if (!returnValue[param]) {
			if (value) {
				// 指定されたパラメータがセットされていなければ配列の最後に追加
				returnValue[param] = value;
				
				setCookie(cookieName, returnValue, 10000);
				
				// 連想配列をリターン
				return returnValue;
			} else {
				return false;
			}
		} else {
			if (value) {
				returnValue[param] = value;
				
				setCookie(cookieName, returnValue, 10000);
				
				// 連想配列をリターン
				return returnValue;
			} else {
				return returnValue[param];
			}
		}
	}
}

function setCookie(cookieName, value, expires) {
	var tmp = new Array();
	for (var n in value) {
		tmp.push(n + '=' + value[n]);
	}
	$.cookie(cookieName, tmp.join('&'), { path: '/', expires: expires });
}

/* ///////////////////////////////////////////////////////////////////////////////////

トップページ用

/////////////////////////////////////////////////////////////////////////////////// */

/* -----------------------------------------------------------------------------------
　メインバナーの表示
----------------------------------------------------------------------------------- */
var $topMainBannerList;
var mainBnrCount;
var mainBnrTimer;
var mainBnrShift;
var $mainBnr = $('#tC_main_banner');

$(function(){
	var tmpMainImg = new Image();
	mainBnrCount = checkCookie('aqfct_bnr_setting', 'top_main');
	
	if(mainBnrCount) {
		
		$.get('/pc/banner_setting/toppage_banner.xml', function(data){
			
			$topMainBannerList = $(data).find('ad');
			mainBnrCount = mainBnrCount % $topMainBannerList.length;
			
			var preLoadImages;
			
			$topMainBannerList.each(function(i){
				if (mainBnrCount == i) {
					mainBnrShift = $(data).find('shiftTime').text();
					mainBannerRotate();
				}
			});
		});
		
	} else {
		checkCookie('aqfct_bnr_setting', 'top_main', '0');
		
		$mainBnr.fadeTo(500, 0, function(){
			$(tmpMainImg).load(function(){							// テンポラリの画像オブジェクトにロードイベントをバインド
				$mainBnr.attr('src', '/pc/images/top_main_banner.jpg');	// バナーの画像を更新
				$mainBnr.unbind('click');
				$mainBnr.bind('click', function(){								// バナークリック時のイベントをバインド
					location.href = '/pc/info/intro_e_contents.html';
				});
				$mainBnr.fadeTo(500, 1);								// 諸々の処理完了でフェードイン
				delete tmpMainImg;										// テンポラリのオブジェクトを削除してメモリ解放
			});
			tmpMainImg.src = '/pc/images/top_main_banner.jpg';			// テンポラリの画像オブジェクトにソースをロード
		});
	}
});

function mainBannerRotate() {
	if (mainBnrTimer) clearTimeout(mainBnrTimer);
	
	var countIndex = mainBnrCount % $topMainBannerList.length;
	var tmpMainImg = new Image();
	$mainBnr.fadeTo(500, 0, function(){
		$(tmpMainImg).load(function(){									// テンポラリの画像オブジェクトにロードイベントをバインド
			$mainBnr.attr('src', tmpMainImg.src);						// バナーの画像を更新
			$mainBnr.unbind('click');
			$mainBnr.bind('click', function(){									// バナークリック時のイベントをバインド
        $target = '_self';
  			if($topMainBannerList.eq(countIndex).find('target').text() != '') {
            $target = $topMainBannerList.eq(countIndex).find('target').text();
  			}
		  	w = window.open($topMainBannerList.eq(countIndex).find('link').text(), $target); 
			});
			$mainBnr.fadeTo(500, 1);									// 諸々の処理完了でフェードイン
			
			// タイマーをセット
			checkCookie('aqfct_bnr_setting', 'top_main', mainBnrCount++);
			delete tmpMainImg;											// テンポラリのオブジェクトを削除してメモリ解放
			mainBnrTimer = setTimeout('mainBannerRotate();', mainBnrShift);
		});
		tmpMainImg.src = $topMainBannerList.eq(countIndex).find('mainBanner').text();			// テンポラリの画像オブジェクトにソースをロード
	});
}

/* -----------------------------------------------------------------------------------
　初回のCPバナーを表示
----------------------------------------------------------------------------------- */
$('.top_Contents').each(function(){
	var $tmp = $(this);
	var $defaultCp = $tmp.find('.tC_nav_cp:first');
	var $tmpBnr = $tmp.find('.tC_banner_item');
	$tmpBnr.attr('src', $defaultCp.attr('rel'));
	$tmpBnr.click(function(){
		location.href = $defaultCp.attr('href');
	});
});

/* -----------------------------------------------------------------------------------
　各CPリンクのイベントをセットアップ
　IE6のCSSバグに対応しているので構造が冗長
----------------------------------------------------------------------------------- */
$(function(){
	$('.tC_nav_cp').hover(
		function() {
			// オンマウス時
			var $trigger = $(this);
			if (!$trigger.hasClass($trigger.attr('id') + '_hover')) {
				// ハイライト状態でない場合のみ実行
				
				// トリガーの兄弟でハイライトされているものを探して暗転する
				$trigger.parents('dl').children().each(function(){
					var $tmpEle = $(this).find('.tC_nav_cp');
					if ($tmpEle.hasClass($tmpEle.attr('id') + '_hover')) {
						$tmpEle.toggleClass($tmpEle.attr('id') + '_hover');
						$tmpEle.toggleClass($tmpEle.attr('id'));
						// 目的を達成したのでループを抜ける
						return false;
					}
				});
				
				// 自分のハイライトをセット
				$trigger.toggleClass($trigger.attr('id') + '_hover');
				$trigger.toggleClass($trigger.attr('id'));
				
				// バナーを更新
				var $bnr = $trigger.parents('.top_Contents').find('.tC_banner_item');
				$bnr.stop();											// すでに走っているエフェクトを止める
				$bnr.fadeTo(500, 0, function(){
					var tmpImage = new Image();							// テンポラリの画像オブジェクトを作成
					$(tmpImage).load(function(){						// テンポラリの画像オブジェクトにロードイベントをバインド
						$bnr.attr('src', $trigger.attr('rel'));				// バナーの画像を更新
						$bnr.click(function(){								// バナークリック時のイベントをバインド
							location.href = $trigger.attr('href');
						});
						$bnr.fadeTo(500, 1);								// 諸々の処理完了でフェードイン
						delete tmpImage;									// テンポラリのオブジェクトを削除してメモリ解放
					});
					tmpImage.src = $trigger.attr('rel');				// テンポラリの画像オブジェクトにソースをロード
				});
			}
			return false;
		},
		function() {
			// マウスアウト時
			return false;
		}
	)
});

/* -----------------------------------------------------------------------------------
　表示切り換えのイベントをセット
　IE6のCSSバグに対応しているので構造が冗長
----------------------------------------------------------------------------------- */
$(function(){
	$('.tC_nav_arrow').click(function(){
		var $trigger = $(this);
		
		if ($trigger.hasClass('disable_up') || $trigger.hasClass('disable_down')) {
			// トリガーが無効になっているので何もしない
			return false;
		} else {
			// トリガーから先祖を遡って、対象となるリストを取得
			var $parentEle  = $trigger.parents('dl');
			var $targetEles = $parentEle.find('.jq_tC_items').children(':visible');
			
			// 現在の表示状態から、表示する対象と非表示にする対象を設定
			var $tmpHide = ($trigger.hasClass('jq_tC_up')) ? $targetEles.filter(':last') : $targetEles.filter(':first');
			var $tmpShow = ($trigger.hasClass('jq_tC_up')) ? $targetEles.filter(':first').prev() : $targetEles.filter(':last').next();
			
			if ($tmpShow.next().get() == '') {
				// 表示する対象の次のオブジェクトが存在していなければトリガーをオフに
				$parentEle.find('.jq_tC_down').addClass('disable_down');
				$parentEle.find('.jq_tC_down').removeClass('active_down');
			} else {
				// 表示する対象の次のオブジェクトが存在していればトリガーをオンに
				$parentEle.find('.jq_tC_down').addClass('active_down');
				$parentEle.find('.jq_tC_down').removeClass('disable_down');
			}
			
			if ($tmpShow.prev().get() == '') {
				// 表示する対象の前のオブジェクトが存在していなければトリガーをオフに
				$parentEle.find('.jq_tC_up').addClass('disable_up');
				$parentEle.find('.jq_tC_up').removeClass('active_up');
			} else {
				// 表示する対象の前のオブジェクトが存在していればトリガーをオンに
				$parentEle.find('.jq_tC_up').addClass('active_up');
				$parentEle.find('.jq_tC_up').removeClass('disable_up');
			}
			
			// 表示／非表示対象をトグル
			$tmpHide.toggle();
			$tmpShow.toggle();
		}
		
		return false;
	});
});


/* ///////////////////////////////////////////////////////////////////////////////////

カテゴリ用バナーの設定

/////////////////////////////////////////////////////////////////////////////////// */
$(function(){
	var $categoryBnr = $('#category_banner');
	if ($categoryBnr.length) {
		// 目的のオブジェクトが存在したら処理スタート
		var tmpCategoryBnr = new Image();
		var categoryId = $('body').attr('id');
		var categoryBnrView = checkCookie('aqfct_bnr_setting', 'category');
		var tmpCount;
		
		if (categoryBnrView) {
			
			$.get('/pc/banner_setting/category_banner.xml', function(data){
				
				var $categoryBnrList = $(data);
				var $targetBnrList;
				
				if ($categoryBnrList.find('ad').length) {
					if ($categoryBnrList.find('ad[category=' + categoryId + ']').length) {
						// カテゴリ指定のバナーがある
						$targetBnrList = $categoryBnrList.find('ad[category=' + categoryId + ']');
					} else {
						$targetBnrList = $categoryBnrList.find('ad:not([category])');
					}
					
					if ($targetBnrList.length) {
						tmpCount = Math.floor(($targetBnrList.length - 0 + 1) * Math.random() + 0) % $targetBnrList.length;
						
						$categoryBnr.attr('src', $targetBnrList.eq(tmpCount).find('mainBanner').text());
						$categoryBnr.click(function(){
							location.href = $targetBnrList.eq(tmpCount).find('link').text();
						});
						
						return false;
					}
				}
				
				var $cp_list = $('.cT_link_logo');
				tmpCount = Math.floor(($cp_list.length - 0 + 1) * Math.random() + 0) % $cp_list.length;
				
				$categoryBnr.attr('src', $cp_list.eq(tmpCount).attr('rel'));
				$categoryBnr.click(function(){
					location.href = $cp_list.eq(tmpCount).attr('title');
				});
			});
		} else {
			checkCookie('aqfct_bnr_setting', 'category', '1');
			
			$categoryBnr.attr('src', '/pc/contents/' + categoryId + '/images/category_1st_view_bnr.jpg');
			$categoryBnr.click(function(){
				location.href = '/pc/info/intro_e_contents.html';
			});
		}
		
	}
});


