window.addEvent('domready', function() {
  
  var el = $('s4c-youcan-join-form');
  if (!el) return;
  
  el.getElements('.submit-form-link').addEvent('click', function(e) {
    e = new Event(e).stop();
    var form = $('s4c-youcan-join-form');
    
    var post = new Object();
    post.action = 'joinus';
    post.name = form.getElement('input.text-field.name').value;
    post.email = form.getElement('input.text-field.email').value;
    
    s4c__show_join_submission_status('loading');
    var request = new Request.JSON({ url: 'join_form_processor.php', onComplete: s4c__join_submission_complete }).post(post);     
  });
 
  var fields = el.getElements('input.text-field');
  
  fields.each(function(item) {
    if (item.hasClass('name') && item.value != 'NAME') { item.addClass('in-use'); }
    if (item.hasClass('email') && item.value != 'EMAIL') { item.addClass('in-use'); }
  });
  fields.addEvent('blur', function(e) {
    e = new Event(e);
    
    if (this.hasClass('name') && this.value == '') { this.value = 'NAME'; this.removeClass('in-use'); }
    if (this.hasClass('email') && this.value == '') { this.value = 'EMAIL'; this.removeClass('in-use'); }
  });  
  fields.addEvent('focus', function(e) {
    e = new Event(e);
    
    if (this.hasClass('name') && this.value == 'NAME') this.value = '';
    if (this.hasClass('email') && this.value == 'EMAIL') this.value = '';
    this.addClass('in-use');
  });
  
  el.getElement('div.response div.close a').addEvent('click', function(e) {
    e = new Event(e).stop();
    this.getParent('div.response').addClass('s4c-hidden');
  });
  
});

function s4c__join_submission_complete(obj, text)
{
  if (!(obj instanceof Object)) obj = new Object();
  if (!obj.success) s4c__show_join_submission_status('failure', obj.error);
  else
  { 
    s4c__show_join_submission_status('success');
    s4c__join_form_reset();
  }
}

function s4c__show_join_submission_status(status, message)
{
  var form = $('s4c-youcan-join-form');
  var processing = form.getElement('div.processing');
  var response = form.getElement('div.response');
  var success = response.getElement('span.success');
  var failure = response.getElement('span.failure');
  
  response.addClass('s4c-hidden');
  processing.addClass('s4c-hidden');
  success.addClass('s4c-hidden');
  failure.addClass('s4c-hidden');
  
  if (status == 'loading') processing.removeClass('s4c-hidden');
  else if (status == 'success') { response.removeClass('s4c-hidden'); success.removeClass('s4c-hidden'); }
  else if (status == 'failure') 
  {
    response.removeClass('s4c-hidden')
    failure.removeClass('s4c-hidden');
    failure.set('text', message);
  }
}

function s4c__join_form_reset()
{
  var form = $('s4c-youcan-join-form');
  form.getElement('input.text-field.name').removeClass('in-use').value = 'NAME';
  form.getElement('input.text-field.email').removeClass('in-use').value = 'EMAIL';
}