function validEntry () {
	var valid = $('username').present() && $('password').present();
	if (valid) {
		return true;
	} else {
		$('login_msg').update("Please enter a Username and Password.");
		new Effect.Highlight('login_msg', { duration: .7 });
		return false;
	}
}
function validPassword () {
	var valid = $('username').present() && $('password').present() && $('newPassword').present() && $('repeatPassword').present();
	if (valid) {
		if($F('newPassword') == $F('repeatPassword')) {
			return true;
		} else {
			$('pw_msg').update("New Password and Repeat Password must match.");
			new Effect.Highlight('pw_msg', { duration: .7 });
			return false;
		}
	} else {
		$('pw_msg').update("Please fill in all fields.");
		new Effect.Highlight('pw_msg', { duration: .7 });
		return false;
	}
}
function passwordHint() {
	if(!$('username').present()) {
		$('hintbox').update("Please enter a username.");
		new Effect.Highlight('hintbox', { duration: .7 });
	} else {
		new Ajax.Request('password_hint.php', { method: 'post',
			parameters: { user: $F('username') },
			onSuccess: function(transport) {
				$('hintbox').update(transport.responseText);
				new Effect.Highlight('hintbox', { duration: .7 });
			}
		});
	}
	return false;
}
function changeSelect() {
	var selectedCategory = $('category_list').options[$('category_list').selectedIndex].text;
	$('rename_field').value = selectedCategory;
	$('deleteCategoryName').innerHTML = selectedCategory;
}
function renameCategory() {
	new Ajax.Request('rename_category.php', { method: 'post', asynchronous: true,
		parameters: Form.serialize('edit_category'),
		onSuccess: function(transport) {
			alert(transport.responseText);
			updateCategoryList();
		}
	});
}
function deleteCategory() {
	var confirmDelete = confirm("Delete category " + $('category_list').options[$('category_list').selectedIndex].text + "?");
	if (confirmDelete) {
		new Ajax.Request('delete_category.php', { method: 'post', asynchronous: true,
			parameters: { cat: $('category_list').value },
			onSuccess: function(transport) {
				updateCategoryList();
			}
		});
	}
}
function addButtonStatus() {
	$('add_cat').present() ? $('add_cat_button').enable() : $('add_cat_button').disable();
}
function noEnter() {
	return !(window.event && window.event.keyCode == 13);
}
function addCategory() {
	new Ajax.Request('add_category.php', { method: 'post', asynchronous:true,
		parameters: Form.serialize('add_category_form'),
		onSuccess: function(transport) {
			$('added_category').innerHTML = transport.responseText;
			new Effect.Highlight('added_category', { duration: 1 });
			$('add_cat').clear();
			$('add_cat_button').disable();
			updateCategoryList();
		}
	});
}
function addCatUpload(vid) {
	new Ajax.Request('add_cat_upload.php', { method: 'post', asynchronous: true,
		parameters: { add_cat: $F('add_cat'), visual: vid },
		onSuccess: function(transport) {
			if ($('cat_msg') != null) {
				$('cat_msg').remove();
			}
			Element.insert('cat_list', transport.responseText);
		}
	})
}
function updateCategoryList() {
	new Ajax.Request('update_category_list.php', { method: 'post', asynchronous: true,
		onSuccess: function(transport) {
			$('category_list').update(transport.responseText);
			changeSelect();
		}
	});
}
function deleteVisual(id) {
	var confirmDelete = confirm("Delete this item?");
	if (confirmDelete) {
		new Ajax.Request('delete_visual.php', { method: 'post', postBody: 'visual='+id, asynchronous: true,
			onSuccess: function(transport) {
				window.location = "manage.php";
			}
		});
	}
}
function updateCat(chk,vid) {
	new Ajax.Request('update_cat.php', {
		method: 'post',
		parameters: { upcat: chk, upvis: vid },
		onSuccess: function(transport) {
			new Effect.Highlight('c'+chk, { duration: .6 });
		}
	});
}
function uploadVisual() {
	if(!$('visual_name').present()) {
		alert("Please enter a name for this visual.");
		return false;
	} else {
		if(!$('choose_pdf').present()) {
			alert("Please choose a PDF to upload.");
			return false;
		} else {
			if (!$('upload').getInputs('checkbox').findAll(function(ck) { return ck.checked; }).any()) {
				var uncat = confirm("You haven't selected a category for this visual.\nDo you want it to be uncategorised?");
				if (!uncat) {
					return false;
				}
			}
		}
		$('loadingupdate').show();
		return true;
	}
}
function updateVisual() {
	if (!$('visual_name').present()) {
		alert("Please enter a name for this visual.");
		return false;
	} else {
		$('loadingupdate').show();
		return true;
	}
}
function deleteUser(userid,username) {
	var del = confirm("Delete user '" + username + "'?");
	if (del) {
		new Ajax.Request('delete_user.php', {
			method: 'post',
			postBody: 'userid='+userid,
			onSuccess: function(transport) {
				$('user_list').update(transport.responseText);
				new Effect.Highlight('user_list', { duration: .7, startcolor: '#f2f2f2', endcolor: '#E0E1E2' });
			}
		});
	}
}
function addUser() {
	var valid = $('newUsername').present() && $('newPassword').present() && $('repeatNewPassword').present();
	if (!valid) {
		$('new_user_msg').update("Please fill in all required fields.");
		new Effect.Highlight('new_user_msg', { duration: .7 });
	} else {
		if ($F('newPassword') != $F('repeatNewPassword')) {
			$('new_user_msg').update("Password and Repeat Password must match.");
			new Effect.Highlight('new_user_msg', { duration: .7, startcolor: '#f2f2f2', endcolor: '#E0E1E2' });
		} else {
			new Ajax.Request('add_user.php', {
				method: 'post',
				parameters: Form.serialize('new_user_form'),
				onSuccess: function(transport) {
					$('user_list').update(transport.responseText);
					new Effect.Highlight('user_list', { duration: .7 });
					$('new_user_msg').update("User '"+ $F('newUsername') + "' added.");
					new Effect.Highlight('new_user_msg', { duration: .7 });
					$('new_user_form').reset();
				}
			});
		}
	}
	return false;
}
function editUser(userid) {
	$('edit_form').hide();
	new Ajax.Request('edit_user.php', {
		method: 'post',
		postBody: 'user='+userid,
		onSuccess: function(transport) {
			$('edit_form').update(transport.responseText);
			Effect.BlindDown('edit_form', { duration: .5 });
		}
	});
}
function cancelEdit() {
	Effect.BlindUp('edit_form', { duration: .5 });
}
function saveUser() {
	if (!$('username').present()) {
		$('edit_user_msg').update("Please enter a username.");
		new Effect.Highlight('edit_user_msg', { duration: .7 });
	} else {
		if ($F('replacePassword') != $F('repeatReplacePassword')) {
			$('edit_user_msg').update("Password and Repeat Password must match.");
			new Effect.Highlight('edit_user_msg', { duration: .7 });
		} else {
			new Ajax.Request('save_user.php', {
				method: 'post',
				parameters: Form.serialize('edit_user_form'),
				onSuccess: function(transport) {
					$('user_list').update(transport.responseText);
					new Effect.Highlight('user_list', { duration: .7, startcolor: '#f2f2f2', endcolor: '#E0E1E2' });
					Effect.BlindUp('edit_form', { duration: .5 });
				}
			});
		}
	}
	return false;
}