/**
 * Function Name   : isFormat
 * Description     : 檢查輸入的內容是否符合指定格式
 * Input Parameter : object of value, format
 * Output Parameter: 
 * Return Value    : true :有問題  false:無
 */
function isErrorFormat(checkObj,format,msg) {
	var result = checkObj.value.search( format ) == -1;
	if ( result ){
		checkObj.value = "";
		checkObj.focus();
		alert(msg);
	}
	return result;
}

/**
 * Function Name   : isEmail
 * Description     : 檢查輸入的 Email Address
 * Input Parameter : Email Address
 * Output Parameter: 
 * Return Value    : true :有問題  false:無
 */
function isEmail(checkString,msg) {
    var newstr = "";
    var at = false;
    var dot = false;

    // IF EMAIL ADDRESS HAS A '@' CHARACTER
    if (checkString.value.indexOf("@") != -1) {
        at = true;

    // IF EMAIL ADDRESS HAS A '.' CHARACTER
    } else if (checkString.value.indexOf(".") != -1) {
        dot = true;
    }

    // PARSE REMAINDER OF STRING
    for (var i = 0; i < checkString.value.length; i++) {
        ch = checkString.value.substring(i, i + 1)
        if ( (ch >= "A" && ch <= "Z") || (ch >= "a" && ch <= "z")
             || (ch == "@") || (ch == ".") || (ch == "_")
             || (ch == "-") || (ch >= "0" && ch <= "9") ) {
                 newstr += ch;
                 if ( ch == "@" ) {
                     at=true;
                 }

                 if ( ch == "." ) {
                    dot=true;
                 }
        }
    }

    if ( (at == true) && (dot == true) ) {
        //return newstr;
        return false ;
    } else {

        // DISPLAY ERROR MESSAGE
        if ( msg != "" ) {
            alert (msg);
            checkString.focus();
           } 

        //return checkString;
        return true ;
    }
}


/*
 * Function Name   : isInt
 * Description     : CHECK STRING - ENSURE ALL CHARACTERS ARE DIGITS
 * Input Parameter : checkString, msg, max_mbr
 * Output Parameter: 
 * Return Value    : true:不為Interger,false:為Interger
 */
function isInt( obj1, msg, min_mun, max_mun )
{
    checkString=obj1.value;
    newString = "";    // REVISED/CORRECTED STRING
    count = 0;         // COUNTER FOR LOOPING THROUGH STRING

    // LOOP THROUGH STRING CHARACTER BY CHARACTER
    for (i = 0; i < checkString.length; i++)
    {
        ch = checkString.substring(i, i+1);

        // ENSURE CHARACTER IS A DIGIT
        if (ch >= "0" && ch <= "9")
        {
            newString += ch;
        }
    }
    if (checkString != newString || checkString < min_mun || checkString > max_mun || checkString == "" )
    {
        if ( msg != "" ) {
            alert( msg ) ;
            obj1.focus();
        }
        return(true) ;
    } else
    {
        return(false) ;
    }
}



/**
 * Function Name   : isSpace
 * Description     : 檢查字串中是否有空白
 * Input Parameter : checkString, msg
 * Output Parameter: 
 * Return Value    : true:有空白,false:無有空白
 */
function isSpace( checkString ) {
    var strArray = new Array() ;
    var count = 0;         // COUNTER FOR LOOPING THROUGH STRING

    re = /\s/g;
    strArray = checkString.match(re) ;
    count    = ( !strArray ? 0 : strArray.length ) ;

    if ( count > 0 ) {
        return(true) ;
    } else {
        return(false) ;
    }
}

/**
 * Function Name   : isFieldBlank
 * Description     : Check for a blank field
 * Input Parameter : none
 * Output Parameter: none
 * Return Value    : true:空白,false:沒有空白
 */
function isFieldBlank(theField,msg) {
    if ( theField.value == "" ) {
        if ( msg != "" ) {
            alert( msg ) ;        
            theField.focus();
         }   
	return (true);
    } else
	return (false);
}

/**
 * Function Name   : isRadioChecked
 * Description     : Radio Check must to one!
 * Input Parameter : none
 * Output Parameter: none
 * Return Value    : true:沒按,false:有按了
 */
function isRadioChecked(obj,msg) {
    var isOK=false;

    if(obj.length>0) {
        //muti radio
        for(i=0;i<obj.length;i++) 
          if ( obj[i].checked  ) {
                isOK=true;       
                break;
           }     
     } else {   
            if ( obj.checked  ) isOK=true;
     }
     if(!isOK) {
        if ( msg != "" ) {
            alert( msg ) ;        
            if(obj.length>0) obj[0].focus();
                else obj.focus();
        }
      } 
      return !isOK;
}

