function do_quotation(obj) {

   var success = 1;
   var duty = 0;
   var tax  = 0;
   var postal_commit_charge = 200;
   var q = 0;

   // 入力値取得
   l = obj.a.value; // 購入金額
   m = obj.b.value; // 送料
   n = obj.c.value; // 為替相場
   o = obj.d.value; // 関税率
   p = obj.e.value; // 消費税率

   express = obj.rd[0].checked; // 宅配便
   surface = obj.rd[2].checked; // 船便

   // 入力値チェック
   success &= checknum(l,0);
   success &= checknum(m,0);
   success &= checknum(n,0);
   success &= checknum(o,0);
   success &= checknum(p,0);

   if (1 == success) {
       // 関税対象金額算出
       if (true != express) {
           d_base = 0.3 * eval(l);  // 郵便用商品価格算出
       } else {
           d_base = 0.6 * eval(l);  // 宅配用商品価格算出
       }
       if (true != surface) {d_base += eval(m);} //船便以外で送料加算
       // 円換算実施
       if (0 != eval(n)) {d_base *= eval(n);}
       // 関税額算出(課税対象額が10000円以上なら)
       if (10000 < d_base) {
           duty = eval(d_base) * eval(o)/100;
           tax = (eval(d_base) + eval(duty)) * eval(p)/100;
       }

       // 結果表示
       mp_b = eval(l) + eval(m);
       if (0 != eval(n)) mp_b *= eval(n);
       r_a1 =  Math.floor(eval(mp_b)+0.5) ;
         // 端数切り捨て(100円未満)
       r_a2 =  Math.floor(Math.floor(eval(duty)+0.5) / 100 ) * 100;
       r_a3 =  Math.floor(Math.floor(eval(tax)+0.5) / 100 ) * 100;
       obj.a1.value = r_a1;
       obj.a2.value = r_a2;
       obj.a3.value = r_a3;
       if ( 0 != eval(duty)) {
           q = 200;
           if (true == express) q = 400;
       } else {
           q = 0;
       }
      obj.a4.value = Math.floor(eval(q));
      obj.sum.value = eval(r_a1) + eval(r_a2) + eval(r_a3)+ Math.floor(eval(q));
   } else {
       alert("入力値は不正です");
   }
}

// check unsigned number
function check(n){
	strg = n;
	strgLength = strg.length;

	if("" == strg){
		err = 1;
	} else {

	var i = 0;
	while( i <= strgLength - 1){
		letter=strg.charAt(i);
		if(letter=="0" || letter=="1" || letter=="2" || letter=="3" ||
		   letter=="4" || letter=="5" || letter=="6" || letter=="7" ||
		   letter=="8" || letter=="9"){
			i++;
			}
		else {
			return false;
			}
		}
	}
return true;
}

// check number with sign
function checknum(n, fSign){

    strg=n;
    strgLength=strg.length;

    if("" == strg){
        return false;
    } else {
        var i = 0;
        var c = 0;
	if ("-" == strg.charAt(i) && 0 == fSign)  return false;
        if ("-" == strg.charAt(i))  i++;
 

	while( i<=strgLength - 1){
		letter=strg.charAt(i);
		if(letter=="0" || letter=="1" || letter=="2" || letter=="3" ||
		   letter=="4" || letter=="5" || letter=="6" || letter=="7" ||
		   letter=="8" || letter=="9" || letter=="."){
                                if(letter=="."){
                                        c+=1;
                                        if(2 <= c){
                                                return false;
                                        }
                                }
                    i++;
                } else {
                    return false;
                }
        }
   }
return true;
}
