var RechercheVols=Class.create();RechercheVols.prototype={_Message:{},DateFormat:"%d/%m/%Y",Monnaie:"€",auto_or:null,auto_de:null,critere:null,range:[],tri:"",ordre:"",page:1,start:0,limite:0,total:0,PrixMin:0,PrixMax:0,AllerHD:0,AllerHR:0,RetourHD:0,RetourHR:0,Direct:null,NombreFlux:0,ShowOverlay:true,TempsFluxMoyen:0,HorlogeObjet:null,HorlogeLargeur:140,HorlogeLargeurFlux:214,HorlogeLargeurParFlux:0,HorlogePositionActuelle:1,HorlogeDepartFlux:new Object(),HorlogeTempsMoyenFlux:new Object(),HorlogePositionActuelleFlux:new Object(),initialize:function(){Event.observe("recherche","submit",this._checkform.bindAsEventListener(this));Event.observe("bt_ar_0","click",this._callbackFormAR.bindAsEventListener(this));Event.observe("bt_ar_1","click",this._callbackFormAR.bindAsEventListener(this));Event.observe("fi_or","keypress",b.bindAsEventListener($("or_iata")));Event.observe("fi_or","keyup",b.bindAsEventListener($("or_iata")));Event.observe("fi_or","focus",function(){$("fi_or").select()});Event.observe("fi_de","keypress",b.bindAsEventListener($("de_iata")));Event.observe("fi_de","keyup",b.bindAsEventListener($("de_iata")));Event.observe("fi_de","focus",function(){$("fi_de").select()});function b(d){if(d.keyCode!=13){this.value=""}}this.auto_or=new Ajax.Autocompleter("fi_or","fi_or_auto","/exec/recherche_vols.php",{paramName:"ville",afterUpdateElement:this._callbackAC,minChars:2,parameters:"action=leve",frequency:0.1});this.auto_de=new Ajax.Autocompleter("fi_de","fi_de_auto","/exec/recherche_vols.php",{paramName:"ville",afterUpdateElement:this._callbackAC,minChars:2,parameters:"action=leve",frequency:0.1});var a=new Date();var c=[a.getFullYear(),a.getFullYear()+1];Calendar.setup({inputField:"fi_dd",ifFormat:this.DateFormat,button:"fi_dd",weekNumbers:false,range:c,showOthers:false,disableOld:true,eventName:"focus"});Calendar.setup({inputField:"fi_df",ifFormat:this.DateFormat,button:"fi_df",weekNumbers:false,range:c,showOthers:false,disableOld:true,eventName:"focus"})},_checkform:function(c){if(!this._checkFormField($("fi_or"),"texte")&&!this._checkFormField($("fi_de"),"texte")&&!this._checkFormField($("fi_dd"),"date")&&!this._checkFormField($("fi_df"),"date")){if($("fi_df").disabled==false&&this._parseLocaleDate($("fi_dd").value)>this._parseLocaleDate($("fi_df").value)){$("formmessage").innerHTML=this._Message.dates}else{if($("or_iata").value==""){var a={method:"get",parameters:"action=levejson&ville="+$("fi_or").value,onComplete:function(e){var d=e.responseText.evalJSON().resultat;if(d.length>1){this.auto_or.show()}else{if(d.length==1){$("or_iata").value=d[0].iata;$("fi_or").value=d[0].city+", "+d[0].pays+" - "+d[0].name+" ("+d[0].iata+")";this._checkform()}else{this._checkFormErrorMessage("fi_or")}}}.bindAsEventListener(this),asynchronous:true};var b=new Ajax.Request("/exec/recherche_vols.php",a)}else{if($("de_iata").value==""){var a={method:"get",parameters:"action=levejson&ville="+$("fi_de").value,onComplete:function(e){var d=e.responseText.evalJSON().resultat;if(d.length>1){this.auto_de.show()}else{if(d.length==1){$("de_iata").value=d[0].iata;$("fi_de").value=d[0].city+", "+d[0].pays+" - "+d[0].name+" ("+d[0].iata+")";this._checkform()}else{this._checkFormErrorMessage("fi_de")}}}.bindAsEventListener(this),asynchronous:true};var b=new Ajax.Request("/exec/recherche_vols.php",a)}else{$("recherche").submit()}}}}Event.stop(c)},_checkFormField:function(a,c){var b=true;switch(c){case"texte":if(a.value!=""||a.value.length>=2){b=false}break;case"date":if((a.value!=""&&a.value!="jj/mm/aaaa")||a.disabled===true){b=false}break}if(b){this._checkFormErrorMessage(a.id)}return b},_checkFormErrorMessage:function(a){if(typeof this._Message[a]!="undefined"){$("formmessage").innerHTML='"'+this._Message[a]+'" '+this._Message.error}},_parseLocaleDate:function(a){switch(this.DateFormat){case"%d/%m/%Y":var d=parseInt(a.substring(0,2)*1);var c=parseInt(a.substring(3,5)*1);var b=parseInt(a.substring(6,10)*1);break}var a=new Date(0);a.setFullYear(b);a.setMonth((c-1));a.setDate(d);a.setHours(0);a.setMinutes(0);a.setSeconds(0);return a},_callbackAC:function(b,a){var c=$(b.name+"_iata");c.value=a.id;switch(b.id){case"fi_or":$("fi_de").focus();break;case"fi_de":$("fi_dd").focus();break}},_callbackFormAR:function(a){var b=a.target.value;if(b==0){$("fi_df").disabled=true;$("fi_df").value="";if($("me_hf")){$("me_hf").disabled=true}}else{if(b==1){$("fi_df").disabled=false;if($("me_hf")){$("me_hf").disabled=false}}}},setLimite:function(a){this.limite=a},setCritere:function(a){this.critere=a},setRangePrix:function(b,a){this.range[0]={};this.range[1]={};this.range[0]["total"]=b;this.range[1]["total"]=a},lanceRecherche:function(a){if(a){this.cherche()}else{this.createTriListener();$("loaderFond").style.width=this.HorlogeLargeur+"px";$$("#listeagence input.checkAgence").each(function(c){var b=c.value;var d=parseInt($("compteur_"+b).innerHTML);if(d>0){c.style.display="inline";c.checked=true}$("img_agence_"+b).style.display="none";$("loader_"+b).style.width=this.HorlogeLargeurFlux+"px"}.bind(this));$("listeAgenceNav").style.display="inline";$("listeCompagnieNav").style.display="inline";this._filtreHeure(this.critere.hd,this.critere.hf);this._filtrePrix(this.range)}},cherche:function(){Effect.toggle("recherche-wrapper","slide");Effect.toggle("filtre-wrapper","slide");new Effect.Appear("myOverlay",{duration:0.5,afterFinish:function(){var a={method:"post",parameters:"action=get_flux",onComplete:function(c){reponse=c.responseJSON;this._chargeToutFlux(reponse.liste);this.TempsFluxMoyen=reponse.moyenne;this.critere=reponse.critere}.bind(this),asynchronous:true,encoding:"utf-8"};var b=new Ajax.Request("/exec/recherche_vols.php",a)}.bind(this)})},_chargeToutFlux:function(a){this.NombreFlux=$A(a).size();this._lanceHorloge();$A(a).each(function(b){this._chargeFlux(b)}.bind(this))},_chargeFlux:function(a){this._registerHorlogeFlux(a.id_flux,a.temps_moyen);$("agence_"+a.id_flux).style.display="none";$("img_agence_"+a.id_flux).style.display="inline";var b={method:"post",parameters:"action=recherche_ajax&flux="+a.id_flux+"&limite="+this.limite,onComplete:function(f){resultat=f.responseJSON;if(resultat.resultat_flux>0){this._affiche(resultat.liste)}if(resultat.resultat_flux>0){$("agence_"+a.id_flux).style.display="inline";$("agence_"+a.id_flux).checked=true}$("img_agence_"+a.id_flux).style.display="none";if(resultat.resultat_flux>=0){this.total+=resultat.resultat_flux}else{this.total+=0}this._incrementHorlogeFlux(a.id_flux,resultat.resultat_flux);var e=0;for(var d in this.HorlogeDepartFlux){e++}if((this.NombreFlux-e)==1&&resultat.resultat_flux>0){new Effect.Fade("myOverlay",{duration:0.5});this.ShowOverlay=false;this.createTriListener()}else{if(resultat.resultat_flux>0&&this.ShowOverlay){new Effect.Fade("myOverlay",{duration:0.5});this.ShowOverlay=false;this.createTriListener()}}if(e==0&&this.total>0){$("listeAgenceNav").style.display="inline";$("listeCompagnieNav").style.display="inline";this._buildFiltre()}else{if(e==0){this._affiche(resultat.liste);Effect.toggle("recherche-wrapper","slide");if(this.ShowOverlay){new Effect.Fade("myOverlay",{duration:0.5})}this.ShowOverlay=false}}}.bind(this),asynchronous:true,encoding:"utf-8"};var c=new Ajax.Request("/exec/recherche_vols.php",b)},_buildFiltre:function(){var a={method:"post",parameters:"action=build_filtre",onComplete:function(c){resultat=c.responseJSON;Effect.toggle("recherche-wrapper","slide");Effect.toggle("filtre-wrapper","slide");$("filtre-wrapper").style.display="block";this._filtrePrix(resultat.prix);this._filtreHeure(this.critere.hd,this.critere.hf);this._filtreCompagnie(resultat.compagnie);this._stopHorloge()}.bind(this),asynchronous:true,encoding:"utf-8"};var b=new Ajax.Request("/exec/recherche_vols.php",a)},createTriListener:function(){var a=$$('#tabletri a[href="#"]');for(i=0;i<a.length;i++){Event.stopObserving(a[i].id);Event.observe(a[i].id,"click",function(d){var c=d.target;var b=c.id.split("-");this._setTri(c,b[1]);Event.stop(d)}.bind(this))}},_setTri:function(b,c){var a=$("tabletri").getElementsByTagName("a");this.tri=c;if((this.tri=="total"&&this.ordre=="")||this.ordre=="ASC"){this.ordre="DESC"}else{this.ordre="ASC"}$A(a).each(function(d){$(d).removeClassName("ASC");$(d).removeClassName("DESC")});$(b).addClassName(this.ordre);this._relanceRecherche(true);return false},_setPagination:function(a){this.page=(a>=1)?a:1;this.start=(this.page-1)*this.limite;this._relanceRecherche(true);return false},_filtrePrix:function(d){if(d.length>0){$("filtre_prix").style.display="block";var c=d.length-1;var a=Math.floor(d[0]["total"]);var b=Math.ceil(d[c]["total"]);$("prixmin").innerHTML=a+this.Monnaie;$("prixmax").innerHTML=b+this.Monnaie;new Control.Slider([$("dblPrixPoignee31"),$("dblPrixPoignee32")],"dblPrixSlider3",{axis:"horizontal",restricted:true,sliderValue:[a,b],range:$R(a,b),onSlide:function(e){$("prixmin").innerHTML=Math.round(e[0])+this.Monnaie;$("prixmax").innerHTML=Math.round(e[1])+this.Monnaie}.bind(this),onChange:function(e){$("prixmin").innerHTML=Math.round(e[0])+this.Monnaie;$("prixmax").innerHTML=Math.round(e[1])+this.Monnaie;this.PrixMin=Math.round(e[0]);this.PrixMax=Math.round(e[1]);this._relanceRecherche()}.bind(this)})}},_filtreHeure:function(d,c){$("horaire_filtre").style.display="block";values=new Array();for(i=0;i<24;i++){values.push(i)}if(d!=0){var b=d-1}else{var b=0}if(d!=0){var a=d}else{var a=23}new Control.Slider([$("dblPrixPoignee11"),$("dblPrixPoignee12")],"dblPrixSlider1",{range:$R(0,23),restricted:true,sliderValue:[b,a],values:values,maximum:5,onSlide:function(e){$("horairealler1").innerHTML=e[0]+":00";$("horairealler2").innerHTML=e[1]+":59"},onChange:function(e){$("horairealler1").innerHTML=e[0]+":00";$("horairealler2").innerHTML=e[1]+":59";this.AllerHD=e[0];this.AllerHR=e[1];this._relanceRecherche()}.bind(this)});if(c!=0){var b=c-1}else{var b=0}if(c!=0){var a=c}else{var a=23}new Control.Slider([$("dblPrixPoignee21"),$("dblPrixPoignee22")],"dblPrixSlider2",{range:$R(0,23),restricted:true,sliderValue:[b,a],values:values,onSlide:function(e){$("horaireretour1").innerHTML=e[0]+":00";$("horaireretour2").innerHTML=e[1]+":59"},onChange:function(e){$("horaireretour1").innerHTML=e[0]+":00";$("horaireretour2").innerHTML=e[1]+":59";this.RetourHD=e[0];this.RetourHR=e[1];this._relanceRecherche()}.bind(this)})},_filtreCompagnie:function(a){if(a.length>0){$("filtre_compagnie").style.display="block";$A(a).each(function(c){if(c.nom!=""&&c.nom!=null){var d=Builder.node("input",{type:"checkbox",id:c.compagnie,value:c.compagnie,onclick:"RechercheVols._relanceRecherche();",checked:"checked"});var b=Builder.node("li");b.appendChild(d);b.innerHTML+=c.nom;$("listecompagnie").appendChild(b)}})}},_relanceRecherche:function(c){if(!c){this.start=0;this.page=1}if($("dir_1").checked===true&&$("dir_0").checked===false){this.Direct=0}else{if($("dir_1").checked===false&&$("dir_0").checked===true){this.Direct=1}else{if($("dir_1").checked===false&&$("dir_0").checked===false){this.Direct=-1}else{if($("dir_1").checked===true&&$("dir_0").checked===true){this.Direct=-1}}}}var b=$("listecompagnie").getElementsByTagName("input");var d=new Array();$A(b).each(function(e){if(e.checked===false){d.push(e.value)}});var b=$("listeagence").getElementsByTagName("input");var a=new Array();$A(b).each(function(e){if(e.checked===false){a.push(e.value)}});new Effect.Appear("myOverlay",{duration:0.5,afterFinish:function(){var e={method:"post",parameters:"action=filtre&prix_max="+this.PrixMax+"&prix_min="+this.PrixMin+"&direct="+this.Direct+"&reject_compagnie="+d.toJSON()+"&allerhd="+this.AllerHD+"&allerhr="+this.AllerHR+"&retourhd="+this.RetourHD+"&retourhr="+this.RetourHR+"&tri="+this.tri+"&ordre="+this.ordre+"&start="+this.start+"&limite="+this.limite+"&reject_agence="+a.toJSON(),onComplete:function(g){this._empty();this._affiche(g.responseText);this._retourSave()}.bind(this),asynchronous:true,encoding:"utf-8"};var f=new Ajax.Request("/exec/recherche_vols.php",e)}.bind(this)})},affichePrix:function(a){Effect.toggle("detail_prix_"+a,"slide",{duration:0.5});return false},_affiche:function(a){$("resultats").innerHTML=a},_empty:function(){var a=$("listeresult").getElementsByTagName("li");$A(a).each(function(b){$(b.id).remove()})},_retourSave:function(){new Effect.Fade("myOverlay",{duration:0.5})},_lanceHorloge:function(){if(this.NombreFlux>0){this.HorlogeLargeurParFlux=Math.ceil((this.HorlogeLargeur-this.HorlogePositionActuelle)/this.NombreFlux);this.HorlogeObjet=setInterval(this._incrementHorloge.bindAsEventListener(this),1000)}else{this._incrementHorloge()}},_registerHorlogeFlux:function(a,b){this.HorlogeDepartFlux[a]=this.HorlogePositionActuelle;this.HorlogePositionActuelleFlux[a]=1;$("compteur_"+a).innerHTML=0;$("pcent_"+a).innerHTML="%";if(b>0){this.HorlogeTempsMoyenFlux[a]=b}else{this.HorlogeTempsMoyenFlux[a]=this.TempsFluxMoyen}},_incrementHorloge:function(){var d=0;var b=0;for(var a in this.HorlogeDepartFlux){var c=Math.round((this.HorlogeLargeurFlux)/this.HorlogeTempsMoyenFlux[a]);this.HorlogePositionActuelleFlux[a]+=c;if(this.HorlogePositionActuelleFlux[a]<this.HorlogeLargeurFlux){$("loader_"+a).style.width=this.HorlogePositionActuelleFlux[a]+"px";$("compteur_"+a).innerHTML=this._convertLargeurPourcent(this.HorlogePositionActuelleFlux[a]);b+=Math.round(($("compteur_"+a).innerHTML*this.HorlogeLargeurParFlux)/100)}else{$("loader_"+a).style.width=this.HorlogeLargeurFlux+"px";$("pcent_"+a).innerHTML="";$("compteur_"+a).innerHTML=this._Message.verif_dispo;b+=Math.round((99*this.HorlogeLargeurParFlux)/100)}d++}if(d<this.NombreFlux){b+=Math.round((this.NombreFlux-d)*this.HorlogeLargeurParFlux)}if(b>0&&b<this.HorlogeLargeur){this.HorlogePositionActuelle=b;$("loaderFond").style.width=b+"px"}else{$("loaderFond").style.width=(this.HorlogeLargeur-1)+"px";this.HorlogePositionActuelle=this.HorlogeLargeur}},_incrementHorlogeFlux:function(a,b){$("loader_"+a).style.width=this.HorlogeLargeurFlux+"px";if(b==-1){$("compteur_"+a).innerHTML="";$("pcent_"+a).innerHTML=this._Message.Indisponible}else{$("compteur_"+a).innerHTML=b;$("pcent_"+a).innerHTML="&nbsp;"+this._Message.TitreResultat}delete this.HorlogeDepartFlux[a]},_stopHorloge:function(){if(this.HorlogePositionActuelle>1){$("loaderFond").style.width=this.HorlogeLargeur+"px";clearInterval(this.HorlogeObjet)}},_convertLargeurPourcent:function(a){var b=Math.round((a*100/this.HorlogeLargeurFlux));if(b<100){return b}else{return 100}},_checkListe:function(a,c){var b=$(a).getElementsByTagName("input");$A(b).each(function(d){if(c){d.checked=true}else{d.checked=false}})}};function goToNextCal(b,c){switch(b.params.inputField.id){case"fi_dd":var a=new Date(c);var d=new Date((a.getTime()+(7*86400*1000)));if($("fi_df").disabled==false){if($("fi_df").value==""){var f=d.getDate();if(f<10){f="0"+f}var e=d.getMonth()+1;if(e<10){e="0"+e}$("fi_df").value=f+"/"+e+"/"+d.getFullYear()}$("fi_df").focus()}break;case"fi_df":$("rechercheSubmitButton").focus();break}};