//Date Sorting after converting to String
function sortDate(a,b) {
  aa = a.split("/");bb = b.split("/");a = aa[2]+aa[1]+aa[0];b = bb[2]+bb[1]+bb[0];
  if (a > b) return 1;if (a < b) return -1;if (a == b) return 0;
}
var checked ='price';
var monthArray = new Array('','Jan','F\xE9v','Mars','Avr','Mai','Juin','Juil','Ao\xFBt','Sept','Oct','Nov','D\xE9c');
var daysArray = new Array('dim','lun','mar','mer','jeu','ven','sam');
function Dispo(depCityCode, depDate, depDate2, price, nbDays, nbNigths,priceBrochure){
    this.depCityCode = depCityCode;
    var d = new Date(depDate);
  var date = depDate.split("/");
    var day = date[0];
  var dayOfWeek = d.getDay();
    var month = date[1];
    var monthFr = monthArray[Number(month)];
    var year = "20" + date[2];
    this.depDate = day + " " + monthFr + " " + year;
    this.depDate2 = day + "-" + month + "-" + year;
    this.price = price;
    this.nbDays = nbDays;
    this.nbNigths = nbNigths;
    this.priceBrochure= priceBrochure;
}
Dispo.prototype.toString = function(){

  if(this.priceBrochure!=null&&this.priceBrochure!="null"&&this.priceBrochure!=""&&parseFloat(this.priceBrochure)>parseFloat(this.price))
    return  ' le ' + this.depDate + ' pour ' + this.price + '\u20AC au lieu de '+this.priceBrochure+'\u20AC - ' + this.nbDays + ' j / ' + this.nbNigths + ' n';
  else
    return  ' le ' + this.depDate + ' pour ' + this.price + '\u20AC - ' + this.nbDays + ' j / ' + this.nbNigths + ' n';
}
Dispo.prototype.stringInValue = function() {return  this.depDate2 + '-' + this.nbDays + '-' + this.nbNigths;}
function updateDispo(id,idof,disposArray){
  document.getElementById("dpci"+idof).value = document.getElementById("dpci"+id).value;
    fillSelectBoxDispo('departure-dates'+idof,'dpci'+idof, disposArray, 'null');
}
function updateSelectBox(source,dest){document.getElementById(dest).value = source.value;}
function showAgeSelectBox(value,idf,idof){
  value = parseInt(value);
  for (var i=1;i<=4;i++){
    document.getElementById("ageChild"+i+"-"+idf).style.display = "none";
    document.getElementById("ageChild"+i+"-"+idof).style.display = "none";
  }
  for (var i=1;i<=value;i++){
    document.getElementById("ageChild"+i+"-"+idf).style.display = "block";
    document.getElementById("ageChild"+i+"-"+idof).style.display = "block";
  }
}
function initLoaderDom(){
    jQuery('.inputImage').after("<img class='loader' src='/csvweb/images/ajax-loader.gif' />");
}
function changeLoaderImage(){
  jQuery(".inputImage").hide();
  jQuery(".loader").show();
}
function displayAgeBox(childrenSelectBoxName, maxNbOfChildren){
    var value = document.getElementById(childrenSelectBoxName).options[document.getElementById(childrenSelectBoxName).selectedIndex].value;
    for (var i = 1; i <= value; i++){
        var divID = "ageChild1" + i;var divID2 = "ageChild2" + i;
        document.getElementById(divID).style.display = "block";
        document.getElementById(divID2).style.display = "block";
    }
    for (var i = Number(value)+1; i <= maxNbOfChildren; i++){
        var divID = "ageChild1" + i;var divID2 = "ageChild2" + i;
        document.getElementById(divID).style.display = "none";
        document.getElementById(divID2).style.display = "none";
    }
}
function updateSelectBoxAgeChild(id,ido){document.getElementById(ido).value = document.getElementById(id).value;}
function getDatesForCityPrice(city,price){
  var dates = "";var i = 0;var aDates = new Array();
  for (var y in disposArray){
    if((disposArray[y].depCityLabel == city) && (disposArray[y].price == price)){//put all date in array
      aDates[i] = disposArray[y].depDate;i++;
    }
  }
  aDates = aDates.sort(sortDate);
  for (var y in aDates) {dates += aDates[y] + ", ";}
  dates = dates.substring(0, (dates.length)-2);
  return dates;
}
/** Remplissage de la select box des dispos sur la fiche produit.
* @param dispoSelectBoxName dispo select box name
* @param citySelectBoxName city select box name
* @param disposArray array of all js dispos objects
* @param selectedDispo option dispo to select (from salesprocess)*/
function fillSelectBoxDispo(dispoSelectBoxName, citySelectBoxName, disposArray, selectedDispo) {
    // On recupere le code de la ville selectionnee
    var selectedDepCityCode = document.getElementById(citySelectBoxName).options[document.getElementById(citySelectBoxName).selectedIndex].value;
    // Suppression des anciennes Options
    document.getElementById(dispoSelectBoxName).length = 0;
    // Ajout des nouvelles Options
    var j = 0;var strOld = "" ;var basePriceIndex=0;var basePrice=0;
    for(var i = 0; i < disposArray.length; i++) {
        if (disposArray[i].depCityCode == selectedDepCityCode) {
      if (strOld!=disposArray[i].stringInValue()) {
        document.getElementById(dispoSelectBoxName).options[j] = new Option(disposArray[i].toString(), disposArray[i].stringInValue());
        if(j==0){basePrice=disposArray[i].price;}
                else if( parseInt(basePrice)> parseInt(disposArray[i].price)){basePrice=disposArray[i].price;basePriceIndex=j;}
                j++;
        strOld = disposArray[i].stringInValue();
      }
        }
    }
    document.getElementById(dispoSelectBoxName).selectedIndex=basePriceIndex;
}

/**
 *
 * @param idForm id of the form.
 */
function submitForm(idForm){
    if(jQuery.validateResform()){
      changeLoaderImage();
    }
    jQuery("[name='reservationForm']").
      first().
      submit(function(){
        return jQuery.validateResform();
      });
}

