Now = new Date();
NowDay = Now.getDate();
NowMonth = Now.getMonth();
NowYear = Now.getYear();
if (NowYear < 2000) NowYear += 1900; //for Netscape
var new_win;
var whiches = new Array();
whiches['pick_up_date'] = "pick up";
whiches['drop_off_date'] = "drop off";
var span_pick_up_date= 0;
var span_drop_off_date= 0;



function CheckOpenTimes(Which,layerid,popup_text)
{

  DaysObject = eval("" + Which + "Day");
  MonthObject = eval("" + Which + "Month");
  YearObject = eval("" + Which + "Year");
  LocationObject = eval("" + Which + "Location");
  TimeObject = eval("" + Which + "Time");
  Month = MonthObject[MonthObject.selectedIndex].value;
  Year = YearObject[YearObject.selectedIndex].text;
  Day = DaysObject[DaysObject.selectedIndex].text;
  Location = LocationObject[LocationObject.selectedIndex].value;


  locSplit = Which.split(".")
 if (Location == "Same_as_pickup")
  {
  LocationObject = document.booking_search.pick_up_dateLocation;
  Location = LocationObject[LocationObject.selectedIndex].value;
  }
  if (Location == "0")
 {
 alert("Please choose a pick up location");return false;
 }


selected_time = TimeObject[TimeObject.selectedIndex].text;
c = new Date(Year,Month-1,Day);
var dayOfWeek = c.getDay();

var equivSplit =selected_time.split(":")
c.setHours(equivSplit[0]);
c.setMinutes(equivSplit[1]);
selected_time_milli = c.getTime();

open_time = eval('open_'+Location+'['+dayOfWeek+']');
equivSplit = open_time.split(":")
c.setHours(equivSplit[0]);
c.setMinutes(equivSplit[1]);
open_time_milli = c.getTime();
close_time = eval('close_'+Location+'['+dayOfWeek+']');
equivSplit = close_time.split(":")
c.setHours(equivSplit[0]);
c.setMinutes(equivSplit[1]);
close_time_milli = c.getTime();


if (open_time == close_time)
{
//alert(open_time_milli +' ' +selected_time_milli + ' ' + selected_time_milli + ' '+close_time_milli);
valid_hours = 'Closed on ' + days[dayOfWeek];
alert ('This  location is closed all day on '+days[dayOfWeek]);
writeLayer(layerid,''+valid_hours);
}
else
{

if (open_time_milli <= selected_time_milli && selected_time_milli <= close_time_milli)
{
return true;
}
else
{
valid_hours = open_time+'-'+close_time;
alert (popup_text + ' '+selected_time+' falls outside '+days[dayOfWeek]+ '\'s opening hours: ' +valid_hours  );
writeLayer(layerid,''+valid_hours);
}
}



return false;
}





















function date_picker(Which)
  {
  DaysObject = eval("" + Which + "Day");
  MonthObject = eval("" + Which + "Month");
  YearObject = eval("" + Which + "Year");

var  month = MonthObject[MonthObject.selectedIndex].value;
var  year = YearObject[YearObject.selectedIndex].text;
var  day =DaysObject[DaysObject.selectedIndex].text;


  	file = '/includes/cal.php?dayField='+Which+'&GoToDay='+month+'\/'+day+'\/'+year;

	//alert(file);
	new_win = window.open( file, "dates", 'width=300,height=170','resizable=1, scrollbars=yes');
	if (window.focus) {new_win.focus()}
  }

function close_popup(){
	if (new_win!= null){
		new_win.close();
	}
}

//function for returning how many days there are in a month including leap years
function DaysInMonth(WhichMonth, WhichYear)
{
  var DaysInMonth = 31;
  if (WhichMonth == "April" || WhichMonth == "June" || WhichMonth == "September" || WhichMonth == "November") DaysInMonth = 30;
  if (WhichMonth == "February" && (WhichYear/4) != Math.floor(WhichYear/4))	DaysInMonth = 28;
  if (WhichMonth == "February" && (WhichYear/4) == Math.floor(WhichYear/4))	DaysInMonth = 29;
  return DaysInMonth;
}

//function to change the available days in a months




