function noChar() {
	if(event.keyCode < 48 || event.keyCode > 57) {
		event.returnValue = false;
	}
}

function onlyDecimalAndComma() {
	if(event.keyCode < 44 || event.keyCode > 57 || event.keyCode == 45 || event.keyCode == 47) {
		event.returnValue = false;
	}
}

function isInteger(text) {
	var i = text.indexOf(".");
	if(i >= 0 || text.length == 0) {
		return false;
	}
	return (!isNaN(text));
}

function isDigit(string)
{
	var i = string.indexOf(".");
	if(i<0) {
		var digit = /\d/g;
		var result = string.match(digit);
		var len = string.length;
		if (result == null) {
			return false;
		}
		else {
			if (result.length < len) {
				return false;
			}
			else {
				return true;
			}
		}
	}
	else {
		var sub1 = string.substring(0,i);
		var sub2 = string.substring(i+1,string.length);
		sub2 = sub2.replace(".",":");
		if( (isDigit(sub1)) && (isDigit(sub2)) ) {
			return true;
		}
		else {
			return false;
		}
	}
}

function openPages(page)
{
	switch (page) {
		case "AddComm" :
			window.location = "AddCommodity.asp";
			break;
		case "ImpCrtJob" :
			window.location = "ImpAddShipment.asp";
			break;
		case "ImpJobList" :
			window.location = "ImpCTLJobList.asp";
			break;
	}
}

function checkInputDate(sDate)
{
	var re,r, aDate ;	
	re = /\d{2}\/\d{2}\/\d{2}$/;
	r = sDate.match(re);
	if (r == null) {
		alert("กรุณาใส่วันที่ตามรูปแบบ dd/mm/yy");
		return 0; // invalid date format
	}
	else {
		aDate = sDate.split("/");
		// check year
		var numYear = 0;
		var digit;
		for (var x=0; x < aDate[2].length; x++) {
			digit = aDate[2].substring(x, x+1);	
			numYear *= 10;
			numYear += parseInt(digit);
		}
		if ( (aDate[2].length != 2) && (aDate[2].length != 4) ) { 
			alert("กรุณาใส่ปีให้ถูกต้อง");
			return 1000;  // invalid year
		}
		if ((numYear < 50) && (aDate[2].length == 2) ) { numYear += 2000; }
		if ( (numYear < 100) && (aDate[2].length == 2) ) { numYear += 1900; }
		if ((numYear <= 0) || (numYear > 9999)) { 
			alert("กรุณาใส่ปีให้ถูกต้อง");
			return 1000; // invalid year
		}

		// check month and day
		switch (parseInt(aDate[1],10)) {
			case 1 :
				if ((parseInt(aDate[0],10) < 1) || (parseInt(aDate[0],10) > 31)) {
					alert("กรุณาใส่วันที่ให้ถูกต้อง (01-31)");
					return 1;} // day in month is invalid
				else return 100;
				break;
			case 2 :
				if (parseInt(aDate[0],10) == 29) {
					var div4 = numYear%4;
					var div100 = numYear%100;
					var div400 = numYear%400;
					if (div4 != 0) {
						alert("กรุณาใส่วันที่ให้ถูกต้อง (01-28)");
						return 2; }
					else {
							return 100;
							}
					if ((div100 ==0) && (div400 != 0)) {
						alert("กรุณาใส่วันที่ให้ถูกต้อง (01-28)");
						return 2;}
						else {
							return 100;
							}
				}
			else {
				if ((parseInt(aDate[0],10) < 1) || (parseInt(aDate[0],10) > 29)) {
					alert("กรุณาใส่วันที่ให้ถูกต้อง (01-29)");
							return 2;}
					else return 100;
					}
				break;
			case 3 :
				if ((parseInt(aDate[0],10) < 1) || (parseInt(aDate[0],10) > 31)) {
					alert("กรุณาใส่วันที่ให้ถูกต้อง (01-31)");
					return 3;}
				else return 100;
				break;
			case 4 :
				if ((parseInt(aDate[0],10) < 1) || (parseInt(aDate[0],10) > 30)) {
					alert("กรุณาใส่วันที่ให้ถูกต้อง (01-30)");
					return 4;}
				else return 100;
				break;
			case 5 :
				if ((parseInt(aDate[0],10) < 1) || (parseInt(aDate[0],10) > 31)) {
					alert("กรุณาใส่วันที่ให้ถูกต้อง (01-31)");
					return 5;}
				else return 100;
				break;
			case 6 :
				if ((parseInt(aDate[0],10) < 1) || (parseInt(aDate[0],10) > 30)) {
					alert("กรุณาใส่วันที่ให้ถูกต้อง (01-30)");
					return 6;}
				else return 100;
				break;
			case 7 :
				if ((parseInt(aDate[0],10) < 1) || (parseInt(aDate[0],10) > 31)) {
					alert("กรุณาใส่วันที่ให้ถูกต้อง (01-31)");
					return 7;}
				else return 100;
				break;
			case 8 :
				if ((parseInt(aDate[0],10) < 1) || (parseInt(aDate[0],10) > 31)) {
					alert("กรุณาใส่วันที่ให้ถูกต้อง (01-31)");
					return 8;}
				else return 100;
				break;
			case 9 :
				if ((parseInt(aDate[0],10) < 1) || (parseInt(aDate[0],10) > 30)) {
					alert("กรุณาใส่วันที่ให้ถูกต้อง (01-30)");
					return 9;}
				else return 100;
				break;
			case 10 :
				if ((parseInt(aDate[0],10) < 1) || (parseInt(aDate[0],10) > 31)) {
					alert("กรุณาใส่วันที่ให้ถูกต้อง (01-31)");
					return 10;}
				else return 100;
				break;
			case 11 :
				if ((parseInt(aDate[0],10) < 1) || (parseInt(aDate[0],10) > 30)) {
					alert("กรุณาใส่วันที่ให้ถูกต้อง (01-30)");
					return 11;}
				else return 100;
				break;
			case 12 :
				if ((parseInt(aDate[0],10) < 1) || (parseInt(aDate[0],10) > 31)) {
					alert("กรุณาใส่วันที่ให้ถูกต้อง (01-31)");
					return 12;}
				else return 100;
				break;
			default :
				alert("กรุณาใส่เดือนให้ถูกต้อง");
				return 13; // month is over
				break;
		}
	}	
}