/**
 * Function Name   : isComboSelected
 * Description     : 看是否有選擇
 * Input Parameter : none
 * Output Parameter: none
 * Return Value    : true:沒選,false:有選了
 */
function isComboSelected(obj,msg) {
    var isFail=false;

    if(obj.value=="") {
        if ( msg != "" ){
            alert( msg ) ;        
            obj.focus();
        }
        isFail=true;
      } 
      return isFail;
}

/**
 * Function Name   : isMultiComboSelected
 * Description     : 相關的Combo都要看是否有選擇
 * Input Parameter : none
 * Output Parameter: none
 * Return Value    : true:沒選,false:有選了
 */
function isMultiComboSelected(obj1,obj2,msg) {
    var isFail=false;

    if(obj1.value=="" || obj2.value=="" ) {
        if ( msg != "" ) {
            alert( msg ) ; 
            if(obj1.value=="")                   
                obj1.focus();
              else 
                obj2.focus();
        }        
        isFail=true;
      } 
      return isFail;
}

/**
 * Function Name   : isRadioOther
 * Description     : 檢查 選擇時 有其它的按
 * Input Parameter : radioObj,flag=-1 只有一個,textObj,msg1=有選沒填,msg2=有填沒選
 * Output Parameter: none
 * Return Value    : true:有問題,false:沒問題
 */
function isRadioOther(radioObj,flag,textObj,msg1,msg2) {
    var isFail=false;
    if(flag==-1) {
            if(radioObj.checked && textObj.value=='') {
                if ( msg1 != "" ) {
                    alert( msg1 ) ;  
                    textObj.focus();
                }    
                isFail=true;                      
            }
            if(radioObj.checked==false && textObj.value!='') {
                if ( msg2 != "" ) {
                    alert( msg2 ) ;  
                    radioObj.focus();
                 }   
                isFail=true;                      
            }    
    } else {
            if(radioObj[flag].checked && textObj.value=='') {
                if ( msg1 != "" ) {
                    alert( msg1 ) ;  
                    textObj.focus();
                }    
                isFail=true;                      
            }
            if(radioObj[flag].checked==false && textObj.value!='') {
                if ( msg2 != "" ) {
                    alert( msg2 ) ;  
                    radioObj[flag].focus();
                 }   
                isFail=true;                      
            }         
     }
      return isFail;
}

/**
 * Function Name   : isRadioOtherInt
 * Description     : 檢查 選擇時 有其它的按  其它一定要是數值不能為0
 * Input Parameter : radioObj,flag,textObj,msg1=有選沒填,msg2=有填沒選
 * Output Parameter: none
 * Return Value    : true:有問題,false:沒問題
 */
function isRadioOtherInt(radioObj,flag,textObj,msg1,msg2) {
    var isFail=false;
      
   if(flag==-1) {
            if(radioObj.checked && isInt(textObj,"",1,999999999999)) {
                if ( msg1 != "" ) {
                    alert( msg1 ) ;  
                    textObj.focus();
                }    
                isFail=true;                      
            }
            if(radioObj.checked==false && textObj.value!='') {
                if ( msg2 != "" ) {
                    alert( msg2 ) ;  
                    radioObj.focus();
                 }   
                isFail=true;                      
            }   
             
    } else {
            if(radioObj[flag].checked && isInt(textObj,"",1,999999999999)) {
                if ( msg1 != "" ) {
                    alert( msg1 ) ;  
                    textObj.focus();
                }    
                isFail=true;                      
            }
            if(radioObj[flag].checked==false && textObj.value!='') {
                if ( msg2 != "" ) {
                    alert( msg2 ) ;  
                    radioObj[flag].focus();
                 }   
                isFail=true;                      
            }         
     }
      return isFail;      
}

/**
 * Function Name   : today
 * Description     : 取得當日日期或年、月、日
 * Input Parameter : 1.value = "year" or "month" or "day" or null
 *                     例如：today("month")，則傳回該月份
 *                   2.如不帶參數進去則傳回完整年月日，否則傳回指定的值
 *                     to_day : 當日日期，格式如 2000/01/01	
 * Output Parameter: none
 * Return Value    : 
 */
function today(value) {
    var this_date = new Date() ;
    var this_year = ((this_date.getYear()) == 99 ? (1900+(this_date.getYear())) : this_date.getYear());
    var this_month = (this_date.getMonth()+1) < 10 ? "0"+(this_date.getMonth()+1) : (this_date.getMonth()+1) ;
    var this_day = this_date.getDate() < 10 ? "0"+this_date.getDate() : this_date.getDate() ;

    if ( value == "year" ) {
        return this_year ;
    } else if ( value == "month" ) {
        return this_month ;
    } else if ( value == "day" ) {
        return this_day ;
    } else {
        this_today = this_year + "-" + this_month + "-" + this_day ;
        return this_today ;
    }
}




