$(document).ready(
	function() {
		if (true || navigator.userAgent.indexOf("MSIE 7") == -1) {
			addToPulldown($("#register"));
			addToPulldown($("#log-in"));
			addToPulldown($("#recover-password"));
			addToPulldown($("#modify_theme"));
			
			if ($("meta[name=authenticated]").attr("content") == "true") {
				$("#auth-pulldown-menu-item").html("<span><a class='arrow arrow-up' href='/log-out'>Log Out</a></span>");
			} else {
				//$("#auth-pulldown-menu-item").html("<span><a class='arrow arrow-up' href='#login'>Login</a><span style='margin-left: 0; padding: 5px 0 0 0; color: #fff; background: none'>/</span><a class='register' href='#register'>Register</a></span>");
			}
			
			$("a[href$=#login]").live("click",
				function(event) {
					event.preventDefault();
					$(this).toggleClass('arrow-up');
					$(this).toggleClass('arrow-down');
					
					url = $(this).attr('href');
					url = url.substr(0, url.length - '#login'.length)
					
					if(url != '') {
						if(url.substr(0, '?next='.length) == '?next=') {
							url = url.substr('?next='.length)
							$('#log-in input[name=url]').val(url);
						}
					}
					
					$(this).attr("href", "#login-hide");
					$("a[href=#register-hide]").attr("href", "#register");
					openPulldown($("#log-in"));
					
					$("ul#tabs li.pull-down span span a.arrow").addClass("arrow_down").removeClass("arrow");
				}
			);
			
			$("a[href=#login-hide]").live("click",
				function(event) {
					event.preventDefault();
					$(this).attr("href", "#login");
					$(this).toggleClass('arrow-up');
					$(this).toggleClass('arrow-down');
					$("a[href=#register-hide]").attr("href", "#register");
					closePulldown();
					$("ul#tabs li.pull-down span span a.arrow_down").addClass("arrow").removeClass("arrow_down");
				}
			);
			
			$("a[href=#register]").live("click",
				function(event) {
					event.preventDefault();
					$(this).attr("href", "#register-hide");
					$(this).parent().find("a[href$=#login]").toggleClass('arrow-up');
					$(this).parent().find("a[href$=#login]").toggleClass('arrow-down');
					$("a[href=#login-hide]").attr("href", "#login");
					openPulldown($("#register"));
					$("ul#tabs li.pull-down span span a.arrow").addClass("arrow_down").removeClass("arrow");
				}
			);
			
			$("a[href=#recover-password]").live("click",
				function(event) {
					event.preventDefault();
					$(this).attr("href", "#register-hide");
					$(this).parent().find("a[href$=#login]").toggleClass('arrow-up');
					$(this).parent().find("a[href$=#login]").toggleClass('arrow-down');
					$("a[href=#login-hide]").attr("href", "#login");
					openPulldown($("#recover-password"));
					$("ul#tabs li.pull-down span span a.arrow").addClass("arrow_down").removeClass("arrow");
				}
			);
			
			$("a[href=#register-hide]").live("click",
				function(event) {
					event.preventDefault();
					$(this).attr("href", "#register");
					$(this).parent().find("a[href$=#login]").toggleClass('arrow-up');
					$(this).parent().find("a[href$=#login]").toggleClass('arrow-down');
					$("a[href=#login-hide]").attr("href", "#login");
					closePulldown();
					$("ul#tabs li.pull-down span span a.arrow_down").addClass("arrow").removeClass("arrow_down");
				}
			);
			
			$("#log-in a[href=#register]").click(
				function(event) {
					event.preventDefault();
					$(this).parent().find("a[href$=#login]").toggleClass('arrow-up');
					$(this).parent().find("a[href$=#login]").toggleClass('arrow-down');
					switchPulldownFocus("normal", $("#register"));
					return false;
				}
			);
			
			$("a[href=#modify_theme]").live("click",
				function(event) {
					event.preventDefault();
					$(this).attr("href", "#modify_theme-hide");
					$(this).toggleClass('arrow-up');
					$(this).toggleClass('arrow-down');
					openPulldown($("#modify_theme"));
					$("ul#tabs li.pull-down span span a.arrow").addClass("arrow_down").removeClass("arrow");
				}
			);
			
			$("a[href=#modify_theme-hide]").live("click",
				function(event) {
					event.preventDefault();
					$(this).attr("href", "#modify_theme");
					$(this).toggleClass('arrow-up');
					$(this).toggleClass('arrow-down');
					closePulldown();
					$("ul#tabs li.pull-down span span a.arrow_down").addClass("arrow").removeClass("arrow_down");
				}
			);
		}
		
		$("#log-in form").submit(
			function(event) {
				var errorFound = false;
				function loginError(errorMessage, field) {
					var error = $("<p class='error'>" + errorMessage + "</p>");
					error.hide();
					$("#log-in .required").removeClass("missing");
					
					if ($("#log-in .error").length > 0) {
						$("#log-in .error").fadeOut(
							function() {
								$("#log-in .error").remove();
								$("#log-in h2 + p").after(error);
								error.fadeIn();
								
								if (!field) return;
								$(field).parents(".required").addClass("missing");
								field.focus();
							}
						);
					} else {
						$("#log-in h2 + p").after(error);
						error.fadeIn();
						if (!field) return;
						$(field).parents(".required").addClass("missing");
						field.focus();
					}
				}
				
				$("#log-in .required input, #log-in .required select").each(
					function() {
						if (errorFound) return;
						if ($(this).val()) return;
						
						errorFound = true;
						var fieldName = $(this).parents(".required").find("label").text();
						fieldName = fieldName.substring(0, fieldName.length-2);
						loginError("Please enter your username and password.", this);
						event.preventDefault();
						return false;
					}
				);
				
				return true;
			}
		);
		
		$("#register form").submit(
			function(event) {
				var errorFound = false;
				
				function registerError(errorMessage, field) {
					var error = $("<p class='error'>" + errorMessage + "</p>");
					error.hide();
					
					$("#register .required").removeClass("missing");
					if ($("#register .error").length > 0) {
						$("#register .error").fadeOut(
							function() {
								$("#register .error").remove();
								$("#register h2 + p").after(error);
								error.fadeIn();
								if (!field) return;
								$(field).parents(".required").addClass("missing");
								field.focus();
							}
						);
					} else {
						$("#register h2 + p").after(error);
						error.fadeIn();
						
						if (!field) return;
						$(field).parents(".required").addClass("missing");
						field.focus();
					}
				}
				
				$("#register .required input, #register .required select").each(
					function() {
						if (errorFound) return;
						if ($(this).val()) return;
						
						errorFound = true;
						var fieldName = $(this).parents(".required").find("label").text();
						fieldName = fieldName.substring(0, fieldName.length-2);
						registerError("There was a problem with your registration.  Please ensure you have filled in the " + fieldName + " field correctly.", this);
						event.preventDefault();
						return false;
					}
				);
				
				var passwords = $("#register input[type=password]");
				if (passwords[0].value != passwords[1].value) {
					registerError("There was a problem with your registration.  Please make sure the passwords you have entered match.");
					event.preventDefault();
					return false;
				}
				
				if (!$("#register-privacy")[0].checked) {
					registerError("Please read the privacy policy before continuing.");
					event.preventDefault();
					return false;
				}
				
				return true;
			}
		);
	}
);