
// ---------------------------------------------------------------
// generic select list option selector

	function setGroupOption(selected_item,match_field){
							
		var itemTypeFieldPrefix = eval("/" + match_field + "/g");
		var currentFieldName;
		var currentForm;
		
		//find a form in the page with field matching match_field
		// loop forms
		for(j=0; j<document.forms.length; j++){
			currentForm = document.forms[j];
			// loop form elements
			for(i=0; i < currentForm.length; i++){
				// get element name
				currentFieldName = currentForm.elements[i].name;
				// is element Item_Type drop list?
				if(currentFieldName.match(itemTypeFieldPrefix)){
					//if item type not already specified, set to selected_item
					if(currentForm.elements[i].value == ""){
						currentForm.elements[i].options[selected_item].selected = true;
					}
				}
			}		
		}
	
	}	
	
// --------------------------------------------------------

	function showFieldValues(field_id)	{
		alert(document.getElementById(field_id).value);
	}


// --------------------------------------------------------
// generic list scroller ----------------------------------

	function scrollList(abc,targetField){
		var s, w, name = abc;
		name = name.toUpperCase();
		var x = name.length;
		if(targetField == undefined){
			targetField =  document.staffoptions.thisrecord;
		}
	
		for(i = 0; i < targetField.options.length;i++){
			s = targetField.options[i].text;
			s = s.substr(0,x);
			s = s.toUpperCase();
			w = targetField.options[i].value;
			if((s==name)&&(w!="")){
				targetField.options[i].selected = true;
				break;
			}
		}
		window.status = abc;
	}
	
	
	
// ------------------------------------------------------
// Quickset form 
	
	function addListItem(list_id,item_id,item_label){
		if(window.opener.document.getElementById(list_id)){
			var listObject = window.opener.document.getElementById(list_id);
			var listObjectItem = window.opener.document.createElement("option");
			//var listLabel = document.getElementById(item_label).innerText;
			//alert(workTitle);
			listObjectItem.setAttribute('value',item_id);
			listObjectItem.setAttribute('selected',true);		
			listObjectItem.appendChild(window.opener.document.createTextNode(item_label));
			listObject.appendChild(listObjectItem);
		}
	}	
	
	
	function moveSelectedField(isSelect){
		if(isSelect){
			updateLists("available_agents","selected_agents");
		}else{
			// deselect
			updateLists("selected_agents","available_agents");
		}				
	}
	
	
	function moveAllFields(isSelect){
		if(isSelect){
			// select everything
			for(i=0;i<document.quickset_form.available_agents.length;i++){
				document.quickset_form.available_agents.options[i].selected = true;
			}
			// move
			updateLists("available_agents","selected_agents");
		}else{
			// select everything
			for(i=0;i<document.quickset_form.selected_agents.length;i++){
				document.quickset_form.selected_agents.options[i].selected = true;
			}
			// move
			// deselect
			updateLists("selected_agents","available_agents");
		}				
	}
		
				
	function updateLists(f,p){
		var ff = eval("document.quickset_form." + f);
		var pp = eval("document.quickset_form." + p);
		var k = 0;
		var newItem;
		var removeThese = new Array();	
		var MAX_LIST_SIZE = 19;
									
			for(i=0;i<ff.length;i++){							
				if((ff.options[i].selected)&&(ff.options[i].value != "")){
					k++
					// add item
					newItem = new Option(ff.options[i].text,ff.options[i].value);
					pp.options[pp.options.length] = newItem;
					removeThese[k] = ff.options[i].value;
				}
				// ------------
				// size limit check
				if((document.quickset_form.selected_agents.length > MAX_LIST_SIZE)&&(p == "selected_agents")){
					alert("You have reached the maximum number of Authors permitted for Author Sets");
					break;
				}
				
				// ------------
			}
			if(removeThese.length >= 0){
				for(j=0;j<removeThese.length;j++){
					// remove item
					for(x=0;x<ff.length;x++){
						if(ff.options[x].value == removeThese[j]){
							ff.options[x] = null;
						}									
					}
				}
			}
			if( k == 0 ){
				//alert("Invalid Selection");	
			}				
	}	
	
	
	function getSelectedMenuOptions(){
		for(i=0;i<document.quickset_form.selected_agents.length;i++){
			document.quickset_form.selected_agents[i].selected = true;
		}
	}
