/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   * PARKING DATA *   parkingX.js
// v.9b Color Rates taken away (mark rates_away)
// v.21f "For stays greater than a ..." excluded for airports

The file contains few varuables that keep info on current search and
functions to set, clear them.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */
// v.9c - disabled DEPARTURE word
// images fix
// v21l floating Arrive/Departure area

var VEHICLE_REGULAR = 1;
var VEHICLE_SUV = 2;
var VEHICLE_LUXURY = 3;
var VEHICLE_MOTORCYCLE = 4;

var parking_isMonthly = false; // true if parking monthly; false if parking daily
var parking_vehicle = VEHICLE_REGULAR;
var parking_arrival = null;
var parking_departure = null;
var parking_isCase = false;  // true iff parking_vehicle, parking_arrival and parking_depature are specified

/// Gradient feature : if false the rates (in icons and list) will not 
// be highlighted by gradient rates (but by partners)
var  parking_isByColorRates = false; 

////     setParkingIsMonthly
function setParkingIsMonthly(b)
{
  parking_isMonthly = b;
}

////     setParkingCase
function setParkingCase(veh, arr, dep)
{ // called from readParkingCase [index.php], when user clicks "Calculate Rates" button

  parking_vehicle = veh;
  parking_arrival = arr;
  parking_departure = dep;
  parking_isCase = true; 
  sort_results = SORT_STREET;
}
////     clearParkingCase
function clearParkingCase()
{ // called from SelectDaily [index.php] and SelectMonthly[index.php] 
  now = new Date();
  with(document.parkingCaseForm)
  {
    arrDay.selectedIndex = depDay.selectedIndex = now.getDate() - 1;
    arrMonth.selectedIndex = depMonth.selectedIndex = now.getMonth();
    arrYear.selectedIndex = depYear.selectedIndex = now.getFullYear() - 2006;
    arrHours.selectedIndex = depHours.selectedIndex = 0;
    arrMinutes.selectedIndex = depMinutes.selectedIndex = 0;
    arrAMPM[0].checked = true;
    depAMPM[0].checked = true;
    depDay.disabled = depMonth.disabled = depYear.disabled = depHours.disabled = depMinutes.disabled = depAMPM[0].disabled = depAMPM[1].disabled = true;
  }
  
  if(GetElement("depCalendar")){
  GetElement("depCalendar").disabled = true;
  GetElement("depCalendar").src = PATH_IMG + 'images/calendar21l2_dis.gif';
    GetElement("depCalendar").style.cursor = 'default';

  }
  GetElement("dep_td").disabled = true;
  GetElement("dep_td").className = 'dep_cal_dis';
  GetElement("dep_cal_id").className = 'dep_cal_dis';
  if(GetElement("dep_cal_id2"))GetElement("dep_cal_id2").className = 'dep_cal_dis';
  if(GetElement("dep_cal_id3"))GetElement("dep_cal_id3").className = 'dep_cal_dis';
  
  
  
  departureEnabled = false;

  parking_vehicle = VEHICLE_REGULAR;
  parking_arrival = null;
  parking_departure = null;
  parking_isCase = false;
  
  document.getElementById("dep_td").disabled = true;
   
}

////////////////////////////////////////////
//  Arrival / Departure area functions


var departureEnabled = false;

///      enableDeparture
function enableDeparture()
{// "Calculate Rates" form
 // called when ARRIVAL hours changed

  if(departureEnabled) // only once
    return;
    
  with(document.parkingCaseForm)
  { // copy values from ARRIVAL to DEPARTURE
    
    if(arrMinutes.selectedIndex == 0)
     arrMinutes.selectedIndex = 1;
    depDay.selectedIndex = arrDay.selectedIndex;
    depMonth.selectedIndex = arrMonth.selectedIndex;
    depYear.selectedIndex = arrYear.selectedIndex;
    depHours.selectedIndex = arrHours.selectedIndex;
    depMinutes.selectedIndex = arrMinutes.selectedIndex;
    depAMPM[0].checked = arrAMPM[0].checked;
    depAMPM[1].checked = arrAMPM[1].checked;
    // enable DEPARTURE boxes
    depDay.disabled = depMonth.disabled = depYear.disabled = depHours.disabled = depMinutes.disabled = depAMPM[0].disabled = depAMPM[1].disabled = false;
  }

if(GetElement("depCalendar")){  
  GetElement("depCalendar").disabled = false;
  GetElement("depCalendar").src = PATH_IMG + 'images/calendar21l2.gif';
  GetElement("depCalendar").style.cursor = 'pointer';
  }
  GetElement("dep_td").disabled = false;
  GetElement("dep_td").className = '';
  GetElement("dep_cal_id").className = '';
  if(GetElement("dep_cal_id2"))GetElement("dep_cal_id2").className = '';
  if(GetElement("dep_cal_id3"))GetElement("dep_cal_id3").className = '';
  departureEnabled = true;
}



