function isDate(fldname1,fldname2,fldname3,frmnumber,flag)
{
//
// All local variables declared here
//	
  var mdtDate,mdtMonth,mdtYear;
  var mnFormNum=eval(frmnumber);
  var mnCtr;
//
// Getting values for date, month and year from the form
//
  for (mnCtr=0;mnCtr<document.forms[mnFormNum].elements.length;mnCtr++)
  {
  	
    if ((document.forms[mnFormNum].elements[mnCtr].type=="text") && 				      (document.forms[mnFormNum].elements[mnCtr].name==fldname1))
    {
    	
      mdtDate=document.forms[mnFormNum].elements[mnCtr].value;
      
      }
    if ((document.forms[mnFormNum].elements[mnCtr].type=="text") && 				       (document.forms[mnFormNum].elements[mnCtr].name==fldname2))    		                    mdtMonth=document.forms[mnFormNum].elements[mnCtr].value; 
    if ((document.forms[mnFormNum].elements[mnCtr].type=="text") && 				       (document.forms[mnFormNum].elements[mnCtr].name==fldname3))
      mdtYear=document.forms[mnFormNum].elements[mnCtr].value;
  }
}

function isTime(hour,min,flag)
{
//
// All local variables declared here
//	
//
// Checking if the date,month and year are valid numbers
//
	
  if (isNaN(hour)||isNaN(min))
  {
    flag=1;
  }
  else
  {
//
// Checking for non-zero values 
//
    if ((hour<0)||(min<0))
    {
      flag=1;
    }
    else
    {
//
// Checking for the number of days in the corresponding month 
//
      if (min > 60||hour > 24)
      {
	flag=1;
      }      
    }
  }
  return flag;
 
} // end of function


function isGreaterTime(fromhour,frommin,tohour,tomin,flag)
{
//
// All local variables declared here
//	
//
// Check if the from time is greater than to time
//
 if (fromhour > tohour)
  {
    flag=1;
  }
  if (fromhour == tohour)
    {
      if (frommin >= tomin)
      {
	flag=1;
      }
   }
  return flag;
} // end of function


function isLessThanSysDate(fldname1,fldname2,fldname3,frmnumber,todaysdate,todaysmonth,todaysyear,flag)
{
//
// All local variables declared here
//	
  var mdtDate,mdtMonth,mdtYear;
  var mnFormNum=eval(frmnumber);
  var mnCtr;
//
// Getting values for date, month and year from the form
//
  for (mnCtr=0;mnCtr<document.forms[mnFormNum].elements.length;mnCtr++)
  {
    if ((document.forms[mnFormNum].elements[mnCtr].type=="text") && (document.forms[mnFormNum].elements[mnCtr].name==fldname1))
      mdtDate=document.forms[mnFormNum].elements[mnCtr].value;
    if ((document.forms[mnFormNum].elements[mnCtr].type=="text") && (document.forms[mnFormNum].elements[mnCtr].name==fldname2))
      mdtMonth=document.forms[mnFormNum].elements[mnCtr].value;
    if ((document.forms[mnFormNum].elements[mnCtr].type=="text") && (document.forms[mnFormNum].elements[mnCtr].name==fldname3))
      mdtYear=document.forms[mnFormNum].elements[mnCtr].value;
  }
//
// Check if the given date is greater than today's date
//
if (eval(mdtYear) < todaysyear)
  {
    flag=1;
  }
  if (eval(mdtYear) == (todaysyear))
    {
      if (eval(mdtMonth) < todaysmonth)
      {
	flag=1;
      }
      else 
      {
	if ((eval(mdtMonth)==todaysmonth) && (eval(mdtDate) <= todaysdate))
	{
	  flag=1;
	}
      }
    }
  return flag;


//
// Checking if the date,month and year are valid numbers
//
	
  if (isNaN(mdtDate)||isNaN(mdtMonth)||isNaN(mdtYear))
  {
    flag=1;
  }
  else
  {
//
// Checking for non-zero values 
//
    if ((mdtDate<=0)||(mdtMonth<=0)||(mdtYear<=1900))
    {
      flag=1;
    }
    else
    {
//
// Checking for the number of days in the corresponding month 
//
      if ((eval(mdtMonth)>12)||(eval(mdtDate)>31))
      {
	flag=1;
      }
      else
      {
	if ((eval(mdtMonth)==9)||(eval(mdtMonth)==4)||(eval(mdtMonth)==6)||(eval(mdtMonth)==11))
	{
	  if (eval(mdtDate) > 30)
	  {
	    flag=1;
	  }
	}
	if (eval(mdtMonth) == 2)
	{
          if (((eval(mdtYear) % 4) == 0) || ((eval(mdtYear) % 400) == 0))
	  {
	    if (eval(mdtDate) > 29)
	    {
	      flag=1;
	    }
	  }
	  else
	  {
	    if (eval(mdtDate) > 28)
	    {
	      flag=1;
	    }
	  }	
	}
      }
    }
  }
  return flag;
}

