var NameRegExp = /^[a-z. -A-Z.()]+$/i;
//var NameRegExp = /^[^. -0-9][a-z. -]+$/i;
var PhoneRegExp = /^[^, a-zA-Z-][\d-]+[\d]$/;
var MobileRegExp = /^[^-, a-zA-Z][\d]+$/;
var EmailRegExp = /^\w(\.?\w)*@\w(\.?[-\w])*\.([a-z]{2,4}(\.[a-z]{3})?|[a-z]{2}(\.[a-z]{2})?)$/i;
var OnlyNumberRegExp = /^\d+$/;
var OnlyCharRegExp = /^[A-Z][a-z]*$/;
var CgpaRegExp = /^[0-9.]+$/;
var GradeRegExp = /^[A-D][+-]*$/;
var BloodRegExp = /^[A,B][+-]*$/;
var SscHscGradeRegExp = /^[A-D][+-]*$/;
var OnlySpaceRegExp = /^[ ]+$/;
var SubjectRegExp = /^[^ &][a-z &.]+$/i;
var CgpaScaleRegExp = /^[0-9]$/;
var GraduateLevelRegExp = /^[a-z]+$/i;
var UnivNameRegExp = /^[^, -0-9][a-zA-Z&, -]+$/;
var MediaNameRegExp = /^[^ -][-a-z A-Z]+$/;
var ReceiptNoRegExp = /^[0-9]+$/;
var Grade;


//this function check validity of the Change password form of the student panel
function ChangePasswordFormValid(Form)
{
	var FormIsValid = true;

	if(Form.Password.value == "" || Form.Password.value.length<6)
	{
		FormIsValid = false;
		alert("Password cannot be less than 6 characters");
		Form.Password.focus();
	}
	else if(Form.New_Password.value=="" || Form.New_Password.value.length<6)
	{
		FormIsValid = false;
		alert("Password cannot be less than 6 characters");
		Form.New_Password.focus();
	}
	else if(Form.Reenter_New_Password.value=="" || Form.Reenter_New_Password.value.length<6)
	{
		FormIsValid = false;
		alert("Please enter new password");
		Form.Reenter_New_Password.focus();
	}
	else if(Form.New_Password.value != Form.Reenter_New_Password.value)
	{
		FormIsValid = false;
		alert("Please enter the same new password");
		Form.Reenter_New_Password.focus();
	}
	return FormIsValid;
}


//this function check validity of LoginForm
function LoginFormValid(form)
{
	var FormIsValid = true;

	if(!EmailRegExp.test(form.Email.value))
	{
		FormIsValid = false;
		alert("Please enter valid email address");
		form.Email.focus();
	}
	return FormIsValid;
}


//this function check validity of date
function ValidDate(dd,mm,yyyy)
{
	var FormIsValid = true;

	if(dd.value == "" || dd.value<=0 || dd.value >31 || !OnlyNumberRegExp.test(dd.value))
	{
		FormIsValid = false;
		alert("Date can only be 1 to 31");
		dd.focus();
	}
	else if(mm.value =="" || mm.value <=0 || mm.value >12 || !OnlyNumberRegExp.test(mm.value))
	{
		FormIsValid = false;
		alert("Please select a Month");
		mm.focus();
	}
	else if(yyyy.value=="" || yyyy.value<=0 || !OnlyNumberRegExp.test(yyyy.value) || (yyyy.value.length!=4))
	{
		FormIsValid = false;
		alert("Year can only be a four-digit number");
		yyyy.focus();
	}
	else if(dd.value !="" && mm.value !="" && yyyy.value !="")
	{
		var Month = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
		var Month_No = mm.value - 1;

		if((mm.value==4 || mm.value==6 || mm.value==9 || mm.value==11) && (dd.value>30))
		{
			FormIsValid = false;
			alert(Month[Month_No] + " has only 30 days");
			dd.focus();
		}
		else if((mm.value==2) && (yyyy.value%400==0) && (dd.value>29))
		{
			FormIsValid = false;
			alert(Month[Month_No] +" "+yyyy.value + " has only 29 days.\nPlease enter valid date");
			dd.focus();
		}
		else if(mm.value==2 && (yyyy.value%4==0) && (dd.value>29))
		{
			FormIsValid = false;
			alert(Month[Month_No] +" "+yyyy.value + " has only 29 days.\nPlease enter valid date");
			dd.focus();
		}
		else if(mm.value==2 && (yyyy.value%4!=0) && (dd.value>28))
		{
			FormIsValid = false;
			alert(Month[Month_No] +" "+yyyy.value + " has only 28 days.\nPlease enter valid date");
			dd.focus();
		}
	}
	return FormIsValid;
}


