//reset all the criterias when reload the page
function resetSelectionsPromos(){
   	document.getElementById('promoDestination').value="";
	if(document.getElementById('promoFormule')){
		document.getElementById('promoFormule').value="";
	}
	if(document.getElementById('promoTypeVol')){
		document.getElementById('promoTypeVol').value="";
	}
	document.getElementById('promoBudget').value="";
	document.getElementById('promoDpci').value="";
	document.getElementById('promoDmy').value="";
	if(document.getElementById('promoDay')){
		document.getElementById("promoDay").disabled = true;
		document.getElementById("promoDay").value = '';
		document.getElementById("promoDay").innerHTML = '';
	}
	if(document.getElementById('promoDuree')){
		document.getElementById('promoDuree').value="";
	}

}
function promosOnmouseover(productId,id){
document.getElementById("col1"+productId+"-"+id).style.backgroundColor='#F5E7EF';
document.getElementById("col2"+productId+"-"+id).style.backgroundColor='#F5E7EF';
document.getElementById("col3"+productId+"-"+id).style.backgroundColor='#F5E7EF';
document.getElementById("col4"+productId+"-"+id).style.backgroundColor='#F5E7EF';
}

function promosOnmouseout(productId,id){

document.getElementById("col2"+productId+"-"+id).style.backgroundColor='#FFFFFF';

document.getElementById("col4"+productId+"-"+id).style.backgroundColor='#FFFFFF';
if(document.getElementById("promotarifs"+productId).className=="even"){
	document.getElementById("col1"+productId+"-"+id).style.backgroundColor='#F3F2EF';
	document.getElementById("col3"+productId+"-"+id).style.backgroundColor='#F3F2EF';
}else{
	document.getElementById("col1"+productId+"-"+id).style.backgroundColor='#E0DCD6';
	document.getElementById("col3"+productId+"-"+id).style.backgroundColor='#E0DCD6';
}

}

function showPromosTarif(idPromo ,pid,parametersCriteresPromos){
	if(document.getElementById("promos-"+idPromo).innerHTML.indexOf("col1")>-1){
		document.getElementById("promos-"+idPromo).innerHTML="";
	}else{
	var req = null;
    //Do the Ajax call
    if (window.XMLHttpRequest) { // Non-IE browsers
        req = new XMLHttpRequest();
    } else
    if (window.ActiveXObject) { // IE
        req = new ActiveXObject("Microsoft.XMLHTTP");
    }
    if(parametersCriteresPromos!="")parametersCriteresPromos="&"+parametersCriteresPromos ;
	var url = "/elements/promos-ajax-tarif.jsp?pid=" + pid+parametersCriteresPromos ;
	document.getElementById("promos-"+idPromo).innerHTML = "<div style='padding-top:10px;padding-bottom:10px;'><center><img src='/CS/images/ajax-loader-big.gif' /></center>";

    req.onreadystatechange = function() { processStateShowTarifs(req,idPromo); };
    req.open("GET", url, true);
    req.send(null);
    }
}


  /*
  * Set as the callback method for when XmlHttpRequest State Changes
  * used by retrieveUrl
  */
  function processStateShowTarifs(req,idPromo) {

    if (req.readyState == 4) { // Complete
      if (req.status == 200) { // OK response
      	sResponse = req.responseText;
      	if (sResponse.length > 10){
       	document.getElementById("promos-"+idPromo).innerHTML = sResponse;
       }
      } else {
        alert("Problem with server response:\n " + req.statusText);
      }
    }
  }
  function partitionner(strParametres){
	GetResultatPromos('/elements/promos-retour-moteur-ajax.jsp', strParametres);
  }

  function updateMoteurResultPromos(ForfaitVol){
	var strParametres = "";
	var promoDestination=document.getElementById('promoDestination').value;
	if(document.getElementById('promoFormule'))
	var promoFormule=document.getElementById('promoFormule').value;
	else var promoFormule="";
	if(document.getElementById('promoTypeVol'))
	var promoTypeVol=document.getElementById('promoTypeVol').value;
	else var promoTypeVol="";
	var promoBudget=document.getElementById('promoBudget').value;
	var promoDpci=document.getElementById('promoDpci').value;
	var promoDmy=document.getElementById('promoDmy').value;
	if(document.getElementById('promoDay'))
	var promoDay=document.getElementById('promoDay').value;
	else var promoDay="";
	if(document.getElementById('promoDuree'))
	var promoDuree=document.getElementById('promoDuree').value;
	else var promoDuree="";

	var typeSorting=document.getElementById('typeSorting').value;
	strParametres = "c.hpfv="+ForfaitVol+"&dpci="+promoDpci+"&c.hpde="+promoDestination+"&dmy="+promoDmy+"&c.hpfo="+promoFormule+"&c.hptv="+promoTypeVol+"&minMan="+promoDuree+"&mmp="+promoBudget+"&st="+typeSorting+"&dd="+promoDay;

	GetMoteurPromos('/elements/promos-tri-ajax.jsp', strParametres,promoDmy,promoDay);
	GetResultatPromos('/elements/promos-retour-moteur-ajax.jsp', strParametres);
}

