		//validate_form
		//text_limit
		//email_mask
		//email_letter_mask
		//name_mask
		//letter_spaces_mask
		//letter_number_mask
		//filename_mask
		//text_mask (allows quotes)
		//zip_mask
		//phone_mask
		//date_mask
		//url_mask
		//check_extension
		
		
		function validate_form(t)
		//if any nameClasses contain "alert", do not submit the form.
		{var alert_message ="";
		for (i=0; i<t.length;i++){ 
		    if((t[i].id.match(/_reqvar$/) != null) && (t[i].value.length == 0))
			{ t[i].className = t[i].className + '_alert';}
			if((t[i].className.match(/_alert$/) != null) && (t[i].id.match(/_reqvar$/) == null))
			{restore_class(t[i]); t[i].value="";}			
		    if(t[i].className.match(/_alert$/) != null)
			{ alert_message = alert_message + "\n" + t[i].id;}
		}
		if(alert_message != "")
		{alert_message = alert_message.replace(/_reqvar/gi,' ');
		alert_message = alert_message.replace(/_/gi,' ');
		alert_message = 'Please correct the following fields: ' + alert_message
		alert(alert_message);
		return false;
		} else {
		//disble submit button, submit the form
		for (i=0; i<t.length;i++){ 
			if(t[i].type.toLowerCase()=="submit")
			{ t[i].disabled=true;}
		}
		return true;		
		t.submit();		
		}}
		
		function text_limit(t, maxlimit) {
		if (t.value.length > maxlimit){ 
		t.value = t.value.substring(0, maxlimit);
		alert('You have exceeded the size limit of ' + maxlimit + ' for this entry field.');
		}}

		function email_mask(t) 
		{var patt1 = /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z]{2,6}$/;
		//eliminate illegal characters
		if (t.value.match(/[^A-Za-z0-9\.@-]+/gi))
		t.value = t.value.replace(/[^A-Za-z0-9\.\_@-]+/gi,'');
		var str = t.value;		
		if (str.match(patt1))
		{	
		restore_class(t);
		return true;
		} else {
		alert_class(t);
		return false;
		}}
		
		function email_letter_mask(t) 
		{//eliminate illegal characters
		t.value = t.value.replace(/[\%*\`\$\^\&\)\(#\'\"\+\=\>\<\]\[\}\{]/gi,'');
		t.value = t.value.replace(/\s*/gi,'');
		var str = t.value;
		return true;
		}
		
		function name_mask(t)
		{var patt1 = /^\w+$/;
		//eliminate illegal characters
		if (t.value.match(/[\W\d]/gi))
		{ t.value = t.value.replace(/[\W\d]/gi,'');
		  t.value = t.value.replace(/[\s*]/gi,' ');
		}
		var str = t.value;		
		if (str.match(patt1))
		{	
		restore_class(t);
		return true;
		} else {
		alert_class(t);
		return false;
		}}

		function letter_spaces_mask(t)
		{var patt1 = /\w+/gi;
		//eliminate illegal characters
		t.value = t.value.replace(/\'/gi,'');
		t.value = t.value.replace(/[\_*\**\&*\W*]/gi,' ');
		t.value = t.value.replace(/\s{2,}/gi,' ');
		t.value = t.value.replace(/\s$/i,'');
		var str = t.value;		
		if (str.match(patt1))
		{	
		restore_class(t);
		return true;
		} else {
		alert_class(t);
		return false;
		}}

		function letter_number_mask(t)
		{var patt1 = /\w/gi;
		//eliminate illegal characters
		t.value = t.value.replace(/[\_*\**\&*\W*]/gi,' ');
		t.value = t.value.replace(/\s*/gi,'');
		var str = t.value;		
		if (str.match(patt1))
		{	
		restore_class(t);
		return true;
		} else {
		alert_class(t);
		return false;
		}}
		
		function filename_mask(t)
		{var patt1 = /(\w*\d*)\.\w+/gi;
		//eliminate illegal characters
		t.value = t.value.replace(/[\%*\`\$\^\&\)\(#\'\"\+\=\-\>\<\]\[\}\{]/gi,'');
		t.value = t.value.replace(/\s*/gi,'');
		var str = t.value;		
		if (str.match(patt1))
		{	
		restore_class(t);
		return true;
		} else {
		alert_class(t);
		return false;
		}}
		
		//allows quotes
		function text_mask(t)
		{var patt1 = /\w+\s*\W*/gi;
		//eliminate illegal characters
		if (t.value.match(/[\%\*\`\$\^\&\)\(#\+\=\-\>\<\]\[\}\{]/gi))
		t.value = t.value.replace(/[\%\*\`\$\^\&\)\(#\+\=\-\>\<\]\[\}\{]/gi,'');
		var str = t.value;		
		if (str.match(patt1))
		{	
		restore_class(t);
		return true;
		} else {
		alert_class(t);
		return false;
		}}
		
		function number_mask(t)
		{var patt1 = /^\d+$/;
		//eliminate illegal characters
		if (t.value.match(/[\D]/gi))
		t.value = t.value.replace(/[\D]/gi,'');
		var str = t.value;		
		if (str.match(patt1))
		{	
		restore_class(t);
		return true;
		} else {
		alert_class(t);
		return false;
		}}
		
		function zip_mask(t)
		{var patt1 = /(\d{5}).*(\d{4})/;
		var patt2 = /^(\d{5})-(\d{4})$/;
		var patt3 = /(\d{5})/;
		var str = t.value;
		var result;
		//eliminate illegal characters
		if (t.value.match(/[^\d]/gi))
		t.value = t.value.replace(/[^\d]/gi,'');		
		if (!str.match(patt2))
		{result = str.match(patt1);
		if (result!= null)
		{str = result[1] + '-' + result[2];
		t.value = str;
		}else{
		result = str.match(patt3);
		if (result!= null)
		{str = result[1];
		t.value = str;
		}else{
		alert_class(t);
		return false;
		}}}}

		function phone_mask(t)
		{var patt1 = /(\d{3}).*(\d{3}).*(\d{4})/;
		var patt2 = /^\((\d{3})\).(\d{3})-(\d{4})$/;
		var str = t.value;
		var result;
		//eliminate illegal characters
		if (t.value.match(/[^\d]/gi))
		t.value = t.value.replace(/[^\d]/gi,'');
		if (!str.match(patt2))
		{result = str.match(patt1);
		if (result!= null)
		{str = '(' + result[1] + ') ' + result[2] + '-' + result[3];
		t.value = str;
		}else{
		alert_class(t);
		return false;
		}}}
		
		function date_mask(t)
		{var patt1 = /(1[012]|[1-9]|0[1-9]).*([12][0-9]|3[01]|0[1-9]).*((19|20)\d{2})/;
		var patt2 = /^\((1[012]|[1-9]|0[1-9])\).([12][0-9]|3[01]|0[1-9])-((19|20)\d{2})$/;
		var str = t.value;
		var result;
		//eliminate illegal characters
		str = str.replace(/\'*\"*\s*/gi,'');
		str = str.replace(/[^\d]/gi,'');
		if (!str.match(patt2))
		{result = str.match(patt1);
		if (result!= null)
		{
		if (!result[1].match(/\d\d/)){ result[1]='0'+result[1];}
		if (!result[2].match(/\d\d/)) { result[2]='0'+result[2];}
		str = result[1] + '/' + result[2] + '/' + result[3];
		t.value = str;
		}else{
		alert_class(t);
		return false;
		}}}
		
		function url_mask(t)
		{var patt1 = /(^http:\/\/)/gi
		//eliminate illegal characters
		t.value = t.value.replace(/\'*\"*\s*/gi,'');
		if (t.value.length > 150)
		alert("too long");
		var str = t.value;		
		if (str.match(patt1))
		{	
		restore_class(t);
		return true;
		} else {
		alert_class(t);
		return false;
		}}

		function check_extension(t){
		a=t.value.match(/[\w\W]{4}$/);
		if (a==".htm" | a=="html" | a==".jpg" | a=="jpeg" | a==".mp3")
		{t.form.file_extension.value=a;
		 restore_class(t);
		}else{
		alert_class(t);
		alert("extension not allowed");
		return false;
		}}
		
		function restore_class(t)
		{t.className = t.className.replace(/_alert$/gi,'');}
		
		function alert_class(t)	{
		t.className = t.className.replace(/_alert$/gi,'');
		t.value = '';
		t.className = t.className + '_alert';
		}
