var PAGE=1;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 try again in a few minutes.");$(splash_screen).remove();$('#booking-list').html('');}
$(window).bind('booking_list_loading',function(){$('#booking-list').append('<div id="loading">'+getLoadingCode()+'</div>');splashScreen();});$(window).bind('booking_list_loaded',function(){setupAvailabilityLinks();if(splash_screen)
$(splash_screen).remove();$('#loading').remove();});function filter(){PAGE=1;__historyLoad();}
function setSort(sort_string){SORT=sort_string;__historyLoad();}
function __historyLoad(){var k;var params=new Array();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 add_parameter(url,params){if(url.indexOf('?')!=-1)
return url+'&'+params;return url+'?'+params;}
function doSearch(params){params+='&referer='+window.location.href;$.ajax({type:'GET',url:'/booking/query/?',data:params,beforeSend:function(){$(window).trigger('booking_list_loading')},success:function(data){window.location=data;},error:searchError});}
function reload_list(hash){if(hash)
updateParams(hash);$.ajax({type:'POST',url:add_parameter(window.location.href.split('#')[0],hash),data:'',beforeSend:function(){$(window).trigger('booking_list_loading');},success:function(data){$('#booking-list').html(data);$(window).trigger('booking_list_loaded');}});}
function updateParams(hash){var sp_h=hash.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;}}}
function pageload(hash){if(hash){reload_list(hash);}}
function changePage(page_number){PAGE=page_number;__historyLoad();window.scroll(0,0);return false;}
var splash_screen;function splashScreen(){var d=document.createElement('div');d.style.height=$(document.body).height();$(d).css('opacity',.7);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;}
$('.check-availability').click(function(){var el=this;$.get(this.href,function(data){availability.innerHTML=data;splashScreen();positionMe(el);});return false;});}
function onScroll(){var scrollTop=$(window).scrollTop()
if(scrollTop>275){$('#right-column').css('position','fixed').css('top','5px').css('left',$('ul.hotel-list-ul').offset().left+$('ul.hotel-list-ul').width()+6).addClass('right_columnIE6');}
else{$('#right-column').css('position','static').css('top','5').removeClass('right_columnIE6');}}
$(function(){var currency_change_input=$('[name=change-currency]');var currency_change=$('[name=currency]').not('#global-currency select');currency_change_input.change(function(){currency_change.attr('value',this.value).change();});var booking_search=$('#booking-search');PAGE=1;booking_search.bind('submit',function(){PAGE=1;doSearch($('#booking-search').serialize());return false;});currency_change.change(function(){currency_change_input.attr('value',this.value);}).change();$('#change-search-but').parent().click(function(){$('#search-bar-small').hide();$('form#booking-search').show();return false;});var query_input=$('#destination');function highlight(row){var value=query_input.attr('value');row=row[0];pos=row.toLowerCase().indexOf(value.toLowerCase());return row.substr(0,pos)+'<b>'+row.substr(pos,pos+value.length)+'</b>'+row.substr(pos+value.length);}
query_input.autocomplete('/geo/city/',{formatItem:function(row,i,num){return highlight(row);}});$(window).scroll(onScroll);$(window).resize(onScroll);});$(window).bind('booking_list_loaded',function(){onScroll();$('.paginator-page').click(function(){return changePage($(this).attr('href').substr('?page='.length));});});$(window).bind('booking_list_loaded',manage_filters);$(window).bind('booking_list_loaded',onScroll);$(function(){$('.related-city').click(function(){$('#destination').val($(this).html());$('#booking-search').submit();return false;});});