function isDateFormat(str)
{
	var strPat = /^(\d{1,2})(\/{1})(\d{1,2})\2(\d{4}|\d{2})$/;
	var strArray;
	str = str.trim();
	if(str.length > 0)
	{
		strArray = str.match(strPat);
		return strArray;
	}
	return null;
}
function isLeapYear(year)
{
  return(year%4 == 0 && (year%100 != 0 || year%400 == 0));
}
function isDate(str)
{
	str = str.trim();
	if(str.length > 0)
	{
		var strArray = isDateFormat(str);
		if(strArray == null)
			return false;
		iMonth = parseInt(makeDec(strArray[1]));
		iDate  = parseInt(makeDec(strArray[3]));
		iYear  = parseInt(strArray[4]);
		iYear = iYear<99?parseInt("19"+remDec(iYear)):iYear;
		if (iMonth < 1 || iMonth > 12 || iDate < 1 || iDate > 31 || iYear < 1000 || iYear > 9999)
			return false;
		else if ((iMonth == 4 || iMonth == 6 || iMonth == 9 || iMonth == 11)
              && (iDate > 30))
			return false;
		else if ((iMonth == 2 ) && (iDate > 29))
			return false;
		else if ((iMonth == 2 ) && (!(isLeapYear(iYear))) && (iDate > 28))
			return false;
	}
	return true;
}
function valEmail(emailStr,min)
{
	if(min==0 && emailStr=="")
		return true;
	var emailPat=/^(.+)@(.+)$/
	var matchArray=emailStr.match(emailPat)
	if (matchArray==null)
		return false
	var indx = emailStr.lastIndexOf("@")
	var user = emailStr.substring(0,indx)
	var domain=matchArray[2]
	if(user.indexOf("@") != -1 || user.indexOf(" ") != -1)
		return false
	var pat=/^[a-zA-Z0-9].*$/
	//alert(pat);
	matchArray = user.match(pat)
	if (matchArray==null)
		return false
	pat = /^([a-zA-Z0-9]+[\_.-])+[a-zA-Z]{2,7}$/
	matchArray = domain.match(pat)
	if (matchArray==null)
		return false;
	var arr = emailStr.split(/\./)
	var ext = arr[arr.length -1]
	ext = ext.toUpperCase()
	var arrDomain = new Array ("aero", "biz", "com", "coop", "edu", "gov", "info", "int", "mil", "museum",
				"name", "net", "or" ,"org", "ac","ad","ae","af","ag","ai","al","am","an","ao","aq","ar","as","at","au",
				"aw","az","ba","bb","bd","be","bf","bg","bh","bi","bj","bm","bn","bo","br","bs","bt","bv","bw","by","bz",
				"ca","cc","cd","cf","cg","ch","ci","ck","cl","cm","cn","co","cr","cu","cv","cx","cy","cz","de","dj","dk",
				"dm","do","dz","ec","ee","eg","eh","er","es","et","fi","fj","fk","fm","fo","fr","ga","gd","ge","gf","gg",
				"gh","gi","gl","gm","gn","gp","gq","gr","gs","gt","gu","gw","gy","hk","hm","hn","hr","ht","hu","id","ie",
				"il","im","in","io","iq","ir","is","it","je","jm","jo","jp","ke","kg","kh","ki","km","kn","kp","kr","kw",
				"ky","kz","la","lb","lc","li","lk","lr","ls","lt","lu","lv","ly","ma","mc","md","mg","mh","mk","ml","mm",
				"mn","mo","mp","mq","mr","ms","mt","mu","mv","mw","mx","my","mz","na","nc","ne","nf","ng","ni","nl","no",
				"np","nr","nu","nz","om","pa","pe","pf","pg","ph","pk","pl","pm","pn","pr","ps","pt","pw","py","qa","re",
				"ro","ru","rw","sa","sb","sc","sd","se","sg","sh","si","sj","sk","sl","sm","sn","so","sr","st","sv","sy",
				"sz","tc","td","tf","tg","th","tj","tk","tm","tn","to","tp","tr","tt","tv","tw","tz","ua","ug","uk","um",
				"us","uy","uz","va","vc","ve","vg","vi","vn","vu","wf","ws","ye","yt","yu","za","zm","zw")
	for (i=0; i<arrDomain.length; i++)
		if(ext==arrDomain[i].toUpperCase())
			return true
	return false 
}
function validatePhone(phone)
{
	if (!isOnlyAllowed(phone, "1234567890 x().-/\\"))
		return false;
    if ((phone.length == 0) && (minLen == 0))
		return true;
    else if ((phone.length >= minLen) && (phone.length <= maxLen))
		return true;
	return false;
}
function isUSZip(value)
{
	return isRegExp(value,/(^\d{5}(\-\d{4})?$)|(^\d{9}$)/);
}
function isCanadianZip(value)
{
	return isRegExp(value,/((^[a-zA-Z]{1}\d{1}[a-zA-Z]{1}\s{1}\d{1}[a-zA-Z]{1}\d{1})$)|((^[a-zA-Z]{1}\d{1}[a-zA-Z]{1}\d{1}[a-zA-Z]{1}\d{1})$)/);
}
function validateString(expression, minLen, maxLen)
{
	if ((expression.length == 0) && (minLen == 0))
		return true;
	if ((expression.length >= minLen) && (expression.length <= maxLen))
		return true;
	return false;
}
function validateAlphaNum(expression, minLen, maxLen)
{
	if (!isOnlyAllowed(expression, "abcdefghijklmnopqrstuvwxyz1234567890-\'_ \."))
		return false;
	if ((expression.length == 0) && (minLen == 0))
		return true;
	if ((expression.length >= minLen) && (expression.length <= maxLen))
		return true;
	return false;
}
function validateAlpha(expression, minLen, maxLen)
{
    if (!isOnlyAllowed(expression, "abcdefghijklmnopqrstuvwxyz-\'_ \."))
		return false;
	if ((expression.length == 0) && (minLen == 0))
        return true;
	if ((expression.length >= minLen) && (expression.length <= maxLen))
		return true;
	return false;
}
function validateInt(value,minLen,maxLen)
{
	if(!isRegExp(value,/^(-|\d)\d*$/))
		return false;
	if(value >=minLen && value <=maxLen)
		return true;
	return false;
}
function validateFloat(value,minLen,maxLen)
{
	if(!isRegExp(value,/^(-|\d*)(\d*|\.\d{1,})$/))
		return false;
	if(value >=minLen && value <=maxLen)
		return true;
	return false;
}
function validateNumeric(value,minLen,maxLen)
{
	return validateFloat(value,minLen,maxLen);
}
