function isContains (s,mask,isEmptyOK)
{   var arr;
    var count;
    if ((s.length==0)&& isEmptyOK) return true;
     if ((isWhitespace(s))&& (!isEmptyOK)) return false;
    arr=mask.split(',');
    count=arr.length;
    for (var i=0;i<count;i++)
    {if (s.indexOf(arr[i])==-1)
      return false;
    }
    return true;  
}
function isOrContains (s,mask,isEmptyOK)
{   var arr;
    var count;
    if ((s.length==0)&& isEmptyOK) return true;
     if ((isWhitespace(s))&& (!isEmptyOK)) return false;
    arr=mask.split(',');
    count=arr.length;
    for (var i=0;i<count;i++)
    {if (s.indexOf(arr[i])>-1)
      return true;
    }
    return false;  
}
function isMaxlength(s,l,isEmptyOK)
{ if ((isWhitespace(s))&& isEmptyOK) return true;
   if ((isWhitespace(s))&& (!isEmptyOK)) return false; 
  if (s.length>l)
   return false;
   else
   return true;
}
function isMinlength(s,l,isEmptyOK)
{ if ((isWhitespace(s))&& isEmptyOK) return true;
   if ((isWhitespace(s))&& (!isEmptyOK)) return false;
  if (s.length<l)
   return false;
   else
   return true;
}

function isAlphabetic (s,isEmptyOK)

{   var i;

   if ((isWhitespace(s))&& isEmptyOK) return true;
     if ((isWhitespace(s))&& (!isEmptyOK)) return false;
    for (i = 0; i < s.length; i++)
    {  var c = s.charAt(i);
        if (!isLetter(c))
        return false;
    }
    return true;
}

function isAlphanumeric (s,isEmptyOK)

{   var i;

    if ((isWhitespace(s))&& isEmptyOK) return true;
     if ((isWhitespace(s))&& (!isEmptyOK)) return false;
    for (i = 0; i < s.length; i++)
    {   var c = s.charAt(i);

        if (! (isLetter(c) || isDigit(c) ) )
        return false;
    }

    return true;
}


function isFloat (s,isEmptyOK){
	var i;
	if ((isWhitespace(s))&& isEmptyOK) return true;
	if ((isWhitespace(s))&& (!isEmptyOK)) return false;
	if (s == '.') return false;
	for (i = 0; i < s.length; i++){
		var c = s.charAt(i);
		if (!((c =='.') || (isDigit(c))) ) return false;
	}
	return true;
}

function isDateStr(s,isEmptyOK)
{ var arr;
  if (isWhitespace(s)) return isEmptyOK;
  arr=s.split("/");
  if (arr.length!=3) return false;
  return isDate(arr[2],arr[1],arr[0]);
  
}

function isDay (s)
{    if (s.charAt(0)=='0')
     s=s.substring(1);
    return isIntegerInRange (s, 1, 31);
}
function isMonth (s)
{  if (s.charAt(0)=='0')
     s=s.substring(1);
    return isIntegerInRange (s, 1, 12);
}

function isYear (s)
{  
    return ((s.length == 2) || ((s.length == 4) && (s > 1752)));
}


function isIntegerInRange (s, a, b)
{  

    if (!isInteger(s, false)) return false;
    var num = parseInt (s);
    return ((num >= a) && (num <= b));
}


function isLetter (c)
{   return ( ((c >= "a") && (c <= "z")) || ((c >= "A") && (c <= "Z")) )
}

function isDigit (c)
{   return ((c >= "0") && (c <= "9"))
}


function isLetterOrDigit (c)
{   return (isLetter(c) || isDigit(c))
}
function isDate (year, month, day)
{   
    if (! (isYear(year, false) && isMonth(month, false) && isDay(day, false))) return false;

    var intYear = parseInt(year);
    var intMonth = parseInt(month);
    var intDay = parseInt(day);

   
    if (intDay > daysInMonth[intMonth]) return false; 

    if ((intMonth == 2) && (intDay > daysInFebruary(intYear))) return false;

    return true;
}
function daysInFebruary (year)
{   return (  ((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0) ) ) ? 29 : 28 );
}
function isInteger (s)

{   var i;

     for (i = 0; i < s.length; i++)
    {  var c = s.charAt(i);
        if (!isDigit(c)) return false;
    }
    return true;
}


function isMatch(mstr, pat,isEmptyOK)
{
  var idx=0;
  var chrAns='';
  var chrPat='';
 
 if ((isWhitespace(mstr))&& isEmptyOK) return true; 
  if ((isWhitespace(mstr))&& (!isEmptyOK)) return false;
 
 for (i = 0;i<pat.length;i++)
  
  {  
    if (i > mstr.length) 
      chrAns = " ";
    else
      chrAns = mstr.charAt(i);
     
       chrPat =pat.charAt(i);
       
      switch  (chrPat)
      {
        case 'L' :
            if (! isAlphabetic(chrAns))
              return false;
              break;
        case 'N':
            if (! isFloat(chrAns))
              return false;
              break;
        case 'A':
             if (! isAlphanumeric(chrAns))
              return false;
              break;
       case 'l' :
            if ((! isAlphabetic(chrAns)) && (chrAns != ' ')) 
              return false;
              break;
        case 'n' :
            if ((! isFloat(chrAns)) && (chrAns != ' '))
              return false;
              break;
        case 'a' :
             if ((! isAlphanumeric(chrAns)) && (chrAns !=' '))
              return false;
              break;
       default :
             if (chrPat != chrAns)
              return false;
              break;
       }
 }
   
    if (i < mstr.length )
       return false;
   return true; 
    
}


function isEmpty(s)
{   return ((s == null) || (s.length == 0))
}

function isWhitespace (s)

{   var i;

   if (isEmpty(s)) return true;

    for (i = 0; i < s.length; i++)
    {   if (s.charAt(i)!=' ') return false;
    }

    return true;
}

