var errUnconsistentPassword	    = 	"密碼不一致!請再確認!!";
var errNoContactTel				= 	"請至少填寫一聯絡電話，以方便日後連絡!!";
var errIdentity_ID				= 	"身份證字號不正確!!";
	var errEmail					=	"E-mail 信箱格式不正確!!";
	var errIdentyID					=	"身分證字號不正確!!";
	var errInvoiceNo				=	"統一編號不正確!!";
	var errIdentyIDOrInvoiceNO		=	"「身分證字號」或「統一編號」不正確!!";
var errDate						=   "日期不正確!!";
var errNotNull					= "不可為空白，請重新輸入!!";
var wngNonMatchedData			=	"查無符合的資料!!";
var errNoQueryItem				= "請至少輸入一查詢條件!!";
var errCustNo					= "你所輸入的「客戶編號」不存在!!";

var msgLicense					=	"請尊重智慧財產權!!";
var msgUpload_OK				=	"恭禧您!  檔案上傳成功!!";
var msgExcute_OK				=	"執行成功!!";
var msgAdd_OK					=	"新增資料成功!!";
var msgDelete_OK				=	"記錄刪除成功!!";
var msgModify_OK				=	"記錄修改成功!!";
var msgAddMember_OK				=	"恭禧您!  會員加入成功!!";
var msgRefresh					= 	"是否重新更新資料?";
var msgDeleteConfirm			=	"你確定要刪除此筆資料嗎?";
var msgLastPage					=	"已到最後一頁!!";
var msgFirstPage				=	"已是第一頁!!";
var msgNoCreditItem				=	"你尚未被授權，無法執行「查詢系統」功能!!";
var msgNoPic					=	"尚未設定上傳檔案!!";

var msgNotLogin					=	"請先登入本系統!!";
var msgNoChoosedItem				=	"請勾選項目!!";
var msgPush					=	"催缺訊息已成功寄給管理者!!";
/*********************************************
   函式名稱：trim
   輸入參數：strRawString	(原始字串)
   			 leftTrim 		(是否去除左邊的多餘的空白，預設為true)
   			 rightTrim		(是否去除右邊的多餘的空白，預設為true)
   函式描述：去除多餘的空白                 
   傳回值：  傳回結果字串 
   函式控管：Morgan　 2003/04/01　Version 1.0
*********************************************/
function trim(strRawString, leftTrim, rightTrim) {

    var strWhiteSpace = "\n\r\t ";

    if ( strRawString == null || strRawString.length == 0 ) {
        return "";
    }

    if ( leftTrim == null ) {
        leftTrim = true;
    }
    if ( rightTrim == null ) {
        rightTrim = true;
    }

    var left=0;
    var right=0;
    var i=0;
    var k=0;

    // modified to properly handle strings that are all strWhiteSpace
    if ( leftTrim == true ) {
        while ( (i<strRawString.length) && (strWhiteSpace.indexOf(strRawString.charAt(i++))!=-1) ) {
            left++;
        }
    }
    if ( rightTrim == true ) {
        k=strRawString.length-1;
        while( (k>=left) && (strWhiteSpace.indexOf(strRawString.charAt(k--))!=-1) ) {
            right++;
        }
    }
   
    return strRawString.substring(left, strRawString.length - right);
}

function checkLengthOfField(element) {

	if ( element.value.length < parseInt(element.minlength) ) {
		alert("「" + element.m_caption + "」之長度不可小於 " + element.minlength + "，請重新輸入!!");
		element.focus();		
		return element;
	} else 
		return null;
}

function checkRequiredFields(array) {

	var objElement = null;
	
	if ( array == null )
		return null;
	
	for ( var i = 0; i < array.length; i++ ) {
		objElement = array[i];
		//alert(objElement.outerHTML);
		switch(objElement.type)	{
			case "text":
			case "Text":
			case "password":
			case "textarea":
			case "file":
				if ( trim(objElement.value) == "" ) {
					alert("「" + objElement.m_caption + "」" + errNotNull);
					objElement.focus();
					return objElement;
				}
				break;
			case "combobox":
			case "Combobox":
			case "select-one":
		            if ( objElement.selectedIndex < 0 ) {
						alert("「" + objElement.m_caption + "」" + errNotNull);
						objElement.focus();
						return objElement;
					}
					var objOption = objElement.options[objElement.selectedIndex];
					if ( trim(objOption.value) == "") {
						alert("「" + objElement.m_caption + "」" + errNotNull);
						objElement.focus();
						return objElement;
					}
				      break;
			default:
				// Need to modify
				alert("Unsupported type:" + objElement.type);
				return objElement;
		}
	
	}
	
	return null;

}

