/*
必須在 HTML 中搭配
<script language="JavaScript" src="chkform.js"></script>

<script language="JavaScript">
function CheckForm(inForm){


	if(
	CheckText(inForm.RealName,"姓名沒填!!") &&
	CheckText(inForm.Age,"年齡沒填!!") &&
	CheckText(inForm.Address,"住址沒填!!") &&
	CheckText(inForm.Email,"Email沒填!!")
	){
		return true;
	}
	else{
		return false;
	}

// 檢查 Radio
//	CheckRadio(inRadio,errMsg)
// 檢查 Text
//	CheckText(inText,errMsg)
// 檢查 Text值
//	CheckTextValue(inText,minLength,maxLength,dataType,errMsg)
// 檢查 身分證字號
//	CheckID(s,errMsg)
// 檢查 Email 格式
//  CheckEmail(z,errMsg)
// 檢查 日期, 並指定到另外的欄位
//  CheckDate(y,m,d,n,errMsg)

}
</script>
<form method="post" action="" onSubmit="return CheckForm(this)">
*/

function CheckPWD(inText1,inText2,errMsg){
	if((inText1.value == "")||(inText1.value != inText2.value)){
		alert("\n\n" + errMsg + "\n\n");
		inText1.focus();
		return false;
	}
	return true;
}



function CheckText(inText,errMsg){
	inText.value = inText.value.trim();
	if(inText.value == ""){
		alert("\n\n" + errMsg + "\n\n");
		inText.focus();
		return false;
	}
	return true;
}


function CheckSelect(E,errMsg){
	if(E.options[0].selected)
	{
		alert("\n\n" + errMsg + "\n\n");
		E.focus();
		return false;
	}else{
		return true;
	}
}

function CheckDate(y,m,d,n,errMsg){
	if(! validDate(y.value,m.value,d.value)){
			alert("\n\n" + errMsg + "\n\n");
			y.focus();
			return false;
	}

	try{
		n.value = y.value + "/" + m.value + "/" + d.value;
	}catch(e){}

	return true;

}

function validDate(yyyy,mm,dd){
	try{
		var y = parseInt(yyyy, 10);
		var m = parseInt(mm, 10) -1;
		var d = parseInt(dd, 10);
		var myDate = new Date(y,m,d);
		if((myDate.getFullYear() == y)&&(myDate.getMonth() == m)&&(myDate.getDate() == d)){
			return true;
		}

	}catch(e){}

	return false;
}

function CheckEmail(z,errMsg){

	if(!validEmail(z.value)){
			alert("\n\n" + errMsg + "\n\n");
			z.focus();
			return false;
	}

	return true;
}

// Check valid email format
function validEmail(sEmail){
	if(sEmail.length < 2 ) return false;
	var sArray;

	// split the email into two part : name & domain
	sArray = sEmail.split("\@");
	if(sArray.length != 2) return false;
	var namePart = sArray[0];
	var domainPart = sArray[1];
	var s,dataString;

	// check if name part is valid, dataString is the valid alphabet of namePart,
	// you can redefine this string for future use.
	dataString = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789.-_";

	s = namePart.substring(0,1);
	if((s == "\.")||(s == "-")||(s == "_")) return false;

	for(var i=0;i<namePart.length;i++){
		s = namePart.substring(i,i+1);
		if(dataString.indexOf(s)<0) return false;
	}

	// split domain part with separator "."
	sArray = domainPart.split("\.");
	if(sArray.length < 2) return false;

	// check if domain part is valid, dataString is the valid alphabet of domainPart ,
	// you can redefine this string for future use.
	dataString = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";

	for(var l=0;l<sArray.length;l++){
		if(sArray[l].length == 0) return false;

		s = sArray[l].substring(0,1);
		if((s == "-")||(s == "_")) return false;

		for(var i=0;i<sArray[l].length;i++){
			s = sArray[l].substring(i,i+1);
			if(dataString.indexOf(s)<0) return false;
		}
	}

	return true;
}

function CheckTel(z,errMsg){
	if(!validTel(z.value)){
		alert("\n\n" + errMsg + "\n\n");
		z.focus();
		return false;
	}
	return true;
}
// 只接受數字、半形空格及-()#
function validTel(sTel) {
    var len = sTel.length;
    if (len < 8) return; // 至少要大於 7碼
    
    var dataString = "0123456789 -()#";
    for (var i = 0; i < len; i++) {
        var s = sTel.substring(i, i + 1);
        if(dataString.indexOf(s) < 0) return false;
    }
    return true;
}