/**
 * Function Name   : to_String
 * Description     : Get member as the format of "99"
 * Input Parameter : mun, n
 * Output Parameter: none
 * Return Value    : 將數字前面補零,後面補空白
 */
function to_String( mun, n ) {
    mun     = parseInt( mun, 10 ) ;
    mun     = mun + " " ;
    n       = parseInt( n , 10 ) ;
    mun_len = mun.length-1 ;

    for ( i = 0 ; i < (n-mun_len) ; i ++ ) {
        mun = "0" + mun ;
    }
    return( mun ) ; 
}


/**
 * Function Name   : isPid
 * Description     : 檢查身份字號
 * Input Parameter : 身份字號
 * Output Parameter: none
 * Return Value    : true 代表錯誤 false 代表正確
 */
function isPid(obj1,msg) {
    var ID=obj1.value.toUpperCase();
    var isFail=false;
    if ( ID.length!=10 ) {
	isFail=true;
    }

    var aryid= new Array(10)
    for ( var i=0;i<10;i++ ) {aryid[i]=ID.charAt(i)}
    var strChr='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
    aryid[0]=strChr.indexOf(aryid[0])
	if( aryid[0]==-1 ) {
		isFail=true;
	}

    if( aryid[1]!=1 && aryid[1]!=2 ) {	
	isFail=true;
    }

    var code=new Array(26)
    code[0]=1;code[1]=10;code[2]=19;code[3]=28;code[4]=37;code[5]=46;	
    code[6]=55;code[7]=64;code[8]=39;code[9]=73;code[10]=82;code[11]=2;
    code[12]=11;code[13]=20;code[14]=48;code[15]=29;code[16]=38;code[17]=47;	
    code[18]=56;code[19]=65;code[20]=74;code[21]=83;code[22]=21;code[23]=3;	
    code[24]=12;code[25]=30;

    var result=code[aryid[0]]
    for ( var i=1;i<10;i++ ) {
	var strnum='0123456789'
	aryid[i]=strnum.indexOf(aryid[i])
	if( aryid[i]==-1 ) {
	} else {
	    result+=aryid[i]*(9-i);
	}
    }

    result+=1*aryid[9]
    if( result%10!=0 ) {
	isFail=true;
    }			

    if(isFail) {
         if ( msg != "" ) {
            alert( msg ) ;        
            obj1.focus();    
         }      
    }
    return isFail;
}


/**
 * Function Name   : Encode
 * Description     : 加密
 * Input Parameter : 所要加密的字串
 * Output Parameter: none
 * Return Value    : 加完密後的字串
*/
function Encode (buf) {
    var sb='';
    var i;
    for ( i = 0 ; i < buf.length; i++ )
        sb = sb + String.fromCharCode(buf.charCodeAt(buf.length-i-1));
    return sb;
}


/**
 * Function Name   : isDateFormat
 * Description     : 檢查是否為日期格式
 * Input Parameter : 所要檢查的字串
 * Output Parameter: none
 * Return Value    : true 不為日期格式 false 是
*/
function isDateFormat (c_date,msg) {
    if ( c_date.value.length==10 && c_date.value.substring(4,5)=="-" && c_date.value.substring(7,8)=="-" )
        return (false);
    else {
         if ( msg != "" )
            alert( msg ) ;        
        c_date.focus();       
        return (true);
        
   }
}
/**
 * Function Name   : isTimeFormat
 * Description     : 檢查是否為時間格式
 * Input Parameter : 所要檢查的字串
 * Output Parameter: none
 * Return Value    : true:有問題 or false:沒問題
*/
function isTimeFormat (c_date,msg) {
    if ( c_date.value.length==5 && c_date.value.substring(2,3)==":" ) {
	if ( c_date.value.substring(0,2)<'24' || c_date.value.substring(3,5)<'61' )
        return (false);
      } else {
         if ( msg != "" ) {
            alert( msg ) ;        
            c_date.focus();         
          }  
         return (true);
        }
}

/**
 * Function Name   : isDateRange
 * Description     : 檢查輸入的日期的範圍是否正確
 * Input Parameter : 所要檢查的字串
 * Output Parameter: none
 * Return Value    : true:有問題 or false:沒問題
*/
function isDateRangeString (c_date) {
    var c_month;
    var c_year;
    var isFail=false;
    if(c_date.value.length==10) {
      range = new Array('31','29','31','30','31','30','31','31','30','31','30','31');
  
      c_month = parseInt(c_date.value.substring(5,7),10);
      c_year = parseInt(c_date.value.substring(0,4),10);
      if(isLeapYear(c_year)) range[1]='29';    
      if ( c_date.value.substring(5,7)>'12' || c_date.value.substring(5,7)<'01' )
          isFail=true;
  
      if ( c_date.value.substring(8,10)>range[c_month-1] || c_date.value.substring(8,10)<'01' )
          isFail=true;
    } else isFail=true;    
    if(isFail) {
         if ( msg != "" ) {
            alert( msg ) ;        
            obj1.focus();       
          }  
    }
    return isFail;
}