function checkPositiveFields(array) {

	var objElement = null;
	
	if ( array == null )
		return null;
	
	for ( var i = 0; i < array.length; i++ ) {
		objElement = array[i];
		if ( objElement.value != "" && isPositiveInt(objElement.value) == false ) {
			alert("「" + objElement.m_caption + "」之數值格式不正確，請重新輸入!!");
			objElement.focus();
			return objElement;
		}
		
	}

	return null;
		
}


/* 判斷是否為正整數，例如: +25, 77 皆符合條件
 * @param   value       欲檢查的值
 * @return  boolean
 */
function isPositiveInt(value) {
    var pattern = /^(\+)?\d+$/;
    return pattern.test(value);
}


/* 檢查指定email格式是否正確
 * @param   email       欲檢查的email
 * @return  boolean
 */
function checkEmail(email) {
	
	if ( email == null || email == "" )
		return true;
		
    var filter=/^.+@.+\..{2,3}$/;

    if (filter.test(email)) {
        return true;
    }
    else{
    	alert(errEmail);
        return false;
    }
}


/* 檢查輸入的身份證字號是否正確
 * @param   IDString    欲檢查的身份證字號
 * @return  boolean
 */
function checkId(IDString) {
    var ErrString = "" ;
    var ID1 = IDString.toUpperCase();
    if (IDString.length != 0 ) {IDString =IDString.toUpperCase()}
    if (IDString.length != 10){ErrString = ErrString + "身分證字號字數不對。" + unescape('%0D')}
    if (ID1.length != 10) return false; //alert("身分證字號字數不對 !");
    var IDdigit = new Array(10);
    for (var i=0; i<10; i++) { IDdigit[i] = ID1.charAt(i); }
    var CharEng = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
    IDdigit[0]   = CharEng.indexOf(IDdigit[0]);
    if (IDdigit[0] == -1)  return false; //alert("身分證字號第一位為錯誤英文字母 !");
    if (IDdigit[1] !=1 && IDdigit[1] !=2) return false; //alert("身分證字號無法辨識性別 !");

    var Array1  = new Array(26);
    Array1[0]   = 1 ; Array1[1]  = 10; Array1[2]  = 19;
    Array1[3]   = 28; Array1[4]  = 37; Array1[5]  = 46;
    Array1[6]   = 55; Array1[7]  = 64; Array1[8]  = 39;
    Array1[9]   = 73; Array1[10] = 82; Array1[11] = 2 ;
    Array1[12]  = 11; Array1[13] = 20; Array1[14] = 48;
    Array1[15]  = 29; Array1[16] = 38; Array1[17] = 47;
    Array1[18]  = 56; Array1[19] = 65; Array1[20] = 74;
    Array1[21]  = 83; Array1[22] = 21; Array1[23] = 3 ;
    Array1[24]  = 12; Array1[25] = 30;
    var result = Array1[IDdigit[0]];
    for (var i=1; i<10; i++) {
        var Number = "0123456789";
        IDdigit[i] = Number.indexOf(IDdigit[i]);
        if (IDdigit[i] == -1) {
            //alert("身分證字號錯誤 !");
            return false;
        } else {
            result += IDdigit[i] * (9-i);
        }
    }
    result += 1 * IDdigit[9];
    //alert("result=="+result);
    if (result % 10 != 0) {
        //alert("身分證字號錯誤 !");
        return false; }
    else {
        return true;
    }
}


/*********************************************
   函式名稱：checkInvoiceNo  	
   輸入參數：invoice_no			公司統一編號
   函式描述：檢查營利事業單位之統一編號              
   傳回值：  true --格式正確; false -- 錯誤。
   函式控管：Morgan　 2003/12/30　Version 1.0
   函式控管：Morgan　 2003/12/30　Version 1.0
*********************************************/
   
