//!--------------------------------------------------------------------------------------------
//! Copyright (c) 2002 Acer Inc.
//! Author : Matt Tasi   2003/06/06
//!
//! Modification Log :
//! Vers    Date                  By          Notes
//! -----  ---------------  ---------------  ------------------------------------------------
//! 1.0.0  2003/06/06       Matt Tasi        Create
//! 1.0.1  2003/12/19       Randy Chen       Add	checkCHDate() function
//! 1.0.2  2004/04/07       Robert Tan       Add  checkCHWord() function 
//!-------------------------------------------------------------------------------------------- 


//------------------------------------------------------------------
//字串相關之function
//------------------------------------------------------------------

//=============================================
//desc:		去右邊空白
//input:	str
//output:	str
//=============================================
function rtrim(str) {
	if (str == null) return "";
	while(''+str.charAt(str.length-1) ==' ')

		str = str.substring(0,str.length-1);

	return str;

}

//=============================================
//desc:		去右邊空白
//input:	str
//output:	str
//=============================================
function ltrim(str) {
	if (str == null) return "";
	while(''+str.charAt(0) ==' ')

		str = str.substring(1,str.length);

	return str;

}

//=============================================
//desc:		字串去空白
//input:	str
//output:	str
//=============================================

function trim(str) {
	return ltrim(rtrim(str));
}

//=============================================
//desc:		將傳入的內容不足位時，於內容前方補足指定的字
//input:	str 	- 要檢核長度的內容
//		limit 	- 要檢核的長度
//		fillchar- 不足位時，於前方補足長度的指定字
//output:	str
//=============================================
function getFilledStr(str,limit,fillchar) {

	var result = "";
	str = trim(str);
    	if(str.length < limit) {
	     	for(i=0;i<(limit - str.length);i++) {
	       		result = result + "" + fillchar;
	     	}

     		result = result + "" + str;

    	} else {

      		result = str;

    	}
    	return result;
}

//=============================================
//desc:		傳回字串長度(英文=1,中文=2)
//input:	str 	
//output:	int
//=============================================
function getLength(str) {
		
	var s,i=0,charCount=0,result=true;
	
	while (i++<str.length)
	{
		s = str.charCodeAt(i-1);
		if (s<127)
			charCount++;
		else
			charCount+=2;
	}
	return charCount;
}

//=============================================
//desc:		檢查鍵入值是否為中文字
//input:	str 	
//output:	void
//=============================================
function checkCHWord(str) {
	len = str.value.length;
  ch = str.value.charCodeAt(len-1)
  if(ch < 127) {
  	str.value = str.value.substring(0,len-1);
  }
}

//------------------------------------------------------------------------------
//字串相關之檢查
//------------------------------------------------------------------------------

//==============================================
//desc:		檢查是否為空白或null
//input:	str
//output:	boolean
//==============================================
function checkEmpty(str) {
	if (str == null || trim(str) == "") {
		return true;
	} else {
		return false;
	}
}

//=============================================
//desc:		判斷日期是否合法
//input:	dateStr(yyyymmdd)
//output:	boolean
//=============================================
function checkDate(dateStr)
{
	var year	= dateStr.substring(0,4) * 1;
	var month	= dateStr.substring(4,6) * 1;
	var day		= dateStr.substring(6,8) * 1;
	if (dateStr.length != 8)
		return false;
	if (month < 1 || month > 12)
		return false;
	if (day < 1 || day > 31)
		return false;
	if ((month == 4 || month == 6 || month == 9 || month == 11) && day == 31)
		return false
	if (month == 2)
	{
		var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
		if (day>29 || (day==29 && !isleap))
			return false;
	}
	return true;
}

//----Ver.10.01 Added----
//=============================================
//desc:		判斷民國日期是否合法
//input:	dateStr(yyymmdd)
//output:	boolean
//=============================================
function checkCHDate(CHdateStr) {
	//轉換民國->西元
	var year=CHdateStr.substring(0,3)*1;
	var month= CHdateStr.substring(3,5);
	var day= CHdateStr.substring(5,7);

	if(CHdateStr.length != 7)
		return false;
	
	year+=1911;

	var dateStr=""+year+month+day;

	return checkDate(dateStr);
}
//----------------------

//=============================================
//desc:		判斷時間是否合法
//input:	timeStr(hhmmss)
//output:	boolean
//=============================================
function checkTime(timeStr)
{
	var hh	= timeStr.substring(0,2) * 1;
	var mm	= timeStr.substring(2,4) * 1;
	var ss	= timeStr.substring(4,6) * 1;
	if (timeStr.length != 6)
		return false;
	if (hh < 0 || hh >= 24)	
		return false;
	if (mm < 0 || mm >= 60)
		return false;
	if (ss < 0 || ss >= 60)
		return false;
	return true;
}

//=============================================
//desc:		判斷是否為數字
//input:	num str
//output:	boolean
//=============================================
function checkNum(num) {
	return !isNaN(num);
}