function checkInputTime(sTime)
{
	var re,r, aTime ;	
	re = /\d{2}\:\d{2}/;
	r = sTime.match(re);
	if (r == null) {
		alert("กรุณาเวลาให้ถูกต้อง (00:00 - 23:59)");
		return 0; 
	}
	else {
		aTime = sTime.split(":");
		if ((parseInt(aTime[0],10) >=0) && (parseInt(aTime[0],10) <=23)) {
			if ((parseInt(aTime[1],10) >=0) && (parseInt(aTime[1],10) <=59)) {
				return 10; 
			}
			else {
				alert("กรุณาใส่นาทีให้ถูกต้อง (00-59)");
				return 1; 
			}
		}
		else {
			alert("กรุณาใส่ชั่วโมงให้ถูกต้อง (00-23)");
			return 2; 
		}
	}
}

function chkNumType(formNm,num,tpe,text)
{
	var a1= eval(formNm+"." + num + "1.value;");
	var a2 = eval(formNm+"." + num + "2.value;");
	var a3 = eval(formNm+"." + num + "3.value;");
	var b1 = eval(formNm+"." + tpe + "1.value;");
	var b2 = eval(formNm+"." + tpe + "2.value;");
	var b3 = eval(formNm+"." + tpe + "3.value;");
	
	if ((a1=="") && (a2=="") && (a3=="")) {	
		alert("ใส่ค่า"+text+"อย่างน้อย 1 ค่า");
		eval(formNm+"."+num+"1.focus();");
		return false;
	}
	else {
		if(a1=="") {
			alert("ใส่ค่า "+text+" ลำดับที่ 1 ก่อน");
			eval(formNm+"."+num+"1.focus();");
			return false;
		}
		else {
			if(!(isDigit(a1))) {
				alert("ใส่ค่าที่เป็นตัวเลขที่ "+text+" ลำดับที่  1");
				eval(formNm+"."+num+"1.focus();");
				return false;
			}
			else {
				if(b1 == "000") {
					alert("เลือกประเภท "+text +" ลำดับที่  1");
					eval(formNm+"."+tpe+"1.focus();");
					return false;
				}
				else {
					if((a2=="") && (a3=="")) {
						return true;
					}
					else {
						if(a2=="") {
							alert("ใส่ค่า "+text+" ลำดับที่  2 ก่อน");
							eval(formNm+"."+num+"2.focus();");
							return false;
						}
						else {
							if(!(isDigit(a2))) {
								alert("ใส่ค่าที่เป็นตัวเลขที่ "+text+" ลำดับที่  2");
								eval(formNm+"."+num+"2.focus();");
								return false;
							}
							else {
								if(b2 == "000") {
									alert("เลือกประเภท "+text +" ลำดับที่  2");
									eval(formNm+"."+tpe+"2.focus();");
									return false;
								}
								else {
									if(a3 == "") {
										return true;
									}
									else {
										if(!(isDigit(a3))) {
											alert("ใส่ค่าที่เป็นตัวเลขที่ "+text+" ลำดับที่ 3");
											eval(formNm+"."+num+"3.focus();");
											return false;
										}
										else {
											if(b3 == "000") {
												alert("เลือกประเภท "+text +" ลำดับที่  3");
												eval(formNm+"."+tpe+"3.focus();");
												return false;
											}
											else {
												return true;
											}
										}
									}
								}
							}
						}
					}
				}
			}
		}
	}	
}
/*
function trim(inputString) {
   if (typeof inputString != "string") { return inputString; }
   var retValue = inputString;
   var ch = retValue.substring(0, 1);
   while (ch == " ") { // Check for spaces at the beginning of the string
      retValue = retValue.substring(1, retValue.length);
      ch = retValue.substring(0, 1);
   }
   ch = retValue.substring(retValue.length-1, retValue.length);
   while (ch == " ") { // Check for spaces at the end of the string
      retValue = retValue.substring(0, retValue.length-1);
      ch = retValue.substring(retValue.length-1, retValue.length);
   }
   while (retValue.indexOf("  ") != -1) { // Note that there are two spaces in the string - look for multiple spaces within the string
      retValue = retValue.substring(0, retValue.indexOf("  ")) + retValue.substring(retValue.indexOf("  ")+1, retValue.length); // Again, there are two spaces in each of the strings
   }
   return retValue; // Return the trimmed string back to the user
}
*/
function trim(text) {
	return(text.replace(/^\s+|\s+$/g, ''));
}

