
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}



function m_menu(pid,menu_id,name,_type,url_link,_lev) {
	var tmp="";
	//alert(myImage);
  if (_type =='1') {	
  	var x=(name.length+1)*12;
  	var MouseOver = "MM_swapImage('L"+menu_id+"','','"+imagePath+"arrow_2.gif',1);MM_showMenu(window.mm_menu_"+menu_id+","+x+",-2,null,'link"+menu_id+"');" ;          
  	var MouseOut  = "MM_swapImgRestore();MM_startTimeout();";
  	
  	tmp='<tr > \n'+
  	    '<td class="bg_line" width="1" align=center valign="top"  ><img src="'+myImage+'ico_arrow.gif"  ></td> \n'+
  	    '<td class="bg_line" align="left" ><a href="#" class="MainNavLeftLink" name="link'+menu_id+'" id="link'+menu_id+'" onMouseOver="'+MouseOver+'"  onMouseOut="' +MouseOut+'" >'+name+'</a></td> \n'+
  	    '</tr>\n';
 	}else {
 	  var _target ='';
 	  if (url_link.indexOf("http:") >=0 ||  url_link.indexOf("https:") >=0 ){
 	     _target ='target="_blank"';
 	  
 	  }
 	  
 	  var _href ="";
 	  if (url_link.indexOf('CSController?') >=0) 
 	     _href = url_link+'&_ACTIVE_ID='+menu_id ;
 	  else 
 	  	 _href = url_link;    
 	  
 	  
	  tmp='<tr class="bg_line"> \n'+
  	    '<td class="bg_line"  width="1"  align=center valign="top"  ><img src="'+myImage+'ico_arrow.gif"  ></td> \n'+
  	    '<td class="bg_line" align="left" ><a '+ _target + ' href="'+_href+'" class="MainNavLeftLink" name="link'+menu_id+'"   >'+name+'</a></td>\n'+  
  	    '</tr>';
	
	}
//	alert(tmp);
	document.write(tmp);
}

function w_menu(pid,menu_id,name,_type,url_link,_lev) {
  if (_type =='1') {	
     var tmp= 'mm_menu_'+menu_id+'.writeMenus();'
     eval(tmp);   
     
     //logbuf="\n"+logbuf+tmp+"\n";    
  }

}
//var logbuf="";




function s_menu(pid,menu_id,name,_type,url_link,_lev){
	if(_lev ==2 && _type=='2' ) {
    return false;
  }	
	var tmp="";
	var m_width=(name.length+2)*12;
	
	
	
	if(_lev >2) {
		eval("var p_menu=window.mm_menu_"+pid);
		//alert(p_menu.menuWidth);
        if (p_menu == undefined ) return false; 
		if (p_menu.menuWidth < m_width) {
			 p_menu.menuWidth=m_width;
		}
		
	  if (_type=='1' ) {
      	tmp='window.mm_menu_'+pid+'.addMenuItem(mm_menu_'+menu_id+')';
      	eval(tmp);
	  } else {	                                                      
	   	tmp="window.mm_menu_"+pid+".addMenuItem('"+name+"','_runMenuCmd(\""+url_link+"\",\""+menu_id+"\")')";
	    eval(tmp);
	 	}
	}
}


function a_menu(pid,menu_id,name,_type,url_link,_lev){
	if(_lev ==2 && _type=='2' ) {
    return false;
  }	
	var tmp="";
		
	if(_lev >=2) {  	  
	  if(_lev==2)
	                                     //  Menu(label      , mw, mh, fnt             , fs, fclr   , fhclr   , bg      , bgh, halgn, valgn, pad, space, to, sx, sy, srel, opq, vert, idt, aw, ah)
    	tmp='window.mm_menu_'+menu_id+'=new Menu("root"    ,100,22,"新細明體, 標楷體",12,"#000000","#FFFFFF","#D2F4FF","#6699CC","left","middle",3,0,300,-5,7,true,true,true,2,true,true);';   
    else 
    	tmp='window.mm_menu_'+menu_id+'=new Menu("'+name+'",100,22,"新細明體, 標楷體",12,"#000000","#FFFFFF","#D2F4FF","#6699CC","left","middle",3,0,300,-5,7,true,true,true,2,true,true);';  
    

    eval(tmp);
    
    eval("var mm_menu=window.mm_menu_"+menu_id);
    mm_menu.hideOnMouseOut=true;
    
    
    //mm_menu.bgColor='#FFF0C4';
    mm_menu.menuBorder=1;
    //mm_menu.menuLiteBgColor='#FFEEAC';
    //mm_menu.menuBorderBgColor='#CA9800';
	  
	
	}
}

function _runMenuCmd(url_link,menu_id) {
	if ( url_link.indexOf("http:") >=0 ||  url_link.indexOf("https:") >=0 ) {
    window.open(url_link);
  } else{
	
  	document.location.href=url_link+'&_ACTIVE_ID='+menu_id;                                   
  }
		  
  //document.location.href=url_link+'&_ACTIVE_ID='+menu_id;                                   
		  

}
  




/*
-----------------------------------
--------DateTime Function----------
-----------------------------------
*/



function FormatDateEng(fdate) {
  if (fdate != '' && fdate !='&nbsp;') {
    if (fdate.length <= 8)
      return fdate.substr(0,fdate.length-4) + "/" + fdate.substr(fdate.length-4,2) + "/" + fdate.substr(fdate.length-2,2)
    else
      return fdate.substr(0,4) + "/" + fdate.substr(4,2) + "/" + fdate.substr(6,2)
  }
    else {
      return  '&nbsp;'
    }
}
function dispFormatDateEng (fdate) {

  document.write(FormatDateEng(fdate));

}