function reinitialCriteresPromos(ForfaitVol){
	strParametres = "c.hpfv="+ForfaitVol;
	GetMoteurPromos('/elements/promos-tri-ajax.jsp', strParametres,'','');
	GetResultatPromos('/elements/promos-retour-moteur-ajax.jsp', strParametres);
}
function updateResultPromos(ForfaitVol){
	var strParametres = "";
	var promoDestination=document.getElementById('promoDestination').value;
	if(document.getElementById('promoFormule'))
	var promoFormule=document.getElementById('promoFormule').value;
	else
	var promoFormule="";
	if(document.getElementById('promoTypeVol'))
	var promoTypeVol=document.getElementById('promoTypeVol').value;
	else var promoTypeVol="";
	var promoBudget=document.getElementById('promoBudget').value;
	var promoDpci=document.getElementById('promoDpci').value;
	var promoDmy=document.getElementById('promoDmy').value;
	if(document.getElementById('promoDay'))
	var promoDay=document.getElementById('promoDay').value;
	else var promoDay="";
	if(document.getElementById('promoDuree'))
	var promoDuree=document.getElementById('promoDuree').value;
	else
	var promoDuree="";
	var typeSorting=document.getElementById('typeSorting').value;
	strParametres = "c.hpfv="+ForfaitVol+"&dpci="+promoDpci+"&c.hpde="+promoDestination+"&dmy="+promoDmy+"&c.hpfo="+promoFormule+"&c.hptv="+promoTypeVol+"&minMan="+promoDuree+"&mmp="+promoBudget+"&st="+typeSorting+"&dd="+promoDay;
	GetResultatPromos('/elements/promos-retour-moteur-ajax.jsp', strParametres);
}

function GetMoteurPromos(pageName, params,promoDmy,promoDay){
	var req = null;
    //Do the Ajax call
    if (window.XMLHttpRequest) { // Non-IE browsers
        req = new XMLHttpRequest();
    } else
    if (window.ActiveXObject) { // IE
        req = new ActiveXObject("Microsoft.XMLHTTP");
    }
	var url = pageName + "?" + params ;
	//document.getElementById("MoteurPromos").innerHTML = "<div style='padding-top:150px;'><center><img src='/CS/images/ajax-loader-big.gif' /></center>";
	req.onreadystatechange = function() { processStateChangeMoteurPromos(req,promoDmy,promoDay); };
	req.open("GET",url,true);
	req.send(null);

}

 function processStateChangeMoteurPromos(req,promoDmy,promoDay) {

    if (req.readyState == 4) { // Complete
      if (req.status == 200) { // OK response
      	sResponse = req.responseText;
      	if (sResponse.length > 10){
       	document.getElementById("tri").innerHTML = sResponse;
       	var minDatePromos=document.getElementById('minDatePromos').value;
       	var maxDatePromos=document.getElementById('maxDatePromos').value;
       	initialPromosDate(minDatePromos,maxDatePromos,promoDmy);

       	EnableDisableDdPromos(promoDay,minDatePromos,maxDatePromos);


       }
      } else {
        alert("Problem with server response:\n " + req.statusText);
      }
    }
  }