function checkAllImpMaintain(aMethod)
{
	var ServTpe = "";
	var JobGroup = "";
	if(aMethod == "add") {
		for(var i=0; i< MainForm.ServType.length; i++) {
			if(MainForm.ServType[i].checked) {
				ServTpe = MainForm.ServType[i].value;
			}
		}
		JobGroup = MainForm.JobGrp.options[MainForm.JobGrp.options.selectedIndex].value;
	} else {
		ServTpe = MainForm.ServType.value;
		JobGroup = MainForm.JobGroup.value;
		if (MainForm.IssueBy.value == "") {
			alert("กรุณารระบุชื่อผู้แก้ไขเอกสาร"); MainForm.IssueBy.focus(); return;
		}
	}
	if(ServTpe == "") { 
		alert("กรุณาเลือก Service Type"); MainForm.ServType[1].focus(); return;
	} 
	if ( JobGroup == "000") {
		alert("กรุณาเลือก Job Group"); 
		MainForm.JobGrp.focus();
		return;
	}
	if (MainForm.Customer.options[MainForm.Customer.options.selectedIndex].value == "000") {
		alert("กรุณาเลือก Customer"); MainForm.Customer.focus(); return;
	} 
	if (MainForm.Importer.options[MainForm.Importer.options.selectedIndex].value == "000") {
		alert("กรุณาเลือก Importer"); MainForm.Importer.focus();  return;
	}
	if(aMethod == "add") {
		if (MainForm.Commo.options[MainForm.Commo.options.selectedIndex].value == "000") {
			alert("กรุณาเลือก Cargo Description"); MainForm.Commo.focus();  return;
		} 
	}
	if ((trim(MainForm.Supplier.value)).length == 0) {
		alert("กรุณาใส่ชื่อ Supplier"); MainForm.Supplier.focus();  return;
	}
	if ((trim(MainForm.InvNo.value)).length == 0) {
		alert("กรุณาใส่เลขที่ Invoice"); MainForm.InvNo.focus();  return;
	}
	if(trim(MainForm.InvDte.value) =="") {
		alert("กรุณาใส่วันที่ของ Invoice"); MainForm.InvDte.focus();  return;
	}
	if(checkInputDate(MainForm.InvDte.value) != 100){
		MainForm.InvDte.focus();  return;
	}
	if(trim(MainForm.Amount.value) == "") {
		alert("กรุณาใส่จำนวนเงิน"); MainForm.Amount.focus();  return;
	} 
	if(IsvalidMoney(MainForm.Amount.value) == false) {
		alert("กรุณาใส่จำนวนเงินให้ถูกต้อง"); MainForm.Amount.focus();  return;
	} 
	if (MainForm.Currency.options[MainForm.Currency.options.selectedIndex].value == "000") {
		alert("กรุณาเลือก Currency"); MainForm.Currency.focus();  return;
	}
	if(MainForm.Incoterm.options[MainForm.Incoterm.options.selectedIndex].value=="000") {
		alert("กรุณาเลือก Incoterm"); MainForm.Incoterm.focus();  return;
	} 
	if(trim(MainForm.Qnt.value) == "") {
		alert("กรุณาใส่จำนวนปริมาณ"); MainForm.Qnt.focus();  return;
	}
	if(IsvalidMoney(MainForm.Qnt.value) == false) {
		alert("กรุณาใส่จำนวนปริมาณให้ถูกต้อง"); MainForm.Qnt.focus();  return;
	} 
	if(trim(MainForm.QntUnit.value) == "000") {
		alert("กรุณาเลือกหน่วยของปริมาณ"); MainForm.QntUnit.focus();  return;
	}
	if(trim(MainForm.Pkg.value) == "") {
		alert("กรุณาใส่จำนวน Package"); MainForm.Pkg.focus();  return;
	}
	if(IsvalidMoney(MainForm.Pkg.value) == false) {
		alert("กรุณาใส่จำนวน Package ให้ถูกต้อง"); MainForm.Pkg.focus();  return;
	}
	if (MainForm.PkgUnit.options[MainForm.PkgUnit.options.selectedIndex].value == "000") {
		alert("กรุณาเลือกชนิดของ Package"); MainForm.PkgUnit.focus();  return;
	}
	if(trim(MainForm.NWgh.value) == "") {
		alert("กรุณาใส่จำนวนของ Net Weight"); MainForm.NWgh.focus();  return;
	}
	if(isDigit(MainForm.NWgh.value) == false) {
		alert("กรุณาใส่จำนวนของ Net Weight  ให้ถูกต้อง"); MainForm.NWgh.focus();  return;
	} 
	if(MainForm.NWghUnit.options[MainForm.NWghUnit.options.selectedIndex].value == "000") {
		alert("กรุณาเลือกหน่วยของ Net Weight"); MainForm.NWghUnit.focus();  return;
	}
	if(trim(MainForm.GWgh.value) == "") {
		alert("กรุณาใส่จำนวนของ Gross Weight"); MainForm.GWgh.focus();  return;
	}
	if(isDigit(MainForm.GWgh.value) == false) {
		alert("กรุณาใส่จำนวนของ Gross Weight  ให้ถูกต้อง"); MainForm.GWgh.focus();  return;
	} 
	var nw = trim(MainForm.NWgh.value);
	var gw = trim(MainForm.GWgh.value);
	var temp = gw - nw;
	if (temp < 0) {
		alert("Gross Weight ต้องมากกว่า Net Weight"); MainForm.GWgh.focus(); return;
	}
	if(trim(MainForm.PlaceRev.value) == "") {
		alert("กรุณาระบุสถานที่รับสินค้า"); MainForm.PlaceRev.focus();  return;
	}
	if(trim(MainForm.CargoRcvDte.value) == "") {
		alert("กรุณาระบุ Cargo Received Date"); MainForm.CargoRcvDte.focus();  return;
	} 
	if (trim(MainForm.CargoRcvDte.value) != "-") {
		if(checkInputDate(MainForm.CargoRcvDte.value) != 100) {
			MainForm.CargoRcvDte.focus();  return;
		} 
	}
	if(trim(MainForm.CargoRcvTme.value) != "-") { 
		if (checkInputTime(MainForm.CargoRcvTme.value) != 10) {
			MainForm.CargoRcvTme.focus();  return;
		} 
	}
	var ship=MainForm.ShipmentMode.options[MainForm.ShipmentMode.options.selectedIndex].value;
	var flag;
	if(ship == "000") {
		alert("กรุณาเลือก Mode of Shipment "); MainForm.ShipmentMode.focus();  return;
	} 
	switch(trim(ship)) {
		case "Container - FCL" :
			if(MainForm.TransportMode.options[MainForm.TransportMode.options.selectedIndex].value == "000") {
				alert("กรุณาเลือก Mode of Transport"); MainForm.TransportMode.focus(); return;
			} else {
				flag = chkNumType('MainForm','Container','ContainerTp','Container');
				break;
			}					
		case "Container - LCL" :
			if(MainForm.TransportMode.options[MainForm.TransportMode.options.selectedIndex].value == "000") {
				alert("กรุณาเลือก Mode of Transport"); MainForm.TransportMode.focus(); return;
			} else {
				flag = true;
				break;
			}
		case "Bulk" :
			if(MainForm.TransportMode.options[MainForm.TransportMode.options.selectedIndex].value == "000") {
				alert("กรุณาเลือก Mode of Transport"); MainForm.TransportMode.focus(); return;
			} else {
				flag = true;
				break;
			}
		case "Truck" :
			if(MainForm.TransportMode.options[MainForm.TransportMode.options.selectedIndex].value == "000") {
				alert("กรุณาเลือก Mode of Transport"); MainForm.TransportMode.focus(); return;
			} else {
				flag = chkNumType('MainForm','Container','ContainerTp','Container');
				break;
			}
		case "Rail / Rail Container" :
			if(MainForm.TransportMode.options[MainForm.TransportMode.options.selectedIndex].value == "000") {
				alert("กรุณาเลือก Mode of Transport"); MainForm.TransportMode.focus(); return;
			} else {
				flag = chkNumType('MainForm','Container','ContainerTp','Container');
				break;
			}
		case "Air Freight" :
			if ((trim(MainForm.Container1.value) != "") && (trim(MainForm.Container1.value) != "-")) {
				flag = chkNumType('MainForm','Container','ContainerTp','Container');
			} else {
				flag = true;
			}
			break;
		default :
			flag = true;
			break;	
	}
	if(flag==false) { 
		return;
	}
	if(trim(MainForm.WaybillNo.value) == "") {
		alert("กรุณาระบุ Waybill No."); MainForm.WaybillNo.focus();  return;
	}
	if(trim(MainForm.Vessel.value) == "") {
		alert("กรุณาระบุ Vessel/Flight"); MainForm.Vessel.focus();  return;
	}
	if(trim(MainForm.Agent.value) == "") {
		alert("กรุณาระบุ Agent"); MainForm.Agent.focus();  return;
	}
	if(trim(MainForm.LoadingPort.value) == "") {
		alert("กรุณาระบุ Loading Port"); MainForm.LoadingPort.focus();
	}
	if(trim(MainForm.EtdDte.value) == "") {
		alert("กรุณาระบ ETD Date"); MainForm.EtdDte.focus(); return;
	}
	if(checkInputDate(MainForm.EtdDte.value) != 100) {
		MainForm.EtdDte.focus();  return;
	}
	if(trim(MainForm.DischargePort.value) == "") {
		alert("กรุณาระบุ Discharging Port"); MainForm.DischargePort.focus();  return;
	}
	if(trim(MainForm.EtaDte.value) == "") {
		alert("กรุณาระบ ETA Date"); MainForm.EtaDte.focus();  return;
	}
	if(checkInputDate(MainForm.EtaDte.value) != 100) {
		MainForm.EtaDte.focus();  return;
	}
	if(trim(MainForm.PlcRelease.value) == "") {
		alert("กรุณาระบุ Place of Release"); MainForm.PlcRelease.focus();  return;
	} 
	if (trim(MainForm.ActArrDte.value) != "-") {
		if(checkInputDate(MainForm.ActArrDte.value) != 100) {
			MainForm.ActArrDte.focus();  return;
		}
	}
	switch (ServTpe) {
		case "IMB" :
			flag = chkCustom();
			if (!flag) {
				return;
			} else {
				flag = chkTransCont(aMethod);
			}
			if(!flag) return;
			break;
		case "IMC" :
			flag = chkCustom();
			if(!flag) return;
			break;
		case "IMT" :
			flag = chkTransCont(aMethod);
			if(!flag) return;
	}
	if(flag==false) {
		return;
	}
	// check other contractors
	flag = chkOtherCont(aMethod);
	if(flag == false) {
		return;
	}
	if(trim(MainForm.ImportDte.value) !="-") {
		if(checkInputDate(MainForm.ImportDte.value) != 100) {
			MainForm.ImportDte.focus(); return;
		}
	}
	if(trim(MainForm.ReleaseDte.value) != "-") {
		if(checkInputDate(MainForm.ReleaseDte.value) != 100) {
			MainForm.ReleaseDte.focus(); return;
		} 
	}
	if(trim(MainForm.InboundDteFr.value) != "-") {
		if(checkInputDate(MainForm.InboundDteFr.value) != 100) {
			MainForm.InboundDteFr.focus(); return;
		}
	}
	if(trim(MainForm.InboundTmeFr.value) != "-") {
		if(checkInputTime(MainForm.InboundTmeFr.value) != 10) {
			MainForm.InboundTmeFr.focus(); return;
		}
	}
	if(trim(MainForm.InboundDteTo.value) != "-") {
		if(checkInputDate(MainForm.InboundDteTo.value) != 100) {
			MainForm.InboundDteTo.focus(); return;
		}
	}
	if(trim(MainForm.InboundTmeTo.value) != "-") {
		if(checkInputTime(MainForm.InboundTmeTo.value) != 10) {
			MainForm.InboundTmeTo.focus(); return;
		}
	}
	if(trim(MainForm.OutboundDteFr.value) != "-") {
		if(checkInputDate(MainForm.OutboundDteFr.value) != 100) {
			MainForm.OutboundDteFr.focus(); return;
		} 
	}
	if(trim(MainForm.OutboundTmeFr.value) != "-") {
		if(checkInputTime(MainForm.OutboundTmeFr.value) != 10) {
			MainForm.OutboundTmeFr.focus(); return;
		} 
	}
	if(trim(MainForm.OutboundDteTo.value) != "-") {
		if(checkInputDate(MainForm.OutboundDteTo.value) != 100) {
			MainForm.OutboundDteTo.focus(); return;
		} 
	}
	if(trim(MainForm.OutboundTmeTo.value) != "-") {
		if(checkInputTime(MainForm.OutboundTmeTo.value) != 10) {
			MainForm.OutboundTmeTo.focus(); return;
		}
	}
	if(aMethod=="add") {
		MainForm.submit();
	} else {
		chkInputProduct('edit');
	}
}

