//-----------------------------------------------------------------------------------------
//判斷所輸入的日期是否正確，正確則傳回YYYYMMDD/YYMMDD格式，錯誤傳回空白 
//-----------------------------------------------------------------------------------------  
function conv_date(strDATE, Kind)
{
  //Date Check and Convert
  //strDATE:國曆日期 or 西元日期
  //Kind: 1.轉成國曆 2.轉成西曆
  var strDATE1
  var L 
  var K
  var Datestring
  
  if(strDATE.length<= 5){return "";}
   
  L = strDATE.indexOf("/")
  K = strDATE.indexOf("/",L + 1)

  if(K > L) 
  {
    if(L > 4)
    {
      strDATE1 = left(strDATE, L - 1) + "/" + right("0" + strDATE.substring( L , K - 2), 2) + "/" + right("0" + strDATE.substring(K ,strDATE.length), 2);
    }
    else
    {
      strDATE1 = (parseInt(left(strDATE, L - 1),10) + 1911) + "/" + right("0" + strDATE.substring(L , K - 2), 2) + "/" + right("0" + strDATE.substring(K ,strDATE.length), 2);
    }
    if(isdate(strDATE1) == false){return "";}
  }
  else
  {  
    if (strDATE.length == 6)
    {
      strDATE1 = (parseInt(left(strDATE, 2),10) + 1911) + "/" + strDATE.substring(2, 4) + "/" + right(strDATE, 2);
    }
    else 
    {
      if (strDATE.length == 7)
      {
        strDATE1 = parseInt(left(strDATE, 3),10) + 1911 + "/" + strDATE.substring(3, 5) + "/" + right(strDATE, 2);
      }
      else
      {
        strDATE1 = left(strDATE, 4) + "/" +strDATE.substring(4, 6) + "/" + right(strDATE, 2);
      }
    }
    if(isdate(strDATE1) == false){return "";}
  } 
  strDATE1 = strDATE1.replace("/", "");
  strDATE1 = strDATE1.replace("/", "");
  //--Input 國曆日期
  if(strDATE1.length== 6)
  {
    if(Kind == 1)
    {
      Datestring = left(strDATE1, 2) + "/" + strDATE1.substring(2, 4) + "/" + right(strDATE1, 2)
      return Datestring;
    }
    else
    {
      Datestring = (parseInt(left(strDATE1, 2),10) + 1911) + "/" + strDATE1.substring( 2, 4) + "/" + right(strDATE1, 2)
      return Datestring;
    }
    
  }
  else
  { 
    if (strDATE1.length == 7)
    {
      if(Kind == 1)
      {
        Datestring = left(strDATE1, 3) + "/" + strDATE1.substring(3, 5) & "/" + right(strDATE1, 2);
        return Datestring;
      }
      else
      {
        Datestring = (parseInt(left(strDATE1, 3),10) + 1911) + "/" & strDATE1.substring( 3, 5) + "/" + right(strDATE1, 2);
        return Datestring;
      }
    }
    else
    { 
      if(strDATE1.length == 8) 
      {
        //--Input 西曆日期
        if(Kind == 1)
        {
          Datestring = (parseInt(left(strDATE1, 4),10) - 1911 )+ "/" + strDATE1.substring(4, 6) + "/" + right(strDATE1, 2);
          return Datestring;
        } 
        else
        {
          Datestring = left(strDATE1, 4) + "/" + strDATE1.substring(4, 6) + "/" + right(strDATE1, 2);
          return Datestring;
        }
      }
    }
  }
}

//-----------------------------------------------------------------------------------------
//判斷所輸入的時間是否正確，正確則傳回HH:MM格式，錯誤傳回空白 
//-----------------------------------------------------------------------------------------  
function time_check(strTime)
{
	var strValue;
	var intMM;
  var intHH;
  var str;

	intMM = 0;
	intHH = 0;
	strValue = strTime.replace(":","");
	
	for(var i=1;i<=4;i++){if(strValue.indexOf(" ")>0){strValue = strValue.replace(" ","");}}
		
	if(strValue.length != 4 || strValue == "") {return "";}
	
	var strHH=left(strValue,2);
	var strMM=right(strValue,2);
	
	intHH = parseInt(strHH,10)
	intMM = parseInt(strMM,10)
	
	//***If intHH > 24 Or intMM > 60 Then
	if(intHH > 23 || intMM > 60 || isNaN(intHH) || isNaN(intMM)){return "";}
	else
	{
		str = right("0"+intHH,2) + ":" + right("0"+intMM,2);
		return str;
	}
}

function left(str, n){
	if (n <= 0)
	    return "";
	else if (n > String(str).length)
	    return str;
	else
	    return String(str).substring(0,n);
}

function right(str, n){
    if (n <= 0)
       return "";
    else if (n > String(str).length)
       return str;
    else {
       var iLen = String(str).length;
       return String(str).substring(iLen, iLen - n);
    }
}

