
// TextBox Validation

var whitespace = " \t\n\r"

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++)
    {   
       var c = s.charAt(i);
       if (whitespace.indexOf(c) == -1) return false;
    }
  return true;
}

//  Date Validation

function isValidDate(dateStr)
{
			var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/;
			var matchArray = dateStr.match(datePat);

			if (matchArray == null)
			{
				alert(dateStr + " Date is not in a valid format.")
				return false;
			}

			day   = matchArray[1];
			month = matchArray[3];
			year  = matchArray[4];

			if (month < 1 || month > 12)
			{
				alert("Month must be between 1 and 12.");
				return false;
			}

			if (day < 1 || day > 31)
			{
				alert("Day must be between 1 and 31.");
				return false;
			}

			if ((month==4 || month==6 || month==9 || month==11) && day==31)
			{
				alert("Month "+month+" doesn't have 31 days!")
				return false;
			}

			if (month == 2)
			{
				var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
				if (day>29 || (day==29 && !isleap))
				{
					alert("February " + year + " doesn't have " + day + " days!");
					return false;
				}
			}


			if(year.substring(0,1) == 0)
			{
				alert("Year Should Start from 1 otr above");
				return false;
			}
			return true;
	}
		

// Integer Validation

function isDigit (c)
{ 
  return ((c >= "0") && (c <= "9"))
}

function isInteger (s)

{   var i;


    if (isEmpty(s)) 
       if (isInteger.arguments.length == 1) return false;
       else return (isInteger.arguments[1] == true);

      // Search through string's characters one by one
      // until we find a non-numeric character.
      // When we do, return false; if we don't, return true.

    for (i = 0; i < s.length; i++)
    {   
      // Check that current character is number.
        var c = s.charAt(i);       
        if (!isDigit(c)) return false;
    } 
      // All characters are numbers.
    return true;
}



// Float Validation

var decimalPointDelimiter = "."

function isFloat (s)
{
    var i;
    var seenDecimalPoint = false;

    if (isEmpty(s)) 
       if (isFloat.arguments.length == 1) return false;
       else return (isFloat.arguments[1] == true);

    if (s == decimalPointDelimiter) return false;

    // Search through string's characters one by one
    // until we find a non-numeric character.
    // When we do, return false; if we don't, return true.

    for (i = 0; i < s.length; i++)
    {   
        // Check that current character is number.
        var c = s.charAt(i);

        if ((c == decimalPointDelimiter) && !seenDecimalPoint) seenDecimalPoint = true;
        else if (!isDigit(c)) return false;
    }

    // All characters are numbers.
    return true;
}


// E-Mail Validation

function isEmail (s)
{   if (isEmpty(s)) 
       if (isEmail.arguments.length == 1) return false;
       else return (isEmail.arguments[1] == true);
   
    // is s whitespace?
    if (isWhitespace(s)) return false;
    
    // 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;

    // look for @
    while ((i < sLength) && (s.charAt(i) != "@"))
    { i++
    }

    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;
}



