function JS_IsEmail(PREmail)
{/*variable declarations*/var INTEmailLen, INTDotFound, INTAtFound, ret, INTAtCount;/*initialization*/ret=false;INTDotFound=0;INTAtFound=0;INTAtCount=0;INTEmailLen=PREmail.length;
 /*Regular Expression check*/if (PREmail.search('^[\\w-_\.]*[\\w-_\.]\@[\\w]\.+[\\w]+[\\w]$') == -1){/*document.write("FAILED REGEXP<BR>");*/return false;}
 /*main loop*/do {if ((INTEmailLen < PREmail.length)&&(INTEmailLen>=1)&&(PREmail.substr(INTEmailLen,1)==".")) {INTDotFound=INTEmailLen;}if ((INTEmailLen < PREmail.length)&&(INTEmailLen>=1)&&(PREmail.substr(INTEmailLen,1)=="@")&&(INTDotFound > INTEmailLen+1)) {ret=true;INTAtFound=INTEmailLen;INTAtCount=INTAtCount+1;}INTEmailLen=INTEmailLen-1;} while (INTEmailLen >= 0);
 /*end checks*/if (ret==false){/*document.write("FAILED LOOP<BR>");*/return false;}if (INTAtCount > 1) {/*document.write("FAILED ATCOUNT<BR>");*/return false;}if (PREmail.substr(PREmail.length,1)=="."){/*document.write("FAILED LASTDOT CHECK<BR>");*/return false;}
 return ret;}

function isANum(prValue){
  var flag = true;
	if (prValue.length == 0)
	  {
		  flag = false;
		}
  for (i=0; i < prValue.length; i++)
 	  {
	   if (!((prValue.charAt(i) >= 0) && (prValue.charAt(i) <= 9)))
            {
              flag = false;	
		} 
        }
	return(flag);
}

function isNumIsh(prValue){
  var flag = true;
	if (prValue.length == 0)
	  {
		  flag = false;
		}
  for (i=0; i < prValue.length; i++)
 	  {
	   if (!((prValue.charAt(i) >= 0) && (prValue.charAt(i) <= 9)))
            {
			  switch (prValue.charAt(i))
			  {
			    case " ":
                      case "-":
                        break;
                      default:
                        flag = false;	
                    }
		} 
        }
	return(flag);
}

function isADate(prDay, prMonth, prYear)
{
blLeapYear = false; intDaysInFebThisYear = 28;
// Validate the year

   
    // Get the current date to check against
      dtCurrentDate = new Date();

    if (!isANum(prYear)) {return(false);}  

    /*
    if ((prYear >= dtCurrentDate.getYear()) || (prYear <=dtCurrentDate.getYear()-100))
    {
      return false;
    }
    */
    
    // Check for the leap year
    if ((prYear%400==0) || (prYear%4==0 && prYear%100!=0)) { blLeapYear = true; intDaysInFebThisYear = 29; }

// Validate the month
    var intMonth = -1;
     switch ((prMonth.toUpperCase()).replace(" ", ""))
     {
      case "JAN":case "JANUARY":case "1":case "01":
        intMonth = 1;strMonthType = "days31";break;
      case "FEB":case "FEBRUARY":case "2":case "02":
        intMonth = 2;strMonthType = "daysFeb";break;
      case "MAR":case "MARCH":case "3":case "03":
        intMonth = 3;strMonthType = "days31";break;
      case "APR":case "APRIL":case "4":case "04":
        intMonth = 4;strMonthType = "days30";break;
      case "MAY":case "MAY":case "5":case "05":
        intMonth = 5;strMonthType = "days31";break;
      case "JUN":case "JUNE":case "6":case "06":
        intMonth = 6;strMonthType = "days30";break;
      case "JUL":case "JULY":case "7":case "07":
        intMonth = 7;strMonthType = "days31";break;
      case "AUG":case "AUGUST":case "8":case "08":
        intMonth = 8;strMonthType = "days31";break;
      case "SEP":case "SEPTEMBER":case "9":case "09":
        intMonth = 9;strMonthType = "days30";break;
      case "OCT":case "OCTOBER":case "10":
        intMonth = 10;strMonthType = "days31";break;
      case "NOV":case "NOVEMBER":case "11":
        intMonth = 11;strMonthType = "days30";break;
      case "DEC":case "DECEMBER":case "12":
        intMonth = 12;strMonthType = "days31";break;
      default:
        return(false);
     }

  
// Validate the day
    if (!isANum(prDay)) {return(false);}
    if (prDay < 1 || prDay > 31) {return false;}

    switch (strMonthType)
    {
      case "days31":
        break;
      case "daysFeb":
        if (prDay > intDaysInFebThisYear) {return false;}
        break;
      case "days30":
        if (prDay > 30) {return false;}
        break;
      default:
        return(false);
    }
return true;
}