//this function check the validity of the radiobutton
function ValidRadioButton(RadioButtonName)
{
	var FormIsValid = false;
	for(var i=0; i<RadioButtonName.length; i++)
	{
		if(RadioButtonName[i].checked)
		{
			FormIsValid = true;
		}
	}
	return FormIsValid;
}


//this function check validity of the Stu_Info_Entry_Form of the student panel
function StuInfoEntryFormValid(form)
{
	var FormIsValid = true;
	if(!NameRegExp.test(form.Name.value))
	{
		FormIsValid = false;
		alert("Name can contain only A-Z, a-z, hyphen, space and dot");
		form.Name.focus();
	}
	else if(!NameRegExp.test(form.Father_Name.value))
	{
		FormIsValid = false;
		alert("Father's name can contain only A-Z, a-z, hyphen, space and dot");
		form.Father_Name.focus();
	}
	else if(form.Father_Occupation.value!="" && !NameRegExp.test(form.Father_Occupation.value))
	{
		FormIsValid = false;
		alert("Father's occupation can contain only A-Z, a-z, hyphen, space and dot");
		form.Father_Occupation.focus();
	}
	else if(!NameRegExp.test(form.Mother_Name.value))
	{
		FormIsValid = false;
		alert("Mother's name can contain only A-Z, a-z, hyphen, space and dot");
		form.Mother_Name.focus();
	}
	else if(form.Mother_Occupation.value!="" && !NameRegExp.test(form.Mother_Occupation.value))
	{
		FormIsValid = false;
		alert("Mother's occupation can contain only A-Z, a-z, hyphen, space and dot");
		form.Mother_Occupation.focus();
	}
	else if(form.Guardian_Name.value!="" && !NameRegExp.test(form.Guardian_Name.value))
	{
		FormIsValid = false;
		alert("Guardian's name can contain only A-Z, a-z, hyphen, space and dot");
		form.Guardian_Name.focus();
	}
	else if(form.Guardian_Occupation.value!="" && !NameRegExp.test(form.Guardian_Occupation.value))
	{
		FormIsValid = false;
		alert("Guardian's occupation can contain only A-Z, a-z, hyphen, space and dot");
		form.Guardian_Occupation.focus();
	}
	else if(!ValidDate(form.Birth_Date_dd,form.Birth_Date_mm,form.Birth_Date_yyyy))
	{
		FormIsValid=false;
	}
	else if(form.Sex.value=="0")
	{
		FormIsValid = false;
		alert("Plase confirm Gender");
		form.Sex.focus();
	}
	else if(!SubjectRegExp.test(form.Nationality.value))
	{
		FormIsValid = false;
		alert("Nationality contain only A-Z, a-z");
		form.Nationality.focus();
	}
	
	else if(form.Present_Address.value=="" || OnlySpaceRegExp.test(form.Present_Address.value))
	{
		FormIsValid =false;
		alert("Please mention present address");
		form.Present_Address.focus();
	}
	else if(form.Permanent_Address.value=="" || OnlySpaceRegExp.test(form.Permanent_Address.value))
	{
		FormIsValid =false;
		alert("Please mention permanent address");
		form.Permanent_Address.focus();
	}
	else if(!PhoneRegExp.test(form.Guardian_Contact.value) || (form.Guardian_Contact.value.length)<9)
	{
		FormIsValid = false;
		alert("Please enter valid Guardian contact number.\nContact number contains only 0-9 and hyphen\nContact number contains minimum 9 digits");
		form.Guardian_Contact.focus();
	}
	else if(!MobileRegExp.test(form.Applicant_Contact.value) || (form.Applicant_Contact.value.length)<9)
	{
		FormIsValid = false;
		alert("Please enter valid Applicant contact number.\nContact number contains only 0-9 and hyphen\nContact number contains minimum 9 digits");
		form.Applicant_Contact.focus();
	}
	else if(!EmailRegExp.test(form.Email.value))
	{
		FormIsValid = false;
		alert("Please enter valid email address");
		form.Email.focus();
	}
	else if(form.Password.value == "" || form.Password.value.length<6)
	{
		FormIsValid = false;
		alert("Password cannot be less than 6 characters");
		form.Password.focus();
	}
	else if(form.Reenter_Password.value=="" || form.Reenter_Password.value.length<6)
	{
		FormIsValid = false;
		alert("Please re-enter password\nPassword cannot be less than 6 characters");
		form.Reenter_Password.focus();
	}
	else if(form.Password.value != form.Reenter_Password.value)
	{
		FormIsValid = false;
		alert("Please enter the same new passwords");
		form.Reenter_Password.focus();
	}
	else if(!ValidRadioButton(form.Target_Level))
	{
		FormIsValid =false;
		alert("Please select the program (undergraduate or post graduate) for which you are going to apply");
	}
	return FormIsValid;
}


