﻿function stringCheck(form, name, required, max, prettyName)
{
  var v = getValue(form,name);
  if ( !required && v == "" )
  {
      return '';
  }
  if ( required && v == "" )
  {
      return "Please a enter value for " + prettyName;
  }
  if ( v.length > max )
  { 
      return "Maximum value for " + prettyName + " is " + max + " characters.";
  }
  return '';
}

function checkEmail(form, name, required, max, prettyName)
{
  var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
  var v = getValue(form,name);
  if ( !required && v == "" )
  {
      return '';
  }
  var temp = stringCheck(form,name, required, max, prettyName);
  //stringCheck makes sure if required then it's there
  if ( temp != '')
  {
     return temp;
  }
  if (!filter.test(v))
  {
       return v + " does not appear to be a valid email address.";
  }
  return '';
}
/*use null for length if don't want it checked*/
function checkPhone(form, name, required, length, prettyName)
{
  var v = getValue(form,name);
  //if we dont need one...
  if ( !required && v == "" )
  {
      return '';
  }
  var temp = stringCheck(form,name, required, 50, prettyName);
  //stringCheck makes sure if required then it's there
  if ( temp != '' )//we assume numbers not bigger than 50
  {
     return temp;
  }
  
  var stripped = v.replace(/[\(\)\.\-\ ]/g, '');
  //strip out acceptable non-numeric characters
  if (isNaN(parseInt(stripped))) 
  {
      return prettyName + " appears to contain invalid characters.";
  }
  if ( length!=null )
  {
      if ( stripped.length<length )
      {
      	return "The " + prettyName + " is not long enough.  Is the area code missing?";
      }
  }
  return '';
}

/*use null for length if don't want it checked*/
function checkZip(form, name, required, length, prettyName)
{
  var v = getValue(form,name);
  //if we dont need one...
  if ( !required && v == "" )
  {
      return '';
  }
  
  var temp = stringCheck(form,name, required, 15, prettyName);
  //stringCheck makes sure if required then it's there
  if ( temp != '' )//we assume numbers not bigger than 50
  {
     return temp;
  }
  
  var stripped = v.replace(/[\(\)\.\-\ ]/g, '');
  //strip out acceptable non-numeric characters
  if (isNaN(parseInt(stripped))) 
  {
      return prettyName + " appears to contain invalid characters.";
  }
  if ( length!=null )
  {
      if ( stripped.length<length )
      {
      	return "The " + prettyName + " is not long enough.";
      }
  }
  return '';
}

function checkDropdown(form, name, prettyName) {
    var v = getValue(form, name);// form[name].value;
    if (v=="") 
    {
      	return "Please make selection for " + prettyName;
    }    
    return '';
}

function checkRadio(form, name, prettyName)
{
    checked = false;
    for ( var j = 0; j< form[name].length; j++)
    {
        if (form[name][j].checked)
            checked = true;
    }
    if ( checked == false )
    {
      	return "Please make selection for " + prettyName;
    }
    return '';
}

function checkLength(form, name, max, prettyName)
{
  if ( form[name].value.length > max )
  {
      return prettyName + " can contain at most " + max + " characters.";
  }
  return '';
}

function getValue(form, name)
{
    var v = form[name].value;
    if ( v==null )
    {
      return name + " does not appear to be form variable.  See admin.";
    }
    else
      return trim(v);
}

function trim(v)
{
  return v.replace(/^\s*|\s*$/g,"");
}


