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);
if(_9==null){
return false;
}
_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];
if(typeof (_f)!="undefined"){
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;
}
}else{
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({"#suscribe-newsletter":function(el){
el.onsubmit=function(){
if(this.validator.validate()){
var _2=$F("newsletter-mail");
var _3={"postBody":"email="+escape(_2),"asyncronous":true};
new Ajax.Updater("suscribe-newsletter","./?Action=SuscribeNewsletter",_3);
return false;
}else{
_alert(el.id+" no valida");
return false;
}
};
},"#newsletter-submit":function(el){
el.onclick=function(){
$("suscribe-newsletter").onsubmit();
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();
},"#btn-search-custom-disabled":function(el){
el.onclick=function(){
return false;
};
},"#fld_solo_vuelo_ida":function(el){
var _5=function(){
var _6=$("campo_regreso");
var _7=_6.getElementsByTagName("INPUT");
var _8=_6.getElementsByTagName("SELECT");
var _9=_6.getElementsByTagName("IMG");
for(var i=0;i<_7.length;i++){
_7[i].disabled=this.checked;
}
for(var i=0;i<_8.length;i++){
_8[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=_5;
},"#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 _e=false;
var _f=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(!_f){
_f=this.parentNode.childNodes[i];
}
_e=this.parentNode.childNodes[i];
}
if(!_e){
return false;
}
rmFn="this.parentNode.parentNode.removeChild(this.parentNode); return false";
nuevo=_f.cloneNode(true);
new Insertion.Bottom(nuevo,"<a href=\"#\" title=\"Quitar\" onclick=\""+rmFn+"\" class=\"rm_room\">[-]</a>");
new Insertion.After(_e,"<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 _16={};
var _17=this.parentNode.parentNode.parentNode.getElementsByTagName("SELECT");
var c=null;
for(var i=0;i<_17.length;i++){
c=_17[i];
_16[c.className]=c.options[c.selectedIndex].value;
}
var _1a=this.parentNode.parentNode.parentNode.getElementsByTagName("input");
_1a[0].value=_16.tipo_habitacion+"-"+_16.n_habitaciones+"-"+_16.cunas+"-0";
return true;
}
function numerar_cajas(){
dump("=====================\nnumerar_cajas()\n");
var _1b=document.getElementsByClassName("buscador_caja_numerada",$("buscador"));
var _1c=null;
var _1d=1;
var _1e="";
var _1f=navigator.userAgent.match(/Gecko\//);
for(var i=0;i<_1b.length;i++){
_1c=_1b[i];
dump(_1c.id+": "+_1c.offsetHeight+"\n");
_1e=_1c.style.border;
if(_1f){
_1c.style.border="2px solid blue";
}
if(_1c.offsetHeight>20){
_1c.className=_1c.className.replace(/[ ]*buscador-caja[0-9]{1}/,"");
Element.addClassName(_1c,"buscador-caja"+_1d++);
Element.removeClassName(_1c,"sin_borde");
}else{
_1c.className=_1c.className.replace(/[ ]*buscador-caja[0-9]{1}/,"");
Element.addClassName(_1c,"sin_borde");
}
if(_1f){
_1c.style.border=_1e;
}
}
}
function initialize_autocomplete(){
var _21=function(a,b){
var _24=b.getAttribute("id").replace(/^dst/,"");
$(a.id.replace(/_t$/,"")).value=_24;
window.formBuilder.toggleFilter("flt_resident",(b.getAttribute("discount")=="true"));
};
Object.extend(Ajax.Autocompleter.prototype,{"onBlur":function(_25){
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 _26=$("fld_destino_t");
var _27=$("fld_origen_t");
_26.disabled=false;
_26.value="";
_27.disabled=false;
_27.value="";
new Ajax.Autocompleter(_27,"fld_origen_auto_complete","./?Action=CitySelect",{"minChars":3,"frequency":0.4,"paramName":"ciudad","indicator":"act_origen_t","afterUpdateElement":_21,"callback":function(el,_29){
return _29+"&destino="+$("fld_destino").value;
}});
new Ajax.Autocompleter(_26,"fld_destino_auto_complete","./?Action=CitySelect",{"minChars":3,"frequency":0.4,"paramName":"ciudad","indicator":"act_destino_t","afterUpdateElement":_21,"callback":function(el,_2b){
return _2b+"&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_salida","campo_regreso"],"b3");
window.checkboxesTipoBusqueda=new Array();
if($("b1")!=null){
window.checkboxesTipoBusqueda[window.checkboxesTipoBusqueda.length]=$("b1");
}
if($("b2")!=null){
window.checkboxesTipoBusqueda[window.checkboxesTipoBusqueda.length]=$("b2");
}
if($("b3")!=null){
window.checkboxesTipoBusqueda[window.checkboxesTipoBusqueda.length]=$("b3");
}
var _2c=$("iconos").getElementsByTagName("A");
for(var i=0;i<window.checkboxesTipoBusqueda.length;i++){
if(window.checkboxesTipoBusqueda[i]!=null){
window.checkboxesTipoBusqueda[i].imagen=_2c[i];
}
}
window.formBuilder.onToggle=function(_2e,_2f){
var b=window.checkboxesTipoBusqueda;
if((b[0]!=null&&b[0].checked)||(b[1]!=null&&b[1].checked)||(b[2]!=null&&b[2].checked)){
var _31=this.filters[_2e].controller;
if(_31.checked){
Element.addClassName(_31.imagen,"servicio_seleccionado");
}else{
Element.removeClassName(_31.imagen,"servicio_seleccionado");
}
return true;
}
return false;
};
window.formBuilder.onBuildFinish=function(){
setTimeout("numerar_cajas();",10);
};
var _2c=$("iconos").getElementsByTagName("a");
$A(_2c).each(function(_32,idx){
_32.checkbox=$(_32.getAttribute("rel"));
_32.onclick=function(){
if(window.opera){
this.checkbox.checked=!this.checkbox.checked;
this.checkbox.onclick();
}else{
this.checkbox.click();
}
return false;
};
});
var _34=$("b1");
var _35=$("b2");
var _36=$("b3");
var _37=false;
var _38=false;
var _39=false;
if(_34!=null){
_37=_34.checked;
}
if(_35!=null){
_38=_35.checked;
}
if(_36!=null){
_39=_36.checked;
}
window.formBuilder.toggleFilter("flight",_37);
window.formBuilder.toggleFilter("hotel",_38);
window.formBuilder.toggleFilter("car",_39);
}
function validate_form(_3a){
var _3b=[];
var _3c=$F("fld_search_type");
if(_3c.indexOf("flights")>-1){
if(trimAll($F("fld_origen"))==""){
_3b.push("Ingrese un origen");
$("fld_origen_t").focus();
}
}
if(trimAll($F("fld_destino"))==""){
_3b.push("Ingrese un destino");
$("fld_destino_t").focus();
}
var _3d=$("fld_return_date");
var _3e=$("fld_depart_date");
var _3f=Date.parseDate(_3e.value,window.dateFormat);
var _40=Date.parseDate(_3d.value,window.dateFormat);
if(!validate_date("",_3e.value)||disable_depart_date(_3f)){
_3b.push("Fecha de salida no v\xe1lida");
}
if(!$("fld_solo_vuelo_ida").checked&&(!validate_date("",_3d.value)||disable_return_date(_40))){
_3b.push("Fecha de regreso no v\xe1lida");
}
if($("b2").checked==true){
if(_3f.equalsTo(_40)){
_3b.push("Fecha de regreso no v\xe1lida");
}
}
window.reason="";
if(!validatePaxQuantity(_3a)){
_3b.push(window.reason);
}
if(_3b.length>0){
alert(_3b.join("\n"));
}
return (_3b.length==0);
}
function validatePaxQuantity(_41){
var _42={"SIMPLE":1,"DOUBLE":2,"TRIPLE":3,"QUADRUPLE":4,"TWIN":2};
var _43=parseInt($F("pax-a"));
var _44=parseInt($F("pax-c"));
var _45=_43+_44;
var _46=parseInt($F("pax-b"));
if(_46>_43){
window.reason="No puede viajar mas de un beb\xe9 por adulto";
return false;
}
if(_45>=9){
window.reason="No puede viajar mas de nueve adultos o ni\xf1os";
return false;
}
if($F("fld_search_type").indexOf("hotel")>-1){
var _47=document.getElementsByName("r[]");
var _48=0;
var _49=0;
for(var i=0;i<_47.length;i++){
var _4b=getRoomInfo(_47[i].value);
_48+=_4b["QTY"]*_42[_4b["TYPE"]];
_49+=_4b["CRADLES"]*1;
}
if(_45!=_48||_46!=_49){
window.reason="Hay una discrepancia entre la cantidad de pasajeros y plazas de hotel seleccionadas.";
return false;
}
}
return true;
}
function getRoomInfo(_4c){
var _4d=_4c.split("-");
return {"TYPE":_4d[0],"QTY":_4d[1],"CRADLES":_4d[2]};
}
function prepare_form(_4e){
var _4f=new Array();
var c=window.checkboxesTipoBusqueda;
var _51=$("fld_search_type");
for(i=0;i<c.length;i++){
if(c[i]!=null&&c[i].checked){
_4f[_4f.length]=c[i].value;
}
}
_51.value=_4f.join("-");
if($F("fld_solo_vuelo_ida")&&_51.value=="flights"){
$("fld_return_date").value="";
}
if(_51.value=="flights"){
var _52=document.getElementsByName("r[]");
for(i=0;i<_52.length;i++){
_52[i].value="";
}
}
}

function showSection(_1,_2){
var _3=(Element.hasClassName(_1,"Package"))?"Package":_1.id;
if(typeof (_2)!="string"){
_2="";
}
Element.show("ofertas_loading");
new Ajax.Updater("cont_ofertas","./?Action="+_3,{"postBody":_2,"evalScripts":true,"asynchronous":true,"onSuccess":ofertasOnSuccess});
return false;
}
function ofertasOnSuccess(_4,_5){
Element.hide("ofertas_loading");
}
var selectedTab="0";
function tabOnClick(){
posiciones["PepeOfertasHome"]="left top";
posiciones["PepeOfertasActive"]="left middle";
posiciones["PepeNieves"]="left bottom";
posiciones["PepeGuiasViajes"]="left bottom";
var a=this.parentNode.parentNode.getElementsByTagName("A");
for(i=0;i<a.length;i++){
a[i].className=a[i].className.replace(/seleccionado/,"");
}
this.className+="seleccionado";
this.parentNode.parentNode.style.backgroundPosition=posiciones[this.id];
if(this.id=="PepeGuiasViajes"){
$("btn-search-custom").onclick=function(){
window.location=".";
};
var _7=$("btn-search-vacation");
if(_7!=null){
_7.onclick=function(){
window.location=".";
};
}
$("PepeOfertasHome").onclick=function(){
$("search-custom").show();
showSection(this);
};
}
showSection(this);
}
function addBehaviourToTabs(){
var _8=$("PepeOfertasHome");
if(_8!=null){
_8.onclick=tabOnClick;
}
var _9=$("PepeOfertasActive");
if(_9!=null){
_9.onclick=tabOnClick;
}
var _a=$("PepeGuiasViajes");
if(_a!=null){
_a.onclick=tabOnClick;
}
var _b=$("PepeNieves");
if(_b!=null){
_b.onclick=tabOnClick;
}
}
Event.observe(window,"load",addBehaviourToTabs,false);