function isdate(dateStr) {
  var datePat = /^(\d{4})(\/|-)(\d{1,2})(\/|-)(\d{1,2})$/;
  var matchArray = dateStr.match(datePat); // is the format ok?
  
  if (matchArray == null) {
    //alert("Please enter date as either mm/dd/yyyy or mm-dd-yyyy.");
    return false;
  }
  
  month = matchArray[3]; // p@rse date into variables
  day = matchArray[5];
  year = matchArray[1];
  
  if (month < 1 || month > 12) { // check month range
    //alert("Month must be between 1 and 12.");
    return false;
  }
  
  if (day < 1 || day > 31) {
    //alert("Day must be between 1 and 31.");
    return false;
  }
  
  if ((month==4 || month==6 || month==9 || month==11) && day==31) {
    //alert("Month "+month+" doesn`t have 31 days!")
    return false;
  }
  
  if (month == 2) { // check for february 29th
    var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
    if (day > 29 || (day==29 && !isleap)) {
      alert("February " + year + " doesn`t have " + day + " days!");
      return false;
    }
  }
  return true; // date is valid
}

//*----------onlyNum----------*//
function OnlyNumPress()
{
   if (window.event.keyCode < 48 || window.event.keyCode >= 58)
     {window.event.keyCode=0}
}

//*----------P=身分證檢測/U=統一編號檢核----------*//
function PUID_Check(sTyp,CHKVALUE)
{
    sTyp = sTyp.toUpperCase();
    switch (sTyp)
    {
        case "P":
            if (CHKVALUE.length != 10){return false;}
            if (check_P(CHKVALUE) == true){return true;} else {return false;}
            break;
        case "U":
            if (CHKVALUE.length != 8){return false;}
            if (check_U(CHKVALUE) == true){return true;} else {return false;}
            break;
        default: 
            return true;
            break;
    }
}

//*----------身分證檢測----------*//
function check_P(id)
{
    if ( firstlettererr(id) == false) {return false;}
    if ( chfastid(id) == false) {return false;} 
    if ( ch12fastid(id) == false) {return false;}
    if ( idmanber(id) == false) {return false;}
    if ( idchackok(id) == false) {return false;}
    return true;    
}

function firstlettererr(id){
  var fl=id.substr(0,1);
  var T="ABCDEFGHIJKLMNOPQRSTUVWXYZ"; //*24個*//
  var smp=id.substr(0,1)
  if (T.indexOf(smp) == -1) { return false; } else { return true; }
}

function chfastid(id) {
     var c = id.charAt(0);
     if(c<"A" || c> "Z")
     {  return false; } else {  return true; }
}    

function ch12fastid(id) {
     var c = id.charAt(1);
     if(c!="1" && c!="2")
     {  return false; } else {  return true; }
}    

function idmanber(id) {  //=====後九碼為數字//
  var bmp;
  var d="0123456789";
  var bab=id.length-1;
  for (var i=1;i<=bab;i++){
    bmp=id.substr(i,1)
    if (d.indexOf(bmp) == -1) { return false; }
  }
    if(id != "0")
    {  return true; } else 
    {  return false; }
}

function idchackok(id) {  //規則//
     var alph = 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 num  = new Array("10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31","32","33","34","35");
     var n=0;
     for(i=0;i<alph.length;i++)
       if(id.charAt(0)==alph[i])
          n=i;
     var tot1 = parseFloat(num[n].charAt(0)) + (parseFloat(num[n].charAt(1)) * 9);
     var tot2 = 0;
     for(i=1;i<id.length-1;i++)
		    tot2 = tot2 + parseFloat(id.charAt(i))*(9-i);
     var tot3 = parseFloat(id.charAt(9));
     var tot4 = tot1 + tot2 + tot3;
     if((tot4 % 10)!=0)
     {  return false; } else {  return true; }
}

//*----------統一編號檢核----------*//
function check_U(id)
{
    if(id.length != 8)
    {
        return false;
    }
    else
    {
        D = new Array();
        
        for(var i = 0; i< 8; i++)
        {
            D[i] = id.substr(i,1);
            if (isNaN(D[i]) == true)
            {
                return false;
            }
            switch (i)
            {
                case 0:
                    c1 = parseInt(D[i]);
                    break;
                case 1:
                    a1 = parseInt(parseInt(D[i]) * 2 / 10);
                    b1 = parseInt(parseInt(D[i]) * 2 % 10);
                    break;
                case 2:
                    c2 = parseInt(D[i]);
                    break;
                case 3:
                    a2 = parseInt(parseInt(D[i]) * 2 / 10);
                    b2 = parseInt(parseInt(D[i]) * 2 % 10);
                    break;
                case 4:
                    c3 = parseInt(D[i]);
                    break;
                case 5:
                    a3 = parseInt(parseInt(D[i]) * 2 / 10);
                    b3 = parseInt(parseInt(D[i]) * 2 % 10);
                    break;
                case 6:
                    a4 = parseInt(parseInt(D[i]) * 4 / 10);
                    b4 = parseInt(parseInt(D[i]) * 4 % 10);
                    break;
                case 7:
                    c4 = parseInt(D[i]);
                    break;
            }           
        }
        
        r1 = c1+c2+c3+c4+a1+a2+a3+a4+b1+b2+b3+b4;
        if (r1 % 10 == 0 ){return true;}
        else
        {
            if (D[6] == 7)
                {
                    a5 = parseInt((a4+b4) / 10);
                    r2 = a1+b1+c1+a2+b2+c2+a3+b3+c3+a5+c4;
                    if (r2 % 10 == 0 ){return true;}
                    else {return false;}
                }
            return false;
        }
    }
}