/**
 * Function Name   : isDateRange
 * Description     : 檢查輸入的日期的範圍是否正確
 * Input Parameter : 所要檢查的字串
 * Output Parameter: none
 * Return Value    : true:有問題 or false:沒問題
*/
function isDateRange (c_date,msg) {
    var c_month;
    var c_year;
    var isFail=false;
    if(c_date.value.length==10) {
      range = new Array('31','29','31','30','31','30','31','31','30','31','30','31');
  
      c_month = parseInt(c_date.value.substring(5,7),10);
      c_year = parseInt(c_date.value.substring(0,4),10);
      if(isLeapYear(c_year)) range[1]='29';    
      if ( c_date.value.substring(5,7)>'12' || c_date.value.substring(5,7)<'01' )
          isFail=true;
  
      if ( c_date.value.substring(8,10)>range[c_month-1] || c_date.value.substring(8,10)<'01' )
          isFail=true;
    } else isFail=true;
    if(isFail) {
         if ( msg != "" ) {
            alert( msg ) ;        
            c_date.focus();     
          }    
    }
    return isFail;
}

/**
 * Function Name   : check_length
 * Description     : 檢查字串長度 用於onKeyPress
 * Input Parameter : obj, length
 * Return Value    : true累加,false:不再累加
 */
function check_length(obj,length ) {
    if(obj.value.length>=length) return false;
    else return true;
}
/**
 * Function Name   : isTWDateRange
 * Description     : 檢查民國版輸入的日期的範圍是否正確
 * Input Parameter : 所要檢查的字串
 * Output Parameter: none
 * Return Value    : true:有問題 or false:沒問題
*/
function isTWDateRange (c_year,c_month,c_day,msg) {
    range = new Array('31','29','31','30','31','30','31','31','30','31','30','31');
    if(isLeapYear(c_year.value+1911)) range[1]='29';
    if ( c_month.value.length==1) c_month.value="0"+c_month.value;
    if ( c_day.value.length==1) c_day.value="0"+c_day.value;    
    if ( c_month.value>'12' || c_month.value<'01' ) {
         if ( msg != "" ) {
            alert( msg ) ;         
            c_month.focus();    
          }  
        return true;
    }
        

    if ( c_day.value>range[c_month-1] || c_day.value<'01' ) {
         if ( msg != "" ) {
            alert( msg ) ;         
            c_day.focus();    
          }  
        return true;
    }
    return false; 
}

//是否為閏年
function isLeapYear (Year)
{
	if (((Year % 4)==0) && ((Year % 100)!=0) || ((Year % 400)==0))
	{
	  return (true);
	}
	else
	{ return (false)
	}
}

/**
 * Function Name   : isNum
 * Description     : 檢查字串是否為數字
 * Input Parameter : 所要檢查的字串
 * Output Parameter: 
 * Return Value    : true:不為Interger,false:為Interger
 */
function isNum(obj,msg ) {
    var checkString=obj.value;
    var newString = "";    // REVISED/CORRECTED STRING
    // LOOP THROUGH STRING CHARACTER BY CHARACTER
    for ( i = 0; i < checkString.length; i++ ) {
        ch = checkString.substring(i, i+1);
        // ENSURE CHARACTER IS A DIGIT
        if ( ch >= "0" && ch <= "9" || ch=="." ) {
            newString += ch;
        }
    }
    
    if ( checkString != newString || checkString == "" ) {
         if ( msg != "" ) {
            alert( msg ) ;         
            obj.focus();     
         }          
        return(true) ;
    } else {
        return(false) ;
    }
}


/**
 * Function Name   : MoneytoString
 * Description     : 將數字金額轉成國字金額
 * Input Parameter : 所要檢查的字串一定要為數字
 * Output Parameter: 字串
 * Return Value    : 國字金額
 */
