function jsCancel() {
	if (confirm("Are you sure you want to cancel editing?")) {
		window.location.href = "admin.asp";
	}
	return;
}

function jsCancelOrder() {
	if (confirm("Cancel ordering?")) {
		window.location.href = "default.asp?DoAction=Calendar&View=Admin&Change=Categories";
	}
	return;
}

function jsSaveOrder() {
	var selectField = document.forms.frmCatOrder.selManual;
	for (var j = 0; j < selectField.options.length; j++) {
		selectField.options[j].selected = true;
	}
	document.forms.frmCatOrder.submit();
	return;
}

function jsClearForm() {
	//
	// Called from WCalAddNewEventForm to clear fields. Moved here to make it more readable.
	//

	document.forms.AddNewEvent.RecurentVal.selectedIndex = 0;
	document.forms.AddNewEvent.PrevPlace.selectedIndex = 0;
	document.forms.AddNewEvent.BodyText.value = "";
	document.forms.AddNewEvent.EventName.value = "";
	//document.forms.AddNewEvent.wcal_category.value = "";
	document.forms.AddNewEvent.Place.value = "";
	document.forms.AddNewEvent.DATETO.value = "";
	document.forms.AddNewEvent.DATEFROM.value = "";
	document.forms.AddNewEvent.ContactEmailDesc.value = "";
	document.forms.AddNewEvent.Email.value = "";
}

function jsDeleteUser(uid) {
	if (confirm("Are you sure you want to delete this user?")) {
		window.location.href = "default.asp?DoAction=User&Change=DeleteSelected&NewsIDUser=" + uid;
	}
	return;
}

function jsDeleteCategory(cid) {
	if (confirm("Are you sure you want to delete this category?")) {
		window.location.href = "default.asp?DoAction=Calendar&View=Admin&Change=CategoryDelete&IDCat=" + cid;
	}
	return;
}

function jsDeleteEvent(eid) {
	if (confirm("Are you sure you want to delete this event?")) {
		window.location.href = "default.asp?DoAction=Calendar&View=AdminExe&Change=DeleteEvent&IDEvent=" + eid;
	}
	return;
}

function fxnAddOrderableField(txtFieldName) {
	var txtFieldALL = txtFieldName + "_allavailable";
	var txtFieldSEL = txtFieldName + "_selectedrecords";

	var lengthALL = document.AddNewEvent.elements[txtFieldALL].length;
	var lengthSEL = document.AddNewEvent.elements[txtFieldSEL].length;
	var optionALL;
	var blnADD;
				
	// loop through all elements in the left side, check if any are selected
	for (var i=0; i < lengthALL; i++) {
		optionALL = document.AddNewEvent.elements[txtFieldALL].options[i];
		if (optionALL.selected) {
			blnADD = true;
			// loop through already selected elements and make sure the item
			// we are about to add isn't already in the selected list.
			for (var j=0; j < lengthSEL; j++) {
				if (document.AddNewEvent.elements[txtFieldSEL].options[j].value == optionALL.value) {
					blnADD = false;
					break;
				}
			}	// for j
			if (blnADD) {
				var newElem = document.createElement("OPTION");
				newElem.text = optionALL.text;
				newElem.value = optionALL.value;
				document.AddNewEvent.elements[txtFieldSEL].options.add(newElem);
				document.AddNewEvent.elements[txtFieldALL].options.remove(i);
				lengthALL--;
				i--;
			}	// if blnADD
		}	// if optionALL.selected
	}	// for i
}

function fxnRemoveOrderableField(txtFieldName) {
	var txtFieldSEL = txtFieldName + "_selectedrecords";
	var txtFieldALL = txtFieldName + "_allavailable";

	var lengthSEL = document.AddNewEvent.elements[txtFieldSEL].length;

	// loop through all elements on right side, remove any that are selected
	for (var i=0; i < lengthSEL; i++) {
		if (document.AddNewEvent.elements[txtFieldSEL].options[i].selected) {
			//
			// Add back to the other side
			//
			var newElem = document.createElement("OPTION");
			newElem.text = document.AddNewEvent.elements[txtFieldSEL].options[i].text;
			newElem.value = document.AddNewEvent.elements[txtFieldSEL].options[i].value;
			document.AddNewEvent.elements[txtFieldALL].options.add(newElem);
			//
			document.AddNewEvent.elements[txtFieldSEL].options.remove(i);
			lengthSEL--;	// the length changes when we remove an element
			i--;	// the index changes when we remove one so we don't want to increment the counter
		}
	}
}

