function toggle(selector) {
  $(selector).toggle();
}

function toggleNestedAttrDelete(selector, condition) {
  var obj = $(selector);
  condition ? obj.val('0') : obj.val('1');
}

// TODO Refactor this
function toggleMoreLess(link, selector) {
  var obj = $(selector);
  obj.toggle();

  var link = $(link);
  link.text() == 'Show more' ? link.text('Hide') : link.text('Show more');
}

function toggleDelete(link, selector) {
  var obj = $(selector);
  var link = $(link);
  var f = $('#delete-' + selector.substring(1));

  if(f.val() == '0') {
    f.val('1');
    obj.css('text-decoration', 'line-through');
    link.text('Restore');
  }

  else {
    f.val('0');
    obj.css('text-decoration', '');
    link.text('Remove');
  }
}

function appendToTextArea(textarea_selector, text) {
  var ta = $(textarea_selector);
  tinyMCE.execInstanceCommand(ta.attr('id'), 'mceInsertContent', false, text, true);
}

function togglePopup(selector) {
  hidePopupsExcept(selector);

  if ($(selector + ' .pseudo-button').hasClass('selected'))
    { $(selector + ' .pseudo-button').removeClass('selected'); } 
  else 
    { $(selector + ' .pseudo-button').addClass('selected'); }

  $(selector + ' .popup-box').toggle();  
}

function hidePopupsExcept(selector) {
  var not_selector = ':not(' + selector + ').popup';

  $(not_selector + ' .pseudo-button.selected').removeClass('selected');
  $(not_selector + ' .popup-box').hide();
}

function removeNewNestedItem(link, selector, id) {
  var f = $('#delete-' + selector.substring(1));

  f.val('1');
  $(id).hide();

}

$(function() {
  $('form a.add_child').click(function() {
    var assoc   = $(this).attr('data-association');
    var content = $('#' + assoc + '_fields_template').html();
    var regexp  = new RegExp('NEW', 'g');
    var new_id  = new Date().getTime();
    var email = $('#job_add_job_application_notification_id').val();
    var existing_emails = $("li[id^='job_application_notification-']").text();
    var email_pattern = new RegExp(email, 'gi');
    
    if (existing_emails.match(email_pattern) == null) {     
      $('#job_application_notifications').append(content.replace(regexp, new_id));    
      $('#job_application_notification-' + new_id).text(email);
      $('#job_job_application_notifications_attributes_' + new_id +'_email').val(email);
      $('#job_add_job_application_notification_id :selected').attr('disabled', true);
      $('#delete-job_application_notification-' + new_id).val(0);
    } else {
	  alert('Email selected is already on the list.');
    }
    return false;
  });
  
});


