//檢查帳號/密碼欄位是否空白

String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g, ""); };

function blankckh_memberRegister(obj){
	if (!obj.id.value.trim()){
		alert('請輸入要註冊的帳號 (E-Mail)');
		obj.id.focus();
		return false;
	}
	if (!CheckMail(obj.id)){
		alert('註冊帳號  (E-Mail) 格式錯誤');
		obj.id.focus();
		return false;
	}
	if (!passckh(obj.pwd, obj.repwd)) {
		return false;
	}
	return true;
}

//檢查密碼欄位

function passckh(obj, obj1){	
	
	if (obj.value.trim() == "" && obj1.value.trim() == ""){
		return true;
	}
	
	if (obj.value.length < 6 || obj.value.length > 16){
		alert('登入密碼欄請輸入 6~16 位英數字');
		obj.focus();
		return false;
	}
	if (obj1.value.length < 6 || obj1.value.length > 16){
		alert('確認密碼欄請輸入 6~16 位英數字');
		obj.focus();
		return false;
	}	
	if (obj.value != obj1.value){
		alert('兩次密碼不一致，請重新輸入');
		obj.value='';
		obj1.value='';
		obj.focus();
		return false;
	}
	return true;
}

//檢查欄位是否空白

function blankckh_all(obj, txt){
	if (!obj.value.trim()){
		alert(txt+'不能空白');
		obj.focus();
		return false;
	}
	return true;
}

//檢查身份字號是否空白與正確

function checkROCID(obj){
  var idStr = obj.value.trim();
  if (!idStr){
		alert('身份字號不能空白');
		obj.focus();
		return false;
  }
  
  // 依照字母的編號排列，存入陣列備用。
  var letters = 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 multiply = new Array(1, 9, 8, 7, 6, 5,
                           4, 3, 2, 1);
  var nums = new Array(2);
  var firstChar;
  var firstNum;
  var lastNum;
  var total = 0;
  // 撰寫「正規表達式」。第一個字為英文字母，
  // 第二個字為1或2，後面跟著8個數字，不分大小寫。
  var regExpID=/^[a-z](1|2)\d{8}$/i;
  // 使用「正規表達式」檢驗格式
  if (idStr.search(regExpID)==-1) {
    // 基本格式錯誤
	alert("請仔細填寫身份字號");
   return false;
  } else {
	// 取出第一個字元和最後一個數字。
	firstChar = idStr.charAt(0).toUpperCase();
	lastNum = idStr.charAt(9);
  }
  // 找出第一個字母對應的數字，並轉換成兩位數數字。
  for (var i=0; i<26; i++) {
	if (firstChar == letters[i]) {
	  firstNum = i + 10;
	  nums[0] = Math.floor(firstNum / 10);
	  nums[1] = firstNum - (nums[0] * 10);
	  break;
	}
  }
  // 執行加總計算
  for(var i=0; i<multiply.length; i++){
    if (i<2) {
      total += nums[i] * multiply[i];
    } else {
      total += parseInt(idStr.charAt(i-1)) *
               multiply[i];
    }
  }
  // 和最後一個數字比對
  if ((10 - (total % 10))!= lastNum) {
	alert("身份字號寫錯了！");
	return false;
  }
  //規則一餘數為零，且檢查碼需為零
  if (lastNum == 0 && (total % 10) != lastNum ){
	alert("身份字號寫錯了！");
	return false;
  }
  //規則二餘數與檢查碼需相符
  if (lastNum != 0 && (10 - (total % 10))!= lastNum) {
	alert("身份字號寫錯了！");
	return false;
  } 
  
  return true;
}

function checkCORPID(obj) {
// returns true if the string is a phone number formatted as...
// 只允許 10 碼數字 0~9 

	var num = obj.value.trim();
	if (num=="") {
		alert('公司統編不能空白');
		obj.focus();
		return false;
	}
	else {
		var Letters = "0123456789";
		if (num.length != 8) {
			alert('公司統編必須為 8 碼數字');
			obj.focus();
			return false;
		}
		for (i=0; i< num.length; i++) {
			var CheckChar = num.charAt(i);
			if (Letters.indexOf(CheckChar) == -1) {
				alert('公司統編格式錯誤');
				obj.focus();
				return false;
			}
		}

	}
	return true;
}

function checkCell(obj, txt) {
// returns true if the string is a phone number formatted as...
// 只允許 10 碼數字 0~9 

	var num = obj.value.trim();
	if (num=="") {
		alert(txt+'不能空白');
		obj.focus();
		return false;
	}
	else {
		var Letters = "0123456789";
		if (num.length != 10) {
			alert(txt+'必須為 10 碼數字');
			obj.focus();
			return false;
		}
		for (i=0; i< num.length; i++) {
			var CheckChar = num.charAt(i);
			if (Letters.indexOf(CheckChar) == -1) {
				alert(txt+'格式錯誤');
				obj.focus();
				return false;
			}
		}

	}
	return true;
}

function checkPhone(obj, txt) {
// returns true if the string is a phone number formatted as...
// 只允許空白 或 數字 0~9  及字元 (, ), +, -

	var tel = obj.value.trim();
	if (tel != "") {
		var Letters = "0123456789()+-";
		for (i=0; i< tel.length; i++) {
			var CheckChar = tel.charAt(i);
			if (Letters.indexOf(CheckChar) == -1) {
				alert(txt+'號碼格式錯誤');
				obj.focus();
				return false;
			}
		}
	}
	return true;
}

function checkZip(obj, txt) {
// returns true if the string is a number formatted as...
// 只允許數字 0~9

	var num = obj.value.trim();
	if (num=="") {
		alert(txt+'不能空白');
		obj.focus();
		return false;
	}
	else {
		var Letters = "0123456789";
		for (i=0; i< num.length; i++) {
			var CheckChar = num.charAt(i);
			if (Letters.indexOf(CheckChar) == -1) {
				alert(txt+'格式錯誤');
				obj.focus();
				return false;
			}
		}
	}
	return true;
}

//Email 格式檢查

function checkEmailFormat(objMail) {
  var email = objMail.value.trim();
  var rege = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9])+$/;
  if (email.length == 0 || rege.exec(email) == null) {
    return false;
  }
  return true;
}

function checkEmail(obj){
  if (!obj.value.trim())
  {
    alert('E-Mail 不能空白');
    obj.focus();
    return false;
  }
  if (!checkEmailFormat(obj))
  {
    alert('E-Mail 格式錯誤');
    obj.focus();
    return false;
  }
  return true;
}