function MoneytoString(no) {
    var temp = "" , returnstr = "" ,temp1 = "" ;
    var strno = no ;
    var strno1 = "" ;
    var start = false , zero = false ;
    var i = 0;
    var strnu = 0 ;
    strnu = strno.indexOf(".");
    strno = no.substring(0,strnu);
    strno1= no.substring(strnu,no.length);

    if ( check_Num(no) && no.length!= 0 ) {
	return "不是正確的數值" ;
    }
    if ( no.length == 0 ) {
	return "你未輸入任何值" ;
    }
    if ( no == 0 ) {
	return "零元整"  ;
    }
    for ( i = strno.length ; i < 10 ; i ++ ) {
	strno="0" + strno ; 
    }
    for ( i = 0 ; i < strno1.length  ; i ++ ) {
	switch(strno1.substring(i,i+1)) {
	    case "0" :
			temp1+="零";
			break ;
	    case "1" :
			temp1+="壹";
			break ;
	    case "2" :
			temp1+="貳";
			break ;
	    case "3" :
			temp1+="參";
			break ;
	    case "4" :
			temp1+="肆";
			break ;
	    case "5" :
			temp1+="伍";
			break ;
	    case "6" :
			temp1+="陸";
			break ;
	    case "7" :
			temp1+="柒";
			break ;
	    case "8" :
			temp1+="捌";
			break ;
	    case "9" :
			temp1+="玖";
			break ;
	    case "." :
			temp1+="點";
	    break ;				
	}
    }	

    for ( i = strno.length ; i > 0 ; i -- ) {
	switch(strno.substring(i-1,i)) {
	    case "0" :
			temp+="零";
			break ;
	    case "1" :
			temp+="壹";
			break ;
	    case "2" :
			temp+="貳";
			break ;
	    case "3" :
			temp+="參";
			break ;
	    case "4" :
			temp+="肆";
			break ;
	    case "5" :
			temp+="伍";
			break ;
	    case "6" :
			temp+="陸";
			break ;
	    case "7" :
			temp+="柒";
			break ;
	    case "8" :
			temp+="捌";
			break ;
	    case "9" :
			temp+="玖";
			break ;
	}
    }
	//億
    if ( temp.substring(9,10) != "零" ) {
	returnstr += temp.substring(9,10) + "拾";
	start = true;
    }

    if ( temp.substring(8,9) != "零" ) {
	returnstr += temp.substring(8,9);
	start=true ;
	zero=false ;
    } else if ( start && !zero ) {
	returnstr += "零" ;
	zero=true ;
    }
    
    if ( start ) {
	if ( returnstr.substring(returnstr.length-1,returnstr.length) == "零" ) {
	    returnstr = returnstr.substring(0,returnstr.length-1) ;
	} 
	returnstr += "億" ;
    }
    
    zero = false ;
    //萬
    if ( temp.substring(7,8) !="零" ) {
	returnstr += temp.substring(7,8) + "仟";
	start=true;
    } else if ( start ) {	
	returnstr += "零" ;
	zero=true ;
    }	
    if ( temp.substring(6,7) != "零" ) {
	returnstr += temp.substring(6,7) + "佰";
	start=true;
	zero=false ;
    } else if ( start && !zero ) {
	returnstr += "零" ;
	zero=true ;
    }
    if ( temp.substring(5,6) != "零" ) {
	returnstr += temp.substring(5,6) + "拾";
	start=true;
	zero=false ;
    } else if (start && !zero) {
	returnstr += "零" ;
	zero=true ;
    }
    if ( temp.substring(4,5) != "零" ) {
	returnstr += temp.substring(4,5);
	start=true;
	zero=false ;
    } else if ( start && !zero ) {
	returnstr += "零" ;
	zero=true ;
    }
    if ( start ) {
	if ( returnstr.substring(returnstr.length-1,returnstr.length) == "零" ) {
	    returnstr = returnstr.substring(0,returnstr.length-1) ;
	} 
	returnstr += "萬" ;
    }
    zero = false ;
    //元----------------------------------------------------------------------------------
    if ( temp.substring(3,4) != "零" ) {
	returnstr += temp.substring(3,4) + "仟";
	start=true;
    } else if ( start ) {	
	returnstr += "零" ;
	zero=true ;
    }
    if ( temp.substring(2,3) != "零" ) {
	returnstr += temp.substring(2,3) + "佰";
	start=true;
	zero=false ;
    } else if ( start && !zero ) {
	returnstr += "零" ;
	zero=true ;
    }
    if ( temp.substring(1,2) != "零" ) {
	returnstr += temp.substring(1,2) + "拾";
	start=true;
	zero=false ;
    } else if ( start && !zero ) {
	returnstr += "零" ;
	zero=true ;
    }
    if ( temp.substring(0,1) != "零" ) {
	returnstr += temp.substring(0,1);
	start=true;
	zero=false ;
    } else if ( start && !zero ) {
	returnstr += "零" ;
	zero=true ;
    }
    //驗證完畢
    if ( start ) {
	if ( returnstr.substring(returnstr.length-1,returnstr.length) == "零" ) {
	    returnstr = returnstr.substring(0,returnstr.length-1) ;
	} 
	returnstr = returnstr + temp1 + "元整" ;
    }	
    return returnstr  ;
}

