//
// ログインウィジェット制御スクリプト.
//
// 本スクリプトは以下のライブラリに依存します。
// jquery.js
// m2plogin.js
//
//


/**
 * ログイン中フラグ(現在の表示がログイン中かどうか).
 * <br />
 * wgtlogin_login_impl が呼ばれると trueに、
 * wgtlogin_logout_impl が呼ばれると falseに変化します。
 * 現時点では、ログアウト表示に切り替える際のエフェクトon/off
 * 判定にしか使用していません。
 */
var wgtlogin_login_flg = false;


/**
 * ウィジェット初期化.
 */
function wgtlogin_init() {
	// ログイン前ウィジェットの内容初期化
	wgtlogin_beforelogin_init();
	// ログイン後ウィジェットの内容初期化
	wgtlogin_afterlogin_init();
	
	// ログインモジュールにイベント登録
	m2plogin_add_logincallback( wgtlogin_login );
	m2plogin_add_logoutcallback( wgtlogin_logout );
}

/**
 * ログイン前ウィジェットの初期化.
 * @return
 */
function wgtlogin_beforelogin_init() {
	// ログインフォームのパラメータセット
	$('#wgt_beforelogin_loginform [name=backurl]').val( location.href );
	$('#wgt_beforelogin_loginform [name=forwardurl]').val( location.href );
	// ログインボタンのイベント設定
	$('#wgt_beforelogin_login').click( function(){
		$('#wgt_beforelogin_loginform').submit(); 
	});
	
	// 会員登録フォームのパラメータセット
	$('#wgt_beforelogin_registform [name=backurl]').val( location.href );
	$('#wgt_beforelogin_registform [name=forwardurl]').val( location.href );
	// 会員登録ボタンのイベント設定
	$('#wgt_beforelogin_regist').click( function(){
		$('#wgt_beforelogin_registform').submit();
	});
}

/**
 * ログイン後ウィジェットの初期化.
 * (ユーザー名の表示などはログインコールバックで実行します)
 * @return
 */
function wgtlogin_afterlogin_init() {
	// ログアウトボタンのイベント設定
	$('#wgt_afterlogin_logout').click( m2plogin_logout );

}

/**
 * ログイン時にコールバックしてもらうイベント関数.
 * @param json 会員情報
 */
function wgtlogin_login(json) {
	wgtlogin_login_impl(json, false);
}

/**
 * ログアウト時にコールバックしてもらうイベント関数.
 * @return
 */
function wgtlogin_logout() {
	wgtlogin_logout_impl(wgtlogin_login_flg);
}


/**
 * ログイン後の画面表示（実装）.
 * @param json Object ユーザー情報
 * @param withEffect boolean ログイン表示の視覚効果ON/OFF
 * @return
 */
function wgtlogin_login_impl(json, withEffect) {
	// ユーザー情報の表示
	$('#wgt_afterlogin_names').html( json.names );
	$('#wgt_afterlogin_namem').html( json.namem );
	$('#wgt_afterlogin_point').html( json.point );
		
	$('#wgt_beforelogin').hide();
	
	if ( withEffect ) {
		$('#wgt_afterlogin').fadeIn(500);	
	} else {
		$('#wgt_afterlogin').show();
	}
	
	wgtlogin_login_flg = true;
}

/**
 * ログアウト後の画面表示（実装）.
 * @param withEffect boolean 表示の視覚効果ON/OFF
 * @return
 */
function wgtlogin_logout_impl(withEffect) {
	// ユーザー情報の表示削除
	$('#wgt_afterlogin_names').html( 'ゲスト' );
	$('#wgt_afterlogin_namem').html( '' );
	$('#wgt_afterlogin_point').html( 0 );
		
	$('#wgt_afterlogin').hide();
	
	if ( withEffect ) {
		$('#wgt_beforelogin').fadeIn(400);	
	} else {
		$('#wgt_beforelogin').show();	
	}
	
	wgtlogin_login_flg = false;
}


