/***

--------------------------------
提供數據列表翻頁腳本，依賴general.js
leaf.js v1.0 By 汪學貧@2004-5
--------------------------------
setLeafEnvironment():設置翻頁環境變數(依賴leaf.jsp)
leaf():跳轉翻頁(依賴setLeafEnvironment())
keyDown4Leaf():回車跳轉翻頁 for IE(依賴leaf()|leaf.jsp)

*/


/**
	@use:跳轉翻頁(依賴leaf.jsp)
	@function setLeafState 設置環境變數
	@param pageName 頁碼參數名
	@param defaultValue 當前默認的有效下一頁
	@param inputName 接受輸入值的input
	@param pageNum 總的頁數
	@param href 目標鏈結
*/
var _leaf_pageName = "pageno" ;
var _leaf_defaultValue = 1 ;
var _leaf_inputName = "_leaf_topage" ;
var _leaf_pageNum = 1 ;
var _leaf_locationParam = "" ;

var obj = null ;
function setLeafEnvironment (pageName ,defaultValue ,inputName ,pageNum ,locationParam)
{
	//args = setLeafEnvironment.arguments ;
	//強製表單的method值.
	var f = document.forms[0] ;
	if (f != null)
		f.method = "post" ;

	_leaf_pageName = pageName ;
	_leaf_defaultValue = defaultValue ;
	_leaf_inputName = inputName ;
	_leaf_pageNum = pageNum ;
	_leaf_locationParam = locationParam ;

	obj = objIsNull (inputName ,1)[0] ;
	if (obj == null){
		return false ;
	}else{
		//obj.focus();
	}
}
function leaf()
{
	var pageName = _leaf_pageName ;
	var defaultValue = _leaf_defaultValue ;
	var inputName = _leaf_inputName ;
	var pageNum = _leaf_pageNum ;
	var href = _leaf_locationParam ;
	
	//校正begin
	if (isNull (inputName ,"跳轉頁碼") == false)
	{
		hint ("跳轉頁碼不能為空，系統自動校正為默認值") ;

		obj.value = defaultValue ;
		obj.select() ;
		//obj.focus() ;

		return false ;
	}

	var v = obj.value ;
	if (isNaN(v))
	{
		hint ("跳轉頁碼非數字，系統自動校正為默認值") ;

		obj.value = defaultValue ;
		obj.select() ;
		//obj.focus() ;

		return false ;
	}
	
	var now = new Number(v) ;
	if (v.indexOf(".")>=0)
	{
		hint ("跳轉頁碼非整數，系統自動取整校正") ;

		obj.value = Math.floor(now) ;
		obj.select() ;
		//obj.focus() ;

		return false ;
	}
	
	if (pageNum == 0)
	{
		hint ("零數據，不支援翻頁") ;

		obj.value = pageNum ;
		obj.select() ;
		//obj.focus() ;

		return false ;
	}
	if (now<1 || now>pageNum)
	{
		if (now>pageNum) now = pageNum ;
		if (now<1) now = 1 ;
		
		hint ("跳轉頁碼["+v+"]不符合翻頁範圍[1-"+pageNum+"]，系統自動校正至臨近頁["+now+"]");

		obj.value = now ;
		obj.select() ;
		//obj.focus() ;

		return false ;
	}
	//校正end
	
	document.location.href =  "?"+pageName+"="+now+href ;
}
/**
	@use:回車跳轉翻頁 for IE(依賴leaf()|leaf.jsp)

	使用document.onkeydown=keyDown4Leaf ，如引入leaf.js，便獨霸onkeydown。
	所以遮罩上述語句，修正成調用控件的obj.onkeydown，而其必須在裝載控件obj後調用。
	參考leaf.jsp。
	
	1)要保證調用leaf()返回false時leaf()不重定向，追加return false
	2)要保證leaf()正常時leaf()完成重定向，追加return false ;
	綜述，控制重定向，依賴return false
*/
function keyDown4Leaf() { 
	var keycode = event.keyCode ;
	if (keycode == 13)
	{
		leaf () ;
		return false ;
	}
}

/**
 * @use 校驗數據載體表格是否存在
 */
function hasTable(id){
    var obj = document.all(id);
    if (obj == null){
        alert("分頁組件v2.0設定的[ID="+id+"]的表格不存在,請檢查屬性值paging:page.tableId") ;
		return false ;
	}

	return true ;
}

function alterTableRowColor(tableId ,rowIndex ,alterColor){
	var obj = document.all(tableId) ;
	if (obj == null) return ;
	
	if (alterColor == null) return ;
	color = alterColor.split(";");
	if (color.length==1) {
		color[1] = color[0] ;
		color[0] = "" ;
	}
	//一般第一行是表頭,不計算在內
	for (i=1 ;i<rowIndex+2;i++){
		var objRow = obj.rows(i) ;
		if (objRow == null) break ;
		objRow.bgColor=color[0] ;
		
		objRow = obj.rows(++i) ;
		if (objRow == null) break ;
		objRow.bgColor=color[1] ;
	}
}