//Check CheckBox
function chk_CheckBox(objChk, DSCR)
{
	var flgChk = false;
	if(typeof(objChk) != "undefined")
	{
		if(isNaN(objChk.length) == true)
		{
			if(objChk.checked == true) flgChk = true;
		}
		else
		{
			for(inx=0; inx<objChk.length; inx++)
			{
				if(objChk(inx).checked == true) flgChk = true;
			}
		}
	}
	if(flgChk == false) return DSCR + " 必須選取!!\n";
	else return "";
}
	


//不能為0
function chk_NumZero(obj, DSCR)
{
	var blnZero;
	blnZero=1;
	for(idx=0; idx<obj.length; idx++)
	{
		if(obj.charAt(idx) != '0' ) return "";
	}
	
	if(blnZero=1)
	{
		return(DSCR + " 不能為0!!\n");
	}
}


//1:不能有數字以外的字元
//2:不能有數字及．以外的字元
function chk_Num(obj,nMethod,DSCR)
{
	for(idx=0; idx<obj.length; idx++)
	{
		if(nMethod == 1 )
		{
			if(!((obj.charAt(idx) >= '0' && obj.charAt(idx) <= '9')))
			{
					return(DSCR + " 不能有數字以外的字元!!\n");
			}
		}
		else if(nMethod == 2 )
		{
			if(!((obj.charAt(idx) >= '0' && obj.charAt(idx) <= '9') || obj.charAt(idx) == '.'))
			{
				return(DSCR + " 不能有數字及．以外的字元!!\n");
			}
		}
    }
    return "";
}


//1:不能有數字以外的字元及不能大於nScope
//2:不能有數字及．以外的字元及不能大於nScope
function chk_NumValue(obj,nScope,nMethod,DSCR)
{
	for(idx=0; idx<obj.length; idx++)
	{
		if(nMethod == 1 )
		{
			if(!((obj.charAt(idx) >= '0' && obj.charAt(idx) <= '9')))
			{
				return(DSCR + " 不能有數字以外的字元!!\n");
			}
		}
		else if(nMethod == 2 )
		{
			if(!((obj.charAt(idx) >= '0' && obj.charAt(idx) <= '9') || obj.charAt(idx) == '.'))
			{
				return(DSCR + " 不能有數字及．以外的字元!!\n");
			}
	    }
	}
	if(parseFloat(obj) > nScope) return(DSCR + " 不能大於" + nScope + "!!\n");
    return "";
}


//Check Telphone Number
function chk_TelNum(num, DSCR)
{
	var error = false;
    for( idx = 0 ; idx < num.length ; idx++ ) 
    {
        if( !( ( num.charAt(idx) >= '0' && num.charAt(idx) <= '9' ) || ( num.charAt(idx) == '-' ) || ( num.charAt(idx) == '#' ) || ( num.charAt(idx) == '(' ) || ( num.charAt(idx) == ')' )) ) 
        {
            error = true;
            break;
        }
    }
    if( error == true ) return DSCR + " 只能是數字及'-','#','(',')'符號!!\n";
    return "";
}


//Check E-Mail
function chk_EMail(email ,DSCR)
{
	var len = email.length;
	var ck =0;
	if(len==0) return "";
	for(var i=0;i<len;i++)
	{  
		var c= email.charAt(i);
		if(!((c>="A"&&c<="Z")||(c>="a"&&c<="z")||(c>="0"&&c<="9")||(c=="-")||(c=="_")||(c==".")||(c=="@")))
			return DSCR + " 只能是數字,英文字母及'-','_'等符號!!\n";
	}
	if((email.indexOf("@")==-1)||(email.indexOf("@")==0)||(email.indexOf("@")==(len-1)))
		return DSCR + " 不合法!!\n";
	if((email.indexOf("@")!=-1)&&(email.substring(email.indexOf("@")+1,len).indexOf("@")!=-1))
		return DSCR + " 不合法!!\n";
	if((email.indexOf(".")==-1)||(email.indexOf(".")==0)||(email.lastIndexOf(".")==(len-1)))
		return DSCR + " 不完全!!\n";
	return "";
}
	

