//GetLengthFromText--傳回該Text值的長度
//objText：該Text的物件
//ttCounter：傳回值，傳回字元數
function GetLengthFromText(objText) {
	var ttCounter = 0;
	for(var iCount = 0; iCount < objText.value.length; iCount ++) {
		if (objText.value.charCodeAt(iCount) >= 255){
			ttCounter += 1;
		}
	}
	ttCounter += objText.value.length;
	return ttCounter;
}

//GetLengthFromStr--傳回該string值的長度
//str_name：該string的名稱
//ttCounter：傳回值，傳回字元數
function GetLengthFromStr(str_name) {
	var ttCounter = 0;

	for(var iCount = 0; iCount < str_name.length; iCount ++) {
		if (str_name.charCodeAt(iCount) >= 255){
			ttCounter += 1;
		}
	}

	ttCounter += str_name.length;
	return ttCounter;
}

//CheckSymbol--傳回該Text有無該Symbol
//objText：該Text的物件
//strSymbol：該Symbol的值，ex:"+"
//blSymbol：傳回值，為一布林值
function CheckSymbol(objText,strSymbol){
	var blSymbol = false;
	if (objText.value.indexOf(strSymbol) != -1){
		blSymbol = true;
	}
	return blSymbol;
}

//CheckSymbolAt1--傳回該Text第一位有無該Symbol
//objText：該Text的物件
//strSymbol：該Symbol的值，ex:"+"
//blSymbol：傳回值，為一布林值
function CheckSymbolAt1(objText,strSymbol){
	var blSymbol = false;
	if (objText.value.indexOf(strSymbol) == 0){
		blSymbol = true;
	}
	return blSymbol;
}

//CheckSymbols--傳回該Text有無該串Symbol的任何一個
//objText：該Text的物件
//strSymbol：該Symbol的值，ex:"+-*/"
//blSymbol：傳回值，為一布林值
function CheckSymbols(objText,strSymbol){
	var blSymbol = false;
	for (var i=0; i<strSymbol.length; i++)	{
		if (CheckSymbol(objText,strSymbol.charAt(i))){
			blSymbol = true;
			break;
		}
	}
	return blSymbol;
}

//CheckSymbolsAt1--傳回該Text第一位有無該串Symbol的任何一個
//objText：該Text的物件
//strSymbol：該Symbol的值，ex:"+-*/"
//blSymbol：傳回值，為一布林值
function CheckSymbolsAt1(objText,strSymbol){
	var blSymbol = false;
	for (var i=0; i<strSymbol.length; i++)	{
		if (CheckSymbolAt1(objText,strSymbol.charAt(i))){
			blSymbol = true;
			break;
		}
	}
	return blSymbol;
}

//IsNumber--傳回該text是否為數值，且能判斷是整數或浮點數
//objText：該Text的物件
//numType：int代表整數，float代表浮點數
//checkNum：傳回值，為一布林值
function IsNumber(objText,numType){
	var checkNum = false;
	if(!IsEmpty(objText)){
		if(!isNaN(objText.value)){
			if(numType == "int"){
				if(objText.value.indexOf(".") == -1){
					checkNum = true;
				}
			}
			if(numType == "float"){
				if(objText.value.indexOf(".") != -1){
					checkNum = true;
				}
			}
		}
	}
	return checkNum;
}


