// Misc Functions

function toggleDisplay(toShow, theLink, showText, hideText) {
  hiddenDiv = document.getElementById(toShow);
  if (hiddenDiv.style.display == 'none' || hiddenDiv.style.display == '') {
    hiddenDiv.style.display = 'block';
    theLink.innerHTML = (hideText == null ? 'Hide' : hideText);
  }
  else {
    hiddenDiv.style.display = 'none';
    theLink.innerHTML = (showText == null ? 'Show' : showText);
  }
}

function confirmExternalLink(confirmText) {
  return confirm((confirmText ? confirmText : 'You are about to leave ' + window.location.hostname + '.  Press "OK" to leave, or "Cancel" to stay.'));
}

// Contact Form Functions

function validateEmail(address) {
  var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
  if(reg.test(address) == false)
    return false;
  return true;
}

function validateEmailAddress(address, message) {
  if(validateEmail(document.getElementById(address).value) == false) {
    alert((message ? message : 'Please enter a valid email address.'));
    document.getElementById(address).select();
    return false;
  }
  return true;
}

function checkZipSearch() {
  if(document.getElementById('search-by-zipcode').value == '') {
    alert('Please enter your zip code to find branches near you.');
    document.getElementById('search-by-zipcode').select();
    return false;
  }
  return true;
}

function checkContactForm() {
  if(document.getElementById('contact_subject').value == '') {
    alert('Please choose a subject for this submission.');
    return false;
  }
  if(document.getElementById('contact_name').value == '') {
    alert('Please enter your name.');
    document.getElementById('contact_name').select();
    return false;
  }
  if(document.getElementById('contact_address').value == '') {
    alert('Please enter your address.');
    document.getElementById('contact_address').select();
    return false;
  }
  if(document.getElementById('contact_city').value == '') {
    alert('Please enter your city.');
    document.getElementById('contact_city').select();
    return false;
  }
  if(document.getElementById('contact_state').value == '') {
    alert('Please choose your state.');
    return false;
  }
  if(document.getElementById('contact_zip_code').value == '') {
    alert('Please enter your zip code.');
    document.getElementById('contact_zip_code').select();
    return false;
  }
  if(validateEmail(document.getElementById('contact_email_address').value) == false) {
    alert('Please enter a valid email address.');
    document.getElementById('contact_email_address').select();
    return false;
  }
  if(document.getElementById('contact_phone_number').value == '') {
    alert('Please enter your phone number.');
    document.getElementById('contact_phone_number').select();
    return false;
  }
  if(document.getElementById('contact_best_time_to_call').value == '') {
    alert('Please indicate the best time for us to call you.');
    return false;
  }
  if(document.getElementById('contact_current_customer').value == '') {
    alert('Please indicate whether or not you are a current Trustco Bank customer.');
    return false;
  }
  return true;
}

function checkCareerForm() {
  if(document.getElementById('employment_name').value == '') {
    alert('Please enter your name.');
    document.getElementById('employment_name').select();
    return false;
  }
  if(validateEmail(document.getElementById('employment_email_address').value) == false) {
    alert('Please enter a valid email address.');
    document.getElementById('employment_email_address').select();
    return false;
  }
  if(document.getElementById('employment_address').value == '') {
    alert('Please enter your address.');
    document.getElementById('employment_address').select();
    return false;
  }
  if(document.getElementById('employment_city').value == '') {
    alert('Please enter your city.');
    document.getElementById('employment_city').select();
    return false;
  }
  if(document.getElementById('employment_state').value == '') {
    alert('Please choose your state.');
    return false;
  }
  if(document.getElementById('employment_zip').value == '') {
    alert('Please enter your zip code.');
    document.getElementById('employment_zip').select();
    return false;
  }
  if(document.getElementById('employment_daytime_phone').value == '') {
    alert('Please enter your daytime phone number.');
    document.getElementById('employment_daytime_phone').select();
    return false;
  }
  if(document.getElementById('employment_evening_phone').value == '') {
    alert('Please enter your evening phone number.');
    document.getElementById('employment_evening_phone').select();
    return false;
  }
  if(document.getElementById('employment_preferred_schedule').value == '') {
    alert('Please indicate your preferred schedule.');
    document.getElementById('employment_preferred_schedule').select();
    return false;
  }
  if(document.getElementById('employment_hours').value == '') {
    alert('Please enter your desired hours.');
    document.getElementById('employment_hours').select();
    return false;
  }
  return true;
}

// AJAX Functions

function updateRateTable() {
  new Ajax.Request('/ajax/rates.php', {
    method: 'post',
    parameters: {
      'rate-type': $('rate-type').value
    },
    onComplete: function(response) {
      $('current-rates-table').innerHTML = response.responseText;
    }
  });
}