function chkCustom()
{
	if(MainForm.CustomCont.options[MainForm.CustomCont.options.selectedIndex].value == "000") {
		alert("กรุณาเลือกผรม.พิธีการ"); MainForm.CustomCont.focus(); return false; 
	} else {
		if(MainForm.CustomTpe.options[MainForm.CustomTpe.options.selectedIndex].value == "000") {
			alert("กรุณาเลือกประเภทพิธีการ"); MainForm.CustomTpe.focus(); return false; 
		} else {
			if(MainForm.PrivTpe.options[MainForm.PrivTpe.options.selectedIndex].value == "000") {
				alert("กรุณาเลือกประเภทสิทธิประโยชน์"); MainForm.PrivTpe.focus(); return false;  
			}
			else {
				return true;
			}
		}
	}
}

function chkTransCont(aMethod)
{
	var flag;
	var ind = MainForm.TransNum.value; 
	if(aMethod=="add") {
		if(trim(MainForm.TransNum.value) == "") {
			alert("กรุณาระบุจำนวนผรม.ขนส่งอย่างน้อย 1 ผรม."); MainForm.TransNum.focus(); flag = false; return flag; 
		}
	} else {
		var delNum = 0;
		if(MainForm.TransAmount.value > ind) {
			for(var i=1;i<MainForm.TransAmount.value;i++) {
				if(eval("MainForm.DelTrans"+i+".checked")) {
					delNum += 1;
				}
			}
			if (delNum == MainForm.TransAmount.value - 1) {
				alert("ไม่สามารถลบผรม.ขนส่งออกทั้งหมดได้  กรุณาเลือกลบเพียงบางส่วน"); MainForm.DelTrans1.focus(); flag = false; return flag; 
			}
		}
	}
	var trans = new Array(ind);
	for(var i=1;i<=ind;i++) {
		if(eval("MainForm.TransContractor"+i+".options[MainForm.TransContractor"+i+".options.selectedIndex].value") == "000") {
			alert("กรุณาเลือกผรม. "+i); eval("MainForm.TransContractor"+i+".focus();"); flag = false; return flag;
		} else {
			var id = eval("MainForm.TransContractor"+i+".options[MainForm.TransContractor"+i+".options.selectedIndex].value").split("|");
			if((i-1) == 0) {
				trans[i-1] = id[0];
			} else {
				for(var x=0;x<(i-1);){
					if(trans[x] == id[0]) {
						alert("ผรม.ที่เลือกซ้ำกับผรม.ที่เลือกไว้แล้ว กรุณาเลือกผรม. "+i+" ใหม่"); eval("MainForm.TransContractor"+i+".focus();"); flag = false; return flag;
					}else {
						trans[i-1] = id[0];
						x +=1;
					}
				}		
			}
			if(eval("MainForm.RevPlace"+i+".value") == "") {
				alert("กรุณาระบุสถานที่รับตู้สินค้า "+i); eval("MainForm.RevPlace"+i+".focus();"); flag = false; return flag;
			}
			if(eval("MainForm.RetPlace"+i+".value") == "") {
				alert("กรุณาระบุสถานที่คืนตู้สินค้า "+i); eval("MainForm.RetPlace"+i+".focus();"); flag = false; return flag;
			}
			if (eval("MainForm.RetDte"+i+".value") != "-") {
				if(checkInputDate(eval("MainForm.RetDte"+i+".value")) != 100) {
					eval("MainForm.RetDte"+i+".focus();"); flag = false; return flag;
				}
			}
			flag = chkNumType('MainForm','TransTpNo'+i,'TransTpe'+i,'พาหนะ'+i);
			if(!flag) return;
		}
	}
	return flag;
}

