
var lang='en';
var months = new Array();

function setCalLang(lan){
    lang=lan;
    if(lang=='it'){
        if (typeof(err_wrong_ci_date) != 'string') {
            err_wrong_ci_date = 'La data di partenza inserita non e\' valida';
        }
        if (typeof(err_wrong_co_date) != 'string') {
            err_wrong_co_date = 'La data di arrivo inserita non e\' valida';
        }
        if (typeof(err_wrong_ci_90max) != 'string') {
            err_wrong_ci_90max = 'La durata massima del soggiorno non puo\' superare i 90 giorni';
        }
        if (typeof(err_co_before_ci) != 'string') {
            err_co_before_ci = 'La data di partenza deve essere precedente a quella di arrivo';
        }
        months = new Array( "GEN", "FEB", "MAR", "APR", "MAG", "GIU", "LUG", "AGO", "SET", "OTT", "NOV", "DIC" );
    }else if(lang=='de'){
        if (typeof(err_wrong_ci_date) != 'string') {
            err_wrong_ci_date = 'Der angegebene Anreisetag ist ungültig.';
        }
        if (typeof(err_wrong_co_date) != 'string') {
            err_wrong_co_date = 'Der angegebene Abreisetag ist ungültig.';
        }
        if (typeof(err_wrong_ci_90max) != 'string') {
            err_wrong_ci_90max = 'Der Aufenthalt kann höchstens 90 Tage dauern.';
        }
        if (typeof(err_co_before_ci) != 'string') {
            err_co_before_ci = 'Der Anreisetag muss vor dem Abreisetag liegen.';
        }
        months = new Array( "JAN", "FEB", "MAR", "APR", "MAI", "JUN", "JUL", "AUG", "SEP", "OKT", "NOV", "DEZ" );
    }else if(lang=='es'){
        if (typeof(err_wrong_ci_date) != 'string') {
            err_wrong_ci_date = 'La fecha de llegada insertada no es válida.';
        }
        if (typeof(err_wrong_co_date) != 'string') {
            err_wrong_co_date = 'La fecha de salida no es válida.';
        }
        if (typeof(err_wrong_ci_90max) != 'string') {
            err_wrong_ci_90max = 'El tiempo de permanencia no puede superar los 90 días.';
        }
        if (typeof(err_co_before_ci) != 'string') {
            err_co_before_ci = 'La fecha de llegada tiene que ser anterior a la fecha de salida.';
        }
        months = new Array( "ENE", "FEB", "MAR", "ABR", "MAY", "JUN", "JUL", "AGO", "SEP", "OCT", "NOV", "DIC" );
    }
    else if(lang=='fr'){
        if (typeof(err_wrong_ci_date) != 'string') {
            err_wrong_ci_date = 'La date d\'arrivéé insérée n\'est pas valide.';
        }
        if (typeof(err_wrong_co_date) != 'string') {
            err_wrong_co_date = 'La date de départ insérée n\'est pas valide.';
        }
        if (typeof(err_wrong_ci_90max) != 'string') {
            err_wrong_ci_90max = 'La durée du séjour ne peut pas dépasser 90 jours.';
        }
        if (typeof(err_co_before_ci) != 'string') {
            err_co_before_ci = 'La date d\'arrivée doit être antérieure à la date de départ.';
        }
        months = new Array( "ENE", "FEV", "MAR", "AVR", "MAI", "JUN", "JUL", "AOU", "SEP", "OCT", "NOV", "DEC" );
    }
    else if(lang=='zh'){
        if (typeof(err_wrong_ci_date) != 'string') {
            err_wrong_ci_date = '你输入的入住日期无效。';
        }
        if (typeof(err_wrong_co_date) != 'string') {
            err_wrong_co_date = '你输入的离店日期无效。';
        }
        if (typeof(err_wrong_ci_90max) != 'string') {
            err_wrong_ci_90max = 'The maximum length of your stay cannot exceed 90 days.';
        }
        if (typeof(err_co_before_ci) != 'string') {
            err_co_before_ci = 'The check-in date must be before the check-out date.';
        }
        months = new Array( "一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月" );
    }
    else{
        if (typeof(err_wrong_ci_date) != 'string') {
            err_wrong_ci_date = 'The check-in date you entered is not valid.';
        }
        if (typeof(err_wrong_co_date) != 'string') {
            err_wrong_co_date = 'The check-out date you entered is not valid.';
        }
        if (typeof(err_wrong_ci_90max) != 'string') {
            err_wrong_ci_90max = 'The maximum length of your stay cannot exceed 90 days.';
        }
        if (typeof(err_co_before_ci) != 'string') {
            err_co_before_ci = 'The check-in date must be before the check-out date.';
        }
        if (typeof(err_room_le_person) != 'string') {
            err_room_le_person = 'Number of persons must be greater or equal of number of rooms';
        }
        if (typeof(err_person_number) != 'string') {
            err_person_number = 'Please specify the number of persons';
        }
        if (typeof(err_room_number) != 'string') {
            err_room_number = 'Please specify the number of rooms';
        }
        months = new Array( "JAN", "FEB", "MAR", "APR", "MAY", "JUN", "JUL", "AUG", "SEP", "OCT", "NOV", "DEC" );
    }
}
function CheckDate(myf) {
   var frm = document.myf;
   return _CheckDate(frm)
}

