

var new_fieldname = ""

function check(form,x)
{

	//If you would like to use this script please do not remove the next 4 lines
	script_name = "Form Validator ver 2.0"
	action =  "Checks Required, Integer and Date"
	copyright = "(c) 1998 - Art Lubin / Artswork"
	email = "perflunk@aol.com"
	var set_up_var = 5872;
	var message = ""
	var more_message = ""
	var showmsg = "no"
	if (set_up_var == 5872)
	{
		x = x - 1
		for (var i = 0; i <= x; i++)
			{
	 			var messenger = form.elements[i].name
				messenger = messenger.substring(0, 2)
				var fieldname = form.elements[i].name
				fieldname = fieldname.substring(2)

					{
						if (messenger == "r_")
							{
								more_message = r_check(form,x,fieldname,i)
							}
						else if (messenger == "i_")
							{
								more_message = i_check(form,x,fieldname,i)
							}
						else if (messenger == "d_")
								{
									more_message = d_check(form,x,fieldname,i)
								}
						else if (messenger == "e_")
								{
									more_message = e_check(form,x,fieldname,i)
								}			
							 if (more_message != "")
	        					{
									if (message == "")
										{
											message = more_message
											more_message=""
										}
									else
										{
			        						message = message + "\n" + more_message
											more_message=""
										}
	        					}
											
						}	
				}
			
		message = checkSpecial(form,message)
		
		if (message > "")
			{
					showmsg = "yes"
			}													
						
		
		//This code will prevent a submit if data is incoorect
		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.")
			}
		else
			{
				form.submit()
			}			
			
						
		}
	else
		{
			alert ("The copyright information has been changed. \n In order to use this javascript please keep the copyright information intact. \n\n Script Name: Form Validator ver 2.0 \n Copyright: (c) 1998 - Art Lubin / Artswork \n Email: perflunk@aol.com")
		}
}	

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 i_check(form,x,fieldname,i)
	{
		for (var y = 0; y <= x; y++)
			{
				if (form.elements[y].name == fieldname)
				break
			}						
	
	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)
	}	
	
	
	//Email validation added 6/20/98
	function e_check(form,x,fieldname,i)
	{
		for (var y = 0; y <= x; y++)
			{
				if (form.elements[y].name == fieldname)
				break
			}						
		
	var msg_addition = ""
	period = ".";

                
                if (form.elements[y].value == "" || form.elements[y].value.indexOf ('@', 0) < 1)
                        error = 1;
																						
																else
                  {
	                   test = form.elements[y].value.indexOf('.', form.elements[y].value.indexOf ('@', 0))
										 if (test != -1)
																					{
																						error = 0;
																					}
																				else
																				{
	                    	 error=1;
																				}
                  }
                if (error == 1)
																	{
               				msg_addition = form.elements[i].value
																	}
                else
                 {
								 		new_length = form.elements[y].value.length - test
             if (new_length == 4 || new_length == 3 || (new_length >= 5 && form.elements[y].value.indexOf ('.', (test+1)) != -1))
																						{
																							msg_addition = ""
																						}
																					else
																							msg_addition = form.elements[i].value;
																	}
	return(msg_addition)
	}	

	function d_check(form,x,fieldname,i)
//date must be in DD/MM/YY format OR D/M/YY or a MIX of the two
 {
		for (var y = 0; y <= x; y++)
			{
				if (form.elements[y].name == fieldname)
				break
			}		
			
		var msg_addition = ""	
		var sDate = form.elements[y].value
		
		var int_or_not = isInteger(form.elements[y].value)
		//alert(sDate);
		if(sDate != ""){
		    var isGoodDate = validateDate(sDate,'W','P');
	        if(!isGoodDate){
	            msg_addition = form.elements[i].value;
	        }
	    }
		//to allow NO validation unless r_ specified
		/*if (form.elements[y].value != "") {
		
		    var isGoodDate = validateDate(form.elements[y].value,'W','P');
		    alert(isGoodDate);
		    if(!isGoodDate){
		        msg_addition = form.elements[i].value
		    }   
		}
		else
			{
				msg_addition = form.elements[i].value
			}
		return(msg_addition)
	}
	*/
	//to allow NO validation unless r_ specified CLOSING
	return(msg_addition)
	}
	
	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)
	}

