/*
add by egg
先修正美線附屬訂單問題
後續運費再來修改
*/

//美國運費公式
function america_fee(goods_data)
{
  
	var weigth_total,now_weigth,volume_weigth,volume_weigth1,per_kg,weigth_fee;
	var mytestobj = document.getElementById('mytest');
	//總重 目前重量 + 附屬訂單
	now_weigth   = Math.ceil(goods_data['now_weigth'] /50)/20;
	weigth_total = Math.ceil( (goods_data['now_weigth']+goods_data['sub_weigth']) /50)/20;
	//mytestobj.innerHTML += weigth_total+'<br>';
	//材積重
	volume_weigth=Math.round(goods_data['volume_length']* goods_data['volume_width']* goods_data['volume_height']/6000*100)/100;
	//mytestobj.innerHTML += volume_weigth+"<br>";
	goods_data['input_cuft_odr'].value = volume_weigth;
	
	
	//每公斤重量級距費用
	if(goods_data['use_old_fee'])
	{
		if (weigth_total<= 3) per_kg = 500;
		else if (weigth_total > 3 && weigth_total <= 5) per_kg = 470;
		else if (weigth_total > 5 && weigth_total <= 10) per_kg = 440;
		else if (weigth_total > 10 && weigth_total <= 20) per_kg = 410;
		else per_kg = 380;
			
		volume_weigth1 = Math.round( (volume_weigth - ( now_weigth * 1.1)) *100)/100;
		if(volume_weigth1 < 0) volume_weigth1 = 0;
		weigth_fee = (volume_weigth1*180) + (now_weigth*per_kg);
		/*
		mytestobj.innerHTML = '';
		mytestobj.innerHTML += "("+volume_weigth+" - "+(now_weigth * 1.1)+")*180 + ("+now_weigth+" * "+per_kg+")<br>";
		mytestobj.innerHTML += "("+volume_weigth1+" * 180) + " + " (" + now_weigth +" * " + per_kg + ")<br>";
		mytestobj.innerHTML += (volume_weigth1*180) +" + " + (now_weigth*per_kg) +"<br>";
		mytestobj.innerHTML += weigth_fee+"<br>";
		*/
	}
	else
	{
		/*
		if(weigth_total < volume_weigth) weigth_total  = volume_weigth;
		
		if (weigth_total<= 3) per_kg = 470;
		else if (weigth_total > 3 && weigth_total <= 5) per_kg = 450;
		else if (weigth_total > 5 && weigth_total <= 10) per_kg = 430;
		else if (weigth_total > 10 && weigth_total <= 20) per_kg = 400;
		else per_kg = 370;

		//mytestobj.innerHTML += weigth_total+" * "+per_kg+"<br>";
		weigth_fee = weigth_total * per_kg;
		*/
    if (now_weigth < volume_weigth) now_weigth = volume_weigth;
    
    /*
    if (now_weigth <= 3) per_kg = 470;
    else if (now_weigth > 3 && now_weigth <= 5) per_kg = 450;
    else if (now_weigth > 5 && now_weigth <= 10) per_kg = 430;
    else if (now_weigth > 10 && now_weigth <= 20) per_kg = 400;
    else per_kg = 370;
    */
    
    var per_kg = 470;
    if      (now_weigth <= 3)                     per_kg = parseInt($j('#fare_inter_odr_params_america_3').val());
    else if (now_weigth > 3 && now_weigth <= 5)   per_kg = parseInt($j('#fare_inter_odr_params_america_3_5').val());
    else if (now_weigth > 5 && now_weigth <= 10)  per_kg = parseInt($j('#fare_inter_odr_params_america_5_10').val());
    else if (now_weigth > 10 && now_weigth <= 20) per_kg = parseInt($j('#fare_inter_odr_params_america_10_20').val());
    else                                          per_kg = parseInt($j('#fare_inter_odr_params_america_20').val());
    
	  weigth_fee = now_weigth * per_kg;
	}
	goods_data['input_fare_inter_odr'].value = Math.round(weigth_fee);
}

//韓線運費
function korea_fee(goods_data)
{
	var weigth_total,now_weigth,weigth_fee;
	now_weigth   = Math.ceil(goods_data['now_weigth'] /50)/20;
	weigth_total = Math.ceil( (goods_data['now_weigth']+goods_data['sub_weigth']) /50)/20;
	
	//if (weigth_total <= 10) per_kg = 330;
	//else 
	per_kg = 280;
	
	weigth_fee = weigth_total*per_kg - goods_data['sub_fare'];
	goods_data['input_fare_inter_odr'].value = Math.round(weigth_fee);
}

