/******************************************************
*	Fa Yuan JavaScript function 法源Java Script函示庫
*
*	(c) 2002 Fa Yuan Law Source Inc.,  All Rights Reserved.
*
*	Author: Thomas Huang
*
******************************************************/
/******************************************************
*	transToDate 轉換成日期格式
*	參數：
*			y: 民國年
*			m: 月
*			d: 日
*			se:  ["s"|"e"] 
*				"s":起始日期，若空則填入最小日期
*				例: 19110000
*				"e":結束日期，若空則填入最大日期
*				例: 99991231
*	回傳值：String 轉換後的日期
*	
******************************************************/

 	function transToDate(y, m, d, se){
		var ys, ms, ds, dt;
		if(y!=""){
			ys = (eval(y) +1911).toString(10);
		}else{
			if(se==0){
				ys = "1911";
			}else{
				ys = "9999";
			}
		}
		if(m!=""){
			ms = new String(m);
			if(ms.length==1){
				ms = "0" + ms;
			}
		}else{
			if(se==0){
				ms = "01";
			}else{
				ms = "12";
			}
		}
		if(d!=""){
			ds = new String(d);
			if(ds.length==1){
				ds = "0"+ds;
			}
		}else{
			if(se==0){
				ds = "01";
			}else{
				ds = "31";
			}
		}
		dt = ys + "-" + ms +"-" + ds;
		return dt;
	}


/******************************************************
*	transToWestDate 轉換成八位數西元日期
*	參數：
*			y: 民國年
*			m: 月
*			d: 日
*			se:  ["s"|"e"] 
*				"s":起始日期，若空則填入最小日期
*				例: 19110000
*				"e":結束日期，若空則填入最大日期
*				例: 99991231
*	回傳值：String 轉換後的日期
*	
******************************************************/

 	function transToWestDate(y, m, d, se){
	var ys, ms, ds, dt;
		if(y!=""){
			ys = (eval(y) +1911).toString(10);
		}else{
			if(se==0){
				ys = "0000";
			}else{
				ys = "9999";
			}
		}
		if(m!=""){
			ms = new String(m);
			if(ms.length==1){
				ms = "0" + ms;
			}
		}else{
			if(se==0){
				ms = "00";
			}else{
				ms = "12";
			}
		}
		if(d!=""){
			ds = new String(d);
			if(ds.length==1){
				ds = "0"+ds;
			}
		}else{
			if(se==0){
				ds = "00";
			}else{
				ds = "31";
			}
		}
		dt = ys + ms + ds;
		return dt;
	}

/******************************************************
*	transKeyword 轉換關鍵字詞
*	參數：String kw 要轉換的關鍵字詞
*	回傳值：String 轉換後的關鍵字詞	
*	功能：將關鍵字詞中的 "+","&","-" 代換成 "|","&","&!"
*	
******************************************************/
	function transKeyword(kw){
	var kwd;
	var i;
		kwd = trim(kw);
		if(kw!=""){
			for(i=0;i<kwd.length;i++){
				kwd=kwd.replace("+","\" or \"");
				kwd=kwd.replace("&","\" and \"");				
				kwd=kwd.replace("-","\" and not \"");
			}
			kwd = '"' + kwd + '"';
		}
		return kwd;
	}

/******************************************************
*	goto_page(p) 跳至某一頁
*	參數：int p 要跳至的頁數
*	回傳值：無
*	功能：依據傳入的頁數，將現行網頁URL中的page=xxx帶換為
*		  page=p，並重新導向至新的url	
******************************************************/
	function goto_page(p){
	var nurl = document.URL;
	var ptrn = /[pP][Aa][Gg][Ee]=[0-9]*/;
		//alert(p);
		//alert(document.URL);
		if(nurl.search(/page=/i)>0){
			//alert("find");
			nurl = nurl.replace(/[pP][Aa][Gg][Ee]=[0-9]*/, "page="+p);
		} else {
			nurl = nurl + "&page=" + p;
		}
		//alert(nurl);
		location.href = nurl;
	}	