function GetResultatPromos(pageName, params){
	var req = null;
    //Do the Ajax call
    if (window.XMLHttpRequest) { // Non-IE browsers
        req = new XMLHttpRequest();
    } else
    if (window.ActiveXObject) { // IE
        req = new ActiveXObject("Microsoft.XMLHTTP");
    }
	var url = pageName + "?" + params ;
	//document.getElementById("MoteurPromos").innerHTML = "<div style='padding-top:150px;'><center><img src='/CS/images/ajax-loader-big.gif' /></center>";
	req.onreadystatechange = function() { processStateChangePromosResult(req); };
	req.open("GET",url,true);
	req.send(null);

}

 function processStateChangePromosResult(req) {

    if (req.readyState == 4) { // Complete
      if (req.status == 200) { // OK response
      	sResponse = req.responseText;
      	if (sResponse.length > 10){
       	document.getElementById("retour-moteur-promos").innerHTML = sResponse;
       }
      } else {
        alert("Problem with server response:\n " + req.statusText);
      }
    }
  }
var noDateAvailablePromos=true;
var monthAbbreFrenchPromos = new Array('','Jan.','F\xE9v.','Mars','Avr.','Mai','Juin','Juil.','Ao\xFBt','Sept.','Oct.','Nov.','D\xE9c.');

function initialPromosDate(minDate,maxDate,promoDmy){
	var firstDayPromos = new Date();
	var beginDayPromos="";
	var beginMonthPromos="";
	var beginYearPromos="";
	var endDayPromos="";
	var endMonthPromos="";
	var endYeaPromosr="";
	if(minDate!=""){
		beginDayPromos=minDate.split('-')[2];
		beginMonthPromos=minDate.split('-')[1];
		beginYearPromos=minDate.split('-')[0];
	}
	if(maxDate!=""){
		endDayPromos=maxDate.split('-')[2];
		endMonthPromos=maxDate.split('-')[1];
		endYearPromos=maxDate.split('-')[0];
	}

	firstDayPromos.setFullYear(parseFloat(beginYearPromos));
	firstDayPromos.setDate(parseFloat(beginDayPromos));
 	firstDayPromos.setMonth(parseFloat(beginMonthPromos)-1);

	/*if(firstDayPromos<firstDayAvailable){
		beginDayPromos = firstDateAvailable;
		beginMonthPromos = firstMonthAvailable;
		beginYearPromos = firstYearAvailable;
		minDate=beginYearPromos+"-"+beginMonthPromos+"-"+beginDayPromos;
	}*/

	/*previousDayAvailable.setFullYear(parseFloat(beginYearPromos));
	previousDayAvailable.setDate(parseFloat(beginDayPromos));
	previousDayAvailable.setDate(previousDayAvailable.getDate() - 1);
 	previousDayAvailable.setMonth(parseFloat(beginMonthPromos)-1);*/


	if(minDate!=""&&maxDate!=""){
	noDateAvailablePromos=false;
	}else{
	noDateAvailablePromos=true;
	}
	if(!noDateAvailablePromos){
	var monthArrayPromos=new Array();
  	var yearArrayPromos=new Array();
 	var monthCount=0;
        if(parseFloat(beginYearPromos)<=parseFloat(endYearPromos)) monthCount=(parseFloat(endYearPromos)-parseFloat(beginYearPromos))*12+parseFloat(endMonthPromos)-parseFloat(beginMonthPromos)+1;
        for(i=0; i<monthCount; i++){
	        yearArrayPromos[i]=parseFloat(beginYearPromos)+parseInt((parseFloat(beginMonthPromos)+i-1)/12);
	        if(parseFloat(beginMonthPromos)+i>12)monthArrayPromos[i]=(parseFloat(beginMonthPromos)+i)%12; else monthArrayPromos[i]=(parseFloat(beginMonthPromos)+i)
        }
	 renderArrayMonthPromos(monthArrayPromos,yearArrayPromos);
	 document.getElementById('promoDmy').value=promoDmy;
	 }else{
	 	 var promoDmySelect=document.getElementById("promoDmy");
		promoDmySelect.options[0]=new Option("Indiff\xE9rent","");
		promoDmySelect.options.length=1;
		promoDmySelect.selectedIndex=0;
	 }


}

