﻿function nwts(s) { // no white space
return s.replace(/\s+/g, '');
}

function trimwts(s) { // trim white space
return s.replace(/^\s+|\s+$/g, '');
}

function number(s) { // any number, including exponent
s = nwts(s)-0;
err = isNaN(s) ? 10 : 0;
return [err ? 0 : s];
}

function email(s) {
a = s.match(/\S+@([-\w]+\.)+\w+/g);
return a;
}

function url(s) {
a = s.match(/\w{2,}:\/{2}([-\w]+\.)+\w+\S*/g);
return a;
}

function displayAlert(what)
{
	return displayAlert2(what,"Please Enter ");
}
function displayAlert2(what,msg)
{
	alert(msg + ((what.getAttribute("prompttext")==null || what.getAttribute("prompttext")=="")? what.name : what.getAttribute("prompttext")));
	try 
	{
		what.focus();
	} 
	catch(e) 
	{
		//Do nothing. Could set focus so just return;
	} 
	return false;
}

function checkDefault(what)
{
	if(what.value==what.getAttribute("valuedefault"))
		what.value="";
}
function makeDefault(what)
{
	if(trimwts(what.value)=="")
		what.value=what.getAttribute("valuedefault");
}

function AutoValidate(what)
{
 stra="";
 for(x=0;x<what.length;x++)
 {
	oX=what[x];
	if(oX.getAttribute("validate")=="true")
	{
		switch(oX.type)
		{
			case "select-one":
			case "select-multiple":
			{
				switch(oX.getAttribute("verify"))
				{
					case "number":
					{
						if(oX.value=="0")
							return displayAlert2(oX,"Please Select ");
						break;
					}
					case "both":
					{
						if(oX.value=="0" || oX.value=="")
							return displayAlert2(oX,"Please Select ");
						break;
					}
					case "blank":
					default:
					{
						if(oX.value=="")
							return displayAlert2(oX,"Please Select ");
						break;
					}
				}
				break;		
			}
			case "radio":
			{
				break;
			}
			case "checkbox":
			{
				break;
			}
			case "file":
			{
				if(oX.value=="")
					return displayAlert2(oX,"Please Select ");
				break;
			}
			case "text":
			case "password":
			case "textarea":
			{
				switch(oX.getAttribute("verify"))
				{
					case "email":
					{
						if(email(oX.value)==null)
							return displayAlert(oX);
						break;
					}
					case "link":
					{
						if(url(oX.value)==null)
							return displayAlert(oX);
						break;
					}
					case "number":
					{
						if(number(oX.value)==0)
							return displayAlert(oX);
						break;
					}
					case "blank":
					default:
					{
						if(trimwts(oX.value)=="" || trimwts(oX.value)==oX.getAttribute("valuedefault"))
							return displayAlert(oX);
						break;
					}
				}
				break;
			}
		}
	}
 }
 return true;
}