// Autoclear Input
$(document).ready(function() {
  $('.autoclear').each(function() {
    $(this).attr('initvalue', $(this).val());
    $(this).addClass('default');
  });
  $('.autoclear').live("focus", function() {
    if ($(this).val() == $(this).attr('initvalue')) $(this).val('');
    $(this).toggleClass('default');
  });
  $('.autoclear').live("blur", function() {
    if ($(this).val() == '') {
      $(this).val($(this).attr('initvalue'));
      $(this).toggleClass('default');
    }
  });
});

$(document).ready(function() {
  $('#comments').click(function(e) {
    var target = $(e.target);
    
    if (target.hasClass('comment-submit')) {
      target.click(function () { return false; });
      target.addClass("onhold");
      target.attr("disabled", "disabled");
      var model = $("input#comment-model").val();
      var model_id = $("input#comment-model-id").val();
      var message = $("textarea#comment-message").val();
      var dataString = 'text=' + message + '&model=' + model + '&model_id=' + model_id;
      e.preventDefault();
      postComment(dataString);
      target.removeClass("onhold");
    }
    
    if (target.hasClass('comment-delete')) {
      var replyloc = target.attr("id");
      var delete_id = replyloc.replace("comment-", "");
      var model = $("input#comment-model").val();
      var model_id = $("input#comment-model-id").val();
      var dataString = 'delete_id=' + delete_id + '&model=' + model + '&model_id=' + model_id;
      e.preventDefault();
      deleteComment(dataString);
    }
  });
  
  $('.follow-button').click(function(e) {
    var target = $(e.target);
    
    if (target.hasClass('follow-button-add')) {
      target.click(function () { return false; });
      target.addClass("onhold");
      var replyloc = target.attr("id");
      var leader_id = replyloc.replace("follow-button-member-", "");
      e.preventDefault();
      $.ajax({
          type: 'POST',
          url: '/member/follow/'+leader_id+'/ajax',
          timeout: 2000,
          async: false,
          success: function(data) {
            target.replaceWith('<a href="/member/unfollow/'+leader_id+'" id="follow-button-member-'+leader_id+'" class="follow-button-remove rounded button-red-1">Unfollow <span>X</span></a>');
          },
          error: function (data) {
            alert("There was an error processing your request. Please try again later.")
          }
       });
      target.removeClass("onhold");
    }    
    if (target.hasClass('follow-button-remove')) {
      target.click(function () { return false; });
      target.addClass("onhold");
      var replyloc = target.attr("id");
      var leader_id = replyloc.replace("follow-button-member-", "");
      e.preventDefault();
      $.ajax({
          type: 'POST',
          url: '/member/unfollow/'+leader_id+'/ajax',
          timeout: 2000,
          async: false,
          success: function(data) {
            target.replaceWith('<a href="/member/follow/'+leader_id+'" id="follow-button-member-'+leader_id+'" class="follow-button-add rounded button-blue-1">Follow <span>+</span></a>');
          },
          error: function (data) {
            alert("There was an error processing your request. Please try again later.")
          }
       });
      target.removeClass("onhold");
    }
  });
  
  $('#comic-toolbar').click(function(e) {
    var target = $(e.target);
    
    if (target.hasClass('comic-action-pull')) {
      $(".comic-toolbar-loading").show();
      var comic_string = target.attr("id");
      var comic_id = comic_string.replace("comic-pull-", "");
      var dataString = 'comic_id=' + comic_id;
      $.post("/comic/pull", {'comic_id':comic_id}, function(new_count) {
        reloadComicToolbar(dataString);
        $('#pull-counter').html(new_count);
      });
    }
    
    if (target.hasClass('comic-action-remove-pull')) {
      $(".comic-toolbar-loading").show();
      var comic_string = target.attr("id");
      var comic_id = comic_string.replace("comic-remove-pull-", "");
      var dataString = 'comic_id=' + comic_id;
      $.post("/comic/pull_remove", {'comic_id':comic_id}, function(new_count) {
        reloadComicToolbar(dataString);
        $('#pull-counter').html(new_count);
      });
    }
    
    if (target.hasClass('comic-action-pull-series')) {
      $(".comic-toolbar-loading").show();
      var comic_string = target.attr("id");
      var comic_id = comic_string.replace("comic-subscribe-", "");
      var dataString = 'comic_id=' + comic_id;
      $.post("/comic/pull_subscribe", {'comic_id':comic_id}, function(new_count) {
        reloadComicToolbar(dataString);
        $('#pull-counter').html(new_count);
      });
    }
    
    if (target.hasClass('comic-action-unsubscribe-series')) {
      $(".comic-toolbar-loading").show();
      var comic_string = target.attr("id");
      var comic_id = comic_string.replace("comic-unsubscribe-", "");
      var dataString = 'comic_id=' + comic_id;
      $.post("/comic/pull_unsubscribe", {'comic_id':comic_id}, function(new_count) {
        reloadComicToolbar(dataString);
        $('#pull-counter').html(new_count);
      });
    }
    
    if (target.hasClass('comic-action-add-collection')) {
      $(".comic-toolbar-loading").show();
      var comic_string = target.attr("id");
      var comic_id = comic_string.replace("comic-collect-", "");
      var dataString = 'comic_id=' + comic_id;
      $.post("/comic/collection_add", {'comic_id':comic_id}, function() {
          reloadComicToolbar(dataString);
      });
    }
    
    if (target.hasClass('comic-action-remove-collection')) {
      $(".comic-toolbar-loading").show();
      var comic_string = target.attr("id");
      var comic_id = comic_string.replace("comic-remove-collect-", "");
      var dataString = 'comic_id=' + comic_id;
      $.post("/comic/collection_remove", {'comic_id':comic_id}, function() {
          reloadComicToolbar(dataString);
      });
    }
    
  });
  
  
  $(".wall-comment input").click(function() {
    var message = $("input#status-message").val();
    var model_id = $("input#member").val();
    var dataString = 'text='+ message +'&model=12&model_id='+ model_id;
    $("input#status-message").removeClass("default");
    $("#status-message").addClass("onhold");
    $(".wall-comment input").addClass("onhold");

    $.ajax({
      type: "POST",
      url: "/member/comment",
      data: dataString,
      success: function(outputt) {
        $("#dashboard-loading").show();
        $(".feed-community").removeClass("selected");
        $(".feed-followers").addClass("selected");
        $.ajax({
            type: 'POST',
            url: '/member/load_feed_user/'+model_id+'/ajax',
            timeout: 2000,
            success: function(data) {
              $("#dashboard-feed").html(data);
              $("input#status-message").val('');
              $("#status-message").removeClass("onhold");
              $(".button-post input").removeClass("onhold");
              $("#dashboard-loading").hide();
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                // deal with possible errors
              window.setTimeout(update, 20000);
              $("#dashboard-loading").hide();
            }
         });
      }
     });
    return false;
  });  
  
  $('#dashboard-feed').click(function(e) {
    var target = $(e.target);

    if (target.hasClass('comment-delete')) {      
      $("#dashboard-loading").show();
      var replyloc = target.attr("id");
      var delete_id = replyloc.replace("comment-delete-", "");
      var feed_type = $('input#feed-type').val();
      var dataString = 'delete_id=' + delete_id;
      e.preventDefault();
      $.ajax({
          type: 'POST',
          async: false,
          url: '/member/delete_comment',
          timeout: 2000,
          data: dataString,
          success: function() {
            reloadFeed(feed_type);
          }
       });
       $("#dashboard-loading").hide();
    }
    if (target.hasClass('activity-delete')) {
      $("#dashboard-loading").show();
      var replyloc = target.attr("id");
      var activity_id = replyloc.replace("activity-delete-", "");
      var feed_type = $('input#feed-type').val();
      e.preventDefault();
      $.ajax({
          type: 'POST',
          async: false,
          url: '/member/delete_activity/'+activity_id,
          timeout: 2000,
          success: function() {
            reloadFeed(feed_type);
          }
       });
      $("#dashboard-loading").hide();
    }
    if (target.hasClass('activity-reply')) {
      var replyloc = target.attr("id");
      var activity_id = replyloc.replace("activity-reply-", "");
      e.preventDefault();
      $("#activity-comments-"+activity_id).toggle();
    }
    if (target.hasClass('activity-comment-submit')) {
      target.addClass("onhold");
      $("#dashboard-loading").show();
      var replyloc = target.attr("id");
      var activity_id = replyloc.replace("activity-comment-submit-", "");
      var activity_text = $('textarea#activity-comment-text-'+activity_id).val();
      var feed_type = $('input#feed-type').val();
      var dataString = 'model=4&text='+ activity_text + '&model_id='+ activity_id;
      e.preventDefault();
      $.ajax({
          type: 'POST',
          async: false,
          url: '/member/comment',
          timeout: 2000,
          data: dataString,
          success: function() {
            target.removeClass("onhold");
            reloadFeed(feed_type);
            window.setTimeout(update, 20000);
          }
       });
       $("#dashboard-loading").hide();
    }
  });

  function reloadFeed(feed_type) {
    $("#dashboard-loading").show();
    $('.feed-community').removeClass("selected");
    $(this).addClass("selected");
    $.ajax({
        type: 'POST',
        async: false,
        url: '/member/'+feed_type+'/ajax',
        timeout: 2000,
        success: function(data) {
          $("#dashboard-feed").html(data);
        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
          $("#dashboard-feed").html("There was an error loading your feed, please reload the page.");
        }
     });
     $("#dashboard-loading").hide();
  }

  function reloadComicToolbar(dataString) {
    $.post("/comic/load_comic_toolbar/ajax", dataString, function(result) {
      $('#comic-toolbar').html(result);
    });
    $(".comic-toolbar-loading").hide();
  }

  function reloadComments(dataString) {
    $("#dashboard-loading").show();
    $.post("/member/load_comments/ajax", dataString, function(result) {
      $('#comments').html(result);
    });
    $("#dashboard-loading").hide();
  }
  
  function postComment(dataString) {
      $.ajax({
          type: 'POST',
          async: false,
          url: '/member/comment',
          timeout: 20000,
          data: dataString,
          success: function(outputt) {
            reloadComments(dataString);
            window.setTimeout(update, 20000);
          },
          error: function (XMLHttpRequest, textStatus, errorThrown) {
              // deal with possible errors
            window.setTimeout(update, 20000);
          }
       });
  }
  
  function deleteComment(dataString) {
      $.ajax({
          type: 'POST',
          async: false,
          url: '/member/delete_comment',
          timeout: 2000,
          data: dataString,
          success: function(outputt) {
            reloadComments(dataString);
            window.setTimeout(update, 20000);
          },
          error: function (XMLHttpRequest, textStatus, errorThrown) {
              // deal with possible errors
            window.setTimeout(update, 20000);
          }
       });
  }

});