//Check Identity	
function chk_identity ( id )
{
	if( id.length == 0 ) return "";
	var m_id = id;
	//m_id = m_id.toUpperCase();
	//id.value = m_id;
	//if(m_id.length>10) return "您的身分證字號超過10個字!!\n";
	if(m_id.length<10) return "您的身分證字號不滿10個字!!\n";
	var c = m_id.charAt(0);
	if(c<"A" || c> "Z") return "您的身分證字號第一碼必須是大寫的英文字母 !\n";
	c = m_id.charAt(1);
	if(c!="1" && c!="2") return "您的身分證字號第二碼有問題!!\n";
	for(i=1;i<10;i++)
      if(isNaN(parseFloat(m_id.charAt(i)))) return "您的身分證字號第二到十碼有問題 !\n";
	var m_alph = new Array("A","B","C","D","E","F","G","H","J","K","L","M","N","P","Q","R","S","T","U","V","X","Y","W","Z","I","O");
	var m_num = new Array("10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31","32","33","34","35");
	var n=0;
	for(i=0;i<m_alph.length;i++)
		if(m_id.charAt(0)==m_alph[i]) n=i;
	var m_tot1 = parseFloat(m_num[n].charAt(0)) + (parseFloat(m_num[n].charAt(1)) * 9);
	var m_tot2 = 0;
	for(i=1;i<m_id.length-1;i++) m_tot2 = m_tot2 + parseFloat(m_id.charAt(i))*(9-i);
	var m_tot3 = parseFloat(m_id.charAt(9));
	var m_tot4 = m_tot1 + m_tot2 + m_tot3;
	if((m_tot4 % 10)!=0) return "您的身分證字號有問題!!\n";
	return "";
}


//Check Date
function chk_Date(DateStr, DSCR){
	if(DateStr.length > 10) return (DSCR + " 格式錯誤，超過10位數!!\n");
	if(DateStr.length < 8) return (DSCR + " 格式錯誤，少於8位數!!\n");


	var DateArr = new Array(DateStr.split("/").length);
	DateArr = DateStr.split("/");
 
	if(DateArr.length != 3) return (DSCR + " 格式錯誤,須為yyyy/mm/dd!!\n");
	else{
	    for(idx=0; idx<DateStr.length; idx++){
    	    if(!((DateStr.charAt(idx) >= '0' && DateStr.charAt(idx) <= '9' ) || ( DateStr.charAt(idx) == '/'))) {
    	        return(DSCR + " 不能有 數字 及 / 以外的字元!!\n");
    	    }
    	}
		
		if(DateArr[0].length != 4) return(DSCR + " 年須為四位數!!\n");
		if(DateArr[1] > 12) return(DSCR + " 月不可大於12!!\n");
		if(DateArr[1] == 2){
			if((DateArr[0] % 4 != 0) && (DateArr[2] > 28))return(DSCR + " " + DateArr[0] + "年2月不可大於28天!!\n");
			else if(DateArr[2] > 29) return(DSCR + " " + DateArr[0] + "年2月不可大於29天!!\n");
		}
		else{
			if((DateArr[1] == 1) || (DateArr[1] == 3) || (DateArr[1] == 5) || (DateArr[1] == 7) || (DateArr[1] == 8) || (DateArr[1] == 10) || (DateArr[1] == 12)){
				if(DateArr[2] > 31) return(DSCR + " " + DateArr[1] + "月不可大於31天!!\n");
			}
			else if(DateArr[2] > 30) return(DSCR + " " + DateArr[1] + "月不可大於30天!!\n");
		}
	}	

	return "";
}

function chk_LenLessOne(obj,tmp_len,Descr){	//長度(<len)==>最少
	if(obj.length < tmp_len){
		return(Descr+"　長度錯誤(最少需輸入"+ tmp_len + "個字)!!\n")
	}
	return"";
}

function chk_AlphaNum(obj,Descr){	//英文字母或數字
	var re = /[^A-Za-z0-9]{1,}/;
	if(re.test(obj)){
		return(Descr+"　格式錯誤(請輸入英文字母或數字)!!\n");
	}
	return"";
}

function chk_LCaseNum(obj,Descr){	//小寫字母或數字
	var re = /[^a-z0-9]{1,}/;
	
	if(re.test(obj)){
		return(Descr+"　格式錯誤(請輸入小寫字母或數字)!!\n");
	}
	return"";
}

function chk_CapitalNum(obj,Descr){	//大寫字母或數字
	var re = /[^A-Z0-9]{1,}/;
	if(re.test(obj)){
		return(Descr+"　格式錯誤(請輸入大寫字母或數字)!!\n");
	}
	return"";
}

function chk_Code(obj,Descr){	//編號的驗證
	if(obj.replace(/^\s+|\s+$/g,'')==''){
		return(Descr+"　必須輸入資料!!\n");
	}
	else{
		var re = /[^A-Za-z0-9-_]{1,}/;
		if(re.test(obj)){
			return(Descr+"　格式錯誤(數字,英文字母及'-','_'等符號)!!\n");
		}
		return"";
	}
}

function cut_right(str, n){
	if (n <= 0)
		return "";
	else if (n > String(str).length)
		return str;
	else {
		var iLen = String(str).length;
		return String(str).substring(iLen, iLen - n);
    }
}