/*
目的 : 控制使用者可以輸入的字元為何，若輸入非允許的字元則不會被接受
輸入 :
  e : 直接帶入 event
  goods : 允許輸入的字元
輸出 : true or false
範例 : <input type="text" name="price" onKeyPress="return goodchars(event,'0123456789')">
*/
function goodchars(e, goods)
{
var key, keychar;
key = getkey(e);
if (key == null) return true;
keychar = String.fromCharCode(key);
keychar = keychar.toLowerCase();
goods = goods.toLowerCase();
if (goods.indexOf(keychar) != -1)
	return true;
return false;
}

function getNumber(event){
 return goodchars(event,'0123456789.');
}

function getTel(event) {
 return goodchars(event,'0123456789()-#'); 
}
function getEmail(event) {
 return goodchars(event,'0123456789ABCEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz@.-_'); 
}
function getDate(event) {
var isIE = navigator.userAgent.search("MSIE") > -1;  
if(isIE)
 return goodchars(event,'0123456789-'); 
else
 return null
}

function getTime(event) {
 return goodchars(event,'0123456789:'); 
}

function noChinese(obj)
{
if (obj.value == '') return true;
for(i=0;i<obj.value.length;i++){
   if(obj.value.charCodeAt(i)>128) {
     alert('該欄位不能輸入中文字!');
     //obj.value='';
     obj.focus();
     break;
   }
}
}

function getkey(e)
{
if (window.event)
   return window.event.keyCode;
else if (e)
   return e.which;
else
   return null;
}

function getLandLevelGroundSum(ll) {
   var sum=0;
   sum=ll/3.3058;
   return sum;
}

function setData(objarray,dvalue) {
 for(i=0;i<objarray.length;i++) {
     //var obj=eval("form."+objarray[i]); 
     var obj=eval("document.getElementsByName('"+objarray[i]+"')");

     if(typeof(obj)=='undefined') continue;          
          else if(obj.length==1) obj=eval("document.getElementsByName('"+objarray[i]+"')[0]");
     //再防一次~~目前發現是多個動態的radio會需要
     if(typeof(obj)=='undefined') continue;           
             //單一物件
             switch (obj.type) {
                case 'text':
                        obj.value=dvalue[i];
                        break;
                case 'textarea':
                        obj.value=dvalue[i];
                        break;                          
                case 'hidden':
                        obj.value=dvalue[i];
                        break;                          
                case 'radio':
                        if(obj.value==dvalue[i]) obj.checked=true;
                        break;
                case 'checkbox':
                        if(obj.value==dvalue[i]) obj.checked=true;
                        break;  
                case 'select-one':
                        for(j=0;j<obj.length;j++) {
                           if(obj.options[j].value==dvalue[i]) {
                                   obj.selectedIndex=j;
                                   break;
                           }
                        }
                        break;   
                default:  
                 if(typeof(obj.type)=='undefined') {
                //複數物件 radio checkbox
                        for(j=0;j<obj.length;j++) {
                          if(obj[j].type=='checkbox' || obj[j].type=='radio' ) {
                                    if(obj[j].value==dvalue[i]) obj[j].checked=true;
                                 }   
                        }
                        break;
                  }
        }
     } 
 }
 
 function setMultiData(flag,objarray,dvalue) {
 for(i=0;i<objarray.length;i++) {
     var obj=eval("document.getElementsByName('"+objarray[i]+"')"); 

     if(typeof(obj)=='undefined') continue;          
          else if(obj.length>=flag) obj=eval("document.getElementsByName('"+objarray[i]+"')["+flag+"]");  
     //再防一次~~目前發現是多個動態的radio會需要
     if(typeof(obj)=='undefined') continue;           
             //單一物件
             switch (obj.type) {
                case 'text':
                        obj.value=dvalue[i];
                        break;
                case 'textarea':
                        obj.value=dvalue[i];
                        break;                          
                case 'hidden':
                        obj.value=dvalue[i];
                        break;                          
                case 'radio':
                        if(obj.value==dvalue[i]) obj.checked=true;
                        break;
                case 'checkbox':
                        if(obj.value==dvalue[i]) obj.checked=true;
                        break;  
                case 'select-one':
                        for(j=0;j<obj.length;j++) {
                           if(obj.options[j].value==dvalue[i]) {
                                   obj.selectedIndex=j;
                                   break;
                           }
                        }
                        break;   
                default:  
                 if(typeof(obj.type)=='undefined') {
                //複數物件 radio checkbox
                        for(j=0;j<obj.length;j++) {
                          if(obj[j].type=='checkbox' || obj[j].type=='radio' )
                           if(obj[j].value==dvalue[i]) obj[j].checked=true;
                        }
                        break;
                  }
              }
     } 
 } 
