﻿// JavaScript Document



var transferfee = 500;

var hkpostrate = 1200;

var hkpostrate2 = 600;

var hkpostrate_abs2 = 600;

var hkpostrate_abs3 = 600;

var hkpostrate_abs = 650;

var hkpostrate4 = 600;

var hkpostrate_abs4 = 500;

var hkpostrate5 = 1200;

var hkpostrate_abs5 = 650;

var convfact=5000;

var goodshkd = [];

var r = 1;

var txt = "不是有效的數值";



function getTransferfee()

{

	document.write(transferfee);

}



function getTransferfee2()

{

	document.getElementById("transferFee").value = transferfee;

}



function calsize(lenght, width, height)

{

	 vol = lenght * width * height;

  volw =  vol / 5000;

  b = volw - parseInt( volw );

  if( b <= .5 && 0 < b && convfact == 5000 )

  {

    c=.5;

  }

  else // if( (.5 < b) && (b < 1 ) )

  {

    c=1;

  }

  if( b==0 ) c=0;

  fweight = volw - b + c;

  if( vol != 0 && ( isNaN( fweight ) || fweight < 1 ) ) fweight = 1;

document.getElementById("dw").value = parseFloat(fweight);

document.getElementById("displayhkpostfee").innerHTML = getHKPostFee2(parseFloat(fweight));

document.getElementById("hkPostFee").value = getHKPostFee2(parseFloat(fweight));

}



function calweight(weight)

{

	document.getElementById("lenght").value = 0;

	document.getElementById("width").value = 0;

	document.getElementById("height").value = 0;

	document.getElementById("displayhkpostfee").innerHTML = getHKPostFee2(parseFloat(weight));

	document.getElementById("hkPostFee").value = getHKPostFee2(parseFloat(weight));

}



function getHKPostFee7(weight)

{

	var hkpostfee4;

	

	if (weight <= 0.5)

	{

		hkpostfee4 = hkpostrate_abs4;

		document.getElementById("displayhkpostfee").innerHTML = hkpostfee4;

		document.getElementById("hkPostFee").value = hkpostfee4;

		document.getElementById("displaydiscountjpy").innerHTML = hkpostfee4;

		document.getElementById("discountjpy").value = hkpostfee4;

	}

	else

	{

		hkpostfee4 = (hkpostrate_abs4 + ((weight - 0.5) * hkpostrate4));

		document.getElementById("displayhkpostfee").innerHTML = hkpostfee4;

		document.getElementById("hkPostFee").value = hkpostfee4;

		document.getElementById("displaydiscountjpy").innerHTML = (hkpostrate_abs4 + (0.5 * hkpostrate4));

		document.getElementById("discountjpy").value = (hkpostrate_abs4 + (0.5 * hkpostrate4));

	}

}



function getHKPostFee6(weight)

{

	var hkpostfee3;

	

	if (weight <= 1)

	{

		hkpostfee3 = hkpostrate_abs3;

		document.getElementById("displayhkpostfee").innerHTML = hkpostfee3;

		document.getElementById("hkPostFee").value = hkpostfee3;

		document.getElementById("displaydiscountjpy").innerHTML = hkpostfee3;

		document.getElementById("discountjpy").value = hkpostfee3;

	}

	else

	{

		hkpostfee3 = weight * hkpostrate2;	

		document.getElementById("displayhkpostfee").innerHTML = hkpostfee3;

		document.getElementById("hkPostFee").value = hkpostfee3;

		document.getElementById("displaydiscountjpy").innerHTML = hkpostrate2;

		document.getElementById("discountjpy").value = hkpostrate2;

	}

}



function getHKPostFee5(weight)

{

	var hkpostfee5;

	

	if (weight <= 0.5)

		hkpostfee5 = hkpostrate_abs5;

	else

		hkpostfee5 = weight * hkpostrate5;

		

	document.getElementById("displayhkpostfee").innerHTML = hkpostfee5;

	document.getElementById("hkPostFee").value = hkpostfee5;

}



