jQuery.fn.activate_page = function(page) {
	$("#contense").find(".page").each(function(index) {
		$(this).fadeOut();
	});
	$(page).find("form").clear();
	$(page).find(".dialog").each(function() {
		$(this).css("display","none");
	});
	$(page).fadeIn();
	return false;
}

jQuery.fn.clear = function() {
	$(this).find("input").each(function() {
		switch ($(this).attr("type")) {
			case "checkbox":
				$(this).attr("checked", false);
				break;
			case "submit": break;
			default:
				$(this).val("");
				break;
		}
	});
}

jQuery.fn.ajax_submit = function() {
	var disabled = false;
	$(this).find("input").each(function() {
		if ($(this).attr("type") == "checkbox" && $(this).val().substr(0, 7).toLowerCase() == "disable") {
			if (!$(this).attr("checked")) {
				dialog = $(this).val().substr(8);
				if (dialog.indexOf("|") > -1) {
					dialog = dialog.substr(0, dialog.indexOf("|"));
				}
				msg = $(this).val().substr(9 + dialog.length);
				if ($(dialog).length > 0) {
					$(dialog).html(msg);
					$(dialog).show("slow");
				}
				disabled = true;
			}
		}
	});
	if (disabled) return false;

	switch ($(this).attr("name")) {
		case "cancel":
			$(this).find("input[name=type]").val("member_search");
			$(this).ajax_real_submit("srv/netbilling.php");
			break;
		case "retrieve":
			$(this).find("input[name=type]").val("member_retrieve_passwd");
			$(this).ajax_real_submit("srv/netbilling.php");
			break;
		case "support":
			var email = $(this).find("input[name=support_email]").val();
			if (email.length < 6 || email.indexOf('@') < 0) {
				$("#support_dialog").html("Invalid email.");
				$("#support_dialog").show("slow");
				return false;
			}
			if ($(this).find("input[name=support_subject]").val().length < 1) {
				$("#support_dialog").html("Please enter a subject.");
				$("#support_dialog").show("slow");
				return false;
			}
			if ($(this).find("textarea[name=support_message]").val().length < 1) {
				$("#support_dialog").html("Please enter a message.");
				$("#support_dialog").show("slow");
				return false;
			}
			
			$(this).find("input[name=type]").val("email_support");
			$(this).ajax_real_submit("srv/netbilling.php");
			break;
	}
	return false;
}

jQuery.fn.ajax_real_submit = function(src) {
	$(".modal").each(function() { $(this).css("display","block"); });
	var post_data = "";
	$(this).find("input").each(function() {
		if ($(this).attr("type") == "checkbox") {
			post_data += ",\"" + $(this).attr("name") + "\":" + $(this).attr("checked");
		} else if ($(this).attr("type") != "submit") {
			post_data += ",\"" + $(this).attr("name") + "\":\"" + $(this).val() + "\"";
		}
	});
	$(this).find("textarea").each(function() {
		post_data += ",\"" + $(this).attr("name") + "\":\"" + $(this).val() + "\"";
	});
	$.post(src, jQuery.parseJSON("{" + post_data.substr(1) + "}"), function(data) {
		data = JSON.parse(data);
		if (!data.result) {
			if ($("#contense").find("div[name=error]").length > 0) {
				$("#contense").find("div[name=error]").html(
					"<p><strong>Unknown Error</strong></p><p>" +
					data.error +
					"</p>"
					);
					$(this).activate_page("div[name=error]");
			}
		} else {
			switch(data.type) {
				case "cancel_membership":
					$(this).activate_page("div[name=cancel_stage3]");
					break;
				case "member_search":
					if (data.M_MEMBER_LOGIN) {
						if (data.HOURS_SINCE_JOINED != false || data.HOURS_SINCE_JOINED > 24) {
							$(this).activate_page("div[name=cancel_stage2]");
						} else {
							$("#cancel_dialog").html("Your transaction is still being processed. This may take up to 24 hours. Please try again later.");
							$("#cancel_dialog").show("slow");
						}
					} else {
						$("#cancel_dialog").html("Entered username, password or email is invalid. Username and password is case sensitive.");
						$("#cancel_dialog").show("slow");
					}
					break;
				case "member_retrieve_passwd":
					if (data.success) {
						$(this).activate_page("div[name=retrieve_stage2]");
					} else {
						$("#retrieve_dialog").html("Username Not Found.");
						$("#retrieve_dialog").show("slow");
					}
					break;
				case "email_support":
					$(this).activate_page("div[name=support_stage2]");
					break;
			}
		}
		$(".modal").each(function() { $(this).fadeOut(); });
	});
}

$('body').ready(function() {
	var tmp;
/*	$(".jq_link").each(function(index) {
		tmp = "div[name=" + $(this).attr("href").substr(1) + "]";
		if ($(tmp).length > 0) {
			$(this).click(function() {
				return $(this).activate_page("div[name=" + $(this).attr("href").substr(1) + "]");
			});
		}
	});
*/
	var click = function(obj) {
		form = $(this);
		do {
			form = form.parent();
		} while (form.get(0) && form.get(0).tagName != "FORM");
		return form.ajax_submit();
	}
	
	$(".jq_form").each(function(index) {
//		$(this).submit(function() { return false; });
		$(this).find("input").each(function(index) {
			if ($(this).attr("type") == "submit")
				$(this).click(click);
		});
		$(this).find("button").each(function(index) {
			$(this).click(click);
		});
		
	});
	$('input[id="support_subject"]').autosuggest(500, true, false, 'seperate');
	$("<div class=\"modal\"></div>").appendTo($("#contense"));
});

function cancel_stage2() {
	$(this).activate_page("div[name=cancel_stage2]");
}

function submit_cancel() {
	$("form[name=cancel]").find("input[name=type]").val("member_cancel");
	$("form[name=cancel]").ajax_real_submit("srv/netbilling.php");
}
