﻿/**

 * MACH MAIL

 * 一覧の操作

 * 

 * @author	George Mitsumoto

 * @version	2006-04-07

 */



/**

 * 指定した番号のページに移動する

 * 

 * @param	_page			ページ番号

 * @param	_targetForm		送信するフォーム

 * @param	_callback		送信される前に実行されるコールバック関数(オプション)

 * @example	setPageNum(2, document.forms[0][, someMethod])

 */

function setPageNum(_page, _targetForm, _callback) {

	if (typeof _callback == "function") {

		_callback();

	}

	

	focusedDirectPage = null;

	_targetForm.page.value = _page;

	_targetForm.action = "";

	_targetForm.target = "_self";

	_targetForm.submit();

}



/**

 * 直接ページ入力のフォーカスを保存する

 * 

 * @param	_self	トリガ

 */

var focusedDirectPage = null;	//  フォーカスを保持するグローバル変数

function storeDeirectPage(_self) {

	focusedDirectPage = _self;

}



/**

 * 1つ前のページに移動する

 * 

 * @param	_targetForm		送信するフォーム

 * @param	_callback		送信される前に実行されるコールバック関数(オプション)

 * @example	setPagePrevious(document.forms[0][, someMethod])

 */

function setPagePrevious(_targetForm, _callback) {

	var currentPage = parseInt(_targetForm.page.value, 10);

	setPageNum(currentPage - 1, _targetForm, _callback);

}



/**

 * 1つ次のページに移動する

 * 

 * @param	_targetForm		送信するフォーム

 * @param	_callback		送信される前に実行されるコールバック関数(オプション)

 * @example	setPageNext(document.forms[0][, someMethod])

 */

function setPageNext(_targetForm, _callback) {

	var currentPage = parseInt(_targetForm.page.value, 10);

	setPageNum(currentPage + 1, _targetForm, _callback);

}



/**

 * onsubmit時にページ情報を送信する

 * 

 * @param	_self		トリガフォーム

 * @param	_callback	送信される前に実行されるコールバック関数(オプション)

 */

function setPageOnSubmit(_self, _callback) {

	if (typeof _callback == "function") {

		_callback();

	}

	

	_self.page.value = (focusedDirectPage) ? focusedDirectPage.value : 0;

	_self.action = "";

	_self.target = "_self";

}



/**

 * 一覧をソートする

 * 

 * @param	_sort			ソートする項目名

 * @param	_order			ソート順序

 * @param	_targetForm		送信するフォーム

 * @param	_callback		送信される前に実行されるコールバック関数(オプション)

 */

function sortList(_sort, _order, _targetForm, _callback) {

	if (typeof _callback == "function") {

		_callback();

	}

	

	_targetForm.sort.value = _sort;

	_targetForm.order.value = _order;

	_targetForm.action = "";

	_targetForm.target = "_self";

	_targetForm.submit();

}