//To Check the isDate function for Month and Year
function isMonth(fldname2,fldname3,frmnumber,flag)
{
//
// All local variables declared here
//	
  var mdtMonth,mdtYear;
  var mnFormNum=eval(frmnumber);
  var mnCtr;
//
// Getting values for  month and year from the form
//
  for (mnCtr=0;mnCtr<document.forms[mnFormNum].elements.length;mnCtr++)
  {
    if ((document.forms[mnFormNum].elements[mnCtr].type=="text") && 
           (document.forms[mnFormNum].elements[mnCtr].name==fldname2))    		      
                mdtMonth=document.forms[mnFormNum].elements[mnCtr].value; 
    if ((document.forms[mnFormNum].elements[mnCtr].type=="text") && 	
          (document.forms[mnFormNum].elements[mnCtr].name==fldname3))
      mdtYear=document.forms[mnFormNum].elements[mnCtr].value;
  }
//
// Checking if the month and year are valid numbers
//
	
  if (isNaN(mdtMonth)||isNaN(mdtYear))
  {
    flag=1;
  }
  else
  {
//
// Checking for non-zero values 
//
    if ((mdtMonth<=0)||(mdtYear<=999))
    {
      flag=1;
    }
    else
    {
//
// Checking for the number of days in the corresponding month 
//
      if ((eval(mdtMonth)>12) || (eval(mdtMonth)< 0))
      {
	flag=1;
      }
   
      
    }
  }
  return flag;
}

function isGreaterDate(fldname1,fldname2,fldname3,frmnumber,todaysdate,todaysmonth,todaysyear,flag)
{
//
// All local variables declared here
//	
  var mdtDate,mdtMonth,mdtYear;
  var mnFormNum=eval(frmnumber);
  var mnCtr;
//
// Getting values for date, month and year from the form
//
  for (mnCtr=0;mnCtr<document.forms[mnFormNum].elements.length;mnCtr++)
  {
    if ((document.forms[mnFormNum].elements[mnCtr].type=="text") && 				       (document.forms[mnFormNum].elements[mnCtr].name==fldname1))
      mdtDate=document.forms[mnFormNum].elements[mnCtr].value;
    if ((document.forms[mnFormNum].elements[mnCtr].type=="text") && 				      (document.forms[mnFormNum].elements[mnCtr].name==fldname2))
      mdtMonth=document.forms[mnFormNum].elements[mnCtr].value;
    if ((document.forms[mnFormNum].elements[mnCtr].type=="text") && 				       (document.forms[mnFormNum].elements[mnCtr].name==fldname3))
      mdtYear=document.forms[mnFormNum].elements[mnCtr].value;
  }
//
// Check if the given date is greater than today's date
//
if (eval(mdtYear) < todaysyear)
  {
    flag=1;
  }
  if (eval(mdtYear) == (todaysyear))
    {
      if (eval(mdtMonth) < todaysmonth)
      {
	flag=1;
      }
      else 
      {
	if ((eval(mdtMonth)==todaysmonth) && (eval(mdtDate) < todaysdate))
	{
	  flag=1;
	}
      }
    }
  return flag;
}

function isStrictlyGreaterDate(fldname1,fldname2,fldname3,frmnumber,todaysdate,todaysmonth,todaysyear,flag)
{
//
// All local variables declared here
//	
  var mdtDate,mdtMonth,mdtYear;
  var mnFormNum=eval(frmnumber);
  var mnCtr;
//
// Getting values for date, month and year from the form
//
  for (mnCtr=0;mnCtr<document.forms[mnFormNum].elements.length;mnCtr++)
  {
    if ((document.forms[mnFormNum].elements[mnCtr].type=="text") && 				       (document.forms[mnFormNum].elements[mnCtr].name==fldname1))
      mdtDate=document.forms[mnFormNum].elements[mnCtr].value;
    if ((document.forms[mnFormNum].elements[mnCtr].type=="text") && 				      (document.forms[mnFormNum].elements[mnCtr].name==fldname2))
      mdtMonth=document.forms[mnFormNum].elements[mnCtr].value;
    if ((document.forms[mnFormNum].elements[mnCtr].type=="text") && 				       (document.forms[mnFormNum].elements[mnCtr].name==fldname3))
      mdtYear=document.forms[mnFormNum].elements[mnCtr].value;
  }
//
// Check if the given date is greater than today's date
//
if (eval(mdtYear) < todaysyear)
  {
    flag=1;
  }
  if (eval(mdtYear) == (todaysyear))
    {
      if (eval(mdtMonth) < todaysmonth)
      {
	flag=1;
      }
      else 
      {
	if ((eval(mdtMonth)==todaysmonth) && (eval(mdtDate) <= todaysdate))
	{
	  flag=1;
	}
      }
    }
  return flag;
}



function isAlphaNum(c)
         {
          return ( ((c >= "a") && (c <= "z")) || ((c >= "A") && (c <= "Z")) || ((c >= "0") && (c <= "9")))
         }

function isLetter(c)
         {
          return ( ((c >= "a") && (c <= "z")) || ((c >= "A") && (c <= "Z")))
         }