///      updateCalendarFromCaseDate
function updateCalendarFromCaseDate()
{/// called before opening "Calculate Rates" calendars

  calPadding = false; //parameters for calendar.js
  calendPlace = 0;
  
  with(document.parkingCaseForm)
  { // put ARRIVAL/DEPARTURE boxes values into calendars' Date hidden inputs
    arrDateTemp.value = arrYear.value + "-" + arrMonth.value + "-" + arrDay.value;
    depDateTemp.value = depYear.value + "-" + depMonth.value + "-" + depDay.value;
  }
}

///      updateCaseDateFromCalendar
function updateCaseDateFromCalendar()
{/// called on close of "Calculate Rates" calendars

  with(document.parkingCaseForm)
  { // get dates from calendar Date hidden inputs
    var calArr = arrDateTemp.value.split("-");
    var calDep = depDateTemp.value.split("-");
    
    // set to ARRIVAL/DEPARTURE boxes
    arrDay.selectedIndex = parseInt(calArr[2]) - 1;
    arrMonth.selectedIndex = parseInt(calArr[1]);
    arrYear.selectedIndex = parseInt(calArr[0]) - 2006;
    depDay.selectedIndex = parseInt(calDep[2]) - 1;
    depMonth.selectedIndex = parseInt(calDep[1]);
    depYear.selectedIndex = parseInt(calDep[0]) - 2006;
  }
}

///      readParkingCase
function readParkingCase(frm)
{ // called on click "Calculate Rates" button
  // frm (object) -  "Calculate Rates" form

  var veh = VEHICLE_REGULAR;
  
  if(GetElement('vehicle1')) if(GetElement('vehicle1').checked) veh = VEHICLE_SUV;
  
  if(frm.arrHours.value == "" && frm.depHours.value == "")
  {
    alert("Please enter your ARRIVAL and DEPARTURE times.");
    return false;
  }
  else if(frm.arrHours.value == "")
  {
    alert("Please enter your ARRIVAL time.");
    return false;
  }  
  else if(frm.depHours.value == "")
  {
    alert("Please enter your DEPARTURE time.");
    return false;  
  }
  
  // dates from ARRIVAL/DEPARTURE
  var arr = new Date(frm.arrYear.value, frm.arrMonth.value, frm.arrDay.value, ((frm.arrAMPM[1].checked)?12:0) + parseInt(frm.arrHours.value), frm.arrMinutes.value);
  var dep = new Date(frm.depYear.value, frm.depMonth.value, frm.depDay.value, ((frm.depAMPM[1].checked)?12:0) + parseInt(frm.depHours.value), frm.depMinutes.value);
  
  if( dep <= arr )
  {
      alert("Please enter a DEPARTURE time that is later than your ARRIVAL time.");
    return false;
  }
  
  // too long period (more than month)
  if(!AIRPORT)if((dep.valueOf() - arr.valueOf()) > 30*24*3600*1000)
  {
    alert("For stays greater than a month, click Monthly instead of Daily search.");
   return false;
  }
  
  // setParkingCase - parkingX.js
  setParkingCase(veh, arr, dep);
  currRequestDate = parking_arrival;
  
   try{
   GetElement('vehicle0').focus(); // patch for FF and Safari
   }catch(e){};
   
if(TRUCK) {   
  // Truck case
  if(GetElement('vehicle2'))
  if(GetElement('vehicle2').checked)
  {
  DisplayTruckWin();
  parking_isCase = false; 
  return false;
  }
}   
   
  return true;
}