//日線運費
function japan_fee(goods_data)
{
  
	var weigth_total,now_weigth,weigth_fee;
	now_weigth   = Math.ceil(goods_data['now_weigth'] /50)/20;
	weigth_total = Math.ceil( (goods_data['now_weigth']+goods_data['sub_weigth']) /50)/20;
	
	if(goods_data['tran_type']=='sea')
	  per_kg = 225;
	else
	  if (weigth_total <= 10) per_kg = 300;
	  else per_kg = 250;
	
	weigth_fee = weigth_total*per_kg - goods_data['sub_fare'];
	goods_data['input_fare_inter_odr'].value = Math.round(weigth_fee);
}
/*
finish
*/





//this javascript file is for admin/taiwan/arrial_form.php, browser.php
//For freight_form.php, 處理運貨成本,目前材積都不計費
function trans_valuation3(nation, type, target_cuft, target_fare, length, width, hight, weight, view) {
	
	// for backward compatibility of evaluator
	weight_price =0;
	if (nation == "1" || nation == "japan")
	{
	//日本
		weight_price = Math.round(parseFloat(document.getElementById(weight).value) *0.195);
	}
	else if (nation == "3"  || nation == "america")
	{
	//美國
		weight_price = Math.round(parseFloat(document.getElementById(weight).value) *0.250);
	}
	else if (nation == "4" || nation == "5" || nation == "korea")
	{
	//韓國
		weight_price = Math.round(parseFloat(document.getElementById(weight).value) *0.200);
	}
  

	if (nation == 'air' || nation == 'sea')
		nation = 'japan';
	
	length_r = Math.round(parseFloat(document.getElementById(length).value)*10)/10;
	document.getElementById(length).value = length_r;
	width_r = Math.round(parseFloat(document.getElementById(width).value)*10)/10;
	document.getElementById(width).value = width_r;
	hight_r = Math.round(parseFloat(document.getElementById(hight).value)*10)/10;
	document.getElementById(hight).value = hight_r;
	
	cuft=Math.round(length_r* width_r* hight_r/6000 *100)/100;
	document.getElementById(target_cuft).value=cuft;

	per_cuft = 0;

	type = 'general'; //所有種類以同樣價格計算
	//開始計算材積
	if (nation == 'america') {
		//if (cuft <= 3)
		//	per_cuft = 380;
		//else if (cuft > 3 && cuft <= 5)
		//	per_cuft = 370;
		//else if (cuft > 5 && cuft <= 10)
		//	per_cuft = 360;
		//else if (cuft > 10 && cuft <= 20)
		//	per_cuft = 350;
		//else
			per_cuft = 349;
	}
	else if (nation == 'japan')
	{
	//日本材積
		if (cuft <= 10)
			per_cuft = 180;
		else
			per_cuft = 160;
	}
	
	cuft_fare = Math.ceil(cuft * per_cuft - 0.0000000000001);
//目前都不計入材積!
	document.getElementById(target_fare).value = weight_price;
	if(view != "")
		document.getElementById(view).innerHTML = weight_price;
	
}

