window.addEvent('domready', function() {
  var form, submit, indicator;
  var failed = $('failed');
  var failed_captcha = $('failed_captcha');
  var succeeded = $('succeeded');
  if ($('contactForm')) {
    form = $('contactForm');
    submit = form.getElement('.submit');
    indicator = form.getElement('.indicator');
    form.set('send', {
      onComplete: function(response) {
        response = JSON.decode(response);
        // alert("response=" + response);
        if (failed.visible())    failed.fadeOut();
        if (failed_captcha.visible())    failed_captcha.fadeOut();
        if (succeeded.visible()) succeeded.fadeOut();
        if (response == undefined) {
          // alert('simply_captcha_failed');
          failed_captcha.fadeIn();            
          window.scrollTo(0, failed_captcha.getCoordinates().bottom - window.getSize().y + 10);
          // form.focusFirst();
          $('captcha').focus();
        } else {
          if (response) {
            form.reset();
            succeeded.fadeIn();
            window.scrollTo(0, succeeded.getCoordinates().bottom - window.getSize().y + 10);
          } else {
            failed.fadeIn();
            window.scrollTo(0, failed.getCoordinates().bottom - window.getSize().y + 10);
            form.focusFirst();
          }     
        }
        indicator.fade('out');
        submit.disabled = false;
      }
    });
    form.addEvent('submit', function() {
      submit.disabled = true;
      indicator.fade('in');
      form.send();
      return false;
    });
    
    var customer_yes = $('customer_yes');
    var subject = $('subject');
    var subject_other = $('subject_other');
    var subject_other_input = $$('#subject_other input')[0];
    $$('.customer_radio').addEvent('click', function() {
      if (this.value == 'yes' && this.checked)
        customer_yes.fadeIn(function() {
          customer_yes.focusFirst();
        });
      else if(customer_yes.visible())
        customer_yes.fadeOut();
    });
    subject.addEvent('change', function() {
      var selected = Element.getSelected(subject).map(function(opt){
				return opt.value;
			})[0];
      if (selected == 'Other') {
        subject_other.fadeIn(function() {
          subject_other.focusFirst();
        });
        subject.removeProperty('name');
        subject_other_input.name = 'subject';
      } else if (subject_other.visible()) {
        subject_other.fadeOut();
        subject_other_input.removeProperty('name');
        subject.name = 'subject';
      }
    });
  }
});