function renderArrayMonthPromos(monthArray,yearArray){
    var buffer = "";
    var promoDmySelect=document.getElementById("promoDmy");
	//buffer = "<select name=\"dmy\" id=\"promoDmy\" title=\"Mois de d&eacute;part\"  OnChange=\"javascript:updateMoteurPromos('<%=ForfaitVol %>');EnableDisableDdPromos();disableOptions(document.getElementById('promoDmy'),document.getElementById('promoDay'));modifColorOptionDate(document.getElementById('promoDmy'),document.getElementById('promoDay'));\">";
   //	buffer +="<option value='' selected='selected'>Indiff&eacute;rent</option>";
   	promoDmySelect.options[0]=new Option("Indiff\xE9rent","");

    var month="";

   		for (var x=0;x< monthArray.length;x++){
	        if(monthArray[x]<10) month='0'+monthArray[x];
	        else month=monthArray[x];
	        promoDmySelect.options[x+1]=new Option(monthAbbreFrenchPromos[monthArray[x]]+' '+yearArray[x],month+'/'+yearArray[x]);
	        //buffer += "<option value='"+month+'/'+yearArray[x]+"'>"+monthAbbreFrench[monthArray[x]]+' '+yearArray[x]+"</option>";
    	}

     //document.getElementById("promoDmy").innerHTML = buffer;
}
function EnableDisableDdPromos(promoDay,minDatePromos,maxDatePromos){

	if(document.getElementById("promoDmy").value != ""){
		document.getElementById("promoDay").disabled = false;
		if(promoDay=="")
		document.getElementById('promoDay').selectedIndex=0;
		else
		document.getElementById('promoDay').value=promoDay;
	}
}

function DispoVol(depCityCode, destiCode, depDate, retourDate, typeVol){
    this.depCityCode = depCityCode;
    this.destiCode =  destiCode;
    this.depDate = depDate;
    this.retourDate = retourDate;
    this.typeVol = typeVol;
}

var citiesArrayInitial = new Array();
var destisArrayInitial = new Array();
var datesFromArrayInitial = new Array();
var datesToArrayInitial = new Array();
var typeVolArrayInitial = new Array();


var disposArrayVol = new Array();

function SearchOption(code,label){
    this.code = code;
    this.label =  label;

}

function inDestination(aTestValue,sValue){
    for (var x in aTestValue){
        if (aTestValue[x].indexOf(sValue)>-1 ){
            return true;
        }
    }
    return false;
}

function InitialSearchEngineVol(){
citiesArrayInitial = new Array();
destisArrayInitial = new Array();
datesFromArrayInitial = new Array();
datesToArrayInitial = new Array();
typeVolArrayInitial = new Array();

for (var i=0; i<document.getElementById("dpciVol").options.length; i++) {
citiesArrayInitial[i]= new SearchOption(document.getElementById("dpciVol").options[i].value,document.getElementById("dpciVol").options[i].text);
        }
for (var i=0; i<document.getElementById("ddlDestinationFOVol").options.length; i++) {
       destisArrayInitial[i]= new SearchOption(document.getElementById("ddlDestinationFOVol").options[i].value,document.getElementById("ddlDestinationFOVol").options[i].text);

        }


for (var i=0; i<document.getElementById("departureDateVol").options.length; i++) {
        datesFromArrayInitial[i]= new SearchOption(document.getElementById("departureDateVol").options[i].value,document.getElementById("departureDateVol").options[i].text);

        }

for (var i=0; i<document.getElementById("retourDateVol").options.length; i++) {
       datesToArrayInitial[i]= new SearchOption(document.getElementById("retourDateVol").options[i].value,document.getElementById("retourDateVol").options[i].text);

        }

for (var i=0; i<document.getElementById("typeVolPromo").options.length; i++) {
        typeVolArrayInitial[i]= new SearchOption(document.getElementById("typeVolPromo").options[i].value,document.getElementById("typeVolPromo").options[i].text);

        }
//document.getElementById("dpciVol").value=city;
//document.getElementById("ddlDestinationFOVol").value=desti;
//document.getElementById("departureDateVol").value=dateFrom;
//document.getElementById("retourDateVol").value=returnDate;
//document.getElementById("typeVolPromo").value=typeVol;

}