//-----------------------------------------------------------
// Author: Ian Jones, 24-5-2006


// -----------------------------------------------------------
// generic form validator  ----------------------------------

	function checkForm(current_form,field_list){
		var fieldsToCheck = field_list.split(",")
		var formToCheck = current_form;
		var formInputType;

		if(fieldsToCheck.length > 0){		
			// loop required fields, supplied in field_list
			for(x=0;x<fieldsToCheck.length;x++){
				if(document.getElementById(fieldsToCheck[x])){
					if(document.getElementById(fieldsToCheck[x]).value == ""){
							alert("Please supply a value for: " + getElementTitle(document.getElementById(fieldsToCheck[x])) );
							document.getElementById(fieldsToCheck[x]).focus();
							return false;
						}					
				}

			}	
		}
	}		
	
	function validateFormElement(form_element){
		var formLabelTitle;

		if(form_element.value == ""){
			formLabelTitle = getElementTitle(form_element.name);
			if(formLabelTitle == ""){
				formLabelTitle = form_element.name;
			}
					
			alert("Input required: " + formLabelTitle.toUpperCase());
			form_element.focus();
			return false;
		}else{
			return true;
		}
	}	
	
	function getElementTitle(field_name){
		var fieldLabelName = "";
		
		if(field_name){
			if(field_name.title){
				fieldLabelName = field_name.title;
			}else{
				fieldLabelName.name;
			}
		}
		return fieldLabelName;
	}
	

// ----------------------------------
// Work form checker

//	function setProcessFormEvents(){
//		document.getElementById("process-form").onsubmit = checkWorkForm;
//	}

	function checkProcessForm(){
		var requiredFields;
		var processForm;
		
		processForm = document.getElementById("process-form");
		
		if(document.getElementById("process_form_required_fields")){
			requiredFields = document.getElementById("process_form_required_fields").value;
		}
		
		// work form
		if(document.getElementById("process_form_wi_d")){
			if(document.getElementById("wi_d")){
				if(document.getElementById("wi_d").value == ""){
					alert("You have not specified a work to EDIT.\nSelect a work to edit before changing the record details.");
					document.getElementById("wi_d").focus();
					return false;
				}
			}
			if(
			document.getElementById("Fld_Work_Author").value == "" &&
			document.getElementById("Fld_Author_Rel").value == "" &&
			document.getElementById("Fld_Work_Rel").value == "")
			{
				alert("You must provide a value for at least one of the following:\nWork author\nAbout this author\nAbout this work");
				return false;
			}		
			if(document.getElementById("wfi_d").value == ""){
				alert("You must specify a Work Form");
				document.getElementById("wfi_d").focus();
				return false;
			}
			var publicationYear = document.getElementById("wpy").value;
			if(!validYear(publicationYear)){
				alert("You must supply valid a Publication Year");
				document.getElementById("wpy").focus();
				return false;
			}
			if(
			(
			document.getElementById("wfi_d").value == "6" ||
			document.getElementById("wfi_d").value == "7" ||
			document.getElementById("wfi_d").value == "24" ||
			document.getElementById("wfi_d").value == "25" ||
			document.getElementById("wfi_d").value == "29" ||
			document.getElementById("wfi_d").value == "31" ||
			document.getElementById("wfi_d").value == "38") &&
			(document.getElementById("wt").value == "")	
			){
				alert("Novel, Novella, Drama, Motion Picture and Biography work types require a Title");
				document.getElementById("wt").focus();
				return false;				
			}
		}else{
			// generic form checker	
			return checkForm(processForm,requiredFields);
		}
										
	}			

	function validYear(string_test){
		var isValidYear = true;
		if(string_test.length != 4){
			isValidYear = false;
		}else{
			var yearChars = string_test.split("");
			for(x=0;x<yearChars.length;x++){
				if(isNaN(yearChars[x])){
					isValidYear = false;
					break;
				}
			}
		}
		return isValidYear;
	}
	
	
	
	function processAdminUserForm(check_field_id){
		if(document.getElementById(check_field_id).value == "delete"){
			return confirm("Are you sure you want to Delete this User?")		
		}		
	}
