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);

 }