function filterVolsDispos(val){
	var retourDateVol=document.getElementById("retourDateVol").value;
	if(val!=""){
		var rowId = ""
		var prodId = "";
		var dispoId=0;
		disposArrayVol = new Array();
		var disposArrayVolLine="";
		var nbProducts=0;
		var nbProd=document.getElementById("nbProd").value;
		var nbRows=document.getElementById("nbRows").value;

		     for(var p=0; p<nbProd;p++){
		        var found = "";

			         for (var r=0;r<=nbRows;r++) {
			             if (document.getElementById("dep_"+p+"_"+r)) {
			                var returnDate= document.getElementById("dep_"+p+"_"+r).value;

			                prodId = p;

			                if(returnDate!=val){
			                        found += "false, ";
			                        document.getElementById("tr_"+p+"_"+r).style.display = "none";
			                 } else {

			                        found += "true, ";
			                        document.getElementById("tr_"+p+"_"+r).style.display = "";
			                        disposArrayVol[dispoId++]=new DispoVol(document.getElementById("depCity_"+p+"_"+r).value,
			                                document.getElementById("desti_"+p+"_"+r).value,
			                                document.getElementById("depDate_"+p+"_"+r).value,
			                                document.getElementById("dep_"+p+"_"+r).value,
			                                document.getElementById("typeVol_"+p+"_"+r).value);

			                 }
			             }
			         }

			        if(found.indexOf("true")>-1){
			            document.getElementById("prod"+prodId).style.display = "";
			            document.getElementById("prodContent"+prodId).style.display = "";

			            nbProducts++;
			        }else{

			            document.getElementById("prod"+prodId).style.display = "none";
			            document.getElementById("prodContent"+prodId).style.display = "none";
			        }
		        }

		    FilterSearchEngineVol();
		    document.getElementById("nbProducts1").innerHTML =nbProducts+ " R\xE9sultat(s)";
		    document.getElementById("nbProducts2").innerHTML =nbProducts+ " R\xE9sultat(s)";
	}else{
		updateMoteurPromos();
	}
}

