
function chkDateValid(obj)
{

  if(ETGTrim(obj.value)!="")
  {
	var boolFlagDate = isDate(obj);
	if(!boolFlagDate)
	{		
		obj.value="";							
		obj.focus();
		obj.select();
		
		return false;
	}			
  }
}


function isDate(gField)
{

     var inputStr = ETGTrim(gField.value);
     // convert hyphen delimiters to slashes
     while (inputStr.indexOf("-") != -1)
     {
          inputStr = replaceString(inputStr,"-","/");
     }
     while (inputStr.indexOf(" ") != -1)
     {
          inputStr = replaceString(inputStr," ","/");
     }
     var delim1 = inputStr.indexOf("/");
     var delim2 = inputStr.lastIndexOf("/");
     if (delim1 != -1 && delim1 == delim2)
     {
          // there is only one delimiter in the string
          alert("Enter a Valid Date : mm/dd/yyyy");
			gField.value="";
          return false;
     }
     if (delim1 != -1)
     {
          // there are delimiters; extract component values
          var mm = parseInt(inputStr.substring(0,delim1),10);
          var dd = parseInt(inputStr.substring(delim1 + 1,delim2),10);
          var yyyy = parseInt(inputStr.substring(delim2 + 1, inputStr.length),10);
     }
     else
     {
          // there are no delimiters; extract component values
          var dd = parseInt(inputStr.substring(0,2),10);
          var mm = parseInt(inputStr.substring(2,4),10);
          var yyyy = parseInt(inputStr.substring(4,inputStr.length),10);
     }
     if (isNaN(mm) || isNaN(dd) || isNaN(yyyy))
     {
          // there is a non-numeric character in one of the component values
          alert("Enter a Valid Date : mm/dd/yyyy");
          gField.value="";
            return false;
     }
     if (mm < 1 || mm > 12)
     {
          // month value is not 1 thru 12
          alert("Enter a Valid Date : mm/dd/yyyy");
          gField.value="";
           return false;
     }
     if (dd < 1 || dd > 31)
     {
          // date value is not 1 thru 31
          alert("Enter a Valid Date : mm/dd/yyyy");
          gField.value="";
            return false;
     }

     // validate year, allowing for checks between year ranges
     // passed as parameters from other validation functions
     if (yyyy < 100)
     {
          // entered value is two digits, which we allow for 1930-2029
          if (yyyy >= 30)
          {
               yyyy += 1900;
          }
          else
          {
               yyyy += 2000;
          }
     }

     var today = new Date();
//	 var test=new Date(gField.value)
//		 alert(test)
//	 var tmpDD=today.getDate();
//	 var tmpMM=today.getMonth();
//	 tmpMM++;
     var tmpYYYY = today.getFullYear();
//	 var tmpToday=tmpDD + "/" + tmpMM + "/" + tmpYYYY
     var minYear = tmpYYYY - 150;
     var maxYear = tmpYYYY + 60;
     //alert (minYear);
     //alert (maxYear);
     // function called with specific year range parameters
	 
	 //if (gField.name!="pass_iss_date" && gField.name!="pass_iss_exp_date" && gField.name!="txt_arr_date" && gField.name!="txt_int_date")
	 //{
		if (yyyy <= minYear || yyyy >= maxYear)
	     {
			  // entered year is outside of range passed from calling function
			  alert("Enter a Valid Date : mm/dd/yyyy");
	          gField.value="";
			  return false;
	     }
	// }
	// else
	//{
		yyyystring=yyyy.toString();
		 if(yyyystring.length!=4)
		{
			  alert("Enter a Valid Date : mm/dd/yyyy");
	        gField.value="";
			  return false;	
		}
	// }
	 
     if (!checkMonthLength(mm,dd))
     {
                return false;
     }
     if (mm == 2)
     {
          if (!checkLeapMonth(mm,dd,yyyy))
          {
                          return false;
          }
     }
     // put the Informix-friendly format back into the field
	    gField.value = monthDayFormat(mm) + "/" + monthDayFormat(dd) + "/" +  yyyy ;
	   
     return true;
}

