function datecalculation()
{
if (document.prices.Collect.value=="N/A" || document.prices.Drop.value=="N/A")
{
alert("Please select pickup and dropoff locations");
return
}

var md="";
var ms="";
var me="";
document.prices.message.value = "" ;
var vstartyear=document.prices.startyear.value;
var vstartmonth=document.prices.startmonth.value;
var mms=vstartmonth;
vstartmonth=mms-1;
var vstartday=document.prices.startday.value;
var vstartdate=new Date(vstartyear , vstartmonth , vstartday);

var vendyear=document.prices.endyear.value;
var vendmonth=document.prices.endmonth.value;
var mme=vendmonth;
vendmonth=mme-1;
var vendday=document.prices.endday.value;
var venddate=new Date(vendyear, vendmonth, vendday);
var pickhour=document.prices.puhh.value;
var pickmin=document.prices.pumin.value;
var drophour=document.prices.dohh.value;
var dropmin=document.prices.domin.value;
var one_day=1000*60*60*24*3;
var today=new Date();
var begin=today.getTime()+one_day;

var pl=document.prices.wher.value;

if (pickhour<drophour)
	{
	var xtraday=1;
	}else{
	var xtraday=0;
	}
var dds=vstartday;
var yyyys=vstartyear;

if (dds<29 || (mms==1 || mms==3 || mms==5 || mms==7 || mms==8 || mms==10 || mms==12) || (yyyys==2012 && dds==29))
	{
	ms="";
	}else{
	if ((mms==4 || mms==6 || mms==9 || mms==11 ) && dds<31)
		{
		ms="";
		}else{
		ms=" invalid start date ";
		var dd=0;
		var ww=0;
		var ee=0;
      	}
	}

if (venddate<vstartdate || vstartdate<today)
	{
	md="invalid dates";
	var dd=0;
	var ww=0;
	var ee=0;
    }

var dds=vendday;
var mms=mme;
var yyyys=vendyear;

if (dds<29 || (mms==1 || mms==3 || mms==5 || mms==7 || mms==8 || mms==10 || mms==12) || (yyyys==2012 && dds==29))
	{
	me="";
	}else{
	if ((mms==4 || mms==6 || mms==9 || mms==11 ) && dds<31)
		{
	 	me="";
		}else{
		me=" invalid end date***";
		var dd=0;
		var ww=0;
		var ee=0;
      	}
	}
document.prices.message.value = (md+ms+me);
if (md=="" && ms=="" && me=="")
	{
	var one_day=1000*60*60*24;
	var daysdifference = Math.abs(Math.round((venddate-vstartdate)/86400000))
	var counter=daysdifference+xtraday;
	document.prices.howlong.value = counter;
	var msg="Number of days "+counter;
	document.prices.message.value = msg;
	if (counter>6)
		{
		var dd=0;
		var ww=0;
		while (counter>6)
			{
	 		ww++;
			counter=counter-7;
			}
		var ee=counter;
		}else{
		if (counter<7)
  			{
  			dd=counter;
  			ww=0;
			ee=0;
			}
		}
	}
	
var oneday=1000*60*60*24;
var notice_end_date=new Date(2006, 4, 10); // This should be the end date of the holiday.
if (today < notice_end_date)
{
var days_notice=Math.ceil((vstartdate.getTime()-today.getTime())/oneday) ;
	if (days_notice<4)
	{
	document.prices.message.value = "SORRY, THERE IS INSUFFICIENT TIME TO COMPLETE YOUR BOOKING PRIOR TO PICKUP DATE";
	var dd=0;
	var ww=0;
	var ee=0;
	}
}
if (document.prices.message.value.substring(1,7)=="invali")
{
document.prices.dd.value = 0 ;
document.prices.ww.value = 0 ;
document.prices.ee.value = 0 ;
document.prices.howlong.value = 0;
}else{
document.prices.dd.value = dd ;
document.prices.ww.value = ww ;
document.prices.ee.value = ee ;
}
}