function CheckMobile(z,errMsg){
	if(!validMobile(z.value)){
		alert("\n\n" + errMsg + "\n\n");
		z.focus();
		return false;
	}
	return true;
}
function validMobile(sMobiel) {
    if (sMobiel.length != 10 || sMobiel.indexOf("09") != 0) {
        return false;
    }
    var len = sMobiel.length;
    var dataString = "0123456789";
    for (var i = 0; i < len; i++) {
        var s = sMobiel.substring(i, i + 1);
        if(dataString.indexOf(s) < 0) return false;
    }
    return true;
}

/*
dataType :	0: Any character
			1: Must be a numeric, include integer and float
			2: Must be a letter, not include any 0-9
			3: Include only a-z, A-Z And 0-9
			4: mail format check , a-z, A-Z , 0-9 , @ and _ , - , .
*/
function CheckTextValue(inText,minLength,maxLength,dataType,errMsg){
	if((inText.value.length < minLength)||(inText.value.length > maxLength)){
		alert("\n\n" + errMsg + "\n\n");
		inText.focus();
		return false;
	}

	if((dataType == 1) && isNaN(inText.value)){
		alert("\n\n" + errMsg + "\n\n");
		inText.focus();
		return false;
	}

	if(dataType == 2){
		var s;
		var dataString = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
		for(var i=0;i<inText.value.length;i++){
			s = inText.value.substring(i,i+1);
			if(dataString.indexOf(s)<0){
				alert("\n\n" + errMsg + "\n\n");
				inText.focus();
				return false;
			}
		}
	}

	if(dataType == 3){
		var s;
		var dataString = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
		for(var i=0;i<inText.value.length;i++){
			s = inText.value.substring(i,i+1);
			if(dataString.indexOf(s)<0){
				alert("\n\n" + errMsg + "\n\n");
				inText.focus();
				return false;
			}
		}
	}

	if(dataType == 4){
		var s;
		var dataString = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789.-_@"
		if(inText.value.indexOf("\@")<1){
			alert("\n\n" + errMsg + "\n\n");
			inText.focus();
			return false;
		}else{
			for(var i=0;i<inText.value.length;i++){
				s = inText.value.substring(i,i+1);
				if(dataString.indexOf(s)<0){
					alert("\n\n" + errMsg + "\n\n");
					inText.focus();
					return false;
				}
			}
		}
	}


	if(dataType == 5){
		var s;
		var dataString = "0123456789"
		for(var i=0;i<inText.value.length;i++){
			s = inText.value.substring(i,i+1);
			if(dataString.indexOf(s)<0){
				alert("\n\n" + errMsg + "\n\n");
				inText.focus();
				return false;
			}
		}
	}


	return true;
}


function CheckRadio(inRadio,errMsg){
	for(var i=0;i<inRadio.length;i++){
		if(inRadio[i].checked){
			return true;
		}
	}
	alert("\n\n" + errMsg + "\n\n");
	return false;
}


function CheckID(ss,errMsg){

	var c, n, i;
	var t= "ABCDEFGHJKLMNPQRSTUVXYWZIO";
	s = ss.value;

	c= s.substring(0,1);
	c= t.indexOf(c.toUpperCase());
	if((s.length!= 10) || (c<0)){
		alert("\n\n" + errMsg + "\n\n");
		ss.focus();
		return false;
	}

	n= parseInt(c/10)+ c%10*9+ 1;
	for(i=1; i<9; i++) n= n+ parseInt(s.substring(i,i+1))* (9-i);
	n= (10- (n% 10))% 10;
	if(n!= parseInt(s.substring(9,10))){
		alert("\n\n" + errMsg + "\n\n");
		ss.focus();
		return false;
	}

	return true;
}

// 網路上抓的 trim, ltrim, rtrim
String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g,"");
}
String.prototype.ltrim = function() {
	return this.replace(/^\s+/,"");
}
String.prototype.rtrim = function() {
	return this.replace(/\s+$/,"");
}

function getByteLeng(word)
{
  var count = 0;
  word = word.replace(/\r\n|\r|\n/g, "");
  for (idx=0; idx < word.length; idx++)
  {
    var c = word.charCodeAt(idx);
    if (!(c >= 32 && c <= 126))
      count +=2;
    else
      count++;
  }
  return count;
}

function chkLengthByByte(word, lengLimit)
{
  var count = 0;
  var partialStr = "";
  word = word.replace(/\r\n|\r|\n/g, "");
  for (idx=0; idx < word.length; idx++)
  {
    var c = word.charCodeAt(idx);
    if (!(c >= 32 && c <= 126)) {
      count +=2;
    } else {
      count++;
    }
    if (count > lengLimit)
      return false;
    partialStr += word.substr(idx, 1);
  }
  return true;
}

