function check(form,x)



{



    var message = ""



	var more_message = ""



	var showmsg = "no"



	x = x - 1



		for (var i = 0; i <= x; i++)



			{



	 			var messenger = form.elements[i].name



				messenger = messenger.substring(0, 5)



				var fieldname = form.elements[i].name



				fieldname = fieldname.substring(5)







					{



						if (messenger == "text_")



							{



								more_message = r_check(form,x,fieldname,i)



							}



						else if (messenger == "chil_")



							{



								more_message = child_check(form,x,fieldname,i)



							}



						else if (messenger == "numb_")



							{



								more_message = i_check(form,x,fieldname,i)



							}



						else if (messenger == "phon_")



							{



								more_message = p_check(form,x,fieldname,i)



							}



						else if (messenger == "emai_")



								{



									more_message = e_check(form,x,fieldname,i)



								}			



						else if (messenger == "file_")



							{



								more_message = f_check(form,x,fieldname,i)



							}



						else if (messenger == "imag_")



							{



								more_message = fi_check(form,x,fieldname,i)



							}



						if (messenger == "date_")



							{



								more_message = d_check(form,x,fieldname,i)



							}



						if (messenger == "depn_")



							{



								more_message = depending_check(form,x,fieldname,i)



							 if (more_message != "") {



				alert("The following form field(s) were incomplete or incorrect:\n\n" + more_message + "\n\n Please complete or correct the form and submit again.")



                return false;



							 }



							 		



							}



							 if (more_message != "")



	        {



									if (message == "")



										{



											message = more_message



											more_message=""



										}



									else



										{



			        message = message + "\n" + more_message



											more_message=""



										}



	        }



											



						if (message > "")



								{



										showmsg = "yes"



								}													



						}	



				}



			



		if (showmsg == "yes")



			{



				alert("The following form field(s) were incomplete or incorrect:\n\n" + message + "\n\n Please complete or correct the form and submit again.")



                return false;



			}



		else



			{   



 				//form.submit();



                return true;				



			}



		}







function p_check(form,x,fieldname,i)



	{



		for (var y = 0; y <= x; y++)



			{



				if (form.elements[y].name == fieldname)



				break



			}						



   if (form.elements[y].value != "") {		



	var msg_addition = ""



	var decimal = ""



	inputStr = form.elements[i-1].value.toString()



	if (inputStr == "")



		{



			msg_addition = form.elements[i].value



		}



	else



		{



//         	var phonePat = /^(\d{3})(\ ?|-?)(\d{2})\2(\d{2})$/;



	



		var phonePatCode = /^(\(?\d{3}\)?)(\ ?|-?)(\d{3})(\ ?|-?)(\d{2})(\ ?|-?)(\d{2})$/;



	



//			var matchArray = inputStr.match(phonePat); // is the format ok?



			var matchArray1 = inputStr.match(phonePatCode); // is the format ok?



	



	  if (matchArray1 == null) {



			msg_addition = form.elements[i].value



	   }







       }



		return(msg_addition)



	 }



	}	



		



function i_check(form,x,fieldname,i)



	{



		for (var y = 0; y <= x; y++)



			{



				if (form.elements[y].name == fieldname)



				break



			}						



  if (form.elements[y].value != "") {



	var msg_addition = ""



	var decimal = ""



	inputStr = form.elements[y].value.toString()



	if (inputStr == "")



		{



			msg_addition = form.elements[i].value



		}



	else



		{



			for (var c = 0; c < inputStr.length; c++)



				{



					var oneChar = inputStr.charAt(c)



					if (c == 0 && oneChar == "-" || oneChar == "."  && decimal == "")



							{



								if (oneChar == ".")



									{



										decimal = "yes"



									}



								continue



								



							}



								if (oneChar < "0" || oneChar > "9")



									{



										msg_addition = form.elements[i].value



									}



				}



		}



		return(msg_addition)



	 }



	}	



		



	function d_check(form,x,fieldname,i)



