function isValidPhone( element, label, isRequired )

{

  testValue = element.value.replace(/[^\-\d]+/g, '' );



  if( element.value.match(/[^\-\d]/) )

  {

    alert( label + " only accepts Numbers and Dashes.  Please enter a value." );

    element.value = testValue;

    element.focus();

    return false;

  }

  element.value = testValue;

  testValue = testValue.replace( /\D+/g, '' );



  /* If element is a required field, check if nothing was entered.  If it isn't required, then return true; */

  if( testValue.length == 0 )

  {

    if( isRequired == true )

    {

      alert( label + " is a required field.  Please Retry." );

      element.focus();

      return false;

    }



    return true;

  }



  /* Test for String Less Than 10 Digits */

  if( testValue.length < 10 )

  {

    alert( label + " must be at least 10 Digits Long.  Please Re-Enter." );

    element.focus();

    return false;

  }



  /* Test for String Greater Than 20 Digits */

  if( testValue.length > 20 )

  {

    alert( label + " cannot be more than 20 Digits.  Please Re-Enter." );

    element.focus();

    return false;

  }



  /* If Processing Reached here, then the field is Valid so return TRUE */

  return true;

}



function hasBannedPatterns( form )

{

  var re_banned_patterns = /(http:\/\/www|http:\/\/|http|www\.|\/\/)/gi;



  // List of Elements to exclude from Validating

  var excludedFields = {

    'referer_url':'referer_url', 'redirect':'redirect'

  };



  // Check to see if other Excluded Elements were passed into the function

  if( arguments.length > 1 )

  {

    excluded_elements = arguments[1];

    type = typeof(excluded_elements);

    if( type.toLowerCase() == 'string' )

      excludedFields[ excludedFields ] = excluded_elements;

    else

    {

      for( exc_index=0; exc_index < excluded_elements.length; exc_index++ )

      {

        excludedFields[ excludedFields ] = excluded_elements[exc_index];

      }

    }

  }



  for( index = 0; index < form.elements.length; index++ )

  {

    element = form.elements[index];  



    if( excludedFields[element.name] ) continue;



    if( element.value.match( re_banned_patterns ) )

    {

      alert(element.name + " Contains Banned Patterns.\n\nPlease don't include URL components (eg: http://www.example.com).\n\n" + element.name + " will now be Reset.");

      element.value = '';

      element.focus();

      return true;

      break;

    }

  }



  return false;

}



function FormValidate(theForm)

{

  if( hasBannedPatterns(theForm) ) return false;

 

  if (theForm.name.value == "")

  {

    alert("Please enter a value for the \"Name\" field.");

    theForm.name.focus();

    return (false);

  }



  if (theForm.name.value.length > 50)

  {

    alert("Please enter at most 50 characters in the \"Name\" field.");

    theForm.name.focus();

    return (false);

  }



  if (theForm.phone.value == "")

  {

    alert("Please enter a value for your phone number.");

    theForm.phone.focus();

    return (false);

  }

  

  if (theForm.email.value == "")

  {

    alert("Please enter a value for the email field.");

    theForm.email.focus();

    return (false);

  }  

  

  if (theForm.pickup.value == "")

  {

    alert("Please enter a value for the pickup location.");

    theForm.pickup.focus();

    return (false);

  }



  if (theForm.statecurrent.value == "Choose A State")

  {

    alert("Please enter a value for your state of Residence.");

    theForm.statecurrent.focus();

    return (false);

  }



  if (theForm.delivered.value == "")

  {

    alert("Please enter a value for your delivery location.");

    theForm.delivered.focus();

    return (false);

  }

  

  if (theForm.stategoing.value == "Choose A State")

  {

    alert("Please enter a value for your state that you are sending to.");

    theForm.stategoing.focus();

    return (false);

  }

  if (theForm.year.value == "")

  {

    alert("Please enter a value for your vehicles year.");

    theForm.year.focus();

    return (false);

  }



  if (theForm.make.value == "")

  {

    alert("Please enter a value for your vehicles make.");

    theForm.make.focus();

    return (false);

  }





  if (theForm.model.value == "")

  {

    alert("Please enter a value for your vehicles model.");

    theForm.model.focus();

    return (false);

  }

  

  if (theForm.running.value == "")

  {

    alert("Please enter a value if your vehicle is running or not.");

    theForm.running.focus();

    return (false);

  }  

  

boolValidPhone = isValidPhone( theForm.phone, "txtPhone", true );

  if ( !boolValidPhone ) 

  return (false);

  

  return (true);

}