function chkOtherCont(aMethod)
{
	var chk;
	var max=0;
	if (aMethod == "add") {
		if((MainForm.OthersNum.value=="") || (MainForm.OthersNum.value==0)) {
			return true;
		} else {
			max = MainForm.OthersNum.value;
		}
	} else {
		max = MainForm.OthersNum.value;
	}
	for(var i=1;i<=max;i++) {
		if(eval("MainForm.Other"+i+".value") == "") {
			alert("กรุณาระบุประเภทผรม.อื่น "+i); eval("MainForm.Other"+i+".focus();"); return false;
		}
		if(eval("MainForm.OthName"+i+".value") == "") {
			alert("กรุณาระบุชื่อผรม.อื่น "+i); eval("MainForm.OthName"+i+".focus();"); return false;
		}
		if(eval("MainForm.OthContact"+i+".value") == "") {
			alert("กรุณาระบุชื่อผู้ติดต่อของผรม. "+i); eval("MainForm.OthContact"+i+".focus();"); return false;
		}
		if(eval("MainForm.OthTel"+i+".value") == "") {
			alert("กรุณาเบอร์โทรศัพท์ของผู้ติดต่อ "+i); eval("MainForm.OthTel"+i+".focus();"); return false;
		}
	}	
	return true;
}

function chkInputProduct(aMethod)
{
	var FormName = "";
	if(aMethod == "add") {
		FormName = "CustomDeclare";
	} else {	
		FormName = "MainForm";
	}
	var flag = false;
	var ind=0;
	ind = eval(FormName+".CustomDeclareNum.value;");
	if(aMethod == "add") {
		if((CustomDeclare.CustomDeclareNum.value == "") || (CustomDeclare.CustomDeclareNum.value == 0)) {
			alert("กรุณาเลือกสินค้าอย่างน้อย 1 ชนิด"); CustomDeclare.CustomDeclareNum.focus(); flag = false; return;
		}
		ind = CustomDeclare.CustomDeclareNum.value;
	} else {
		var delNum = 0;
		if(MainForm.ProdAmount.value > ind) {
			for(var i=1;i<MainForm.ProdAmount.value;i++) {
				if(eval("MainForm.DelProd"+i+".checked")) {
					delNum += 1;
				}
			}
			if (delNum == MainForm.ProdAmount.value - 1) {
				alert("ไม่สามารถลบรายการสินค้าออกทั้งหมดได้  กรุณาเลือกลบเพียงบางงรายการ");MainForm.DelProd1.focus(); flag = false; return;
			} 
		}
		ind = MainForm.CustomDeclareNum.value;
	}
	if (ind > 0) {
		var prod = new Array(ind);
		for(var i=1;i<=ind;i++) {
			if(trim(eval(FormName+".ProdID"+i+".value"))=="") {
				alert("กรุณาระบุ Product Id ของสินค้าที่ "+i);  eval(FormName+".ProdName"+i+".focus();"); flag = false; return;
			} else {
				var id = eval(FormName+".ProdID"+i+".value");
				if((i-1) == 0) {
					prod[i-1] = id;
				} else {
					for(var x=0;x<(i-1);){
						if(prod[x]==id) {
							alert("สินค้าที่ระบุซ้ำกับสินค้าที่ระบุไว้แล้ว กรุณาระบุสินค้า "+i+" ใหม่"); eval(FormName+".ProdName"+i+".disabled = false;");
							eval(FormName+".ProdID"+i+".focus();"); flag = false; return;
						}else {
							prod[i-1] = id;
							x +=1;
						}
					}		
				}
				if(eval(FormName+".AliasChk"+i+".checked")) {
					if((eval(FormName+".AliasNm"+i+".value") == "") && (eval(FormName+".alias"+i+".value") == "0")) {
						alert("กรุณาระบุชื่ออื่นๆ ของสินค้า"); eval(FormName+".AliasNm"+i+".focus();"); flag = false; return;
					} else {
						flag = true;
					}
				}
				else {
					flag = true;
				}
			}
		}
	} else {
		flag = true;
	}
	if(flag) {
		eval(FormName+".submit();");
	}
}
function IsvalidMoney(s)
{
	if (s=="") return true; 
	re1 =  / *\d{1,3}(\,\d{3})*(\.\d+){0,1} */;
	re2 = / *\d{1,3}\d*(\.\d+){0,1} */;
	r1= s.match(re1);
	r2 = s.match(re2)
	if (r1==null && r2==null) return false;
	if ((r1[0] != s) && (r2[0] != s)) return false;
	return true;
}