function checkInvoiceNo(invoice_no) {

	if ( invoice_no == null )
		return false;
	else if ( invoice_no.length == 10 && invoice_no.substring(0,2) == "00" )
		invoice_no = invoice_no.substring(2,10);
	else if ( invoice_no.length  != 8 )
		return false;
	
	for ( var i = 0; i < 8; i++ )
		if ( ! ( '0' <= invoice_no.charAt(i) && invoice_no.charAt(i) <= '9') )
			return false;
	
	var c1 = parseInt(invoice_no.substring(0,1));
	var c2 = parseInt(invoice_no.substring(2,3));
	var c3 = parseInt(invoice_no.substring(4,5));
	var c4 = parseInt(invoice_no.substring(7,8));
	var a1b1 = parseInt(invoice_no.substring(1,2))*2;
	var a2b2 = parseInt(invoice_no.substring(3,4))*2;
	var a3b3 = parseInt(invoice_no.substring(5,6))*2;
	var a4b4 = parseInt(invoice_no.substring(6,7))*4;
	
	
	if ( a1b1 >= 10 ) {
		a1 = parseInt( a1b1 / 10 );
		b1 = a1b1 % 10;
	} else {
		a1 = 0;
		b1 =a1b1;
	}
	
	if ( a2b2 >= 10 ) {
		a2 = parseInt( a2b2 / 10 );
		b2 = a2b2 % 10;	
	} else {
		a2=0;
		b2=a2b2;
	}

	if ( a3b3 >= 10 ) {
		a3 = parseInt( a3b3 / 10 );
		b3 = a3b3 % 10;	
	} else {
		a3=0;
		b3=a3b3;
	}
	
	if ( a4b4 >= 10 ) {
		a4 = parseInt( a4b4 / 10 );
		b4 = a4b4 % 10;
	} else {
		a4 = 0;
		b4 =a4b4;
	}
	
	var a5b5 =a4+b4;
	
	if ( a5b5 >= 10 ) {
		a5 = parseInt( a5b5 / 10 );
	} else {
		a5 = a5b5;
	}

    Y1=a1+b1+c1+a2+b2+c2+a3+b3+c3+a4+b4+c4;
    Y2=a1+b1+c1+a2+b2+c2+a3+b3+c3+a5+c4;
    
    if ( Y1%10 == 0 || Y2%10 == 0 ) 
    	return true;
    else
    	return false;

}

function checkForeignID(foreignId) {
	
	if ( foreignId == null || foreignId.length  != 10 )
		return false;	
	if ( foreignId.substring(0,2).toUpperCase() != "PP" )
		return false;
		
	var theDate = foreignId.substring(2);
	theDate = theDate.substring(0,4) + "/" + theDate.substring(4,6) + "/" + theDate.substring(6);
	
	return checkDate(theDate,"/");
		
}

function checkDateFormat(array) {

	var objElement = null;
	
	if ( array == null )
		return null;

	for ( var i = 0; i < array.length; i++ ) {
		objElement = array[i];
		if ( objElement.value == "" )
			continue;
		if ( checkDate(objElement.value, "/") == false ) {
			alert("「" + objElement.m_caption + "」" + errDate);
			objElement.focus();
			return objElement;
		}	
	}
	
	return null;
}


/* 檢查日期格式是否正確
 * @param   DateString  	欲檢查的日期字串
 * @param   chrFmt    		分隔子串(如: /)
 * @return  boolean
 */