/*          js functions for date validation  */
function valDateFmt(datefmt) {
    myOption = -1;
    for (i=0; i<datefmt.length; i++) {
        if (datefmt[i].checked) {
            myOption = i;
        }
    }
    if (myOption == -1) {
        alert("You must select a date format");
        return ' ';
    }
    return datefmt[myOption].value;
}
function valDateRng(daterng) {myOption = -1;
    for (i=0; i<daterng.length; i++) {if (daterng[i].checked) {myOption = i;}}
    if (myOption == -1) {alert("You must select a date range");return ' ';}
    return daterng[myOption].value;}
function stripBlanks(fld) {var result = "";for (i=0; i<fld.length; i++) {
    if (fld.charAt(i) != " " || c > 0) {result += fld.charAt(i);
    if (fld.charAt(i) != " ") c = result.length;}}return result.substr(0,c);}
    var numb = '0123456789';
function isValid(parm,val) {if (parm == "") return true;
    for (i=0; i<parm.length; i++) {if (val.indexOf(parm.charAt(i),0) == -1)
    return false;}return true;}
function isNum(parm) {return isValid(parm,numb);}
    var mth = new Array(' ','january','february','march','april','may','june','july','august','september','october','november','december');
    var day = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
function validateDate(fld,fmt,rng) {
    var dd, mm, yy;var today = new Date;var t = new Date;fld = stripBlanks(fld);
    if (fld == '') return false;var d1 = fld.split('\/');
    if (d1.length != 3) d1 = fld.split(' ');
    if (d1.length != 3) return false;
    if (fmt == 'u' || fmt == 'U') {
      dd = d1[1]; mm = d1[0]; yy = d1[2];}
    else if (fmt == 'j' || fmt == 'J') {
      dd = d1[2]; mm = d1[1]; yy = d1[0];}
    else if (fmt == 'w' || fmt == 'W'){
      dd = d1[0]; mm = d1[1]; yy = d1[2];}
    else return false;
    // we don't want 4 digit years for berwick
    if(yy.length > 2){
        return false;
    }
    //alert('day: ' + dd);
    //alert('month: ' + mm);
    //alert('year: ' + yy);
    var n = dd.lastIndexOf('st');
    if (n > -1) dd = dd.substr(0,n);
    n = dd.lastIndexOf('nd');
    if (n > -1) dd = dd.substr(0,n);
    n = dd.lastIndexOf('rd');
    if (n > -1) dd = dd.substr(0,n);
    n = dd.lastIndexOf('th');
    if (n > -1) dd = dd.substr(0,n);
    n = dd.lastIndexOf(',');
    if (n > -1) dd = dd.substr(0,n);
    n = mm.lastIndexOf(',');
    if (n > -1) mm = mm.substr(0,n);
    //alert('still here');
    if (!isNum(dd)) return false;
    if (!isNum(yy)) return false;
    if (!isNum(mm)) {
      var nn = mm.toLowerCase();
      for (var i=1; i < 13; i++) {
        if (nn == mth[i] ||
            nn == mth[i].substr(0,3)) {mm = i; i = 13;}
      }
    }
    if (!isNum(mm)) return false;
    dd = parseFloat(dd); mm = parseFloat(mm); yy = parseFloat(yy);
    //alert('still here2');
    
    if (yy < 20){ 
        yy += 2000;
    }
    else if (yy < 100){ 
        yy += 1900;
    }
    
    
    if (yy < 1582 || yy > 4881) return false;
    if (mm == 2 && (yy%400 == 0 || (yy%4 == 0 && yy%100 != 0))) day[mm-1]++;
    if (mm < 1 || mm > 12) return false;
    if (dd < 1 || dd > day[mm-1]) return false;
    t.setDate(dd); t.setMonth(mm-1); t.setFullYear(yy);
    //alert(rng);
    //alert(t);
    //alert(today);
    if (rng == 'p' || rng == 'P') {
    if (t > today) return false;
    }
    else if (rng == 'f' || rng == 'F') {
    if (t < today) return false;
    }
    else if (rng != 'a' && rng != 'A') return false;
    
    return true;
}
function checkSpecial(form,message)
{	
	
	return message;	
						
		
}