function isInteger(obj){
	var newValue = obj.value
	var newLength = newValue.length
	for ( var i = 0; i != newLength ; i ++) {
		aChar = newValue.substring(i,i+1)
		if (aChar < "0" || aChar > "9") {
			return false
		}
	}
	return true
}

function isNumeric(obj){
	var newValue = obj.value
	var newLength = newValue.length
	var extraChars=".- "
	for ( var i = 0; i != newLength ; i ++) {
		aChar = newValue.substring(i,i+1)
		search = extraChars.indexOf(aChar)
		if (search == -1 && (aChar < "0" || aChar > "9" ) ) {
			return false
		}
	}
	return true
}

function isEmpty(obj){
	if (obj.value == ''){
		return true
	}
	return false
}

function isEmail(textobj) {
	var newValue = textobj.value
	var newLength = newValue.length
	var extraChars=".-@_"
	for ( var i = 0; i != newLength ; i ++) {
		aChar = newValue.substring(i,i+1)
		aChar= aChar.toUpperCase()
		search = extraChars.indexOf(aChar)
		if (search == -1 &&  (aChar < "A" || aChar > "Z") ) {
			return false
		}
	}
	return true
}

function isAlphabet(obj){
	return true
}

function isFileFormat(obj,Format){
var FilePath = obj.value.toUpperCase()
var format = Format.toUpperCase()
var Ext = ''
if (FilePath.length > 0){
	var startpoint = FilePath.lastIndexOf('.') + 1
	var endpoint = FilePath.length
	Ext = FilePath.substring(startpoint,endpoint)
}
if (Ext != format && Ext !='') {
			return false
}

return true
}

var local=new Array(34)   //建立身分證第一碼的識別庫
local[10]='A'
local[11]='B'
local[12]='C'
local[13]='D'
local[14]='E'
local[15]='F'
local[16]='G'
local[17]='H'
local[18]='J'
local[19]='K'
local[20]='L'
local[21]='M'
local[22]='N'
local[23]='P'
local[24]='Q'
local[25]='R'
local[26]='S'
local[27]='T'
local[28]='U'
local[29]='V'
local[32]='W'
local[30]='X'
local[31]='Y'
local[33]='Z'