/*============================================================
 // 檢查資料是否有值
 　　* onAction需使用分號區分function
	y+=ChkEmpty('txtBgnDate','開始日期','ChkDate(document.frmUG.txtBgnDate.value,\'開始日期\');','必須選擇資料');
	y+=ChkEmpty('txtEndDate','結束日期','ChkDate(document.frmUG.txtEndDate.value,\'結束日期\');','必須選擇資料');
============================================================*/
function ChkEmpty(objName,strTitle,onAction,strRtnTxt) {
	var intCnt=0;
	var strReturnTxt = '';
	var objName = document.getElementsByName(objName);
	if(objName != null && objName.length > 0){		
		var strObjType = objName[0].type.toLowerCase();
		var isEmpty = true;
	
		switch(strObjType){
		case "checkbox":
		case "radio":
			isEmpty = true;
			for(intCnt=0;intCnt<objName.length;intCnt++){
				if(objName[intCnt].checked){
					isEmpty = false;
					break;
				}
			}
			
			if(isEmpty == true){
				if(strObjType == 'checkbox'){						
					strReturnTxt = strRtnTxt ? strRtnTxt : '請至少選擇一項';
				}
				else{
					strReturnTxt = strRtnTxt ? strRtnTxt : '必須選擇資料';
				}
				
				return strTitle + '　' + strReturnTxt +'!!\n'
			}
			break;
		default:	//text or select
			if(objName[0].value.replace(/^\s+|\s+$/g,'').replace(/<br \/>/g, '').replace(/<p>&nbsp;<\/p>/g, '')==''){
				if(strObjType == "select-one"){
					strReturnTxt = strRtnTxt ? strRtnTxt : '必須選擇資料';
				}
				else{
					strReturnTxt = strRtnTxt ? strRtnTxt : '必須輸入資料';
				}
				
				return strTitle + '　' + strReturnTxt +'!!\n'
			}
			else{
				if(onAction != '' && typeof(onAction)!='undefined')
				{
					var arrAction = onAction.split(";");
					for(intCnt=0;intCnt<arrAction.length-1;intCnt++)
					{
						if(eval(arrAction[intCnt])!=""){return eval(arrAction[intCnt]);}						
					}
				}
			}
		}
	}
	
	return "";
}

/*============================================================
 // 檢查資料格式
	ChkBlock('code','txtCatCode','編號')
============================================================*/
function ChkBlock(strType,objName,strTitle){
	var objName = document.getElementsByName(objName);
	var strMsg = '';
	
	if(objName != null && objName.length > 0){	
		var objReg = GetReg(strType);
		switch(strType){
			case "num":				//僅限數字0~9
				strMsg = '　格式錯誤(請輸入數字)';
				break;
			case "numdot":			//僅限數字0~9及小數點(無)
				strMsg = '　格式錯誤(請輸入數字或 \'.\' )';
				break;
			case "anum":			//僅限小寫英文或數字
				objName[0].value = objName[0].value.toLowerCase();
				strMsg = '　格式錯誤(請輸入小寫字母或數字)';					
				break;
			case "Anum":			//僅限大寫英文或數字(無)
				objName[0].value = objName[0].value.toUpperCase();
				strMsg = '　格式錯誤(請輸入大寫字母或數字)';					
				break;
			case "Aanum":			//僅限大寫英文或小寫英文或數字
				strMsg = '　格式錯誤(請輸入英文字母或數字)';					
				break;
			case "useracct":		//會員帳號（無）
				objName[0].value = objName[0].value.toLowerCase();
				strMsg = '　格式錯誤(請輸入英文字母或數字或_)';					
				break;
			case "code":			//編號
				strMsg = '　格式錯誤(請輸入英文字母或數字或\'_\'或\'-\')';
				break;
			case "car":				//車牌(無)
				objName[0].value = objName[0].value.toUpperCase();
				strMsg = '　格式錯誤(請輸入英文字母或數字或-)';
				break;
			case "Aa":				//僅限大寫英文或小寫英文
				objName[0].value = objName[0].value.toLowerCase();
				strMsg = '　格式錯誤(請輸入英文字母)';					
				break;
			case "email":
				strMsg = '　格式錯誤';
				break;
			case "tel":				//電話
				strMsg = '　格式錯誤(請輸入數字或\'#\'或\'(\'或\')\'或\'-\')';					
				break;
			case "ctel":			//Ctel
				strMsg = '　格式錯誤(請輸入數或\'-\')';
				break;
			default:
				break;
		}
		
		if(objReg.test(objName[0].value)==false){return(strTitle + strMsg + '!!\n');}	//如果為true,則回傳錯誤
	}
	
	return "";
}
