﻿//檢查帳號格式
function checkStrId(obj,cName)
{
	var data1 = obj.value;
   	//re = /[a-z|\d]/g;

	if ( data1.match(/[^\w\d]/g)!=null)
	{

		alert(cName+"請輸入小寫英文字母或數字！");
		obj.focus();
		return false;
	}
	if ( data1.length<4)
	{

		alert(cName+"字元數不得小於四個！");
		obj.focus();
		return false;
	}
	return true;	
}

//檢查密碼格式
function checkStrPwd(obj,cName)
{
	var data1 = rmTrailingBlank(obj.value);
	if ( data1.length<6)
	{
		alert(cName+"字元數不得小於六個！");
		obj.focus();
		return false;
	}
	return true;	
}

//檢查密碼格式
function checkStrUserPwd(obj,cName)
{
	var data1 = rmTrailingBlank(obj.value);
	if ( data1.length<4)
	{
		alert(cName+"字元數不得小於四個！");
		obj.focus();
		return false;
	}

	return true;	
}

//檢查是否為英數字
function checkIsAlnum(obj,cName)
{
	var data1 = obj.value;

   	//re = /[a-z|\d]/g;

	if ( data1.match(/[^\w\d]/g)!=null)
	{
		alert(cName+"請輸入小寫英文字母或數字！");
		obj.focus();
		return false;
	}
	return true;	
}

//檢查字數
function checkCharLess(obj,cName,number)
{
	var data1 = obj.value;

	if ( data1.length<number)
	{

		alert(cName+"字元數不得小於"+number+"個！");
		obj.focus();
		return false;
	}
	return true;	
}

//檢查密碼是否相同
function checkPwdSame(obj1,obj2,cName)
{
	var data1 = rmTrailingBlank(obj1.value);
	var data2 = rmTrailingBlank(obj2.value);

	if ( data1!=data2 )
	{

		alert(cName+"不相同！");
		obj2.focus();
		return false;

	}
	return true;	
}

//替換逗號
function replaceBigComma(obj) 
{
	str = obj.value;
    if (str == "" || str == null) return str
	if(str.indexOf("，")!=-1)
	{
		str = str.replace(/，/g,",")
	}
	obj.value = str;

	return true;
} 

//移除多餘空白
function rmTrailingBlank(str) 
{

    if (str == "" || str == null) return str
    var lastBlank = str.lastIndexOf(' ')
    if (lastBlank == (str.length-1)) {
        var i
      	for (i=str.length-2; i>=0; i--) {  // It is blank at str.length-1
            if (str.charAt(i) != ' ')
                break
        }
        return str.substring(0, i+1)       // From 0 to ith chars are returned
    }
    else return str
} 

//清除值
function cleartext(obj)
{
	obj.value="";
}

//移除多餘空白
function trim(Source,Chr){
  Chr=Chr||" ";
  return Ltrim(Rtrim(Source,Chr),Chr);
}

//檢查字數不得超過
function checkStrLength(obj,cName,limit){

	var data1 = obj.value;
	if (data1.length>limit){
		alert(cName+"字數不得超過"+limit+"個字元(含空白)！");
		obj.focus();
		return false;
	}
	return true;
}

//檢查字數不得少於
function checkStrLength_Low(obj,cName,limit){
	var data1 = obj.value;
	if (data1.length<limit){
		alert(cName+"字數不得少於"+limit+"個字元！");
		obj.focus();
		return false;
	}
	return true;
}

//檢查值不為空
function checkNotEmpty(obj,cName){
	var data1 = obj.value;
	if (data1==""){
		alert(cName+" 未填寫！");
		if (obj.type=='text')
		obj.focus();
		return false;
	}
	return true;
}

//檢查兩者皆為空
function checkNotAllEmpty(obj1,obj2,cName){

	var data1 = obj1.value;
	var data2 = obj2.value;
	if (data1=="" && data2==""){
		alert(cName+"至少填寫1個！");
		if (obj1.type=='text')
		obj1.focus();
		return false;
	}
	return true;
}

//檢查不為第一項
function checkNotFirst(obj,cName){
	var data1 = obj.selectedIndex;
	if (data1==0){
		alert(cName+" 尚未選取！");
		obj.focus();
		return false;
	}
	return true;
}

//檢查不為最後項
function checkNotLast(obj,cName){
	var data1 = obj.selectedIndex;
	if (data1==(obj.options.length-1)){
		alert(cName+" 尚未選取！");
		obj.focus();
		return false;
	}
	return true;
}

/*
function checkCheckBox(str,cName,cont){
   var result = false;

   for (i=0;i<cont;i++){
      if (document.getElementById(str+i).checked){
		 return true;
      }
   }
  alert(cName+" 尚未選取！");
  
  return false;
}
*/
// 對於多個checkbox,驗證它至少有一個被選中
function checkCheckBox(obj,cName){

   for (i=0;i<obj.length;i++){
      if (obj[i].checked){
		 return true;
      }
   }

  alert(cName+" 尚未選取！");
  
  return false;
}

//checkbox,不可選超過n個
function checkCheckBoxThan(obj,cName,n){

   chk = 0;
   for (i=0;i<obj.length;i++){
      if (obj[i].checked){
		 chk++;
      }
   }
  if (chk>n)
  {
  	alert(cName+" 不可選超過 "+n+" 個!");
  	return false;
  }
 return true;
}