function showData(objarray,dvalue) {
 for(i=0;i<objarray.length;i++) {
     var obj=eval("document.getElementsByName('"+objarray[i]+"')");
     //alert("document.getElementsByName('"+objarray[i]+"')[0]");
     if(typeof(obj)=='undefined') continue;          
          else if(obj.length==1) obj=eval("document.getElementsByName('"+objarray[i]+"')[0]");
     //再防一次~~目前發現是多個動態的radio會需要
     if(typeof(obj)=='undefined') continue;           
            switch (obj.type) {
                case 'text':
                        obj.value=dvalue[i];
                        break;
                case 'textarea':
                        obj.value=dvalue[i];
                        break;                          
                case 'hidden':
                        obj.value=dvalue[i];
                        break;                        
                case 'radio':
                        if(obj.value==dvalue[i]) obj.checked=true;
                        break;
                case 'checkbox':
                        if(obj.value==dvalue[i]) obj.checked=true;
                        break;  
                case 'select-one':
                        for(j=0;j<obj.length;j++) {
                           if(obj.options[j].value==dvalue[i]) {
                                   obj.selectedIndex=j;
                                   break;
                           }
                        }
                        break;   
                default:  
                 if(typeof(obj.type)=='undefined') {

                    if(typeof(obj.length)=='undefined') {
                      // spanID
                      obj.innerHTML=dvalue[i];
                    
                    } else {
                     //複數物件 radio checkbox 
                        for(j=0;j<obj.length;j++) {
                          if(obj[j].type=='checkbox' || obj[j].type=='radio' )
                           if(obj[j].value==dvalue[i]) obj[j].checked=true;
                        }
                    }    
                  break;
                  }
              }     
    }
 }
function showMultiData(flag,objarray,dvalue) {
 for(i=0;i<objarray.length;i++) {
     var obj=eval("document.getElementsByName('"+objarray[i]+"')");

     if(typeof(obj)=='undefined') continue;          
          else if(obj.length>=flag) obj=eval("document.getElementsByName('"+objarray[i]+"')["+flag+"]");     
     //再防一次~~目前發現是多個動態的radio會需要
     if(typeof(obj)=='undefined') continue; 
            switch (obj.type) {
                case 'text':
                        obj.value=dvalue[i];
                        break;
                case 'textarea':
                        obj.value=dvalue[i];
                        break;                          
                case 'hidden':
                        obj.value=dvalue[i];
                        break;                        
                case 'radio':
                        if(obj.value==dvalue[i]) obj.checked=true;
                        break;
                case 'checkbox':
                        if(obj.value==dvalue[i]) obj.checked=true;
                        break;  
                case 'select-one':
                        for(j=0;j<obj.length;j++) {
                           if(obj.options[j].value==dvalue[i]) {
                                   obj.selectedIndex=j;
                                   break;
                           }
                        }
                        break;   
                default:  
                 if(typeof(obj.type)=='undefined') {
                    if(typeof(obj.length)=='undefined') {
                      // spanID
                      obj.innerHTML=dvalue[i];
                    
                    } else {
                     //複數物件 radio checkbox 
                        for(j=0;j<obj.length;j++) {
                          if(obj[j].type=='checkbox' || obj[j].type=='radio' )
                           if(obj[j].value==dvalue[i]) obj[j].checked=true;
                        }
                    }    
                  break;
                  }
              }     
    }
 } 
 
// -------------------------------------------------------------------
// autoComplete (text_input, select_input, ["text"|"value"], [true|false])
//   Use this function when you have a SELECT box of values and a text
//   input box with a fill-in value. Often, onChange of the SELECT box
//   will fill in the selected value into the text input (working like
//   a Windows combo box). Using this function, typing into the text
//   box will auto-select the best match in the SELECT box and do
//   auto-complete in supported browsers.
//   Arguments:
//      field = text input field object
//      select = select list object containing valid values
//      property = either "text" or "value". This chooses which of the
//                 SELECT properties gets filled into the text box -
//                 the 'value' or 'text' of the selected option
//      forcematch = true or false. Set to 'true' to not allow any text
//                 in the text box that does not match an option. Only
//                 supported in IE (possible future Netscape).
// -------------------------------------------------------------------
function autoComplete (field, select, property, forcematch) {
	var found = false;
	for (var i = 0; i < select.options.length; i++) {
	if (select.options[i][property].toUpperCase().indexOf(field.value.toUpperCase()) == 0) {
		found=true; break;
		}
	}
	if (found) { select.selectedIndex = i; }
	else { select.selectedIndex = -1; }
	if (field.createTextRange) {
		if (forcematch && !found) {
			field.value=field.value.substring(0,field.value.length-1); 
			return;
			}
		var cursorKeys ="8;46;37;38;39;40;33;34;35;36;45;";
		if (cursorKeys.indexOf(event.keyCode+";") == -1) {
			var r1 = field.createTextRange();
			var oldValue = r1.text;
			var newValue = found ? select.options[i][property] : oldValue;
			if (newValue != field.value) {
				field.value = newValue;
				var rNew = field.createTextRange();
				rNew.moveStart('character', oldValue.length) ;
				rNew.select();
				}
			}
		}
	} 
	