function CheckClosedDates(Which,layerid,popup_text)
{

  DaysObject = eval("" + Which + "Day");
  MonthObject = eval("" + Which + "Month");
  YearObject = eval("" + Which + "Year");
  LocationObject = eval("" + Which + "Location");
  TimeObject = eval("" + Which + "Time");
  Month = MonthObject[MonthObject.selectedIndex].value;
  Year = YearObject[YearObject.selectedIndex].text;
  Day = DaysObject[DaysObject.selectedIndex].text;
  Location = LocationObject[LocationObject.selectedIndex].value;
  CurrentTime = TimeObject[TimeObject.selectedIndex].text;
//closed_4['2005-03-17'] = 'Bank Holiday';
if (Month <10)Month = '0' + Month;
if (Day <10)Day = '0' + Day;


if (Location == "Same_as_pickup")
  {
  LocationObject = document.booking_search.pick_up_dateLocation;
  Location = LocationObject[LocationObject.selectedIndex].value;
  }
//alert(Location +' here '+ Day + ' '+ Month + ' ' + Year);
if (eval('closed_'+Location+'[\''+Year+'-'+Month+'-'+Day+'\']')){
alert(popup_text + Day+'/'+Month+'/'+Year+' '+ eval('closed_'+Location+'[\''+Year+'-'+Month+'-'+Day+'\']'));
writeLayer(layerid,"closed");
return false;
}
else
{
writeLayer(layerid,"");
}
return true;
}



function BaseDate(dateDay,dateMonth,dateYear,dateTime)
{
//
c = new Date(dateYear,dateMonth-1,dateDay);
datemin = (''+dateYear+','+dateMonth+','+dateDay + ' ' + dateTime);
//alert(''+dateYear+','+dateMonth+','+dateDay + ' ' + dateTime);
var equivSplit = dateTime.split(":")
c.setHours(equivSplit[0]);
c.setMinutes(equivSplit[1]);
millimin = c.getTime();
return millimin;
}
function getcookie(name) {
    var dc = document.cookie;
    var prefix = name + "=";
    var begin = dc.indexOf("; " + prefix);
    if (begin == -1) {
        begin = dc.indexOf(prefix);
        if (begin != 0) return null;
    } else {
        begin += 2;
    }
    var end = document.cookie.indexOf(";", begin);
    if (end == -1) {
        end = dc.length;
    }
   // alert(''+name);
    return unescape(dc.substring(begin + prefix.length, end));
}


function SetToDate(Which,dateDay,dateMonth,dateYear,dateTime)
{

 //alert(Which);
  DaysObject = eval("" + Which + "Day");
  MonthObject = eval("" + Which + "Month");
  YearObject = eval("" + Which + "Year");
  //YearObject[dateYear-NowYear].selected = true;
  //YearObject[0].selected = true;

  var Year;
  for (var i=0; i < YearObject.length; i++)
    {
       Year = YearObject.options[i].text;

       if (Year ==dateYear)
       {
       YearObject[i].selected = true;
       i = YearObject.length -1;
       }
    }

  MonthObject[dateMonth-1].selected = true;
//alert(dateTime);

  DaysObject[dateDay-1].selected = true;

  TimeObject = eval("" + Which + "Time");
var Time;
  for (var i=0; i < TimeObject.length; i++)
    {
       Time = TimeObject.options[i].text;

       if (Time ==dateTime)
       {
       TimeObject[i].selected = true;
       i = TimeObject.length -1;
       }
    }


}
//function to write option years plus x
function WriteYearOptions(YearsAhead)
{
  line = "";
  for (i=0; i<YearsAhead; i++)
  {
    line += "<OPTION>";
    line += NowYear + i;

  }
  return line;
}

var SearchStartYear;
function SearchWriteYearOptions(YearsBack,YearsAhead)
{
  line = "";
  k = NowYear+parseInt(YearsAhead);
  SearchStartYear = NowYear-parseInt(YearsBack);

  for (i=SearchStartYear;i<k; i++)
  {

//alert(i);
//alert(k);
	line += "<OPTION>";
    line += i;
  }
//alert(line);
return line;
}

function SearchSetToDate(Which,dateDay,dateMonth,dateYear,dateTime)
{
 //alert(Which);
  DaysObject = eval("" + Which + "Day");
  MonthObject = eval("" + Which + "Month");
  YearObject = eval("" + Which + "Year");
  YearObject[dateYear-SearchStartYear].selected = true;
  //YearObject[0].selected = true;
  MonthObject[dateMonth-1].selected = true;


  DaysObject[dateDay-1].selected = true;

  TimeObject = eval("" + Which + "Time");
var Time;
  for (var i=0; i < TimeObject.length; i++)
    {
       Time = TimeObject.options[i].text;
       //alert(Time);
       if (Time ==dateTime)
       {
       TimeObject[i].selected = true;
       i = TimeObject.length -1;
       }
    }


}
function writeLayer(layerID,txt){

   //alert(layerID +' ' + is_opener + ' ' + txt);
            if(document.getElementById){

                     document.getElementById(layerID).innerHTML=txt;


            }else if(document.all){
               document.all[layerID].innerHTML=txt;
            }
      }