function checkid(obj){   //身分證檢測主函式
  var err = 0
  var id = obj.value
  id=id.toUpperCase()   //先把所有輸入的英文部分轉成大寫字母
  if(lengtherr(id)){   //做輸入長度的檢測
    //alert('輸入的長度有誤!')
	err = 1
  }else if(firstlettererr(id)){   //做第一碼英文字母是否輸入正確的檢測
    //alert('身分證第一碼並無此英文字母:'+id.substring(0,1))
	err = 1
  }else if(numerr(id)){   //做後九碼為是否數字的檢測
    //alert('身分證後九碼應為數字!')
	err = 1
  }else if(checkerr(id)){   //做檢查碼是否正確的檢測
    //alert('身分證檢查碼有誤!')
	err = 1
  }
  if (err != 0){
  	 return false
  } else {
  	return true}
}
function lengtherr(id){   //輸入長度檢測函式
  if(id.length<10)   //如果輸入的長度小於10個字元
    return 1   //就回覆錯誤為true的發生狀態
  else    //否則就回覆錯誤為false的發生狀態
    return 0
}
function firstlettererr(id){   //第一碼字元正確性檢測
  var fl=id.substring(0,1)   //取得第一碼字元值給fl變數
  var haserr=1   //建立錯誤發生旗標,預設是有錯誤
  for(i=10;i<=33;i++){   //從第一碼的識別庫中找尋是否有該字母
     if(local[i]!=fl)   //如果沒有就往下一個找
       continue
     else{   
   //如果有的話就把錯誤碼設為0表示沒有錯誤發生,因為第一碼已在識別庫中了
       haserr=0
       break
     }
  }
  if(haserr==1)   //如果錯誤發生旗標為1表示第一個字元並未出現在識別庫中
    return 1   //就回覆錯誤為true
  else
    return 0
}
function numerr(id){   //後九碼數字檢測函式
  var haserr=0   //建立錯誤發生旗標,預設是沒有錯誤的
  for(i=1;i<=9;i++){   //從第1個數字到第9個數字開始檢測
     if(parseInt(id.substring(i,i+1))>0 || id.substring(i,i+1)=='0')   //如果取得的字元為數字
       continue   //就往下一個去檢測
     else{   //若是發現有非數字的字元
       haserr=1   //就把錯誤旗標設為1的發生狀態
       break}   //並中止迴圈的執行
  }
  if(haserr==1)   //如果發生了錯誤
    return 1   //就回覆錯誤為true
  else
    return 0
}
function checkerr(id){   //檢查碼澰測函式
  var se=new Array(10)   //建立數字陣列
  var we=0   //建立權數計算總值變數
  var checkcode=0   //建立識別碼變數
  for(i=10;i<=33;i++){   //搜尋第一碼的英文字母在第機順位
     if(local[i]==id.substring(0,1)){   //如果找到弓就把該順位的第一碼給第一數字陣列
       se[0]=parseInt((i+'0').substring(0,1))
       se[1]=parseInt((i+'0').substring(1,2))   //把第二碼給第二數字陣列
       break   //並中止迴圈的執行
       }  
     }
  for(i=1;i<=9;i++){   //把身份證的後九個數字依次姶接下來的數字陣列項
     se[i+1]=parseInt(id.substring(i,i+1))
  }
  for(i=0;i<=10;i++){   //計算權數總值
     if(i==0)   //如果是第一個陣列值
       we=we+se[i]   //就把值直接加入(因為所乘的權數為1)
     else
       we=we+(se[i]*(10-i))   //否則就乘以權數
  } 
  checkcode=((10-mod(we,10))+'0').substring(0,1)   //取得檢查碼
  if(checkcode!=id.substring(9,10))   //檢視檢查碼是否正確
    return 1
  else
    return 0
  
}
function mod(a,b){   //取餘數之函數
  var r   //建立商的變數
  r=Math.round(a/b)   //以四捨五入的方式取得a/b的商,所以商可能會多1
  if((b*r)>a)   //如果多了1就把它減掉
    r-=1
  return (a-(b*r))   //傳回餘數
}

function isDate(objyear,objmonth,objday){
	var year = parseInt(objyear.value)
	var month = parseInt(objmonth.value)
	var day = parseInt(objday.value)
	var smonth = false
	var leapyear = false
	
	if (month == "4" || month == "6"||month == "9"||month == "11") {
		smonth = true
	}

	if (smonth == true && day > 30){
		return false
	} else if (day > 31) {
		return false
	} 
		
	if (year % 4 == 0 && year % 400 == 0 && year % 100 == 0) {
		leapyear = true
	} else if (year % 4 == 0 && year % 100 != 0) {
		leapyear = true
	} 

	if ( month == 2 ) {
		if ( leapyear == true && day > 29) {
			return false 
		} else if (leapyear == false && day > 28){
			return false 
		}
	}					

	return true
}


function isDate2(obj){

	if (obj.value.indexOf('/') == -1 ) {
		return false
	}
	var tmparr = obj.value.split('/')
	
	for (i = 0 ; i <tmparr.length ; i++){
		if (!(tmparr[i] > 0)) {
			return false
		}
	}
	
	var year = parseInt(tmparr[0])
	var month = parseInt(tmparr[1])
	var day = parseInt(tmparr[2])

	var smonth = false
	var leapyear = false
	
	if (month == "4" || month == "6"||month == "9"||month == "11") {
		smonth = true
	}

	if (smonth == true && day > 30){
		return false
	} else if (day > 31) {
		return false
	} 
		
	if (year % 4 == 0 && year % 400 == 0 && year % 100 == 0) {
		leapyear = true
	} else if (year % 4 == 0 && year % 100 != 0) {
		leapyear = true
	} 

	if ( month == 2 ) {
		if ( leapyear == true && day > 29) {
			return false 
		} else if (leapyear == false && day > 28){
			return false 
		}
	}					

	return true
}

function checktextarealength(textobj,len){
	if (textobj != null){
		if (textobj.value.length > len) {
			textobj.value = textobj.value.substring(0,len) 
		}
	}
}