function getHKPostFee4(weight)

{

	var hkpostfee4;

	

	if (weight <= 0.5)

		hkpostfee4 = hkpostrate_abs4;

	else

		hkpostfee4 = (hkpostrate_abs4 + ((weight - 0.5) * hkpostrate4));

		

	document.getElementById("displayhkpostfee").innerHTML = hkpostfee4;

	document.getElementById("hkPostFee").value = hkpostfee4;

}



function getHKPostFee3(weight)

{

	var hkpostfee3;

	

	if (weight <= 1)

		hkpostfee3 = hkpostrate_abs3;

	else

		hkpostfee3 = weight * hkpostrate2;

		

	document.getElementById("displayhkpostfee").innerHTML = hkpostfee3;

	document.getElementById("hkPostFee").value = hkpostfee3;

}



function getHKPostFee2(weight)

{

	var hkpostfee2;

	

	if (weight < 1)

		hkpostfee2 = hkpostrate_abs2;

	else

		hkpostfee2 = weight * hkpostrate2;

		

	return hkpostfee2;

}



function getHKPostFee(weight)

{

	var hkpostfee;

	

	if (weight < 1)

		hkpostfee = hkpostrate_abs;

	else

		hkpostfee = weight * hkpostrate;

		

	return hkpostfee;

}



function changeHKPostFee(weight)

{

	document.getElementById("displayhkpostfee").innerHTML = getHKPostFee(weight);

	document.getElementById("hkPostFee").value = getHKPostFee(weight);

}



function change_postfee_selection(service_type)

{

	objWeight = document.getElementById("weight");



	for (var i = 0; i < objWeight.length; i++)

		while (objWeight.options[0] != null)

			objWeight.options[0] = null;





	for (var i = 1; i <= 10; i++)

	{

		var objOption = document.createElement("OPTION");



		if (service_type == "yahoo")

		{

			objOption.text = i + "KG 快遞";

			objOption.value = i/2;	

		}

		else

		{

			objOption.text = i + "KG 空運";

			objOption.value = i;	

		}	



		if (i == 1)

		{

			document.getElementById("displayhkpostfee").innerHTML = getHKPostFee(objOption.value);

			document.getElementById("hkPostFee").value = getHKPostFee(objOption.value);

		}



		objWeight.options.add(objOption);

	}



	for (var i = 1; i <= 8; i++)

	{

		var objOption = document.createElement("OPTION");



		objOption.text = i*5 + "KG 船運";

		objOption.value = i*3;	



		objWeight.options.add(objOption);

	}



}



function validate(theForm)

{

	var errMsg = "";

	

	if ( isEmpty(theForm.price.value) )

		errMsg += "- 請填上貨品金額\n";

	else if ( !isFloatNumber(theForm.price.value) )

		errMsg += "- 貨品金額不是正數\n";



	if ( !isEmpty(theForm.postfee.value) &&　!isFloatNumber(theForm.postfee.value)　)

		errMsg += "- 當地郵費不是正數\n";

		



	if ( isEmpty(errMsg) )

		return true;

	else

	{

		alert("請修改以下問題:\n" + errMsg);

		return false;

	}

}



function clearValues()

{

	document.getElementById("price").value = "";

	document.getElementById("postfee").value = "1000";

	document.myform.charged[2].checked = true;

	document.myform.weight[0].selected = true;

	changeHKPostFee(document.myform.weight.value);

}



function isArray(obj) {

    return obj.constructor == Array;

}



function calgoods(currency, tax, postfee, weight, lenght, width, height, weight2)