function isDatenew(gValue)
{

     var inputStr = gValue;
     // convert hyphen delimiters to slashes
     while (inputStr.indexOf("-") != -1)
     {
          inputStr = replaceString(inputStr,"-","/");
     }
     while (inputStr.indexOf(" ") != -1)
     {
          inputStr = replaceString(inputStr," ","/");
     }
     var delim1 = inputStr.indexOf("/");
     var delim2 = inputStr.lastIndexOf("/");
     if (delim1 != -1 && delim1 == delim2)
     {
          // there is only one delimiter in the string
          alert("Enter a Valid Date");
          
          return false;
     }
     if (delim1 != -1)
     {
          // there are delimiters; extract component values
          var mm = parseInt(inputStr.substring(0,delim1),10);
          var dd = parseInt(inputStr.substring(delim1 + 1,delim2),10);
          var yyyy = parseInt(inputStr.substring(delim2 + 1, inputStr.length),10);
     }
     else
     {
          // there are no delimiters; extract component values
          var dd = parseInt(inputStr.substring(0,2),10);
          var mm = parseInt(inputStr.substring(2,4),10);
          var yyyy = parseInt(inputStr.substring(4,inputStr.length),10);
     }
     if (isNaN(mm) || isNaN(dd) || isNaN(yyyy))
     {
          // there is a non-numeric character in one of the component values
          alert("Enter a Valid Date");
           return false;
     }
     if (mm < 1 || mm > 12)
     {
          // month value is not 1 thru 12
          alert("Enter a Valid Date");
          return false;
     }
     if (dd < 1 || dd > 31)
     {
          // date value is not 1 thru 31
          alert("Enter a Valid Date");
          return false;
     }

     // validate year, allowing for checks between year ranges
     // passed as parameters from other validation functions
     if (yyyy < 100)
     {
          // entered value is two digits, which we allow for 1930-2029
          if (yyyy >= 30)
          {
               yyyy += 1900;
          }
          else
          {
               yyyy += 2000;
          }
     }

     var today = new Date();
//	 var test=new Date(gField.value)
//		 alert(test)
//	 var tmpDD=today.getDate();
//	 var tmpMM=today.getMonth();
//	 tmpMM++;
     var tmpYYYY = today.getFullYear();
//	 var tmpToday=tmpDD + "/" + tmpMM + "/" + tmpYYYY
     var minYear = tmpYYYY - 100;
     var maxYear = tmpYYYY + 3;
     //alert (minYear);
     //alert (maxYear);
     // function called with specific year range parameters
	 
	 if (gField.name!="pass_iss_date" && gField.name!="pass_iss_exp_date" && gField.name!="txt_arr_date" && gField.name!="txt_int_date")
	 {
		if (yyyy <= minYear || yyyy >= maxYear)
	     {
			  // entered year is outside of range passed from calling function
			  alert("Enter a Valid Date");
	          gField.focus();
		      gField.select();
			  return false;
	     }
	 }
	 else
	{
		yyyystring=yyyy.toString();
		 if(yyyystring.length!=4)
		{
			  alert("Enter a Valid Date");
	          
			  return false;	
		}
	}
	 
     if (!checkMonthLength(mm,dd))
     {
        
          return false;
     }
     if (mm == 2)
     {
          if (!checkLeapMonth(mm,dd,yyyy))
          {
              
               return false;
          }
     }
     // put the Informix-friendly format back into the field
     gField.value = monthDayFormat(mm) + "/" + monthDayFormat(dd) + "/" +  yyyy ;
     return true;
}

function monthDayFormat(str)
{
     while (str.length <=2)
     {
          str = "0" + str;
     }
     return str;
}
// check the entered month for too high a value
function checkMonthLength(mm,dd)
{
     var months = new Array("","January","February","March","April","May","June","July","August","September","October","November","December")
     if ((mm == 4 || mm == 6 || mm == 9 || mm == 11) && dd > 30)
     {
          alert(months[mm] + " has only 30 days.");
          return false;
     }
     else
     {
          if (dd > 31)
          {
          alert(months[mm] + " has only 31 days.");
          return false;
          }
     }
     return true;
}

