//Checks for blank field 
function isBlankField(fieldvalue)  {        
  if(trim(fieldvalue) == "") { 
  	return(true); 
  } 
  return(false); 
} 
	
function ltrim(fstr) {
	var str;
	var tStr;
	var i,k, j=0;
	str = fstr.toString();
	for(i=0; i<str.length; i++) {
		if (str.charAt(i) != " ")
			break;
	}
	tStr = str.substr(i);
	return tStr;		
}

function rtrim(fStr) {
	var str;
	var tStr;
	var i,k, j=0;
	str = fStr.toString();
	for (i=str.length-1; i>0; i--) {
		if(str.charAt(i) != " ") break;
	}
	tStr = str.substr(0,i+1)

	return tStr;		
}

function trim(fStr) {
	return ltrim(rtrim(fStr));
}

function isEmail(s) {  
	// there must be >= 1 character before @, so we
	// start looking at character position 1
	// (i.e. second character)
	var i = 1;
	var sLength = s.length;
	
	if(s.indexOf("..")!= -1) return false;
	if(s.indexOf("@.")!= -1) return false;
	if(s.indexOf(".@")!= -1) return false;
	if(s.indexOf("@@")!= -1) return false;
	if(s.charAt(0)=="@") return false;
	if(s.charAt(0)==".") return false;
	if(s.charAt(sLength-1)==".") return false;
	if (CheckForInvalidEmailChars(s) == 1 )return false;
		
	// look for @
	while ((i < sLength) && (s.charAt(i) != "@"))
	{ i++ }
	
	if(i+1<sLength) {
	  if(s.indexOf("@",i+1)!= -1) return false;
	}
	
	if((i >= sLength) || (s.charAt(i) != "@")) return false;
	else i += 2;
	
	// look for .
	while ((i < sLength) && (s.charAt(i) != "."))
	{ i++ }
	
	// there must be at least one character after the .
	if ((i >= sLength - 1) || (s.charAt(i) != ".")) return false;
	else return true;
}

function IsDigits(num) {
	for(i=0; i<num.length; i++) {
		if("0123456789".indexOf(num.charAt(i)) == -1) return false;
	}
	return true;
}

function CheckForInvalidEmailChars(strTxt) {
	var invalidChars, chrallow;
	invalidChars = "<>;:(),+=\/*&$%#^ ?~`";
	
	var i, n, mc, x;
	chrallow = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_.@-'"
	n = strTxt.length;
	for (i=0; i<n; i++) {
		mc = strTxt.charAt(i);
		if(chrallow.indexOf(mc,0) == -1) {
			return 1;
		}
		if(invalidChars.indexOf(mc,0) != -1) {
			return 1;
		}
		else { //check for space
			if((mc.indexOf('"',0)!=-1) || (mc.indexOf(' ',0) != -1)) {
				return 1;
			}
		}
	}
	return 0;
}

function CheckForInvalidChars(strTxt, charAllowList) {
	var i, n, mc, x;
	n = strTxt.length;
 	for(i=0; i<n; i++) {
		mc = strTxt.charAt(i);
		if(charAllowList.indexOf(mc,0) == -1) {
			return 1;
		}
	}
	return 0;
}
	
function CheckPassword(strTxt, charAllowList) {
	var i, n, mc, x;
	var numfnd, chrfnd, allfnd, repeatchr, repeatcnt, rptfnd;
	n = strTxt.length;
	numfnd = 0;
	chrfnd = 1;
	repeatchr = "";
	repeatcnt = 0;
	rptfnd = 0;
	for(i=0; i<n; i++) {
		mc = (strTxt.charAt(i));
		if(charAllowList.indexOf(mc,0)==-1) {
			chrfnd=0;
		}
		((repeatchr == mc)? (repeatcnt = repeatcnt) : (repeatcnt = 1));
		((repeatchr == mc)? (repeatcnt = repeatcnt + 1) : (repeatchr = mc));
		if (repeatcnt > 3) {
			rptfnd=1;
		}
		if(isNaN(mc)) {
			((numfnd == 0)? numfnd=0 : numfnd=1);
		}
		else {
			numfnd = 1;
		}
	}
	allfnd = 1; //ok
	if ((chrfnd == 0) || (numfnd == 0) /*|| (rptfnd == 1)*/) {
		allfnd = 0;
	}
	return allfnd;
}