{

	var goodstotalhkd = 0;

	var goodstotaljpy = 0;

	if (!document.form.cal_by[1].checked && !document.form.cal_by[0].checked)

	{

		document.form.cal_by[0].click();

		return false;

	}

	price = document.form.elements["price[]"];

	for (i=0;i<=r - 1;i++)

	{

		if (r == 1)

		{

			goodshkd[i] = Math.round(document.form.elements["price[]"].value * document.form.elements["qty[]"].value * currency*Math.pow(10,1))/Math.pow(10,1);

			goodstotalhkd = goodstotalhkd + goodshkd[i];

			goodstotaljpy = goodstotaljpy + (document.form.elements["price[]"].value * document.form.elements["qty[]"].value);

			document.getElementById("displaygoodshkd" + i).innerHTML = goodshkd[i];

		}

		else if (r > 1)

		{

			goodshkd[i] = Math.round(document.form.elements["price[]"][i].value * document.form.elements["qty[]"][i].value * currency*Math.pow(10,1))/Math.pow(10,1);

			goodstotalhkd = goodstotalhkd + goodshkd[i];

			goodstotaljpy = goodstotaljpy + (document.form.elements["price[]"][i].value * document.form.elements["qty[]"][i].value);

			document.getElementById("displaygoodshkd" + i).innerHTML = goodshkd[i];

		}

		//var price = document.form.elements["price[" + i + "]"].value;

		//var qty = document.form.elements["qty[" + i + "]"].value;

		//a = document.form.elements["price[]"];

		//alert(a.value);

		//document.getElementById("displaygoodshkd[" + i + "]").innerHTML = goodshkd[i];

	}

	//goodshkd = Math.round(price * qty * currency*Math.pow(10,1))/Math.pow(10,1);

	taxjpd = Math.round(goodstotaljpy * tax*Math.pow(10,1))/Math.pow(10,1);

	taxhkd = Math.round(goodstotaljpy * tax * currency*Math.pow(10,1))/Math.pow(10,1);

	postfeehkd = Math.round(postfee * currency*Math.pow(10,1))/Math.pow(10,1);

	if (document.form.cal_by[1].checked)

	{

		hkpostfeejpy = getHKPostFee(weight);

		hkpostfeehkd = Math.round(hkpostfeejpy * currency * Math.pow(10,1))/Math.pow(10,1);

	}

	if (document.form.cal_by[0].checked)

	{

		//if (length != 0 || width !=0 || height != 0)

		//{

			//vol = lenght * width * height;

  			//volw =  vol / 5000;

  			//b = volw - parseInt( volw );

  			//if( b <= .5 && 0 < b && convfact == 5000 )

  			//{

    		//	c=.5;

  			//}

  			//else // if( (.5 < b) && (b < 1 ) )

  			//{

    		//	c=1;

  			//}

  			//if( b==0 ) c=0;

  			//fweight = volw - b + c;

  			//if( vol != 0 && ( isNaN( fweight ) || fweight < 1 ) ) fweight = 1;

			//document.getElementById("dw").value = parseFloat(fweight);

			//hkpostfeejpy = getHKPostFee2(parseFloat(fweight));
			
			

		//}

		//else

		//{

		//	hkpostfeejpy = getHKPostFee2(parseFloat(weight2));

		//}
		hkpostfeejpy = getHKPostFee2(weight);

		hkpostfeehkd = Math.round(hkpostfeejpy * currency * Math.pow(10,1))/Math.pow(10,1);
		//hkpostfeehkd = Math.round(hkpostfeejpy * currency * Math.pow(10,1))/Math.pow(10,1);

	}

	transferfeehkd = Math.round(transferfee * currency*Math.pow(10,1))/Math.pow(10,1);

	servicefee = Math.ceil(goodstotaljpy/5000) * 50;

	if (servicefee > 1000)

	{

		servicefee = 1000;

	}

	totalhkd = Math.round((goodstotalhkd + taxhkd + transferfeehkd + postfeehkd + hkpostfeehkd + servicefee)*Math.pow(10,1))/Math.pow(10,1);

	deposite = Math.round((goodstotalhkd + postfeehkd + hkpostfeehkd)*Math.pow(10,1))/Math.pow(10,1);

	a = Math.round((goodstotalhkd + taxhkd + transferfeehkd + postfeehkd + servicefee)*Math.pow(10,1))/Math.pow(10,1);

	b = Math.round((goodstotalhkd + postfeehkd)*Math.pow(10,1))/Math.pow(10,1);

	//document.getElementById("displaygoodshkd").innerHTML = goodshkd;

	document.getElementById("displaytaxjpy").innerHTML = taxjpd

	document.getElementById("displaytaxhkd").innerHTML = taxhkd;

	document.getElementById("displaypostfeehkd").innerHTML = postfeehkd;

	document.getElementById("displayhkpostfeejpy").innerHTML = hkpostfeejpy;

	document.getElementById("hkpostfeejpy").value = hkpostfeejpy;

	document.getElementById("displayhkpostfeehkd").innerHTML = hkpostfeehkd;

	document.getElementById("displaytransferhkd").innerHTML = transferfeehkd;

	document.getElementById("estimatedtotal").value = totalhkd;

	document.getElementById("displaytotalhkd").innerHTML = totalhkd;

	document.getElementById("displayservicefee").innerHTML = servicefee;

	document.getElementById("servicefee").value = servicefee;

	document.getElementById("displaydeposite").innerHTML = deposite;

	document.getElementById("estimateddeposite").value = deposite;

	document.getElementById("a").value = a;

	document.getElementById("b").value = b;

}