//統一處理運費問題
function trans_valuation2(ncate,won_price,nation, type, target_cuft, target_fare, length, width, hight, weight, view, pre_weight, pre_fare, promotion_switch) {
	
	// for backward compatibility of evaluator
	
	weight_price =0;
	per_kg = 0;
	weight2= parseInt(document.getElementById(weight).value) +parseInt(pre_weight); 
	pre_weight = parseInt(pre_weight);	
	pre_fare = parseInt(pre_fare);	
  //alert(weight2);
	if(promotion_switch =='1') 
	{//2009年五月的黃金週
		alert("符合五月黃金週促銷,計價時系統自動扣除重量1公斤!");
		weight2 -= 1000;
		if(weight2 <0){
			weight2 =0;
			pre_fare = 0;
		}
	
	}
	weight2= Math.ceil(weight2 /50)/20; 
  
	if (ncate == '21' || ncate == '22') {
	  if(ncate == '21'){//鋁圈
	    if(won_price <= 60000){
	      per_kg = 159;
	    }else if(won_price > 60000 && won_price <= 120000){
	      per_kg = 149;
	    }else if(won_price > 120000){
	      per_kg = 139;
	    }
	    
	  }else{  //保桿統一價
	    per_kg = 199;
	  
	  }
	  
	}else{
	
	 if (nation == 'america') {
		//if (weight2<= 3)
		//	per_kg = 500;
		//else if (weight2 > 3 && weight2 <= 5)
		//	per_kg = 470;
		//else if (weight2 > 5 && weight2 <= 10)
		//	per_kg = 440;
		//else if (weight2 > 10 && weight2 <= 20)
		//	per_kg = 410;
		//else
		if(ncate == '10')
		  per_kg = 298;
		else
			per_kg = 349;
	 }
	 else if (nation == 'japan')
	 {
	  
		//日本只有二個價格區間!
		if (weight2 <= 10)
			per_kg = 300;
		else
			per_kg = 250;
	  }
	 else if (nation == 'korea')
	 {
		 //韓國統一價
		 per_kg = 255;
		
	 }
	}
	
	weight_price =  weight2 * per_kg - pre_fare;
	//weight_price =  weight2 * per_kg;
  //alert(weight2);
  //alert(per_kg);
  //alert(pre_fare);
	if (nation == 'air' || nation == 'sea')
		nation = 'japan';
	
	length_r = Math.round(parseFloat(document.getElementById(length).value)*10)/10;
	document.getElementById(length).value = length_r;
	width_r = Math.round(parseFloat(document.getElementById(width).value)*10)/10;
	document.getElementById(width).value = width_r;
	hight_r = Math.round(parseFloat(document.getElementById(hight).value)*10)/10;
	document.getElementById(hight).value = hight_r;
	
	cuft=Math.round(length_r* width_r* hight_r/6000 *100)/100;
	document.getElementById(target_cuft).value=cuft;

	per_cuft = 0;

	type = 'general'; //所有種類以同樣價格計算
	//開始計算材積
	if (nation == 'america') {
		if (cuft <= 3)
			per_cuft = 380;
		else if (cuft > 3 && cuft <= 5)
			per_cuft = 370;
		else if (cuft > 5 && cuft <= 10)
			per_cuft = 360;
		else if (cuft > 10&& cuft <= 20)
			per_cuft = 350;
		else
		  per_cuft = 380;
			
		//cuft_fare = Math.round(cuft * per_cuft);			
		
		var per_cuft_1 = cuft - weight2*1.1;
		if(per_cuft_1 < 0) per_cuft_1 = 0;
		cuft_fare = Math.round(per_cuft_1*180+weight2*per_kg);
	}
	else if (nation == 'japan')
	{
	
	//日本材積
		//if (cuft <= 10)
		//	per_cuft = 180;
		//else
		//	per_cuft = 160;
		//cuft_fare = Math.round(cuft * per_cuft);	
	}
	//alert(cuft_fare);
//只有美國目前需要計入材積,日本不用!
	if(ncate=='21' || ncate=='22'){//如果商品類別為鋁圈跟保桿,運費計算方式不一樣
	  
	  document.getElementById(target_fare).value = weight_price;
		if(view != "")
		document.getElementById(view).innerHTML = weight_price;
	}else if (nation == 'america') {
		if (cuft_fare > weight_price)	{
			document.getElementById(target_fare).value = cuft_fare;
			if(view != "")
				document.getElementById(view).innerHTML = cuft_fare;
		}
		else {
			document.getElementById(target_fare).value = weight_price;
			if(view != "")
				document.getElementById(view).innerHTML = weight_price;
		}
	}
	else {
	  document.getElementById(target_fare).value = weight_price;
		if(view != "")
			document.getElementById(view).innerHTML = weight_price;
	}
	
	
	count_fee();//新公式
}
//國際運費計算( Only determined by weight)
function trans_valuation(nation, type, weight, fare, pre_weight, pre_fare) {
	
	// for backward compatibility of evaluator
	if (nation == 'air' || nation == 'sea')
		nation = 'japan';
	
	if (document.getElementById)
	{
		pre_weight = (pre_weight) ? pre_weight : 0;
		pre_fare = (pre_fare) ? pre_fare : 0;
		
		type = document.getElementById(type).value;
		weight = Math.ceil((parseInt(document.getElementById(weight).value) + parseInt(pre_weight)) / 50) / 20;
		fare = document.getElementById(fare);
	}
	
	per_kg = 0;
	type = 'general'; //所有種類以同樣價格計算
	
	if (nation == 'america') {
		if (weight <= 3)
			per_kg = 500;
		else if (weight > 3 && weight <= 5)
			per_kg = 470;
		else if (weight > 5 && weight <= 10)
			per_kg = 440;
		else if (weight > 10 && weight <= 20)
			per_kg = 410;
		else
			per_kg = 380;
	}
	else if (nation == 'japan')
	{
		if (weight <= 10)
			per_kg = 300;
		else if (weight > 10 && weight <= 20)
			per_kg = 250;
		else if (weight > 20)
			per_kg = 250;
	}
	else if (nation == 'korea')
	{
		per_kg = 280;
	}
	
	weight_fare =  (Math.ceil(weight * per_kg - 0.0000000000001) - parseInt(pre_fare));
	if(weight_fare > fare.value)
		fare.value = weight_fare;
}


					//試算程式
					function autoset(current, location, weight, farejp) {
					
						if (weight > 0) {
							document.getElementById('cal_weight').value = weight;
						}
						
						if (farejp > 0) {
							document.getElementById('cal_farejp').value = farejp;
						}
						
						if (current > 0) {
							document.getElementById('cal_price').value = current;
						}
						
						areas = document.getElementById('cal_area');
						for (i = 0; i < areas.options.length; i++)
						{
							if (areas.options[i].text.indexOf(location) >= 0) {
								areas.selectedIndex = i;
								break;
							}
						}
						
						calculates();
						getfarejp();
					}
					
					function getfarejp() {
					
						var msxmlhttp = new Array(
							'Msxml2.XMLHTTP.5.0',
							'Msxml2.XMLHTTP.4.0',
							'Msxml2.XMLHTTP.3.0',
							'Msxml2.XMLHTTP',
							'Microsoft.XMLHTTP');
						for (var i = 0; i < msxmlhttp.length; i++) {
							try {
								request = new ActiveXObject(msxmlhttp[i]);
							} catch (e) {
								request = null;
							}
						}
								
						if(!request && typeof XMLHttpRequest != "undefined") {
							request = new XMLHttpRequest();
						}
						if (!request)
							return;
							

						try {
							
							request.onreadystatechange = function () {
								if (request.readyState == 4) {
									document.getElementById('cal_farejp').value = request.responseText;
									calculates();
								}							
							};
							

							from = document.getElementById('cal_area').value;
							
							if (from == '')
								return;
							from = encodeURI(from);
							to = (document.getElementById('cal_inter').value == 'air') ? encodeURI('関西') : encodeURI('関東');
							size = document.getElementById('cal_size').value;
							weight = document.getElementById('cal_weight').value;					
							
							document.getElementById('cal_farejp').value = '查詢中';
							request.open( "GET", "farejp.php?from=" + from + "&to=" + to + "&size=" + size + "&weight=" + weight + "&check=" + sign, true);
							request.setRequestHeader("If-Modified-Since","Mon, 26 Jul 1997 05:00:00 GMT");		
							request.send(null);																
						}
						
						catch (e){
							return;
						}					
					
					}
				
					function calculates() {
						
						ex = document.getElementById('cal_ex').value;
						remit = document.getElementById('cal_remit').value;
						inter = document.getElementById('cal_inter').value;
						service = document.getElementById('cal_service').value;
						
						weight = document.getElementById('cal_weight').value;
						if (!weight.match(/\d+/)) {
							weight = 0;
							document.getElementById('cal_weight').value = 0;
						}
						if (parseInt(weight) > 20000) {
							weight = 20000;
							document.getElementById('cal_weight').value = 20000;
						}
						price = document.getElementById('cal_price').value;
						if (!price.match(/\d+/)) {
							price = 0;
							document.getElementById('cal_price').value = 0;							
						}
						farejp = document.getElementById('cal_farejp').value;
						if (!farejp.match(/\d+/)) {
							farejp = 0;
							document.getElementById('cal_farejp').value = 0;
						}
						qty = document.getElementById('cal_qty').value;
						if (!qty.match(/\d+/)) {
							qty = 1;
							document.getElementById('cal_qty').value = 1;
						}
						if (document.getElementById('cal_tax').checked)
							tax = 0.05;
						else
							tax = 0;
						size = parseInt(document.getElementById('cal_size').value);
						faretw = 0;
						switch (size) {
							case 60:
								faretw = 90;
								break;
							case 90:
								faretw = 110;
								break;
							case 120:
								faretw = 130;
								break;
							case 160:
								faretw = 160;
								break;
						}
						
						trans_valuation(inter, 'cal_type', 'cal_weight', 'cal_fareint');
						fareint = document.getElementById('cal_fareint').value;
						
						sumjp = parseInt(remit) + parseInt(farejp) + (price * qty) + Math.ceil(price * qty * tax);
						jp2tw = Math.ceil(sumjp * ex);
						
						document.getElementById('cal_sumjp').value = sumjp;
						document.getElementById('cal_jp2tw').value = jp2tw;
						document.getElementById('cal_faretw').value = faretw;
						document.getElementById('cal_sumtw').value = parseInt(jp2tw) + parseInt(service) + parseInt(faretw) + parseInt(fareint);
					
					}


