//
// Live Group Editing
//
jQuery(document).bind('redrover_ready', function(){
  
  // Group Name
  jQuery('#group_name a.editable, #group_name .tip').hover(function() {
    jQuery('#group_name .tip').show();
  },function() {
    jQuery('#group_name .tip').hide();
  });
  
  jQuery('#group_name a.editable, #group_name .tip').click(function() {
    var link = jQuery('#group_name a.editable');
    jQuery('#group_name .tip').hide();
    var h1 = link.parent();
    var form = jQuery('#group_name form');
    h1.hide();
    form.show();
    return false;
  });
  
  jQuery('#group_name form .save').click(function() {
    group_name_val = jQuery('#group_name form .focus').val();
    if (group_name_val == '') { return false; }
    var form = jQuery('#group_name form');
    form.find('.tray').hide();
    form.find('.processing').show();
    jQuery.post(form.attr('action'), form.serialize(), function(group) {
      if (group.errors && group.errors.length > 0) {
        //alert('error');
        jQuery('#group_name form .cancel').click();
      }
      else {
        var oldname = form.parent().find('h1 a.editable');
        oldname.find('span').empty();
        var oldname_val = oldname.text();
        oldname.html(group_name_val);
        jQuery('#breadcrumbs li a:contains('+oldname_val+')').html(group_name_val);
        jQuery('#group_name form .cancel').click();
        oldname.effect("highlight", {}, 2000);
      }
    }, 'json')
    return false;
  });
  
  jQuery('#group_name form .cancel').click(function() {
    var form = jQuery(this).parent().parent()
    form.find('.processing').hide();
    form.find('.tray').show();
    form.hide();
    form.parent().find('h1').show();
    return false;
  });

  // Group Description
  jQuery('#groupDescription .editable, #groupDescription .tip').hover(
    // hover in
    function() { jQuery('#groupDescription .tip').show(); },
    // hover out
    function() { jQuery('#groupDescription .tip').hide(); }
  );
  
  jQuery('#groupDescription .editable, #groupDescription .tip').click(function() {
    var editable = jQuery('#groupDescription .editable');
    jQuery('#groupDescription .tip').hide();
    var form = jQuery('#groupDescription').find('form');
    editable.hide();
    form.show();
    return false;
  });
  jQuery('#groupDescription form .save').click(function() {
    group_description_val = jQuery('#groupDescription form textarea').val();
    if (group_description_val == '') { return false; }
    var form = jQuery('#groupDescription form');
    form.find('.tray').hide();
    form.find('.processing').show();
    jQuery.post(form.attr('action'), form.serialize(), function(group) {
      if (group.errors && group.errors.length > 0) {
      }
      else {
        jQuery('#groupDescription .editable').html(group_description_val).effect("highlight", {}, 2000);
        form.find('.tray').show();
        form.find('.processing').hide();
      }
      jQuery('#groupDescription form .cancel').click();
    }, 'json')
    return false;
  });
  jQuery('#groupDescription form .cancel').click(function() {
    var form = jQuery(this).parent().parent();
    form.find('.processing').hide();
    form.find('.tray').show();
    form.hide();
    jQuery('#groupDescription .editable').show();
    return false;
  });

  // Leader Title
  jQuery('#edit_leader_title_trigger, #leader_title .tip').hover(function() {
    jQuery('#leader_title .tip').show();
  }, function() {
    jQuery('#leader_title .tip').hide();
  });
  jQuery('#edit_leader_title_trigger .val, #leader_title .tip .edit').click(function() {
    jQuery('#edit_leader_title_trigger, #leader_title .tip').hide();
    jQuery('#leader_title form').show();
    return false;
  });
  jQuery('#leader_title form .save').click(function() {
    if (jQuery('#membership_title').val() == '') { return false; }
    jQuery('#leader_title form .tray').hide();
    jQuery('#leader_title form .processing').show();
    var form = jQuery('#leader_title form').show();
    jQuery.post(form.attr('action'), form.serialize(), function(response_json) {
      if (!response_json.membership.errors) {
        jQuery('#leader_title .val').html(response_json.membership['title']);
        jQuery('#leader_title').effect("highlight", {}, 2000);
      }
      jQuery('#leader_title  form .cancel').click();
    }, 'json')
    return false;
  });
  
  jQuery('#leader_title form .cancel').click(function() {
    jQuery('#edit_leader_title_trigger').show();
    jQuery('#leader_title form').hide();
    jQuery('#leader_title form .tray').show();
    jQuery('#leader_title form .processing').hide();
    return false;
  });

  // Category
  jQuery('#groupCategory .tip, #groupCategory h3, #groupCat_val').hover(function() {
    jQuery('#groupCategory .tip').show();
  },function() {
    jQuery('#groupCategory .tip').hide();
  });
  jQuery('#groupCategory .tip, #groupCategory h3, #groupCat_val').click(function() {
    jQuery('#groupCategory .tip, #groupCategory h3, #groupCat_val').hide();
    jQuery('#groupCategory form').show();
    return false;
  });
  jQuery('#groupCategory form .cancel').click(function() {
    jQuery('#groupCategory form').hide();
    jQuery('#groupCategory .tip, #groupCategory h3, #groupCat_val').show();
    return false;
  });
  jQuery('#groupCategory form .save').click(function() {
    var form = jQuery('#groupCategory form');
    form.find('.tray').hide();
    form.find('.processing').show();
    jQuery.post(form.attr('action'), form.serialize(), function(group) {
      if (group.errors && group.errors.length > 0) {
        //alert('error');
        jQuery('#groupCategory form .cancel').click();
      }
      else {
        jQuery('#groupCat_val').html(jQuery('#student_group_category_id :selected').text()).effect("highlight", {}, 2000);
        form.find('.tray').show();
        form.find('.processing').hide();
        jQuery('#groupCategory form .cancel').click();
      }
    }, 'json')
    return false;
  });

  // Tags
  jQuery('#groupTagsEdit .tip, #groupTagsEdit .editable').hover(function() {
    jQuery('#groupTagsEdit .tip').show();
  },function() {
    jQuery('#groupTagsEdit .tip').hide();
  });
  jQuery('#groupTagsEdit .tip, #groupTagsEdit .editable').click(function() {
    jQuery('#groupTagsEdit .tip').hide();
    jQuery('#groupTagsEdit h2').removeClass('editable');
    jQuery('#tags_box').hide();
    jQuery('#groupTagsEdit form').show();
    return false;
  });
  jQuery('#groupTagsEdit form .cancel').click(function() {
    jQuery('#groupTagsEdit h2').addClass('editable');
    jQuery('#groupTagsEdit form').hide();
    jQuery('#tags_box').show();
    return false;
  });
  jQuery('#groupTagsEdit form .save').click(function() {
    if (jQuery('#student_group_tag_list').val() == '') { return false; }
    var form = jQuery('#groupTagsEdit form');
    form.find('.tray').hide();
    form.find('.processing').show();
    jQuery.post(form.attr('action'), form.serialize(), function(group) {
      if (group.errors && group.errors.length > 0) {
        jQuery('#groupTagsEdit form .cancel').click();
      }
      else {
        // reload to get the javascript events bound to the new tags
        window.location.reload();
      }
    }, 'json')
    return false;
  });
});
