﻿/**
 * 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();
}
