function validRequired(formField,fieldLabel,Choice)
{
	var result = true;
	
	if (formField.value == Choice)
	{
		alert('กรุณากรอกข้อมูลในช่อง "' + fieldLabel +'" ด้วย.');
		formField.focus();
		result = false;
	}
	
	return result;
}

function searchReplace(src,a,b)
{
//searchReplace(" 2/ 4/ 2548 "," ","")
	var dest = "";
    if(a.length > 0) { // this must be true for the routine to stop
        while ((i = src.indexOf(a)) != -1) { // each time "a" is found,
            dest += src.substring(0,i) + b; // replace "a" with "b",
            src = src.substring(i + a.length); // then skip over "a" in "src".
        }
        dest += src; // finally, capture any remaining characters
    }
    else { // return the original string
        dest = src;
    }
    return(dest);
}

function validRequiredDist(formField,fieldLabel,Choice,Which)
{
	var result = true;
	var mybutton = eval("document.myform."+Which);

	if (formField.value == Choice)
	{
		alert('กรุณากรอกข้อมูลในช่อง "' + fieldLabel +'" ด้วย.');
		mybutton.focus();
		mybutton.style.borderColor="red"
		result = false;
	}
	
	return result;
}

function validOther(formField,fieldLabel,formCombo,Choice)
{
	var result = true;

	if (formCombo.value==Choice && formField.value=="") 
	{
		alert('กรุณากรอกข้อมูลในช่อง "' + fieldLabel +'" ด้วย.\nเพราะมีการเลือกช่อง อื่นๆ.');
		formField.focus();
		result = false;
	}
	
	return result;
}


function allDigits(str)
{
	return inValidCharSet(str,"0123456789");
}

function inValidCharSet(str,charset)
{
	var result = true;

	// Note: doesn't use regular expressions to avoid early Mac browser bugs	
	for (var i=0;i<str.length;i++)
		if (charset.indexOf(str.substr(i,1))<0)
		{
			result = false;
			break;
		}
	
	return result;
}

function allDecimal(str)
{
	return inValidCharSet(str,"0123456789.");
}

function inValidCharSet(str,charset)
{
	var result = true;

	// Note: doesn't use regular expressions to avoid early Mac browser bugs	
	for (var i=0;i<str.length;i++)
		if (charset.indexOf(str.substr(i,1))<0)
		{
			result = false;
			break;
		}
	
	return result;
}

function validDecimal(formField,fieldLabel,required)
{
	var result = true;

	if (required && !validRequired(formField,fieldLabel,""))
		result = false;
  
 	if (result)
 	{
 		if (!allDecimal(formField.value))
 		{
 			alert('กรุณากรอกเฉพาะตัวเลขลงในช่อง "' + fieldLabel +'" ด้วย. \nซึ่งอาจมีทศนิยมได้');
			viewnow(View);
			formField.focus();		
			result = false;
		}

		if (result)
		{
			var myfloat = parseFloat(formField.value);
			result = (myfloat>=1) && (myfloat<=4.00);
			//alert(myfloat);
			if (!result)
			{
				alert('กรุณากรอกเฉพาะตัวเลขลงในช่อง "' + fieldLabel +'".\nให้อยู่ระหว่าง 1.00 - 4.00 เท่านั้น');
				formField.focus();		
				result = false;
			}
		}

	}

	return result;
}

function validNum(formField,fieldLabel,required)
{
	var result = true;

	if (required && !validRequired(formField,fieldLabel,""))
		result = false;
  
 	if (result)
 	{
 		if (!allDigits(formField.value))
 		{
 			alert('กรุณากรอกเฉพาะตัวเลขลงในช่อง "' + fieldLabel +'" ด้วย.\nหรือไม่ต้องเคาะให้มีช่องว่าง หน้าหรือหลังตัวเลข');
			formField.focus();		
			result = false;
		}
	} 
	
	return result;
}

function validFixNum(formField,fieldLabel,required,mylength)
{
	var result = true;

	if (required && !validRequired(formField,fieldLabel,""))
		result = false;
  
 	if (result)
 	{

 		var mynum = formField.value;

		result = (allDigits(mynum) && (mynum.length==mylength));
 		
  		if (!result)

 		{
 			alert('กรุณากรอกเฉพาะตัวเลข ' + mylength + ' หลักลงในช่อง "' + fieldLabel +'" ด้วย.');
			formField.focus();		
			result = false;
		}

	} 
	
	return result;
}

