﻿var numString = '0123456789';
var validString = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz#-_\\.';

// 檢查身份証
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;
}
// 檢查統一編號
function CheckIisn(ss)
{
	var sIisn = ss.value;
	if(sIisn.length != 8)
		return false;
	var sValidate = '0123456789'
	var val = new Array(8);
	var wt = 0;

	for(i=0; i< sIisn.length ; i++)
	{
		if(sValidate.indexOf(sIisn.charAt(i)) == -1)
			return false;
		val[i] = parseInt(sIisn.charAt(i));
	}
	// 權數為1的部分直接相加
	wt = val[0] + val[2] + val[4] + val[7];

	//計算權數
	val[1] = (val[1] * 2) % 10 + Math.floor(val[1] * 2 / 10);
	val[3] = (val[3] * 2) % 10 + Math.floor(val[3] * 2 / 10);
	val[5] = (val[5] * 2) % 10 + Math.floor(val[5] * 2 / 10);
	val[6] = (val[6] * 4) % 10 + Math.floor(val[6] * 4 / 10);
	wt += val[1] + val[3] + val[5] + val[6]
	if(wt % 10 == 0)
	{
		return true;
	}else
	{
		//假如營利事業統一編號第7位為"7"
		if(sIisn.charAt(6) == '7')
		{
			wt = (wt - val[6]) + Math.floor(val[6] / 10)
			if(wt % 10 == 0)
				return true;
			else
				return false;
		}else
		{
			return false;
		}
	}
}	

// 檢查Email
function validEmail(sEmail)
{
	var email = Trim(sEmail);
	// alert(email);
	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 IsValidString(srcString , bSpace)
{
	bRet = new Boolean(true);
	var szBuf = new String(srcString.toLowerCase());
	var szBuf2 = new Array(szBuf.length)
	var szSearchString = new String();
	var i ;
	for(i = 0 ; i < srcString.length ; i++)
		szBuf2[i] = szBuf.charAt(i);
	if(bSpace == false)
		szSearchString = szValidString02;
	else
		szSearchString = szValidString03;
	for(i = 0 ; i < szBuf.length ; i++)
	{
		if(szSearchString.indexOf(szBuf2[i] , 0) == -1)
			return false;
	}
	return true;
}

function Trim(srcString)
{
	return srcString.replace(/^\s/ , '').replace(/\s*$/ , '')
}

// 檢查是否有選擇
function CheckSelect(objRdx , strErr)
{
	var i ;
	for(i = 0 ; i < objRdx.length ; i++)
	{
		if(objRdx[i].checked)
		{
			bRet = true 
			return true;
		}
	}
	if(strErr.length > 0)
	{
		alert(strErr);
		return false;
		// objRdx.focus();
	}
		return false;
}


// 檢查是否為空白
function CheckEmpty(objTxt , strErr)
{
	objTxt.value = objTxt.value.trim();
	if(objTxt.value == ""){
		alert("\n\n" + strErr + "\n\n");
		objTxt.focus();
		return false;
	}
	return true;
}


function CheckPWD(inText1,inText2,errMsg){
	if((inText1.value == "")||(inText1.value != inText2.value)){
		alert("\n\n" + errMsg + "\n\n");
		inText1.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 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;
}

