function contact_validation() {
  var required = $w('first_name last_name email');
  var invalid = required.any(function(f) {return $F(f) == ''});
  if(invalid) alert('First Name, Last Name and E-mail are required!');
  return !invalid;
}

function terms_validation() {
  if(!$('accept').checked)
    alert('The terms of this form must be accepted');
  return $('accept').checked;
}

$(document).observe('dom:loaded', function() {
  $$('.job-trigger').each(function(trigger) {
    trigger.setStyle({cursor: 'pointer'});
    var target = trigger.up('td').down('.job-detail');
    trigger.observe('click', function(event) {
      if(event.element().tagName.toLowerCase() != 'a') {
        event.stop();
        target.toggle();
      }
    })
  });

  var container = $('services-tree')
  if(container) {
    var timeout;
    var description_container = $$('.description').first();
    var img = container.down('img');
    var map = $$(img.getAttribute('usemap')).first();
    map.select('area').each(function(area) {
      var description = $(area.getAttribute('alt').replace(/\W+/g, '-').toLowerCase());
      if(description) {
        area.observe('mouseout', function() {
          timeout = setTimeout(function() {
            timeout = null;
            description_container.hide();
          }, 1000);
        });
        area.observe('mouseover', function() {
          if(timeout) {
            clearTimeout(timeout);
            timeout = null;
          }
          container.down('.description').select('div').each(Element.hide);
          description.show();
          description_container.show();
        });
      }
    });
  }
});