//this function check validity of Result Entry Form
function ResultEntryFormValid(form)
{
	var FormIsValid = true;

	if(SscInfoEditFormValid(form)==false)
	{
		FormIsValid = false;		
	}
	else if(HscInfoEditFormValid(form)==false)
	{
		FormIsValid = false;		
	}
	return FormIsValid;
}


function NonAcademicResultEntryFormValid(form)
{
	var FormIsValid = true;
	if(!SubjectRegExp.test(form.Exam_Name.value))
	{
		FormIsValid = false;
		alert("Please mention an exam name");
		form.Exam_Name.focus();
	}
	else if(form.Exam_Score.value=="" || OnlySpaceRegExp.test(form.Exam_Score.value))
	{
		FormIsValid = false;
		alert("Please mention score of the exam ");
		form.Exam_Score.focus();
	}
	else if(!ValidDate(form.Exam_Date_dd,form.Exam_Date_mm,form.Exam_Date_yyyy))
	{
		FormIsValid=false;
	}
	return FormIsValid;
}


function GraduateResultEntryFormValid(form)
{
	var FormIsValid = true;
	if(GraduateInfoEditFormValid(form)==false)
	{
		FormIsValid=false;
	}
	return FormIsValid;
}


//this function manually submit a Form of the student panel
function ManuallySubmit(form)
{
	form.submit();
}


//thisfunction check validity of Subject Selection Form Valid of the student create account
function SubjectSelectionFormValid(form)
{
	var FormIsValid = true;

	if(form.Semester_ID.value == 0)
	{
		alert("Please select a semester name you want to apply");
		form.Semester_ID.focus();
		FormIsValid = false;
	}
	else if(form.Subject_ID.value == 0)
	{
		alert("Please select a subject you want to apply");
		form.Subject_ID.focus();
		FormIsValid = false;
	}
	return FormIsValid;
}


//this function check validity of the Stu_Info_Edit_Form of the student panel
function StuInfoEditFormValid(form)
{
	var FormIsValid = true;

	if(StuInfoEntryFormValid(form)==false)
	{
		FormIsValid = false;		
	}
	return FormIsValid;
}


//this function compare two date, here Second_Date is today
function CompareDate(First_Date_dd,First_Date_mm,First_Date_yyyy,Second_Date_dd,Second_Date_mm,Second_Date_yyyy)
{
	var FormIsValid = true;
	var First_Date = new Date(First_Date_yyyy,First_Date_mm-1,First_Date_dd);
	var Second_Date = new Date(Second_Date_yyyy,Second_Date_mm-1,Second_Date_dd);
	
	if(Second_Date<First_Date)
	{
		FormIsValid = false;
	}
	return FormIsValid;
}