// check the entered February date for too high a value 
function checkLeapMonth(mm,dd,yyyy)
{
     if (yyyy % 4 > 0 && dd > 28)
     {
          alert("February of " + yyyy + " has only 28 days.");
          return false;
     }
     else
     {
          if (dd > 29)
          {
               alert("February of " + yyyy + " has only 29 days.");
               return false;
          }
     }
     return true;
}

//     Valid date
function isValidDate(gField)
{
     var today = new Date();
     var tmpDD = today.getDate();
     var tmpMM = today.getMonth();
     tmpMM++ ;
     var tmpYYYY = today.getFullYear();
     var tmpToday =  tmpMM + "/" + tmpDD + "/" + tmpYYYY ;
     if(yymmdd(gField.value) > yymmdd(tmpToday));
     {
          alert("Cannot Enter date in the past");
		  alert(yymmdd(gField.value));
          alert(yymmdd(tmpToday));
          gField.focus();
          gField.select();
          return false;     
     }
     return true;
}

function isValidDate_DD(gField)
{
     var today = new Date();
     var tmpDD = today.getDate();
     var tmpMM = today.getMonth();
     tmpMM++ ;
     var tmpYYYY = today.getFullYear();
     var tmpToday = tmpDD + "/" + tmpMM + "/" + tmpYYYY ;
	 //alert(parseInt(yymmdd(gField.value)));
	 //alert(parseInt(yymmdd(tmpToday)));
     if(parseInt(yymmdd(gField.value)) > parseInt(yymmdd(tmpToday)))
     {
          alert("Date entered cannot be of future...!");
          gField.focus();
          gField.select();
          return false;     
     }
     return true;
}

function isValidDate_LT(gField)
{
     var today = new Date();
     var tmpDD = today.getDate();
     var tmpMM = today.getMonth();
     tmpMM++ ;
     var tmpYYYY = today.getFullYear();
     var tmpToday = tmpDD + "/" + tmpMM + "/" + tmpYYYY ;
	 //alert(parseInt(yymmdd(gField.value)));
	 //alert(parseInt(yymmdd(tmpToday)));
     if(parseInt(yymmdd(gField.value)) < parseInt(yymmdd(tmpToday)))
     {
          alert("Date entered cannot be past date...!");
          gField.focus();
          gField.select();
          return false;     
     }
     return true;
}

function ToDateComparison(gField1, gField2)
{
	 if(parseInt(yymmdd(gField2.value)) < parseInt(yymmdd(gField1.value)))
     {
          alert("Date entered cannot be lesser than from date...!");
          gField2.focus();
          gField2.select();
          return false;     
     }
     return true;
}

function monthdayfix(olddate)
{
     var yearpos = olddate.lastIndexOf("/");
     var yy = olddate.substring(yearpos+1);
     var tempmmdd = olddate.substring(0,yearpos);
     var mmpos = tempmmdd.indexOf("/");
     var mm = tempmmdd.substring(0, mmpos);
     var dd = tempmmdd.substring(mmpos+1);
     
return dd + "/" + mm + "/" + yy;
}
function yymmdd(tmpDate)
{
     var yearpos = tmpDate.lastIndexOf("/");
     var year = tmpDate.substring(yearpos+1,tmpDate.length);
     var tempddmm = tmpDate.substring(0,yearpos);
     year = parseInt(year,10);
     if (year < 90)
     {
          year = year + 2000;
     }
     else
     {
          if (year < 100)
          {
               year = year + 1900;
          }
     }
     var tempddmmpos = tempddmm.lastIndexOf("/");
     var month = tempddmm.substring(tempddmmpos+1,tempddmm.length);
     if (month.length == 1)
     {
          month = "0" + month;
     }
     var day = tempddmm.substr(0,tempddmmpos)
     if (day.length == 1)
     {
          day = "0" + day;
     }
return year + month + day;
}
function getDateString()
{
     var dateStr;
     dateStr = "" + this.getFullYear();
     if (this.getMonth() < 9)
          dateStr += "0";
     dateStr += (this.getMonth() + 1);
     if (this.getDate() < 10)
          dateStr += "0";
     dateStr += this.getDate();
     return dateStr;
}
Date.prototype.getDateString = getDateString;
function getFullYear()
{
     var year = this.getYear();
     if (year < 1000)
     {
          year += 1900;
     }
     return year;
}