function isDate(strDate)
{
			if ((parseFloat(strDate) <= 0) || (parseFloat (strDate)  > 31))
			{
					//alert("Date less than 1 or more than 31");
					return "false";
			} else 
			{
					return "true";
			}	
}

function isMonth(strMonth)
{
			if ((parseFloat(strMonth) <= 0) || (parseFloat(strMonth)  > 12))
			{
					//alert("Month less than 1 or more than 12");
					return "false";
			} else 
			{
					return "true";
			}
}

function isYear(strYear)
{
			if (strYear.substring(0,2) != "20")
			{
					//alert("Year must in format 20xx");
					return "false";
			} else 
			{
					return "true";
			}
}

function isFDate(strFDate)
{
	if (strFDate.length != 8)
	{
		return "false";
	}
	else 
	if (isDigit(strFDate) == "false")
	{
		return "false";
	}
	else 
	{
			var strDate		= strFDate.substring(0,2);
			var strMonth	= strFDate.substring(3,5);
			var strYear		= "20" + strFDate.substring(6,8);
			
			/*alert("muai");
			alert(isDate(strDate) );
			alert(isMonth(strMonth) );*/
			/*alert(strDate);
			alert(strMonth);
			alert(strYear);*/

			if ((isDate(strDate) == "false") || (isMonth(strMonth) =="false" ) || (isYear(strYear)=="false" ))
			{
				return "false";
			} 
			else 
			{
				//check is date exist in Calendar
				var vDate = new Date(strYear,strMonth-1,strDate);
				//alert(vDate);
				if (vDate.getDate() == parseFloat(strDate))
				{
					return "true";
				} else 
				{
					return "false";
				}
			}
	}
}