function FormatDateRoc(fdate) {
	var YY ,MM ,DD;
  fdate =trim(fdate);
  if (fdate != '' && fdate !='&nbsp;') {
    if (fdate.length >= 8){
      YY= parseInt(fdate.substr(0,4) )-1911 ;
      MM=  fdate.substr(4,2);
      DD=  fdate.substr(6,2);
    }else if  (fdate.length == 7)   {
      YY=  fdate.substr(0,3);
      if (YY.charAt(0)=='0') 
        YY=YY.substr(1,2);
      
      MM=  fdate.substr(3,2);
      DD=  fdate.substr(5,2);
      
    }else if (fdate.length == 6){
      YY=  fdate.substr(0,2);
      MM=  fdate.substr(2,2);
      DD=  fdate.substr(4,2);
    } else {
      return  '&nbsp;';
    }
    return  YY +'/' +MM +'/'+DD;
    
    
  }else {
      return  '&nbsp;'
  }
}
function dispFormatDateRoc (fdate) {

  document.write(FormatDateRoc(fdate));

}

function FormatDateTimeRoc(fdate) {
	var HH ,MI ,SS;
  fdate =trim(fdate);
  tmpDate="";
  tmpTime="";
  
  if (fdate != '' && fdate !='&nbsp;') {
    if (fdate.length >= 14){
    	tmpDate=FormatDateRoc(fdate.substr(0,8) );
    	tmpTime=FormatTime(fdate.substr(8,6) );
    }else if  (fdate.length == 13)   {
      tmpDate=FormatDateRoc(fdate.substr(0,7) );
      tmpTime=FormatTime(fdate.substr(7,6) );
      
    }else if (fdate.length == 12){
      tmpDate=FormatDateRoc(fdate.substr(0,6) );
			tmpTime=FormatTime(fdate.substr(6,6) );
    } else {
      return  '&nbsp;';
    }
    return  tmpDate + ' - ' +tmpTime;
  }else {
      return  '&nbsp;'
  }
}
function dispFormatDateTimeRoc (fdate) {

  document.write(FormatDateTimeRoc(fdate));

}



function FormatTime(ftime) {
   return ftime.substr(0,2)+':'+ ftime.substr(2,2) + ':' + ftime.substr(4,2);
}

function dispFormatTime(ftime) {
   document.write(FormatTime(ftime));
}

function FormatDateTimeEng(fdate) {
   return  FormatDateTime(fdate) ;
}

function FormatDateTime(fdate) {

  if (fdate != '' && fdate !='&nbsp;') {
    return fdate.substr(0,4) + "/" + fdate.substr(4,2) + "/" + fdate.substr(6,2)+'-'+ fdate.substr(8,2)+':'+ fdate.substr(10,2) + ':' + fdate.substr(12,2);
  }else {
      return  '&nbsp;'
  }
}

function dispFormatDateTimeEng(fdate) {
   document.write(FormatDateTime(fdate));
}


function PrintDateTime(fdate) {
    if (fdate != '' && fdate !='&nbsp;') {
    return "列印時間:"+fdate.substr(0,4) + "/" + fdate.substr(4,2) + "/" + fdate.substr(6,2)+'&nbsp;'+ fdate.substr(8,2)+':'+ fdate.substr(10,2) ;
  }else {
      return  '&nbsp;'
  }
}