//this function check validity of the Money_Order_Entry_Form of the student panel
function MoneyOrderEntryFormValid(form)
{
	var FormIsValid = true;

	if(!MediaNameRegExp.test(form.Media_Name.value))
	{
		FormIsValid = false;
		alert("Name contains only A-Z, a-z, and hyphen");
		form.Media_Name.focus();
	}
	else if(ValidDate(form.Payment_Date_dd,form.Payment_Date_mm,form.Payment_Date_yyyy)==false)
	{
		FormIsValid = false;
	}
	else if (CompareDate(form.Payment_Date_dd.value,form.Payment_Date_mm.value,form.Payment_Date_yyyy.value,form.Today_dd.value,form.Today_mm.value,form.Today_yyyy.value)==false)
	{
		FormIsValid = false;
		alert("Please enter money order date carefully");
		form.Payment_Date_dd.focus();
	}
	else if(!ReceiptNoRegExp.test(form.Media_Receipt_Number.value) || (form.Media_Receipt_Number.value.length)>8)
	{
		FormIsValid = false;
		alert("Money Order/Cheque/Courier/Cash Receipt No. is a maximum 8-digit number");
		form.Media_Receipt_Number.focus()
	}
	else if(!OnlyNumberRegExp.test(form.Payment_Amount.value))
	{
		FormIsValid = false;
		alert("Amount can only be number");
		form.Payment_Amount.focus()
	}
	else if((form.Sending_Area.value)==0)
	{
		FormIsValid = false;
		alert("Please give area/branch");
		form.Sending_Area.focus()
	}
	else if(!MobileRegExp.test(form.Sender_Number.value) || (form.Sender_Number.value.length)<11)
	{
		FormIsValid = false;
		alert("Please enter valid Sender Mobile number.\nMobile number contains only 0-9 and hyphen\nMobile number contains minimum 11 digits");
		form.Sender_Number.focus();
	}
	
	return FormIsValid;
}


function ValidGraduateInfo(form)
{
	var FormIsValid = true;
	var LastElement = 18;
	var HscYear = form.Hsc_Year.value;
	HscYear++;
	HscYear++;
	HscYear++;
	var GraduateCounter=form.Graduate_Result_Record_Counter.value;
	
	for (var i=0; i<=GraduateCounter; i++)
	{
		
		if(!SubjectRegExp.test(form.elements[LastElement+(i*8)+1].value))
		{
			FormIsValid = false;
			alert("Subject name may have only A-Z, a-z, and dot.");
			form.elements[LastElement+(i*8)+1].focus();
			break;
		}
		else if(!GraduateLevelRegExp.test(form.elements[LastElement+(i*8)+2].value))
		{
			FormIsValid = false;
			alert("Please mention program");
			form.elements[LastElement+(i*8)+2].focus();
			break;
		}
		else if(form.elements[LastElement+(i*8)+3].value=="" || form.elements[LastElement+(i*8)+3].value<=0 || !OnlyNumberRegExp.test(form.elements[LastElement+(i*8)+3].value) || (form.elements[LastElement+(i*8)+3].value.length!=4))
		{
			FormIsValid = false;
			alert("Please mention passing year");
			form.elements[LastElement+(i*8)+3].focus();
			break;
		}
		else if(form.elements[LastElement+(i*8)+3].value<=HscYear)
		{
			FormIsValid = false;
			alert("Difference between graduation completing year and HSC passing year should be minimum 3 years");
			form.elements[LastElement+(i*8)+3].focus();
			break;
		}
		else if(!CgpaRegExp.test(form.elements[LastElement+(i*8)+4].value) && !OnlyNumberRegExp.test(form.elements[LastElement+(i*8)+4].value))
		{
			FormIsValid = false;
			alert("Please Enter Valid CGPA/Marks Obtained");
			form.elements[LastElement+(i*8)+4].focus();
			break;
		}
		else if(!GradeRegExp.test(form.elements[LastElement+(i*8)+5].value) && (form.elements[LastElement+(i*8)+5].value!="First") && (form.elements[LastElement+(i*8)+5].value!="Second") && (form.elements[LastElement+(i*8)+5].value!="Third"))
		{
			FormIsValid = false;
			alert("Please Enter Valid Grade/Division/Class");
			form.elements[LastElement+(i*8)+5].focus();
			break;
		}
		else if(!CgpaRegExp.test(form.elements[LastElement+(i*8)+6].value) && !OnlyNumberRegExp.test(form.elements[LastElement+(i*8)+7].value))
		{
			FormIsValid = false;
			alert("Please Enter Valid CGPA Scale/Total Marks");
			form.elements[LastElement+(i*8)+6].focus();
			break;
		}	
		else if(!UnivNameRegExp.test(form.elements[LastElement+(i*8)+7].value))
		{
			FormIsValid = false;
			alert("Please Enter University Name");
			form.elements[LastElement+(i*8)+7].focus();
			break;
		}
	}
	return FormIsValid;
}


