// Hover Pop-Up Functions

function showPopup(container_div, hoveritem, hoverid)
{
  // To restrict it so only 1 div can be shown, loop through all and get them
  var container = document.getElementById(container_div);
  var all_divs = container.getElementsByTagName('div');
  for(var i = 0; i < all_divs.length; i++)
  {
    if(all_divs[i].className == 'hoverdiv'  ||  all_divs[i].className == 'hoverdivactive')
    {
      if(all_divs[i].style.display == 'block')
      {
        all_divs[i].style.display = 'none';
        all_divs[i].style.className = 'hoverdiv';
      }
    }
  }
  // Finally, set the display to "block" for just the current <div>
  document.getElementById(hoverid).style.display = 'block';
  document.getElementById(hoverid).className = 'hoverdivactive';
}

function closeHover(hoverid)
{
  document.getElementById(hoverid).style.display = 'none';
  document.getElementById(hoverid).className = 'hoverdiv';
}

function delayCloseHover(hoverid, timeout)
{
  setTimeout("closeHover('" + hoverid + "');", timeout);
}

// Expand/Collapse used with PHP recursive scanning function

function expandCollapse(divID, theLink)
{
  if(document.getElementById(divID).style.display == 'none'  ||  document.getElementById(divID).style.display == '')
  {
    document.getElementById(divID).style.display = 'block';
    theLink.childNodes[0].src = '/images/icon_collapse.gif';
  }
  else
  {
    document.getElementById(divID).style.display = 'none';
    theLink.childNodes[0].src = '/images/icon_expand.gif';
  }
}

function expandCollapseAll(divID, theClass, theAction)
{
  // Adjust all the lists
  var allLists = document.getElementById(divID).getElementsByTagName('ul');
  for(var i = 0; i < allLists.length; i++)
  {
    if(allLists[i].className == theClass)
      allLists[i].style.display = (theAction == 'collapse' ? 'none' : 'block');
  }
  // Adjust all the icons
  var allImages = document.getElementById(divID).getElementsByTagName('img');
  for(var j = 0; j < allImages.length; j++)
    allImages[j].src = (theAction == 'collapse' ? '/images/icon_expand.gif' : '/images/icon_collapse.gif');
}

// Site-wide Functions

function toggleDisplay(to_show, the_link, show_text, hide_text)
{
  var e = document.getElementById(to_show);
  if(e.style.display == 'none' || e.style.display == '')
  {
    e.style.display = 'block';
    the_link.innerHTML = (hide_text == null ? 'Hide' : hide_text);
  }
  else
  {
    e.style.display = 'none';
    the_link.innerHTML = (show_text == null ? 'Show' : show_text);
  }
}

function toggleDiv(theDiv, theCheckBox) {
  document.getElementById(theDiv).style.display = (theCheckBox.checked == true ? 'block' : 'none');
}

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 checkAssessmentForm() {
  if(document.getElementById('first_name').value == '') {
    alert('Please enter your first name.');
    document.getElementById('first_name').select();
    return false;
  }
  if(document.getElementById('last_name').value == '') {
    alert('Please enter your last name.');
    document.getElementById('last_name').select();
    return false;
  }
  if(document.getElementById('homeowner-1').checked == false  &&  document.getElementById('homeowner-2').checked == false) {
    alert('Please indicate whether or not you are the homeowner.');
    return false;
  }
  if(document.getElementById('homeowner-2').checked == true  &&  document.getElementById('relationship').value == '') {
    alert('Please indicate your relationship to the homeowner.');
    document.getElementById('last_name').select();
    return false;
  }
  if(document.getElementById('parcel_id').value == '') {
    alert('Please enter parcel ID number.');
    document.getElementById('parcel_id').select();
    return false;
  }
  if(document.getElementById('village').value == '') {
    alert('Please enter the village the property is in.');
    document.getElementById('village').select();
    return false;
  }
  if(document.getElementById('property_address').value == '') {
    alert('Please enter the property address.');
    document.getElementById('property_address').select();
    return false;
  }
  if(document.getElementById('contact_phone_day').value == '') {
    alert('Please enter the daytime phone number.');
    document.getElementById('contact_phone_day').select();
    return false;
  }
  if(document.getElementById('contact_phone_evening').value == '') {
    alert('Please enter the evening phone number.');
    document.getElementById('contact_phone_evening').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('form_signature').value.charAt(0) != '/'  &&
      document.getElementById('form_signature').value.charAt(document.getElementById('form_signature').length - 1) != '/') {
    alert('Please sign the form by entering your name, surrounded by slashes (ex: /John Smith/).');
    document.getElementById('form_signature').select();
    return false;
  }
  return true;
}