function montharr(m0, m1, m2, m3, m4, m5, m6, m7, m8, m9, m10, m11)
{
this[0] = m0;
this[1] = m1;
this[2] = m2;
this[3] = m3;
this[4] = m4;
this[5] = m5;
this[6] = m6;
this[7] = m7;
this[8] = m8;
this[9] = m9;
this[10] = m10;
this[11] = m11;
}
///////////////////////////////////////////////////////////////////////////////
//  Function   : isDate(input_date, ymode)
//  Description: 日期格式檢查
//  Author     :
//  Date       : 2004.03.09
///////////////////////////////////////////////////////////////////////////////
function isDate(input_date, ymode)
{
    var monthDays = new montharr(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
    var temp_str,t_year , t_month , t_day , t_ymode;
    var len , nDays;
    len = input_date.length;
    if (ymode == null){
        ymode = 2;
    }
    //Step1 : Check is numeric and length is correct 
    if(len <= 0 ) 
        return 0;
    var int_date = parseInt(input_date,10);
    if(int_date == "Infinity")
        return 0;
    int_date = "" + int_date ;
    if(isNaN(parseInt(input_date,10)) == true || int_date != input_date) 
        return 0;
    if((len < 6 && ymode == '1') || (len < 8 && ymode == '2'))
        return 0;
    t_year   = input_date.substr(0,len - 4);
    t_month  = input_date.substr(len - 4 , 2);
    t_day    = input_date.substr(len - 2 , 2);    
    if(ymode == '1')
       t_year = eval(t_year) + 1911;
    if(t_month <= 0 || t_month >= 13 )
       return 0;
    if (((t_year % 4 == 0) && (t_year % 100 != 0)) || (t_year % 400 == 0)) monthDays[1] = 29;
    nDays = monthDays[t_month - 1];
    if(t_day <= 0 || t_day > nDays)
       return 0;
    return 1;
}

function getSysDate() {
  if (navigator.appName=='Netscape'){
    var NS=1;
    var IE=0;
  }
  else{
    var NS=0;
    var IE=1;
  }

  var today=new Date();
  if (IE) {Year=today.getYear();} else {Year=today.getYear() +1900;}
  Month = today.getMonth()+1;
  if(Month <10){
   	Month=0+""+Month ;
  }
  Day  = today.getDate();
  if(Day <10){
    Day=0+""+Day;
  }

  SysDate = ""+Year+ Month +Day ;

  return (SysDate);

}


function dispDate(frm,DefVal,name,flag) {
  if (flag == null){
     flag = true;
  }
  
  var retVal='';
  if(DefVal=='' || DefVal==undefined ) {DefVal=getSysDate() ;}
  else if(DefVal=='-1')  {DefVal=''}
  
  var fDate= FormatDateEng(DefVal);

  retVal=retVal+"<input type=hidden name="+name + " value='"+ DefVal+"' > "; 
  retVal=retVal+"<input type=text name=f" +name + " size=10 readonly class='MainContentInput' value='"+ fDate+"'  > "; 

  //暫時 call 遠銀 萬年曆(Calendar.jsp)
  var TmpStr= "PopWin("+frm.name+",'"+name+",f"+name+"','./Calendar.jsp','100','200','250','300')";
  retVal=retVal+'<A href="javascript:;" onClick="'+TmpStr+'"> <img src=./images/date.gif border="0" ></A>';

  if (flag) {
    document.write(retVal) ;
  } else {
    return retVal;      
  }
}

function dispBdate(frm,DefVal,flag) {
  return dispDate(frm,DefVal,'Bdate',flag); 
}

function dispEdate(frm,DefVal,flag) {
  return dispDate(frm,DefVal,'Edate',flag); 
}

function chk_BEdate(frm) {

  var Bdate=frm.Bdate.value;
  var Edate=frm.Edate.value;
  if (Bdate > Edate ) {alert('起始日期不可大於結束日期!!'); return false; }  
  
  return true;

}



/*
-----------------------------------
--------Number Function ----------
-----------------------------------
*/

function Comma(tmp_amt,precision) {
  if (precision ==null) precision=-1;
  if (isNaN(parseInt(tmp_amt,10)) == true) 		{    
    if (tmp_amt=="-") return "-" ;
  	if (precision > 0) return "0.0000000000000000".substr(0,2+precision);
    else               return "0"; 
  }
  if (precision >=0) {
    var _amt= parseFloat(tmp_amt);
    _amt=Math.round(_amt*(Math.pow(10,precision)))/(Math.pow(10,precision));
    //alert('[_amt]'+_amt);
    tmp_amt=_amt;
  }
  
   
  var sstr='';

	tmp_amt =tmp_amt +'';
  if  (tmp_amt.indexOf('-') >= 0 ) {
    sstr='-';
  }

	var dot_index = tmp_amt.indexOf('.');
	if(dot_index>0) {
		tmp_len  = tmp_amt.length;
		if (sstr=='-') {
		  istr     = (parseFloat(tmp_amt.substr(0,dot_index))*(-1))+'';
		  fstr     = tmp_amt.substr(dot_index+1,tmp_len);
		} else {
		  istr     = parseFloat(tmp_amt.substr(0,dot_index))+'';
		  fstr     = tmp_amt.substr(dot_index+1,tmp_len);
		}
	}else {
		tmp_len  = tmp_amt.length;
		if (sstr=='-') {
  		istr     = (parseFloat(tmp_amt)*(-1))+'';
	  	fstr     = '';
		} else {
		  istr     = parseFloat(tmp_amt)+'';
		  fstr     = '';

		}
	}
	

	var tmpstr='';
	for (i=0 ;i<=istr.length;i++){
    	if (((i%3)==0)&&(i!=0)) {tmpstr=','+istr.substr(istr.length-i,1)+tmpstr;}
    	else 					{tmpstr=istr.substr(istr.length-i,1)+tmpstr;}
    	//alert('i='+i+' ,tmpstr='+tmpstr);
  }
  
  if (tmpstr.substr(0,1)==',') { istr=tmpstr.substring(1,tmpstr.length); }
  else					     { istr=tmpstr;}


	//if(dot_index>0 && precision!=0 )  {				
	if(precision > 0 )  {				
	  fstr=(fstr+'000000000000000').substr(0,precision);     
	  return sstr+istr+'.'+fstr;
	} else  if (dot_index>0 ) {
		return sstr+istr+'.'+fstr;
	} else  {	  
	  return sstr+istr;
	}
	

}


function dispComma (TmpVal,precision) {

  document.write(Comma(TmpVal,precision));

}

function toNumber(TmpVal ) {
	var retVal="";
  var i=0;
  for(i=0; i<TmpVal.length ;i++){
  	var c=TmpVal.substr(i,1);
  	if ((c >=0 && c<=9 && c!=' ' ) || (c=='.') ) {
  		retVal=retVal+c;
    }	  
  }
  
  return retVal;

}


/*
-----------------------------------
--------check_data Function--------
-----------------------------------
*/

///////////////////////////////////////////////////////////////////////////////
//  Function   : chk_EmailFormat(obj)
//  Description: 檢查E-mail 格式
//  Author     : Rayman Tasi
///////////////////////////////////////////////////////////////////////////////


function chk_EmailFormat(name,Email) {
	Email=trim(Email);
  if (trim(Email) =='' ) {
    alert(name + '資料不可為空白');
    return false;    
  }
  var i=0;
  for(i=0; i<Email.length ;i++){
    var c=Email.substr(i,1);
    if (c==' '  ) {
    	alert(name+'格式錯誤!!!(中間不可有空白)');
    	return false; 
    }
    
    if (c > '~' ) {
    	alert(name+'格式錯誤!!!(不可有全形字元)');
    	return false;     
    }
    
    if(c=='.' && i==(Email.length-1) ) {
    	alert(name+'格式錯誤!!!(結尾不可為『.』)');
    	return false; 
    }
    if(c=='@' && i==(Email.length-1) ) {
    	alert(name+'格式錯誤!!!(結尾不可為『@』)');
    	return false; 
    }
    
     
  }
  
  
  if (Email.indexOf('@') <= 0) {
    alert(name+'格式錯誤(需包含『@ 』字元)!!!');
    return false;      
  }
  return true;    
}
///////////////////////////////////////////////////////////////////////////////
//  Function   : chk_PhoneFormat(obj)
//  Description: 檢查E-mail 格式
//  Author     : Rayman Tasi
///////////////////////////////////////////////////////////////////////////////

function chk_PhoneFormat(name,Phone) {
  return chk_FaxFormat(name,Phone);  
}


///////////////////////////////////////////////////////////////////////////////
//  Function   : chk_FaxFormat(obj)
//  Description: 檢查E-mail 格式
//  Author     : Rayman Tasi
///////////////////////////////////////////////////////////////////////////////

function chk_FaxFormat(name,Phone) {
	Phone=trim(Phone);
  if (trim(Phone) =='' ) {
     alert(name + '資料不可為空白');
     return false;    
  }
  
  var i=0;
  for(i=0; i<Phone.length ;i++){
    var c=Phone.substr(i,1);
    if (i==0 && c !='0') {
      alert(name+'格式錯誤(第一碼需為『 0 』字元)!!!');
      return false;    
    }
    
    if (c < '0' || c > '9' ) {
    	alert(name+'格式錯誤(不可含非數字字元)!!!');
    	return false;    
    }
    
    
  }
  
  
  if ( Phone.length <6 ||  Phone.length >15) {
    alert(name+'格式錯誤(長度不符，請介於6~15個字元之間)!!!' );
    return false;             
  }
  return true;      
  
}


///////////////////////////////////////////////////////////////////////////////
//  Function   : ltrimFS(str)
//  Description: ltrim 全型空白
//  Author     : Rick Chen
//  Date       : 2004.07.12
///////////////////////////////////////////////////////////////////////////////
function ltrimFS(str){
    for (var i = 0; i < str.length; i++){
        if (str.substring(i, i+1) != '　'){
            return str.substring(i, str.length);
        }
    }
    return "";
}
///////////////////////////////////////////////////////////////////////////////
//  Function   : rtrimFS(str)
//  Description: rtrim 全型空白
//  Author     : Rick Chen
//  Date       : 2004.07.12
///////////////////////////////////////////////////////////////////////////////
function rtrimFS(str){
    for (var i = str.length-1; i >= 0; i--){
        if (str.substring(i, i+1) != '　'){
            return str.substring(0, i+1);
        }    
    }
    return "";
}
///////////////////////////////////////////////////////////////////////////////
//  Function   : trimFS(str)
//  Description: trim 全型空白
//  Author     : Rick Chen
//  Date       : 2004.07.12
///////////////////////////////////////////////////////////////////////////////
function trimFS(str){
    return ltrimFS(rtrimFS(str));
}
///////////////////////////////////////////////////////////////////////////////
//  Function   : focusObject(obj)
//  Description: focus and select the obj
//  Author     : Rick Chen
//  Date       : 2004.03.03
///////////////////////////////////////////////////////////////////////////////
function focusObject(obj){
    if (obj.type == "text" && !obj.disabled && !obj.readOnly){
        obj.focus();
        obj.select();
    }
}
///////////////////////////////////////////////////////////////////////////////
//  Function   : getLenEx(str)
//  Description: 傳回實際字串長度(含中英文夾雜的case)
//  Author     : Rick Chen
//  Date       : 2004.07.10
///////////////////////////////////////////////////////////////////////////////
function getLenEx(str){
    var len = 0;
    for (var i = 0; i < str.length; i++){
        var tmpChar = str.substr(i, 1);
        tmpChar = escape(tmpChar);
        if (tmpChar.length > 3){
            len = len + 2;
        }else{
            len++;
        }        
    }
    return len;
}
///////////////////////////////////////////////////////////////////////////////
//  Function   : checkCEStr(tmpStr)
//  Description: 檢核字串是否含有中文字元
//  Author     : Rick Chen
//  Date       : 2004.03.03
//  Note       : return 1 -> 中英文夾雜
//                      2 -> 純中文
//                      3 -> 純英數字
///////////////////////////////////////////////////////////////////////////////
function checkCEStr(tmpStr)
{
    var cFlag = 0;
    var eFlag = 0;
    for (var i = 0; i < tmpStr.length; i++){
        var tmpChar = tmpStr.substr(i, 1);
        tmpChar = escape(tmpChar);
        if (tmpChar.length > 3){
            cFlag = 1;
        }else{
            eFlag = 1;
        }
    } 
    if (cFlag && eFlag)  return 1; //中英文夾雜
    if (cFlag && !eFlag) return 2; //純中文
    if (!cFlag && eFlag) return 3; //純英數字
}
///////////////////////////////////////////////////////////////////////////////
//  Function   : fsKeyDenied(fieldName, obj)
//  Description: use on onkeyup event for 全形字 keyin denied
//  Author     : Rick Chen
//  Date       : 2004.07.20
///////////////////////////////////////////////////////////////////////////////
function fsKeyDenied(fieldName, obj){
    var lastKeyIn = obj.value.substring(obj.value.length-1, obj.value.length);
    if (checkCEStr(lastKeyIn) == 2){
        alert(fieldName + "欄位不可輸入全形字!!!");
        obj.value = obj.value.substring(0, obj.value.length-1);
        obj.focus();
        obj.select();
        event.returnValue = false; 
    }
    else{
        event.returnValue = true; 
    }
}
///////////////////////////////////////////////////////////////////////////////
//  Function   : fsPasteDenied(fieldName, obj)
//  Description: use on onpaste event for 全形字 paste denied
//  Author     : Rick Chen
//  Date       : 2004.07.20
///////////////////////////////////////////////////////////////////////////////
function fsPasteDenied(fieldName, obj){
    var retcode = checkCEStr(window.clipboardData.getData('Text'));
    if ( retcode == 1 || retcode == 2){
        alert(fieldName + "欄位不可含有全形字!!!");
        obj.focus();
        obj.select();
        event.returnValue = false; 
    }
    else{
        event.returnValue = true; 
    }
}
///////////////////////////////////////////////////////////////////////////////
//  Method     : check()
//  Description: 更據chkRule檢核欄位
//  Author     : Rick Chen
//  Date       : 2004.03.01
//  Note       : chkRule =>
//                       NEmp => 不可是空值
//                       NZero=> 不可為0
//                       NDot => 數字不可含有小數點
//                       NCom => 不可含有'(單引號)"(雙引號)
//                       ANum => 須全為數字
//                       AEng => 須全為英文字
//                       AChn => 須全為中文字
//                       ANe  => 須為英數字 
//                       IN=123,456,789 => 欄位值須為後面值其中之一
//                       >,>=,<,<=, ==xxxx 
//                       Date => check日期格式
//                       Func=xxx => 另外call xxx() function做check
///////////////////////////////////////////////////////////////////////////////
function check(){
    var tmpstr = "";
    var chkRuleArray = this.chkRule.split("|");
    for (var i = 0; i < chkRuleArray.length; i++){
        //外部Function Check
        if (chkRuleArray[i].substring(0, 4) == "Func"){
            var funcName = chkRuleArray[i].substring(chkRuleArray[i].indexOf("=")+1, chkRuleArray[i].length) + "(this.obj)";
            if (!eval(funcName)){
                alert(this.fName + "欄位值錯誤!");
                focusObject(this.obj);
               return false;                
             }
        }
        //欄位值須為後面值其中之一
        else if (chkRuleArray[i].substring(0, 2) == "IN"){
            tmpstr = chkRuleArray[i].substring(chkRuleArray[i].indexOf("=")+1, chkRuleArray[i].length);
            var chkFlag = false;
            var tmpArray = tmpstr.split(",");
            for (var i = 0; i < tmpArray.length; i++){
                if (this.obj.value == tmpArray[i]){
                    chkFlag = true;
                }
            }
            if (!chkFlag){
                alert(this.fName + "欄位值須為下列值:" + tmpstr);
                focusObject(this.obj);
                return false;
            }     
        }
        //欄位值 >=N <=M
        else if (chkRuleArray[i].substring(0, 2) == "BT"){
            tmpstr = chkRuleArray[i].substring(chkRuleArray[i].indexOf("=")+1, chkRuleArray[i].length);
            var s = tmpstr.substring(0, tmpstr.indexOf("~"));
            var h = tmpstr.substring(tmpstr.indexOf("~")+1, tmpstr.length);
            if (this.obj.value >= Number(s) && this.obj.value <= Number(h)){
                //donothing!!!
            }
            else{
                alert(this.fName + "欄位值須介於" + s + "~" + h + "間");
                focusObject(this.obj);
                return false;
            }
        }
        //欄位大小check
        else if (chkRuleArray[i].charAt(0) == ">" || chkRuleArray[i].charAt(0) == "<" || chkRuleArray[i].charAt(0) == "=" || chkRuleArray[i].charAt(0) == "!"){
            var operator = "";
            var checkValue = "";
            var j = 0;
            tmpstr = chkRuleArray[i];
            for (var j = 0; j < tmpstr.length; j++){
                if ("<>=!".indexOf(tmpstr.charAt(j)) == -1){
                    break;
                }
            }
            operator = tmpstr.substring(0, j);
            checkValue = tmpstr.substring(j, tmpstr.length);
            var operator_name ="";
            if(operator =='>' ) {
              operator_name='大於';
            } else if (operator =='<')  {
            	operator_name='小於';
            } else if (operator =='=')  {
              operator_name='等於';
            } else if (operator =='!')  {
              operator_name='不等於';
            } else {
              operator_name=operator;
            }
            

            if (!eval(this.obj.value + " " + operator + " " + checkValue)){
                alert(this.fName + "必須" + operator_name + checkValue);
                focusObject(this.obj);
                return false;
            }
        }
        else{
            switch (chkRuleArray[i]){
                //不可是空值
                case "NEmp":
                    if (trim(this.obj.value) == ""){
                        alert("請輸入" + this.fName);
                        focusObject(this.obj);
                        return false;
                    }
                    break;
                //不可為0
                case "NZero":
                    if (this.obj.value == "0"){
                        alert(this.fName + "欄位值不可為0");
                        focusObject(this.obj);
                        return false;
                    }
                    break;
                //數字不可含有小數點       
                case "NDot":
                    if (this.obj.value.indexOf(".") != -1){
                        alert(this.fName + "欄位值不可含有小數點");
                        focusObject(this.obj);
                        return false;                        
                    }
                    break;  
                //不可含有'(單引號)"(雙引號)
                case "NCom":
                    if (this.obj.value.indexOf("'") != -1 || this.obj.value.indexOf("\"") != -1){
                        alert(this.fName + "欄位值不可含單引號或雙引號");
                        focusObject(this.obj);
                        return false;                    
                    }
                    break;       
                //須全為數字
                case "ANum":
                    /*
                    for (var i = 0; i < this.obj.value.length; i++){
                        if (this.obj.value.charAt(i) < "0" || this.obj.value.charAt(i) > "9"){
                            alert(this.fName + "欄位須為數字");
                            focusObject(this.obj);
                            return false;
                        }
                    }
                    */
                    if (isNaN(this.obj.value)){
                        alert(this.fName + "欄位須為數字");
                        focusObject(this.obj);
                        return false;                        
                    }
                    break;   
                //須全為英文字
                case "AEng":
                    tmpstr = this.obj.value.toUpperCase();
                    for (var i = 0; i < this.obj.value.length; i++){
                        if (tmpstr.charAt(i) < "A" || tmpstr.charAt(i) > "Z"){
                            alert(this.fName + "欄位須為英文字");
                            focusObject(this.obj);
                            return false;
                        }
                    }              
                    break;  
                //須全為中文字   
                case "AChn":
                    if (checkCEStr(this.obj.value) != 2){
                        alert(this.fName + "欄位須全為中文字");
                        focusObject(this.obj);
                        return false;
                    }
                    break;  
                //須為英數字
                case "ANe":
                    tmpstr = this.obj.value.toUpperCase();
                    for (var i = 0; i < this.obj.value.length; i++){
                        if ((tmpstr.charAt(i) >= "A" && tmpstr.charAt(i) <= "Z") || 
                            (tmpstr.charAt(i) >= "0" && tmpstr.charAt(i) <= "9")){
                        }
                        else{
                            alert(this.fName + "欄位須為英數字");
                            focusObject(this.obj);
                            return false;                        
                        }
                    }                
                    break;
                //日期格式檢核
                case "CDate":
                    if (!isDate(this.obj.value, 1)){
                        alert("輸入日期錯誤");
                        focusObject(this.obj);
                        return false;
                    }    
                    break;   
                case "EDate":
                    if (!isDate(this.obj.value)){
                        alert("輸入日期錯誤");
                        focusObject(this.obj);
                        return false;
                    }    
                    break;  
                case "ChkLen":
                    //alert(getLenEx(this.obj.value) + " " + this.obj.maxLength);
                    if (getLenEx(this.obj.value) > this.obj.maxLength){
                        alert(this.fName + "長度不可大於" + this.obj.maxLength);
                        focusObject(this.obj);
                        return false;
                    }
                    break;                            
            }
        }    
    }
    return true;
}
///////////////////////////////////////////////////////////////////////////////
//  Class      : field class
//  Description: define the field class
//  Author     : Rick Chen
//  Date       : 2004.03.01
///////////////////////////////////////////////////////////////////////////////
function field(obj, fName, chkRule){
    this.obj = obj;
    this.fName = fName;
    this.chkRule = chkRule;
    this.check = check; 
}
///////////////////////////////////////////////////////////////////////////////
//  Class      : add(obj, fName, chkRule)
//  Description: 新增一個檢核欄位
//  Author     : Rick Chen
//  Date       : 2004.03.01
///////////////////////////////////////////////////////////////////////////////
function add(obj, fName, chkRule){
    this.fields[this.fields.length] = new field(obj, fName, chkRule);
}
///////////////////////////////////////////////////////////////////////////////
//  Class      : validate()
//  Description: 檢核每個欄位
//  Author     : Rick Chen
//  Date       : 2004.03.01
///////////////////////////////////////////////////////////////////////////////
function validate(){
    for (var i = 0; i < this.fields.length; i++){
        if (!this.fields[i].check()){
            return false;
        }
    }
    return true;
}
///////////////////////////////////////////////////////////////////////////////
//  Class      : RCheck
//  Description: 檢核欄位class
//  Author     : Rick Chen
//  Date       : 2004.03.01
///////////////////////////////////////////////////////////////////////////////
function RCheck(){
    this.fields = new Array();
    this.add = add;
    this.validate = validate;
}
/*
-----------------------------------
--------  Util Function  ----------
-----------------------------------
*/
function ltrim(strInput)
{
    return strInput.replace(/^\s*/,"");
}
 
function rtrim(strInput)
{
    return strInput.replace(/\s*$/, "");
}

function trim(strInput)
{
    return rtrim(ltrim(strInput));
}


function DispPrintTitle(title, msg, flag){
    if (flag == null){
        flag = true;
    } 
    var outstr = 
    //'<table id="printTitle" width="95%" border="0" align="center" cellpadding="0" cellspacing="0" class="MainTable">' +
    '<tr>' +
    '  <td align="center">' + title + '</td>' +
    '</tr>' +
    '<tr>' +
    '  <td align="center">' + msg + '</td>' +
    '</tr>';
    //'</table>'; 
    if (flag) 
        document.write(outstr);
    else
        return outstr;    
}
/*
 fun desc: 跳出視窗選單 
 frm     : 預接收傳回值Form Name
 fields  : 預接收傳回值欄位名稱(可多個)
 theURL  : 選單網頁URL
 itop    : 顯示位置
 ileft   : 顯示位置
 ihegiht : 視窗高度
 iwidth  : 視窗寬度
 
 ex :
 <form name="MainForm" method="post" action="/FCBIB/CSController" >

  Value01:<input type="text" name="t1" value="">
  Value02:<input type="text" name="t2" value="">
  Value03:<input type="text" name="t3" value="">

  <A href="javascript:;" onClick="PopWin(document.MainForm,'t1,t2,t3','popwin.htm','100','200','100','200')"> 
    <img src=../images/openwin.gif> 
  </A>
 </form>
*/

function PopWin(frm,fields,theURL,itop,ileft,ihegiht,iwidth,func) { 
  var sFeatures="dialogHeight:"+ ihegiht +"px; dialogWidth: "+ iwidth +"px; dialogTop: "+ itop +"px; dialogLeft:"+ ileft +"px;  center:yes; help: no; resizable: no; status: no;";
  
  
  //var ret_val=window.showModalDialog(theURL,"",sFeatures);
  theURL=escape(theURL);  
  var ret_val=window.showModalDialog("./jsp/commons/popwin.jsp?CMD_URL="+theURL,"",sFeatures);
  //alert(ret_val);
  if (ret_val == undefined)  {
    var ary_ret_val=new Array();
  } else {
    eval(' var ary_ret_val=new Array(' + ret_val +');');     
  }
  
  if (fields != '') {  
    inx=0;
    ary_field = new Array();
    ary_field_inx=0;
    do {       
      inx=fields.indexOf(","); 
      if (inx > 0) {
        ary_field[ary_field_inx]=fields.substr(0,inx);       
        fields=fields.substr(inx+1,fields.length-inx-1);
      } else {
        ary_field[ary_field_inx]=fields;
      }
      ary_field_inx++;  
    }  while (inx >= 0);  
    
    var i=0;
    for(i=0;i<ary_field.length ;i++) {
      if (i <ary_ret_val.length && ary_ret_val[i]!=undefined) {
        if (ary_field[i] !='null'){
        
        	eval('var obj=frm.'+ary_field[i]+';');
        	
        	if (obj.type=='select-one') { //select obj
        	  var j=0;      	  
        	  for(j=0; j<obj.length ;j++ ) {
        	  	if (obj.options[j].value==ary_ret_val[i] ) {
	  						obj.options[j].selected =true;
	  				  }
        	  }      	  
        	} else { // txet obj
        		obj.value=ary_ret_val[i];      		
            //eval('frm.'+ary_field[i]+'.value="'+ary_ret_val[i]+'";');
          }
        }      
      }
    }
  }
  
  if (func!=null) {
    eval( func +'(ary_ret_val);');
    if (fields == ''); return ; 
  }
   
}





/* 
 fun desc: 友善列印 - 
           列印會將網頁物件 id = 'PrintHidden' 的暫時 隱藏
           列印送出後再恢復原來顯示畫面
           無傳入參數 但JSP網頁需將列印不需顯示的物件 id 設為'PrintHidden'
 ex :
 <table width="100%" border="0" cellpadding="5" cellspacing="1" id='PrintHidden' >
    <tr> <td class="MainButtonBk">
      <input  type="button" name="btn01" class="MainButton" value="完成"  onClick="javascript:history.go(-1);" >
      <input  type="button" name="btn01" class="MainButton" value="列印"  onClick="FriendPrint();" >
    </td> </tr>
  </table>
*/


function FriendPrint(TitleStr,FootFlag) {  
  var ary_className= new Array();
  var i=0;
  //if (TitleStr==null || TitleStr=='') TitleStr='';
 // alert(FootFlag);
  if (FootFlag==null ) FootFlag=true;
  //alert(FootFlag);
  if (typeof(PrintTitle) == 'object'){
    //alert(1);
    PrintTitle.className='PrintTitle';
  }

 // PrintDateTable.border =1;
 // alert(1);
  if ( TitleStr==null ){  
    PrintsTitle.className='PrintsTitle';    
  } else if (TitleStr!='') {
  	sTitle.innerText =TitleStr;
  	PrintsTitle.className='PrintsTitle';  
  } 
  
  if (typeof(PrintHidden) == 'object'){
    if (PrintHidden.length ) {
      for(i=0 ;i<PrintHidden.length ;i++) {
        ary_className[i]= PrintHidden[i].className;
        PrintHidden[i].className='DispHidden';
      }
        
    } else {
      ary_className[0]= PrintHidden.className;
      PrintHidden.className='DispHidden';    
    }
  }
  
  if (typeof(PrintShow) == 'object'){
    if (PrintShow.length ) {
      for(i=0 ;i<PrintShow.length ;i++) {        
        PrintShow[i].className='';
      }        
    } else {      
      PrintShow.className='';    
    }
  }
  
  
  if (typeof(PrintFoot) == 'object' && FootFlag==true){
    PrintFoot.className='PrintFoot';
    PrintFoot.style.top=document.body.scrollHeight+3;
  }
  
  print();
  if (typeof(PrintTitle) == 'object'){
    PrintTitle.className='DispHidden';
    
    
  }
  if (typeof(PrintFoot) == 'object'  && FootFlag==true){
    PrintFoot.className='DispHidden';
  }
  
 
  if (typeof(PrintsTitle) == 'object'){
     PrintsTitle.className='DispHidden';
  }

  if (typeof(PrintHidden) == 'object'){    
    if (PrintHidden.length ) {
      for(i=0 ;i<PrintHidden.length ;i++) {
        //alert(i);
        PrintHidden[i].className=ary_className[i];
      }
        
    } else {
      PrintHidden.className=ary_className[0];
      
    }    
  }
  
  if (typeof(PrintShow) == 'object'){
    if (PrintShow.length ) {
      for(i=0 ;i<PrintShow.length ;i++) {        
        PrintShow[i].className='DispHidden';
      }        
    } else {      
      PrintShow.className='DispHidden';    
    }
  }
  
  return false;
  
}

/* 傳回中文字串實際長度 */

function big5_len(TmpStr){
  var i=0;
  var len=0;
  if (TmpStr ==null )  return 0;
  if (TmpStr.length <=0 )  return 0;
  
  for(i=0;i<TmpStr.length ;i++) {
    c = TmpStr.substring(i,i+1);

    if (c > '~' ) {
      len=len+2;
    } else {
      len++;
    }
  }
  return len;
}

/* substr for 中文文夾雜字串 */
function substr_big5(TmpStr,start,counter) {
	
  var i=0;
  var c='';
  var n1=0;
  var n2=0;

  for(i=0;i<TmpStr.length ;i++) {
    c = TmpStr.substring(i,i+1);

    if (i<=start-n1) {
      if (c > '~' ) {
        n1=n1+1;
      }
    }
  }

  for(i=0;i<TmpStr.length ;i++) {
    c = TmpStr.substring(i,i+1);
    if (i >= start-n1 && i<=(start-n1)+counter-n2){
      if (c > '~' ) {
        n2=n2+1;
      }
    }

  }


  return (TmpStr.substr(start-n1,counter-n2));


}

/* 限制input(txet)物件 中英文資料長度 
ex: <input type="text" name="PDIGEST" size='11' maxlength="10" value="網路轉帳" class="MainContentInput" onkeyup="chk_max_len(this)" > 
*/
function chk_max_len(obj) {
	var tmp ='';
  len=big5_len(obj.value);
  if (len >obj.maxLength) {          
    //alert(obj.value);
    tmp =substr_big5(obj.value,0,obj.maxLength);    
    obj.value=tmp;
    return false;
  }
  return true;
}


function SplitInit(recTotal,recOffset ,recCount) {
  document.write('<input type="hidden" name="recTotal"  value='+ recTotal  +' >');
  document.write('<input type="hidden" name="recOffset" value='+ recOffset +' >');
  document.write('<input type="hidden" name="recCount"  value='+ recCount  +'  >');
}

function setSpiltPage(frm) {
  //alert("2");
  
  var PageNo=frm.SplitPage.options[frm.SplitPage.selectedIndex].value;
  var recCount =parseInt(frm.recCount.value,10);
  //alert(PageNo);
  frm.recOffset.value=(PageNo-1)*recCount;
 // alert("[recOffset]["+frm.recOffset.value+"]"+"[PageNo]["+PageNo+"]" );
  return false;

}


 
function dispSplitPage(frm ,func) {
	//alert(1);
  recTotal =parseInt(frm.recTotal .value,10) ;
  recOffset=parseInt(frm.recOffset.value,10) ;
  recCount =parseInt(frm.recCount .value,10) ;
 // func ='setSpiltPage('+frm.name+') ;'+func; 
//alert(2);
  
  if (recTotal <=recCount ) { return false;}
//alert(3);
  var tmp='';
  var i=0;
  var PageCount=parseInt(recTotal/recCount,10);
  var PageNo= parseInt(recOffset/recCount+1,10);
  var TenPageNo =parseInt((PageNo-1)/10,10);
  if (recTotal %recCount != 0)  PageCount =PageCount+1;
  if (recOffset  %recCount != 0)  PageNo    =PageNo+1;
 tmp=tmp+'<table width=100% border="0" align="center" cellpadding="0" cellspacing="0"  >' ;
   //  ' <tr> <td class="MainItemLeft"> 共〔 ' +recTotal + ' 〕 筆  /  總頁數〔 ' +PageCount + ' 〕 頁  /  目前為第〔 ' +PageNo +' 〕 頁   </td> ' ;
  
   tmp=tmp+'<td align=center  class="Context_td01" align=center id="PrintHidden" >' ;
  //tmp=tmp+'<img  src="'+imagePath+'go-button.gif" name=btnSplitPage onClick="'+func+'"> '   ;
  //tmp=tmp+' <select name="SplitPage"> ';
  //alert( PageCount);
  //alert("TenPageNo="+TenPageNo);
  //alert("PageNo="+PageNo);
  if (PageNo >10) {
    tmp=tmp +'&nbsp;<A href="javascript:setSpiltPage(document.'+ frm.name+','+(PageNo-10)+');'+func+' "> <font size=3> 上十頁 </font></A>';
  }
  
  for( i=(10*TenPageNo); i<PageCount && i< (10*TenPageNo)+10; i++) {
  	
  
    if (PageNo== (i+1) ) {
    	  tmp=tmp +'&nbsp; <font color="blue" size=3> <b>'+(i+1)+'  </b> </font>';
    	  
    	
    //  tmp=tmp+ '<option value='+ (i+1)+ ' selected > 第'+(i+1)+'頁 </option>';  
    } else {
      //alert(i);
      tmp=tmp +'&nbsp; <A href="javascript:setSpiltPage(document.'+ frm.name+','+(i+1)+');'+func+' "> <font size=3>' +(i+1)+'  </font></A>';
    //  tmp=tmp+ '<option value='+ (i+1)+ '          > 第'+(i+1)+'頁 </option>';
    }
    
    
    
    
  
  }
  if ( PageCount > (10*TenPageNo)+10) {
  	 var NextPageNo =PageNo+10 ;
  	 if ( NextPageNo > PageCount) {
  	 	   NextPageNo =PageCount ;
  	 }
  	 tmp=tmp +'&nbsp;<A href="javascript:setSpiltPage(document.'+ frm.name+','+NextPageNo+');'+func+' "> <font size=3> 下十頁 </font></A>';
  }
  //tmp=tmp +'</select>';
 // alert(tmp);
  tmp=tmp+'</td> </tr> </table>';
  document.write(tmp);
}



function dispCommBtn(print_flag,save_flag,mail_falag) {
	
	
	var tmp ="<span class='DispHidden' > " ;
	if (print_flag) {
	  tmp=tmp+ "<input class='Context_inout' type=button value='列印' onclick='_doPrint()' >&nbsp;";
	} 

	if (save_flag) {
		tmp=tmp+ "<input class='Context_inout' type=button value='存檔' onclick='_doSave()' > &nbsp;";
	}
	/*  //等寄信功能完成後.. 在顯示此按鈕 
	if (mail_falag) {
		tmp=tmp+ "<input class='Context_inout' type=button value='寄信' onclick='_doMail()' > &nbsp;";
	}
	*/
	tmp=tmp+" </span>";
	
	document.write(tmp);
	
	
}


function _doSave() {
	//Pwin=open('./jsp/commons/popwin_save.jsp',"popwin_print","height=450,width=600,scrollbars=yes,status=yes,toolbar=no,menubar=no,location=no");
	document._hidden_form._save_html.value=document.getElementById('Location').innerHTML;
	
	//alert(document._hidden_form._save_html.value);
	
	document._hidden_form.submit();
	
	//alert('存檔功能開發中!!..');

}

function _doMail() {
	
	
	alert('寄信功能開發中!!..');

}


function _doPrint() {
	
	Pwin=open('./jsp/commons/popwin_print.jsp',"popwin_print","height=450,width=600,scrollbars=yes,status=yes,toolbar=no,menubar=no,location=no");

}
  


function goSubHome(){ 
  window.location.href=_NowSubHome;

}
  

function str_trim(str)
{
	while( str.length >0) {
      if (str.charAt(str.length-1) != '　' & str.charAt(str.length-1) != ' '){
          break;
      }
      str=str.substring(0, str.length-1) ;
  }
	document.write( str );
}