function onlyDecimalNumber( obj ) {
	var msg=obj.value; 
    var index;
    var dotposition=msg.indexOf( "." );
    var ch;
  
    for ( index=0; index<msg.length; index++ )  {
      ch=msg.substring(index,index+1);
      if ( ch<"0" || ch>"9" )  {    
           if ( dotposition>0 )
             if ( index==dotposition )  continue;    
       
           msg=msg.substring(0,index);
           obj.value=msg; 
           break;           
      }
    }
}

function isQtyInteger(string){
	
	var dot = /\./g;		
	var result1 = string.match(dot);	
	var valid = "true";	
	if (result1 == null){
		if(isDigit(string) == "false"){
			valid = "false";
		}
	}else{
		if (result1.length > 1) {// more than one dot entered
			valid = "false";
		}else{				
			var result2 = string.split(".");
			var front = result2[0];
			var back = result2[1];						
			if (back.length == 0){
				valid = "false";
			}else{
				if(isDigit(back) == "false"){
					valid = "false";
				}else{
					if (front.length > 0){
						if(isDigit(front) == "false"){
							valid = "false";
						}
					}
					if (back.length > 2){
							valid = "false";
					}
					if (back.length > 0 && parseInt(back) > 0 ) {
						valid = "false";
					}
				}
			}
		}
	}
	return valid;
}

