// Form: show arrival date
function start()
{
 
}

function openBookingForm(locale)
{
  //var pageTracker = _gat._getTracker("UA-1656469-1");
  //pageTracker._trackPageview('formPrenotazione');
  urchinTracker('/formPrenotazione');
  var baseUrl = 'https://reservations.synxis.com/LBE/rez.aspx?Hotel=20618&Chain=5306';
  baseUrl = baseUrl + '&locale=' + locale;
  
  var cboDays = getObj('nbdays');
  var cboAdults = getObj('adulteresa');
  var cboChild = getObj('enfantresa');
  
  var numAdults = cboAdults.value;
  var numChild = cboChild.value;
  var numNights = cboDays.value;
  
  var dateArrival = getArrivalDate(locale);
  
  var dateDeparture = getDepartureDate(dateArrival, numNights);
  
  baseUrl += '&arrive=' + getLocaleDate(dateArrival, locale);
  baseUrl += '&depart=' + getLocaleDate(dateDeparture, locale);
  baseUrl += '&adult=' + numAdults;
  baseUrl += '&child=' + numChild;
  baseUrl += '&step=1';

  var width = Math.min(820, screen.width);
  var left = (screen.width - width) / 2;
  
  var settings = 'scrollbars=yes,resizable=yes,';
  settings += 'top=0,left='+ left + ',width=' + width + ',';
  settings += 'height=' + screen.height;

  window.open(baseUrl, '', settings);
  
  return true;
}

function getLocaleDate(currentDate, locale)
{
  var day = currentDate.getDate();
  var month = currentDate.getMonth() + 1;
  var year = currentDate.getFullYear();
  
  var currentDate = '';
  
  if (locale == 'it-IT')
    currentDate = day + '/' + month + '/' + year;
  else if (locale == 'fr-FR')
    currentDate = day + '/' + month + '/' + year;
  else if (locale == 'en-US')
    currentDate = month + '/' + day + '/' + year;
  else if (locale == 'de-DE')
    currentDate = day + '.' + month + '.' + year;
  else
    currentDate = day + '/' + month + '/' + year;
    
  return currentDate;
}

function getArrivalDate(locale)
{
  var arrivalDate = new Date();
  
  var day = arrivalDate.getDate();
  var month = arrivalDate.getMonth();
  var year = arrivalDate.getFullYear();
  
  var txtArrival = getObj('arrivalDate');
  var arrival = txtArrival.value;

  if (locale == 'it-IT')
  {
    var dateValues = arrival.split("/");

    day = parseInt(dateValues[0]);
    month = parseInt(dateValues[1]) - 1;
    year = parseInt(dateValues[2]);    
  }
  else if (locale == 'fr-FR')
  {
    var dateValues = arrival.split("/");

    day = parseInt(dateValues[0]);
    month = parseInt(dateValues[1]) - 1;
    year = parseInt(dateValues[2]);    
  }
  else if (locale == 'en-US')
  {
    var dateValues = arrival.split("/");

    month = parseInt(dateValues[0]) - 1;
    day = parseInt(dateValues[1]);
    year = parseInt(dateValues[2]);    
  }
  else if (locale == 'de-DE')
  {
    var dateValues = arrival.split(".");

    day = parseInt(dateValues[0]);
    month = parseInt(dateValues[1]) - 1;
    year = parseInt(dateValues[2]);    
  }
  else
  {
    var dateValues = arrival.split("/");

    day = parseInt(dateValues[0]);
    month = parseInt(dateValues[1]) - 1;
    year = parseInt(dateValues[2]);    
  }

  arrivalDate.setFullYear(year, month, day);
    
  return arrivalDate;
}

function getDepartureDate(arrivalDate, numDays)
{
  var departureDate = new Date();

  var year = parseInt(arrivalDate.getFullYear());
  var month = parseInt(arrivalDate.getMonth());
  var day = parseInt(arrivalDate.getDate());

  var daysToAdd = parseInt(numDays);

  day += daysToAdd;
  
  departureDate.setFullYear(year, month, day);
  
  return departureDate;
}

function getObj(name)
{
  var obj;
  if (document.getElementById)
  {
  	obj = document.getElementById(name);
  }
  else if (document.all)
  {
  	obj = document.all[name];
  }
  else if (document.layers)
  {
   	obj = document.layers[name];
  }
  return obj;
}

function zoomImage(imageUrl, imageAlt)
{
  var imageId = getObj('zoom');
  
  imageId.src = imageUrl;
  imageId.alt = imageAlt;
}