function ValidNonAcademicInfo(form)
{
	var FormIsValid = true;
	var GraduateCounter=form.Graduate_Result_Record_Counter.value;
	GraduateCounter++;
	var NonAcademicCounter=form.NonAcademic_Result_Record_Counter.value;
	var LastElementNo=18+((8*GraduateCounter)+1);
	for(var i=0; i<=NonAcademicCounter; i++)
	{
		if(form.elements[LastElementNo+(i*6)+1].value==0)
		{
			FormIsValid = false;
			alert("Please mention an exam name");
			form.elements[LastElementNo+(i*6)+1].focus();
			break;
		}
		else if(form.elements[LastElementNo+(i*6)+2].value=="" || OnlySpaceRegExp.test(form.elements[LastElementNo+(i*6)+2].value))
		{
			FormIsValid = false;
			alert("Please mention an exam score");
			form.elements[LastElementNo+(i*6)+2].focus();
			break;
		}
		else if(!ValidDate((form.elements[LastElementNo+(i*6)+3]),(form.elements[LastElementNo+(i*6)+4]),(form.elements[LastElementNo+(i*6)+5])))
		{
			FormIsValid = false;
			break;
		}
	}
	return FormIsValid;
}


function EditAcademicInfoValid(form)
{
	var FormIsValid = true;
	
	if(SscInfoEditFormValid(form)==false)
	{
		FormIsValid = false;		
	}
	else if(HscInfoEditFormValid(form)==false)
	{
		FormIsValid = false;		
	}
	else if(ValidGraduateInfo(form)==false)
	{
		FormIsValid = false;		
	}
	else if(ValidNonAcademicInfo(form)==false)
	{
		FormIsValid = false;		
	}
	return FormIsValid;
}


//this function check validity of SSC Info Edit Form
function SscInfoEditFormValid(form)
{
	var FormIsValid = true;
	var StuBirthDateYear=form.Stu_Birth_Date_yyyy.value;
	if(form.Ssc_Group.value == 0)
	{
		FormIsValid = false;
		alert("Please select SSC group");
		form.Ssc_Group.focus();
	}
	else if(form.Ssc_Year.value=="" || form.Ssc_Year.value<=0 || !OnlyNumberRegExp.test(form.Ssc_Year.value) || (form.Ssc_Year.value).length!=4)
	{
		FormIsValid = false;
		alert("Mention proper SSC passing year with 4 digit");
		form.Ssc_Year.focus();
	}
	else if(form.Ssc_Year.value<=StuBirthDateYear)
	{
		FormIsValid = false;
		alert("Difference between SSC passing year and birth year minimum 14 years");
		form.Ssc_Year.focus();
	}
	else if(!CgpaRegExp.test(form.Ssc_Cgpa.value) || form.Ssc_Cgpa.value>5 || form.Ssc_Cgpa.value<=0)
	{
		FormIsValid = false;
		alert("Give proper SSC/O-Level GPA");
		form.Ssc_Cgpa.focus();
	}
	else if(SscGradeInfo(form)==false)
	{
		FormIsValid = false;
		alert("Please mention SSC/A Level grade.\n For example A+, A, A- etc");
		form.Ssc_Grade.focus();
	}
	else if(!NameRegExp.test(form.Ssc_School.value))
	{
		FormIsValid = false;
		alert("Please menion SSC/O-Level institute");
		form.Ssc_School.focus();
	}
	else if(form.Ssc_Board.value == 0)
	{
		FormIsValid = false;
		alert("Please select SSC board name");
		form.Ssc_Board.focus();
	}
	return FormIsValid;
}
function SscGradeInfo(form)
{
	var FormIsValid=false;
	if(form.Ssc_Cgpa.value>=4 && form.Ssc_Cgpa.value<5)
	{
		Ssc_Grade="A";
		document.getElementById('Grade').value = Ssc_Grade;
		FormIsValid=true;
	}
	else if(form.Ssc_Cgpa.value>=3.5 && form.Ssc_Cgpa.value<4)
	{
		Ssc_Grade="A-";
		document.getElementById('Grade').value = Ssc_Grade;
		FormIsValid=true;
	}
	else if(form.Ssc_Cgpa.value>=3 && form.Ssc_Cgpa.value<3.5)
	{
		Ssc_Grade="B";
		document.getElementById('Grade').value = Ssc_Grade;
		FormIsValid=true;
	}
	else if(form.Ssc_Cgpa.value>=2 && form.Ssc_Cgpa.value<3)
	{
		Ssc_Grade="C";
		document.getElementById('Grade').value = Ssc_Grade;
		FormIsValid=true;
	}
	else if(form.Ssc_Cgpa.value>=1 && form.Ssc_Cgpa.value<2)
	{
		Ssc_Grade="D";
		document.getElementById('Grade').value = Ssc_Grade;
		FormIsValid=true;
	}
	else
	{
		Ssc_Grade="A+";
		document.getElementById('Grade').value = Ssc_Grade;
		FormIsValid=true;
	}
	return FormIsValid;
}