function _CheckDate(myf) {

   var today = new Date();
   var day = today.getDate();
   var month = today.getMonth() + 1 ;
   var year = today.getFullYear();
   if(!myf)
      myf = document.vSearch;

   sel_sd   = myf.cb_sd;
   sel_smy  = myf.cb_smy;
   sel_ed   = myf.cb_ed;
   sel_emy  = myf.cb_emy;
   sel_pval = myf.pval;
   sel_rval = myf.rval;

   
   if(!((sel_sd.selectedIndex ==0)&&(sel_smy.selectedIndex ==0)&&(sel_ed.selectedIndex ==0)&&(sel_emy.selectedIndex ==0)&& sel_pval != null && (sel_pval.selectedIndex ==0)&&(sel_rval.selectedIndex ==0)))
   {

      
      //check-in
      var start_day     = sel_sd.value;
      var tmp_smy       = new String(sel_smy.value).split('/');
      var start_month   = new Number(tmp_smy[0]);
      var start_year    = new Number(tmp_smy[1]);
      var mysd          = sel_sd.selectedIndex;
      var mysm          = tmp_smy[0];
      var mysy          = tmp_smy[1];

      //check-out
      var end_day       = sel_ed.value;
      var tmp_emy       = new String(sel_emy.value).split('/');
      var end_month     = new Number(tmp_emy[0]);
      var end_year      = new Number(tmp_emy[1]);
      var myed          = sel_ed.selectedIndex;
      var myem          = tmp_emy[0];
      var myey          = tmp_emy[1];

      //no check-in
      if (mysd == 0 || sel_smy.selectedIndex == 0) {
         alert(err_wrong_ci_date);
         return false;
      }
   
      //no check-out
      if (myed == 0 || sel_emy.selectedIndex == 0) { 
         alert(err_wrong_co_date);
         return false;
      }

      //check-in wrong date
      if (  (start_day == 31 && ((start_month == 4) || (start_month == 6) || (start_month == 9) || (start_month == 11))) 
         || ((start_day > 29) && (start_month == 2))
         || ((start_year %4 != 0) && (start_month == 2) && (start_day > 28))) {
         alert(err_wrong_ci_date);
         return false;
      } 
      if (start_month == month && start_year == year && start_day < day){ //check-in before today
         alert(err_wrong_ci_date);
         return false;
      }
   
      //check-out wrong date
      if (  (end_day == 31) && ((end_month == 4) || (end_month == 6) || (end_month == 9) || (end_month == 11))
         || ((end_day > 29) && (end_month == 2)) 
         || ((end_year %4 != 0) && (end_month == 2) && (end_day > 28))) {
         alert(err_wrong_co_date);
         return false;
      } 

      
      // extra check on start - end date range 
      var startDate = new Date(start_year, start_month-1, start_day);
      var endDate = new Date(end_year,end_month-1,end_day);    
      var maxDelta = 90 * 24 * 3600 * 1000; // 3 months
      if( endDate.getTime() - startDate.getTime() > maxDelta ) { //max 3 month reservation
         alert(err_wrong_ci_90max);
         return false;
      } else if( endDate.getTime() - startDate.getTime() <= 0 ) { //check-out date before check-in date
         alert(err_co_before_ci);
         return false;
      }
      
         
      //set html select values
      myf.sd.value = start_day;
      myf.sm.value = mysm;
      myf.sy.value = mysy;
   
      myf.ed.value = end_day;
      myf.em.value = myem;
      myf.ey.value = myey;
      return true;
      
   }else {
       alert(err_wrong_ci_date);
       return false;
   }
   
   return true;
}

