var arrChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ ";
var arrNumbers = "0123456789";
var arrValidMailChars = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.@-_";
var arrInvalidMailChars = ".@-_";
var arrValidChars = "@#$%^&*().,;:{}[] \\\/'\"_-+";
var arrValidUserIDPwd = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_";

function isnotZerolength(fld,fldName)
{
	var emptyStr = false;
	var spaceCnt = 0;
	
	if ((fld.value).length == 0)
		emptyStr = true;
		
	else
	{
		for(var i=0;i< (fld.value).length; i++)
		{
			if ((fld.value).charAt(i) == " " )
				spaceCnt = spaceCnt + 1
		}
		if (spaceCnt == (fld.value).length)
			emptyStr = true;
	}
	
	if (emptyStr)
	{
		alert(fldName + " can not have Empty values!");
		fld.focus();
		fld.select();
		return false;
	}
	else
		return true;
}


function isNumber(fld,fldName)
{
	
	var digit;
	var strVal = fld.value;
	if (isnotZerolength(fld,fldName))
	{
		for(var i=0; i< strVal.length; i++)
		{
			digit =  strVal.charAt(i);
			if( arrNumbers.indexOf(digit) == -1) {
				alert("Please Enter only numbers 0 - 9 for " + fldName + ".");
				fld.focus();
				fld.select();
				return false;
			}
		}
		return true;
	}
	
}


function isCurrency(fld,fldName)
{
	
	var digit;
	var strVal = fld.value;
	if (isnotZerolength(fld,fldName))
	{
		for(var i=0; i< strVal.length; i++)
		{
			digit =  strVal.charAt(i);
			if( arrNumbers.indexOf(digit) == -1 && digit != "." ) {
				alert("Field " + fldName + " should contain no currency characters ($,IL, ...) or sperators (commas, ...). Please Enter only numbers (0 - 9) and use '.' for decimal point.");
				fld.focus();
				fld.select();
				return false;
			}
		}
		return true;
	}
	
}


function isAlpha(fld, fldName)
{
	var currChar; 
	var strVal = fld.value;
	if (isnotZerolength(fld,fldName))
	{
		for(var i=0; i< strVal.length; i++)
		{
			currChar = strVal.charAt(i);
			if( arrChars.indexOf(currChar) == -1 )   
			{
				alert("Please Enter only Characters a-z or A-Z for " + fldName + ".");
				fld.focus();
				fld.select();
				return false;
			}
		}
		return true;	
	}
	 
}

function isText(fld,fldName)
{
	
	var currChar; 
	var strVal = fld.value;
	if (isnotZerolength(fld,fldName))
	{
		for(var i=0; i< strVal.length; i++)
		{
			currChar = strVal.charAt(i);
			if( arrChars.indexOf(currChar) == -1 && arrValidChars.indexOf(currChar) == -1 && arrNumbers.indexOf(currChar) == -1 && escape(currChar)!= "%0D" && escape(currChar)!= "%0A" )  
			{
				alert("Please Enter only valid characters for  " + fldName + ".");
				fld.focus();
				fld.select();
				return false;
			}
		}
		return true;	
	}
	

}


function isValidEmail(fld,fldName)
{
	
	var currChar; 
	var domainFlag=false;
	var qualifierFlag = false;
	var validMailFlag = true;
	var strVal = fld.value;
	var atPos ;
	var pointPos ;

	if (isnotZerolength(fld,fldName))
	{
		// Check to see if there is only one instance of the character - @
		
		atPos = strVal.indexOf("@");
		pointPos = strVal.indexOf(".")
		
		if (atPos != -1 && (atPos == strVal.lastIndexOf("@")))
			domainFlag = true;
	
		// Check to see if there is atleast one instance of the character - .
		// That it is after the @ symbol and the char next to @ symbol is not invalid.
		
		if (pointPos != -1 && (strVal.lastIndexOf(".") > atPos) &&  ( arrInvalidMailChars.indexOf(strVal.charAt(atPos + 1)) == -1) )
			qualifierFlag = true;
	
		if (domainFlag && qualifierFlag)
		{	
			for (var i=0; i< strVal.length; i++)
			{
				currChar = strVal.charAt(i);
				if (arrValidMailChars.indexOf(currChar)==-1 )
				{
					validMailFlag = false;
					break;
				}
			}
		}
		else
		{
			validMailFlag = false;
		}
			
		if (!validMailFlag){

				alert("Please Enter a valid Email " + fldName + ".");
				fld.focus();
				fld.select();
				return false;
		}
		else
			return true;
	}
	 
}


function isValidZipCode(fld,fldName)
{

	return true; // ?? What validation for International Zip codes? 
	
// No longer used.
	var digit;
	var strVal = fld.value;
	if (isnotZerolength(fld,fldName))
	{
		for(var i=0; i< strVal.length; i++)
		{
			digit =  strVal.charAt(i);
			if( arrNumbers.indexOf(digit) == -1 && arrChars.indexOf(digit) == -1 && digit != "-") {
				alert(fldName + " can only contain Alphabets[a-z], numbers and - ");
				fld.focus();
				fld.select();
				return false;
			}
		}
		return true;
	}
	
}

function isValidPhone(fld,fldName)
{
	
	// ?? What validation for International Phone codes? 
	// Country Code / Area Code and Phone number.
	var digit;
	var strVal = fld.value;
	if (isnotZerolength(fld,fldName))
	{
		for(var i=0; i< strVal.length; i++)
		{
			digit =  strVal.charAt(i);
			if( arrNumbers.indexOf(digit) == -1 && digit != "-") {
				alert("Please Enter a valid number for " + fldName + ".");
				fld.focus();
				fld.select();
				return false;
			}
		}
		return true;
	}
}