//CheckEmail--傳回該Text是否為有效的Email
//objText：該Text的物件
function CheckEmail(objText) {
var emailStr = objText.value;

var emailPat=/^(.+)@(.+)$/;
var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
var validChars="\[^\\s" + specialChars + "\]";
var quotedUser="(\"[^\"]*\")";
var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
var atom=validChars + '+';
var word="(" + atom + "|" + quotedUser + ")";
var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
var matchArray=emailStr.match(emailPat);
if (matchArray==null) {
//	return ("這個 Email address 不正確\n請重試一次");
//	return ("這個 Email address 不正確\n請重試一次");
	return false;
}
var user=matchArray[1];
var domain=matchArray[2];

if (user.match(userPat)==null) {
//	return ("username 似乎不對!\n請重試一次");
//	return ("這個 Email address 不正確\n請重試一次");

	return false;
}

var IPArray=domain.match(ipDomainPat);
if (IPArray!=null) {
	// this is an IP address
	for (var i=1;i<=4;i++) {
		if (IPArray[i]>255) {
//			return ("IP address 不對!\n請重試一次");
//			return ("這個 Email address 不正確\n請重試一次");
			return false;

		}
	}
	//return "";
}

var domainArray=domain.match(domainPat);
if (domainArray==null) {
//	return ("domain 名稱不對!\n請重試一次");
//	return ("這個 Email address 不正確\n請重試一次");
	return false;
}
var atomPat=new RegExp(atom,"g");
var domArr=domain.match(atomPat);
var len=domArr.length;
if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>3) {
	// the address must end in a two letter or three letter word.
//	return ("Email address 結尾應該是一個三個字母的 domain 名稱, 或是二個字母的國家名稱\n請重試一次");
//	return ("這個 Email address 不正確\n請重試一次");
	return false;

}

// Make sure there's a host name preceding the domain.
if (len<2) {
//	var errStr="Email address 缺少 hostname!\n請重試一次";
//	var errStr = "這個 Email address 不正確\n請重試一次";
//	return (errStr);
	return false;

}
// If we've gotten this far, everything's valid!
//return "";
	return true;
}

//CheckUniNumber--傳回該Text是否為有效的統一編號
//objText：該Text的物件
//uninumCheck：傳回值，為一布林值
function CheckUniNumber(objText) {
	var uninumCheck = true;
	if (!IsNumber(objText,"int")){
		uninumCheck = false;
	}
	else{
		var strUniNo = objText.value;
		var B = new Array(8), D = new Array(8);

		for (var i = 0; i <= strUniNo.length - 1; i ++) {
			if ((i == 0) || (i == 2) || (i == 4) || (i == 7))
				B[i] = parseInt(strUniNo.substr(i, 1))
			else if ((i == 1) || (i == 3) || (i == 5))
				B[i] = parseInt(strUniNo.substr(i, 1)) * 2
			else B[i] = parseInt(strUniNo.substr(i, 1)) * 4;

			D[i] = Math.floor(B[i] / 10) + (B[i] % 10);
		}

		if (((D[0]+D[1]+D[2]+D[3]+D[4]+D[5]+D[6]+D[7]) % 10) == 0)
			uninumCheck = true
		else if (((D[0]+D[1]+D[2]+D[3]+D[4]+D[5]+ 1 +D[7]) % 10) == 0)
			uninumCheck = true
		else uninumCheck = false;
	}
	return uninumCheck;
}

//CheckID--傳回該Text是否為有效的身份證字號
//objText：該Text的物件
function CheckID(objText){

var letter=new Array(34) //第一碼字母的識別庫
letter[10]="A"
letter[11]="B"
letter[12]="C"
letter[13]="D"
letter[14]="E"
letter[15]="F"
letter[16]="G"
letter[17]="H"
letter[18]="J"
letter[19]="K"
letter[20]="L"
letter[21]="M"
letter[22]="N"
letter[23]="P"
letter[24]="Q"
letter[25]="R"
letter[26]="S"
letter[27]="T"
letter[28]="U"
letter[29]="V"
letter[30]="X"
letter[31]="Y"
letter[32]="W"
letter[33]="Z"


var idStr = objText.value.toUpperCase();

	if(idStr=="" || GetLengthFromStr(idStr) != 10){
		return false;
	}
	else{
	
    	var idChar = idStr.charAt(0);
		if( !((idChar >='A' && idChar <= 'Z') && (idChar !='I') && (idChar !='O')) ){
			return false;
		}
		for(var i=1;i<idStr.length;i++){
			var idOtherChar = idStr.charAt(i);
			//alert(idOtherChar);
			if(!(idOtherChar >='0' && idOtherChar <= '9')){
				return false;
				break;
			}
		}
		
		var num=new Array(10);              //11個數字的陣列
		var sum=0;                          //放乘好加總的值
		for (i=10;i<=33;i++)
        if(letter[i]==idStr.substring(0,1)){
			num[0]=Math.floor(eval(i/10));
			num[1]=eval(i%10);
        }
       
        for (i=1;i<=9;i++){
			num[i+1]=parseInt(idStr.substring(i,i+1));
        }                                                  //80
        for (i=0;i<=10;i++){
			if(i==0){
				sum=num[i];
			}
			else{
				sum=eval(sum+(num[i]*(10-i)));
			}
        }
         
		if (((parseInt(idStr.substring(9,10)))==(eval(10-(sum%10)))) || (((parseInt(idStr.substring(9,10)))==0) && (eval(10-(sum%10))))){
        
        }
        else{
			//alert("1111")
			return false;
        }
	}
	return true;
}