//date must be in MM/DD/YY format OR M/D/YY or a MIX of the two



 {



		for (var y = 0; y <= x; y++)



			{



				if (form.elements[y].name == fieldname)



				break;



			}		



      if (form.elements[y].value != "") {



		var msg_addition = "";



		var dateStr;



        var matchArray2 = new Array();



		dateStr = form.elements[y].value;



		var datePat2 = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{2}|\d{4})$/;



// 		alert("datePat2 = " + datePat2);



		// To require a 4 digit year entry, use this line instead:



//		var datePat4 = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/;







		matchArray2 = dateStr.match(datePat2); // is the format ok?



		if (matchArray2 == null)  {



		msg_addition = form.elements[i].value



		return(msg_addition)



		}



		month2 = matchArray2[1]; // parse date into variables



		day2 = matchArray2[3];



		year2 = matchArray2[4];



//		alert("Month " + month + " Year " + year + " doesn't have " + day + " days!");



		if (eval(parseInt(month2)) < 1 || eval(parseInt(month2)) > 12) { // check month range



//		alert("Month must be between 1 and 12.");



		msg_addition = form.elements[i].value



		}



		if (eval(parseInt(day2)) < 1 || eval(parseInt(day2)) > 31) {



//		alert("Day must be between 1 and 31.");







		msg_addition = form.elements[i].value;



		}



		if ((eval(parseInt(month2))==4 || eval(parseInt(month2))==6 || eval(parseInt(month2))==9 || eval(parseInt(month2))==11) && eval(parseInt(day2))==31) {



//		alert("Month "+month+" doesn't have 31 days!")



		msg_addition = form.elements[i].value;



		}



		if (eval(parseInt(month2)) == 2) { // check for february 29th



		var isleap2 = (eval(parseInt(year2)) % 4 == 0 && (eval(parseInt(year2)) % 100 != 0 || eval(parseInt(year2)) % 400 == 0));



		if ((eval(parseInt(day2))>29) || (eval(parseInt(day2))==29 && !isleap2)) {



//		alert("February " + year + " doesn't have " + day + " days!");				







		msg_addition = form.elements[i].value;



		   }



		}







		return(msg_addition)



	 }



	  else { msg_addition = ""; return(msg_addition) }



	}











	function depending_check(form,x,fieldname,i)



 {



        var fieldname_r = "w_" + fieldname;



		for (var y = 0; y <= x; y++)



			{



				if (form.elements[y].name == fieldname_r)



				break;



			}



     var element1_name = form.elements[y].name;



     var element1_value = form.elements[y].value;



     var element2_name = form.elements[y-1].name;



     var element2_value = form.elements[y-1].value;



		var depends1 = ""	



		var depends2 = ""	



		var depends3 = ""	



		var msg_addition = ""	



		depends1 = element1_name.substring(2);



        depends1_from = depends1.indexOf('_');



		depends1_name = depends1.substring(0,depends1_from);



		depends1_number = depends1.substring(depends1_from+1);



		depends1_value = form.elements[y].value;		







		for (var z = 0; z <= x; z++) {







				depends2 = form.elements[z].name;



				depends2 = depends2.substring(2);



		        depends2_from = depends2.indexOf('_');



				depends2_name = depends2.substring(0,depends2_from);



				depends2_number = depends2.substring(depends2_from + 1);



				depends2_value = "";



              



			    depends2_value =  form.elements[z].value;







              



  	      if ((form.elements[y-1].checked == true) && (depends2_number == depends1_number) && (form.elements[z-1].type != "radio") && (form.elements[z-1].type != "checkbox") && (form.elements[z-1].type != "hidden") && (form.elements[z-1].value == "") && (form.elements[y-1].name != form.elements[z-1].name) ) {



			    		msg_addition = form.elements[z].value	



					return(msg_addition)







  	      }



   	      if ((form.elements[y-1].checked == false) && (depends2_number == depends1_number) && (form.elements[z-1].type != "radio") && (form.elements[z-1].type != "checkbox") && (form.elements[z-1].type != "hidden") && (form.elements[z-1].value != "") && (form.elements[y-1].name != form.elements[z-1].name) ) {



	    			msg_addition = form.elements[z].value	



                	return(msg_addition)



	      }



	}







		return(msg_addition)



	}



 