//To check whether the Month and Year values are greater the Current Month and year

function isGreaterMonth(fldname2,fldname3,frmnumber,todaysmonth,todaysyear,flag)
{

//
// All local variables declared here
//	
  var mdtMonth,mdtYear;
  var mnFormNum=eval(frmnumber);
  var mnCtr;
//
// Getting values for month and year from the form
//
  for (mnCtr=0;mnCtr<document.forms[mnFormNum].elements.length;mnCtr++)
  {
    if ((document.forms[mnFormNum].elements[mnCtr].type=="text") &&
       (document.forms[mnFormNum].elements[mnCtr].name==fldname2))
      mdtMonth=document.forms[mnFormNum].elements[mnCtr].value;
    if ((document.forms[mnFormNum].elements[mnCtr].type=="text") && 				      
     (document.forms[mnFormNum].elements[mnCtr].name==fldname3))
      mdtYear=document.forms[mnFormNum].elements[mnCtr].value;
  }
//
// Check if the given year or Month is greater than today's Month and Year
//
if (eval(mdtYear) < todaysyear)
  {
    flag=1;
  }
  if (eval(mdtYear) == (todaysyear))
    {
      if (eval(mdtMonth) <= todaysmonth)
      {
	flag=1;
      }
      
    }
  return flag;
}

/****************************************************************/

// isEmail (STRING s [, BOOLEAN emptyOK])
// 
// Email address must be of form a@b.c ... in other words:
// * there must be at least one character before the @
// * there must be at least one character before and after the .
// * the characters @ and . are both required
//
// For explanation of optional argument emptyOK,
// see comments of function isInteger.

function isEmail(thisObj)
{
var s=thisObj.value;
var isOkay = true;
var i = 1;
var sLength = s.length;
var AtCount = 0;
var dotcount=0;
var dotpos=0;
var atpos=0;

if (isEmpty(s))
     isOkay = false;

if ((s.charAt(0)=="@")||(s.charAt(0)=="."))
     isOkay = false;

for (i=1;i<sLength;i++)
{
	if (s.charAt(i)=="@")
		AtCount++;
	if (s.charAt(i) == ".")
		dotcount++;
}

if (AtCount == 0 || dotcount == 0)
     isOkay = false;
     

if (AtCount > 1 )
     isOkay = false;

for (i=1;i<sLength;i++)
{
	if (s.charAt(i)=="@"){
		atpos=i;
		break;
		}
}

if (!isAlphaNum(s.charAt(i+1)))
     isOkay = false;

for (k=1;k<sLength;k++)
{
	if (s.charAt(k)==".")
	{
		if (!isAlphaNum(s.charAt(k+1)))
		     isOkay = false;
		dotpos=k;
	}
}

if (dotpos<atpos)
     isOkay = false;
	
if (!isLetter(s.charAt(dotpos+1)))
     isOkay = false;

if (!isOkay)
{
	alert("Invalid e-mail address. Should be of the format xyz@abc.com");
	thisObj.focus();
}

return isOkay;
}

/**********************************************************************
Function Name :  validateAlphaNum
Purpose       :  This function checks for the valid Name and digits in the input text  boxes like which support alpha numeric characters.
Input	      :  the Current Form, the Field
Output        :  Returns true or false 
***********************************************************************/

function validateAlphaNum(field) {
	var valid = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"
	var ok = "yes";
	var temp;
	for (var i=0; i<field.value.length; i++)
	{
		temp = "" + field.value.substring(i, i+1);
		if (valid.indexOf(temp) == "-1") ok = "no";
	}	
	if (ok == "no") {
		alert("Invalid entry! Only Alpha Numerics are accepted!");
		field.focus();
		field.select();
        return false
	}
	return true;
}



/****************************************************************/

// Check whether string s is empty.

function isEmpty(s)
{   return ((s == null) || (s.length == 0))
}

/****************************************************************/

// Returns true if string s is empty or 
// whitespace characters only.

function isWhitespace (s)

{   var i;
    var whitespaces = "\t\n\r";
    // Is s empty?
    if (isEmpty(s)) return true;

    // Search through string's characters one by one
    // until we find a non-whitespace character.
    // When we do, return false; if we don't, return true.

    for (i = 0; i < s.length; i++)
    {   
	// Check that current character isn't whitespace.
	var c = s.charAt(i);

	if (whitespaces.indexOf(c) == -1) return false;
    }

    // All characters are whitespace.
    return true;
}

function  removeWhiteSpace(s)
{
    var i;
    var newStr ="";
    var whitespaces = "\t\n\r";
    // Is s empty?
    if (isEmpty(s)) return newStr;

    // Search through string's characters one by one
    // until we find a non-whitespace character.
    // When we do, return false; if we don't, return true.

    for (i = 0; i < s.length; i++)
    {   
	// Check that current character isn't whitespace.
	var c = s.charAt(i);

	if (whitespaces.indexOf(c) == -1)
	   newStr += s.charAt(i);
	else
	   newStr += " ";
    }

    // All characters are whitespace.
    return newStr;
}

