// Useful JavaScript functions for validating form values
function getSelectedValue(sel) {
	var idx = sel.selectedIndex;
	if (idx >= 0) {
		return sel.options[idx].value;
	} else {
		return null;
	}
}

function isWhitespace(c) {
	return (c == ' ' || c == '\t' || c == '\n' || c == '\r' || c == '\f' || c == '\v');
}		

function isEmpty(s)	{
	for (var i = 0; i < s.length; i++) {
		var c = s.charAt(i);
		if (!isWhitespace(c)) return false;
	}
	return true;
}

function stripSpaces(str) {
	if ((str == null) || (str.length==0))
		return str;
    while (str.substring(0,1) == ' ') str = str.substring(1);
    while (str.substring(str.length-1,str.length) == ' ') str = str.substring(0,str.length-1);
	return str;
}

function isLengthOk(s, min, max) {
	return (s.length >= min && s.length <= max);
}

function isAlpha(ch)
{
	return ((ch >= "a" && ch <= "z") || (ch >= "A" && ch <= "Z"));
}

function isDigit(ch)
{
	return (ch >= "0" && ch <= "9");
}

function isOther(ch)
{
	return (ch == "_");
}

function isValidPassword(s)
{
	if (s == null) return false;
//	s = stripSpaces(s);
	if (s.length < 4 || s.length > 12)
		return false;
	if (!isAlpha(s.charAt(0)))
		return false;
	for (var i=1; i < s.length; i++)
	{
		if ( !isAlpha(s.charAt(i)) && !isDigit(s.charAt(i)) && !isOther(s.charAt(i)) )
			return false;
	}
	return true;
}

function isValidLoginName(s)
{
	if (s == null) return false;
	s = stripSpaces(s);
	if (s.length < 4)
		return false;
	if (!isAlpha(s.charAt(0)))
		return false;
	for (var i=1; i < s.length; i++)
	{
		if ( !isAlpha(s.charAt(i)) && !isDigit(s.charAt(i)) && !isOther(s.charAt(i)) )
			return false;
	}
	return true;
}
				
				

function isValidEmail(s) {
	if (isEmpty(s)) {
		return false;
	}
	var nAt = s.indexOf('@');
	if (nAt < 1) { 
		return false;
	}
	var nDot = s.lastIndexOf('.');
	if (nDot < 0 || nDot == (s.length - 1)) {
	  return false; 
	}				
	var nDomain = nDot - nAt;
	if (nDomain < 2) {
	  return false; 
	} 
	return true;	
}

// zip code validator (USA only)
function isValidZip(country, s) {
	if (country != "USA")
		return true;

	if (s.length != 5 && s.length != 9 && s.length != 10) {
		return false;
	} 
	for (var i = 0; i < s.length; i++) {
		if ((s.charAt(i) < '0' || s.charAt(i) > '9')
				&& (i != 5 || (s.charAt(i) != ' ' && s.charAt(i) != '-' && s.charAt(i) != '+'))) {
			return false;
		} 
	}	
	return true;
}

function isValidDateMDY(m, d, y) {
	var dt = new Date(y, m, d);
	if (y != dt.getFullYear() || m != dt.getMonth() || d != dt.getDate()) {
		return false;
	} else {
		return true;
	}
}

function isValidDateMD(m, d) {
	// Supply 2000 as year because it's a leap year
	return isValidDateMDY(m, d, 2000);
}

function isValidNumber(s){   
			if(isEmpty(s)) {
			return false;
			} else {
				for ( var i=0; i < s.length; i++ )
				{
					if( ( s.charAt ( i ) < "0" ) || ( s.charAt ( i )  > "9" ) )
					 {
						return false;
					 } 
				}	
			}
			return true;
		}
		
function isValidPosNumber(s)
{   
	if (!isValidNumber(s))
	   return false;
    var pi = parseInt(s);
    if (pi <= 0)
       return false;
    else
	   return true;
}
	   

