<!--

var myimages = new Array();
var checkTableUbdStor = new Array(); // upper bound on number of checks allowed
var checkTableRowStor = new Array();
var radioTableRowStor = new Array();
var defaultRowColor = "";
var hoverTimer;

function preload() {
	var y=myimages.length;
	for (x=0; x<preload.arguments.length; x++){
		myimages[x+y] = new Image();
		myimages[x+y].src = preload.arguments[x];
	}
}

function addCheckTableUbd(elname,ubd) {
	checkTableUbdStor[elname]=ubd;
}

function highlightCheckTableRow(elname,elvalue,highlighterName) { //color) {
	var trid = elname + "_" + elvalue;
	var trel = document.getElementById(trid);
	var cbs = document.forms[0].elements[elname];
	for (i=0; i<cbs.length; i++) {
		if (cbs[i].value==elvalue) {
			var cbtarget = cbs[i];
			break;
		}
	}
	
	if (cbtarget.checked) {	
		if (checkTableRowStor[elname] != undefined) { // previous entries
			var ctarray = checkTableRowStor[elname];
			if (checkTableUbdStor[elname] != undefined) { // upper bound on selection count
				var ubd = checkTableUbdStor[elname];
				if (ctarray.length+1>ubd) {
					var old_elvalue = ctarray.shift();
					for (i=0; i<cbs.length; i++) {
						if (cbs[i].value==old_elvalue) {
							cbs[i].checked=false;
							break;
						}
					}
					var old_trid = elname + "_" + old_elvalue;
					var old_trel = document.getElementById(old_trid);
					old_trel.className="";
					//old_trel.style.backgroundColor=defaultRowColor;
				}	
			}
			ctarray.push(elvalue);
		} else { // first entry
			checkTableRowStor[elname]=[elvalue];
		}
		trel.className=highlighterName;
		//trel.style.backgroundColor=color;
	} else {
		if (checkTableRowStor[elname] != undefined) { // remove from row storage
			var ctarray = checkTableRowStor[elname];
			for (i=0; i<ctarray.length; i++) {
				if (ctarray[i]==elvalue) {
					ctarray.splice(i,1); // updates checkTableRowStor by reference
					break;
				}
			}
		}
		trel.className="";
		//trel.style.backgroundColor=defaultRowColor;
	}
}

function highlightRadioTableRow(elname,elvalue,highlighterName) { //color) {
	if (radioTableRowStor[elname] != undefined) {
		var tridstor = elname+"_"+radioTableRowStor[elname];
		var trelstor = document.getElementById(tridstor);
		trelstor.className="";
		//trelstor.style.backgroundColor=defaultRowColor;
	}
	
	var trid = elname+"_"+elvalue;
	var trel = document.getElementById(trid);

	trel.className=highlighterName;
	//trel.style.backgroundColor=color;
	//alert(trel.id+":"+trel.className+"="+trel.style.backgroundColor);
	
	radioTableRowStor[elname]=elvalue;
}

function getRegEx(regExId) {
	var re;
	switch (regExId) {
		case "alpha_numeric_space":
			re=/[^a-zA-Z0-9 ]/g;
			break;
		case "alpha_numeric_extended1":
			re=/[^a-zA-Z0-9 ,.'"#&\-\/]/g;
			break;
		case "alpha_numeric_extended2":
			re=/[^a-zA-Z0-9 ,.#&\-\/]/g;
			break;
		case "alpha_numeric_extended3":
			re=/[^a-zA-Z0-9 ,.'#&\-\/]/g;
			break;
		case "alpha_numeric_extended4":
			re=/[^a-zA-Z0-9 .&\-\/]/g;
			break;
		case "alpha_extended1":
			re=/[^a-zA-Z ,.'\-]/g;
			break;
		case "iaff_numeric":
			re=/[^IiFf0-9\-]/g;
			break;
		case "numeric":
			re=/[^0-9]/g;
			break;
		case "numeric_hyphen":
			re=/[^0-9\-]/g;
			break;
		case "numeric_hyphen_comma_apostrophe":
			re=/[^0-9,'\-]/g;
			break;
		default:
			re=/[^a-zA-Z0-9 ]/g;
			break;
	}
	return re;
}

function validateTextElement(el,regExId) {
	var regex=getRegEx(regExId);
	var badchars=el.value.match(regex);
	if (badchars!=undefined) {
		if (badchars.length>0) {
			var s=(badchars.length>1) ? "s" : "";
			var str="";
			for (x in badchars) {
				if (x!="input" && x!="index" && x!="lastIndex") {
					str+=badchars[x];
				}
			}
			alert("Your entry \""+el.value+"\" contains the invalid character"+s+" \""+str+"\"");
		}
	}
}

function clearXorGroup(frm,ar) {
	for (x in ar) {
		var el=frm[ar[x]];
		switch(el.type) {
			case "text":
				el.value="";
				break;
			case "select-one":
				el.value="null";
				break;
			default:
				alert(el.type);
		}
	}
}

function getElementsByClassName(className) {
	var hasClassName = new RegExp("(?:^|\\s)" + className + "(?:$|\\s)");
	var allElements = document.getElementsByTagName("*");
	var results = [];

	var element;
	for (var i = 0; (element = allElements[i]) != null; i++) {
		var elementClass = element.className;
		if (elementClass && elementClass.indexOf(className) != -1 && hasClassName.test(elementClass))
			results.push(element);
	}

	return results;
}

function showThumbnailSpan(elem) {
	var children = elem.childNodes;
	//alert(elem.className+" "+elem.tagName+" "+children.length);
	
	for (i=0; i<children.length; i++) {
		//alert(children[i].nodeName+" "+children[i].nodeType);
		if (children[i].nodeName=="SPAN") {
			children[i].style.visibility="visible";
		}
	}
}

function hideThumbnailSpan(elem) {
	var children = elem.childNodes;
	for (i=0; i<children.length; i++) {
		if (children[i].nodeName=="SPAN") {
			children[i].style.visibility="hidden";
		}
	}
}

-->