function validInt(formField,fieldLabel,required)
{
	var result = true;

	if (required && !validRequired(formField,fieldLabel))
		result = false;
  
 	if (result)
 	{
 		var num = parseInt(formField.value,10);
 		if (isNaN(num))
 		{
 			alert('กรุณากรอกตัวเลขสำหรับช่อง "' + fieldLabel +'"');
			formField.focus();		
			result = false;
		}
	} 
	
	return result;
}


function validDate(formField,fieldLabel,required)
{
	var result = true;

	if (required && !validRequired(formField,fieldLabel,""))
		result = false;
  
 	if (result)
 	{
		var mystr=formField.value;
		mystr= searchReplace(mystr," ","");
 		var elems = mystr.split("/");
 		
 		result = (elems.length == 3);
 		
 		if (result)
 		{
 			var day = parseInt(elems[0],10);
  			var month = parseInt(elems[1],10);
 			var year = parseInt(elems[2],10);
			result = allDigits(elems[0]) && (month > 0) && (month < 13) &&
					 allDigits(elems[1]) && (day > 0) && (day < 32) &&
					 allDigits(elems[2]) && (elems[2].length == 4) && (year >2500);
 		}
 		
  		if (!result)
 		{
 			alert('จะต้องกรอกวันที่ในรูปแบบ วว/ดด/ปปปป สำหรับช่อง "' + fieldLabel +'"\nเช่น 29/5/2530');
			formField.focus();		
		}
	} 
	
	return result;
}

function validYear(formField,fieldLabel,required)
{
	var result = true;

	if (required && !validRequired(formField,fieldLabel,""))
		result = false;
  
 	if (result)
 	{
 		var myyear = formField.value;
 		
		result = (myyear >2470) && (myyear.length==4);
 		
  		if (!result)
 		{
 			alert('จะต้องกรอก พ.ศ. ในช่อง "' + fieldLabel +'"\nเช่น 2528');
			formField.focus();		
		}
	} 
	
	return result;
}

function validDay(myform,which,formField,fieldLabel,required)
{
	//	if (!validDay("myform","1","วันที่",true)) 

	var result = true;

	formField2 = eval("document."+myform+".day"+which);

	if (required && !validRequired(formField,fieldLabel,""))
		result = false;
  
 	if (result) {

 		var myday = formField2.value; 	
		//alert(myday);
		var mymonth = eval("document."+myform+".month"+which);
		var mymax;
		var myyear = eval("document."+myform+".year"+which);
		myyear = (myyear.value-543) % 4;

		switch(mymonth.value) {
			case '1':
				mymax = 31;
				break
			case '2':
				
				if (myyear=='0') {
					mymax = 29;
					break
				} else {
					mymax = 28;
					break
				}
			case '3':
				mymax = 31;
				break
			case '4':
				mymax = 30;
				break
			case '5':
				mymax = 31;
				break
			case '6':
				mymax = 30;
				break
			case '7':
				mymax = 31;
				break
			case '8':
				mymax = 31;
				break
			case '9':
				mymax = 30;
				break
			case '10':
				mymax = 31;
				break
			case '11':
				mymax = 30;
				break
			case '12':
				mymax = 31;
				break
		}

		result = (myday <=mymax) && (myday >0);
	
		if (!result)
 		{
 			alert('ข้อมูล "' + fieldLabel +'"  ไม่ถูกต้อง กรุณาตรวจสอบใหม่อีกครั้ง\nเช่น วันที่ต้องอยู่ระหว่าง 1-' + mymax + ' เท่านั้น');

			formField2.focus();
			result = false;
			
		}
	} 

	//alert(mymax);

	if (!result) {
		formField2.focus();	
	}

	return result;

}

