var search=Class.create
({initialize:function(search_criteria)
{this.search_criteria=search_criteria;},search:function()
{new Ajax.Request(this.search_url,{method:'post',parameters:$H(this.search_criteria).toQueryString(),onSuccess:this.update_results.bind(this),onCreate:this.toggle_loading(true)});},get_results:function()
{var response=new this.response();return response.results;},update_results:function(transport)
{if(transport.responseText)
{this.toggle_loading(false);this.toggle_select_message(true);if(document.getElementById('extra_message')!=null){$('extra_message').show();}
this.response=function(){this.results=transport.responseText.evalJSON();};this.original_results=this.get_results();this.set_up_filtering();this.render_results(this.original_results);}
else this.bounce_back();},render_results:function(results)
{var obj=this;var per_page=5;var no_of_pages=Math.ceil(results.items.length/per_page);var current_page_no;this.toggle_orig_choice_message(results.unable_to_find_original_choice);$('search_id').writeAttribute('value',results.search_id);function pagination(container_id)
{var max_links=12;var limiting=(no_of_pages>=max_links);var links_left=0;var links_right=no_of_pages;if(limiting)
{var either_side=(max_links/2);links_left=(current_page_no-either_side);links_right=(current_page_no+either_side)-1;}
if(links_left<0)
{if(limiting)links_right+=Math.abs(links_left);links_left=0;}
if(links_right>no_of_pages)
{if(limiting)links_left-=(links_right-no_of_pages);links_right=no_of_pages;}
var container=$(container_id);var div=new Element('div',{'class':'pagination'});var ol=new Element('ol');var li,a;if(no_of_pages>1)
{if(current_page_no>1)
{a=new Element('a',{'href':'#results_top'}).update('Prev');a.onclick=prev;li=new Element('li',{'class':'pagination_prev'});li.insert(a);ol.insert(li);}
for(var i=links_left;i<links_right;i++)
{li=new Element('li');var page_no=i+1;if(page_no==current_page_no)
{span=new Element('span').update(page_no);li.insert(span);}
else
{a=new Element('a',{'href':'#results_top'}).update(page_no);a.onclick=display.bind(this,page_no);li.insert(a);}
ol.insert(li);}
if(current_page_no<no_of_pages)
{a=new Element('a',{'href':'#results_top'}).update('Next');a.onclick=next;li=new Element('li',{'class':'pagination_next'});li.insert(a);ol.insert(li);}}
else
{ol.insert(new Element('li').insert(new Element('span').update('Page 1 of 1')));}
div.insert(ol);container.update(div);};function prev(){display(current_page_no-1);};function next(){display(current_page_no+1);};function items()
{var items=new Element('div');var stop=per_page*current_page_no;var start=stop-per_page;if(current_page_no==1&&this.star_count)this.star_count=0;for(var i=start;i<stop;i++)
{var result=results.items[i];if(typeof result!='undefined')
{var item=obj.build(result,results.totals);items.insert(item);}}
$('search_results').update(items);};function results_count()
{var results_count=$('results_count');var total=results.items.length;var first=per_page*(current_page_no-1)+1;var last=per_page*current_page_no;last=(last>total)?total:last;var results_type=$('results_type').value;var new_results_count=new Element('span');new_results_count.insert("Displaying ");new_results_count.insert(new Element('b').insert(first+"-"+last+" "));new_results_count.insert("of ");new_results_count.insert(new Element('b').insert(total+" "));new_results_count.insert(results_type);results_count.update(new_results_count);};function display(page_no)
{current_page_no=page_no;pagination('top_pagination');items();pagination('bottom_pagination');results_count();};display(1);},filter_results:function()
{$('filter').writeAttribute('disabled','disabled');var results=this.get_results();var filtered_results=this.filter(results);$('filter').removeAttribute('disabled');$('filter').blur();var err=$('filter_errors');if(!filtered_results.items.length)
{err.update('No results with current filter');}
else
{err.update('');this.render_results(filtered_results);}},set_up_filtering:function()
{var obj=this;function init()
{$('filter').observe('click',obj.filter_results.bind(obj));var toggle_filter=$('toggle_filter');var results_type=$('results_type').value;var initial_toggle_filter=new Element('span');initial_toggle_filter.insert('&nbsp;(');initial_toggle_filter_text=new Element('a',{'id':'toggle_filter_text'});if(results_type=='flights')
initial_toggle_filter_text.update('show filter');else
initial_toggle_filter_text.update('hide filter');initial_toggle_filter.insert(initial_toggle_filter_text);initial_toggle_filter.insert(')');var show_filter;if(results_type=='flights'){show_filter=false;$('filter_container').style.cssText="display:none;";}
else{show_filter=true;$('filter_container').style.cssText="display:inline;";}
toggle_filter.update(initial_toggle_filter);toggle_filter.onclick=function()
{if(show_filter)
{Effect.SlideUp($('filter_container'),{duration:0.2,queue:'front',delay:0.01});show_filter=false;}
else
{Effect.SlideDown($('filter_container'),{duration:0.2,queue:'front',delay:0.01});show_filter=true;}
filter_toggle_text(show_filter);};if(obj.original_results.search_text){$('filter_container').style.cssText="display:none;";show_filter=false;filter_toggle_text(show_filter);}};function filter_toggle_text(show)
{var toggle_filter=$('toggle_filter');var new_toggle_filter=new Element('span');new_toggle_filter.insert('&nbsp;(');new_toggle_filter_text=new Element('a',{'id':'toggle_filter_text'});if(show)
new_toggle_filter_text.update('hide filter');else
new_toggle_filter_text.update('show filter');new_toggle_filter.insert(new_toggle_filter_text);new_toggle_filter.insert(')');toggle_filter.update(new_toggle_filter);};init();},toggle_loading:function(toggle)
{if(toggle)
this.show_progress();else
this.hide_progress();},show_progress:function()
{},hide_progress:function()
{$('progress_bar').update('').hide();},toggle_select_message:function(toggle)
{if(toggle)
this.show_select_message();else
this.hide_select_message();},show_select_message:function()
{var p=new Element('p').update(this.select_message);$('select_message').insert(p).show();},hide_select_message:function()
{$('select_message').update('').hide();},toggle_orig_choice_message:function(toggle)
{if(toggle)
this.show_orig_choice_message();else
this.hide_orig_choice_message();},show_orig_choice_message:function()
{var p=new Element('p').update(this.orig_choice_message);$('orig_choice_message').update(p).show();this.hide_select_message();},hide_orig_choice_message:function()
{$('orig_choice_message').update('').hide();}});function check_budget(budget,range)
{range=eval(range);var lower=range[0];var upper=range[1];var budget_okay=false;if(lower&&upper)
budget_okay=(budget>=lower&&budget<=upper);else if(!lower&&upper)
budget_okay=(budget<upper);else if(lower&&!upper)
budget_okay=(budget>lower);return budget_okay;}
function dateStatusHandler(then,y,m,d){today=new Date();if(then.getFullYear()==today.getFullYear()&&then.getMonth()<today.getMonth()){return true;}else if(then.getFullYear()<today.getFullYear()){return true;}else{return false;}}
function cyo_pop(p,n){window.open((n?p:'/cyo-pop?in='+p),'cyo_pop','width=440,height=350,scrollbars=yes');}
function cyo_pop_small(p,n){window.open((n?p:'/cyo-pop?in='+p),'cyo_pop_small','width=400,height=200,scrollbars=yes');}
function vrsn_splash(){window.open('https://seal.verisign.com/splash?form_file=fdf/splash.fdf&dn=WWW.OTBEACH.COM&lang=en','','width=600,height=450,status=yes,toolbar=yes,menubar=yes,location=yes,scrollbars=auto,resizable=yes');}
function start_basket_timeout(m){return;thirty_minutes=1800000;cart_timeout=setTimeout("basket_timeout('"+m+"')",thirty_minutes);}
var hiw;function show_hotel_info_win(hotel_index,hotel_page,review)
{var search_id=the_hotel_search.original_results.search_id;var review_var=(review==1)?'&review=1':'&review=0';hiw=window.open
(hotel_page+'?pop=1&show_boards=1&hotel_index='+hotel_index+'&search_id='+search_id+review_var,'hotel_info_win','scrollbars=1, toolbar=0, height=650, width=920');hiw.focus();return false;}
function show_review_win(review_page)
{hrw=window.open
(review_page+'&pop=1','review_info_win','scrollbars=1, toolbar=0, height=600, width=800');hrw.focus();return false;}
function date_zero_pad(s,n){p="";l=n-String(s).length;for(i=0;i<l;i++){p+="0";}
return p+s;}
function basket_timeout(m){var d;if(m=='quote'){d='ch3';}else if(m=='hotel'){d='ch4';}else{d='ch2';}
if(hiw){hiw.close();}
document.location.href=d;cyo_pop_small('cyo-basket_expired');}
var nr_jslib_ie=((navigator.userAgent.toLowerCase().indexOf("msie")!=-1)&&(navigator.userAgent.toLowerCase().indexOf("opera")==-1));var nr_jslib_ajax_dump=false;function nr_jslib_inarray($arr,$checkfor){$array_string=$arr.toString();$array_string.search($checkfor);if($array_string){return true;}else{return false;}}
function nr_jslib_get_event(e){if(!e){var e=window.event;}
if(!e.target){e.target=e.srcElement;}
if(!e.pageX&&!e.pageY){if(document.documentElement){e.pageX=e.clientX+document.documentElement.scrollLeft;e.pageY=e.clientY+document.documentElement.scrollTop;}else{e.pageX=e.clientX+document.body.scrollLeft;e.pageY=e.clientY+document.body.scrollTop;}}
return e;}
function nr_jslib_add_event(event_name,function_name,event_target){if(!event_target){if(nr_jslib_ie){event_target=document.body;}else{event_target=document;}}
if(document.attachEvent){nr_jslib_remove_event(event_name,function_name,event_target);event_target.attachEvent("on"+event_name,function_name);}else{event_target.addEventListener(event_name,function_name,true);}}
function nr_jslib_remove_event(event_name,function_name,event_target){if(!event_target){if(nr_jslib_ie){event_target=document.body;}else{event_target=document;}}
if(document.attachEvent){event_target.detachEvent("on"+event_name,function_name);}else{event_target.removeEventListener(event_name,function_name,true);}}
function nr_jslib_stop_event(e){if(nr_jslib_ie){window.event.cancelBubble=true;window.event.returnValue=false;}else{e.preventDefault();e.stopPropagation();}}
function launch_popunder(){window.open("/ads/otb_affiliate.html",'popunder',"left=400,top=400,width=400,height=270");window.focus();}
ideas={count:0,examples:['Cyprus holidays','5 star Tenerife','flights to Sharm','last minute Majorca','Hilton Sharm el Sheikh','Tunisia hotels','family holidays to Turkey','hotels in Crete','luxury Dominican Republic'],rotate:function(){$$("#otb-search-ideas span")[0].update(this.examples[this.count]);this.count=(this.count>=this.examples.length-1)?0:this.count+1;},start_rotating:function(){this.rotate();this.timer=setInterval(this.rotate.bind(this),2750);}}
function doPopup(url,pname,options)
{popwindow=window.open(url,pname,options);if(window.focus)
{popwindow.focus();}}
function mul_str(str,num){return num?Array(num+1).join(str):"";}
Event.observe(window,'load',function(){if(document.getElementById('nav-extras')!=null){$("nav-extras").onmouseover=function(){this.addClassName("hover")};$("nav-extras").onmouseout=function(){this.removeClassName("hover")};}});function setPopunderWindowObserver(ele){Element.observe(ele,'click',function(){var pu_count=parseInt($('pu_count').value);if(!pu_count)
pu_count=0;if(pu_count<3){var now=new Date().getTime();var popunder=window.open("email_voucher.html?t="+now,'popunder','height=450,width=650,toolbar=no,titlebar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=yes');if(popunder!=undefined){popunder.blur();}
window.focus();}});}
function setIBookPopunderWindowObserver(ele){if(ibook_url!=""&&hide_ibook_popunder!="true"){Element.observe(ele,'click',function(){var popunder=window.open(ibook_url,'ibook','height=500,width=450,toolbar=no,titlebar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=yes');if(popunder!=undefined){popunder.blur();}
window.focus();});}}