function SearchFormBuilder(){
this.filters={};
this.fields={};
}
SearchFormBuilder.prototype.rebuild=function(){
var _1={};
var i=0;
dump("rebuild()\n");
var _3=null;
for(filterName in this.filters){
if(!this.filters.hasOwnProperty(filterName)){
continue;
}
_3=this.filters[filterName];
for(i=0;i<_3.requiredFields.length;i++){
if(typeof (_1[_3.requiredFields[i]])=="boolean"){
_1[_3.requiredFields[i]]=(_1[_3.requiredFields[i]]||_3.enabled);
}else{
_1[_3.requiredFields[i]]=_3.enabled;
}
}
}
var _4=false;
for(var _5 in _1){
_4=this.fields[_5];
if(this.onApplyStyles(_4,_1[_5])){
this.applyStyles(_4,_1[_5]);
}
}
this.onBuildFinish();
};
SearchFormBuilder.prototype.addFieldFilter=function(_6,_7,_8){
dump("addFieldFilter()\n");
var _9=false;
var _a=false;
if(typeof (_8)=="string"){
_9=$(_8);
_a=_9.checked;
}
dump("buscando elementos...\n");
var _b=null;
for(var i=0;i<_7.length;i++){
_b=_7[i];
if(typeof (this.fields[_b])=="undefined"){
this.fields[_b]=$(_b);
}
}
dump("continuando...\n");
this.filters[_6]={"requiredFields":_7,"enabled":_a,"controller":_9};
if(_9){
_9.onclick=this._statusChanged;
_9.sfb=this;
_9.filterName=_6;
}
};
SearchFormBuilder.prototype.toggleFilter=function(_d,_e){
var _f=this.filters[_d];
var _10=(typeof (_e)=="boolean")?_e:!_f.enabled;
if(this.onToggle(_d,_f.enabled)){
_f.enabled=_10;
this.rebuild();
return true;
}else{
_f.controller.checked=_f.enabled;
return false;
}
};
SearchFormBuilder.prototype.onToggle=function(_11,_12){
return true;
};
SearchFormBuilder.prototype.onApplyStyles=function(_13,_14){
return true;
};
SearchFormBuilder.prototype.applyStyles=function(_15,_16){
if(_16==Element.visible(_15)){
return false;
}
dump("-----------\napplyStyles()\n"+_15.id+": "+_16+"\n");
_15.style.display=(_16)?"block":"none";
return true;
};
SearchFormBuilder.prototype.onBuildFinish=function(_17,_18){
return true;
};
SearchFormBuilder.prototype._statusChanged=function(){
return this.sfb.toggleFilter(this.filterName,this.checked);
};

Behaviour.register({"#frmBoletin":function(el){
el.onsubmit=function(){
if(this.validator.validate()){
var _2=$F("email_newsletter");
var _3={"postBody":"email="+escape(_2),"asyncronous":true};
new Ajax.Updater("boletin","./?Action=SuscribeNewsletter",_3);
return false;
}else{
return false;
}
};
}});