function r_check(form,x,fieldname,i)



	{



		var msg_addition = ""



		new_fieldname = fieldname



		for (var y = 0; y <= x; y++)



			{







				if ((form.elements[y].type == "radio" || form.elements[y].type == "checkbox") && form.elements[y].name == new_fieldname && form.elements[y].checked == true)



					{



							msg_addition = ""



							break



					}



				else if ((form.elements[y].type == "radio" || form.elements[y].type == "checkbox") && form.elements[y].name == new_fieldname && form.elements[y].checked == false)



					{



						msg_addition = form.elements[i].value



					}







			else if (form.elements[y].type == "select-one")



							{



								var l = form.elements[y].selectedIndex



								if (form.elements[y].name == fieldname && form.elements[y].options[l].value != "")



									{



										msg_addition = ""



										break



									}



								else if (form.elements[y].name == fieldname && form.elements[y].options[l].value == "")



									{



										msg_addition = form.elements[i].value



									}



								}



		 else if (form.elements[y].name == fieldname && form.elements[y].value == "" && form.elements[y].type != "radio" && form.elements[y].type != "checkbox" && form.elements[y].type != "select-one")



							{



			



								msg_addition = form.elements[i].value



								break



							}



				else if (form.elements[y].name == fieldname && form.elements[y].value != "" && form.elements[y].type != "radio" && form.elements[y].type != "checkbox" && form.elements[y].type != "select-one")



							{



								msg_addition = ""







							}	



				}



			return(msg_addition)



		}



			







