Date.prototype.dutch_long_months=new Array("Januari","Februari","Maart","April","Mei","Juni","Juli","Augustus","September","Oktober","November","December");Date.prototype.dutch_short_months=new Array("Jan","Feb","Mrt","Apr","Mei","Jun","Jul","Aug","Sep","Okt","Nov","Dec");Date.prototype.dutch_long_days=new Array("Zondag","Maandag","Dinsdag","Woensdag","Donderdag","Vrijdag","Zaterdag");Date.prototype.dutch_short_days=new Array("Zo","Ma","Di","Wo","Do","Vr","Za");Date.prototype.setDutchDate=function(localdate){var aDate=localdate.split(/[\/\.\-\ ]+/g);this.setFullYear(aDate[2]);this.setMonth((aDate[1]-1),1);this.setDate(aDate[0]);}
Date.prototype.getDutchDate=function(){var d=(this.getDate()<10?"0"+this.getDate():this.getDate())+"-"+(this.getMonth()<9?"0"+(this.getMonth()+1):this.getMonth()+1)+"-"+this.getFullYear();return d;}
Date.prototype.setSqlDate=function(localdate){if(!localdate){return false;}
try{var aDate=localdate.split(/[\/\.\-\ ]+/g);this.setFullYear(aDate[0]);this.setMonth((aDate[1]-1),1);this.setDate(aDate[2]);}
catch(err){console.error(err);}}
Date.prototype.getSqlDate=function(){var d=this.getFullYear()+"-"+(this.getMonth()<9?"0"+(this.getMonth()+1):this.getMonth()+1)+"-"+(this.getDate()<10?"0"+this.getDate():this.getDate());return d;}
Date.prototype.getDutchMonthString=function(){n=this.getMonth();return this.dutch_long_months[n];}
Date.prototype.getShortDutchMonthString=function(){n=this.getMonth();return this.dutch_short_months[n];}
Date.prototype.getAge=function(){var sNow=new String(new Date().getSqlDate()).replace(/\-/gi,"");var sThen=new String(this.getSqlDate()).replace(/\-/gi,"");return(parseInt(sNow)-parseInt(sThen))/10000;}
Date.prototype.getDiffDays=function(){var now=new Date;var then=this;return Math.ceil((then-now)/(24*60*60*1000));}
Date.prototype.tomorrow=function(){var t=this.getDate();this.setDate((this.getDate()+1));}
Date.prototype.yesterday=function(){var t=this.getDate();this.setDate((this.getDate()-1));}
Date.prototype.addDays=function(numberofdays){this.setDate((this.getDate()+parseInt(numberofdays)));}
Date.prototype.substractDays=function(numberofdays){this.setDate((this.getDate()-numberofdays))}
Date.prototype.getDutchDateStringLong=function(){var s=new String;s+=this.dutch_long_days[(this.getDay())]+" ";s+=this.getDate()+" ";s+=this.dutch_long_months[(this.getMonth())].toLowerCase()+" ";s+=this.getCorrectedYear();return s;}
Date.prototype.getCorrectedYear=function(){return this.getFullYear();}
Date.prototype.getDutchDateStringShort=function(y){var s=new String;s+=this.dutch_short_days[(this.getDay())]+" ";s+=this.getDate()+" ";s+=this.dutch_short_months[(this.getMonth())]+" ";if(y){s+=this.getCorrectedYear().toString().substring(2,4);}
return s;}
function addtofavorites(url,title){if(window.sidebar){window.sidebar.addPanel(title,url,"");}
else if(window.external){window.external.AddFavorite(url,title);}
else if(window.opera&&window.print){return true;}}
function back_to_list(){var ref=document.referrer;if(ref){document.write('<a href="javascript:history.back();">&lt;&nbsp;&nbsp;terug naar lijst</a>');}}
function show_slideshow(){var t=$$('div.images-loading');t.each(function(el){el.hide();});var s=$$('.slideshow');s.each(function(el){el.style.visibility='visible';});}
document.observe('dom:loaded',show_slideshow);function popup(page,h,w){Lightview.show({href:page,rel:'iframe',options:{width:(w||400),height:(h||325),closeButton:'large',overlayClose:false}});}
function popupsmall(page){return popup(page,500,200);}
function popupCarousel(page){return popup(page,500,425);}
function getQueryString(s){var sQueryString=window.location.search.substring(1);var aQueryVars=sQueryString.split("&");for(var i=0;i<aQueryVars.length;i++){var aQueryPair=aQueryVars[i].split("=");if(aQueryPair[0]==s){return aQueryPair[1];}}
return false;}
function getHttpObject(){throw(new Error('Deprecated function!...'));}
if(!window.__tabcache){window.__tabcache={};}
function getAjaxObject(url,el,cache,followUp){if(window.__tabcache[cache]){if(!Object.isElement(el)){el=$(el);}
el.innerHTML=window.__tabcache[cache];if(followUp)followUp();return;}
var request_options={'method':'GET','arguments':'','onComplete':(followUp||parseResponseText),'sourceElement':el,'cacheId':cache}
new Ajax.Request(url,request_options);}
function postAjaxForObject(url,postbody,el,followUp){var request_options={'method':'POST','postBody':postbody,'onComplete':(followUp||parseResponseText),'sourceElement':el}
new Ajax.Request(url,request_options);}
function parseResponseText(XmlHttpResponse){try{var sElement=XmlHttpResponse.request.options.sourceElement;if(!Object.isElement(sElement)&&Object.isString(sElement)){sElement=$(sElement);}
if(XmlHttpResponse.request.options.cacheId){window.__tabcache[XmlHttpResponse.request.options.cacheId]=XmlHttpResponse.responseText;}
sElement.innerHTML=XmlHttpResponse.responseText;}
catch(err){console.error(err);}
return;}
var DodoFrame=Class.create({initialize:function(){},create:function(source_uri){var oFrame=document.createElement('iframe');oFrame.name='traveldodo-frame';oFrame.id='traveldodo-frame';oFrame.src=source_uri;oFrame.width='100%';oFrame.height='1000';oFrame.setAttribute('frameborder',0);oFrame.frameBorder=0;return oFrame;}});var kkeys=[];function catchkeys(e){kkeys.push(e.keyCode);if(kkeys.toString().indexOf("38,38,40,40,37,39,37,39,66,65")>=0){document.stopObserving('keydown',catchkeys);kkeys=[];if(typeof(konami)=='function')konami();}}
function scCustomEventTracker(event_value,prop,value){return;var s=s_gi(s_account);s.linkTrackVars=!s.linkTrackVars||s.linkTrackVars.toLowerCase()=='none'?'':s.linkTrackVars+',';if(prop&&value){s[prop]=value;s.linkTrackVars+=prop+',';}
if(event_value){s.events=!s.events||s.events.toLowerCase()=='none'||s.events==''?'':s.events+',';s.linkTrackEvents=!s.linkTrackEvents||s.linkTrackEvents.toLowerCase()=='none'?'':s.linkTrackEvents+',';s.linkTrackEvents+=event_value;s.events+=event_value;s.linkTrackVars+='events';}
s.tl(this,'o','TrackLink');s.linkTrackVars=s.linkTrackVars.replace(','+prop+',events','').replace(prop+',events','');if(event_value){s.events=s.events.replace(','+event_value,'').replace(event_value,'');}}
function ncab(){if(!document.cookie.match(/ncab/)){new Ajax.Request('/ncab',{onSuccess:function(response){document.cookie='ncab='+response.responseText+'; path=/';}});}}
document.observe('dom:loaded',ncab);function check_protocol(){if(document.location.protocol=='https:'&&document.location.href.search(/dynabooking/)==-1){console.info('We\'re on https but should be on http...')
var as=$(document.body).select('a');console.info('Found '+as.length+" links...");as.each(function(el){el.href=el.href.replace(/https:/,'http:');});}}
document.observe('dom:loaded',check_protocol);function init_hoverables(){var ahoverables=$$('div.hoverable');ahoverables.each(function(el){el.observe('mouseover',function(e){var obj=e.findElement('div.hoverable');if(!obj){return};if(!obj.hasClassName('hover')){obj.addClassName('hover')};});el.observe('mouseout',function(e){var obj=e.findElement('div.hoverable');if(!obj){return}
if(obj.hasClassName('hover')){obj.removeClassName('hover')};});});}
function init_clickables(){var aclickables=$$('div.clickable');aclickables.each(function(el){el.observe('click',function(e){var container=e.findElement('div.clickable');if(!container){return};if(e.element().tagName.search(/^a|input$/i)!=-1){return};if(e.element().hasClassName('exception')){return};var link=container.select('a.clickable')[0];if(link.hasClassName('newwindow')){window.open(link.href);}
else{document.location=link.href;}});});}
function init_hovers(){var aclickables=$$('div.clickable');aclickables.each(function(el){el.observe('mouseover',function(e){var container=e.findElement('div.clickable');if(!container){return};if(e.element().tagName.search(/^a|input$/i)!=-1){return};if(e.element().hasClassName('exception')){return};var link=container.select('a.clickable')[0];container.title=link.title;});});}
function init_newwindowlinks(){var alinks=$$('a.newwindow, a[rel="external"]');alinks.each(function(el){el.observe('click',function(e){var l=e.findElement('a');e.stop();window.open(l.href);});});}
function facebook_initialize(){console.log('intializing facebook ');try{(function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(d.getElementById(id)){return;}
js=d.createElement(s);js.id=id;js.src="//connect.facebook.net/en_US/all.js#xfbml=1";fjs.parentNode.insertBefore(js,fjs);}(document,'script','facebook-jssdk'));}
catch(err){console.warn(err);}}
function gplusone_initialize(){console.log('intializing plusone ');try{(function(){var po=document.createElement('script');po.type='text/javascript';po.async=true;po.src='https://apis.google.com/js/plusone.js';var s=document.getElementsByTagName('script')[0];s.parentNode.insertBefore(po,s);})();}
catch(err){console.warn(err);}}
function twitter_tweet_initialize(){console.log('intializing twitter ');try{(function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}})(document,"script","twitter-wjs");}
catch(err){console.warn(err);}}
Event.observe(window,'load',function(){window.setTimeout('twitter_tweet_initialize();',1000);window.setTimeout('gplusone_initialize();',1500);window.setTimeout('facebook_initialize();',2000);});var XmlHttpResponseParser=Class.create({initialize:function(){},parse:function(XmlHttpResponse){var xmlDoc;if(!DOMParser&&window.ActiveX){xmlDoc=XmlHttpResponse.responseXML;}
else{var parser=new DOMParser;xmlDoc=parser.parseFromString(XmlHttpResponse.responseText,"text/xml");}
try{xmlDoc.setProperty("SelectionLanguage","XPath");}
catch(err){xmlDoc=XmlHttpResponse.responseXML;}
return xmlDoc}});var UnitType=Class.create({initialize:function(){this.code;this.name;this.minOccupancy;this.maxOccupancy;this.babies;this.x;}});var yValue=Class.create({initialize:function(){this.name;this.type;this.price;this.pricetype;}});var DynaBookingLite=Class.create({initialize:function(){this.initialized=false;this.request_active=false;this.first_request=true;this.placeholder=false;this.departure=false;this.roomtypes=false;this.price_handler=false;this.book_trigger=false;this.selected={};this.predefined={};this.filter={};this.filter_options={};this.__data={};this.show_single_values=false;this.translations={duration:'Reisduur',transport:'Vervoer',airport:'Luchthaven',triptype:'Reisduur',roomtype:'Kamertype',persons:'Personen',board:'Verzorging',departure:'Vertrekdatum'};this.prepends={duration:'',transport:'',airport:'',triptype:'',roomtype:'',persons:'',board:'',departure:''};this.appends={duration:' dagen',transport:'',airport:'',triptype:'',roomtype:'',persons:' personen',board:'',departure:''};this.replacements={duration:false,transport:false,airport:function(option){if(!option.nodeName){console.warn('requires an object with attributes nodeName and nodeValue');return option;}
var t=option.nodeName.split(/ /);option.nodeName=t[0]+' - '+t[1];return option;},triptype:false,roomtype:false,persons:false,board:false,departure:function(option){var d=new Date;d.setSqlDate(option.nodeValue);option.nodeName=d.getDutchDateStringLong();return option;}}}
,dispatch:function(){try{this.boundReload=this._requestPrices.bind(this);this.boundPriceHandler=this._handle_price.bind(this);this.boundSelect_Changed=this._select_Changed.bind(this);if(this.book_trigger){$$(this.book_trigger)[0].observe('click',this._book.bind(this));}
if(!window.__nc__){window.__nc__={};}
if(!window.__nc__.DynabookingLite){window.__nc__.DynabookingLite=this;}
this._requestPrices(false);this.initialized=true;}catch(err){console.error(err)};},unavailable_handler:function(){alert('De geselecteerde reis is helaas niet (meer) beschikbaar...');},price_handler:function(){},show_loading:function(){window.status='bezig met ophalen van de prijzen...';},hide_loading:function(){window.status='';}
,_requestPrices:function(e){if(e){var obj=e.findElement('select');if(obj){var old_selection=this.selected[obj.className];var new_selection=obj.options[obj.selectedIndex].value;console.info(old_selection);console.info(new_selection);this.selected[obj.className]=new_selection;if(obj.className=='transport'){var departure=this.selected.departure||this.predefined.departure[0];var td=new Date();td.setSqlDate(departure);if((old_selection=='EV'||old_selection=='VL')&&new_selection=='BU'){td.setDate(td.getDate()-1);this.selected.duration=parseInt(this.selected.duration)+2;}
if(old_selection=='BU'&&(new_selection=='VL'||new_selection=='EV')){td.setDate(td.getDate()+1);this.selected.duration=parseInt(this.selected.duration)-2;}
this.selected.departure=td.getSqlDate();}
}
e.stop();}
try{var request=new Template('<bookinfo>'+
'<request action="#{requestaction}" type="loadpricesrequest">'+
'<criteria type="acco" code="#{acco}"/>'+
'<criteria type="site" code="#{brand}"/>'+
'<criteria type="productgroup" code="#{productgroup}"/>'+
'<criteria type="column_size" code="1"/>'+
'<criteria type="departure" code="#{departure}"/>'+
'<criteria type="start_departure" code="#{departure}"/>'+
'<criteria type="transport" code="#{transport}"/>'+
'<criteria type="airport" code="#{airport}"/>'+
'<criteria type="triptype" code="#{triptype}"/>'+
'<party>'+
'<unitparty id="1">'+
'#{party}'+
'</unitparty>'+
'</party>'+
'</request>'+
'</bookinfo>');var person=new Template('<person id="PAX#{c}" birthdate="#{y}-01-01"/>');var party='';var y=(new Date).getFullYear()-30;for(var i=1,len=this.selected.persons;i<=len;i++){var tdata={'c':i,'y':y};party+=person.evaluate(tdata);}
var request_data={'requestaction':(this.first_request?'new':'update'),'acco':this.selected.accoid,'brand':this.selected.brand,'productgroup':this.selected.productgroup,'departure':this.selected.departure||this.predefined.departure[0],'transport':this.selected.transport,'party':party,'airport':(this.selected.airport&&this.selected.transport&&this.selected.transport=='VL')?this.selected.airport:'','triptype':this.selected.triptype}
var xml=request.evaluate(request_data);this.first_request=false;this._request(xml,this._parsePriceControlData.bind(this));}catch(err){console.error(err);}},_parsePriceControlData:function(xmlDomDoc){this.__controls=new Array('departure','duration','triptype','transport','airport','unit');this.roomtypes=new Object;for(var i=0,ilen=this.__controls.length;i<ilen;i++){var ctrlName=this.__controls[i];var nodes=xmlDomDoc.selectNodes("//response[@type='pricecontrolsresponse']/"+ctrlName+"s/"+ctrlName);this.__data[ctrlName]=new Array;for(var j=0,jlen=nodes.length;j<jlen;j++){var option={};option.nodeValue=(nodes[j].getAttribute('days')||nodes[j].getAttribute('code'));option.nodeName=(nodes[j].getAttribute('days')||nodes[j].getAttribute('name'));if(ctrlName=='unit'){var unit=new UnitType;unit.code=nodes[j].getAttribute('code');unit.name=nodes[j].getAttribute('name');unit.minOccupancy=nodes[j].getAttribute('minoccupancy');unit.maxOccupancy=nodes[j].getAttribute('maxoccupancy');unit.babies=nodes[j].getAttribute('babies');this.roomtypes[unit.code]=unit;}
this._add_option(ctrlName,option);}}
this._parsePriceMatrixData(xmlDomDoc);},_parsePriceMatrixData:function(xmlDomDoc){var matrix=xmlDomDoc.selectNodes("//response[@type='pricematrixresponse']/pricematrix")[0];this.xaxis=matrix.getAttribute('xaxis');this.yaxis=matrix.getAttribute('yaxis');this.price_data=new Object;var slices=xmlDomDoc.selectNodes("//response[@type='pricematrixresponse']/pricematrix/slice");for(var i=0,ilen=slices.length;i<ilen;i++){var slice=slices[i];var type=slice.getAttribute('code');var xvalue=slice.selectNodes('x')[0];var yvalues=xvalue.selectNodes("y[not(@type='unavailable') and not(@type='')]");var numberOfPricesFound=0;var yObject=new Object;for(var k=0,klen=yvalues.length;k<klen;k++){var y=new yValue;y.name=yvalues[k].getAttribute('name');y.price=yvalues[k].getAttribute('price');y.pricetype=yvalues[k].getAttribute('type');if(this.predefined[this.yaxis]&&y.name==this.predefined[this.yaxis]){for(var j=0,jlen=this.predefined[this.yaxis].length;j<jlen;j++){if(y.name==this.predefined[this.yaxis][j]){yObject[y.name]=y;numberOfPricesFound++;}}}
else{if(y.price&&y.price>0){yObject[y.name]=y;numberOfPricesFound++;}}}
if(numberOfPricesFound>0){this.price_data[type]=yObject;}
else{console.warn('We do\'nt have any prices for roomtype '+type+'...');}}
var roomtype=false;var nPersons=this.selected.persons||2;if(this.selected.roomtype&&this.roomtypes[this.selected.roomtype].minOccupancy<=nPersons&&this.roomtypes[this.selected.roomtype].maxOccupancy>=nPersons&&this.price_data[this.selected.roomtype]){roomtype=this.selected.roomtype;}
else{var possibilities=new Array();var v=this.selected[this.yaxis];for(var i in this.roomtypes){if(this.roomtypes[i]&&this.price_data[i]&&parseInt(this.roomtypes[i].minOccupancy)<=nPersons&&parseInt(this.roomtypes[i].maxOccupancy)>=nPersons){if(!v||(this.roomtypes[i]&&parseInt(this.price_data[i][v].price,10)>0)){possibilities.push({'type':this.roomtypes[i].code,'price':this.price_data[i][v].price});roomtype=this.roomtypes[i].code;this.selected.roomtype=roomtype;}}}
console.info(possibilities);var p=false;for(var i=0,ilen=possibilities.length;i<ilen;i++){if(!p||(p&&p>parseInt(possibilities[i].price,10))){p=parseInt(possibilities[i].price,10);roomtype=possibilities[i].type;}}
this.selected.roomtype=roomtype;}
console.info(this.selected.roomtype);if(!roomtype){document.cookie='SESSION_ID=; path=/; expires=-1;';this._hide_selects();this.unavailable_handler();return;}
this.__data[this.yaxis]=new Array;for(var i in this.price_data[roomtype]){var t={nodeName:this.price_data[roomtype][i].name,nodeValue:this.price_data[roomtype][i].name};this._add_option(this.yaxis,t);}
this.__data.unit=new Array;for(var i in this.roomtypes){var t={nodeName:this.roomtypes[i].name,nodeValue:this.roomtypes[i].code}
if(this.price_data[i]){this._add_option('unit',t);}}
this.__data.persons=new Array;for(var i=this.roomtypes[roomtype].minOccupancy,ilen=this.roomtypes[roomtype].maxOccupancy;i<=ilen;i++){var t={nodeName:i,nodeValue:i}
this._add_option('persons',t);}
for(var i in this.__data){this._ctrlBoxBuilder(i,this.__data[i]);}
this._handle_price();}
,_handle_price:function(e){if(e){var obj=e.findElement('select');if(obj){this.selected[obj.className]=obj.options[obj.selectedIndex].value;}}
if(this.price_handler){var price;var yType=this.yaxis;if(this.roomtypes[this.selected.roomtype]&&this.price_data[this.selected.roomtype][this.selected[yType]]){price=this.price_data[this.selected.roomtype][this.selected[yType]].price;}
if(!price){this.unavailable_handler();}
else{this.price_handler(price,this.selected);}}}
,_book:function(e){var addunitrequest=new Template('<bookinfo>'+
'<request action="update" type="addunitrequest">'+
'<criteria type="acco" code="#{acco}"/>'+
'<criteria type="site" code="#{brand}"/>'+
'<criteria type="productgroup" code="#{productgroup}"/>'+
'<criteria type="column_size" code="1"/>'+
'<criteria type="start_departure" code="#{departure}"/>'+
'<criteria type="transport" code="#{transport}"/>'+
'<criteria type="airport" code="#{airport}"/>'+
'<criteria type="duration" code="#{duration}"/>'+
'<criteria type="departure" code="#{departure}"/>'+
'<unitoccupancy partyid="1" unitcode="#{roomtype}" description="#{roomdesc}" id="1" action="update">'+
'#{persons}'+
'</unitoccupancy>'+
'</request>'+
'</bookinfo>');var aslcts=$('dynabooking-lite').select('select');for(var i=0,ilen=aslcts.length;i<ilen;i++){this.selected[aslcts[i].className]=aslcts[i].options[aslcts[i].selectedIndex].value;if(aslcts[i].className=='roomtype'){this.selected.roomdesc=aslcts[i].options[aslcts[i].selectedIndex].innerHTML;}}
var person=new Template('<person id="PAX#{c}" birthdate="#{y}-01-01"/>');var party='';var y=(new Date).getFullYear()-30;for(var i=1,ilen=this.selected.persons;i<=ilen;i++){var tdata={'c':i,'y':y};party+=person.evaluate(tdata);}
var data={'acco':this.selected.accoid,'brand':this.selected.brand,'productgroup':this.selected.productgroup,'departure':this.selected.departure||'','transport':this.selected.transport||'','airport':this.selected.airport||'','duration':this.selected.duration||'','roomtype':this.selected.roomtype||'','roomdesc':this.selected.roomdesc||'','persons':party}
var xml=addunitrequest.evaluate(data);this._request(xml,this._are_we_good.bind(this));}
,_are_we_good:function(xmlDomDoc){if(xmlDomDoc.selectNodes("//response[@type='receiptresponse']").length>0){var nextsteprequest=new Template('<bookinfo>'+
'<request action="update" type="nextsteprequest">'+
'<criteria type="acco" code="#{acco}"/>'+
'<criteria type="site" code="#{brand}"/>'+
'<criteria type="productgroup" code="#{productgroup}"/>'+
'<step number="1"/>'+
'</request>'+
'</bookinfo>');var data={'acco':this.selected.accoid,'brand':this.selected.brand,'productgroup':this.selected.productgroup,'departure':this.selected.departure||''}
var xml=nextsteprequest.evaluate(data);this._request(xml,this._can_we_go_now.bind(this));}
else{alert('Er is een fout opgetreden waardoor de boeking niet kan worden afgemaakt, gelieve het later nog eens te proberen.');}}
,_can_we_go_now:function(xmlDomDoc){this.show_loading();var allowedNodes=xmlDomDoc.selectNodes("//response[@type='nextstepresponse']/allowed");var allowedNode=allowedNodes[0];if(allowedNode&&allowedNode.getAttribute('value')=='true'){var hostname=(document.location.host||document.location.hostname);var protocol='https://';var location='';location='/dynabooking2/checkout/?site='+this.selected.brand+"&productgroup="+this.selected.productgroup+'&acco='+this.selected.accoid;location+='&r='+Math.random();document.cookie='accoref= '+encodeURIComponent(document.location)+'; path= /; ';if(hostname.search(/\.intern/g)==-1&&hostname.search(/test\./)==-1){window.parent.location=protocol+hostname+location;}
else{window.parent.location='http://'+hostname+location;}
return;}}
,_onreset:function(){this.boundReload(false);}
,_request:function(xml,handler){try{if(!this.request_active){this.request_active=true;this.show_loading();xml=encodeURIComponent(xml);var uri='/dynabooking/webservice/';var options={method:'POST',postBody:'xml='+xml,onSuccess:this._responseHandler.bind(this),onFailure:function(){console.error('Server responded with a 500...');},responseHandler:handler};new Ajax.Request(uri,options);}
else{console.warn('There is already a request active...');}}catch(err){console.error(err)}},_responseHandler:function(xmlhttpresponse){try{var XHRP=new XmlHttpResponseParser;var xmlDomDoc=XHRP.parse(xmlhttpresponse);this.request_active=false;this.hide_loading();if(xmlDomDoc.selectSingleNode("//response[@type='invalidresponse']")){var errorElement=xmlDomDoc.selectSingleNode("//response[@type='invalidresponse']/error");var code=errorElement.getAttribute("code");switch(code){case'6':this._reset();return;break;case'1':case'2':case'3':case'4':case'5':return;break;default:break;}}
return xmlhttpresponse.request.options.responseHandler(xmlDomDoc);}catch(err){console.error(err)}},_reset:function(){var resetrequest=new Template('<bookinfo>'+
'<request action="new" type="resetrequest">'+
'<criteria type="acco" code="#{acco}"/>'+
'<criteria type="site" code="#{brand}"/>'+
'<criteria type="productgroup" code="#{productgroup}"/>'+
'</request>'+
'</bookinfo>');this._request(resetrequest.evaluate({'acco':this.selected.accoid,'brand':this.selected.brand,'productgroup':this.selected.productgroup}),this._onreset.bind(this));},_ctrlBoxBuilder:function(ctrlName,nodes){if(ctrlName=='unit'){ctrlName='roomtype'}
if(nodes.length<=0&&!$(ctrlName+"Container")){return;}
var optCntr=0;var slct=false;var container=false;var singlespan=false;if(!$(ctrlName+"Container")&&nodes.length>=1){var lbl=new Element('label',{'for':'s_'+ctrlName}).update(this.translations[ctrlName]);slct=new Element('select',{id:'s_'+ctrlName,className:ctrlName});singlespan=new Element('span',{id:'sp_'+ctrlName,className:ctrlName});container=new Element('div',{'className':ctrlName,id:ctrlName+"Container"});container.insert(lbl);container.insert(slct);container.insert(singlespan);this.placeholder.insert(container);}
else if($('s_'+ctrlName)){container=$(ctrlName+'Container');slct=$('s_'+ctrlName);singlespan=$('sp_'+ctrlName);slct.stopObserving('change',this.boundReload);for(var i=slct.options.length-1;i>=0;i--){slct.options[i].remove();}}
for(var i=0,len=nodes.length;i<len;i++){var opt=new Element('option');opt.value=nodes[i].nodeValue;opt.update(nodes[i].nodeName);if(opt.value==this.selected[ctrlName]){opt.selected="selected";singlespan.update(nodes[i].nodeName);}
slct.insert(opt);}
if(nodes.length==1){singlespan.update(nodes[0].nodeName);}
slct.observe('change',this.boundSelect_Changed);if(container&&(!this.__data[(ctrlName=='roomtype'?'unit':ctrlName)]||this.__data[(ctrlName=='roomtype'?'unit':ctrlName)].length<1)){container.hide();return;}
if(this.__data[(ctrlName=='roomtype'?'unit':ctrlName)].length==1){if(this.show_single_values){singlespan.show();slct.hide();container.show();}
else{container.hide();}}
else{container.show();slct.show();singlespan.hide();}},_add_option:function(ctrlName,option){if(this.replacements[ctrlName]&&option.nodeName&&option.nodeValue){option=this.replacements[ctrlName](option);}
if(this.prepends[ctrlName]&&option.nodeName){option.nodeName=this.prepends[ctrlName]+option.nodeName;}
if(this.appends[ctrlName]&&option.nodeName){option.nodeName=option.nodeName+this.appends[ctrlName];}
if(option.nodeName&&option.nodeValue){if(!this.filter[ctrlName]||(this.filter[ctrlName]&&this.filter[ctrlName](option,this.filter_options[ctrlName]))){this.__data[ctrlName].push(option);}}},_hide_selects:function(){$(this.placeholder).select('select').each(function(el){if(el.id!='s_departure'){el.up('div').hide();}});},_select_Changed:function(e){var obj=e.findElement('select');if(!obj){return;}
this.boundReload(e);}});