function clearAll( form ) {
   form.cb_sd.selectedIndex = 0;
   form.cb_smy.selectedIndex = 0;
   form.cb_ed.selectedIndex = 0;
   form.cb_emy.selectedIndex = 0;
   form.pval.selectedIndex = 0;
   form.rval.selectedIndex = 0;

}

function checkSelNum( cb ) {
   if( cb != null && cb.selectedIndex == 0 ) { clearAll(cb.form); return true; }
}

function StartDateCheck( cb ) {
   if( cb != null && cb.selectedIndex == 0 ) { clearAll(cb.form); return true; }

   var myf = !cb ? document.vSearch : cb.form;
   if(!myf) myf = document.vSearch;
   var today = new Date();
   var day = today.getDate();
   var month = today.getMonth() + 1 ;
   var year = today.getFullYear();

   var mysd = myf.cb_sd.selectedIndex;
   if (mysd == 0) { return true; }

   var tmp = myf.cb_smy.selectedIndex;
   if (tmp == 0) { return true; }
   
   var smy = new String(myf.cb_smy[tmp].value).split('/');
   var mysm = new Number(smy[0]);
   var mysy = new Number(smy[1]);

   if (mysd == 31) {
      if ((mysm == 4) || (mysm == 6) || (mysm == 9) || (mysm == 11)) mysd = 30;
   }
   if ((mysd > 29) && (mysm == 2)) mysd = 29;
   if ((mysy %4 != 0) && (mysm == 2) && (mysd > 28)) mysd = 28;
   
   
   //bug 2396
   if (mysm == month && mysy == year){
      if (mysd < day)
         mysd = day
   }// end bug 2396
   
   myf.cb_sd.selectedIndex = mysd;
   
   var myed = mysd + 1;
   var myem = mysm;
   var myey = mysy;
   if (myed > 31) myed = -1;
   if (myed == 31) {
      if ((myem == 4) || (myem == 6) || (myem == 9) || (myem == 11)) myed = -1;
   }
   if ((myed > 29) && (myem == 2)) myed = -1;
   if ((myey %4 != 0) && (myem == 2) && (myed > 28)) myed = -1;
   
   if (myed == -1) { myed = 1;   tmp = tmp + 1; }
   if (tmp >= myf.cb_emy.options.length) {
      myed = myf.cb_sd.selectedIndex
      tmp  = myf.cb_smy.selectedIndex;
   }

   if( myf.cb_ed.selectedIndex == 0 && myf.cb_emy.selectedIndex == 0 )
   {
      myf.cb_ed.selectedIndex = myed;
      myf.cb_emy.selectedIndex = tmp;
   }
}