/******************************************************
*	hasSpecialCode(s) 檢查字串是否有特殊字元
*	參數：String s 要檢查的字串
*	回傳值：第一個特殊字元，若回傳空字串代表無特殊字元
*	功能：字串只能使用中文、半形英數及+-|&!等符號
*	
******************************************************/
	function hasSpecialCode(s) {
	var c;
		for(i=0;i<s.length;i++){
			c = s.charCodeAt(i);
			if (!(
			  ((c>=48)&&(c<=57))||
			  ((c>=65)&&(c<=90))||
			  ((c>=97)&&(c<=122))||
			  (c==32)||(c==33)||
			  (c==38)||(c==40)||
			  (c==41)||(c==43)||
			  (c==45)||(c==124)||(c>255)
			  )) {
				return s.charAt(i);
			}
		}
		return "";
	}
	
/******************************************************
*	goto_page(p) 跳至某一頁
*	參數：int p 要跳至的頁數
*	回傳值：無
*	功能：依據傳入的頁數，將現行網頁URL中的page=xxx帶換為
*		  page=p，並重新導向至新的url	
******************************************************/
	function goto_page(p){
	var nurl = document.URL;
	var ptrn = /[pP][Aa][Gg][Ee]=[0-9]*/;
		//alert(p);
		//alert(document.URL);
		if(nurl.search(/page=/i)>0){
			//alert("find");
			nurl = nurl.replace(/[pP][Aa][Gg][Ee]=[0-9]*/, "page="+p);
		} else {
			nurl = nurl + "&page=" + p;
		}
		//alert(nurl);
		location.href = nurl;
	}	

/******************************************************
*	hasNormalChar(s) 檢查字串是否含有正常字元
*	參數：String s 要檢查的字串
*	回傳值：boolean
*	功能：檢查字串必須含有一個以上的半形英數或中文字
******************************************************/
	function hasNormalChar(s) {
	var c;
	var b;
		for(i=0;i<s.length;i++){
			c = s.charCodeAt(i);
			if (((c>=48)&&(c<=57)) ||
			   ((c>=65)&&(c<=90)) ||
			   ((c>=97)&&(c<=121)) ||
			   (c>127)
			   ) {
			   b = true;
			} 
		}
		return b;
	}

/******************************************************
*	trim(srText) 字串去左右空白
*	參數：String s 
*	回傳值：String s
*	功能：將字串左右空白去掉
******************************************************/
	function trim(strText) { 
   // this will get rid of leading spaces 
    while (strText.substring(0,1) == ' ') 
        strText = strText.substring(1, strText.length);

    // this will get rid of trailing spaces 
    while (strText.substring(strText.length-1,strText.length) == ' ')
        strText = strText.substring(0, strText.length-1);
	 return strText;
	} 

/******************************************************
*	chkStr(s) 檢查字串
*	參數：String s 要檢查的字串
*	回傳值：boolean
*	功能：
*		1.字串必須無特殊不合法字元
*		2.字串必須含有一個以上的半形英數或全形字
******************************************************/
	function chkStr(s) {
		if (trim(s)!=""){
			if (hasSpecialCode(s) != "") {
				alert("檢索字詞不能含有特殊字元：" + hasSpecialCode(s) + "\n請重設查詢條件...");
				return false;
			} else if (!hasNormalChar(s)) {
				alert("沒有輸入合法的檢索字詞，請重設查詢條件...");
				return false;
			} else {
				return true;
			}
		} else {
			return true;
		}
	}

/******************************************************
*	popup(tbl) 顯示或隱藏表格
*	參數：tbl
*	回傳值：boolean tbl的顯示狀態: [block: true |none: false]
*	功能：
*		將tbl的style.display設為none(隱藏)或block(顯示)
******************************************************/
function popup(t) {
	if (t.style.display=="none") {
		t.style.display="block";
		return true;
	} else {
		t.style.display="none";
		return false;
	}
}