// Comic Pull
$(document).ready(function() { 
  $('#comic-list').click(function(e) {
    var target = $(e.target);

    if (target.hasClass('mini-pull-add-button')) {
        e.preventDefault();
        var selectedtarget = target.parent().attr("id");
        var comic_id = selectedtarget.replace("pull-comic-", "");
        var dataString = 'comic_id=' + comic_id;
        $.ajax({
            type: 'POST',
            async: false,
            url: '/comic/pull',
            timeout: 2000,
            data: dataString,
            success: function(result) {
              $('#pull-count-'+comic_id).html(result);
              $('#pull-comic-'+comic_id+' a').addClass("mini-pull-remove-button");
              $('#pull-comic-'+comic_id+' a').removeClass("mini-pull-add-button");
              $('#pull-comic-'+comic_id+' a').html("<span>-</span> Remove");
              $('#pull-comic-'+comic_id+' a').attr("title", "Remove this Comic from My Pull List");
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
              alert("There was an error processing your pull.");
            }
         });
    } else if (target.hasClass('mini-pull-remove-button')) {
        e.preventDefault();
        var selectedtarget = target.parent().attr("id");
        var comic_id = selectedtarget.replace("pull-comic-", "");
        var dataString = 'comic_id=' + comic_id;
        $.ajax({
            type: 'POST',
            async: false,
            url: '/comic/pull_remove',
            timeout: 2000,
            data: dataString,
            success: function(result) {
              $('#pull-count-'+comic_id).html(result);
              $('#pull-comic-'+comic_id+' a').addClass("mini-pull-add-button");
              $('#pull-comic-'+comic_id+' a').removeClass("mini-pull-remove-button");
              $('#pull-comic-'+comic_id+' a').html("<span>+</span> Pull Issue");
              $('#pull-comic-'+comic_id+' a').attr("title", "Add this Comic to My Pull List");
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
              alert("There was an error processing your request.");
            }
         });
      } else if (target.hasClass('mini-collection-add-button')) {
        e.preventDefault();
        var selectedtarget = target.parent().attr("id");
        var comic_id = selectedtarget.replace("collection-comic-", "");
        var dataString = 'comic_id=' + comic_id;
        $.ajax({
            type: 'POST',
            async: false,
            url: '/comic/collection_add',
            timeout: 2000,
            data: dataString,
            success: function(result) {
              $('#collection-comic-'+comic_id+' a').addClass("mini-collection-remove-button");
              $('#collection-comic-'+comic_id+' a').removeClass("mini-collection-add-button");
              $('#collection-comic-'+comic_id+' a').html("<span>-</span> Remove");
              $('#collection-comic-'+comic_id+' a').attr("title", "Remove this Comic from My Collection");
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
              alert("There was an error processing your request.");
            }
         });
      } else if (target.hasClass('mini-collection-remove-button')) {
        e.preventDefault();
        var selectedtarget = target.parent().attr("id");
        var comic_id = selectedtarget.replace("collection-comic-", "");
        var dataString = 'comic_id=' + comic_id;
        $.ajax({
            type: 'POST',
            async: false,
            url: '/comic/collection_remove',
            timeout: 2000,
            data: dataString,
            success: function(result) {
              $('#collection-comic-'+comic_id+' a').addClass("mini-collection-add-button");
              $('#collection-comic-'+comic_id+' a').removeClass("mini-collection-remove-button");
              $('#collection-comic-'+comic_id+' a').html("<span>+</span> Add");
              $('#collection-comic-'+comic_id+' a').attr("title", "Add this Comic to My Collection");
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
              alert("There was an error processing your request.");
            }
         });
      }
    });
});