function EndDateCheck( cb ) {
   if( cb != null && cb.selectedIndex == 0 ) { clearAll(cb.form); return true; }

   var today   = new Date();
   var day     = today.getDate();
   var month   = today.get = today.getMonth() + 1 ;
   var year    = today.getFullYear();
   if(!cb)
      myf = document.vSearch;
   else
      myf = cb.form;
   if(!myf) myf = document.vSearch;

   myed = myf.cb_ed.selectedIndex;
   if (myed == 0) return true;

   tmp = myf.cb_emy.selectedIndex;
   if (tmp == 0) return true;

   var emy = new String(myf.cb_emy[tmp].value).split('/');
   var myem = new Number(emy[0]);
   var myey = new Number(emy[1]);

   if (myed == 31) {
      if ((myem == 4) || (myem == 6) || (myem == 9) || (myem == 11)) myed = 30;
   }
   if ((myed > 29) && (myem == 2)) myed = 29;
   if ((myey %4 != 0) && (myem == 2) && (myed > 28)) myed = 28;

   if (myem == month && myey == year){
      if (myed < day)
         myed = day
   }
   
   // extra check on start - end date range 
   var smy = new String(myf.cb_smy.value).split('/');
   var sm  = new Number(smy[0]);
   var sy  = new Number(smy[1]);
   var sd = myf.cb_sd.value;

   var startDate = new Date(sy,sm-1,sd);
   var endDate = new Date(myey,myem-1,myed);    
   var maxDelta = 90 * 24 * 3600 * 1000; // 3 months
   if( endDate.getTime() - startDate.getTime() > maxDelta ) { //max 3 month reservation
      endDate.setTime( startDate.getTime()+maxDelta );
      myed = String(endDate.getDate()); while( myed.length < 2 ) myed = String("0") + myed;
      myem = String(endDate.getMonth()+1); while( myem.length < 2 ) myem = String("0") + myem;
      myey = String(endDate.getFullYear());
      // reset month / year combo box
      myf.cb_emy.value = String(myem) + "/" + myey;
   } 

   myf.cb_ed.selectedIndex = myed;

}

function CheckSearchForm(form) {
   sel_sd   = myf.cb_sd.selectedIndex;
   sel_smy  = myf.cb_smy.selectedIndex;
   sel_ed   = myf.cb_ed.selectedIndex;
   sel_emy  = myf.cb_emy.selectedIndex;
   sel_pval = myf.pval.selectedIndex;
   sel_rval = myf.rval.selectedIndex;
   
}


function getArgs() {
    var args = new Object();
    var query = location.search.substring(1);
    var pairs = query.split("&");
    for(var i = 0; i < pairs.length; i++)
    {
        var pos = pairs[i].indexOf('=');
        if (pos == -1) continue;
        var argname = pairs[i].substring(0,pos);
        var value = pairs[i].substring(pos+1);
        args[argname] = value;
        }
        return args;
}


                       
function padZero( i ) {
    var result = String(i);
    while( result.length < 2 ) result = String(0) + result;
    return result;
}

function renderOptions(month,lan) {
    setCalLang(lan);
    var now = new Date();
    var result = "<option value=''>---</option>";
    for( i = now.getMonth(); i < 12 + now.getMonth(); i++ ) {
        var m = i % 12 +1;
        var y = now.getFullYear() + Math.floor(i / 12);
        var sel=(month==m ? ' selected ' : '');
    result += "<option value='" +padZero(m)+"/"+y+ "'"+sel+">" + months[m-1]+" "+ y + "</option>";
    }
    return result;
}
function set_hidden() {
      gd= window.document.vSearch.cb_sd.value;
      window.document.vSearch.sd.value=gd;

      gx= window.document.vSearch.cb_smy.value;
      gm=gx.substring(0,2);  // il mese di ci
      gy=gx.substring(3,7);  // anno di ci
      window.document.vSearch.sm.value=gm;
      window.document.vSearch.sy.value=gy;

      gd1= window.document.vSearch.cb_ed.value;
      window.document.vSearch.ed.value=gd1;

      gx1= window.document.vSearch.cb_emy.value;
      gm1=gx1.substring(0,2);  // il mese di ci
      gy1=gx1.substring(3,7);  // anno di ci
      window.document.vSearch.em.value=gm1;
      window.document.vSearch.ey.value=gy1;
   }
