//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 fillHiddenParameters(position){
    var city = '';var listDispo = new Array;var j = 0;
    if (position == 1){
        city = document.getElementById('depCityCode1')
        city.value = document.getElementById('dpci1').options[document.getElementById('dpci1').selectedIndex].value;
    }else{
        city = document.getElementById('depCityCode2')
        city.value = document.getElementById('dpci2').options[document.getElementById('dpci2').selectedIndex].value;
    }
}
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;
}