Behaviour.register({"#main_search_form":function(el){
el.onsubmit=function(){
prepare_form(this);
if(!validate_form(this)){
return false;
}
var _2=Form.serialize(this);
Util.createCookie("newSearch","1");
location.href="./index.php?Action=Step2&d="+Util.safeEncode(Form.serialize(this));
return false;
};
initialize_step1_form();
},"#fld_solo_vuelo_ida":function(el){
var _4=function(){
var _5=$("campo_regreso");
var _6=_5.getElementsByTagName("INPUT");
var _7=_5.getElementsByTagName("SELECT");
var _8=_5.getElementsByTagName("IMG");
for(var i=0;i<_6.length;i++){
_6[i].disabled=this.checked;
}
for(var i=0;i<_7.length;i++){
_7[i].disabled=this.checked;
}
if(this.checked){
window.fld_return_date_calendar_onclick_handler=$("fld_return_date_trigger").onclick;
$("fld_return_date_trigger").onclick=null;
}else{
$("fld_return_date_trigger").onclick=window.fld_return_date_calendar_onclick_handler;
}
return true;
};
el.onclick=_4;
},"#fld_depart_date":function(el){
el.setAttribute("validDatesFn","disable_depart_date");
el.setAttribute("onUpdate","depart_changed");
Event.observe(el,"change",function(){
depart_changed();
});
window.departField=el;
},"#fld_return_date":function(el){
el.setAttribute("validDatesFn","disable_return_date");
window.returnField=el;
},"#add_room":function(el){
el.onclick=function(){
var _d=false;
var _e=false;
for(var i=0;i<this.parentNode.childNodes.length;i++){
if(!this.parentNode.childNodes[i].className||this.parentNode.childNodes[i].className!="hotel_hab"){
continue;
}
if(!_e){
_e=this.parentNode.childNodes[i];
}
_d=this.parentNode.childNodes[i];
}
if(!_d){
return false;
}
rmFn="this.parentNode.parentNode.removeChild(this.parentNode); return false";
nuevo=_e.cloneNode(true);
new Insertion.Bottom(nuevo,"<a href=\"#\" title=\"Quitar\" onclick=\""+rmFn+"\" class=\"rm_room\">[-]</a>");
new Insertion.After(_d,"<div style=\"clear:both\" class=\"hotel_hab\">"+nuevo.innerHTML+"</div>");
selects=this.parentNode.getElementsByTagName("SELECT");
for(sN=0;sN<selects.length;sN++){
selects[sN].onchange=hotel_field_changed;
selects[sN].onchange();
}
return false;
};
},"#campo_hotel select":function(el){
el.onchange=hotel_field_changed;
el.onchange();
},"#fld_destino_t":function(el){
el.onfocus=focus_handler;
},"#fld_origen_t":function(el){
el.onfocus=focus_handler;
},"#combo_residente":function(el){
Event.observe(el,"change",function(ev){
$("rs_chk").checked=(Event.element(ev).selectedIndex>0);
});
}});
function focus_handler(){
if(this._newValue==false){
this.value="";
$(this.id.replace(/_t$/,"")).value="";
}
this._newValue=false;
}
function hotel_field_changed(){
var _15={};
var _16=this.parentNode.parentNode.getElementsByTagName("SELECT");
var c=null;
for(var i=0;i<_16.length;i++){
c=_16[i];
_15[c.className]=c.options[c.selectedIndex].value;
}
var _19=this.parentNode.parentNode.getElementsByTagName("input");
_19[0].value=_15.tipo_habitacion+"-"+_15.n_habitaciones+"-"+_15.cunas+"-0";
return true;
}
function numerar_cajas(){
dump("=====================\nnumerar_cajas()\n");
var _1a=document.getElementsByClassName("buscador_caja_numerada",$("buscador"));
var _1b=null;
var _1c=1;
var _1d="";
var _1e=navigator.userAgent.match(/Gecko\//);
for(var i=0;i<_1a.length;i++){
_1b=_1a[i];
dump(_1b.id+": "+_1b.offsetHeight+"\n");
_1d=_1b.style.border;
if(_1e){
_1b.style.border="2px solid red";
}
if(_1b.offsetHeight>20){
_1b.className=_1b.className.replace(/[ ]*buscador-caja[0-9]{1}/,"");
Element.addClassName(_1b,"buscador-caja"+_1c++);
Element.removeClassName(_1b,"sin_borde");
}else{
_1b.className=_1b.className.replace(/[ ]*buscador-caja[0-9]{1}/,"");
Element.addClassName(_1b,"sin_borde");
}
if(_1e){
_1b.style.border=_1d;
}
}
}
function initialize_autocomplete(){
var _20=function(a,b){
var _23=b.getAttribute("id").replace(/^dst/,"");
$(a.id.replace(/_t$/,"")).value=_23;
window.formBuilder.toggleFilter("flt_resident",(b.getAttribute("discount")=="true"));
};
Object.extend(Ajax.Autocompleter.prototype,{"onBlur":function(_24){
if(Element.visible(this.update)){
this.selectEntry();
}
this._onBlur();
},"_onBlur":Autocompleter.Base.prototype.onBlur});
Element.show("fld_origen_auto_complete");
Element.show("fld_destino_auto_complete");
var _25=$("fld_destino_t");
var _26=$("fld_origen_t");
_25.disabled=false;
_25.value="";
_26.disabled=false;
_26.value="";
new Ajax.Autocompleter(_26,"fld_origen_auto_complete","./?Action=CitySelect",{"minChars":3,"frequency":0.4,"paramName":"ciudad","indicator":"act_origen_t","afterUpdateElement":_20,"callback":function(el,_28){
return _28+"&destino="+$("fld_destino").value;
}});
new Ajax.Autocompleter(_25,"fld_destino_auto_complete","./?Action=CitySelect",{"minChars":3,"frequency":0.4,"paramName":"ciudad","indicator":"act_destino_t","afterUpdateElement":_20,"callback":function(el,_2a){
return _2a+"&origen="+$("fld_origen").value;
}});
}
function initialize_step1_form(){
initialize_autocomplete();
window.formBuilder=new SearchFormBuilder();
window.formBuilder.addFieldFilter("flight",["campo_origen","campo_destino","campo_salida","campo_regreso","campo_pasajeros","campo_solo_ida"],"b1");
window.formBuilder.addFieldFilter("hotel",["campo_hotel","campo_pasajeros","campo_destino","campo_salida","campo_regreso"],"b2");
window.formBuilder.addFieldFilter("flt_resident",["campo_residente"]);
window.formBuilder.addFieldFilter("car",["campo_destino","campo_coche","campo_salida","campo_regreso"],"b3");
window.checkboxesTipoBusqueda=$("b1","b2","b3");
var _2b=$("iconos").getElementsByTagName("A");
for(var i=0;i<window.checkboxesTipoBusqueda.length;i++){
window.checkboxesTipoBusqueda[i].imagen=_2b[i];
}
window.formBuilder.onToggle=function(_2d,_2e){
var b=window.checkboxesTipoBusqueda;
if(b[0].checked||b[1].checked||b[2].checked){
var _30=this.filters[_2d].controller;
if(_30.checked){
Element.addClassName(_30.imagen,"servicio_seleccionado");
}else{
Element.removeClassName(_30.imagen,"servicio_seleccionado");
}
return true;
}
return false;
};
window.formBuilder.onBuildFinish=numerar_cajas;
window.formBuilder.toggleFilter("flight",$("b1").checked);
window.formBuilder.toggleFilter("hotel",$("b2").checked);
var _2b=$("iconos").getElementsByTagName("a");
$A(_2b).each(function(_31,idx){
_31.checkbox=$(_31.getAttribute("rel"));
_31.onclick=function(){
if(window.opera){
this.checkbox.checked=!this.checkbox.checked;
this.checkbox.onclick();
}else{
this.checkbox.click();
}
return false;
};
});
}
function validate_form(_33){
var _34=[];
var _35=$F("fld_search_type");
if(_35.indexOf("flights")>-1){
if(trimAll($F("fld_origen"))==""){
_34.push("Ingrese un origen");
$("fld_origen_t").focus();
}
}
if(trimAll($F("fld_destino"))==""){
_34.push("Ingrese un destino");
$("fld_destino_t").focus();
}
var _36=$("fld_return_date");
var _37=$("fld_depart_date");
var _38=Date.parseDate(_37.value,window.dateFormat);
var _39=Date.parseDate(_36.value,window.dateFormat);
if(!validate_date("",_37.value)||disable_depart_date(_38)){
_34.push("Fecha de salida no v\xe1lida");
}
if(!$("fld_solo_vuelo_ida").checked&&(!validate_date("",_36.value)||disable_return_date(_39))){
_34.push("Fecha de regreso no v\xe1lida");
}
if($("b2").checked==true){
if(_38.equalsTo(_39)){
_34.push("Fecha de regreso no v\xe1lida");
}
}
window.reason="";
if(!validatePaxQuantity(_33)){
_34.push(window.reason);
}
if(_34.length>0){
alert(_34.join("\n"));
}
return (_34.length==0);
}
function validatePaxQuantity(_3a){
var _3b={"SIMPLE":1,"DOUBLE":2,"TRIPLE":3,"QUADRUPLE":4,"TWIN":2};
var _3c=parseInt($F("pax-a"));
var _3d=parseInt($F("pax-c"));
var _3e=_3c+_3d;
var _3f=parseInt($F("pax-b"));
if(_3f>_3c){
window.reason="No puede viajar mas de un beb\xe9 por adulto";
return false;
}
if(_3e>=9){
window.reason="No puede viajar mas de nueve adultos o ni\ufffdos";
return false;
}
if($F("fld_search_type").indexOf("hotel")>-1){
var _40=document.getElementsByName("r[]");
var _41=0;
var _42=0;
for(var i=0;i<_40.length;i++){
var _44=getRoomInfo(_40[i].value);
_41+=_44["QTY"]*_3b[_44["TYPE"]];
_42+=_44["CRADLES"]*1;
}
if(_3e!=_41||_3f!=_42){
window.reason="Hay una discrepancia entre la cantidad de pasajeros y plazas de hotel seleccionadas.";
return false;
}
}
return true;
}
function getRoomInfo(_45){
var _46=_45.split("-");
return {"TYPE":_46[0],"QTY":_46[1],"CRADLES":_46[2]};
}
function prepare_form(_47){
var _48=new Array();
var c=window.checkboxesTipoBusqueda;
var _4a=$("fld_search_type");
for(i=0;i<c.length;i++){
if(c[i].checked){
_48[_48.length]=c[i].value;
}
}
_4a.value=_48.join("-");
if($F("fld_solo_vuelo_ida")&&_4a.value=="flights"){
$("fld_return_date").value="";
}
if(_4a.value=="flights"){
var _4b=document.getElementsByName("r[]");
for(i=0;i<_4b.length;i++){
_4b[i].value="";
}
}
}

function showSection(_1,_2){
var _3=(Element.hasClassName(_1,"Package"))?"Package":_1.id;
if(typeof (_2)!="string"){
_2="";
}
new Ajax.Updater("cont_ofertas","./?Action="+_3,{"postBody":_2,"asynchronous":true,"evalScripts":true});
return false;
}

