
		

	/*************************************************************/
	/*** Trim strings functions **********************************/
		function ltrim(str)
		{ 
			for(var k = 0; k < str.length && isWhitespace(str.charAt(k)); k++);
			return str.substring(k, str.length);
		}
		function rtrim(str)
		{
			for(var j=str.length-1; j>=0 && isWhitespace(str.charAt(j)) ; j--) ;
			return str.substring(0,j+1);
		}
		function trim(str)
		{
			return ltrim(rtrim(str));
		}
		function isWhitespace(charToCheck)
		{
			var whitespaceChars = " \t\n\r\f";
			return (whitespaceChars.indexOf(charToCheck) != -1);
		}
		
	/*************************************************************/
	/*** Validate string (search for charcters not listed) *******/
		function act_GrabChars(val, charlist)
		{
			var val2 = '';			
			
			for (var i = 0; i < val.length; i++)
			{
				if (charlist.indexOf(val.charAt(i)) >= 0)
					val2 += val.charAt(i);
			}
		
			//String passed so it is valid	
			return val2;
		}

		
	/*************************************************************/
	/*** Validate string (search for charcters not listed) *******/
		function chk_Chars(val, charlist)
		{
			for (var i = 0; i < val.length; i++)
				if (charlist.indexOf(val.charAt(i)) < 0)
					return false;
		
			//String passed so it is valid							
			return true;
		}

	/*************************************************************/
	/*** Highlight input text if it is default text **************/
		function chk_Numeric(form,fld,row)
		{
			with (eval('document.forms[\'' + form + '\']'))
			{

				var str = eval(fld + '.value');
				if (!chk_Chars(str, "0123456789"))
				{
					alert("Field must only contain numbers");
					if (typeof(row) != 'undefined' && row.length > 0)
					{
						eval(fld + '.value = \'\'');
						eval(fld + '.focus();');
						eval('document.getElementById(\'' + row + '\').className=\'Cell_Highlight\'');
					}
				}
			}
		}
		

	/*************************************************************/
	/*** Highlight input text if it is default text **************/
		function chk_Default(field,def)
		{
			if (field.value == def) field.select();
		}
		
	/*************************************************************/
	/*** Format phone numbers ************************************/
		function fmt_Phone(field)
		{
		/*
			alert("TEST");
		*/
			var newPhone = '';
			var phone = field.value;
			
			if (!chk_Chars(phone, "0123456789()-"))
			{
				alert("Phone number is not valid");
				field.focus();
				field.select();
			}
			
			if (field.value.length == 10)
			{
				newPhone = "(" + phone.substring(0,3) + ")" + phone.substring(3,6) + "-" + phone.substring(6,10);					
				field.value = newPhone;
			}
			
			if (field.value.indexOf("-") == 3 && field.value.indexOf("-",4) == 7 && field.value.length == 12)
			{
				newPhone = "(" + phone.substring(0,3) + ")" + phone.substring(4,7) + "-" + phone.substring(8,12);								
				field.value = newPhone;
			}
			
			if (field.value.indexOf("(") == 0 && field.value.indexOf(" ") == 5 && field.value.length == 14)
			{
				var newPhone = phone.substring(0,5) + phone.substring(6,14);								
				field.value = newPhone;
			}
		}
		
	/*************************************************************/
	/*** Format text inputs to be Title Case (like names) ************************************/
		function fmt_TitleCase(form,fld)
		{
			with (eval('document.forms[\'' + form + '\']'))
			{
				var str = eval(fld + '.value'); 
					str = str.replace(/ +/g,' ');
				str2 = str.split(' ');	
				//alert(str);
				
				for (i=0;i<str2.length;i++)
				{
					
					if (str2[i].length > 1)
					{
				/*
				*/
						str2[i] = str2[i].toLowerCase();
						letters = str2[i].split('');
						letters[0] = letters[0].toUpperCase();
						str2[i] = letters.join('');
					}
					else
					{
						str2[i] = str2[i].toUpperCase();
					}
						
				}
				
				str = str2.join(' ');
				
				eval(fld + '.value = str');
				
			}
			
		}
		
	/*************************************************************/
	/*** Format web address/URL **********************************/
	
		function fmt_URL(form,fld)
		{
			
			with (eval('document.forms[\'' + form + '\']'))
			{
			
				var str = eval(fld + '.value'); char = ''; str2 = '';	
				//alert(str);
				
				if ((str.indexOf("http://") == -1) && (str.indexOf("https://") == -1) && (str.indexOf("mailto:") == -1))
				{
					str2 = "http://" + str;
					eval(fld + '.value = \'' + str2 + '\'');
				}
				
			}
		}
		
		
	/*************************************************************/
	/*** Validate email address **********************************/
		function val_Email(form,fld)
		{
			
			with (eval('document.forms[\'' + form + '\']'))
			{
				
				var email = eval(fld + '.value');
				email = trim(email);
				
				if (email.length != 0)
				{
					if (email.indexOf("@") == -1 || email.indexOf(".",email.indexOf("@")) == -1)
					{
						alert("Email address not valid");
						eval(fld + '.focus()');
						eval(fld + '.select()');
						return false;
					}
				}
			}
			
			return true;
		}

	/*************************************************************/
	/*** Validate Password, must match password_confirm **************/
		function val_Pass()
		{
			pass1 = document.forms[0].Password.value;
			pass2 = document.forms[0].Password_confirm.value;
			
			if (pass1.length <= 5)
			{
				alert('Your password must be at least 6 characters in length');
				document.forms[0].Password.focus();
				return false;
			}
			
			if (pass1 != pass2)
			{
				alert('Your passwords do not match');
				document.forms[0].Password.focus();
				document.forms[0].Password.select();				
				return false;
			}
			else 
			{	
				return true;
			}
		}
	/*************************************************/
	/*** Validate dates, /'s, -'s, etc. **************/
	/* val_date('CLICK','CLICK','CLICK') */
		function val_date(form,fld,row)
		{
			with (eval('document.forms[\'' + form + '\']'))
			{

				var date = eval(fld + '.value');
				date = date.replace(/\(/g, "");
				date = date.replace(/\)/g, "");
				date = date.replace(/\./g, "/");
				date = date.replace(/\-/g, "/");
				date = date.replace(/\ /g, "/");
				
				if (date.length > 0)
				{
					var re = /[A-z' ']/;
					
					if (!re.test(date))
					{
						if (date.indexOf('/') > 0)
						{
							slash1 = date.indexOf('/');
							if (date.indexOf('/', slash1 + 1) > 0)
							{
								slash2 = date.indexOf('/', slash1 + 1);
								mo = date.substr(0,slash1);
								yr = date.substr(slash2 + 1,date.length);
								dy = date.substr(slash1 + 1,date.length - mo.length - yr.length - 2);
							}
							else
							{
								slash2 = date.indexOf('/', slash1 + 1);
								mo = date.substr(0,slash1);
								yr = date.substr(slash1 + 1,date.length);
								dy = '';
							}
						}
						/*
						else if (date.indexOf('-') > 0)
						{
							slash1 = date.indexOf('-');
							slash2 = date.indexOf('-', slash1 + 1);
							mo = date.substr(0,slash1);
							yr = date.substr(slash2 + 1,date.length);
							dy = date.substr(slash1 + 1,date.length - mo.length - yr.length - 2);
						}
						else if (date.indexOf('.') > 0)
						{
							slash1 = date.indexOf('.');
							slash2 = date.indexOf('.', slash1 + 1);
							mo = date.substr(0,slash1);
							yr = date.substr(slash2 + 1,date.length);
							dy = date.substr(slash1 + 1,date.length - mo.length - yr.length - 2);
						}
						*/
						else
						{
							if (date.length == 5)
							{
								mo = date.substr(0,1);
								yr = date.substr(3,2);
								dy = date.substr(1,2);
							}
							else if (date.length == 6)
							{
								mo = date.substr(0,2);
								yr = date.substr(4,2);
								dy = date.substr(2,2);
							}
							else if (date.length == 8)
							{
								mo = date.substr(0,2);
								yr = date.substr(4,4);
								dy = date.substr(2,2);
							}
						}
					}
					
					if (typeof(mo) != 'undefined' && mo.length > 0 && mo <= 12)
					{
						if (mo.length < 2) mo = '0' + mo;
						if (mo.value > 12) mo = '0' + mo.substr(mo.length - 1, 1);
						if (dy.length < 2) dy = '0' + dy;
						if (yr.length == 2)
							{
								if (yr >= 80)
								{
									alert('Year is automatically being set to 19' + yr);
									yr = '19' + yr; // #Left(Year(Now()), 2)#
								}
								else
									yr = '20' + yr; // #Left(Year(Now()), 2)#
							}
						else if (yr.length == 3) yr = '#Year(Now())#';
						else if (yr.length == 1) yr = '200' + yr;
						
						
						if (dy > 0)
							var new_Date = mo + '/' + dy + '/' + yr;
						else
							var new_Date = mo + '/' + yr;
						//alert(new_Date);
						eval(fld + '.value = \'' + new_Date + '\'');
					}
					else
					{
						alert('There is a formating error within one of your dates.  Please correct before proceeding');
						eval('document.getElementById(\'' + row + '\').className=\'Cell_Highlight\'');
						eval('document.' + form + '.' + fld + '.value=\'\'');
						eval('document.' + form + '.' + fld + '.focus();');
					}
				}
			}
		}
	/*************************************************/
	/*** Validate dates, /'s, -'s, etc. **************/
	/* val_date('CLICK','CLICK','CLICK') */
		function val_time(form,fld,row)
		{
			with (eval('document.forms[\'' + form + '\']'))
			{

				var time = eval(fld + '.value');
				time = time.toLowerCase();
				time2 = time;
				
				if (time.length > 0)
					{
					time = act_GrabChars(time, '1234567890') - 0;
					
					if (time2.indexOf('pm') > 0)
						tt = 'PM';
					else if (time > 1200)
					{
						time -= 1200;
						tt = 'PM';
					}
					else
						tt = 'AM';
						
					time = time + '';
					
					if (time.length > 1 && time.length < 5)
					{
						if (time.length == 3)
						{
							hr = time.substr(0,1);
							mn = time.substr(1,2);
						}
						else if (time.length == 4)
						{
							hr = time.substr(0,2);
							mn = time.substr(2,2);
						}
						else if (time.length == 2)
						{
							hr = '12';
							mn = time.substr(0,2);
						}
						
						var newTime = hr + ':' + mn + ' ' + tt;
						//alert(new_Date);
						eval(fld + '.value = \'' + newTime + '\'');
						
					}
					else
					{
						alert('There is a formating error within one of your times.  Please correct before proceeding');
						eval('document.getElementById(\'' + row + '\').className=\'Cell_Highlight\'');
					}
				}
			}
		}
	/*************************************************/
	/*** Validate address (will return false if po box and it is not allowed) **************/	
		function val_address(form,fld,row,allow_po)
		{
			with (eval('document.forms[\'' + form + '\']'))
			{
			
				var address = eval(fld + '.value');
				
				address = trim(address);
				
				while(address.indexOf(".") != -1)
				{
					address = address.replace(".", "")
				}
				
				if (address.substring(0,6).toLowerCase() == 'po box')
				{
					if (allow_po.toLowerCase() == 'no')
					{
						alert('We can NOT ship ship to addresses with a PO Box.  Please enter in a physical address.');
						eval('document.getElementById(\'' + row + '\').className=\'Cell_Highlight\'');
						return false;
					}
					
					address = "PO Box " + address.substring(7,address.length);
					eval(fld + '.value = address');
					
				}
			}
		}
	/*************************************************/
	/*** Validate address (will return false if po box and it is not allowed) **************/	
		function val_CCNum(form,fld)
		{
			with (eval('document.forms[\'' + form + '\']'))
			{
			
				var ccnum = eval(fld + '.value'); str1 = ''; str2 = '';
				
				ccnum = trim(ccnum);
				
				for (i=0;i<ccnum.length;i++)
				{
					str1 = ccnum.substring(i,i+1) + '';
					if (chk_Chars(str1, "0123456789"))
						str2 += str1;
				}
				
				eval(fld + '.value = str2');
			}
		}
		
		
	/*************************************************************/
	/*** Format test input field values to escape certain "cross-site scripting" characters ************************************/
		function fmt_InputField(form,fld)
		{
			
			with (eval('document.forms[\'' + form + '\']'))
			{
			
				var str = eval(fld + '.value'); char = ''; str2 = '';	
				//alert(str);
				
				for (i=0;i<str.length;i++)
				{
					char = str.substring(i,i+1);
					
					if (char == '>') char = '&gt;';
					if (char == '<') char = '&lt;';
					if (char == '(') char = '&#40;';
					if (char == ')') char = '&apos;';
					if (char == "'") char = '&#x22;';
					if (char == '"') char = '&#41;';
					if (char == ';') char = '';
					if (char == '-') char = '';
					if (char == '|') char = '';
					
					str2 += char;
				}
				
				//alert(str2);
				eval(fld + '.value = \'' + str2 + '\'');
				
			}
		}
		

	/*************************************************************/
	/*** Format test input field values to escape certain "cross-site scripting" characters ************************************/
		function fmt_ListDelim(form,fld,len,del)
		{
			
			with (eval('document.forms[\'' + form + '\']'))
			{
			
				var str = eval(fld + '.value'); char = ''; str2 = '';	
				
				str = act_GrabChars(str, '0123456789');
				
				for (i=1;i<=str.length;i++)
				{
					char = str.substring(i-1,i);
					if ((i/len) == Math.round(i/len) && i != str.length) char += ',';
					str2 += char;
				}
				
				//alert(str2);
				eval(fld + '.value = \'' + str2 + '\'');
				
			}
		}
		
		
	/*************************************************/
	/*** Validate address (will return false if po box and it is not allowed) **************/	
		function val_Phone(form,fld)
		{
			with (eval('document.forms[\'' + form + '\']'))
			{
			
				var phone = eval(fld + '.value'); str1 = ''; str2 = '';
				
				phone = trim(phone);
				
				for (i=0;i<phone.length;i++)
				{
					str1 = phone.substring(i,i+1) + '';
					if (chk_Chars(str1, "0123456789()- "))
						str2 += str1;
				}
				
				eval(fld + '.value = str2');
			}
		}
