// JavaScript Document
// JavaScript Document

var numbClicks = 0;
var thisHistory = 0;
var badchars = [256,8218,8364];
var badceiling = 256;
var lowceiling = 128;
var hibitsoff = 128;
var hibits = '????"???^?S<??Z????""o--~?S?? ZY????????"???????????????,???????AAAAAAACEEEEIIIIDNOOOOOx0UUUUY?Baaaaaaaceeeeiiii?nooooo?0uuuuy?y'.split('');


function CheckChar(charcode)
{

    for (var k=0; k < badchars.length; k++)
    {
        if (charcode == badchars[k])
        {
            return(1);
        }
    }
    return (-1);
}

function Dalert (InStr)
{
    alert (DeEncode(InStr));
}

function DeEncode(InStr)
{
    var hexmatch = /\&#(\d+)\;/;
    var hexsub = /\&#\d+\;/;
    var RetStr = InStr;
    var matchedcode = RetStr.match(hexmatch);
    while (matchedcode != null)
    {
        var tmpStr = String.fromCharCode(matchedcode[1]);
        RetStr = RetStr.replace(hexsub, tmpStr);
        matchedcode = RetStr.match(hexmatch);
    }
    return (RetStr);
}

function ValidString(frmField)
{
    var errfound = -1;
    var retstr = "";
    for (var j=0; j < frmField.length; j++)
    {
        var code = frmField.charCodeAt(j);
        if (code > badceiling)    // Invalidate *everything* above this code.
            errfound = 1;
        else                      // Check for special case codes.
            errfound = CheckChar(code);

        // if error found remove character else accept.
        if (errfound == 1)
            retstr += "?";
        else
        {
            if (code > lowceiling)
            {
                if (code > hibitsoff )
                {
                    retstr += hibits[code - hibitsoff];
                }
                else
                {
                    retstr += '?';
                }
            }
            else
                retstr += frmField.charAt(j);
        }
    }
    return retstr;
}

function BadCharsInForm(f) {
    
    var reterr = -1;
    for( var i=0; i < f.length; i++)
    {
        var e = f.elements[i];
        if (((e.type == "text") || (e.type == "textarea")) ||
             (e.type == "hidden"))
        {
            var outstr = ValidString(e.value);
            if (outstr != e.value)
            {
                e.value = outstr;
                reterr = i;
            }
        }
    }
    return reterr;
}

function SpaceCharStrip(f) {
    
    var LeadSpace = /^\s+/;
    var TrailSpace = /\s+$/;
    for ( var i=0; i < f.length; i++)
    {
        var e = f.elements[i];
        if (((e.type == "text") || (e.type == "textarea")) ||
            (e.type == "hidden"))
        {
            var tempstring = e.value;
            tempstring = tempstring.replace(LeadSpace, '');
            tempstring = tempstring.replace(TrailSpace, '');
            e.value = tempstring;
        }
    }
}

function AlphaOnly(frmField)
{   
  var combo = frmField.value;   
  
  
  for (var i = 0; i < combo.length; i++)
  {      
    var ch = combo.substring(i, i + 1);      
    if (((ch < "a" || "z" < ch) && (ch < "A" || "Z" < ch)) && ch != ' ')
      return false;         
  }   
  return true;   
}

function numberOnly(frmField)
{   
  var combo = frmField.value;   
  for (var i = 0; i < combo.length; i++)

  {      
    var ch = combo.substring(i, i + 1);      
    if (ch < "0" || ch > "9")
      return false;         
  }   
  return true;   
}

function emailValidator(frmField)
{   
  var str = frmField.value;
        var ValidEmailPattern = /^[\_\.\-\w]+\@[\_\.\-\w]+\.[\_\.\-\w]+$/;
    
  

        if (ValidEmailPattern.test(str))
      return true;      
        else
      return false;      
}

function isDrop(nextFunc,frmField)
{
 var thisStr = frmField;
 var goFunc = nextFunc;
  for (var blah = 0; blah < thisStr.length; blah++){
    if (thisStr.options[nee].selected == true)
    {
      if (!goFunc(thisStr.options[nee]))
      {
        return false;
      }
    return true;
    }
  }
}

function switchState(){
        stLength=document.forms[0].STATE_ID.length-1;
        document.forms[0].STATE_ID.options[stLength].selected = true;
}

function FormValidator(form) {


    
    var gap = /^\s*$/;
    var corruptField = BadCharsInForm(form);
 
    if (corruptField > -1)
    {
        Dalert('Found problems when you entered some non-ASCII characters.  Safe values have been substituted.  Please verify the prompted field and fields below it have correct content.');
        form.elements[corruptField].focus();
        return (false);
    }
  
    SpaceCharStrip(form);
    
    if (gap.test(form.your_name.value))
    {
        Dalert('Please provide your name.');
        form.your_name.focus();
        return false;
    }
   
    if (!AlphaOnly(form.your_name))
    {
  Dalert('You must enter alphabetical letters only in the name field.');
  form.your_name.focus();
  return false;
    }
  
   if (gap.test(form.phone.value))
    {
        Dalert('Please provide a phone number.');
        form.phone.focus();
        return false;
    }
  
    if (gap.test(form.email_address.value))
    {
        Dalert('Please provide an email address.');
        form.email_address.focus();
        return false;
    }
        if (!emailValidator(form.email_address))
    {
  Dalert('Please check the e-mail format entry, for example: name@company.com.');
  form.email_address.focus();
  return false;
    }
 
 
}