//*----------車號規則檢核(AA-1234/1234-AA)，錯誤傳回空白----------*//
function ChkCARNO(strCARNO)
{
    if (strCARNO.length==7)
    {
        if (strCARNO.length==7 && InStr(strCARNO,'-') == (strCARNO.lastIndexOf('-')) && InStr(strCARNO,'-')=='2' || (strCARNO.lastIndexOf('-'))=='4' )
                        strCARNO = strCARNO.toUpperCase();
        else 
                        strCARNO = '';
        return String(strCARNO)
    }
    else if (strCARNO.length==6)
    {
        if (strCARNO.length==6 && InStr(strCARNO,'-') == (strCARNO.lastIndexOf('-')) && InStr(strCARNO,'-')=='2' || (strCARNO.lastIndexOf('-'))=='3' )
                        strCARNO = strCARNO.toUpperCase();
        else 
                        strCARNO = '';
        return String(strCARNO)
    }    
    else
    {
        strCARNO = '';
        return String(strCARNO)
    }
}


 function Mid(str, start, len)
{
    if (start < 0 || len < 0) {return '';}

    var iEnd, iLen = String(str).length;
    if (start + len > iLen)
    {
        iEnd = iLen;
    }
    else
            iEnd = start + len;

    return String(str).substring(start,iEnd);
}

function InStr(strSearch, charSearchFor)
{
    for (i=0; i < strSearch.length ; i++)
    {
        if (charSearchFor == Mid(strSearch, i, 1))
        {
            return i;
        }
    }
    return -1;
}

//--去空白--//
function trim(strValue) 
{
    strValue = strValue.replace(/^\s+|\s+$/g, '');
    strValue = strValue.replace(/^\u3000+|\u3000+$/g, '');
    return strValue;
}

//--email_check--//
function isEmailFormatValid(emailSrc) 
{
     var email = emailSrc.replace(/^\s+|\s+$/g, '');
     if (email == '') {
      return false;
     }
     
     var regex = /\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/;
      if (regex.test(email)) {
       var str = " !#$%^&*()+=|\{[]}:;'<,>?/" ;
       var str2 = '"';
        var result = true;
        for (var j = 0; j < email.length; j++) {
         if (str.indexOf(email.charAt(j)) != -1 || str2.indexOf(email.charAt(j)) != -1) {
          result = false;
          break; 
         }
        }
        if (result == true) {
         return true;
        }
        else {
         return false;
        }
      } else {
        return false;
      }
    } 

//--最大位數限制--//
function doKeypress(control,maxLength)
{    
    var element=control
    if(!isNaN(maxLength))
    {
        maxLength = parseInt(maxLength)
        var oTR = element.document.selection.createRange()
        if(oTR.text.length >= 1)
            event.returnValue = true
        else if(element.value.length > maxLength-1)
            event.returnValue = false
    }
}

function doKeydown(control,maxLength)
{
    var element=control
    setTimeout(function()
    {
        maxLength = parseInt(maxLength)
        if(!isNaN(maxLength))
        {
            if(element.value.length > maxLength-1)
            {
                var oTR = window.document.selection.createRange()
                oTR.moveStart("character", -1*(element.value.length-maxLength))
                oTR.text = ""
            }
        }
    },1)
}

function doBeforePaste(control,maxLength)
{
    if(!isNaN(maxLength))
        event.returnValue = false
}

function doPaste(control,maxLength)
{
    var element=control
    if(!isNaN(maxLength))
    {
        event.returnValue = false
        maxLength = parseInt(maxLength)
        var oTR = element.document.selection.createRange()
        var iInsertLength = maxLength - element.value.length + oTR.text.length
        var sData = window.clipboardData.getData("Text").substr(0, iInsertLength)
        oTR.text = sData;
    }
}

function add_option(colnm, nValue, sText){
	document.getElementById(colnm).options[document.getElementById(colnm).options.length] = new Option(sText, nValue);
}

function clear_option(colnm){
  for (var i = document.getElementById(colnm).options.length; i >= 0; i--){
    document.getElementById(colnm).options[i] = null;
  }
  document.getElementById(colnm).selectedIndex = -1;
}

//*----------E-mail格式檢查----------*//   12.11.2008  by Atsung
function email_check(colun_id){
  fieldvalue = document.getElementById(colun_id).value;
  if (fieldvalue.search(/^\w+((\.\w+)|(-\w+))*@\w+((\.|-)\w+)*\.\w+$/) == -1)
  {
		document.getElementById(colun_id).focus();
		return false;
	}
}