//
// ベストセラー Widget 表示制御用Javascript
//
// 本スクリプトは以下に依存します。
// jquery
// jquery.cookie
//
// スクリプトが機能するためには、画面onload時(ready)に wgtbest_initを
// 呼び出す必要があります。
//
//

/**
 * デフォルトのランキング表示件数.
 */
var wgtbest_default_count = 5;

/**
 * クッキー設定情報(必要に応じて利用者が上書きすることを想定).
 * ドメインをサーバー指定にすることで、スコープをhomeに限定
 */
var WGTBEST_COOKIE_CONFIG = {
		"domain":  '',
		"path":    '/',
		"expires": ''
}

/**
 * ウィジェットのスクリプト初期化.
 * <br />
 * すべて表示<=>所定件数のみ表示を切り替えるリンクの
 * クリックイベントを初期化（設定）します。
 * 
 * @param target_id 商品情報表示領域のid
 * @param show_id 「すべて表示」のid
 * @param hide_id 「５件のみ表示」のid
 */
function wgtbest_init( target_id, show_id, hide_id ) {	
	var show_btn = $('#'+show_id );
	var hide_btn = $('#'+hide_id );
	var target = $('#'+target_id );
	
	// 商品件数が既定以下ならリンクを非表示としてイベント設定も不要
	if ( wgtbest_itemcount(target) <= wgtbest_default_count ) {
		show_btn.hide();
		hide_btn.hide();
		
		return;
	}
	
	// 表示イベント設定
	show_btn.click( 
		function(e){
			wgtbest_show_impl(target);
			wgtbest_save_showstate(target_id, true);
			show_btn.hide();
			hide_btn.show();
			
			return false;
	    }
	);
	
	// 非表示イベント設定
	hide_btn.click( 
		function(e){
			wgtbest_hide_impl(target);
			wgtbest_save_showstate(target_id, false);
			show_btn.show();
			hide_btn.hide();
			
			return false;
	    }
	);
	
	// クッキーに保持されている表示状態を復元
	if ( wgtbest_load_showstate(target_id) ) {
		show_btn.click();
	}

        // ebookstoreの時はAppleアイコンを消す
        //_ 本番時はこのコメントを外す
        //$(".wgt_img_iph").hide();
	

}

/**
 * ランキングを全件表示する.
 * @param target 対象DIV (オブジェクト)
 * @return
 */
function wgtbest_show_impl(target) {
	target.children('[class=wgt_item]').show();
}

/**
 * ランキングの表示を縮める
 * @param target 対象DIV (オブジェクト)
 */
function wgtbest_hide_impl(target) {
	var items = target.children('[class=wgt_item]');
	
	for (var i=0; i< items.length; i++) {
		if ( i < wgtbest_default_count ) {
			$(items[i]).show();
		} else {
			$(items[i]).hide();
		}
	}
}

/**
 * 表示エリアの商品数を取得する.
 * @param target
 * @return
 */
function wgtbest_itemcount(target) {
	var items = target.children('[class=wgt_item]');
	
	return (!! items) ? items.length : 0;
}

/**
 * 表示エリアの全件表示-縮小表示ステータスをクッキーへ保存する.
 * @param target_id ウィジェットを識別するID
 * @param is_open boolean 全件表示ならtrueを指定
 * @return 
 */
function wgtbest_save_showstate(target_id, is_open) {
	if (is_open) {
		$.cookie('wgtbest_'+target_id, '1', WGTBEST_COOKIE_CONFIG );
	} else {
		$.cookie('wgtbest_'+target_id, null, WGTBEST_COOKIE_CONFIG );
	}
}

/**
 * 表示エリアの全件表示-縮小表示ステータスをクッキーから取得する.
 * @param target_id ウィジェットを識別するID
 * @return boolean 全件表示の場合true
 */
function wgtbest_load_showstate(target_id) {
	return (!! $.cookie('wgtbest_'+target_id) );
}

