  function dummyElement()
  {
    this.id = '';
    this.style = new Object();
    this.focus = function() { };
  }

  function getElement(id)
  {
    var e = document.getElementById(id);
    
    if (e)
    {
      return e;
    }
    else
    {
      return new dummyElement();
    }
  }
  
  function validPhoneDigit(e)
  {
    return ('0123456789\xBF\xDC\xBD()\x08\x09\x0D\x1B\x60\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6F\x6D'.indexOf(String.fromCharCode(e.keyCode * 1)) > -1);
  }

  function initHint(element)
  {
    var e = element.parentNode.getElementsByTagName("div");
    
    for (var i = 0; i < e.length; i++)
    {
      if (e[i].className == "hintx")
      {
        e[i].className = "hint";
        
        break;
      }
    }
  }

  function showHint(element)
  {
    element.style.backgroundColor = "#FFFFCC";
    //element.style.border = "1px solid black";
  
    var e = element.parentNode.getElementsByTagName("div");
    
    for (var i = 0; i < e.length; i++)
    {
      if (e[i].className == "hint")
      {
        e[i].style.visibility = "visible";
        
        break;
      }
    }
  }
  
  function hideHint(element)
  {
    element.style.backgroundColor = "";
    //element.style.border = "";
    
    // Strip out leading and trailing whitespace
    element.value = trim(element.value);
  
    var e = element.parentNode.getElementsByTagName("div");

    for (var i = 0; i < e.length; i++)
    {
      if (e[i].className == "hint")
      {
        e[i].style.visibility = "hidden";
        
        break;
      }
    }
  }

  function addHints(tagName)
  {
    var inputs = document.getElementsByTagName(tagName);
  
    for (var i = 0; i < inputs.length; i++)
    {
      if (inputs[i].id != 'submitresume')
      {
        inputs[i].onfocus = function () { showHint(this) };
        inputs[i].onblur  = function () { hideHint(this) };
        initHint(inputs[i]);
      }
    }
    
  }
  
  function trim(text)
  {
    return text.replace(/^([\s\n]+)([\S\s\n]*?)([\s\n]+)$/, "$2");
  }

  function checkForm()
  {
    var d;
    
    // Minor validation.
    
    // Full name must contain a space
    d = (trim(getElement('FullName').value).indexOf(' ') == -1);
    
    if (!d)
    {
      // Address must contain a space
    
      d = (trim(getElement('Address').value).indexOf(' ') == -1);
    }
    
    if (!d)
    {
      // Phone number must be at least 7 digits
    
      d = (getElement('Phone').value.replace(/[^0-9]/g, '').length < 7);
    }
    
    getElement('submitresume').disabled = d;
  }

  function setupForm(errorMessage)
  {
    if (document.getElementsByTagName('input').length > 0)
    {
      addHints("input");
      addHints("select");
      addHints("textarea");
    
      checkForm();
      setInterval("checkForm()", 250);
    }
    
    if (errorMessage != '')
    {
      alert(errorMessage);
    }
    
    getElement('Address').focus();
    setTimeout("getElement('FullName').focus();", 1);
  }