function validZipCode(formField,fieldLabel,required)
{
	var result = true;

	if (required && !validRequired(formField,fieldLabel,""))
		result = false;
  
 	if (result)
 	{
 		var myzipcode = formField.value;
 		
		result = (myzipcode >10000) && (myzipcode.length==5);
 		
  		if (!result)
 		{
 			alert('จะต้องกรอก รหัสไปรษณีย์ ในช่อง "' + fieldLabel +'" ให้ถูกต้องด้วย.\nเช่น 40002');
			formField.focus();		
		}
	} 
	
	return result;
}

function compare2date() {
	var result = true;
	//var mydate = document.myform.txtIssuedDate.value.split("/");
	var myyear = document.myform.year2.value;
	var mymonth = document.myform.month2.value;
	var myday = document.myform.day2.value;
	var date1 = new Date(myyear,mymonth-1,myday);
	//var mydate = document.myform.txtExpiryDate.value.split("/");
	var myyear = document.myform.year3.value;
	var mymonth = document.myform.month3.value;
	var myday = document.myform.day3.value;
	var date2 = new Date(myyear,mymonth-1,myday);
	result = (date1<date2);
	if (!result) {
		alert('วันหมดอายุต้องมากกว่าวันออกบัตร');
		viewnow(View);
		document.myform.day2.focus();		
	}
	return result;
}

function validateForm(theForm)
{

	if (!validateIDNO(theForm.CitizenID))
		return false;

	if (!validRequired(theForm.race,"เชื้อชาติ",""))
		return false;

	if (!validRequired(theForm.ttitle,"คำนำหน้า","-"))
		return false;

	if (!validRequired(theForm.FirstName,"ชื่อผู้สมัคร",""))
		return false;

	if (!validRequired(theForm.SurName,"นามสกุล",true))
		return false;

	if (!validYear(theForm.year,"พ.ศ. เกิด",true))
		return false;

	if (!validDay("myform","", theForm.day,"วันเดือนปีเกิด",true)) 
		return false;

	if (!validRequired(theForm.txtHNo,"บ้านเลขที่","",'1'))
		return false;

	if (!validRequired(theForm.txtSubDistrict,"ตำบล","",'1'))
		return false;

	if (!validRequiredDist(theForm.txtDistrictH,"อำเภอ โดยคลิกที่ปุ่ม 'ค้นหาอำเภอ'","",'DistButton1'))
		return false;

	if (!validZipCode(theForm.txtZipCode,"รหัสไปรษณีย์",""))
		return false;

	if (!validRequired(theForm.txtFarName,"ชื่อบิดา",""))
		return false;

	if (!validRequired(theForm.txtFLName,"นามสกุลของบิดา",""))
		return false;

	if (!validRequired(theForm.txtF12,"อาชีพของบิดา","0::-"))
		return false;

	if (!validRequired(theForm.FRace,"เชื้อชาติ",""))
		return false;

	if (!validRequired(theForm.txtMName,"ชื่อมารดา",""))
		return false;

	if (!validRequired(theForm.txtMLName,"นามสกุลของมารดา",""))
		return false;

	if (!validRequired(theForm.txtM12,"อาชีพของมารดา","0::-"))
		return false;

	if (!validRequired(theForm.MRace,"เชื้อชาติ",""))
		return false;

	if (!radio_validate(theForm))
		return false;

	if (!validRequiredDist(theForm.txtSchoolName1,"ชื่อโรงเรียน โดยคลิกที่ปุ่ม 'ค้นหาโรงเรียน'","",'S1'))
		return false;

	if (!validRequired(theForm.txtDistrict1,"อำเภอที่ตั้งของโรงเรียน",""))
		return false;

	if (!validRequired(theForm.txtProvince1,"จังหวัดที่ตั้งของโรงเรียน",""))
		return false;

	if (!validZipCode(theForm.txtZipCode1,"รหัสไปรษณีย์ที่ตั้งของโรงเรียน",""))
		return false;

	if (!validFixNum(theForm.txtStudentID,"เลขประจำตัวนักเรียน",true,7))
		return false;

	if (theForm.txtONETNo.value!="") {

		if (!validFixNum(theForm.txtONETNo,"เลขที่สมัคร O-NET",true,8))
			return false;
	}


	if (theForm.txtONETExamID.value!="") {

		if (!validFixNum(theForm.txtONETExamID,"เลขที่นั่งสอบ O-NET",true,7))
			return false;
	}

	if (theForm.txtANETNO.value!="") {

		if (!validFixNum(theForm.txtANETNO,"เลขที่สมัคร A-NET",true,8))
			return false;
	}

	if (theForm.txtANETExamID.value!="") {

		if (!validFixNum(theForm.txtANETExamID,"เลขที่นั่งสอบ A-NET",true,7))
			return false;
	}

	if (theForm.txtSkillNO.value!="") {

		if (!validFixNum(theForm.txtSkillNO,"เลขที่สมัครวิชาเฉพาะ/ความถนัด",true,8))
			return false;
	}

	if (theForm.txtSkillExamID.value!="") {

		if (!validFixNum(theForm.txtSkillExamID,"เลขที่นั่งสอบวิชาเฉพาะ/ความถนัด",true,7))
			return false;
	}


	if (!validFixNum(theForm.txtProgCode,"รหัสสาขาวิชา",true,3))
		return false;

	return true;

}

