/**
* 取得表單資料
*/
var RG_FmTool = function(){
    //var obj = jQuery([]);
    var data=[];
    var err=[];
    var data2UrlString='';
    var errMsg='';
    
    function init(obj){
        //obj=obj;
        data=[];
        err=[];
        data2UrlString='';
        errMsg='';
    }
    
    return{
        setForm : function(obj) {
                obj.find('img[name=err_icon]').remove();
                obj.find(':input:not(:radio:checkbox),:radio:checked,:checkbox:checked').each(function(){
                    var v = jQuery.trim(jQuery(this).val());
                    data.push(this.name +'='+  encodeURIComponent(v));
					// 2011-10-13 add jQuery(this).attr('required')!=false
                    if(v==='' && jQuery(this).attr('required')!=undefined&&jQuery(this).attr('required')!=false){
                        err.push(jQuery(this).attr('required'));
                        jQuery(this).after('<img src="./images/icons/exclamation.png" name="err_icon" />');
                    }
                });			
				
                if( err.length!=0 ){
                    data=[];
                }
				
                data2UrlString = data.join('&');
                errMsg = err.join('\n');
            },
        getErr : function(){
                return err;
            },
        getUrlStr : function(){
                return data2UrlString;
            },
        getErrMsg : function(){
                return errMsg;
            }
    }
};

//欄位提示文字- 清除預設文字
function SearchInputTXTClear(o){
    if(o.val() === o.attr('tip')) o.val('');
}
//欄位提示文字- 回復預設文字
function SearchInputTXTDefault(o){
    if(o.val() === '') o.val(o.attr('tip'));
}
//欄位提示文字- 欄位文字顏色
function SearchInputTXTColor(o){
    if(o.val()==='' || o.val() === o.attr('tip')){
        o.css('color', '#CCCCCC');
    }else{
        o.css('color', '#000000');
    }
}
//使用欄位提示文字
function StartInputTip(o){
    o.each(function(){
        SearchInputTXTDefault(jQuery(this));
        SearchInputTXTColor(jQuery(this));
        jQuery(this).focus(function(){SearchInputTXTClear(jQuery(this));});
        jQuery(this).blur(function(){SearchInputTXTDefault(jQuery(this));});
        jQuery(this).keyup(function(){SearchInputTXTColor(jQuery(this));});
    });
}

//日期欄位自動格式化
jQuery('input[dfmt]').live('keyup',function(e){
    var key = e.keyCode;
    if(!(key>=32 && key<=255) || key==8 || key==46 || (key>=37 && key<=40)){
        return true;
    }
    //數字
    var v = jQuery(this).val();
    v = v.replace(/\D/g,'');
    var v_Len = v.length;
    var start = 0;
    var res = '';
    //格式
    var fmt = jQuery(this).attr('dfmt');
    var fmt_Len = fmt.length;
    var i=0;
    var waitBreak = false;
    while(fmt_Len > i){
        var fmtV=fmt.charAt(i);
        var num = 0;
        switch(fmtV){
            case 'Y':
                num=4;
            break;
            case 'm':
                num=2;
            break;
            case 'd':
                num=2;
            break;
            default:
                num=0;
        }
        
        if(num>0){
            if(waitBreak) break;
            res += v.substr(start,num);
            start += num;
            v_Len -= num;
            if(v_Len<=0) waitBreak = true;
        }else{
            if((v_Len<0)) break;
            res += fmtV;
        }
        ++i;
    }
    jQuery(this).val(res);
});
//=====

//檢查身份證字號是否正確．中華民國籍
function isIDnum(num)
{
	//轉小寫
	num=num.toLowerCase();
	patten=/^[a-z][12]\d{8}$/;

	//檢查長度是否正確
	if(patten.test(num))
	{
		//注意第一碼英文順序'i'與'o'在最後
		h="abcdefghjklmnpqrstuvxywzio" ;
		x=10+h.indexOf(num.substring(0,1));
		chksum=(x-(x%10))/10+(x%10)*9;
		for(i=1;i<9;i++)
		{	chksum+=num.substring(i,i+1)*(9-i); } 
		chksum=(10-chksum%10)%10 ;
		if(chksum==num.substring(9,10))
			return 1;
		else
			return 0;
	}
	else
		return 0; // 不正確的身份
}
//檢查身份證字號是否正確．外籍人士
function isIDnumForeign(num)
{
	//轉小寫
	num=num.toLowerCase();
	patten=/^[a-z][a-d][0-9]{8}$/;
	//檢查長度是否正確
	if(patten.test(num))
	{
		//注意第一碼英文順序'i'與'o'在最後
		h="abcdefghjklmnpqrstuvxywzio" ;
		x=10+h.indexOf(num.substring(0,1));
		y=10+h.indexOf(num.substring(1,2));
		//檢查碼1=第二個代碼十位數的數字×1
		chksum=(x-(x%10))/10*1;
		new_num=x%10;//第一個代碼取個位數
		y=y%10;
		new_num=new_num+""+y+""+num.substring(2,9);//第一個代碼個位數+第二個代碼個位數+$num3~9碼
		for(i=0;i<9;i++)
		{	chksum+=new_num.substring(i,i+1)*(9-i); }
		chksum=(10-chksum%10)%10 ;
		if(chksum==num.substring(9,10))
			return 1;
		else
			return 0;
	}
	else
		return 0; // 不正確的身份
}

