// -------------------- ตรวจสอบเลขที่บัตรประชาชน
function makeArray(n) {
	this.length = n;
	for( var i = 0; i < n ; i++) {
		this[i] = 0;
	}
	return this;
}

function isIdCard(vId) {
	var xCheck = 0;
	var g = 0;
	var c = 0;
	var totalX = 0;
	var sumX = 0;
	var x = new makeArray(13);
	var z = "0";
	var l = "0";
	
	if (vId.length != 13) {
//		alert("เลขบัตรประจำตัวประชาชนต้อง 13 ตัวเท่านั้น");
		return false;
	} else {
		if ( vId.length > 1 ) {
			for (var q = 0; q < vId.length; ++q)	{
				var codee = vId.charCodeAt(q);
				if (codee >= 48 && codee <= 57) {
					if(codee == 48) {
						x[q] = 0;
					} else if(codee ==49) {
						x[q] = 1;
					} else if(codee == 50) {
						x[q] = 2;
					} else if(codee == 51) {
						x[q] = 3;
					} else if(codee == 52) {
						x[q] = 4;
					} else if(codee == 53) {
						x[q] = 5;
					} else if(codee == 54) {
						x[q] = 6;
					} else if(codee == 55) {
						x[q] = 7;
					} else if(codee == 56) {
						x[q] = 8;
					} else if(codee == 57) {
						x[q] = 9;
					}
					if (x[0] == 0) { 
//						alert("เลขบัตรประจำตัวประชาชนไม่ถูกต้อง");
						l = "1"
						return false;
						break;
					}
					if (x[0] == 9) { 
//						alert("เลขบัตรประจำตัวประชาชนไม่ถูกต้อง");
						l = "1"
						return false;
						break;
					} 
					xCheck = x[q]; 
					if (q != 12) {
						totalX = x[q]*(13-q);
						sumX = sumX + totalX;
					}
					continue;
				} else {
//					alert("เลขบัตรประจำตัวประชาชนไม่ถูกต้อง");
					l = "1"
					return false;
					break;
				} 
			}
			c = sumX % 11;
			if (c == 0) {
				g = 1;
			} else if (c == 1) {
				g = 0;
			} else {
				g = 11- c;
			}
			if (xCheck != g) {
//				alert("เลขบัตรประจำตัวประชาชนไม่ถูกต้อง");
				l = "1"
				return false;
			}
			if (l == "1") {
			} else if (l == "0") {
				if (z == "1") {
				}
				if (z == "0") {
					//////////////////// ผ่าน ////////////////////////
//					form1.submit();
					return true;
				}
			}
		}
	}
}

function isDate(day, month, year) {
	day = day - 0;
	month = month - 0;
	year = year - 0;
	
	month_length = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; 
	
	if ((year%4) != 0) {
		month_length[2] = 28;
	} else if ((year%400) == 0) {
		month_length[2] = 29;
	} else if ((year%100) == 0) {
		month_length[2] = 28;
	} else {
		month_length[2] = 29;
	}
	 
	if (month < 1 || month > 12) {
		return false;
	}
	
	if (day < 1 || day > month_length[month]) {
		return false;
	}
	 
	return true;      
}

// -------------------- ตรวจสอบ Forms
var alertColor = "FFFFCC";

function IsBlank(s) {
	for(var i = 0; i < s.length; i++) {
		var c = s.charAt(i);
		if ((c != ' ') && (c != '\n') && (c != '\t')) {
			return false;
		}
	}
	return true;
}

function TextField_NotNull(obj) {
	var s = obj.value;
	if (IsBlank(s) || s == null) {
		obj.style.backgroundColor = alertColor;
		return 1;
	} else {
		obj.style.backgroundColor = "";
		return 0;
	}
}

function DropDownList_Selected(obj) {
	var s = obj.value;
	if (s == -1) {
		obj.style.backgroundColor = alertColor;
		return 1;
	} else {
		obj.style.backgroundColor = "";
		return 0;
	}
}

function RadioBox_Selected(objName) {
	var s = document.getElementsByName(objName);
	for (var i = 0; i < s.length; i++) {
		if (s[i].checked) {
			return 0;
		}
	}
	return 1;
}

function checkAllElementInForm(FormObject) {
	var count = 0;
	for (var i = 0; i < FormObject.elements.length; i++) {
		if (FormObject.elements[i].type == "text" || FormObject.elements[i].type == "textarea") {
			count += TextField_NotNull(FormObject.elements[i]);
		} else if (FormObject.elements[i].type == "select-one") {
			count += DropDownList_Selected(FormObject.elements[i]);
		}
	}
	return count;
}

function setElementInForm(obj) {
	obj.style.backgroundColor = alertColor;
	return 1;
}

function resetElementInForm(obj) {
	obj.style.backgroundColor = "";
	return -1;
}