function validateFormMD(theForm)
{

	if (!validateIDNO(theForm.mycitizenid))
		return false;

	return true;

}

function validateForm2(theForm)
{

	if (!validNum(theForm.mystudentcode,"รหัสประจำตัวนักเรียน",true))
		return false;

	if (!validateIDNO(theForm.mycitizenid))
		return false;

	return true;

}

function validateForm21(theForm)
{

	if (!validFixNum(theForm.myprogcode,"รหัสสาขาวิชา",true,3))
		return false;

	if (!validateIDNO(theForm.mycitizenid))
		return false;

	return true;

}
function validateForm3(theForm)
{

/*
	if (!validFixNum(theForm.myprogcode,"รหัสสาขาวิชา",true,3))
		return false;
*/
	if (!validDecimal(theForm.gpax,"คะแนน GPAX 5 เทอม",true))
		return false;

	return true;

}

function validateForm4(theForm)
{

/*
	if (!validFixNum(theForm.myprogcode,"รหัสสาขาวิชา",true,3))
		return false;
*/
	if (!validRequired(theForm.ExamCenter,"ศูนย์สอบใหม่","0"))
		return false;

	if (!validateIDNO(theForm.mycitizenid))
		return false;

	return true;

}

function validateForm5(theForm)
{

	if ((theForm.txtProgCode2.value=="") && (theForm.txtProgCode3.value!="")){

			alert("ก่อนที่จะเลือกอันดับ 2\nท่านจะต้องเลือกอันดับที่ 1 ก่อน");
			//theForm.txtProgCode2.focus();
			return false;
	}

	if ((theForm.txtProgCode2.value==theForm.txtProgCode3.value)&&(theForm.txtProgCode2.value="")){

			alert("จะเลือกอันดับ 1 และอันดับที่ 2 ซ้ำกันไม่ได้");
			//theForm.txtProgCod3.focus();
			return false;
	}
/*
	if ((theForm.txtProgCode2.value==theForm.Code1.value) && (theForm.txtProgCode3.value==theForm.Code2.value)){
			alert("ท่านได้เลือกอันดับ 1 และ 2 เหมือนเดิม\nท่านจะต้องเลือกอันดับที่ 1 ก่อน");
			theForm.txtProgCode3.focus();
			return false;

	}
*/

	return true;

}

function validateForm7(theForm)
{

if (!validFixNum(theForm.password,"รหัสผ่าน",true,10))
	return false;

	return true;

}

