/* $Id: tourSearch.js,v 1.8 2010/03/19 11:49:07 clinton Exp $ */
var tourstartArray = new Array(); var tourstartMap = new Hash();
var tourendArray = new Array();var tourendMap = new Hash();
var tourStartDM, tourEndDM;

function tourValidate() {
  var errors = new Array();
  // Location validation
  if ($('tourLocation')) {
    var location = $F('tourLocation');
    if (location == "NULL") {
      errors[errors.length] = errorMessage(ERR_TOUR_SELECT_RESORT);
    }
  }
  //Date validation
  //dateChange('tourstart'); dateChange('tourend');
  var tourstart = $F('tourstart'); var tourend = $F('tourend');
  if (formatDate(createDate(tourstart), dateFormat_api) != tourstart) errors[errors.length] = errorMessage(ERR_TOUR_DATE_INVALID, {
    type: 'start'
  });
  if (formatDate(createDate(tourend), dateFormat_api) != tourend) errors[errors.length] = errorMessage(ERR_TOUR_DATE_INVALID, {
    type: 'end'
  });

  if (tourend < tourstart) {
    errors[errors.length] = errorMessage(ERR_TOUR_RETURN_BEFORE_DEPARTURE);
  }
  // Pax count validation
  var paxTypes = $('fs_paxTypes_tour').select('select.paxType');
  var totalPax = 0;
  for (var i = 0; i < paxTypes.length; i++) {
    totalPax += parseFloat($F(paxTypes[i]));
  }
  if (totalPax == 0) {
    errors[errors.length] = errorMessage(ERR_TOUR_NO_PAX);
  }else if (totalPax > 9) {
    errors[errors.length] = errorMessage(ERR_TOUR_TOO_MANY_PAX);
  }

  if (errors.length > 0) {
    alert(errors.join("\n"));
    return false;
  } else {
    return true;
  }
}

function submitTourSearch (){
  return tourValidate();
}

function tourLocationChange() {
  if (!$('tourName')) return;
  $('tourName').disable();
  new Ajax.Request(urlBase + '/landtour/tourList.jsp', {
    parameters: {
      location: $F('tourLocation'),
      tourType: tourTypeChange()
    },
    evalJS: 'force'
  })
}

function updateTourList() {
  if (!$('tourName')) return;
  AniteDDB.populate($('tourName'), [{
    code:' ',
    name: ' '
  }, tourList].flatten().compact());
  $('fs_tourName').show();
  $('tourName').enable();
}

function toursInit() {
  if ($('tourLocation')) Event.observe($('tourLocation'), 'change', tourLocationChange);
  if ($('shortType')) {
    Event.observe($('shortType'), 'click', tourLocationChange);
    Event.observe($('longType'), 'click', tourLocationChange);
    Event.observe($('shortType'), 'click', tourTypeChange);
    Event.observe($('longType'), 'click', tourTypeChange);
  }

  tourStartDM = new DateManager({
    months: $('tourstart_mon'),
    days: $('tourstart_day'),
    hidden: $('tourstart'),
    after: new Date(),
    afterOffset: minLeadTime
  })
  tourEndDM = new DateManager({
    months: $('tourend_mon'),
    days: $('tourend_day'),
    hidden: $('tourend'),
    after: tourStartDM,
    afterOffset: 1
  })
  
  tourLocationChange();
  tourTypeChange();
  $('tourSearch').show();
}

function tourTypeChange() {
  if (!$('fs_tourLength')) return 'S';
  var tourType = 'S'
  if ($('tourType')) tourType = $F('tourType')
  else if ($('shortType').checked) {
    tourType = 'S'
  } else {
    tourType = 'E'
  }

  if (tourType == 'S') $('fs_tourLength').hide();
  else $('fs_tourLength').show();
  return tourType;
}

function tourDateChange() {
  dateChange(this.id);
  if (this.id == 'tourstart') {
    $('tourend').mindate = formatFSSDate(addToDate(createDate(this.value), 1));;
    advanceDate('tourend', $('tourend').mindate);
  }
}
var tourList = new Array();
Event.observe(window, 'load', toursInit)