//=============================================
//desc:		檢查E-MAIL
//input:	mailStr 	
//output:	boolean
//=============================================
function checkEmail(mailStr){
    	if((mailStr.indexOf("@")==-1 || mailStr.indexOf(".")==-1)){

		return false;

	}
	return true;
}

//=============================================
//desc:		檢查身份証字號
//input:	str	
//output:	boolean
//=============================================
function checkID(str)
{
	var UserID=str;
	var code = str.charCodeAt(1);
	if ((code >= 65 && code <= 90) || (code >= 97 && code <= 122)) return true;
	if (UserID.length!=10) return false;

	var Weight = new Array(10);  //定義加權值
	var Location = new Array(24);  //區域值轉換表
	var CheckNum, Temp, CheckSum, Flag;
	var i, j;
	var Sex, Place, HTMLcode, UserID2;

	Flag = false;
	CheckSum=0;
	UserID2 = UserID;

	//設定加權值初值
	Weight[0] = 1;
	for (i=1; i<10; i++)
		Weight[i] = 10 - i;

	//定義區域表的轉換值，沒有I,O
	Location[0] = new Array("A", "台北市", "10");
	Location[1] = new Array("B", "台中市", "11");
	Location[2] = new Array("C", "基隆市", "12");
	Location[3] = new Array("D", "台南市", "13");
	Location[4] = new Array("E", "高雄市", "14");
	Location[5] = new Array("F", "台北縣", "15");
	Location[6] = new Array("G", "宜蘭縣", "16");
	Location[7] = new Array("H", "桃園縣", "17");
	Location[8] = new Array("J", "新竹縣", "18");
	Location[9] = new Array("K", "苗栗縣", "19");
	Location[10] = new Array("L", "台中縣", "20");
	Location[11] = new Array("M", "南投縣", "21");
	Location[12] = new Array("N", "彰化縣", "22");
	Location[13] = new Array("P", "雲林縣", "23");
	Location[14] = new Array("Q", "嘉義縣", "24");
	Location[15] = new Array("R", "台南縣", "25");
	Location[16] = new Array("S", "高雄縣", "26");
	Location[17] = new Array("T", "屏東縣", "27");
	Location[18] = new Array("U", "花蓮縣", "28");
	Location[19] = new Array("V", "台東縣", "29");
	Location[20] = new Array("W", "金門縣", "32");
	Location[21] = new Array("X", "澎湖縣", "30");
	Location[22] = new Array("Y", "陽明山", "31");
	Location[23] = new Array("Z", "馬祖", "33");

	Temp = UserID.substring(1,2);
	Sex = (Temp == "1") ? "男生" : "女生";
	Temp = UserID.substring(0,1);  //取得英文字母與檢查碼
	Temp = Temp.toUpperCase();
	CheckNum = parseInt(UserID.substring(UserID.length-1, UserID.length));
	for(i=0; i<24; i++)
	{
		if (Temp == Location[i][0])
		{
			//轉換成完整數字串列
			UserID = Location[i][2] + UserID.substring(1,UserID.length);
			Place = Location[i][1];  //取得出生地
			id_num     = parseInt(UserID.substring(0,1))   +
                     	parseInt(UserID.substring(1,2)) *9+
                      	parseInt(UserID.substring(2,3)) *8+
                      	parseInt(UserID.substring(3,4)) *7+            
                      	parseInt(UserID.substring(4,5)) *6+
	                parseInt(UserID.substring(5,6)) *5+             
	                parseInt(UserID.substring(6,7)) *4+
	                parseInt(UserID.substring(7,8)) *3+             
	                parseInt(UserID.substring(8,9)) *2+             
	                parseInt(UserID.substring(9,10))  +
	                parseInt(UserID.substring(10,11));        
  
			if ((id_num % 10) == 0) 
			{
				// 是身份証字號
				Flag = true;
			}
		}
     	}
	return Flag; 
}

function addDate(datestr,days) {
	if (datestr.length != 8) return datestr;
	var yy = datestr.substring(0,4);
	var mm = datestr.substring(4,6);
	var dd = datestr.substring(6,8);
	var newdate = new Date(yy,mm-1,dd);
	newdate.setDate(newdate.getDate() + days);
	yy = newdate.getYear() + "";
	mm = newdate.getMonth() + 1 + "";
	if (mm.length == 1) mm = "0" + mm.toString();
	dd = newdate.getDate() + "";
	if (dd.length == 1) dd = "0" + dd.toString();
	return yy + mm + dd;
}

function addMonth(datestr,month) {
	if (datestr.length != 8) return datestr;
	var yy = datestr.substring(0,4);
	var mm = datestr.substring(4,6);
	var dd = datestr.substring(6,8);
	var newdate = new Date(yy,mm-1+month,dd);
	yy = newdate.getYear() + "";
	mm = newdate.getMonth() + 1 + "";
	if (mm.length == 1) mm = "0" + mm.toString();
	dd = newdate.getDate() + "";
	if (dd.length == 1) dd = "0" + dd.toString();
	return yy + mm + dd;
}




