function changeColor(e){	var obj_desc;	var obj;	if(e)	{	// Netscape		obj_desc = getElement(e.target.id + "_t");		obj = e.target;	}	else if(event.srcElement)	{	// IE, Safari, most others		obj_desc = getElement(event.srcElement.id + "_t");		obj = event.srcElement;	}			switch(obj.type)	{	case "text":	if(obj_desc)	  {		if(obj.value != "")			obj_desc.className = "black";		else			obj_desc.className = "red";	  }	 break;	case "select-one":	  if(obj_desc)	  {		if(obj.selectedIndex != 0)			obj_desc.className = "black";		else			obj_desc.className = "red";	  }	 break;	case "textarea":	if(obj_desc)	  {		if(obj.value != "")			obj_desc.className = "black";		else			obj_desc.className = "red";	  }	 break;	}}function validate(){var doSubmit = false;var requiredFields = new Array(5);requiredFields = getElement('required').value.split(",");resetElements();var obj = null;var obj_desc = null;var s_missing = "";for(i=0; i < requiredFields.length; i++){  obj = getElement(requiredFields[i]);  obj_desc = getElement(requiredFields[i] + "_t");    switch(obj.type)  {  case "text":		if(obj.value == "")		{		  s_missing += "   " + obj.tabIndex + ". " + requiredFields[i].replace(/_/g," ") + "\n";          obj.onkeyup = changeColor;		  if(obj_desc)		    obj_desc.className = "red";		} else {		  if(obj_desc)		    obj_desc.className = "black";		}   break;  case "select-one":		if(obj.selectedIndex == 0)		{		  s_missing += "   " + obj.tabIndex + ". " + requiredFields[i].replace("_"," ") + "\n";          obj.onchange = changeColor; 		  if(obj_desc)		    obj_desc.className = "red";		} else {		  if(obj_desc)		    obj_desc.className = "black";		}   break;  case "textarea":		if(obj.value == "")		{		  s_missing += "   " + obj.tabIndex + ". " + requiredFields[i].replace(/_/g," ") + "\n";          obj.onkeyup = changeColor;		  if(obj_desc)		    obj_desc.className = "red";		} else {		  if(obj_desc)		    obj_desc.className = "black";		}   break;  }}s_missing = s_missing.substring(0, s_missing.length - 1);if(s_missing.length != 0){  alert("The following fields must be completed before submitting.\n" + s_missing);  s_missing = "";  doSubmit = false;}else{  doSubmit = true;}return doSubmit;}function getElement(id){  if(document.getElementById)  {	return document.getElementById(id);  }  else if(document.all)  {	return document.all[id];  }  else if(document.layers)  {    return document.layers[id];  }}function resetElements(){var obj = null;var obj_desc = null;for(i=0; i < document.forms[0].elements.length; i++){	obj_desc = getElement(document.forms[0].elements[i].id + "_t")	if(obj_desc)	{		obj_desc.className = "black";		obj_desc.onkeyup = null;	}}}function isEmail(obj) {    if (obj.value.length > 0)    {		if (obj.value.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) == -1)		{			alert('This is not a valid Email Address.  Please try again.');			obj.focus();			obj.select();		}	}}function isPhone(obj) {    if (obj.value.length > 0)    {		if (obj.value.search(/^((\(\d{3}\) ?)|(\d{3}-?)){1}\d{3}-?\d{4}$/) == -1)		{			if(obj.value.search(/^\d{3}-?\d{4}$/) == -1)				alert('This is not a valid US phone number.  Please try again.');			else				alert('You must include the area code.  Please try again.');			obj.focus();			obj.select();					}		else		{			//Auto Format			obj.value=obj.value.replace(/(\(?)(\d{3})(\) ?|-)?(\d{3})(-?)/,'('+'$2'+')'+'$4'+'-');		}	}}function isSSN(obj) {    if (obj.value.length > 0)    {		if (obj.value.search(/^\d{3}-?\d{2}-?\d{4}$/) == -1)		{			alert('This is not a valid US Social Security Number.  Please try again');			obj.focus();			obj.select();		}		else		{			//Auto Format			obj.value = obj.value.replace(/(\d{3})-?(\d{2})-?/,'$1'+'-'+'$2'+'-');		}	}}function isPercent(obj) {    if (obj.value.length > 0)    {		if ((obj.value.search(/^(\d+)(\.\d+)?%?$/) == -1) || (RegExp.$1 > 100))		{			alert('This is not a valid percentage.  Please try again');			obj.focus();			obj.select();		}		else		{			//Auto Format			obj.value = obj.value.replace(/^(\d+)(\.\d+)?%?$/, '$1'+ RegExp.$2.substring(0,3)+'%');		}	}}function isZipCode(obj) {    if (obj.value.length > 0)    {		if (obj.value.search(/^\d{5}(-\d{4})?$/) == -1)		{			alert('This is not a valid US zipcode.  Please try again.');			obj.focus();			obj.select();		}	}}function isDigits(obj) {    if (obj.value.length > 0)		{		if (obj.value.search(/^\d+$/) == -1)		{			alert('This is not a valid number.  Please try again.');			obj.focus();			obj.select();		}	}}function isMoney(obj) {    if (obj.value.length > 0)		{		if (obj.value.search(/^\$?\d+((,\d{3})+)?(\.\d+)?$/) == -1)		{			alert('This is not a valid number.  Please try again.');			obj.focus();			obj.select();		}		else		{			//Auto Format			if(obj.value.charAt(0) != '$')				obj.value = '$' + obj.value;			var startIndex = obj.value.indexOf('.');			if (startIndex == -1)			{				startIndex = obj.value.length;				obj.value += '.00';			}			else			{				// Truncate decimals to 2 places				if (obj.value.length - startIndex > 2)				{					obj.value = obj.value.substring(0, startIndex + 3);				}			}			while (startIndex > 4)			{						startIndex -= 3;				if(obj.value.charAt(startIndex - 1) != ',')				{					obj.value = obj.value.substring(0, startIndex) + ',' + obj.value.substring(startIndex, obj.value.length);				}				else				{					startIndex -= 1;				}			}					}	}}function isDate(obj) {    if (obj.value.length > 0)		{		if (obj.value.search(/^\d{1,2}(-|\\|-|\/|\.)?\d{1,2}(-|\\|-|\/|\.)?(\d{2}|\d{4})$/) == -1 &&			obj.value.search(/^(\d{2}|\d{4})(-|\\|-|\/|\.)?\d{1,2}(-|\\|-|\/|\.)?\d{1,2}$/) == -1)		{			alert('This is not a valid date.  Please try again.');			obj.focus();			obj.select();		}		else		{			//Auto Format			if(obj.value.search(/^\d{1,2}(-|\\|-|\/|\.)?\d{1,2}(-|\\|-|\/|\.)?(\d{2}|\d{4})$/) != -1)			{				var p=/(\d{1,2})(-|\\|-|\/|\.)?(\d{1,2})(-|\\|-|\/|\.)?(\d{2,4})/.exec(obj.value);				obj.value = '';				if(p[5].length == 2)				{				  var today = new Date();					//if the year entered is more than 50 years in the future, assume it					//is the previous century				  if(p[5] <= (today.getYear() + 50).toString().substring(2,4))					obj.value += '20';				  else					obj.value += '19';				}				obj.value += p[5] + '-';							if(p[1].length == 1)					obj.value += '0';				obj.value += p[1] + '-';				if(p[3].length == 1)					obj.value += '0';				obj.value += p[3];			}			else if(obj.value.search(/^(\d{2}|\d{4})(-|\\|-|\/|\.)?\d{1,2}(-|\\|-|\/|\.)?\d{1,2}$/) != -1)			{				var p=/(\d{2,4})(-|\\|-|\/|\.)?(\d{1,2})(-|\\|-|\/|\.)?(\d{1,2})/.exec(obj.value);							obj.value = '';				if(p[1].length == 2)				{				  var today = new Date();					//if the year entered is more than 50 years in the future, assume it					//is the previous century				  if(p[1] <= (today.getYear() + 50).toString().substring(2,4))					obj.value += '20';				  else					obj.value += '19';				}				obj.value += p[1] + '-';							if(p[3].length == 1)					obj.value += '0';				obj.value += p[3] + '-';				if(p[5].length == 1)					obj.value += '0';				obj.value += p[5];			}								}	}}