function checkDaysinMonth(text_string,inDays,Month,Year)
{
//alert(inDays+','+Month+','+Year);
DaysFor  = DaysInMonth(Month, Year);
if (inDays > DaysFor)
{
alert(text_string + ' : '+Month + ' '+Year +' does not have ' +inDays +' days, it has '+ DaysFor +'. Please Fix.');
return false;
}
else
{
return true;
}
}

function check_days_and_change()
{
pDaysObject = eval("document.booking_search.pick_up_date" + "Day");
pMonthObject = eval("document.booking_search.pick_up_date" + "Month");
pYearObject = eval("document.booking_search.pick_up_date" + "Year");
pTimeObject = eval("document.booking_search.pick_up_date" + "Time");
pMonth = pMonthObject[pMonthObject.selectedIndex].value;
ptextMonth = pMonthObject[pMonthObject.selectedIndex].text;
pYear = pYearObject[pYearObject.selectedIndex].text;
pDay = pDaysObject[pDaysObject.selectedIndex].text;
pTime = pTimeObject[pTimeObject.selectedIndex].text;



c = new Date(pYear,pMonth-1,pDay);
//alert();
var equivSplit = pTime.split(":")
c.setHours(equivSplit[0]);
c.setMinutes(equivSplit[1]);
pMilli = c.getTime();

dDaysObject = eval("document.booking_search.drop_off_date" + "Day");
dMonthObject = eval("document.booking_search.drop_off_date" + "Month");
dYearObject = eval("document.booking_search.drop_off_date" + "Year");
dTimeObject = eval("document.booking_search.drop_off_date" + "Time");
dMonth = dMonthObject[dMonthObject.selectedIndex].value;
dtextMonth = dMonthObject[dMonthObject.selectedIndex].text;
dYear = dYearObject[dYearObject.selectedIndex].text;
dDay = dDaysObject[dDaysObject.selectedIndex].text;
dTime = dTimeObject[dTimeObject.selectedIndex].text;
c = new Date(dYear,dMonth-1,dDay);
//alert();
equivSplit = dTime.split(":")
c.setHours(equivSplit[0]);
c.setMinutes(equivSplit[1]);
dMilli = c.getTime();

//status = checkDaysinMonth("Your Pick Up Date",pDay,ptextMonth,pYear);
//if (status ==false)return false;

//status = checkDaysinMonth("Your Drop Off Date",dDay,dtextMonth,dYear);
//if (status ==false)return false;
if (pMilli >= dMilli)
{
if(dMonth < pMonth)dMonthObject.selectedIndex = pMonthObject.selectedIndex ;
dYearObject.selectedIndex = pYearObject.selectedIndex;
if (dDay < pDay)dDaysObject.selectedIndex = pDaysObject.selectedIndex;
if (dTime < pTime)dTimeObject.selectedIndex = pTimeObject.selectedIndex
return false;
}


return true;
}