//IsEmpty--傳回該Text的值是否為空值(或空白)
//objText：該Text的物件
function IsEmpty(objText){
	var strEmpty = objText.value;
	if(strEmpty.length == 0){
		return true; 
	}
	else{
		var j=0;
		for(var i=0; i<strEmpty.length; i++){
			if(strEmpty.charAt(i) == " "){
				j=j+1;
			}
		}
		if(strEmpty.length == j){
			return true; 
		}
	}
	return false; 
}

//GetBrowser--傳回使用者的瀏覽器類型，版本
//browserStr：傳回值，為一字串，(類型+","+版本)(用","分隔)
function GetBrowser(){
	var browserName = navigator.appName;
	var browserVersion = navigator.appVersion;
	var browserStr;
	
	if(browserName == "Microsoft Internet Explorer"){
		browserName="IE";
		var browserTypes = browserVersion.split(";");
		var browserType = browserTypes[1];
		browserVersion = browserType.substring(5);
	}
	
	if(browserName == "Netscape"){
		browserName="NS";
		browserVersion=parseFloat(browserVersion);
	}
		
	
	browserStr = browserName + ',' + browserVersion;
	return browserStr;
	
}

//IsOpenCookie--傳回使用者是否有打開cookie
//checkCookie：傳回值，為一布林值
function IsOpenCookie(){
	var checkCookie = navigator.cookieEnabled;
	//alert(checkCookie);
	return checkCookie;
}

//setHPage--設為首頁
//obj：傳入的物件
function setHPage(obj){
	var hUrl = window.location;
	//alert(jj);
	obj.style.behavior='url(#default#homepage)';
	obj.setHomePage(hUrl);
}

function getCookie(CookieName) {
  var sCookieName = CookieName + "=";
  var dc = document.cookie;
  //alert(dc)
  var begin, end;
	//alert(cookiename);
  if (dc.length > 0) {
      begin = dc.indexOf(sCookieName);
      if (begin != -1) {
          begin += sCookieName.length;
          end = dc.indexOf(";", begin);
          if (end == -1) {
              end = dc.length;
          }
          return unescape(dc.substring(begin, end));
      } 
  }
  return '';
}

function setCookie(CookieName, CookieValue, CookieExpire, CookieDomain, CookiePath){
	//CookieExpire:單位是天，幾天後失效
	var sCookieName 	= CookieName;
	var sCookieValue 	= CookieValue;
	var sCookieExpire = CookieExpire;
	var sCookieDomain = CookieDomain;
	var sCookiePath 	= CookiePath;
	var expDay, setDay
	if(sCookieExpire!=''){
		sCookieExpire = eval(sCookieExpire);
		setDay = new Date();
		setDay.setTime(setDay.getTime()+(sCookieExpire*1000*60*60*24));
		expDay = setDay.toGMTString();
	}
	if(sCookiePath==''){
		sCookiePath = '/';
	}
  document.cookie = sCookieName + "=" + escape (sCookieValue) +
    ((sCookieExpire == '') ? "" : ("; expires=" + expDay)) +
    ((sCookiePath == '') ? "" : ("; path=" + sCookiePath)) +
    ((sCookieDomain == '') ? "" : ("; domain=" + sCookieDomain)) ;
}

// Function to delete a cookie
function deleteCookies(name) {
    document.cookie = name + "=; expires=Thu, 01-Jan-70 00:00:01 GMT" +  
        "; path=/";
}
