function alphanumeric(e)
{
	var key;
	var keychar;

	if (window.event)
	   key = window.event.keyCode;
	else if (e)
	   key = e.which;
	else
	   return true;
	keychar = String.fromCharCode(key);
	keychar = keychar.toLowerCase();

	// control keys
	if ((key==null) || (key==0) || (key==8) || 
	    (key==9) || (key==13) || (key==27) )
	   return true;

	// alphas and numbers
	else if ((("abcdefghijklmnopqrstuvwxyz0123456789").indexOf(keychar) > -1))
	   return true;
	else
	   return false;
}

function alpha(e)
{
	var key;
	var keychar;

	if (window.event)
	   key = window.event.keyCode;
	else if (e)
	   key = e.which;
	else
	   return true;
	keychar = String.fromCharCode(key);
	keychar = keychar.toLowerCase();

	// control keys
	if ((key==null) || (key==0) || (key==8) || 
	    (key==9) || (key==13) || (key==27) )
	   return true;

	// alphas and numbers
	else if ((("abcdefghijklmnopqrstuvwxyz").indexOf(keychar) > -1))
	   return true;
	else
	   return false;
}

function numeric(e)
{
	var key;
	var keychar;

	if (window.event)
	   key = window.event.keyCode;
	else if (e)
	   key = e.which;
	else
	   return true;
	keychar = String.fromCharCode(key);
	keychar = keychar.toLowerCase();

	// control keys
	if ((key==null) || (key==0) || (key==8) || 
	    (key==9) || (key==13) || (key==27) )
	   return true;

	// alphas and numbers
	else if ((("0123456789").indexOf(keychar) > -1))
	   return true;
	else
	   return false;
}

function isEmpty(field, message)
{
	if ((field.value==null)||(field.value==""))
	{
		alert(message);
		field.focus();
		return true;
	}
	return false;
}

function isShort(field, message, minlength)
{
	if (field.value.length < minlength)
	{
		alert(message + " must be at least " + minlength.toString() + " characters long.");
		field.focus();
		return true;
	}
	return false;
}

function isEmailBad(field, message)
{
	var emailExp = /^[\w\-\.\+]+\@[a-zA-Z0-9\.\-]+\.[a-zA-z0-9]{2,4}$/;
	if (!field.value.match(emailExp))
	{
		alert(message);
		field.focus();
		return true;
	}
	return false;
}

function jscss(a,o,c1,c2)
{
	switch (a)
	{
		case 'swap':
			o.className=!jscss('check',o,c1)?o.className.replace(c2,c1): o.className.replace(c1,c2);
			break;
		case 'add':
			if (!jscss('check',o,c1))
			{
				o.className+=o.className?' '+c1:c1;
			}
			break;
		case 'remove':
			var rep=o.className.match(' '+c1)?' '+c1:c1;
			o.className=o.className.replace(rep,'');
			break;
		case 'check':
			return new RegExp('\\b'+c1+'\\b').test(o.className);
			break;
	}
}


