var new_fieldname = ""

function check(form) {
  password = null;
  password_mismatch = false;
  var x=form.elements.length;
  var message = "";
  var more_message = "";
  var showmsg = "no";
  if(1==1) {
    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 == "b_") {
        more_message = b_check(form,x,fieldname,i);
      } else if (messenger == "t_") {
        more_message = t_check(form,x,fieldname,i);
      } else if (messenger == "e_") {
        more_message = e_check(form,x,fieldname,i);
      } else if (messenger == "p_") {
        more_message = p_check(form,x,fieldname,i);
      } else if (messenger == "m_") {
        more_message = m_check(form,x,fieldname,i);
      } else if (messenger == "a_") {
	  	more_message = a_check(form,x,fieldname,i);
      } else if (messenger == "s_") {
	  	more_message = s_check(form,x,fieldname,i);
	  }

      if(more_message != "") {
        if(message == "") {
          message = more_message;
          more_message="";
        } else {
          message = message + "\n" + more_message;
          more_message="";
        }
      }
                      
      if(message > "") {
        showmsg = "yes";
      }
    }

    //This code will prevent a submit if data is incoorect
    if(showmsg == "yes"){
      alert("Please revise the following information:\n\n" + message + "\n")
      return false;
    } else {
      return true;
    }
  } 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)
    }

// this checks if two passwords fields match
function p_check(form,x,fieldname,i) {
  for(var y = 0; y <= x; y++) {
    if(form.elements[y].name == fieldname) break;   //find the field with the same name.. element y
  }
  var msg_addition =  ""
  if (password==null) {
  	password = form.elements[y].value.toString();
  } else if (password!=form.elements[y].value.toString() && !password_mismatch) {
  	password_mismatch = true;
    msg_addition = "Passwords Do Not Match.  Retype and Verify Again."
  }
  return(msg_addition)
} 

// This checks for the minimum length of a text field
function m_check(form,x,fieldname,i) {
  for(var y = 0; y <= x; y++) {
    if(form.elements[y].name == fieldname) break;   //find the field with the same name.. element y
  }
  var msg_addition =  ""
  var sep = form.elements[i].value.indexOf(",");
  //alert("length: "+form.elements[y].value.length);
  //alert("at least: "+form.elements[i].value.substr(0,sep));
  //alert("message: "+form.elements[i].value.substr(sep+1,form.elements[i].value.length));
  //alert(form.elements[y].value);
  if (form.elements[y].value != "" && form.elements[y].value.length<form.elements[i].value.substr(0,sep)) {
    msg_addition = form.elements[i].value.substr(sep+1,form.elements[i].value.length);
  }
  return(msg_addition)
}      

// This checks for the presence of a dollar sign '$'
function s_check(form,x,fieldname,i) {
  found = false;
  for(var y = 0; y <= x; y++) {
    if(form.elements[y].name == fieldname) break;   //find the field with the same name.. element y
  }
  inputStr = form.elements[y].value.toString()
  var msg_addition =  ""
  if (inputStr == "") {
    msg_addition = ""
  } else {
    for(var j=0; j<inputStr.length; j++) {
	  if (inputStr.substring(j,j+1)=='$') found = true;
	}
    if (!found) msg_addition = form.elements[i].value;
  }
  return(msg_addition)
}     

// This checks for the minimum age of guests
function a_check(form,x,fieldname,i) {
  for(var y = 0; y <= x; y++) {
    if(form.elements[y].name == fieldname) break;   //find the field with the same name.. element y
  }
  var msg_addition =  ""
  if (form.elements[y].value.toString() == "") {
  msg_addition = ""
  } else {
  	if (form.elements[y].value < form.elements[i].value) {
    msg_addition = "Guests Must Be "+form.elements[i].value+" Or Older";
 	} 
  }
  return(msg_addition)
}      

// checks if integer is entered 
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(form.elements[y].value != "" && (oneChar < "0" || oneChar > "9")) {
        msg_addition = form.elements[i].value
      }
    }
  }
  return(msg_addition)
}  

//checks to see if there are 10 digits (telephone)
function t_check(form,x,fieldname,i) {
  for(var y = 0; y <= x; y++) {
    if(form.elements[y].name == fieldname) break
  }
    
  var msg_addition = ""
  var outputStr = ""
  var phone = ""
  var intcount = 0
  inputStr = form.elements[y].value.toString()
  for(var j=0; j<inputStr.length; j++) {
    if(!isNaN(parseInt(inputStr.substring(j,j+1)))) {
      phone += parseInt(inputStr.substring(j,j+1)); 
      intcount++;
    }
  } 
  if(intcount != 10 && inputStr != "") msg_addition = form.elements[i].value;
  else if (inputStr != "") {
    outputStr = phone.substring(0,3);
    outputStr += "-" + phone.substring(3,6);
    outputStr += "-" + phone.substring(6,10);
    form.elements[y].value = outputStr;
  }
  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 = "";
  var test=0;
  period = ".";

  if (form.elements[y].value != "") {
                if (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;
                                  }
       } // if (email is blank)
  return(msg_addition)
  }  

  function d_check(form,x,fieldname,i,b)
//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
      }    
    var msg_addition = ""  
    var dte = form.elements[y].value;
	if((dte.substring(0,4)=="0000") || (dte.substring(5,7)=="00") || (dte.substring(8,10)=="00")) {
      if (dte=="0000-00-00") {
	  	form.elements[y].value = "";
	  } else {
	  	msg_addition = form.elements[i].value;
		//alert(dte);
	  }
    }
    return(msg_addition)
  }

  function b_check(form,x,fieldname,i,b)
//date must be in MM/DD/YY format OR M/D/YY or a MIX of the two //birthday is allowed missing year
 {
    for (var y = 0; y <= x; y++)
      {
        if (form.elements[y].name == fieldname)
        break
      }    
    var msg_addition = ""  
    var dte = form.elements[y].value;
    // (dte.substring(0,4)=="0000") || 
	if((dte.substring(5,7)=="00") || (dte.substring(8,10)=="00")) {
      if (dte=="0000-00-00") {
	  	form.elements[y].value = "";
	  } else {
	  	msg_addition = form.elements[i].value;
		//alert(dte);
	  }
    }
    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)
  }
  
  function doall(script_name, copyright, email)
  {
  var code = 0
  var test = script_name + copyright + email
  for (var a = 0; a < test.length; a++)
    {
    var each_char = test.charAt(a)
    var x = asc(each_char)
    code += x
    }
  return (code)
  }
  
  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
      }
