/* v1.0.4 */
function fvInvalidChar(stop,obj,value,passFailID)
{
	if (fvStop) {
		return false;
	}
	var i,j;
	var notValid=false;
	var objType;
	objType=fvObjType(obj);
	if (objType=='text-array' || objType=='password-array' || objType=='textarea-array' || objType=='select-one-array' || objType=='select-multiple-array') {
		for (i=0; i<obj.length; i++) {
			if (objType=='select-multiple-array') {
				for (j=0; j<obj[i].length; j++) {
					if (obj[i][j].selected && fvCheckChars(obj[i][j].value,value)) notValid=true;
				}
			}
			else if (objType=='select-one-array') {
				if (fvCheckChars(fvObjValue(obj[i]),value)) notValid=true;
			}
			else {
				if (fvCheckChars(obj[i].value,value)) notValid=true;
			}
		}
	}
	else if (objType=='var') {
		if (fvCheckChars(obj,value)) notValid=true
	}
	else if (objType=='var-array') {
		for (i=0; i<obj.length; i++) {
			if (fvCheckChars(obj[i],value)) notValid=true
		}
	}
	else if (objType=='radio' || objType=='checkbox') {
		for (i=0; i<obj.length; i++) {
			if (obj[i].checked && fvCheckChars(obj[i].value,value)) notValid=true;
		}
	}
	else if (objType=='select-multiple') {
		for (j=0; j<obj.length; j++) {
			if (obj[j].selected && fvCheckChars(obj[j].value,value)) notValid=true;
		}
	}
	else if (objType=='select-one') {
		if (fvCheckChars(fvObjValue(obj),value)) notValid=true;
	}
	else  {
		if (fvCheckChars(obj.value,value)) notValid=true;
	}
	if (stop) fvStop=notValid;
	if (passFailID!='') fvSetPassFail(passFailID,notValid);
	return notValid;
}

function fvCheckChars(objValue,chars)
{
//Note: returns true if invalid
	var i;
	if (typeof objValue=='undefined' || typeof chars=='undefined') {
		return true;
	}
	else if (chars=='') {
		return false;
	}
	else {
		for (i=0; i<chars.length; i++) {
			if (objValue.indexOf(chars.substring(i,i+1))>=0) return true;
		}
	}
}
