$(document).ready(function() {
	calculateTotalFee = function()
	{
		var out = new Object();
		var weightlbs        = parseFloat($('#aw_lb').val());
		var length           = parseFloat($('#dim_L').val());
 		var width            = parseFloat($('#dim_W').val());
		var height           = parseFloat($('#dim_H').val());
		var discount         = parseFloat($('#discount').val());
		var overweightcharge = parseFloat($('#overweightcharge').val());
		var insurancefee     = parseFloat(0);
		var totalfee         = parseFloat(0);
		switch($("input[name='parcel\[type\]']:checked").val())
		{
			case 'AIR':
				var minimalfee = parseFloat($('#minimalfeeair').val());
				var lbsprice   = parseFloat($('#lbspriceair').val());
				var chargeableweightlbs = Math.round((length * width * height) / 166);
				
				if(chargeableweightlbs > weightlbs)
					totalfee = (minimalfee + ((chargeableweightlbs - 5) * lbsprice));
				else
					totalfee = (minimalfee + ((weightlbs - 5) * lbsprice));
			break;
			case 'SEA':
				var minimalfee = parseFloat($('#minimalfeesea').val());
				var lbsprice   = parseFloat($('#lbspricesea').val());				
				var chargeableweightlbs = Math.round((length * width * height) / 140);
				if(chargeableweightlbs > weightlbs) 
					weightlbs = chargeableweightlbs;
					if(weightlbs > 70)
						totalfee = ((minimalfee + (50 * lbsprice)) + ((weightlbs - 70) * overweightcharge));
					else
						totalfee = (minimalfee + ((weightlbs - 20) * lbsprice));				
			break;
		}
		
		if(totalfee < minimalfee)
			totalfee = (minimalfee + insurancefee);
		else
			totalfee = (totalfee + insurancefee);
		totalfee = (totalfee - ((totalfee / 100) * discount));	
		
		$('#totalfee').val(totalfee.toFixed(2));
		
		out.totalfee 			= totalfee;
		out.chargeableweightlbs = chargeableweightlbs;
		
		return out;
	}
	
	lbsKg = function(lbs)
	{
		var kg = parseFloat(parseFloat(lbs) * 0.45359237);
		return kg.toFixed(2);
	}
	
	calculateFee = function()
	{
		var out = calculateTotalFee();
		$('#aw_kg').val(lbsKg($('#aw_lb').val()));
		$('#cw_lb').val(out.chargeableweightlbs);
		$('#cw_kg').val(lbsKg($('#cw_lb').val()));
		return false;
	}	
});