function add(currency)

{  

 var tbl = document.getElementById('goods2');

  var lastRow = tbl.rows.length;

  // if there's no header row in the table, then iteration = lastRow + 1

  var iteration = lastRow - 16;

  if (iteration <= 10)

  {

	  var row = tbl.insertRow(lastRow - 14);

	  r = r + 1;

  // left cell

  var cell1 = row.insertCell(0);

  var textNode = document.createTextNode("貨品(" + iteration + ")");

  cell1.setAttribute("class", "sub_text");

  cell1.appendChild(textNode);

  

  // right cell

  var cell2 = row.insertCell(1);

  cell2.innerHTML = "<input type='text' name='price[]' id='price[]' size='5' onchange='javascript:if (isFloatNumber(this.value)){calgoods(this.form.currency.value,this.form.tax.value,this.form.postfee.value, this.form.weight.value, this.form.lenght.value, this.form.width.value, this.form.height.value, this.form.dw.value);}else{alert(txt);this.value=null}' onkeyup='javascript:if (isFloatNumber(this.value)){calgoods(this.form.currency.value,this.form.tax.value,this.form.postfee.value, this.form.weight.value, this.form.lenght.value, this.form.width.value, this.form.height.value, this.form.dw.value);}else{alert(txt);this.value=null}'>";

  //var el2 = document.createElement("input");

  //el2.type = "text";

  //el2.name = "price[]";

  //el2.id = "price[]";

  //el2.size = 6;

  //el2.onchange = "javascript:calgoods(this.form.currency.value,this.form.tax.value,this.form.postfee.value, this.form.weight.value, this.form.lenght.value, this.form.width.value, this.form.height.value, this.form.dw.value);";

  var textNode2 = document.createTextNode(" x");

  

  cell2.setAttribute("class", "sub_text");

  cell2.setAttribute("align", "right");

  //cell2.appendChild(el2);

  cell2.appendChild(textNode2);

  

  // select cell

  var cell3 = row.insertCell(2);

  cell3.innerHTML = "<input type='text' name='qty[]' id='qty[]' size='3' value='1' onchange='javascript:if (isNumber(this.value)){calgoods(this.form.currency.value,this.form.tax.value,this.form.postfee.value, this.form.weight.value, this.form.lenght.value, this.form.width.value, this.form.height.value, this.form.dw.value);}else{alert(txt);this.value=1;}' onkeyup='javascript:if (isNumber(this.value)){calgoods(this.form.currency.value,this.form.tax.value,this.form.postfee.value, this.form.weight.value, this.form.lenght.value, this.form.width.value, this.form.height.value, this.form.dw.value);}else{alert(txt);this.value=1;}'>";

  //var el3 = document.createElement("input");

  //el3.type = "text";

  //el3.name = "qty[]";

  //el3.id = "qty[]";

  //el3.value = "1";

  //el3.size = 3;

  //el3.onchange = "javascript:calgoods(this.form.currency.value,this.form.tax.value,this.form.postfee.value, this.form.weight.value, this.form.lenght.value, this.form.width.value, this.form.height.value, this.form.dw.value);";

  var textNode3 = document.createTextNode(" x");

  

  cell3.setAttribute("class", "sub_text");

  cell3.setAttribute("align", "right");

  //cell3.appendChild(el3);

  cell3.appendChild(textNode3);

  

  //

  var cell4 = row.insertCell(3);

  var textNode4 = document.createTextNode(currency + "=");

  cell4.setAttribute("class", "sub_text");

  cell4.setAttribute("align", "right");

  cell4.appendChild(textNode4);

  

  //

  var cell5 = row.insertCell(4);

  var el5 = document.createElement("span");

  //el5.type = "text";

  //el5.name = "qty"; //+ iteration;

  //el5.id = "displaygoodshkd" + iteration;

  //el5.size = 3;

  //var textNode3 = document.createTextNode("$");

  

  cell5.setAttribute("class", "sub_text");

  display = iteration - 1;

  cell5.innerHTML = "$<span id='displaygoodshkd" + display + "'>0</span>";

  //cell5.appendChild(textNode3);

  //cell5.appendChild(el5);

  //var cell3 = row.insertCell(2);

  //var sel = document.createElement('select');

  //sel.name = 'selRow' + iteration;

  //sel.options[0] = new Option('text zero', 'value0');

  //sel.options[1] = new Option('text one', 'value1');

  //cell3.appendChild(sel);

  }

}