//this function check validity of HSC Info Edit Form
function HscInfoEditFormValid(form)
{
	var FormIsValid = true, SscYear=form.Ssc_Year.value;
	SscYear++;
	if(form.Hsc_Group.value == 0)
	{
		FormIsValid = false;
		alert("Please select HSC group");
		form.Hsc_Group.focus();
	}
	else if(form.Hsc_Year.value=="" || form.Hsc_Year.value<=0  || !OnlyNumberRegExp.test(form.Hsc_Year.value) || (form.Hsc_Year.value.length!=4))
	{
		FormIsValid = false;
		alert("Please mention valid HSC passing year");
		form.Hsc_Year.focus();
	}
	else if(form.Hsc_Year.value<=SscYear)
	{
		FormIsValid = false;
		alert("Difference between HSC passing year and SSC passing year minimum 2 years");
		form.Hsc_Year.focus();
	}
	else if(!CgpaRegExp.test(form.Hsc_Cgpa.value) || form.Hsc_Cgpa.value>5 || form.Hsc_Cgpa.value<=0)
	{
		FormIsValid = false;
		alert("Please mention HSC/A-Level GPA");
		form.Hsc_Cgpa.focus();
	}
	else if(HscGradeInfo(form)==false)
	{
		FormIsValid = false;
		alert("Please mention HSC/A Level grade.\n For example A+, A, A- etc");
		form.Hsc_Grade.focus();
	}
	else if(!NameRegExp.test(form.Hsc_College.value))
	{
		FormIsValid = false;
		alert("Please mention HSC/A-Level institute");
		form.Hsc_College.focus();
	}
	else if(form.Hsc_Board.value == 0)
	{
		FormIsValid = false;
		alert("Please select HSC board name");
		form.Hsc_Board.focus();
	}
	return FormIsValid;
}
function HscGradeInfo(form)
{
	var FormIsValid=false;
	if(form.Hsc_Cgpa.value>=4 && form.Hsc_Cgpa.value<5)
	{
		Hsc_Grade="A";
		document.getElementById('HscGrade').value = Hsc_Grade;
		FormIsValid=true;
	}
	else if(form.Hsc_Cgpa.value>=3.5 && form.Hsc_Cgpa.value<4)
	{
		Hsc_Grade="A-";
		document.getElementById('HscGrade').value = Hsc_Grade;
		FormIsValid=true;
	}
	else if(form.Hsc_Cgpa.value>=3 && form.Hsc_Cgpa.value<3.5)
	{
		Hsc_Grade="B";
		document.getElementById('HscGrade').value = Hsc_Grade;
		FormIsValid=true;
	}
	else if(form.Hsc_Cgpa.value>=2 && form.Hsc_Cgpa.value<3)
	{
		Hsc_Grade="C";
		document.getElementById('HscGrade').value = Hsc_Grade;
		FormIsValid=true;
	}
	else if(form.Hsc_Cgpa.value>=1 && form.Hsc_Cgpa.value<2)
	{
		Hsc_Grade="D";
		document.getElementById('HscGrade').value = Hsc_Grade;
		FormIsValid=true;
	}
	else
	{
		Hsc_Grade="A+";
		document.getElementById('HscGrade').value = Hsc_Grade;
		FormIsValid=true;
	}
	return FormIsValid;
}