function validateContactForm(language)
{
  var valid = true;
  
  var chkPrivacy = getObj('chkPrivacy');
  var txtFirstName = getObj('nome');
  var txtLastName = getObj('cognome');
  var txtPhone = getObj('cellulare');
  var txtEmail = getObj('from_address');
  var txtGarrivo = getObj('garrivo');
  var txtGpartenza = getObj('gpartenza');
    
  var strPrivacyRequired = '';
  var strFirstNameRequired = '';
  var strLastNameRequired = '';
  var strPhoneRequired = '';
  var strEmailRequired = '';
  var strGArrivoRequired = '';
  var strGPartenzaRequired = '';
  var strMessage = '';
  
     
  if (language == 'it')
  {
    strMessage = 'Si sono verificati i seguenti errori:\r\n';
    strFirstNameRequired = ' - inserire il nome.\r\n';
    strLastNameRequired = ' - inserire il cognome.\r\n';
    strPhoneRequired = ' - inserire un recapito telefonico.\r\n';
    strEmailRequired = ' - inserire un indirizzo e-mail.\r\n';
    strPrivacyRequired = ' - acconsentire al trattamento dei dati personali.\r\n';
    strGArrivoRequired = ' - inserire data di arrivo.\r\n';
    strGPartenzaRequired = ' - inserire data di partenza.\r\n';
    
  }
  else
  {
    strMessage = 'Please correct the following errors:\r\n';
    strFirstNameRequired = ' - please insert your first name.\r\n';
    strLastNameRequired = ' - please insert your last name.\r\n';
    strPhoneRequired = ' - please insert your phone number.\r\n';
    strEmailRequired = ' - please insert your e-mail address.\r\n';
    strPrivacyRequired = ' - please accept our privacy policy.\r\n';
    strGArrivoRequired = ' - please insert arrival date.\r\n';
    strGPartenzaRequired = ' - please insert departure date.\r\n';
  }

  if (isEmpty(txtFirstName))
  {
    strMessage += strFirstNameRequired;
    valid = false;
  }

  if (isEmpty(txtLastName))
  {
    strMessage += strLastNameRequired;
    valid = false;
  }

  if (isEmpty(txtPhone))
  {
    strMessage += strPhoneRequired;
    valid = false;
  }

  if (isEmpty(txtEmail))
  {
    strMessage += strEmailRequired;
    valid = false;
  }
   
  if (!chkPrivacy.checked)
  {
    strMessage += strPrivacyRequired;
    valid = false;
  }
  
  if (txtGarrivo.value == '--')
  {
    strMessage += strGArrivoRequired;
    valid = false;
  }
  
  if (txtGpartenza.value == '--')
  {
    strMessage += strGPartenzaRequired;
    valid = false;
  }
  
   
   
  if (!valid)
    alert(strMessage);
    


  return valid ;      
}

function isEmpty(control)
{
  var valid = (control.value == '');
  
  return valid;
}


// Calendar support functions

// This function gets called when the end-user clicks on some date.
function selected(cal, date) {
  cal.sel.value = date; // just update the date in the input field.
  if (cal.dateClicked && (cal.sel.id == "arrivalDate"))
    cal.callCloseHandler();
}

function closeHandler(cal) {
  cal.hide();                        // hide the calendar
//  cal.destroy();
  _dynarch_popupCalendar = null;
}

function showCalendar(id, format, showsTime, showsOtherMonths) {
  var el = document.getElementById(id);
  if (_dynarch_popupCalendar != null) {
    // we already have some calendar created
    _dynarch_popupCalendar.hide();                 // so we hide it first.
  } else {
    // first-time call, create the calendar.
    var cal = new Calendar(1, null, selected, closeHandler);
    // uncomment the following line to hide the week numbers
    // cal.weekNumbers = false;
    if (typeof showsTime == "string") {
      cal.showsTime = true;
      cal.time24 = (showsTime == "24");
    }
    if (showsOtherMonths) {
      cal.showsOtherMonths = true;
    }
    _dynarch_popupCalendar = cal;                  // remember it in the global var
    cal.setRange(1900, 2070);        // min/max year allowed.
    cal.create();
  }
  _dynarch_popupCalendar.setDateFormat(format);    // set the specified date format
  _dynarch_popupCalendar.parseDate(el.value);      // try to parse the text in field
  _dynarch_popupCalendar.sel = el;                 // inform it what input field we use

  _dynarch_popupCalendar.showAtElement(el.nextSibling, "Br");        // show the calendar

  return false;
}