function fMoveBottom() {
	var selectedRecords = new Array();
	var nonSelectedRecords = new Array();
	var selectField = document.forms.frmCatOrder.elements.selManual;
	var arrOptions = selectField.options;
	var foundOneSelected = false;
	for (var i = 0; i < arrOptions.length; i++) {
		if (arrOptions[i].selected) {
			selectedRecords[selectedRecords.length] = new Array(arrOptions[i].text, arrOptions[i].value);
			foundOneSelected = true;
		} else {
			nonSelectedRecords[nonSelectedRecords.length] = new Array(arrOptions[i].text, arrOptions[i].value);
		}
	}
	if (foundOneSelected) {
		blnChanged = true;
		selectField.options.length = 0;
		for (var i = 0; i < nonSelectedRecords.length; i++) {
			selectField.options[selectField.options.length] = new Option(nonSelectedRecords[i][0], nonSelectedRecords[i][1]);
		}
		for (var i = 0; i < selectedRecords.length; i++) {
			selectField.options[selectField.options.length] = new Option(selectedRecords[i][0], selectedRecords[i][1], false, true);
		}
	} else {
		alert('Please select an item to move.');
	}
}

function fMoveDown() {
	var selectedRecords = new Array();
	var preRecords = new Array();
	var postRecords = new Array();	
	var selectField = document.forms.frmCatOrder.elements.selManual;
	var arrOptions = selectField.options;
	var successorPosition = -1;
	var foundOneSelected = false;
	for (var i = 0; i < arrOptions.length; i++) {
		if (arrOptions[i].selected) {
			selectedRecords[selectedRecords.length] = new Array(arrOptions[i].text, arrOptions[i].value);
			successorPosition = i+1; // overwrites to last value
			foundOneSelected = true;
		}
	}
	for (var i = 0; i < arrOptions.length; i++) {
		if (i < successorPosition+1 && !arrOptions[i].selected) {
			preRecords[preRecords.length] = new Array(arrOptions[i].text, arrOptions[i].value);
		}
		else if (!arrOptions[i].selected) {
			postRecords[postRecords.length] = new Array(arrOptions[i].text, arrOptions[i].value);
		}
	}
	populateSelect(preRecords, selectedRecords, postRecords);
	if (!foundOneSelected) {
		alert('Please select an item to move.');
	} else {
		blnChanged = true;
	}
}

function fMoveUp() {
	var selectedRecords = new Array();
	var preRecords = new Array();
	var postRecords = new Array();	
	var selectField = document.forms.frmCatOrder.elements.selManual;
	var arrOptions = selectField.options;
	var predecessorPosition = selectField.selectedIndex - 1;
	var foundOneSelected = false;
	for (var i = 0; i < arrOptions.length; i++) {
		if (arrOptions[i].selected) {
			selectedRecords[selectedRecords.length] = new Array(arrOptions[i].text, arrOptions[i].value);
			foundOneSelected = true;
		}
		else if (i < predecessorPosition) {
			preRecords[preRecords.length] = new Array(arrOptions[i].text, arrOptions[i].value);
		}
		else {
			postRecords[postRecords.length] = new Array(arrOptions[i].text, arrOptions[i].value);
		}
	}	
	populateSelect(preRecords, selectedRecords, postRecords);
	if (!foundOneSelected) {
		alert('Please select an item to move.');
	} else {
		blnChanged = true;
	}
}

function fMoveTop() {
	var selectedRecords = new Array();
	var nonSelectedRecords = new Array();
	var selectField = document.forms.frmCatOrder.elements.selManual;
	var arrOptions = selectField.options;
	var foundOneSelected = false;
	for (var i = 0; i < arrOptions.length; i++) {
		if (arrOptions[i].selected) {
			selectedRecords[selectedRecords.length] = new Array(arrOptions[i].text, arrOptions[i].value);
			foundOneSelected = true;
		} else {
			nonSelectedRecords[nonSelectedRecords.length] = new Array(arrOptions[i].text, arrOptions[i].value);
		}
	}
	if (foundOneSelected) {
		blnChanged = true;
		selectField.options.length = 0;
		for (var i = 0; i < selectedRecords.length; i++) {
			selectField.options[selectField.options.length] = new Option(selectedRecords[i][0], selectedRecords[i][1], false, true);
		}
		for (var i = 0; i < nonSelectedRecords.length; i++) {
			selectField.options[selectField.options.length] = new Option(nonSelectedRecords[i][0], nonSelectedRecords[i][1]);
		}
	} else {
		alert('Please select an item to move.');
	}
}

function populateSelect(preRecords, selectedRecords, postRecords) {
	var selectField = document.forms.frmCatOrder.elements.selManual;
	selectField.options.length = 0;
	for (var i = 0; i < preRecords.length; i++) {
		selectField.options[selectField.options.length] = new Option(preRecords[i][0], preRecords[i][1]);
	}
	for (var i = 0; i < selectedRecords.length; i++) {
		selectField.options[selectField.options.length] = new Option(selectedRecords[i][0], selectedRecords[i][1], false, true);
	}
	for (var i = 0; i < postRecords.length; i++) {
		selectField.options[selectField.options.length] = new Option(postRecords[i][0], postRecords[i][1]);
	}	
}