function GraduateInfoEditFormValid(form)
{
	var FormIsValid = true;
	var HscYear = form.Hsc_Year.value;
	HscYear++;
	HscYear++;
	HscYear++;
	if(!SubjectRegExp.test(form.Graduate_Subject.value))
	{
		FormIsValid = false;
		alert("Please mention valid subject name");
		form.Graduate_Subject.focus();
	}
	else if(!GraduateLevelRegExp.test(form.Graduate_Level.value))
	{
		FormIsValid = false;
		alert("Please mention program");
		form.Graduate_Level.focus();
	}
	else if(form.Graduate_Year.value=="" || form.Graduate_Year.value<=0 || !OnlyNumberRegExp.test(form.Graduate_Year.value) || (form.Graduate_Year.value.length!=4))
	{
		FormIsValid = false;
		alert("Please mention passing year");
		form.Graduate_Year.focus();
	}
	else if(form.Graduate_Year.value<=HscYear)
	{
		FormIsValid = false;
		alert("Difference between graduation completing year and HSC passing year should be minimum 3 years");
		form.Graduate_Year.focus();
	}
	else if(!CgpaRegExp.test(form.Graduate_Cgpa.value) && !OnlyNumberRegExp.test(form.Graduate_Cgpa.value))
	{
		FormIsValid = false;
		alert("Please Enter Valid CGPA/Marks Obtained");
		form.Graduate_Cgpa.focus();
	}
	else if(!GradeRegExp.test(form.Graduate_Grade.value) && (form.Graduate_Grade.value!="First") && (form.Graduate_Grade.value!="Second") && (form.Graduate_Grade.value!="Third"))
	{
		FormIsValid = false;
		alert("Please Enter Valid Grade/Division/Class");
		form.Graduate_Grade.focus();
	}
	else if(!CgpaRegExp.test(form.Graduate_Scale.value) && !OnlyNumberRegExp.test(form.Graduate_Scale.value))
	{
		FormIsValid = false;
		alert("Please Enter Valid CGPA Scale/Total Marks");
		form.Graduate_Scale.focus();
	}	
	else if(!UnivNameRegExp.test(form.Graduate_Univ.value))
	{
		FormIsValid = false;
		alert("Please Enter University Name");
		form.Graduate_Univ.focus();
	}
	return FormIsValid;
}


//this function check validity of Apply Subject Selection Form Valid
function ApplySubjectSelectionFormValid(form)
{
	var FormIsValid = true;
	
	if(form.Semester_ID.value == 0)
	{
		alert("Please select semester name you want to apply");
		form.Semester_ID.focus();
		FormIsValid = false;
	}
	else if(form.Program.value == 0)
	{
		alert("Please select program you want to apply");
		form.Program.focus();
		FormIsValid = false;
	}
	else if(form.Subject_ID.value == 0)
	{
		alert("Please select subject name you want to apply");
		form.Subject_ID.focus();
		FormIsValid = false;
	}
	return FormIsValid;
}

//print
function printTable()
{
	var display_setting="toolbar=yes,location=no,directories=yes,menubar=yes,";
	display_setting+="scrollbars=yes,width=960, height=600, left=100, top=25";
	
	var content_innerhtml = document.getElementById("tbl_display").innerHTML;
	var document_print=window.open("","",display_setting);
	document_print.document.open();
	document_print.document.write('<html><head><title>Iftekhar-VarsityAdmission.com</title></head>');
	document_print.document.write('<body style="font-family:verdana; font-size:-1px;" onLoad="self.print(); self.close();" >');
	document_print.document.write(content_innerhtml);
	document_print.document.write('</body></html>');
	document_print.document.close();
	return false;
}