/*
 *
/*--------------------------------------------------------------------------*/

var php = '/sys_include/php/cat_ranking.php';

var box_id = 'prog_'; // 基本BOXID名
var page_box_id = box_id + 'page'; // ページ用BOXID名
var item_list = box_id + 'list';
var present_page = 1;
var first_load = true;

//ADD toki 2008/11/11 AJAX高速化対応
var category_id;

//ADD toki 2008/11/12 バナー広告表示対応
var banner_node;
/*--------------------------------------------------------------------------*/

/*
 * ロード時の処理
 */
function loadRank(id){

	// onload時にPHP側で保持しているセッション情報をクリア
	ranking_sessionclear();

	// PHPへKick
	searchRank(id);

	first_load = false;

	category_id = id; //ページ遷移用にカテゴリidを保持
}

/*--------------------------------------------------------------------------*/

/*
 * ページ遷移
 */
function pageAction(target, page_length){

	var id; // BOXID
	var prev;
	var next;
	var prev2;
	var next2;
	
	// 前へ
	if (target == 'prev') {
		target = parseInt(present_page) - 1;
	}

	// 次へ
	if (target == 'next') {
		target = parseInt(present_page) + 1;
	}

	//ADD toki 2008/11/11 AJAX高速化対応
	//遷移先ページ内容取得
	movePage(target);

	// 無理やりIDを指定して高速化
	for (var i = 1; i < page_length + 1; i++) {
		prev = parseInt(target) - 1;
		prev2 = parseInt(target) - 2;

		next = parseInt(target) + 1;
		next2 = parseInt(target) + 2;

		id = page_box_id + i;
		if (target == i) {
			//DELETE toki 2008/11/7 ページ単位取得により不要
			//openBlock(id);

			j$("#pager_header .active_" + target).hide();
			j$("#pager_header .nonactive_" + target).show();

			j$("#pager_footer .active_" + target).hide();
			j$("#pager_footer .nonactive_" + target).show();

			present_page = target;
		}
		else {
			//DELETE toki 2008/11/7 ページ単位取得により不要
			//closeBlock(id);
			j$("#pager_header .number a:not(.active_" + target + ")").hide();
			j$("#pager_header .number span:not(.nonactive_" + target + ")").hide();

			j$("#pager_footer .number a:not(.active_" + target + ")").hide();
			j$("#pager_footer .number span:not(.nonactive_" + target + ")").hide();
		}

		// 一つ前は表示
		j$("#pager_header .active_" + prev).show();
		j$("#pager_header .nonactive_" + prev).hide();

		j$("#pager_footer .active_" + prev).show();
		j$("#pager_footer .nonactive_" + prev).hide();

		// 一つ後は表示
		j$("#pager_header .active_" + next).show();
		j$("#pager_header .nonactive_" + next).hide();

		j$("#pager_footer .active_" + next).show();
		j$("#pager_footer .nonactive_" + next).hide();

		// 最初のページ
		if (target == 1) {
			j$("#pager_header .active_prev").hide();
			j$("#pager_header .nonactive_prev").show();

			j$("#pager_footer .active_prev").hide();
			j$("#pager_footer .nonactive_prev").show();

			j$("#pager_header .active_front").hide();
			j$("#pager_header .nonactive_front").show();

			j$("#pager_footer .active_front").hide();
			j$("#pager_footer .nonactive_front").show();

			// ２つ後まで表示
			j$("#pager_header .active_" + next2).show();
			j$("#pager_header .nonactive_" + next2).hide();

			j$("#pager_footer .active_" + next2).show();
			j$("#pager_footer .nonactive_" + next2).hide();
		}
		else {
			j$("#pager_header .active_prev").show();
			j$("#pager_header .nonactive_prev").hide();

			j$("#pager_footer .active_prev").show();
			j$("#pager_footer .nonactive_prev").hide();

			j$("#pager_header .active_front").show();
			j$("#pager_header .nonactive_front").hide();

			j$("#pager_footer .active_front").show();
			j$("#pager_footer .nonactive_front").hide();
		}

		// 最後のページ
		if (target == page_length) {
			j$("#pager_header .active_next").hide();
			j$("#pager_header .nonactive_next").show();

			j$("#pager_footer .active_next").hide();
			j$("#pager_footer .nonactive_next").show();

			j$("#pager_header .active_tail").hide();
			j$("#pager_header .nonactive_tail").show();

			j$("#pager_footer .active_tail").hide();
			j$("#pager_footer .nonactive_tail").show();

			// ２つ後まで表示
			j$("#pager_header .active_" + prev2).show();
			j$("#pager_header .nonactive_" + prev2).hide();

			j$("#pager_footer .active_" + prev2).show();
			j$("#pager_footer .nonactive_" + prev2).hide();
		}
		else {
			j$("#pager_header .active_next").show();
			j$("#pager_header .nonactive_next").hide();

			j$("#pager_footer .active_next").show();
			j$("#pager_footer .nonactive_next").hide();

			j$("#pager_header .active_tail").show();
			j$("#pager_header .nonactive_tail").hide();

			j$("#pager_footer .active_tail").show();
			j$("#pager_footer .nonactive_tail").hide();
		}


	}



	var successCallback = function(data){

	};
	var errorCallback = function(xml, status, e){
	};

	j$.ajax({
		'type': "POST",
		'url': php,
		'data': {
			'present_page': present_page,
			'mode': 'set_page_session'
		},
		'success': successCallback,
		'error': errorCallback
	});

}


