	// Non-Leap year Month days..
	DOMonth = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
	// Leap year Month days..
	lDOMonth = [0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
	function getDaysOfMonth(monthNo, p_year)
	{
	 if ((p_year % 4) == 0)
	 {
	  if ((p_year % 100) == 0 && (p_year % 400) != 0)
	   return DOMonth[monthNo];
	
	  return lDOMonth[monthNo];
	   } else
	  return DOMonth[monthNo];
	  }
	function isValidDate(dd,mm,yyyy)
	{
	  if (mm < 0 || mm > 12)
		 return false;
	  if (dd < 0 || dd > 31)
		 return false;
	  if (getDaysOfMonth(mm,yyyy) < dd) 
		 return false;
	  return true; 
	 }
	
	function addDate(dt, days)
	{
	 addVal=1;
	 if(days<0)
	 {
	  return;
	  }
	 odt=dt.getDate();
	 omn=dt.getMonth();
	 oyr=dt.getYear();
	
	 for(i=0; i<days; i++)
	 {
	  if(omn==1 && ((odt == 28 && oyr%4 > 0) || (odt == 29 && oyr%4 == 0)))
	  {
	   odt = 1;
	   omn = 2;
	   }
	  else if(omn==12 && odt==31)
	  {
	   odt=1;
	   omn=1;
	   oyr=oyr+addVal;
	   }
	  else if((omn+1)%2==0 && (omn<6 && odt==30 || omn>6 && odt==31) || omn==6 && odt==31)
	  {
	   odt=1;
	   omn=omn+addVal;
	   }
	  else
	  {
	   odt=odt + addVal;
	   }
	  }
	 rtDt = new Date(oyr,omn,odt);
	 return rtDt;
	 }
	function validateDates()
	{
	 var frm = document.form1;
	 CurDate1=new Date();
	 da=CurDate1.getDate();
	 mo=CurDate1.getMonth();
	 yr=CurDate1.getFullYear();
	 CurDate=new Date(yr,mo,da);
	 //alert(CurDate);
		//--- Set Variables for Dept Date ----
	 var DepDate;
	 var DepDD;
	 var DepMM;
	 var DepYY;
	 var arrDepDate;
	 DepDate = frm.departure_date.value;
	 arrDepDate = DepDate.split("/");
	 DepDD = arrDepDate[0];
	 DepMM = arrDepDate[1];
	 DepYY = arrDepDate[2];
	 myDepDate = new Date(DepYY,DepMM-1,DepDD);

	
	 if(isNaN(DepDD) || isNaN(DepMM) || isNaN(DepYY))
	 {
	  alert("Please select valid departure date.");
	  frm.departure_date.focus();
	  return false;
	  }
	 if(CurDate>myDepDate)
	 {
	  alert("Departure date should not be before current date.");
	  frm.departure_date.focus();
	  return false;
	  }
	
	/* by Karthik - Starts */
//	if (((myDepDate.getFullYear()) == 2008) && ((myDepDate.getMonth()) >= 3 ))
//	  {
//	  alert("Schedules available upto 28th Feb 2008");
//	  frm.departure_date.focus();
//	  return false;
//	  }
	/* by Karthik - Ends */
	
	
	 if(DepMM.charAt(0)==0)
	 {
	  DepMM = DepMM.charAt(1);
	  }
	 
	 var DepMMM = parseInt(DepMM) - 1;
// below line remarked by Karthik	 
	 MyDeptDate = new Date(DepYY,DepMMM,DepDD);//Date + Time   ,24,00,00  
	  
	 if(frm.return_date.disabled==false)
	 {
	  //--- Set Variables for Return Date ----
	  var RetDate;
	  var RetDD;
	  var RetMM;
	  var RetYY;
	  var arrRetDate;
	  RetDate = frm.return_date.value;
	  arrRetDate = RetDate.split("/");
	  RetDD = arrRetDate[0];
	  RetMM = arrRetDate[1];
	  RetYY = arrRetDate[2];
	  //RetYY = "20" + arrRetDate[2];
	 
	  if(isNaN(RetDD) || isNaN(RetMM) || isNaN(RetYY))
	  {
	   alert("Please select valid return date.");
	   frm.return_date.focus();
	   return false;
	   }
	 
	  if(RetMM.charAt(0)==0)
	  {
	   RetMM = RetMM.charAt(1);
	   }
	  
	  var RetMMM = parseInt(RetMM) - 1;
	  MyRetDate = new Date(RetYY,RetMMM,RetDD);//Date + Time  //,24,00,00
	  }//End of if(frm.faretype[1].checked==true)
	  
	 // ------------ Dept Date ---------
	 if(frm.departure_date.value=="")
	 {
	  alert("Please select departure date");
	  frm.departure_date.focus();
	  return false;
	  }
	 
	 //alert(DepDD + " / " + DepMM + " / " + DepYY);
	 if (!isValidDate(DepDD,DepMM,DepYY))
	 {
	  alert("Please select valid departure date.");
	  frm.departure_date.focus();
	  return false;
	  }
	 
	 days=3;
	 CurrDateAddDays=addDate(CurDate,days)
	 //alert(MyDeptDate);
	 //alert(CurrDateAddDays);
	// if(MyDeptDate<CurrDateAddDays)
	// {
	//  //alert("Departure date should not be before current date.");
	//  alert("Departure date should be atleast 2 days after the current date.");
	//  frm.departure_date.focus();
	//  return false;
	//  }
	// 
	 if(frm.return_date.disabled==false)
	 {
	  // ------------ Ret Date ---------
	  if(frm.return_date.value=="")
	  {
	   alert("Please select return date");
	   frm.return_date.focus();
	   return false;
	   }
	  if(!isValidDate(RetDD,RetMM,RetYY))
	  {
	   alert("Please select valid return date.");
	   frm.return_date.focus();
	   return false;
	   }
	  if(MyRetDate<CurDate)
	  {
	   alert("Return date should not be before current date.");
	   frm.return_date.focus();
	   return false;
	   }
	
	  //---- Compair Dept and Return Date ----
//	  if(MyRetDate<MyDeptDate)
//        alert(MyRetDate);
      if(MyRetDate<MyDeptDate)	  
	  {
	   alert("Return date should not be earlier than Departure date.");
	   frm.return_date.focus();
	   return false;
	   }
	  }// End of if(frm.faretype[1].checked==true)
	  
	 /*MyDeptDatePlus3 = MyDeptDate.getTime();
	 MyDeptDatePlus3 += 1*24*60*60*1000;
	 if (MyRetDate.getTime() < MyDeptDatePlus3)
	 {
	  //alert("There needs to be an interval of at least 3 days between your departure and return dates. \nPlease change accordingly.");
	  alert("Return date should not be before Departure date.")
	  frm.DeptDate.focus();
	  return false;
	  }*/
	 return true;
	 }
	
	
	function validateFrm(strFrm)
	{
	 var frm = document.form1;
	 //---- DeptFrom ----
	 if(frm.dep.value=="")
	 {
	  alert("Please enter from city");
	  frm.dep.focus();
	  return false;
	  }
	 //if(frm.dep.value!="")
	// {
	//  if(!isNaN(frm.dep.value))
	//  {
	//   alert("Invalid from city");
	//   frm.dep.focus();
	//   return false;
	//   }
	//  }
	 
	 //---- GoingTo ----
	 if(frm.arr.value=="")
	 {
	  alert("Please enter to city");
	  frm.arr.focus();
	  return false;
	  }
	 //if(frm.arr.value!="")
	// {
	//  if(!isNaN(frm.arr.value))
	//  {
	//   alert("Invalid to city");
	//   frm.arr.focus();
	//   return false;
	//   }
	//  }
	 
	 if(frm.dep.value==frm.arr.value)
	 {
	  alert("Departure From and Going To city can not be same");
	  frm.dep.focus();
	  return false;
	  }
	   
	 //---- Validate Departure And Return Dates ----
	 if(!validateDates())
	 { 
	  return false;
	  }
	 
	 // ----------- Travelers --------------
	  return true;
	 }//End Validate form
	 
	 
	 