function checkDate(DateString,chrFmt)
{   
  if (DateString.length !=10) return false;
  var y,m,d;
  var idx=DateString.indexOf(chrFmt)
  y=DateString.substring(0,idx)  //年
  DateString=DateString.substring(idx+1,DateString.length)
  var idx=DateString.indexOf(chrFmt)
  m=DateString.substring(0,idx); //月
  d=DateString.substring(idx+1,DateString.length);  //日 
  if (m.substring(0,1)=='0') m=m.substring(1,m.length);
  if (d.substring(0,1)=='0') d=d.substring(1,d.length);
 /*alert("y="+y);
 alert("m="+m);
 alert("d="+d);*/
 var CharNum = "0123456789";
  //判別是否皆為數字
  for(var i=0;i<y.length;i++){
      var str=y.substring(i,i+1);
      if (CharNum.indexOf(str)<0) return false;
  }
   for(var i=0;i<m.length;i++){
      var str=m.substring(i,i+1);
      if (CharNum.indexOf(str)<0) return false;
  }
   for(var i=0;i<d.length;i++){
      var str=d.substring(i,i+1);
      if (CharNum.indexOf(str)<0) return false;
  }
 

 
 
  y=parseInt(y);
  m=parseInt(m);
  d=parseInt(d);
 
  if (isNaN(y)) return false;
  if (isNaN(m)) return false;
  if (isNaN(d)) return false;
 
//  if (y < 100 && y > 70) y += 1900;
//  if (y < 70) y += 2000;
//  if (y > 2070 || y < 1970) return false;
  if ( y > 3000 || y < 1900) return false;

  if (m < 1 || m > 12) return false;
 
  if (d < 1 || d > 31) return false;
 
  var isleap = ((y % 100) && !(y % 4)) || !(y % 400); 
  switch (m)
  {    
    case 1:
    case 3:
    case 5:
    case 7:
    case 8:
    case 10:
    case 12:
      return true;
    case 4:
    case 6:
    case 9:
    case 11:
      if (d > 30) return false;
      else return true;
    case 2:     
      if (isleap) {
        if (d > 29) return false;
        else return true;
      }
      if (d > 28) return false;
      return true;
    default:         
      return false;
  }
}


/* 檢查日期格式是否正確
 * @param   DateString  	欲檢查的日期字串
 * @return  boolean
 */
function checkSimpleDate(objElement, chrFmt)
{   
// for misi //
  //if (DateString.length !=10) return false;
  var DateString = objElement.value;
  
  if ( chrFmt == null )
  	chrFmt = "/";
  var changeFlag = false;
  if ( DateString == null || DateString.length == 0 )
  	return true;
  else if ( DateString.length == 8 ) {	
  	DateString = DateString.substring(0,4) + chrFmt + DateString.substring(4,6) + chrFmt + DateString.substring(6);
  	changeFlag = true;
  } else if (DateString.length !=10 ) {
  	alert("「" + objElement.m_caption + "」" + errDate);
  	return false;
  }
  var newDateString = DateString;
//
  var y,m,d;
  var idx=DateString.indexOf(chrFmt)
  y=DateString.substring(0,idx)  //年
  DateString=DateString.substring(idx+1,DateString.length)
  var idx=DateString.indexOf(chrFmt)
  m=DateString.substring(0,idx); //月
  d=DateString.substring(idx+1,DateString.length);  //日 
  if (m.substring(0,1)=='0') m=m.substring(1,m.length);
  if (d.substring(0,1)=='0') d=d.substring(1,d.length);
 /*alert("y="+y);
 alert("m="+m);
 alert("d="+d);*/
 var CharNum = "0123456789";
  //判別是否皆為數字
  for(var i=0;i<y.length;i++){
      var str=y.substring(i,i+1);
      if (CharNum.indexOf(str)<0) {
      	alert("「" + objElement.m_caption + "」" + errDate);
      	return false;
      }
  }
   for(var i=0;i<m.length;i++){
      var str=m.substring(i,i+1);
      if (CharNum.indexOf(str)<0) {
      	alert("「" + objElement.m_caption + "」" + errDate);
      	return false;
      }
  }
   for(var i=0;i<d.length;i++){
      var str=d.substring(i,i+1);
      if (CharNum.indexOf(str)<0) {
      	alert("「" + objElement.m_caption + "」" + errDate);
      	return false;
      }
  }
 

 
 
  y=parseInt(y);
  m=parseInt(m);
  d=parseInt(d);
 
  if (isNaN(y)) {
  	alert("「" + objElement.m_caption + "」" + errDate);
  	return false;
  }
  if (isNaN(m)) {
  	alert("「" + objElement.m_caption + "」" + errDate);
  	return false;
  }
  if (isNaN(d)) {
  	alert("「" + objElement.m_caption + "」" + errDate);
  	return false;
  }
 
//  if (y < 100 && y > 70) y += 1900;
//  if (y < 70) y += 2000;
//  if (y > 2070 || y < 1970) return false;
  if ( y > 3000 || y < 1900) {
  	alert("「" + objElement.m_caption + "」" + errDate);
  	return false;
  }

  if (m < 1 || m > 12) {
  	alert("「" + objElement.m_caption + "」" + errDate);
  	return false;
  }
 
  if (d < 1 || d > 31) {alert("「" + objElement.m_caption + "」" + errDate);
  	alert("「" + objElement.m_caption + "」" + errDate);
  	return false;
  }
 
  var isleap = ((y % 100) && !(y % 4)) || !(y % 400); 
  switch (m)
  {    
    case 1:
    case 3:
    case 5:
    case 7:
    case 8:
    case 10:
    case 12:
      objElement.value = newDateString;
      return true;
    case 4:
    case 6:
    case 9:
    case 11:
      if (d > 30) {
      	alert("「" + objElement.m_caption + "」" + errDate);
      	return false;
      } else {
      	objElement.value = newDateString;
      	return true;
      }
    case 2:     
      if (isleap) {
        if (d > 29) {
        	alert("「" + objElement.m_caption + "」" + errDate);
        	return false;
        } else {
        	objElement.value = newDateString;
        	return true;
        }
      }
      if (d > 28) {
      	alert("「" + objElement.m_caption + "」" + errDate);
      	return false;
      }
      
      objElement.value = newDateString;
      return true;
    default:   
      alert("「" + objElement.m_caption + "」" + errDate);      
      return false;
  }
}