function del()

{

  var tbl = document.getElementById('goods2');

  var lastRow = tbl.rows.length;

  var row = lastRow - 15;

  if (r > 1)

  {

	  tbl.deleteRow(row);

	  r = r - 1;

  }

}



function calgoods2(hkpostfeejpy, currency, a, b)

{

	hkpostfeehkd = Math.round(hkpostfeejpy * currency * Math.pow(10,1))/Math.pow(10,1);

	totalhkd = Math.round((parseFloat(a) + hkpostfeehkd)*Math.pow(10,1))/Math.pow(10,1);

	deposite = Math.round((parseFloat(b) + hkpostfeehkd)*Math.pow(10,1))/Math.pow(10,1);

	document.getElementById("displayhkPostFeehkd").innerHTML = hkpostfeehkd;

	document.getElementById("displaytotalhkd").innerHTML = totalhkd;

	document.getElementById("displaydeposite").innerHTML = deposite;

}



function calgoods3(hkpostfeejpy, currency, a, b, discount)

{

	hkpostfeehkd = Math.round(hkpostfeejpy * currency * Math.pow(10,1))/Math.pow(10,1);

	discounthkd = Math.round(discount * currency * Math.pow(10,1))/Math.pow(10,1);

	totalhkd = Math.round((parseFloat(a) + hkpostfeehkd - discounthkd)*Math.pow(10,1))/Math.pow(10,1);

	deposite = Math.round((parseFloat(b) + hkpostfeehkd - discounthkd)*Math.pow(10,1))/Math.pow(10,1);

	document.getElementById("displayhkPostFeehkd").innerHTML = hkpostfeehkd;

	document.getElementById("displaytotalhkd").innerHTML = totalhkd;

	document.getElementById("displaydeposite").innerHTML = deposite;

	document.getElementById("dipsplaydiscounthkd").innerHTML = discounthkd;

}