function chkVal (obj) {
		if (isNaN(obj.value)) {
		   obj.value = 0;
		} 
} 

   // CONSTANTS
  var separator = ",";  // use comma as 000's separator
  var decpoint = ".";  // use period as decimal point
  var percent = "%";
  var currency = "$";  // use dollar sign for currency

  function formatNumber(number, format, print) {  // use: formatNumber(number, "format")
    if (print) document.write("formatNumber(" + number + ", \"" + format + "\")<br>");

    if (number - 0 != number) return null;  // if number is NaN return null
    var useSeparator = format.indexOf(separator) != -1;  // use separators in number
    var usePercent = format.indexOf(percent) != -1;  // convert output to percentage
    var useCurrency = format.indexOf(currency) != -1;  // use currency format
    var isNegative = (number < 0);
    number = Math.abs (number);
    if (usePercent) number *= 100;
    format = strip(format, separator + percent + currency);  // remove key characters
    number = "" + number;  // convert number input to string

     // split input value into LHS and RHS using decpoint as divider
    var dec = number.indexOf(decpoint) != -1;
    var nleftEnd = (dec) ? number.substring(0, number.indexOf(".")) : number;
    var nrightEnd = (dec) ? number.substring(number.indexOf(".") + 1) : "";

     // split format string into LHS and RHS using decpoint as divider
    dec = format.indexOf(decpoint) != -1;
    var sleftEnd = (dec) ? format.substring(0, format.indexOf(".")) : format;
    var srightEnd = (dec) ? format.substring(format.indexOf(".") + 1) : "";

     // adjust decimal places by cropping or adding zeros to LHS of number
    if (srightEnd.length < nrightEnd.length) {
      var nextChar = nrightEnd.charAt(srightEnd.length) - 0;
      nrightEnd = nrightEnd.substring(0, srightEnd.length);
      if (nextChar >= 5) nrightEnd = "" + ((nrightEnd - 0) + 1);  // round up

 // patch provided by Patti Marcoux 1999/08/06
      while (srightEnd.length > nrightEnd.length) {
        nrightEnd = "0" + nrightEnd;
      }

      if (srightEnd.length < nrightEnd.length) {
        nrightEnd = nrightEnd.substring(1);
        nleftEnd = (nleftEnd - 0) + 1;
      }
    } else {
      for (var i=nrightEnd.length; srightEnd.length > nrightEnd.length; i++) {
        if (srightEnd.charAt(i) == "0") nrightEnd += "0";  // append zero to RHS of number
        else break;
      }
    }

     // adjust leading zeros
    sleftEnd = strip(sleftEnd, "#");  // remove hashes from LHS of format
    while (sleftEnd.length > nleftEnd.length) {
      nleftEnd = "0" + nleftEnd;  // prepend zero to LHS of number
    }

    if (useSeparator) nleftEnd = separate(nleftEnd, separator);  // add separator
    var output = nleftEnd + ((nrightEnd != "") ? "." + nrightEnd : "");  // combine parts
    output = ((useCurrency) ? currency : "") + output + ((usePercent) ? percent : "");
    if (isNegative) {
      // patch suggested by Tom Denn 25/4/2001
      output = (useCurrency) ? "(" + output + ")" : "-" + output;
    }
    return output;
  }

  function strip(input, chars) {  // strip all characters in 'chars' from input
    var output = "";  // initialise output string
    for (var i=0; i < input.length; i++)
      if (chars.indexOf(input.charAt(i)) == -1)
        output += input.charAt(i);
    return output;
  }

  function separate(input, separator) {  // format input using 'separator' to mark 000's
    input = "" + input;
    var output = "";  // initialise output string
    for (var i=0; i < input.length; i++) {
      if (i != 0 && (input.length - i) % 3 == 0) output += separator;
      output += input.charAt(i);
    }
    return output;
  }

  
function DatePeriod(strFDate, strTDate)
{
		  var datefrom = strFDate.split("/");
		  var dateto	  = strTDate.split("/");

		  var FDate = new Date(datefrom[2], datefrom[1], datefrom[0]);
		  var TDate=new Date(dateto[2], dateto[1], dateto[0]);
		  return (TDate - FDate)/86400000;   
}

function onlyDecimalNumber( obj ) {
	var msg=obj.value; 
    var index;
    var dotposition=msg.indexOf( "." );
    var ch;
  
    for ( index=0; index<msg.length; index++ )  {
      ch=msg.substring(index,index+1);
      if ( ch<"0" || ch>"9" )  {    
           if ( dotposition>0 )
             if ( index==dotposition )  continue;    
       
           msg=msg.substring(0,index);
           obj.value=msg; 
           break;           
      }
    }
}