function validateForm6(theForm)
{

	var mytowhat=eval(theForm.towhat);
	var mytowhat=mytowhat.value;
	var changewhat=eval(theForm.ChangeWhat);
	var changewhat=changewhat.value;
	
	//alert(mytowhat);
	
	if (!validRequired(theForm.ChangeWhat,"เลือกที่ข้อมูลที่จะเปลี่ยนก่อน","0"))
		return false;

	if ((changewhat>0)&&(changewhat<4)) {

		if ((mytowhat=="")&&(changewhat==1)) {

			if (!validRequired(theForm.towhat,"คำนำหน้าชื่อ",""))
				return false;
		}

		if ((mytowhat=="")&&(changewhat==2)) {

			if (!validRequired(theForm.towhat,"ชื่อ",""))
				return false;
		}
		if ((mytowhat=="")&&(changewhat==3)) {

			if (!validRequired(theForm.towhat,"นามสกุล",""))
				return false;
		}
		
	}

	if ((mytowhat!="")&&(changewhat==4)) {

		if (!validNum(theForm.towhat,"รหัสประจำตัวนักเรียน",true))
		return false;
/*
		if (!validFixNum(theForm.towhat,"รหัสประจำตัวนักเรียน",true,7))
			return false;
*/
	}

	if ((mytowhat!="")&&(changewhat==5)) {

		if (!validFixNum(theForm.towhat,"เลขที่สมัครวิชาเฉพาะ/ความถนัด",true,7))
			return false;
	}


	if (!validateIDNO(theForm.mycitizenid))
		return false;

	return true;

}

function radio_validate() {
    args = radio_validate.arguments;
    formObj = args[0];
    var isOK = true;

	var elemSelected=false;
	//alert (formObj.radioAttn.length);
	for (k=0;k<formObj.Edu1.length;k++) 
		
		if (formObj.Edu1[k].checked) elemSelected=true;
			if (!elemSelected) {
	    		isOK = false;
	    		alert("ท่านยังไม่ได้เลือกประเภทการศึกษา เช่น เรียนชั้น ม.6 หรือ ปวช.");
	    		return false;
	   	}

/*
    for (i=1;i<args.length;i++) {
		elemSelected=false;
		elems = formObj.elements[args[i]];
		for (j=0;j<elems.length;j++) 
		if (elems[j].checked) elemSelected=true;
			if (!elemSelected) {
	    		isOK = false;
	    		alert("ท่านยังไม่ได้ประเมินคำถามปลายปิดข้อที่ "+getmyno(args[i]));
	    		return false;
	    		elems.focus();
	   	}
    }
*/

    return isOK;
}

function validateIDNO (formField)  {
   
	var result = true;
	var InString = formField.value;

   if(InString.length==0) {
	  alert ("ยังไม่ได้กรอกหมายเลขบัตรประชาชน");
	  result = false;
	  }
   
   if (result) {

		var RefString="1234567890";
		var holder = 0;
	
		InString = InString+'';

		var LastX = InString.substring (InString.length-1);
	
		//alert(InString.substring(0,1));

		if (InString.substring(0,1)=="P") {
				result=true;
		} else {

			for (Count=0; Count < InString.length; Count++)  {
				TempChar= InString.substring (Count, Count+1);
				if (RefString.indexOf (TempChar, 0)==-1) {
					alert ("กรอกเฉพาะตัวเลขเท่านั้น");
					result = false;
					break;
				}
			}

			if (result) {

				if (InString.length!=13) {
					alert ("หมายเลขบัตรประชาชนจะต้องมี 13 หลัก");
					result = false;
				}

				if (InString.length==13)
					var StartNum=13;
					var CheckNum = 0;
						for (Count=0; Count < InString.length-1; Count++) {
							TempChar= InString.substring (Count, Count+1);
							holder = holder+(TempChar*StartNum);
							StartNum=StartNum-1;
						}
					if (InString=='9999999999999'){
						result=true;
					} else if (result) {

						CheckNum = (holder%11);
		
						var MyCheck = 11 - CheckNum;

						MyEnd = MyCheck+'';  

						var MyEnd = MyEnd.substr(MyEnd.length-1);

						if (MyEnd!=LastX) {
							alert ("หมายเลขบัตรประชาชนไม่ถูกต้อง กรุณาตรวจสอบ แล้วลองใหม่อีกครั้ง");
							result = false;

						}
				}		
			}
		// P at  the first digit.
		}
	}

	if (!result) {
		formField.focus();		
	}
	return result;		

}

function OpenProgram() 
{

//http://dotnet.netindonesia.net/?0::948;	
	//document.myform.txtwhich.value=which;

    var mywidth = (screen.width - 500) / 2; 
    var myht = (screen.height - 460) / 2; 
	var MyArgs = window.open("programsearch.asp", "", "top="+myht+",left="+mywidth+",center=yes,resizable=no,width=500,height=460,status=no");

}