function quotePageCheck(documentname)
{

//Checks
// 36 hours in the future from GMT time
// Drop Off > Pick Up
// Location not closed on pick up / drop off day
//Pick Up location not blank

LocationObject = document.booking_search.pick_up_dateLocation;
Location = LocationObject[LocationObject.selectedIndex].value;
if (Location == "0")
{
alert("Please choose a pick up location");
return false;
}

LocationObject = document.booking_search.drop_off_dateLocation;
Location = LocationObject[LocationObject.selectedIndex].value;
if (Location == "0")
{
alert("Please choose a drop off location");
return false;
}
var status;
status= CheckClosedDates('document.booking_search.pick_up_date','message_pick_up_date', 'Pick Up Date: ');
if (status ==false)
{
span_pick_up_date= 1;
return false;
}
status= CheckClosedDates('document.booking_search.drop_off_date','message_drop_off_date', 'Drop Off Date: ');
if (status ==false)
{
span_drop_off_date= 1;
return false;
}

//status = Controller('document.booking_search');
DaysObject = eval("document.booking_search.pick_up_date" + "Day");
MonthObject = eval("document.booking_search.pick_up_date" + "Month");
YearObject = eval("document.booking_search.pick_up_date" + "Year");
TimeObject = eval("document.booking_search.pick_up_date" + "Time");
pMonth = MonthObject[MonthObject.selectedIndex].value;
ptextMonth = MonthObject[MonthObject.selectedIndex].text;
pYear = YearObject[YearObject.selectedIndex].text;
pDay = DaysObject[DaysObject.selectedIndex].text;
pTime = TimeObject[TimeObject.selectedIndex].text;



c = new Date(pYear,pMonth-1,pDay);
//alert();
var equivSplit = pTime.split(":")
c.setHours(equivSplit[0]);
c.setMinutes(equivSplit[1]);
pMilli = c.getTime();


DaysObject = eval("document.booking_search.drop_off_date" + "Day");
MonthObject = eval("document.booking_search.drop_off_date" + "Month");
YearObject = eval("document.booking_search.drop_off_date" + "Year");
TimeObject = eval("document.booking_search.drop_off_date" + "Time");
dMonth = MonthObject[MonthObject.selectedIndex].value;
dtextMonth = MonthObject[MonthObject.selectedIndex].text;
dYear = YearObject[YearObject.selectedIndex].text;
dDay = DaysObject[DaysObject.selectedIndex].text;
dTime = TimeObject[TimeObject.selectedIndex].text;
c = new Date(dYear,dMonth-1,dDay);
//alert();
equivSplit = dTime.split(":")
c.setHours(equivSplit[0]);
c.setMinutes(equivSplit[1]);
dMilli = c.getTime();

status = checkDaysinMonth("Your Pick Up Date",pDay,ptextMonth,pYear);
if (status ==false)return false;

status = checkDaysinMonth("Your Drop Off Date",dDay,dtextMonth,dYear);
if (status ==false)return false;
if (pMilli > dMilli)
{
alert("Your Pick up time is after your drop off time, please correct");
return false;
}
if (pMilli == dMilli)
{
alert("Your Pick up time is the same as your drop off time, please correct");
return false;
}
if (pMilli < millimin)
{
alert("Your Pick up time is not " + booking_hours_forward + " hours ahead of today's date, please correct " );//+ datemin + ' ' + pMilli + ' ' + millimin + '/' +pMonth+ '/' +pYear+ '/' +pDay +'/'+ pTime);
//alert(pTime+'/'+pDay+'/'+pMonth+'/'+pYear);
return false;
}

//status= CheckOpenTimes('document.booking_search.pick_up_date','message_pick_up_date', 'Your Pick Up Time:');
if (status ==false)
{
span_pick_up_date= 1;
return false;
}
//status= CheckOpenTimes('document.booking_search.drop_off_date','message_drop_off_date', 'Your Drop Off Time:');
if (status ==false){
span_drop_off_date= 1;
return false;

}



if (status ==false)return false;



else
{
//alert("Clean Form");return false;
return true;
}

}

function searchPageCheck(documentname)
{

//status = Controller('document.booking_search');
DaysObject = eval("document.booking_search.start_date" + "Day");
MonthObject = eval("document.booking_search.start_date" + "Month");
YearObject = eval("document.booking_search.start_date" + "Year");
TimeObject = eval("document.booking_search.start_date" + "Time");
pMonth = MonthObject[MonthObject.selectedIndex].value;
ptextMonth = MonthObject[MonthObject.selectedIndex].text;
pYear = YearObject[YearObject.selectedIndex].text;
pDay = DaysObject[DaysObject.selectedIndex].text;
pTime = TimeObject[TimeObject.selectedIndex].text;



c = new Date(pYear,pMonth-1,pDay);
//alert();
var equivSplit = pTime.split(":")
//c.setHours(equivSplit[0]);
//c.setMinutes(equivSplit[1]);
c.setHours(0);
c.setMinutes(0);
pMilli = c.getTime();


DaysObject = eval("document.booking_search.end_date" + "Day");
MonthObject = eval("document.booking_search.end_date" + "Month");
YearObject = eval("document.booking_search.end_date" + "Year");
TimeObject = eval("document.booking_search.end_date" + "Time");
dMonth = MonthObject[MonthObject.selectedIndex].value;
dtextMonth = MonthObject[MonthObject.selectedIndex].text;
dYear = YearObject[YearObject.selectedIndex].text;
dDay = DaysObject[DaysObject.selectedIndex].text;
dTime = TimeObject[TimeObject.selectedIndex].text;
c = new Date(dYear,dMonth-1,dDay);
//alert();
equivSplit = dTime.split(":")
//c.setHours(equivSplit[0]);
//c.setMinutes(equivSplit[1]);
c.setHours(0);
c.setMinutes(0);
dMilli = c.getTime();

status = checkDaysinMonth("Your Start Date",pDay,ptextMonth,pYear);
if (status ==false)return false;

status = checkDaysinMonth("Your End Date",dDay,dtextMonth,dYear);
if (status ==false)return false;
if (pMilli > dMilli)
{
alert("Your Start Date is after your End Date, please correct");
return false;
}
if (pMilli == dMilli)
{
alert("Your Start Date is the same as your End Date, please correct");
return false;
}





if (status ==false)return false;



else
{
//alert("Clean Form");return false;
return true;
}

}
