jQuery.fn.slideFadeToggle = function(speed, easing, callback) {
        return this.animate({opacity: 'toggle', height: 'toggle'}, speed, easing, callback); 
};

jQuery.fn.fadeToggle = function(speed, easing, callback) {
        return this.animate({opacity: 'toggle'}, speed, easing, callback); 
};

function userCP () {
	$("#ignorebox").click(function() {
		var ignore = $("#ignorebox");
		ignoreval = (ignore.is(":checked")) ? "1" : "0"
		var inputs = [];
		inputs.push("section=ignorealerts");
		inputs.push("ignorealerts=" + ignoreval);
		var status = $('#optionsstatus');
		
		jQuery.ajax({
			data: inputs.join('&'),
			url: "/irc/usercp/settings",
			type: "POST",
			beforeSend: function () {
				ignore.attr("disabled", "true"); 
				status.addClass('ajax-loading');
			},
			success: function (result) {
				var bgcolor = "#ff6666";
				if(result == "Successfully updated your settings.") bgcolor = "#99ff99";
				status.css("background-color", bgcolor);
				status.animate( { backgroundColor:"#fff" }, 1500 );
				status.removeClass('ajax-loading');
				status.html(result);
				ignore.removeAttr('disabled'); 
			}
		})
	});
	
	$('#nickForm').submit(function() {

		var inputs = [];
		$(':input', this).each(function() {
			inputs.push(this.name + '=' + escape(this.value));
		})
		
		var submitButton = $('#nickForm').find("input[type='submit']");
		var status = $('#formstatus');
	  

		jQuery.ajax({
			data: inputs.join('&'),
			url: this.action,
			type: "POST",
			beforeSend: function () {
				$(submitButton).attr("disabled", "true"); 
				status.html('&nbsp;');
				status.addClass('ajax-loading');
			},
			success: function (result) {
				var bgcolor = "#ff6666";
				if(result == "Sucessfully updated your IRC Nickname.") bgcolor = "#99ff99";
				status.css("background-color", bgcolor);
				status.animate( { backgroundColor:"#fff" }, 1500 );
				status.removeClass('ajax-loading');
				status.html(result);
				$(submitButton).removeAttr('disabled'); 
			}
		})

		return false;
	})
}

function adminCP () {

	jQuery.ajax({
		data: "",
		url: "/irc/admin/users",
		type: "GET",
		cache: "false",
		dataType: "script",
		success: function (result) {
			$('input[name="username"]').autocomplete(users, {
				minChars: 0,
				max: 200,
				formatItem: function(row, i, max, term) {
					status = (row.status) ? "<br><span style='font-size: 80%;'>Status: " + row.status + "</span>" : "";
					return row.name.replace(new RegExp("(" + term + ")", "gi"), "<strong>$1</strong>") + "<br><span style='font-size: 80%;'>Hostmask: " + row.info + "</span>" + status;
				},
				formatResult: function(row) {
					return row.name;
				}
			}).result(function(event, item) {
			  $('input[name="user"]').val(item.id);
			});
		}
	})

	$('[id*=adminform]').submit(function() {

		var inputs = [];
		$(':input', this).each(function() {
			inputs.push(this.name + '=' + escape(this.value));
		})
		
		var submitButton = $('#adminform').find("input[type='submit']");
		var status = $('#formstatus');	  

		jQuery.ajax({
			data: inputs.join('&'),
			url: this.action,
			type: "POST",
			beforeSend: function () {
				$(submitButton).attr("disabled", "true");
				status.css("display", "block");
				status.addClass('ajax-loading');
			},
			success: function (result) {
				var bgcolor = "#ff6666";
				if(result.indexOf("Successfully")>-1) {
					bgcolor = "#99ff99";
					if ($('#adminform').attr("name") == "warn")		warnSuccess();
					if ($('#adminform').attr("name") == "ban")		banSuccess();
				}
				status.css("background-color", bgcolor);
				status.animate( { backgroundColor:"#fff" }, 1500 );
				status.removeClass('ajax-loading');
				status.html(result);
				status.fadeOut(5000);
				$(submitButton).removeAttr('disabled'); 
			}
		})

		return false;
	})
}

function warnSuccess() {
	$.facebox.close()
	$(":input").val("");
	$("[id='submit']").val("Warn User");
	$.facebox.close()
	getWarned();
}

function banSuccess() {
	$.facebox.close()
	$(":input").val("");
	$("[id='submit']").val("Ban User");
	$("input[name='days']").val("0");
	$("input[name='hours']").val("0");
	$("input[name='minutes']").val("0");
	getBanned();
}

function getOnline() {
	jQuery.ajax({
		data: "",
		url: "/irc/users/IRC",
		type: "GET",
		success: function (result) {
			if($(result).html()!=$("#onlinelist").html()) {
				$("#onlinelist").css("display", "none");
				$("#onlinelist").html($(result).html());
				$("#onlinelist").fadeIn(1000);
			}
		}
	})
	window.setTimeout('getOnline()', 5000);
}

function getWarned() {
	jQuery.ajax({
		data: "",
		url: "/irc/admin/warns/list",
		type: "GET",
		success: function (result) {
			$("#warnlist").html($(result).html());
			$('a[class*=facebox]').facebox()
			$("#warn").css("display", "none");
			$("#warn").fadeIn(1000);
		}
	})
}

function getBanned() {
	jQuery.ajax({
		data: "",
		url: "/irc/admin/bans/list",
		type: "GET",
		success: function (result) {
			$("#banlist").html($(result).html());
			$('a[class*=facebox]').facebox();
			$("#ban").css("display", "none");
			$("#ban").fadeIn(1000);
		}
	})
}


function unban(id) {
	var status = $('#banresult');
	jQuery.ajax({
		data: "",
		url: "/irc/admin/unban/"+id,
		type: "GET",
		cache: "false",
		success: function (result) {
			var bgcolor = "#ff6666";
			if(result.indexOf("User has successfully been unbanned.")>-1) {
				getBanned();
			}
		}
	})
}

function eMsg() {
	$("#errmessage").css("background-color", "#ff6666");
	$("#errmessage").animate( { backgroundColor:"#fff" }, 1500 );
}

function showWarns(id) {
	$("#comments > *").css({display: "none"});
	$("#warns_"+id).fadeIn("slow");
	$("#navrow > *").css("font-weight","normal");
	$("#navrow > *").css("font-size","10px");
	$("#navrow_"+id).css("font-weight","bold");
	$("#navrow_"+id).css("font-size","14px");
}

function showBans(id) {
	$("#comments > *").css({display: "none"});
	$("#bans_"+id).fadeIn("slow");
	$("#navrow > *").css("font-weight","normal");
	$("#navrow > *").css("font-size","10px");
	$("#navrow_"+id).css("font-weight","bold");
	$("#navrow_"+id).css("font-size","14px");
}

function addBan() {
	jQuery.facebox(function() {
  		jQuery.facebox($("#addban").html());
	}) 
}

function updateAlerts() {
	
}

function getWindowHeight() {
	var windowHeight = 0;
	if (typeof(window.innerHeight) == 'number') {
		windowHeight = window.innerHeight;
	}
	else {
		if (document.documentElement && document.documentElement.clientHeight) {
			windowHeight = document.documentElement.clientHeight;
		}
		else {
			if (document.body && document.body.clientHeight) {
				windowHeight = document.body.clientHeight;
			}
		}
	}
	return windowHeight;
}
