	function listreorder(neworder, asc) {
		listorder = neworder;
		listasc = asc;
		page = 1;
		loadlist();
	}
	function nextpage() {
		if (!loadinglist) {
			page = page + 1;
			loadlist();
		}
	}
	function prevpage() {
		if (!loadinglist) {
			page = page - 1;
			loadlist();
		}
	}
	function loadpage(newpage) {
		if (!loadinglist) {
			page = parseInt(newpage);
			loadlist();
		}
	}
	function gotopage() {
		var curpage = document.getElementById("curpage");
		if (!curpage) { return; }
		if (curpage.value <= 0) {
			curpage.value = page;
			return;
		}
		if (parseInt(curpage.value) > pages) {
			curpage.value = page;
			return;
		}
		if (!loadinglist) {
			page = curpage.value;
			loadlist();
		}
	}
	
	function switch_tab(field,data) {
		$("#"+field).val(data);
		loadlist();
	}

	function searchlist() {
		page = 1;
		loadlist();
	}

	function loadlist() {
		if (!loadinglist) {
			loadinglist = true;
			var parameters = "getlist=1";
			$(".searchfield").each(function(index){
				parameters += "&" + $(this).attr('name') + "=" + $(this).val();
			});
			doAjaxPost(url, parameters + "&showsearch=1&order=" + listorder + "&asc=" + listasc + "&page=" + page, function(text) {
				var resultsDiv = $('#page_content_container').offset();
				if (resultsDiv != null) {
					window.scroll(0,resultsDiv.top-10);
				}
				$(".results").html(text);
				pages = text.split("<!--PAGECOUNT|")[1].split("-->")[0];
			}, function(jqXHR, err, errorThrown) {
				$(".results").html("Unable to fetch list: " + errorThrown);
			});
			loadinglist = false;
		}
		return false;
	}

	function checkboxStatus(target,state) {
		var checked = $(target).is(':checked');

		if (checked == state) {
			$(target).parent().parent().animate({ backgroundColor: "#ffffff"}, 400);  //White
		} else if (checked) {
			$(target).parent().parent().animate({ backgroundColor: "#def4d3"}, 400);  //Green
		} else {
			$(target).parent().parent().animate({ backgroundColor: "#f9e5e5"}, 400);  //Red
		}
	}

/* BEGIN SELECTOR FUNCTIONS */
	var selectedSelector = '';
	var selectedList = '';
	var selector;
	var selection;

	function fancyCleanup() {
		// create an array for the selected data
		var selected = new Array();
		$('#fancybox-frame').contents().find('input.selected').each(function() {
			// populate data array
			selected[$(this).attr('name')] = $(this).val();
		});

		// make sure something was actually selected
		if (selected['id'] == '') {
			return;
		}

		// prepare a JavaScript-friendly label to match the label output by the tiles
		var selectorid = selected['field'].replace(/[\[\]]/g,'');
		
		if (selected['limit'] > 0) {
			var count = $('input[name="' + selected['field'] + '"]').length;
			if (count >= selected['limit']) {
				alert('You may only make ' + selected['limit'] + ' selection(s) for this field.');
				return;
			}
		}

		// create XHTML element from data array
		if (selected['type'] == 'image') {
			// Image tile
			if (!document.getElementById(selectorid + selected['id'])) {
				var params = '?key=' + selected['imagekey'];
				params += '&id=' + selected['id'];
				params += '&field=' + selected['field'];
				doAjaxGet('admin/image/tile.php'+params,function (text) {
					$('#'+selectorid+'none').hide(); // requires matching id on the "none selected" div
					$(text).appendTo('#'+selectorid+'List'); // add display of selected value
				}, function (err) {
					// do nothing right now
				});
			}
		
		} else if (selected['type'] == 'video') {
			// Video tile
			if (!document.getElementById(selectorid + selected['id'])) {
				var params = '?key=' + selected['videokey'];
				params += '&id=' + selected['id'];
				params += '&field=' + selected['field'];
				doAjaxGet('admin/video/tile.php'+params,function (text) {
					$('#'+selectorid+'none').hide(); // requires matching id on the "none selected" div
					$(text).appendTo('#'+selectorid+'List'); // add display of selected value
				}, function (err) {
					// do nothing right now
				});
			}

		} else if (selected['type'] == 'file') {
			// File tile
			if (!document.getElementById(selectorid + selected['id'])) {
				var params = '?label=' + selected['name'];
				params += '&id=' + selected['id'];
				params += '&field=' + selected['field'];
				doAjaxGet('admin/file/tile.php'+params,function (text) {
					$('#'+selectorid+'none').hide(); // requires matching id on the "none selected" div
					$(text).appendTo('#'+selectorid+'List'); // add display of selected value
				}, function (err) {
					// do nothing right now
				});
			}

		} else if (selected['type'] == 'category') {
			// Category tile
			if (!document.getElementById(selectorid + selected['id'])) {
				var params = '?label=' + selected['fullname'];
				params += '&id=' + selected['id'];
				params += '&field=' + selected['field'];
				doAjaxGet('admin/category/tile.php'+params,function (text) {
					$('#'+selectorid+'none').hide(); // requires matching id on the "none selected" div
					$(text).appendTo('#'+selectorid+'List'); // add display of selected value
				}, function (err) {
					// do nothing right now
				});
			}

		}
	}

	function deselect(selectionname,selectionid) {
		if (selectionid >= 0) {
			$("#"+selectionname+selectionid).remove(); // remove div holding input value and display
		}
		var count = $('div.selection[id^="' + selectionname + '"]').length;
		if (count == 1) {
			$('#'+selectionname+'none').show(); // requires matching id on the "none selected" div
		}
	}

/* END SELECTOR FUNCTIONS */