// 對於多個radio,驗證它至少有一個被選中
function checkCheckRadio(obj,cName){

   for (i=0;i<obj.length;i++){
      if (obj[i].checked){
		 return true;
      }
   }
  alert(cName+" 尚未選取！");
  
  return false;
}

//檢查正整數
function checkPlusNumber(obj,cName){
	var data1 = obj.value;
	n1=Number(data1);
	n2=Math.floor(n1);
	if (isNaN(n1)||(n1<0)||(n1!=n2)){
		alert(cName+"必需為正整數！");
		obj.select();
		return false;
	}
	return true;
}

//檢查正整數
function checkPlusFloat(obj,cName){
	var data1 = obj.value;
	n1=Number(data1);
	if (isNaN(n1)||(n1<0)){
		alert(cName+"必需為正數！");
		obj.select();
		return false;
	}
	return true;
}

//檢查Email格式
function checkEmail(obj,cName){

	var data1=obj.value;
	var len = data1.length;
	var errflag=0;
	if (len==0) {return true;}   //如果空白不檢查
	for(var i=0;i<len;i++){
		var c=data1.charAt(i);
		if(!((c>="A"&&c<="Z")||(c>="a"&&c<="z")||(c>="0"&&c<="9")||(c=="-")||(c==".")||(c=="@")||(c=="_"))){

			errflag=1;
		}
	}
	if((data1.indexOf("@")==-1)||(data1.indexOf("@")==0)||(data1.indexOf("@")==(len-1))){
		errflag=1;
	}else if((data1.indexOf("@")!=-1)&&(data1.substring(data1.indexOf("@")+1,len).indexOf("@")!=-1)){
		errflag=1;
	}else if((data1.indexOf(".")==-1)||(data1.indexOf(".")==0)||(data1.lastIndexOf(".")==(len-1))){
		errflag=1;
	}      
	if (errflag==1){
		alert(cName+" 格式不正確！");
		obj.select();
		return false;	
	}	
	return true;
}

//檢查特殊字元
function checkSpecialChar(allobj){	

	var check=new Array("'","\"","&","%","$","?","<>","=","<",">","\\","|","~","--");
	var errflag=0;
	var data1="";	

	for( var i=0; i<allobj.length; i++){
		//略過欄位名稱含desc與url字元者
		if (((allobj(i).type=="text")||(allobj(i).type=="textarea"))&&(allobj(i).name.indexOf('desc')==-1)&&(allobj(i).id.indexOf('desc')==-1)&&(allobj(i).name.indexOf('url')==-1)&&(allobj(i).name.indexOf('cont')==-1)&&(allobj(i).name.indexOf('mediaYTBconf')==-1)){
			data1 = allobj(i).value;
			if (data1.indexOf(check[0])!=-1
			|| data1.indexOf(check[1])!=-1
			|| data1.indexOf(check[2])!=-1
			|| data1.indexOf(check[3])!=-1
			|| data1.indexOf(check[4])!=-1
			|| data1.indexOf(check[5])!=-1
			|| data1.indexOf(check[6])!=-1
			|| data1.indexOf(check[7])!=-1
			|| data1.indexOf(check[8])!=-1
			|| data1.indexOf(check[9])!=-1
			|| data1.indexOf(check[10])!=-1
			|| data1.indexOf(check[11])!=-1
			|| data1.indexOf(check[12])!=-1
			|| data1.indexOf(check[13])!=-1
			|| data1.indexOf(check[14])!=-1
			){ errflag=1;}

			if (errflag==1){
				alert("請勿輸入特殊字元！");
				allobj(i).select();
				return false;
			}
		}
	} 
	return true;		
}

//*********************************************
//函數功能：判斷檢查身分証號碼格式是否正確
//參　　數：obj物件本身;cName中文欄位名稱
//傳 回 值：假如正確是傳回true;假如錯誤則傳回false
//*********************************************
function checkPersonalID(obj,cName){	
	var data1=obj.value;
	var intIdLength=data1.length;
	var strIdFirst=data1.charAt(0).toUpperCase();
	var strIdSecond=data1.charAt(1);
	var strIdNum=data1.substr(1,9);

	var errflag=0;

	if (intIdLength != 10){ 
		errflag=1; 
	}else if (strIdFirst<'A' || strIdFirst>'Z'){ 
		errflag=1; 
	}else if (strIdSecond != '1' && strIdSecond != '2'){ 
		errflag=1; 
	}				
	for (i=0;i<=8;i++){
		if (isNaN(strIdNum.substr(i,1))){ errflag=1; }
	}
	if (errflag==1){
		alert(cName+"請輸入正確格式！");
		obj.select();
		return false;	
	}	

	var intVerify1=("ABCDEFGHJKLMNPQRSTUVXYWZIO".indexOf(strIdFirst,0))+10;
	data1=""+intVerify1+strIdNum;
	var intVerify2=eval(data1.substr(0,1));	
	for (i=1;i<=9;i++){
		intVerify2=intVerify2+(eval(data1.substr(i,1))*(10-i));
	}
	intVerify2=intVerify2+eval(data1.substr(10,1));

	if (intVerify2%10==0){
		return true;
	}else{
		alert(cName+"請輸入正確格式！");
		obj.select();
		return false;	
	}
} 

