/*
// setup fieldchecks seperately in the page describing the form thusly
var	fieldchecks = new Array();
fieldchecks['fieldname'] = "WithoutContent";
fieldchecks[''] = "NoneWithContent";
fieldchecks[''] = "WithoutCheck";
fieldchecks[''] = "NoneWithCheck";
fieldchecks[''] = "WithoutSelectionValue";
fieldchecks[''] = "isEmail";
fieldchecks[''] = "";
*/

function shift_form_vals(formname){
	if (document.forms[0].thecheck.checked==1) {
		for (var idx in fieldchecks) {
			if (! idx.indexOf('s_') == 0) { /*skip the s_field_name elements*/
				ff = 's_'+idx;
				document.forms[formname].eval(ff).value = document.forms[formname].eval(idx).value;
			}
		}
	} else	if (document.forms[0].thecheck.checked == 0) {
		for (var idx in fieldchecks) {
			if (! idx.indexOf('s_') == 0) { /*skip the s_field_name elements*/
				ff = 's_'+idx;
				document.forms[0].eval(ff).value = "";
			}
		}
	}
	return(true);
}
/*
//
//       1. WithoutContent() -- check if the text, textarea, password, 
//              or file fields has no content.
//       2. NoneWithContent() -- check if none of the set of text, 
//              textarea, password, or file fields have content. 
//              (Set: More than one with the same field name.)
//
//       3. NoneWithCheck() -- check if none of the set of radio buttons 
//              or checkboxes are checked. (Set: More than one with the 
//              same field name.)
//       4. WithoutCheck() -- check if the single radio button or checkbox 
//              is unchecked.
//
//       5. WithoutSelectionValue() -- check if selected drop-down list or 
//              select box entries have no value.
//
*/
var fieldmessages = {
	WithoutContent : "Please enter required information.",
	NoneWithContent : "Fill in at least 1",
	WithoutCheck : "Check in box required.",
	NoneWithCheck : "Please check at least one box.",
	WithoutSelectionValue : "Please select at least one item.",
	isEmail : "Email invalid as entered"
}
// Put field checks below this point.
var labs = document.getElementsByTagName("label");
function CheckRequiredFields(subid, formid, divout) {
	subel = document.getElementById(subid);
	subval = subel.value;
	subel.value = "Checking Values...";
	document.getElementById(divout).innerHTML = '<fieldset><legend>Process Information:</legend><h3>We are checking your form values...</h3></fieldset>';
	if (! fieldchecks) {
		alert("There are no fieldchecks elements defined");
		return false;
	}
	var ems = new String();
	for (var idx in fieldchecks) {
		if (fieldchecks[idx] > " ") { /*function name assigned so is to be validated in some way*/
			if (document.forms[formid].eval(idx).options) {
				if (eval(fieldchecks[idx])(document.forms[formid].eval(idx).options)) {
					idxobj = document.getElementById(document.forms[formid].eval(idx).id);
					ems += addtoems(idxobj, idx);
				}
			} else if (eval(fieldchecks[idx])(document.forms[formid].eval(idx).value)) { /*true on invalid*/
				idxobj = document.getElementById(document.forms[formid].eval(idx).id);
				ems += addtoems(idxobj, idx);
			}
		}
	}
	if (ems.length > 2) {
		document.getElementById(divout).innerHTML = '<fieldset><legend>Errors in Form:</legend>'+ems+'</fieldset>';
		subel.value = 'Check Errors!';
		return false;
	} else {
		document.getElementById(divout).innerHTML = '<fieldset><legend>Process Information:</legend><h5 class="acap_success">All values checked ok.</h5</fieldset>';
		subel.value = subval+' Continuing...';
		return true;
	}
} // end of function CheckRequiredFields()

function addtoems(idxobj, idx) {
	var labmatch = false;
	for(var i = 0; i < labs.length; i++) {
		if (labs[i].htmlFor == idxobj.id) {
			labmatch = i;
		}
	}
	if (labmatch) {
		return '<h5 class="acap_serious">'+labs[labmatch].innerHTML+' '+fieldmessages[fieldchecks[idx]]+'</h5>';
	} else {
		return '<h5 class="acap_serious">'+idx+' :: '+fieldmessages[fieldchecks[idx]]+'</h5>';
	}
}

function WithoutContent(ss) {
	if(ss.length > 0) { return false; }
	return true;
}

function NoneWithContent(ss) {
	for(var i = 0; i < ss.length; i++) {
		if(ss[i].value.length > 0) { return false; }
	}
	return true;
}

function NoneWithCheck(ss) {
	for(var i = 0; i < ss.length; i++) {
		if(ss[i].checked) { return false; }
	}
	return true;
}

function WithoutCheck(ss) {
	if(ss.checked) { return false; }
	return true;
}

function WithoutSelectionValue(ss) {
	for(var i = 0; i < ss.length; i++) {
		if (ss[i].selected) {
			if (ss[i].value.length && ss[i].value != 0) {
				return false;
			}
		}
	}
	return true;
}

function isEmail(ss) {
	return WithoutContent(ss);
}
function checkCheckBoxes(subid, boxids) {
	subval = subid.value;
	subid.value = "Please wait...";
	for (i=0; i<boxids.length; i++) {
		cbx = document.getElementById(boxids[i]);
		if (! cbx.checked) {
			alert('Please check the '+cbx.title+' to continue.');
			subid.value = subval;
			return false;
		}
	}
	return true;
}

