/*
Plugin Name: Anti-Splog
Description: The ultimate plugin to stop and kill splogs in WPMU
Author: Aaron Edwards (Incsub)
Author URI: http://uglyrobot.com

Copyright 2010 Incsub (http://incsub.com)
*/
jQuery(document).ready(function($) {
  //single ignore
  $(".row-actions a.ust_ignore").click(function() {
    //create post data
    var data = {
  		action: 'ust_ajax',
  		url: $(this).attr("href")
  	};

  	$(this).parents("tr.blog-row").css({backgroundColor:"#9DCF8C"}).fadeOut("slow", function() {$(this).parents("tr.blog-row").remove();});

    //send ajax
  	$.post(ajaxurl, data);
  	return false;
  });

  //single unignore
  $(".row-actions a.ust_unignore").click(function() {
    //create post data
    var data = {
  		action: 'ust_ajax',
  		url: $(this).attr("href")
  	};

  	$(this).parents("tr.blog-row").css({backgroundColor:"#F9F3B5"}).fadeOut("slow", function() {$(this).parents("tr.blog-row").remove();});

    //send ajax
  	$.post(ajaxurl, data);
  	return false;
  });

  //single spam
  $(".row-actions a.ust_spam").click(function() {
    //create post data
    var data = {
  		action: 'ust_ajax',
  		url: $(this).attr("href")
  	};

  	$(this).parents("tr.blog-row").css({backgroundColor:"#FF7374"}).fadeOut("slow", function() {$(this).parents("tr.blog-row").remove();});

    //send ajax
  	$.post(ajaxurl, data);
  	return false;
  });

  //single unspam
  $(".row-actions a.ust_unspam").click(function() {
    //create post data
    var data = {
  		action: 'ust_ajax',
  		url: $(this).attr("href")
  	};

  	$(this).parents("tr.blog-row").css({backgroundColor:"#9DCF8C"}).fadeOut("slow", function() {$(this).parents("tr.blog-row").remove();});

    //send ajax
  	$.post(ajaxurl, data);
  	return false;
  });

  //ignore multiple blogs
	$("form#form-blog-list input.allblog_ignore").click(function() {
    //create post data
    var data = {
  		action: 'ust_ajax',
  		allblogs: $("form#form-blog-list").serialize(),
  		allblog_ignore: 1
  	};

    //send ajax
  	$.post(ajaxurl, data, function(response) {
  		if (response) {
        return false;
      } else {
        return true;
      }
  	});

  	$("form#form-blog-list tr.blog-row:has(input:checked)").css({backgroundColor:"#9DCF8C"}).fadeOut("slow", function() {$(this).remove();});
  	return false;
  });

  //unignore multiple blogs
	$("form#form-blog-list input.allblog_unignore").click(function() {
    //create post data
    var data = {
  		action: 'ust_ajax',
  		allblogs: $("form#form-blog-list").serialize(),
  		allblog_unignore: 1
  	};

    //send ajax
  	$.post(ajaxurl, data, function(response) {
  		if (response) {
        return false;
      } else {
        return true;
      }
  	});

  	$("form#form-blog-list tr.blog-row:has(input:checked)").css({backgroundColor:"#F9F3B5"}).fadeOut("slow", function() {$(this).remove();});
  	return false;
  });

  //spam multiple blogs
	$("form#form-blog-list input.allblog_spam").click(function() {
    //create post data
    var data = {
  		action: 'ust_ajax',
  		allblogs: $("form#form-blog-list").serialize(),
  		allblog_spam: 1
  	};

    //send ajax
  	$.post(ajaxurl, data, function(response) {
  		if (response) {
        return false;
      } else {
        return true;
      }
  	});

  	$("form#form-blog-list tr.blog-row:has(input:checked)").css({backgroundColor:"#FF7374"}).fadeOut("slow", function() {$(this).remove();});
  	return false;
  });

  //unspam multiple blogs
	$("form#form-blog-list input.allblog_notspam").click(function() {
    //create post data
    var data = {
  		action: 'ust_ajax',
  		allblogs: $("form#form-blog-list").serialize(),
  		allblog_notspam: 1
  	};

    //send ajax
  	$.post(ajaxurl, data, function(response) {
  		if (response) {
        return false;
      } else {
        return true;
      }
  	});

  	$("form#form-blog-list tr.blog-row:has(input:checked)").css({backgroundColor:"#9DCF8C"}).fadeOut("slow", function() {$(this).remove();});
  	return false;
  });

  //spam an IP
  $("a.ust_spamip").click(function() {
    //create post data
    var data = {
  		action: 'ust_ajax',
  		check_ip: $(this).attr("href")
  	};

    //preview results
  	$.post(ajaxurl, data, function(response) {
  		if (response.num) {
  		  var answer = confirm("You are about to mark "+response.num+" blog(s) as spam! There are currently "+response.numspam+" blog(s) already marked as spam for this IP ("+response.ip+").\n\nAre you sure you want to do this?");
  		  if (answer) {
          //create post data
          var data2 = {
        		action: 'ust_ajax',
        		url: data.check_ip
        	};
        	var row = "tr#bid-" + response.bid;
          $(row).css({backgroundColor:"#FF7374"}).fadeOut("slow", function() {$(this).remove();});
        	$("tr.blog-row:contains('"+response.ip+"')").css({backgroundColor:"#FF7374"}).fadeOut("slow", function() {$(this).remove();});
          //send ajax
        	$.post(ajaxurl, data2);
        }
      }
  	}, "json");
  	return false;
  });

  //spam a user's blogs
  $("a.ust_spamuser").click(function() {

    var answer = confirm("You are about to spam all blogs this user is a member of! Are you sure you want to do this?");
	  if (answer) {
      //create post data
      var data = {
    		action: 'ust_ajax',
    		url: $(this).attr("href")
    	};

    	//hide rows
      $(this).parents("tr.blog-row").css({backgroundColor:"#FF7374"}).fadeOut("slow", function() {$(this).remove();});
    	$("tr.blog-row:has('a.ust_spamuser[href=\'"+data.url+"\']')").css({backgroundColor:"#FF7374"}).fadeOut("slow", function() {$(this).remove();});
      //send ajax
    	$.post(ajaxurl, data);
  	}
  	return false;
  });

	//test regex ajax
  $("#ust-test-regex").click(function() {
		if ($("#regex").val().length < 3)
			return false;
		
		$(this).prop('disabled', true);
		$("#test-results span.description").html($("#regex").val());
		$("#test-results .inside div#results").html('');
		$("#test-results .inside p").show();
		$("#test-results").slideDown();
		
		//create post data
    var data = {
  		action: 'ust_test_regex',
  		regex: $("#regex").val(),
  		type: $("#type").val()
  	};

    //send ajax
  	$.post(ajaxurl, data, function(response) {
			if (!response.status) {
				$("#test-results").hide();
				alert(response.data);
			} else {
				$("#test-results .inside p").hide();
				$("#test-results .inside div#results").html(response.data);
			}
			$("#ust-test-regex").prop('disabled', false);
  	}, 'json');

  	return false;
  });
	$("#type").change(function() {
		if ($(this).val() == 'title') {
			$("#ust-test-regex").prop('disabled', true);
		} else {
			$("#ust-test-regex").prop('disabled', false);
		}
	});
});