//OK Lets validate the form
var new_fieldname = ""

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, 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 == "c_")
      {
        more_message = c_check(form,x,fieldname,i)
      }
      else if (messenger == "p_")
      {
        more_message = p_check(form,x,fieldname,i)
      }
      else if (messenger == "i_")
      {
        more_message = i_check(form,x,fieldname,i)
      }
      else if (messenger == "e_")
      {
        more_message = e_check(form,x,fieldname,i)
      }
      else if (messenger == "v_")
      {
        more_message = v_check(form,x,fieldname,i)
      }
      else if (messenger == "m_")
      {
        more_message = m_check(form,x,fieldname,i)
      }
      else if (messenger == "z_")
      {
        more_message = z_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"
      }                                                                                     }       
  }
                        
  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()
  }
}
       
//Check for required fields
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)
}

                     
//Check for integers                       
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 (oneChar < "0" || oneChar > "9")
      {
        msg_addition = form.elements[i].value
      }
    }
  }
  return(msg_addition)
}       
        
        
//Email Address 1 format check
function e_check(form,x,fieldname,i)
{
  for (var y = 0; y <= x; y++)
  {
    if (form.elements[y].name == fieldname)
    break
  }                                               
                
  var msg_addition = ""
  ctrl = form.email_address;
  period = ".";
  //Need east one letter before @
  if (ctrl.value == "" || ctrl.value.indexOf ('@', 0) < 1) error = 1;
  else
  {
    //A period must come after the @
    test = ctrl.value.indexOf('.', ctrl.value.indexOf ('@', 0))
    if (test != -1)
    {
      error = 0;
    }
    else
    {
      error=1;
    }
  }
  if (error == 1)
  {
    msg_addition = form.elements[i].value
  }
  else
  {
    new_length = ctrl.value.length - test  //The length of email address - the number of characters from @ to a period.
    if (new_length == 4 || new_length == 3 || (new_length >= 5 && ctrl.value.indexOf ('.', (test+1)) != -1))
    {
      msg_addition = ""
    }
    else
    msg_addition = form.elements[i].value;
  }
  return(msg_addition)
}       

//Email Verify format check
function v_check(form,x,fieldname,i)
{
  for (var y = 0; y <= x; y++)
  {
    if (form.elements[y].name == fieldname)
    break
  }                                               
                
  var msg_addition = ""
  vctrl = form.emailVerify;
  period = ".";
  //Need east one letter before @
  if (vctrl.value == "" || vctrl.value.indexOf ('@', 0) < 1) error = 1;
  else
  {
    //A period must come after the @
    vtest = vctrl.value.indexOf('.', vctrl.value.indexOf ('@', 0))
    if (vtest != -1)
    {
      error = 0;
    }
    else
    {
      error=1;
    }
  }
  if (error == 1)
  {
    msg_addition = form.elements[i].value
  }
  else
  {
    new_length = vctrl.value.length - vtest  //The length of email address - the number of characters from @ to a period.
    if (new_length == 4 || new_length == 3 || (new_length >= 5 && vctrl.value.indexOf ('.', (vtest+1)) != -1))
    {
      msg_addition = ""
    }
    else
    msg_addition = form.elements[i].value;
  }
  return(msg_addition)
}

//User email duplication verify
function m_check(form,x,fieldname,i)
{
  for (var y = 0; y <= x; y++)                                             
                
  var msg_addition = ""
  mctrl = form.email;
  mvctrl = form.emailVerify;
  if (mctrl.value != mvctrl.value)
  {
    msg_addition = form.elements[i].value
  }
  else
  {
    msg_addition = ""
  }
  return(msg_addition)
}


//User Name characters validation
function c_check(form,x,fieldname,i)
{
  for (var y = 0; y <= x; y++)
  {
    if (form.elements[y].name == fieldname)
    break
  }                                               
                
  var msg_addition = ""
  var bslash = "\\";
  var colon = ":";
  var scolon = "\;";
  var dquote = "\"";
  var squote = "\'";
  var period = "\.";
  var fslash = "\/";
  var qmark = "\?";
  var gthan = "\>";
  var comma = "\,";
  var lthan = "\<";
  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 ((oneChar == "~") || (oneChar == "`") || (oneChar == "!") || (oneChar == "@") || (oneChar == "#") || (oneChar == "$") || (oneChar == "%") || (oneChar == "^") || (oneChar == "&") || (oneChar == "*") || (oneChar == "(") || (oneChar == ")") || (oneChar == "_") || (oneChar == "-") || (oneChar == "+") || (oneChar == "=") || (oneChar == "{") || (oneChar == "}") || (oneChar == "[") || (oneChar == "]") || (oneChar == "|") || (oneChar == bslash) || (oneChar == colon) || (oneChar == scolon) || (oneChar == dquote) || (oneChar == squote) || (oneChar == period) || (oneChar == fslash) || (oneChar == qmark) || (oneChar == gthan) || (oneChar == comma) || (oneChar == lthan))
      {
        msg_addition = form.elements[i].value
      }
    }
  }
  return(msg_addition)
}



//User password validation
function p_check(form,x,fieldname,i)
{
  for (var y = 0; y <= x; y++)                                             
                
  var msg_addition = ""
  pctrl = form.password1;
  pvctrl = form.password2;
  if ((pctrl.value != pvctrl.value) || (pctrl.value.length < 5) || (pvctrl.value.length < 5))
  {
    msg_addition = form.elements[i].value
  }
  else
  {
    msg_addition = ""
  }
  return(msg_addition)
}

  


  
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
}

//Character set string                
function charSetStr()
{
  var str
  str = ' !"#$%&' + "'" + '()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~'

  return str
} 

//End of form validation------------//
