var alert_blank_city = "- Scrivi la cittą in cui vuoi cercare un hotel";
var alert_invalid_arrivalDate = "- Date di Arrivo non valida";
var alert_invalid_departureDate = "- Data di partenza non valida";
var alert_invalid_numPeopleHab = "- Massimo 4 persone per stanza.";
var alert_error_load_airports = "Non si possono mostrare le localitą.\nPer favore, ricarica la pagina.";
var alert_click_open_pricefinder = "Cliccando cerca ti si aprirą il cercaprezzi.";
var alert_error_open_calendar = "No si puo' mostrare il calendario.\nPer favore, ricarica la pagina.";
var form_label_flexible = "Sono flessibile";

function getCalendarForSeoPagesSearchEngineDate() {
   var date = new Date();
   var friday = 5;
   var today = date.getDay(); //week day from 0 to 6 (Sunday is 0, Monday is 1, and so on.)

   if ((today>0) && (today<5)) {                         //today is one of these: Monday, Tuesday, Wednesday or Thursday
      numberDaysToFriday = friday - today;
      date.setDate(date.getDate()+7+numberDaysToFriday);
   } else {                                             //today is Sunday or Friday or Saturday
      if (today == 0) { //if today is sunday we change the today date to 7 for aritmetic purposes.
        today = 7;
      }
      numberDaysToFriday = friday - today;
      date.setDate(date.getDate()+14+numberDaysToFriday);
   }
   return date;
 }

 function formatDate(date) {
   var day = date.getDate();
   if(day<10){
      day = "0" + day;
    }
   var month = date.getMonth()+1;
   if(month<10){
       month = "0" + month;
   }
   var data = day+"/"+month+"/"+takeYear(date);
   return data;
 }

   /**
  * Centralized creation of date calculation for the seo hotel pages for departure date
  * @return
  */
 function getCalendarForSeoPagesSearchEngineDateDeparture(numDays){
    var date = getCalendarForSeoPagesSearchEngineDate();
    date.setDate(date.getDate()+numDays);
    var data = formatDate(date);
    return data;
 }

   /**
  * Centralized creation of date calculation for the seo hotel pages for arrival date
  * @return
  */
 function getCalendarForSeoPagesSearchEngineDateArrival(numDays){
   var date = getCalendarForSeoPagesSearchEngineDate();
   var data = formatDate(date);
   return data;
 }

