/****************************************************************************************************
Name:			ASTcommon_String_Functions
Description:	
	trim	Trim white space from a string. 
	isBlank	Verifies whether a string is blank.
History:
				Created: 03/19/2001	JC
				
Copyright(c) 2001, Vignette Corporation. All rights reserved.  
THIS PROGRAM IS AN UNPUBLISHED WORK AND TRADE SECRET OF THE COPYRIGHT HOLDER,  
AND DISTRIBUTED ONLY UNDER RESTRICTION.

No  part  of  this  program  may be used,  installed,  displayed,  reproduced, 
distributed or modified  without the express written consent  of the copyright
holder.

EXCEPT AS EXPLICITLY STATED  IN A WRITTEN  AGREEMENT BETWEEN  THE PARTIES, THE 
SOFTWARE IS PROVIDED AS-IS, WITHOUT WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY,  FITNESS FOR A PARTICULAR
PURPOSE, NONINFRINGEMENT, PERFORMANCE, AND QUALITY.
****************************************************************************************************/

function trim(arg,func) { // pass in a string object and trim right, left, or both (default)
	if (arg==null) return "";
	if (func==null) func="both";
	if (arg.length==0) return "";	
	var left=0, right=arg.length-1;	
	if (func=="left" || func=="both")
		for (;left < arg.length; left++) {
			c=arg.charAt(left);
			if(c!=" " && c!="\t" && c!="\n" && c!="\r") break;
		}
	if (func=="right" || func=="both")
		for (; right > left; right--) {
			c=arg.charAt(right);
			if(c!=" " && c!="\t" && c!="\n" && c!="\r") break;
		}
	return arg.slice(left,right+1);
}


function isBlank(testString)
{
	for(var i = 0; i < testString.length; i++)
	{
		var c = testString.charAt(i);
		if ( (c != ' ') && (c != '\\n') && (c != '\\t') && (c != '\\r') )
			return false;
	}
	return true;
}

function isAlphaNumeric(testString)
{
	for(var i = 0; i < testString.length; i++)
	{
		var c = testString.charAt(i);
		if ( (c < '0') || ((c > '9') && (c < 'A')) || ((c > 'Z') && (c < 'a')) || (c > 'z'))
			return false;
	}
	return true;
}

//This allows an alphabetic login with underscores and dashes.
function isStandardLogin(testString)
{
	for(var i = 0; i < testString.length; i++)
	{
		var c = testString.charAt(i);
		if ( ((c < '0') || ((c > '9') && (c < 'A')) || ((c > 'Z') && (c < 'a')) || (c > 'z')) && (c != '_') && (c != '-') )
			return false;
	}
	return true;
}

//This allows only an alpha-numeric string beginning with a letter.
function isAlphaNumericLogin(testString)
{
	var returnResult = true;
	
	var firstCharacter = testString.charAt(0)
	if (!isCharacter(firstCharacter))
	{
		returnResult = false;
	}
	else if (testString.length < 4)
	{
		returnResult = false
	}
	else
	{
		for(var i = 1; i < testString.length; i++)
		{
			var c = testString.charAt(i);
			if ( (c < '0') || ((c > '9') && (c < 'A')) || ((c > 'Z') && (c < 'a')) || (c > 'z') )
				returnResult = false;
		}
	}
	return returnResult;
}

function isNumeric(testString)
{
	var returnResult = true;
	for(var i = 0; i < testString.length; i++)
	{
		var c = testString.charAt(i);
		if ( (c < '0') || (c > '9') )
			returnResult = false;
	}
	return returnResult;
}

function isCharacter(testString)
{
	var returnResult = true;
	for(var i = 0; i < testString.length; i++)
	{
		var c = testString.charAt(i);
		if ( (c < 'A') || ((c > 'Z') && (c < 'a')) || (c > 'z') )
			returnResult = false;
	}
	return returnResult;
}

//This ensures email addresses in the format "x@x.x"
function isValidEmail(testString)
{
	var returnResult = false;
	var RE_EmailAddress = /^.+\\@[lb]^\\@[rb]+\\.[lb]^\\@[rb]+$/;

	if (testString.match(RE_EmailAddress))
	{
		returnResult = true;
	} 
	return returnResult;
}