/**
 * Function Name   : selectAllCheck
 * Description     : Radio Check must to one!
 * Input Parameter : objname:check object name,event: select all or nonselect all
 * Output Parameter: none
 * Return Value    : none
 */
function selectAllCheck(objname,event) {
    var isOK=false;
    var obj=eval(objname);
    if(obj.length>0) {
        //muti check box
        for(i=0;i<obj.length;i++) 
          if (event=="select" && obj[i].disabled==false)
                obj[i].checked=true;       
             else 
                obj[i].checked=false;   
     } else {   
          if (event=="select" && obj.disabled==false)
                obj.checked=true;       
             else 
                obj.checked=false; 
     }
}	

function printpr()
{
var OLECMDID = 7;
/* OLECMDID values:
* 6 - print
* 7 - print preview
* 8 - page setting
* 1 - open window
* 4 - Save As
*/
var PROMPT = 1; // 2 DONTPROMPTUSER 
var WebBrowser = "<OBJECT ID='WebBrowser1' WIDTH=0 HEIGHT=0 CLASSID='CLSID:8856F961-340A-11D0-A96B-00C04FD705A2'></OBJECT>";
document.write(WebBrowser); 
  if (typeof(WebBrowser1.object)=="undefined" || typeof(WebBrowser1.object)=="unknown" ) {
  	messagebox.innerHTML+="<br>★列印元件並未載入，請檢查是否有設定內部防火牆或是未加入信任網站<br>　目前尚可以使用瀏覽器的列印功能!<br>";
  }
}

function print_control(OLECMDID) {
 if (typeof(WebBrowser1.object)=="undefined" || typeof(WebBrowser1.object)=="unknown" ) {
  	alert('列印元件並未載入，請檢查是否有設定內部防火牆或是未加入信任網站\n目前尚可以使用瀏覽器的列印功能');
  	return;
  } else {	
	WebBrowser1.ExecWB(OLECMDID, 1);	
 }
}
function PageSetup()
{
 print_control(8);
}

//////////////////////////////////////////////////////////////////////////////
// update settings and call PrintSetup

function PrintSetup() {

}

//////////////////////////////////////////////////////////////////////////////
// update settings and call Preview

function Preview()
{
 print_control(7);
}

//////////////////////////////////////////////////////////////////////////////
// update settings and call Print

function Print(prompt, frame) {
 print_control(6);
}

function callDIV(ld)
{
   var i ;
   MyLayer = document.getElementById(ld);
   if(MyLayer.style.display=='') MyLayer.style.display='none'; 
      else MyLayer.style.display=''; 
}

//四捨五入
function MRound(rnum) {
  return Math.round(rnum*Math.pow(10,2))/Math.pow(10,2);
}
//將HTML特殊字轉回原形
function tranTxt(str) {
  str=str.replace("&lt;","<");
  str=str.replace("&gt;",">");
  str=str.replace("&quot;","\"");
  str=str.replace("&#039;","'");
  str=str.replace("&amp;","&");
  return str;
}  
//將原形字轉成HTML特殊字
function tranHtml(str) {
  str=str.replace("<","&lt;");
  str=str.replace(">","&gt;");
  str=str.replace("\"","&quot;");
  str=str.replace("'","&#039;");
  str=str.replace("&","&amp;");
  return str;
}  

//按方向鍵上 下 可當 shift + tab & tab
//使用在form onkeydown="keyTabFunction()" 即可
function keyTabFunction()	{
var   key   =   event.keyCode; 
var   obj   =   event.srcElement; 
for(var   i=0;i <document.forms[0].elements.length;i++){   
	if(document.forms[0].elements[i]==obj){   
	//alert   (obj); 
		if ( key   ==   38) //↑    
			if(i >0)  {
				try {	
					document.forms[0].elements[i-1].focus();   
				}catch(e) {}	
			}	

		if ( key == 40)//↓   
			if(i <document.forms[0].elements.length-1)  {
				try {  document.forms[0].elements[i+1].focus();  	}catch(e) {}	
			}		
    }
 } 
}