// Update My Feed
$(document).ready(function() {
  $('.feed-followers').click(function(event) {
    event.preventDefault();
    $("#dashboard-loading").show();
    $(this).addClass("selected");
    $('.feed-community').removeClass("selected");
    $.ajax({
        type: 'POST',
        async: false,
        url: '/member/load_feed_followers/ajax',
        timeout: 2000,
        success: function(data) {
          $("#dashboard-feed").html(data);
        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
          $("#dashboard-feed").html("There was an error loading your feed, please reload the page.");
        }
     });
     $("#dashboard-loading").hide();
  });
});

// Update Community Feed
$(document).ready(function() {
  $('.feed-community').click(function(event) {
    event.preventDefault();
    $("#dashboard-loading").show();
    $(this).addClass("selected");
    $('.feed-followers').removeClass("selected");
    $.ajax({
        type: 'POST',
        async: false,
        url: '/member/load_feed_community/ajax',
        timeout: 2000,
        success: function(data) {
          $("#dashboard-feed").html(data);
        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
          $("#dashboard-feed").html("There was an error loading your feed, please reload the page.");
        }
     });
     $("#dashboard-loading").hide();
  });
});

// Update Status
$(function() {
  $(".status-share input").click(function() {
    var message = $("input#status-message").val();
    var dataString = 'message='+ message;
    $("input#status-message").removeClass("default");
    $("#status-message").addClass("onhold");
    $(".status-share input").addClass("onhold");

    $.ajax({
      type: "POST",
      url: "/member/add_member_update",
      data: dataString,
      success: function(outputt) {
        $("#dashboard-loading").show();
        $(".feed-community").removeClass("selected");
        $(".feed-followers").addClass("selected");
        $.ajax({
            type: 'POST',
            url: '/member/load_feed_followers/ajax',
            timeout: 2000,
            success: function(data) {
              $("#dashboard-feed").html(data);
              $("input#status-message").val('');
              $("#status-message").removeClass("onhold");
              $(".status-share input").removeClass("onhold");
              $("#dashboard-loading").hide();
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                // deal with possible errors
              window.setTimeout(update, 20000);
              $("#dashboard-loading").hide();
            }
         });
      }
     });
    return false;
  });
});