function getCurrentDate() {
     var fecha = new Date();
     dia = fecha.getDate();
     if(dia<10){
       dia = "0" + dia;
     }
     mes = fecha.getMonth()+1;
     if(mes<10){
        mes = "0" + mes;
     }
     var data = dia+"/"+mes+"/"+takeYear(fecha);
     return data;
  }

  function searchHotelsFormSubmit(){
    if(checkForm()){
        var isIframe = document.hotelsSearch.toIframe;
        if(isIframe == null || (isIframe != null && !isIframe.value=='true')){
           if(typeof setSwooshStep == "function"){
               setSwooshStep('paso1' , 'hoteles', 'hotelsSearch');
           }
        }
       document.hotelsSearch.submit();
    }else{
       return false;
    }
  }
  function putCityValue(src,clr){
    document.hotelsSearch.city.value=src;
  }
  function cleanUp(obj, txt){
    if(obj.value == txt){
       obj.value='';
    }
    return;
  }
  function hotAp(){
    var wAirport=window.frames['hotFrame'];
    if(null==wAirport.airportDepLoaded || false==wAirport.airportDepLoaded){
       alert(alert_error_load_airports);
       return;
    }
    wAirport.showCity(window.parent.frames['0'].abCity, 1);
  }
  function dcal(eTrig, dMin, dMax, campo, fr, isExt) {
    var wCal=window.frames['calendarFrame'];
    if((document.flightsSearch) && (document.flightsSearch.depDate.value==form_label_flexible && campo!='depDate')){
        alert(alert_click_open_pricefinder);
        return;
    }
    if(isExt=='true'){
       wCal=window.frames['calendarFrameExt'];
    }
    if(null==wCal.calendariLoaded || false==wCal.calendariLoaded){
       alert(alert_error_open_calendar);
       return;
    }
    if(eTrig==0){
       if("sopsSearch"==fr){
          wCal.showCalendar(window.document.cal1via, dMin, dMax, campo,fr);
       }else{
          if("hotelsSearch"==fr){
             wCal.showCalendar(window.document.cal21hot, dMin, dMax, campo,fr);
          }else{
             wCal.showCalendar(window.document.cal1bt, dMin, dMax, campo,fr);
          }
       }
    }else{
       if("hotelsSearch"==fr){
          wCal.showCalendar(window.document.cal2hot, dMin, dMax, campo,fr);
       }else{
          wCal.showCalendar(window.document.cal2bt, dMin, dMax, campo,fr);
       }
    }
  }
  function anyadirDias(pDate,pTotalDias,ptipo){
    fecha = new Date(pDate.substring(3,5) + "/" + pDate.substring(0,2)+ "/" + pDate.substring(6));
    fecha.setTime(fecha.getTime()+(pTotalDias*24*60*60*1000));
    dia = fecha.getDate();
    if(dia<10){
       dia = "0" + dia;
    }
    mes = fecha.getMonth()+1;
    if(mes<10){
       mes = "0" + mes;
    }
    return (ptipo=='data') ? dia+"/"+mes+"/"+takeYear(fecha) : takeYear(fecha)+""+mes+""+dia;
  }
  function takeYear(theDate){
    x = theDate.getYear();
    var y = x % 100;
    y += (y < 38) ? 2000 : 1900;
    return y;
  }
  function checkForm(){
    var alertText = "";

    if(document.getElementById("citi")){
       if(document.hotelsSearch.cityName.value==document.hotelsSearch.citi.value){
          document.hotelsSearch.city.value="";
       }
    }
    if(document.hotelsSearch.city.value==''){
       alertText = alertText + alert_blank_city + "\n";
    }
    if(!parseDate(document.hotelsSearch.arrivalDate.value)){
        alertText = alertText + alert_invalid_arrivalDate + "\n";
    }
    if(!parseDate(document.hotelsSearch.departureDate.value)){
        alertText = alertText + alert_invalid_departureDate + "\n";
    }
    //Check number of people per room (max 4 inc children)
    var numadults = parseInt(document.getElementById('idnumadults').value);
    var numchildren = parseInt(document.getElementById('idnumchildren').value);
    var numpeoplehab = numadults + numchildren;
    if(numpeoplehab > 4){
       alertText = alertText + alert_invalid_numPeopleHab + "\n";
    }
    //Converting the two dates from gg/mm/aaaa to ggmmaaaa for the search-engine
    if(document.hotelsSearch.checkInDate){
        var gg_mm_aaaa = document.hotelsSearch.arrivalDate.value;
        var ggmmaaaa   = gg_mm_aaaa.substr(0, 2)
                       + gg_mm_aaaa.substr(3, 2)
                       + gg_mm_aaaa.substr(6, 4);
        document.hotelsSearch.checkInDate.value = ggmmaaaa;
    }
    if(document.hotelsSearch.checkOutDate){
        gg_mm_aaaa     = document.hotelsSearch.departureDate.value;
        ggmmaaaa       = gg_mm_aaaa.substr(0, 2)
                       + gg_mm_aaaa.substr(3, 2)
                       + gg_mm_aaaa.substr(6, 4);
        document.hotelsSearch.checkOutDate.value = ggmmaaaa;
    }
    if(alertText!=""){
       alert(alertText);
       return false;
    }else{
       return true;
    }
  }

  function parseDate(dateString){
    if(dateString.length != 10){
       return false;
    }
    if((dateString.charAt(2) !='/') || (dateString.charAt(5) != '/')){
        return false;
    }
    var diafecha, mesfecha, anyofecha;
    var d       = new Date();
    var diasmes = new Array(0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
    diafecha    = dateString.substring(0, 2);
    mesfecha    = dateString.substring(3, 5);
    anyofecha   = dateString.substring(6);
    if(isNaN(diafecha) || isNaN(mesfecha) || isNaN(anyofecha)){
       return false;
    }
    if(anyofecha < d.getYear()){
       return false;
    }
    if((mesfecha < 1) || (mesfecha > 12)){
        return false;
    }
    if((diafecha < 1) || (diafecha > diasmes[mesfecha/1])){
        return false;
    }
    return true;
  }