function e_check(form,x,fieldname,i)



	{



		for (var y = 0; y <= x; y++)



			{



				if (form.elements[y].name == fieldname)



				break



			}						



  if (form.elements[y].value != "") {



	var msg_addition = ""



	var ctrl = form.elements[i-1];



	var period = ".";



    var at = ctrl.value.indexOf ('@', 0);



    // var invalidChars = " /:,;()<>[]{}|?`!%=*^#";



	var invalidChars = /.+[!#$%^&*,"'\[\]{}?<>;\/ ].+/;



	var validEmail=/^\w+(.\w+)*@\w+(.\w+)+$/;



    var error = 0;



	error = 0



	var matchArray1 = form.elements[y].value.match(invalidChars); // is the format ok?



	if (matchArray1 != null) {	error = 1;  }



	if (!(validEmail.test(form.elements[y].value))) { error = 1; }



    if (error == 1) { msg_addition = form.elements[i].value; } else { msg_addition = ""; }



	return(msg_addition)



    }



	else { msg_addition = ""; return(msg_addition) }



	}







function f_check(form,x,fieldname,i)



	{



	for (var y = 0; y <= x; y++)



			{



				if (form.elements[y].name == fieldname)



				break



			}						



   var msg_addition = ""



   if (form.elements[y].value != "") {		



	var decimal = ""



	inputStr = form.elements[y].value.toString()



	if (inputStr == "")



		{



			msg_addition = form.elements[i].value



		}



	else



		{



	  var inputStr1 = new String(inputStr)



	  inputLen = inputStr1.length



	  lastSlash = inputStr1.lastIndexOf("\\")



	  inputStr1 = inputStr1.slice(lastSlash, inputLen)



	  var file_test = /.+[!@#$%^&*,"'\[\]{}?<>; ].+/;



	  var matchArray1 = inputStr1.match(file_test); // is the format ok?



	  if (matchArray1 != null) {



			msg_addition = form.elements[i].value



	    }



      }



	  return(msg_addition)



	 }



	else { return('') }



	}	







function fi_check(form,x,fieldname,i)



	{



	for (var y = 0; y <= x; y++)



			{



				if (form.elements[y].name == fieldname)



				break



			}						



   var msg_addition = ""



   if (form.elements[y].value != "") {		



	var decimal = ""



	inputStr = form.elements[y].value.toString()



	if (inputStr == "")



		{



			msg_addition = form.elements[i].value



		}



	else



		{



	  var image_test = /gif|jpg|pcx$/i;



	  var matchArray1 = inputStr.match(image_test); // is the format ok?



	  if (matchArray1 == null) {



			msg_addition = form.elements[i].value



	    }



      }



	  return(msg_addition)



	 }



	else { return('') }



	}	



	



function isInteger(sDate)



	{



		var new_msg = "true"



		inputStr = sDate.toString()



		for (var i = 0; i < inputStr.length; i++)



			{



			var oneChar = inputStr.charAt(i)			



			if ((oneChar < "0" || oneChar > "9") && oneChar != "/")



					{



						new_msg = "false"



					}



			}



		return (new_msg)



	}



	



function asc(each_char)



		{



		var n = 0



			var char_str = charSetStr()



			for (i = 0; i < char_str.length; i++)



				{



					if (each_char == char_str.substring(i, i+1))



						{



							break



						}



				}



			return i + 32



		}



		



		function charSetStr()



			{



				var str



 			str = ' !"#$%&' + "'" + '()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~'



				return str



			}







function email_check(element1, element2)



	{



	var msg_addition = "";



	var ctrl = element1;



	var period = ".";



    var at = ctrl.value.indexOf ('@', 0)     



    var invalidChars = " /:,;()<>[]{}|?`!%=*^#"



    var error = 0;



	



    for (m=0; m<invalidChars.length; m++) {



        badChar = invalidChars.charAt(m)



        if (ctrl.value.indexOf(badChar,0) != -1) {



                        error = 1;



						break;



        }



    }







//    for (n=0; n<ctrl.value.length; n++) {



//        if (ctrl.value.charCodeAt(n) > 128) {



//                        error = 1;



//						break;



//        }



//    }







    for (l=0; l<ctrl.value.length; l++) {



        TestDot = ctrl.value.charAt(l)



		TestAt =  ctrl.value.indexOf('@', 0)



        if (( TestDot == '.') && ((l == 0 || l == ctrl.value.length-1 || ctrl.value.indexOf('.', l+1) == l+1) || (TestAt >= l-1 && TestAt <= l+1)))  {



                        error = 1;



						break;



        }



    }



    



if (ctrl.value == "" || at < 3 || ctrl.value.indexOf('\\', 0) != -1 || ctrl.value.indexOf('\"', 0) != -1 || ctrl.value.indexOf('\'', 0) != -1 || ctrl.value.indexOf('@', at+1) != -1 || error == 1)







                        error = 1;



																						



																else



                  {



	                   test = ctrl.value.indexOf('.', ctrl.value.indexOf('@', 0))



										 if (test != -1)



																					{



																						error = 0;



																					}



																				else



																				{



	                    	 error=1;



																				}



                  }



                if (error == 1)



																	{



               				msg_addition = element2.value



																	}



                else



                 {



								 		new_length = ctrl.value.length - test



              if (new_length == 4 || new_length == 3 || (new_length >= 5 && ctrl.value.indexOf('.', (test+1)) != -1))



																						{



																							msg_addition = ""



																						}



																					else



																							msg_addition = element2.value;



																	}



	return(msg_addition)



	}	







function child_check(form,x,fieldname,i)



 {



  var fieldname_r = "chil_" + fieldname;



  for (var y = 0; y <= x; y++)



  {



   if (form.elements[y].name == fieldname)



   break;



  }



  if ((form.elements[y-1].checked == true) && (form.elements[y].value == "")) {



   msg_addition = form.elements[y+1].value;



  }



  else {



  msg_addition = ""



  }



 return(msg_addition);



 }
