var dtCh= "/";
var minYear=1900;
var maxYear=2100;

function isInteger(s)
{
var i;
  for (i = 0; i < s.length; i++)
{   
      var c = s.charAt(i);
       
 if (((c < "0") || (c > "9"))) 
return false;
   
 }
    return true;

}



function stripCharsInBag(s, bag)
{
	
var i;
    
var returnString = "";
   
 for (i = 0; i < s.length; i++)
{   
        var c = s.charAt(i);
        
if (bag.indexOf(c) == -1) 
returnString += c;
    
}
    
return returnString;

}


function daysElapsed(date1,date2) 
{
  var difference = Date.UTC(date1.getYear(),date1.getMonth(),date1.getDate(),0,0,0) - Date.UTC(date2.getYear(),date2.getMonth(),date2.getDate(),0,0,0);
  return  difference=(difference)/(1000*60*60*24);
}

function DaysArray(n) 
{
	
for (var i = 1; i <= n; i++) 
{
		
this[i] = 31
		
if (i==4 || i==6 || i==9 || i==11)
 {
this[i] = 30
}
		
if (i==2) 
{
this[i] = 29
}
   
} 
  
return this

}

function daysInFebruary (year)
{
	
 return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );

}



function isDate(dtStr)
{	
  var daysInMonth = DaysArray(12)
  var pos1 = dtStr.indexOf(dtCh)	
  var pos2 = dtStr.indexOf(dtCh,pos1+1)
	
  var strDay = dtStr.substring(0,pos1)	
  var strMonth = dtStr.substring(pos1+1,pos2)
	
  var strYear = dtStr.substring(pos2+1)
	
strYr=strYear
	
if (strDay.charAt(0)=="0" && strDay.length>1) 
strDay=strDay.substring(1)
	

if (strMonth.charAt(0)=="0" && strMonth.length>1) 
strMonth=strMonth.substring(1)
	

for (var i = 1; i <= 3; i++)
 {
		
if (strYr.charAt(0)=="0" && strYr.length>1) 
strYr=strYr.substring(1)
	
}
	

month=parseInt(strMonth)
	
day=parseInt(strDay)
	
year=parseInt(strYr)
	
if (pos1==-1 || pos2==-1)
{
		
alert("The date format should be : dd/mm/yyyy")
		
return false
	
}
	
if (strMonth.length<1 || month<1 || month>12)
{
		
alert("Please enter a valid month")
		
return false
	
}
	
if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month])
{
		
alert("Please enter a valid day")
		
return false
	
}
	
if (strYear.length != 4 || year==0 || year<minYear || year>maxYear)
{
		
alert("Please enter a valid 4 digit year between "+minYear+" and "+maxYear)
		
return false
	
}
	
if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false
){
		
alert("Please enter a valid date")
		
return false
	
}
return true

}


function validate(obDate,ibDate)
{
/*
  var obDate = "31/12/2007";
  var ibDate = "1/1/2008";
  */
  if((ibDate - obDate) == 0)
  {
    alert("Check In Date and Check Out Date should not be same.");
    return false;
  }
  
  var isvalidD = isDate(obDate)
  var isvalidR = isDate(ibDate)	

  if(!isvalidD || !isvalidR)
  {
    alert("Not valid date");
    return false;	
  }
  	
  var obDate = obDate.split('/');	
  var ibDate = ibDate.split('/');	

  var obDay   = obDate[0];	
  var obYear  = obDate[2];	
  var obMonth =(obDate[1]-1);	

  var ibDay   = ibDate[0];	
  var ibYear  = ibDate[2];
  var ibMonth = (ibDate[1]-1);

  var today = new Date();	
  var D = today.getDate();

  if(D<10)
  {
    D = "0" + D;
  }

  var M = today.getMonth();
  if(M<10)
  {
   M = "0" + M;
  }
  
  var Y = today.getFullYear();

  var objDiff = daysElapsed(new Date(ibYear,ibMonth,ibDay),new Date(obYear,obMonth,obDay));	
  var objDt   = daysElapsed(new Date(obYear,obMonth,obDay),new Date(Y,M,D));	

  if(objDt<0)
  {	
    alert("Check In date can't be in past")	
    return false;	
  } 

  if(objDiff<0)	
  {
    alert("Check Out date must occur after the Check In date.")
    return false;
  }
  return true;
  //alert("From :" + ibDate + "\nTo :" + obDate);  
}