var PAGE=1;var BOOKING_OPTIONS;var FILTERS={};var HAS_LOADED=false;var SEARCH_TIMEOUT=null;var screen_width=$(window).width();var screen_height=$(window).height();function searchError(){alert("There has been a technical difficulty while reaching our providers. Our system administrators have already been informed, please do try again in a few minutes.");$(splash_screen).remove();$("#loading-hotels").css({display:'none'});$('#booking-list').html('');}
$(window).bind('booking_list_loading',function(){SEARCH_TIMEOUT=setTimeout(searchError,80*1000)
$('#booking-list').html('<div style="position: absolute; top: '+((screen_height/2)-130)+'px ;margin-left: '+(($('div#container').width()-372)/2)+'px" id="loading">'+getLoadingCode());splashScreen();});$(window).bind('booking_list_loaded',function(){clearTimeout(SEARCH_TIMEOUT);setupAvailabilityLinks();$("#loading-hotels").css({display:'none'});if(splash_screen)
$(splash_screen).remove();});function filter(){PAGE=1;__historyLoad();}
function setSort(sort_string){SORT=sort_string;__historyLoad();}
function __historyLoad(){var k;var params=new Array();for(var i=0;i<BOOKING_OPTIONS.length;i++){params.push({name:BOOKING_OPTIONS[i].name,value:BOOKING_OPTIONS[i].value});}
params.push({name:'sort_by',value:SORT});params.push({name:'page',value:PAGE});for(k in FILTER_ATTRIBUTES){if(FILTERS[FILTER_ATTRIBUTES[k]])
params.push({name:k,value:FILTERS[FILTER_ATTRIBUTES[k]].join(',')});}
var serialized_params=unescape($.param(params));return $.historyLoad(serialized_params);}
function reload_list(params){updateParams(window.location.hash.substr(1));$.ajax({type:'GET',url:'/booking/query/',data:params,beforeSend:function(){if((!HAS_LOADED)&&(!FIRST_LOADING)){return;}$(window).trigger('booking_list_loading')},success:function(data){$('#booking-list').html(data);$(window).trigger('booking_list_loaded');HAS_LOADED=true;}});}
function updateParams(params){if(!params)
return;BOOKING_OPTIONS=new Array();var sp_h=params.split('&');var assigned;for(var i=0;i<sp_h.length;i++){var sp_sp_h=sp_h[i].split('=');switch(sp_sp_h[0]){case'sort_by':SORT=sp_sp_h[1];break;case'page':PAGE=sp_sp_h[1];break;default:assigned=false;for(k in FILTER_ATTRIBUTES){if(sp_sp_h[0]==k){FILTERS[FILTER_ATTRIBUTES[k]]=sp_sp_h[1].split(',');assigned=true;break;}}
if(assigned)
continue;BOOKING_OPTIONS.push({name:sp_sp_h[0],value:sp_sp_h[1].replace(/%2F/g,'/')});}}}
function updateForm(){var f=$('form#booking-search');for(var i=0;i<BOOKING_OPTIONS.length;i++){$('[name='+BOOKING_OPTIONS[i].name+']',f).attr('value',BOOKING_OPTIONS[i].value.replace(/\+/g,' ')).change();}}
function pageload(hash){if(hash){reload_list(hash);updateForm();}
else{if(!NO_AUTO_LOAD)
reload_list($('#booking-search').serializeArray())}}
function changePage(page_number){PAGE=page_number;__historyLoad();return false;}
var splash_screen;function splashScreen(){var d=document.createElement('div');var max=function(x,y){return x>y?x:y;}
var splash_height=max($(document.body).height(),$(window).height());var splash_width=max($(document.body).width(),$(window).width());d.style.height=splash_height;d.style.width=splash_width;d.style.opacity=.7;$(d).css({'z-index':'1','position':'absolute','top':'0px','left':'0px'});d.className='splash_screen';document.body.appendChild(d)
splash_screen=d;}
var availability=document.createElement('div');availability.width=300;availability.height=400;availability.style.position='absolute';availability.className='availability-div';function setupAvailabilityLinks(){function positionMe(el){var offset=$(el).offset();$(document.body).append(availability);availability.style.left=offset.left-$(availability).width();availability.style.top=offset.top;}}
$(function(){var currency_change_input=$('[name=change-currency]');var currency_change=$('[name=currency]');currency_change_input.change(function(){currency_change.attr('value',this.value).change();});$('#room-n-select').attr('value','1');var booking_search=$('#booking-search');PAGE=1;booking_search.bind('submit',function(){if(!validate_form($(this)))
return false;BOOKING_OPTIONS=booking_search.serializeArray();PAGE=1;__historyLoad();return false;});currency_change.change(function(){currency_change_input.attr('value',this.value);}).change();BOOKING_OPTIONS=booking_search.serializeArray();});$(window).bind('booking_list_loaded',manage_filters);