function openBlock(target){
	$(target).style.display = "block";
}

function closeBlock(target){
	$(target).style.display = "none";
}

/*--------------------------------------------------------------------------*/

/*
 * ランキング検索
 */
function searchRank(id){
	var params = 'id=' + id;
	
	new Ajax.Request(php, {
		method: 'post',
		parameters: params,
		onComplete: rankResponse,
		asynchronous: false, // 同期：先にボタンを描画されないように
		onSuccess: showSuccess
	});
}

/**
 * 指定したページのデータを取得し再描画
 * @param {Number} page	取得したいページ番号
 */
function movePage(page){
	
	var params = "id=" + category_id + "&page=" + page;

	new Ajax.Request(php, {
		method: 'post',
		parameters: params,
		onComplete: rankResponse,
		asynchronous: false, // 同期：先にボタンを描画されないように
		onSuccess: showSuccess
	});
}

/**
 * JSONデータ取得完了後の処理
 * @param {Object} httpObj HTTPレスポンス
 */
function rankResponse(httpObj){

	var json = eval("(" + httpObj.responseText + ")");

	//ADD toki 2008/11/12 バナー広告表示対応
	if (first_load) {
		//初回表示時はバナーDIVをグローバル変数に保存
		bannerNode = $("ranking_banner");
	}
	else {
		//初回以外はバナーDIVを退避
		$("ranking_banner_container").appendChild(bannerNode);
	}
	//ADD toki 2008/11/12 END

	//MOD toki 2008/11/11 AJAX高速化対応
	var newHTML = getRankingHTML(json.ranking_data);

	// 現在のページを保持
	present_page = json.present_page;

	//IE6でimageが読み込まれない問題があるため描画を後回しにする
	setTimeout(function(){
		// 検索結果表示
		j$('#' + item_list).html(json.html);
		j$('#pager_header').html(json.pager);
		j$('#pager_footer').html(json.pager);

		//ADD toki 2008/11/11 高速化対応
		if (!$("ranking_main")) {
			//1件もない時はranking_mainがないので強制的に追加
			j$('#' + item_list).append("<div id= " + page_box_id + present_page + "><div id='ranking_main' /></div>")
		}
		j$('#ranking_main').html(newHTML);

		//ADD toki 2008/11/12 バナー広告表示対応
		//バナーを所定の場所に移動
		if (!$("ranking_banner_container")) {
			$("ranking_banner_target").appendChild('<div id="ranking_banner_container"><div id="ranking_banner" /></div>');
		}
		$("ranking_banner_target").appendChild(bannerNode);
		//ADD toki 2008/11/12 END

		// デフォルトを開いておく
		openBlock(page_box_id + present_page);

		setMainCSS()

	}, 1);



}

function showSuccess(){
	$("msg").innerHTML = "OK";
}

/*--------------------------------------------------------------------------*/
/*
 * ランキング用PHPセッション情報のクリア
 */
function ranking_sessionclear(){
	param = "?mode=sessionclear&url=" + document.URL;
	
	new Ajax.Request(php, {
		method: 'post',
		parameters: param,
		asynchronous: false // 先に検索がかかるとマズイので同期
	});
}
//----------------------------------
//
//      左サイドCSS
//
//----------------------------------
function setSideCSS() {

// [スタイル制御]ランキングページナビゲーション
	j$('.rankingArea #rankingNavi #chooseUsage li,.rankingArea #rankingNavi #chooseMaker li,.rankingArea #rankingNavi #spec_cont ul li,.rankingArea #rankingNavi #price_cont li').hover(function(){
		j$(this).addClass('hover');
	},
	function(){
		j$(this).removeClass('hover');
	});
	

}
//----------------------------------
//
//      ランキングCSS
//
//----------------------------------
function setMainCSS(){
	// [スタイル制御]ランキングページメイン部分
	j$('#ranking :checkbox').click(function(){
		j$(this).parent().parent().parent().parent().parent().toggleClass('ac');
	});
	j$('#ranking :checked').each(function(){
		j$(this).parent().parent().parent().parent().parent().addClass('ac');
	});
	j$('#ranking .section').hover(function(){
		j$(this).addClass('hover');
	}, function(){
		j$(this).removeClass('hover');
	});
}


/*--------------------------------------------------------------------------*/