function validate() {
	var count = 0;
	var frm = document.getElementById("employmentForm")

//	setAllElementInForm(frm);
//	count = checkAllElementInForm(frm);

//-------------------- Channel
	for (var i = 0; i < frm.rbl_Channel.length; i++) {
		if (frm.rbl_Channel[i].checked) {
			resetElementInForm(frm.ddl_Channel_Newspaper);
			resetElementInForm(frm.tb_Channel_Web);
			resetElementInForm(frm.tb_Channel_Other);
			if (i == 1) {
				count += DropDownList_Selected(frm.ddl_Channel_Newspaper);
			} else if (i == 2) {
				count += TextField_NotNull(frm.tb_Channel_Web);
			} else if (i == 3) {
				count += TextField_NotNull(frm.tb_Channel_Other);
			}
		}
	}

//-------------------- Position
	count += DropDownList_Selected(frm.ddl_Level);
	if (frm.ddl_Level.value != "0") {
		if (document.getElementsByName("cbl_Field").length > 0) {
			var bChecked = false;
			for (var i = 0; i < document.getElementsByName("cbl_Field").length; i++) {
				if (document.getElementsByName("cbl_Field")[i].checked) {
					bChecked = true;
				}
			}
			if (!bChecked) {
				document.getElementById("divField").style.backgroundColor = "00FFFF";
				count++;
			} else {
				document.getElementById("divField").style.backgroundColor = "";
			}
		} else {
			alert("ไม่มีตำแหน่งในระดับตำแหน่งนี้ครับ");
			frm.ddl_Level.focus();
			return false;
		}
	}
	count += TextField_NotNull(frm.tb_Salary);

//-------------------- Personal Information
	//-------------------- Name - Lastname
	count += TextField_NotNull(frm.tb_NameTH);
	count += TextField_NotNull(frm.tb_LastnameTH);
	count += TextField_NotNull(frm.tb_NameEN);
	count += TextField_NotNull(frm.tb_LastnameEN);
	//-------------------- Nationality
	for (var i = 0; i < frm.rbl_Nationality.length; i++) {
		if (frm.rbl_Nationality[i].checked) {
			resetElementInForm(frm.tb_IdentificationNumber);
			resetElementInForm(frm.tb_Nationality_o);
			resetElementInForm(frm.tb_PassportNumber);
			if (i == 0) {
//				count += TextField_NotNull(frm.tb_IdentificationNumber);
				if (!isIdCard(frm.tb_IdentificationNumber.value)) {
					setElementInForm(frm.tb_IdentificationNumber);
					count++;
					alert("เลขที่บัตรประชาชนไม่ถูกต้อง");
					frm.tb_IdentificationNumber.focus();
				} else {
					resetElementInForm(frm.tb_IdentificationNumber);
				}
			} else {
				count += TextField_NotNull(frm.tb_Nationality_o);
				count += TextField_NotNull(frm.tb_PassportNumber);
			}
		}
	}
	//-------------------- Birthday
//	count += DropDownList_Selected(frm.ddl_Day_Birthday);
//	count += DropDownList_Selected(frm.ddl_Month_Birthday);
//	count += DropDownList_Selected(frm.ddl_Year_Birthday);
	if (!isDate(frm.ddl_Day_Birthday.value, frm.ddl_Month_Birthday.value, frm.ddl_Year_Birthday.value) || DropDownList_Selected(frm.ddl_Year_Birthday) == 1) {
//		alert("วัน/เดือน/ปี เกิด ไม่ถูกต้อง");
		setElementInForm(frm.ddl_Day_Birthday);
		setElementInForm(frm.ddl_Month_Birthday);
		setElementInForm(frm.ddl_Year_Birthday);
		count += 3;
	} else {
		resetElementInForm(frm.ddl_Day_Birthday);
		resetElementInForm(frm.ddl_Month_Birthday);
		resetElementInForm(frm.ddl_Year_Birthday);
	}

//-------------------- Contact Information
	count += TextField_NotNull(frm.tb_HomePhone);
	count += TextField_NotNull(frm.tb_Mobile);

//-------------------- Reference
	count += TextField_NotNull(frm.tb_refName1);
	count += TextField_NotNull(frm.tb_refRelation1);
	count += TextField_NotNull(frm.tb_refTel1);

//-------------------- Education
	for (var i = 0; i < frm.countEducation.value; i++) {
		count += DropDownList_Selected(document.getElementsByName("ddl_Institute")[i]);
		count += DropDownList_Selected(document.getElementsByName("ddl_Degree")[i]);
		resetElementInForm(document.getElementsByName("tb_Institute")[i]);
		if (document.getElementsByName("ddl_Institute")[i].value == "-1") {
			count += TextField_NotNull(document.getElementsByName("tb_Institute")[i]);
		}
		count += TextField_NotNull(document.getElementsByName("tb_FacultyMajor")[i]);
		count += TextField_NotNull(document.getElementsByName("tb_GPA")[i]);
		count += DropDownList_Selected(document.getElementsByName("ddl_Month_EducationStart")[i]);
		count += DropDownList_Selected(document.getElementsByName("ddl_Year_EducationStart")[i]);
		count += DropDownList_Selected(document.getElementsByName("ddl_Month_EducationStop")[i]);
		count += DropDownList_Selected(document.getElementsByName("ddl_Year_EducationStop")[i]);
	}

//-------------------- Work
	for (var i = 0; i < frm.countWork.value; i++) {
		count += TextField_NotNull(document.getElementsByName("tb_Employer")[i]);
		count += TextField_NotNull(document.getElementsByName("tb_PositionResponsiblity")[i]);
		count += TextField_NotNull(document.getElementsByName("tb_SalaryOld")[i]);
		count += DropDownList_Selected(document.getElementsByName("ddl_Month_WorkStart")[i]);
		count += DropDownList_Selected(document.getElementsByName("ddl_Year_WorkStart")[i]);
		count += DropDownList_Selected(document.getElementsByName("ddl_Month_WorkStop")[i]);
		count += DropDownList_Selected(document.getElementsByName("ddl_Year_WorkStop")[i]);
	}

//-------------------- Language
	for (var i = 0; i < frm.countLanguage.value; i++) {
		count += DropDownList_Selected(document.getElementsByName("ddl_Language")[i]);
		resetElementInForm(document.getElementsByName("tb_Language")[i]);
		if (document.getElementsByName("ddl_Language")[i].value == "-1") {
			count += TextField_NotNull(document.getElementsByName("tb_Language")[i]);
		}
		count += DropDownList_Selected(document.getElementsByName("ddl_Reading")[i]);
		count += DropDownList_Selected(document.getElementsByName("ddl_Writting")[i]);
		count += DropDownList_Selected(document.getElementsByName("ddl_Speaking")[i]);
	}

//-------------------- IT
	for (var i = 0; i < frm.countSoftware.value; i++) {
		count += TextField_NotNull(document.getElementsByName("tb_Software")[i]);
		count += DropDownList_Selected(document.getElementsByName("ddl_Rating")[i]);
	}


	if (count == 0) {
		var listArray
//		if (frm.ff_file.value == "") {
//			return confirm("ท่านไม่ต้องการแนบไฟล์ประกอบการสมัครงานใช่ไหม")
//		} else {
//			return true;
//		}
		for (var i = 0; i < frm.countEducation.value; i++) {
			listArray = document.getElementsByName("tb_Institute")[i].value.split(",");
			document.getElementsByName("tb_Institute")[i].value = listArray.join("_|_");
			listArray = document.getElementsByName("tb_FacultyMajor")[i].value.split(",");
			document.getElementsByName("tb_FacultyMajor")[i].value = listArray.join("_|_");
			listArray = document.getElementsByName("tb_GPA")[i].value.split(",");
			document.getElementsByName("tb_GPA")[i].value = listArray.join("_|_");
		}
		for (var i = 0; i < frm.countWork.value; i++) {
			listArray = document.getElementsByName("tb_Employer")[i].value.split(",");
			document.getElementsByName("tb_Employer")[i].value = listArray.join("_|_");
			listArray = document.getElementsByName("tb_Tel")[i].value.split(",");
			document.getElementsByName("tb_Tel")[i].value = listArray.join("_|_");
			listArray = document.getElementsByName("tb_PositionResponsiblity")[i].value.split(",");
			document.getElementsByName("tb_PositionResponsiblity")[i].value = listArray.join("_|_");
			listArray = document.getElementsByName("tb_SalaryOld")[i].value.split(",");
			document.getElementsByName("tb_SalaryOld")[i].value = listArray.join("_|_");
		}
		for (var i = 0; i < frm.countLanguage.value; i++) {
			listArray = document.getElementsByName("tb_Language")[i].value.split(",");
			document.getElementsByName("tb_Language")[i].value = listArray.join("_|_");
			listArray = document.getElementsByName("tb_Language_Certification")[i].value.split(",");
			document.getElementsByName("tb_Language_Certification")[i].value = listArray.join("_|_");
		}
		for (var i = 0; i < frm.countSoftware.value; i++) {
			listArray = document.getElementsByName("tb_Software")[i].value.split(",");
			document.getElementsByName("tb_Software")[i].value = listArray.join("_|_");
			listArray = document.getElementsByName("tb_Technology_Certification")[i].value.split(",");
			document.getElementsByName("tb_Technology_Certification")[i].value = listArray.join("_|_");
		}

		return true;
	} else {
//		alert(count + " !!! " + "กรุณากรอกข้อมูลในช่องสีฟ้าให้สมบูรณ์ด้วยครับ");
		alert("กรุณากรอกข้อมูลในช่องสีฟ้าให้ถูกต้องด้วยครับ");
		return false;
	}
}