function showCalendarDialog(txtObj){

  var ret = window.showModalDialog("../../js/cal/calendar_CHT.htm", "", "dialogTop: 60px; dialogLeft: 55px; center: Yes; help: No; resizable: No; status: No;");
  txtObj.value = ret;

}

function checkKeyUp() { 

      if ( event.keyCode == 13 ) {
      		if ( event.srcElement.onchange != null )
      			if ( event.srcElement.onchange() == false )
					return false;
            fnQuery();
      }
      
      return true;
}

function checkAllID(objElement) {
	
	if ( objElement.value == null || objElement.value.length == 0 )
		return true;
	else if ( checkId(objElement.value) || checkInvoiceNo(objElement.value) || checkForeignID(objElement.value) )
		return true;
	else {
		alert(errIdentyIDOrInvoiceNO);
		return false;
	}
}


function fnChangeRelCombo(objParentCombo, objHiddenCombo, objDestCombo, reservedOption_len) {
	
	objDestCombo.options.length = reservedOption_len;
	var parent_val = objParentCombo.options[objParentCombo.selectedIndex].value;
	var objHiddenOption = null;
	
	for ( var i =0; i < objHiddenCombo.options.length; i++ ) {
		objHiddenOption = objHiddenCombo.options[i];
		if ( parent_val == objHiddenOption.property1 ) {
			 objDestCombo.add( new Option(objHiddenOption.text, objHiddenOption.value) );	
			 if ( objHiddenOption.selected == true )
			 	objDestCombo.selectedIndex = objDestCombo.options.length -1;
		}
	}
}

function fnResetText(objText) {
	
	if ( objText.value == objText.defaultValue )
		objText.value='';
}


function checklength(obj, maxsize){
	var len = 0;
	var temp = 0;
	var objValue200 = "";

        if(obj.value.charCodeAt(0)>255){
            temp = obj.value.charCodeAt(0)>255?1:0;
            len++;
	}

	for(var i=0;i<obj.value.length;i++){
		if(obj.value.charCodeAt(i)>255)
		{
                    if(temp==1)
                        len += 2;
                    else{
                        len += 3;
                        temp = 1;
                    }
                    if(i==(obj.value.length-1))
                        len ++;
		}
		else
		{
                    if(temp==0)
                        len ++;
                    else{
                        len += 2;
                        temp = 0;
                    }
		}

		if(len<=maxsize)
			objValue200 += obj.value.charAt(i);
		else
		    break;
	}

	if(len>maxsize){
		alert("「長度超過限制！")
        obj.value = objValue200;
		obj.focus();
		return false;
	} else
		return true;
}

function fnLogin() {
	
	var aryRequiredFields = new Array (loginForm.account, loginForm.password);
	
	if ( checkRequiredFields(aryRequiredFields) != null )
		return;	
	
	loginForm.submit();
}