function FilterSearchEngineVol(){
	var citiesArray = new Array();
	var destisArray = new Array();
	var datesFromArray = new Array();
	var datesToArray = new Array();
	var typeVolArray = new Array();
	for (var r=0;r<disposArrayVol.length;r++) {
		citiesArray[r]=disposArrayVol[r].depCityCode;
		destisArray[r]=disposArrayVol[r].destiCode;

		datesFromArray[r]=disposArrayVol[r].depDate;
		datesToArray[r]=disposArrayVol[r].retourDate;
		typeVolArray[r]=disposArrayVol[r].typeVol;
	}
	var id=0;
	var selectedValue=document.getElementById("dpciVol").options[document.getElementById("dpciVol").selectedIndex].value;
	for (var i=0; i<citiesArrayInitial.length; i++) {
	       if(i==0)document.getElementById("dpciVol").options[0]=new Option("Indiff\xE9rent","");
	       else if (inValue(citiesArray,citiesArrayInitial[i].code)&&citiesArrayInitial[i].code!="") {
	            document.getElementById("dpciVol").options[++id]=new Option(citiesArrayInitial[i].label,citiesArrayInitial[i].code);
	            if(citiesArrayInitial[i].code==selectedValue) document.getElementById("dpciVol").selectedIndex=id;
	            }
	        }
	document.getElementById("dpciVol").options.length=id+1;

	id=0;
	selectedValue=document.getElementById("ddlDestinationFOVol").options[document.getElementById("ddlDestinationFOVol").selectedIndex].value;
	for (var i=0; i<destisArrayInitial.length; i++) {
	       if(i==0)document.getElementById("ddlDestinationFOVol").options[0]=new Option("Indiff\xE9rent","");
	       else if (inDestination(destisArray,destisArrayInitial[i].code)&&destisArrayInitial[i].code!="") {
	            document.getElementById("ddlDestinationFOVol").options[++id]=new Option(destisArrayInitial[i].label,destisArrayInitial[i].code);
	            if(destisArrayInitial[i].code==selectedValue) document.getElementById("ddlDestinationFOVol").selectedIndex=id;
	            }
	        }
	document.getElementById("ddlDestinationFOVol").options.length=id+1;

	id=0;
	selectedValue=document.getElementById("departureDateVol").options[document.getElementById("departureDateVol").selectedIndex].value;
	for (var i=0; i<datesFromArrayInitial.length; i++) {
	       if(i==0)document.getElementById("departureDateVol").options[0]=new Option("Indiff\xE9rent","");
	       else if (inValue(datesFromArray,datesFromArrayInitial[i].code)&&datesFromArrayInitial[i].code!="") {
	            document.getElementById("departureDateVol").options[++id]=new Option(datesFromArrayInitial[i].label,datesFromArrayInitial[i].code);
	            if(datesFromArrayInitial[i].code==selectedValue) document.getElementById("departureDateVol").selectedIndex=id;
	            }
	        }
	document.getElementById("departureDateVol").options.length=id+1;

	id=0;
	selectedValue=document.getElementById("retourDateVol").options[document.getElementById("retourDateVol").selectedIndex].value;
	for (var i=0; i<datesToArrayInitial.length; i++) {
	       if(i==0)document.getElementById("retourDateVol").options[0]=new Option("Indiff\xE9rent","");
	       else if (inValue(datesToArray,datesToArrayInitial[i].code)&&datesToArrayInitial[i].code!="") {
	            document.getElementById("retourDateVol").options[++id]=new Option(datesToArrayInitial[i].label,datesToArrayInitial[i].code);
	            if(datesToArrayInitial[i].code==selectedValue) document.getElementById("retourDateVol").selectedIndex=id;
	            }
	        }
	document.getElementById("retourDateVol").options.length=id+1;

	id=0;
	selectedValue=document.getElementById("typeVolPromo").options[document.getElementById("typeVolPromo").selectedIndex].value;
	for (var i=0; i<typeVolArrayInitial.length; i++) {
	       if(i==0)document.getElementById("typeVolPromo").options[0]=new Option("Indiff\xE9rent","");
	       else if (inValue(typeVolArray,typeVolArrayInitial[i].code)&&typeVolArrayInitial[i].code!="") {
	            document.getElementById("typeVolPromo").options[++id]=new Option(typeVolArrayInitial[i].label,typeVolArrayInitial[i].code);
	            if(typeVolArrayInitial[i].code==selectedValue) document.getElementById("typeVolPromo").selectedIndex=id;
	            }
	        }
	document.getElementById("typeVolPromo").options.length=id+1;

	indentDestinationFOVol();

}
function indentDestinationFOVol(){
	var destination = document.getElementById("ddlDestinationFOVol");
	for (i = 0; i < destination.length; i++){
	    var val = destination.options[i].value;
	    var strText = destination.options[i].text;
	    if (val.indexOf(".") == -1 && val != ""){
	        destination.options[i].style.backgroundColor = "#e8edf3";
	    }
	    if (val.indexOf(".") > -1 && val != ""){
	        destination.options[i].className = "space";
	        destination.options[i].text = strText;
	        destination.options[i].text = "   " + strText;
	    }
	}
}

function renderForfaitsLink(pid,dpci,sUrl,date) {
	var buffer = sUrl + pid +".html?"+ "dpci="+dpci+"&dispo="+date;
	window.location.href = buffer;
}