﻿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或checkbox,驗證它至少有一個被選中
function checkNotEmptyChecked(el,cName,objcnt){
   
   for (i=1;i<=objcnt;i++){
      if (document.getElementById(el+i).checked){
		 return true;
      }
   }
  alert(cName+" 尚未選取！");
  
  return false;
}// 對於多個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;
}

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(obj){	
	var check=new Array("'","\"","&","%","$","<>","=","<",">","\\","|","~","--");
	var errflag=0;
	var data1="";	
	for( var i=0; i<obj.length; i++){
		//略過欄位名稱含desc與url字元者
		if (((obj[i].type=="text")||(obj[i].type=="textarea"))&&(obj[i].name.indexOf('desc')==-1)&&(obj[i].name.indexOf('url')==-1)&&(obj[i].name.indexOf('cont')==-1)&&(obj[i].name.indexOf('mediaYTBconf')==-1)){
			data1 = obj[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("請勿輸入特殊字元！");
				obj[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;	
	}
} 

