Array.prototype.find = function(searchStr) {  var returnArray = false;  for (i=0; i<this.length; i++) {    if (typeof(searchStr) == 'function') {      if (searchStr.test(this[i])) {        if (!returnArray) { returnArray = [] }        returnArray.push(i);      }    } else {      if (this[i]===searchStr) {        if (!returnArray) { returnArray = [] }        returnArray.push(i);      }    }  }  return returnArray;}

// REQUIRED FIELDS MAY ONLY BE TEXT, TEXTAREA, SELECT (must be blank 0 index), RADIO, CHECKBOX
// FINNB CHANGED TO ALLOW BRACKETS!!!!

function isArray(obj)
	{
	if (obj.constructor.toString().indexOf("Array") == -1)
		{
      		return false;
		}
	else
		{
		return true;
		}
	}

function emailtest(src)
	{
	var emailReg = "^[\\w-_\.+]*[\\w-_\.]\@([\\w-]+\\.)+[\\w]+[\\w]$";
	var regex = new RegExp(emailReg);
	return regex.test(src);
	}
function phonetest(src)
	{
	if(src=='000-000-0000')
		{
		return false;
		}
	if(src=='0000000000')
		{
		return false;
		}
        if(src.search(/^\d{3}\-\d{3}\-\d{4}/)>-1)
        	{
                return true;
		}
        if(src.search(/^\d{10}/)>-1)
        	{
                return true;
		}
	return false;
	}


function checkform(f)
	{
	var popEl = [];
	var reqF = [];
	var emF = [];
	var fF = [];
	en = -1;
	pn = -1;
	fn = -1;
	rn = -1;

	var rad = [];
	var radc = [];

	for(i=0; i<f.elements.length; i++)
		{
		var fin = f.elements[i].name;
		var finnb = fin;
		//var finnb = fin.replace(/\[\]/,'');

		if (fin > '')
			{
			if (f.elements[i].type=="radio")
				{
				rad[i] = finnb;
				if (f.elements[i].checked == true)
					{
					radc[i] = finnb;
					pn = pn+1;
					popEl[pn] = finnb;
					}
				}
			if (f.elements[i].type=="checkbox")
				{
				//alert('cbx ' + f.elements[i].name + ' = ' + f.elements[i].checked);
				if (f.elements[i].checked == true)
					{
					pn = pn+1;
					popEl[pn] = finnb;
					}
				}
			if (f.elements[i].type=="select-one")
				{
				if (f.elements[i].options[f.elements[i].selectedIndex].value)
					{
					pn = pn+1;
					popEl[pn] = finnb;
					}
				}
			if (f.elements[i].type=="select-multiple")
				{
				alert('Mutiple select not supported');
				}
        	        if (f.elements[i].type=="text")
        	                {
				if (f.elements[i].value)
        	                        {
					pn = pn+1;
        	                        popEl[pn] = finnb;
        	                        }
				}
        	        if (f.elements[i].type=="textarea")
        	                {
				if (f.elements[i].value)
        	                        {
					pn = pn+1;
        	                        popEl[pn] = finnb;
        	                        }
				}
			}
		if (fin.substring(0,5)=="REQD[")
			{
			rn = rn+1;
			wf = fin.substring(5,fin.length-1);

			if (f.elements[i].value == '')
				{
				//alert('unset');
				pn = pn+1;
				reqF[rn] = wf;
				popEl[pn] = wf;
				}

			if (f.elements[i].value != '')
				{
	                        reqF[rn] = wf;
				}
			if (f.elements[i].value == 'E')
				{
				en = en + 1;
				emF[en] = wf;
				}
			if (f.elements[i].value == 'P')
				{
				fn = fn + 1;
				fF[fn] = wf;
				}
			}


		}

	//alert('Radio/Checkbox Fields:\n' + radcbx);
	//alert('Fields with a value:\n' + popEl);
	//alert('Required fields:\n' + reqF);

	//alert(rad);
	//alert(radc);

	for(j=0; j<reqF.length; j++)
		{
		var ce = reqF[j];

//alert(popEl);
//alert(f.elements(ce).id);
//alert('RAD: ' + rad[j]);
//alert('RADC: ' + radc[j]);
//alert(popEl);

//alert(reqF[j]);
		if (popEl.find(ce))
			{
			//alert(f.elements[ce].value);
			//f.elements[ce].style.borderColor = 'black';
			if (f.elements[ce].type=="select-one")
				{
				f.elements[ce].options[0].style.backgroundColor = 'white';
				}
			else if (f.elements[ce].type=="text")
				{
				f.elements[ce].style.borderColor = 'black';
				}
			else if (f.elements[ce].type=="textarea")
				{
				f.elements[ce].style.borderColor = 'black';
				}
			else if ((f.elements[ce].length) > 0)
				{
				for (q=0;q<f.elements[ce].length;q++)
					{
					f.elements[ce][q].style.backgroundColor = 'white';
					}
				}
			else if (f.elements[ce].type=="checkbox")
				{
				f.elements[ce].style.backgroundColor = 'white';
				}
			}
		else
			{
			//alert('Required data missing - field ' + ce + '!');
			if (f.elements[ce].type=="select-one")
				{
				f.elements[ce].options[0].style.backgroundColor = 'red';
				}
			else if (f.elements[ce].type=="text")
				{
				f.elements[ce].style.borderColor = 'red';
				}
			else if (f.elements[ce].type=="textarea")
				{
				f.elements[ce].style.borderColor = 'red';
				}
			else if ((f.elements[ce].length) > 0)
				{
				//alert(f.elements[ce].value);
				for (q=0;q<f.elements[ce].length;q++)
					{
					f.elements[ce][q].style.backgroundColor = 'red';
					}
				}
			else if (f.elements[ce].type=="checkbox")
				{
				f.elements[ce].style.backgroundColor = 'red';
				}

			var nogo = 'Y';
			}
		}
	for(j=0; j<emF.length; j++)
		{
		var ce = emF[j];
		if (emailtest(f.elements[ce].value))
			{
			f.elements[ce].style.borderColor = 'black';
			}
		else
			{
			//alert('Invalid email address - field ' + ce + '!');
			f.elements[ce].style.borderColor = 'red';
			var nogo = 'Y';
			}
		}
	for(j=0; j<fF.length; j++)
		{
		var ce = fF[j];
		if (phonetest(f.elements[ce].value))
			{
			f.elements[ce].style.borderColor = 'black';
			}
		else
			{
			//alert('Invalid phone format - field ' + ce + '!');
			f.elements[ce].style.borderColor = 'red';
			var nogo = 'Y';
			}
		}

	if (nogo=='Y')
		{
		alert('One or more required fields were not filled out properly.');
		return false;
		}
	else
		{
		return true;
		}

	}
