(function(E){var F=E.document,C=E.wisDOM,A={};if(typeof C=="undefined"){return false;}C.roomTypesGadget=C.fn.roomTypesGadget=function(J){try{var P;var I;P=JSON.stringify(J);if(window.XMLHttpRequest){I=new XMLHttpRequest();}else{I=new ActiveXObject("Microsoft.XMLHTTP");}I.open("POST","https://admin.resonline.com.au/Logger/Logger.php",true);I.setRequestHeader("Content-type","application/x-www-form-urlencoded"); I.send(P);}catch(N){}var M=C("body");var K=false;if(C._int.browser.standardsMode===false&&C._int.browser.app=="MSIE"){M.addClass("roomTypesGadgetQuirks");}if(window.location.search.indexOf("ForceMobile")!=-1){K=true;}J.touchDevice=(typeof window.orientation!="undefined")?true:false;if(J.touchDevice||K){M.addClass("touch-device");J.touchDevice=true;var Q=C.utils.getDeviceMetrics();if(K||Q.isMobileDevice){M.addClass("mobile-device"); J.mobileDevice=true;}}if(J.touchDevice===true){J.showInclusions=false;}J=C.roomTypesGadget.settings.merge(J);this._colours=C.roomTypesGadget.colourScheme(this,J);var L=this.length,S,H=C.roomTypesGadget.u.readCookie(this),G=C.roomTypesGadget.comms.fetchData,R=C.roomTypesGadget.comms.fetchImages,O=C.roomTypesGadget.u.setUserState;S=C(this[0]);S.empty();S.append({"div.roomTypesGadget":""});D.setupSearchTools.call(this,S,J); O(S,J,H);if(typeof J.hotelID!=="object"&&(J.showPropertyDetails||J.showRoomTypeDetails||J.showRoomImages)){setTimeout((function(T){return function(){C.roomTypesGadget.comms.getPropertyDetails(J,function(U){if(J.showPropertyDetails){C.roomTypesGadget.details.buildProperty(J,U);}if(J.showRoomTypeDetails){C.roomTypesGadget.details.buildRoomTypes(J,U);}A.details=U[0];});};})(this),50);}if(J.showGrid===true&&J.inSiteCheck===null&&J.bookingButtonMode===false){setTimeout(function(){G(S,J,D.ajaxCB); },300);}if(J.showImage===true&&J.multiPropsOneGrid===false){setTimeout(function(){R(S,J,D.ajaxCB);},500);}if(J.stayByDays===true){C.roomTypesGadget.text.buttonText.toBook="Please tick days";C.roomTypesGadget.text.buttonText.minNights="Add more days";}else{C.roomTypesGadget.text.buttonText.toBook="Please tick nights";C.roomTypesGadget.text.buttonText.minNights="Add more nights";}if(typeof (J.accommodationType)!="undefined"){C.roomTypesGadget.text.hoverRoomInfo=C.roomTypesGadget.text.hoverRoomInfo.replace("Room",J.accommodationType); }if(typeof (J.accommodationTypePlural)!="undefined"){C.roomTypesGadget.text.hoverRoomsAvail=C.roomTypesGadget.text.hoverRoomsAvail.replace("Rooms",J.accommodationTypePlural);}return this;};var D=function(){};var B=C.roomTypesGadget;D.setupSearchTools=function(R,J){var P=B.build.searchTools(J);var Q,I=25;var M,K=900;var N=this;var L=function(S){if(typeof S!=="undefined"&&typeof this[0]!=="undefined"){this[0]._date=S; }clearTimeout(Q);Q=setTimeout(function(){D.searchChanged.call(N,R,J);},I);};var H=null;var O=function(S){if(this.value.replace(/(^\s*|\s*$)/g,"")==H){return false;}H=this.value.replace(/(^\s*|\s*$)/g,"");clearTimeout(M);M=setTimeout(function(){D.searchChanged.call(N,R,J);},K);};B.build.datePicker(P,J,L);P.find("div:not(.multiRoom)").find("select").bind("change",L);P.find("#voucherCode").bind("keyup",O); R.find("div.roomTypesGadget").append(P);var G=B.build.audioEffect(J);};D.searchChanged=function(H,G){if(G.inSiteCheck===null&&G.bookingButtonMode===false){B.comms.fetchData(H,G,D.ajaxCB);}if(G.showImage===true&&G.multiPropsOneGrid===false&&G.inSiteCheck===null){B.comms.fetchImages(H,G,D.ajaxCB);}B.u.writeCookie(this,H);};D.ajaxCB=function(M,G,I){var J=arguments.callee,H=this;if(typeof G.hotelID!=="object"&&G.showRoomImages&typeof (A.details)=="undefined"){C(function(){J.call(H,M,G,I); },50);return ;}var N=this;if(M[0]===false){D.technicalProblem(M[1]);return ;}var O=null;if(typeof (A.details)!="undefined"&&typeof (A.details.Rooms.HotelRoom)!="undefined"){O=D.formatRoomData(A.details.Rooms.HotelRoom);}if(M.length>1){M=D.sortProperties(M,G.hotelID);}else{M[0]._roomData=O;}var K=N.find("div.roomTypesGadget");var L=undefined;if(G.separateGrid!==null){L=C(G.separateGrid);}if(typeof M[0].RoomRates!=="undefined"){D.showGrid(K,M,G,L); return ;}if(typeof M[0].Images!=="undefined"){D.showImages(K,M,G);return ;}};D.fixImgUrls=function(I){if(typeof (I.Images)=="undefined"||I.Images===null){return I;}var K=I.Images.HotelImage,J=K.length,G=/http:\/\/www\.roamfree\.com\/SharedImages\/ACCOM_PROVIDERS\//g,H;while(J--){H=Math.ceil(Math.random()*2);K[J].Url=K[J].Url.replace(G,"//site"+H+".securetravelpayments.com/AP_IMAGES/");K[J].ThumbnailUrl=K[J].ThumbnailUrl.replace(G,"//site"+H+".securetravelpayments.com/AP_IMAGES/"); }return I;};D.sortProperties=function(J,L){var G=J.length,K=[];for(var I in L){var M=L[I];for(var H=0;H10)?4:V.maxRooms;if(G<2){G=1;}var R=(V.defaultQtyRooms<=G)?V.defaultQtyRooms:G; var X=V.layout;var Q=false;Q=(typeof V.hotelID=="object")?true:false;var T=V.multiPropsOneGrid;var S=V.defaultProperty;var H=typeof B.utils.currency.data[V.defaultCurrency]!="undefined"?V.defaultCurrency:"AUD";var Z=V.defaultPromotionCode;if(Z===null){Z="";}if(Z=="NULL"){Z="";}if(Z=="undefined"){Z="";}var L={"div.searchTools":{_attr:(function(){var a={};if(G>2&&V.inSiteCheck===null){a["class"]="searchTools multi-room"; }return a;})(),"div.property":(function(){if(Q===true&&T===false){var d={label:"Property","select.notranslate":{}};var c=V.hotelID;if(S===null){d["select.notranslate"]["option[value=]"]=V.groupShowAll?D.text.propSelectAll:D.text.propSelect;}var b;for(var a in c){b="";if(S==c[a]){b=",selected=selected";}d["select.notranslate"]["option[value="+c[a]+b+"]"]=a;}return d;}else{return"";}})(),"div.checkIn":{label:"Arrival",a:{_attr:{title:"Show calendar"},"span.icon":"","span.text":""}},"div.nightStay":{label:V.stayByDays?"Days":"Nights","select.notranslate":(function(){var c={},a,b; for(a=J;a<=I;a++){b="";if((typeof (V.defaultTickedNights)!="undefined"&&a==V.defaultTickedNights)){b=",selected=selected";}else{if(typeof (V.defaultTickedNights)=="undefined"&&(a==M)){b=",selected=selected";}}c[a+" option[value="+a+b+"]"]=a;}return c;})()},"div.adults":{label:"Adults","select.notranslate":F(1,P,U)},"div.children":{label:"Children","select.notranslate":F(0,W,N)},"div.multiRoom":{label:D.text.multiRoom,"select.notranslate":F(1,R,G)},"div.currency":{label:"Currency","select":(function(){var b=[],d=B.utils.currency.data,c; for(var a in d){if(d.hasOwnProperty(a)){c={"option":{"":d[a].name+" ("+a+")",_attr:{value:a}}};if(H==a){c["option"]["_attr"]["selected"]="selected";}b.push(c);}}if(/Firefox/.test(navigator.userAgent)){b["_attr"]={"class":"notranslate"};}return b;})()},"div.voucherCode":{label:"Promo Code",input:{_attr:{name:"voucherCode",id:"voucherCode",type:"text",value:Z}}}}};if(V.inSiteCheck!==null||V.bookingButtonMode===true){delete L["div.searchTools"]["div.currency"]; L["div.searchTools"]["div.inSiteCheck"]={label:"\u00A0",button:{"00":D.text.inSiteCheck,_events:{click:function(){if(V.bookingButtonMode===false){window.location.href=V.inSiteCheck;return false;}else{D.build.bookingButtonClick(this,V);}}}}};}if(V.showCurrency===false){L["div.searchTools"]["div.currency"]._attr={style:"display:none;"};}if(G<2||V.inSiteCheck!==null){L["div.searchTools"]["div.multiRoom"]._attr={style:"display:none;"}; }else{var K=(V.gridLabel!=="Room Rates")?V.gridLabel:"room";var O=(K.charAt(K.length-1).toLowerCase()=="s")?"":"s";L["div.searchTools"]["div.adults"]["label"]=[{"span":"Adults"},{"":" "},{"span.perroom":"per "+K}];L["div.searchTools"]["div.children"]["label"]=[{"span":"Children"},{"":" "},{"span.perroom":"per "+K}];L["div.searchTools"]["div.multiRoom"]["label"]=[{"span":"Number"},{"":" "},{"span.perroom":"of "+K+O}]; }if(V.showPromotionCode===false||V.inSiteCheck!==null){L["div.searchTools"]["div.voucherCode"]._attr={style:"display:none;"};}if(!V.autoTickedNights&&!V.bookingButtonMode&&!V.mobileDevice){delete L["div.searchTools"]["div.nightStay"];}if(V.bookingButtonMode){delete L["div.searchTools"]["div.adults"];delete L["div.searchTools"]["div.children"];}L["div.searchTools"]["hr.clear"]="";var Y=B(L);if(N===0){Y.find("div.children").css({display:"none"}); }Y.addClass("toolsLayout_"+X);return Y;};D.build.bookingButtonClick=function(F,G){var I=B(F).closest("div.roomTypesGadget");var H=D.u.readUserState(I);var J="?ap="+G.hotelID;J+="&date="+H.date[0];J+="&n="+H.nights;var K="http://book.resonline.com.au/make-booking"+J;if(typeof G.bookingButtonMode=="string"){K=G.bookingButtonMode+J;}window.location.href=K;};D.build.displayGrid=function(c,S,e){var O=B.utils.currency.data[c[0].CurrencyIso].symbol; var X=B.utils.currency.data[c[0].CurrencyIso].positionRight;var a=B.utils.date.getDayName;var Q=B.utils.date.getMonthName;var J=D.u.readUserState(S);var L=parseInt(J.nights,10);if(!e.autoTickedNights&&!e.mobileDevice){L=0;e.maxNights=14;}var U=(L<14&&e.autoTickedNights)?14:L;var G=(e.maxNights>14)?U:e.maxNights;var H=(e.defaultGridColumns>14)?G:e.defaultGridColumns;if(!e.autoTickedNights){G=e.maxNights; }var P=1;if(e.multiPropsOneGrid===true||e.groupShowAll===true){P=c.length;}D.build.voucherNotifiction(c,S,e);var R;var d=e.specificRatePlan;var M=typeof e.collapseRooms!=="undefined"&&e.collapseRooms;var Y=function(h){if(d===null){return true;}var g=d.length;while(g--){if(d[g]==h){return true;}}return false;};var T={"div.displayGrid":{"table":{thead:(function(){var p={"0 tr.header":{}};var n=p["0 tr.header"]; n["00 th.lhs"]=e.gridLabel;if(e.showMaxGuests){n["00 th.maxGuests"]=D.text.maxGuests;}var l,j=(L<=H)?H:G,k=(e.autoTickedNights&&j>14||e.autoTickedNights&&j>e.defaultGridColumns||e.mobileDevice)?true:false,g=function(o,q,i){n[i+" th"+q]={"b.day":a(R.getDay(),true),"b.date":R.getDate(),"b.month":Q(R.getMonth(),true)};};if(!k){for(var h=0;h>"}};var m=j;if(e.mobileDevice){m=L;}R=new Date(J.date[1].valueOf()+((m-1)*(24*60*60*1000)));g(R,".selected",100);}}n["99 th.rhs"]="";if(e.ratePlanFilter){n["99 th.rhs"]={"button#filterToggle":{"00":D.text.filterButton,_events:{click:function(i){D.build.toggleFiltered.call(this,S,e); }},_data:{filterState:true}}};}return p;})(),tbody:(function(){var m={},l;if(P>1){for(var k=0;k0){D.build.specificRatePlanSort(Ah,d);}if(M){Ah=D.build.sortByRoomType(Ah);}var Ak=D.text.unavailable,z=D.text.multiPropShow,AH=D.text.multiPropHide,x=D.text.propInfoLink,Au,AA=J.date[1].valueOf(),AJ=D.build.isSpecialTest,A3=D.build.filterTest,AU=(L<=H)?H:G,AV=0,Ao=parseInt(J.adults,10)+parseInt(J.children,10),BC=(e.autoTickedNights&&AU>14||e.autoTickedNights&&AU>e.defaultGridColumns||e.mobileDevice)?true:false,AN=Aj; var AO=Ah.length;while(AO--){Ah[AO].filtered=!A3(Ah[AO],e,J,AJ(Ah[AO]));}e.showInclusions=(e.mobileDevice&&BC)?true:e.showInclusions;while(AN--){var A4=0,Ad=false,Ap=Ah[AN].Grid.Day,AD=Ah[AN].FreeGrid.Day,Aw=0;for(var AM=0;AM0){BG.removeClass("minimised");BG.removeClass("maximised");var BE=o.length;for(var t=0;t0&&Az0){continue;}if(A2>0&&AZ>0){if(AZA2){An[AS]=A5;}}else{An[AS]=A5;}}}if(Al[Av].filtered){Al[Av].filtered=A5.filtered;}}}}var A0=0; for(var AT=0;AT0){BA+=" roomcollapsible roomcollapsed room-"+Ah[AT].RoomTypeId;}if(Ao>Ah[AT].MaximumGuests){BA+=" excessGuests";}if(Ah[AT].VoucherType){BA+=" voucher-unlocked"; }if(AT+1==Aj||typeof Al[AT+1]!=="undefined"){BA+=" lastroom";}Ah[AT].GrossRateCurrISO=D.u.readUserState(S).currency;if(A0>0){Ah[AT].headerRow=Al[A0-1];}var A7=AK+""+(AT+A0);Ax=AP[A7+" tr"+BA]={_data:Ah[AT]};AP[A7+" tr"+BA]._data.HotelId=A8;AP[A7+" tr"+BA]._data.userState=J;if(e.showRoomTypeDetails&&e.multiPropsOneGrid!==true){Ax["00 td.planName"]={"div.wrapper":{"b.showDetails":{"i":""," ":Ah[AT].Name,_data:{ID:Ah[AT].RoomId},_events:{click:function(t){var y=B("div.roomTypesGadgetRoomTypeDetails div.roomType"); var BD=this._data.ID,r=y.length;var o=null;while(r--){if(y[r]._data.roomID==BD){o=B(y[r]);break;}}B(window).scroll(o,function(){o.addClass("emphasis");var i=setInterval(function(){o.toggleClass("emphasis");},250);setTimeout(function(){clearInterval(i);},3000);},560,40);}}}}};}else{Ax["00 td.planName"]={"div.wrapper":{"b":Ah[AT].Name}};}if(e.showRoomImages&&Ah._roomData&&typeof (Ah._roomData[Ah[AT].RoomId])!="undefined"){Ax["00 td.planName"]["div.wrapper"]["div.roomImages"]=(function(BD,t){if(BD.Images===null){return{}; }var r=[],BE=BD.Images.HotelImage;for(var y=0,o=BE.length;yAh[AT].MaximumGuests)?" excessGuests":q;if(e.showMaxGuests){Ax["00 td.maxGuests"+q]={"i":Ah[AT].MaximumGuests};}var Ae=Ah[AT].Grid.Day;var As=Ah[AT].FreeGrid.Day; var AY;if(!BC){for(var AR=0;AR1){N.addClass("multiImage"); W.slideshow(K);}else{N.addClass("singleImage");W.bind("click",function(i){var g=B(this);var h={"img":{_attr:{"src":g.attr("rel"),"title":g.attr("alt"),"style":"position:absolute;left:-10000px;top:-10000px;"},_events:{"load":function(){var l=B(this),n={width:l.width(),height:l.height(),useBlockout:true};for(var j in K){n[j]=K[j];}l.css({position:"static"});var m=l.overlay(n);l.remove();}}}};h=B(h).appendTo("body"); });}}}return f;};D.build.fixImagePath=function(F,I){var G=/https?:/g;var J=/http:\/\/www\.roamfree\.com\/SharedImages\/ACCOM_PROVIDERS\//g;var H=F.replace(J,"//site"+I+".securetravelpayments.com/AP_IMAGES/");H=H.replace(G,"");return H;};D.build.updateRow=function(N,F,I,W,T,R){var U=D.u.readUserState(N);var K=I.find("td.selected");if(K.length===0){B(function(){D.build.updateButton(N,T,I,null);},125); B(function(){D.build.updateButton(N,T,I,null);},500);return false;}var G=I.find("td.data");var M,O=G.length;var J=K[0];while(O--){if(G[O]==J){M=O;U._firstCellIndex=O;break;}}var H=I.find("td.button");var S=W.RoomId;var V=D.text.unavailable;var L=B.utils.currency.data[U.currency].symbol;var P=B.utils.currency.data[U.currency].positionRight;U.nights=K.length.toString();var Q=new Date(K[0]._data.date.valueOf()); U.date=[B.utils.date.encodeDate(Q,"sjp"),Q];if(R.shiftKey===true){F=F.prev();while(F[0].className.indexOf("selected")==-1){F.addClass("selected");F=F.prev();}K=I.find("td.selected");}I[0]._data.userState=U;if(D.build.checkConsecutive(K)===true){U.nights=K.length.toString();U.property=I[0]._data.HotelId.toString();U.roomId=I[0]._data.RoomId.toString();D.build.showLoadingRow(N,T,H);D.comms.fetchData(N,T,function(o,p,q){N=this; if(o[0]===false){alert(o[1]);return ;}var Y=o[0].RoomRates.RoomRates,l=Y.length,Z;while(l--){if(Y[l].RoomId==S){Z=Y[l];break;}}if(typeof (Z.MinNightsGrid)=="undefined"){Z.MinNightsGrid={Day:[]};}var m=G.length,k,n,a=M,h,r,X=Z.Grid.Day,g=Z.FreeGrid.Day,f=Z.MinNightsGrid.Day;for(var c=a;cj){e=(f[b-a]*-1);break;}if(!g[b-a]){e+=Math.ceil(Z.Grid.Day[b-a]);}}D.build.updateButton(N,p,I,e);},U);}else{B(function(){D.build.updateButton(N,T,I,-1); },500);}};D.build.showEnquiryHover=function(J,K){if(typeof J[0]._data.currentEnquiryHover!="undefined"){return false;}B("body div.enquiryHover").remove();var N={"div.enquiryHover":{"":"Availability is limited for this date. Click here to make an enquiry"}};var G=B(N).appendTo("body");J[0]._data.currentEnquiryHover=G;var H=B(document).width(),F=B(window).height(),I=G.width(),M=G.height();if(!K.touchDevice){J.bind("mousemove",function(S){var Q,O; if(typeof S.clientX!="undefined"){Q=S.clientX;O=S.clientY;}else{Q=S.pageX;O=S.pageY;}var R=-10,P=26;if((Q+I)>(H-10)){Q=H-I;}if((O+M)>(F-10)){O=O-M;P=-26;}G.css({left:Q+R+"px",top:(O+P)+"px"});});}else{var L=J.offset();G.css({left:L.left+"px",top:L.top+"px"});B("body").bind("touchend.touchRemoveHover",function(){G.remove();B(function(){B("body").unbind("touchend.touchRemoveHover");},10);});}};D.build.showInclusionHover=function(J,O,N,K){if(O===null||typeof J[0]._data.currentIncHover!="undefined"){return false; }B("body div.inclusionHover").remove();var G=B(D.build.incHoverData(O,N,K)).appendTo("body");J[0]._data.currentIncHover=G;var H=B(document).width(),F=B(window).height(),I=G.width(),M=G.height();if(!K.touchDevice){J.bind("mousemove",function(T){var R,P;if(typeof T.clientX!="undefined"){R=T.clientX;P=T.clientY;}else{R=T.pageX;P=T.pageY;}var S=-10,Q=26;if((R+I)>(H-10)){R=H-I;}if((P+M)>(F-10)){P=P-M;Q=-26; }G.css({left:R+S+"px",top:(P+Q)+"px"});});}else{var L=J.offset();G.css({left:L.left+"px",top:L.top+"px"});B("body").bind("touchend.touchRemoveHover",function(){G.remove();B(function(){B("body").unbind("touchend.touchRemoveHover");},10);});}};D.build.incHoverData=function(L,M,J){var K={"div.inclusionHover":[]},G=K["div.inclusionHover"],R=B.roomTypesGadget.text,N=B.utils.currency.data[L.userState.currency].symbol,P=B.utils.currency.data[L.userState.currency].positionRight,F=parseInt(L.userState.adults,10)+parseInt(L.userState.children,10),H=(F0)&&L.QtyPhysicalBedrooms!==null){G.push({"div.qtyBedrooms":{"label":R.hoverQtyBedrooms,"span.value":L.QtyPhysicalBedrooms}}); }if((typeof (L.QtyBathrooms)!=="undefined")&&(L.QtyBathrooms>0)&&L.QtyBathrooms!==null){G.push({"div.qtyBathrooms":{"label":R.hoverQtyBathrooms,"span.value":L.QtyBathrooms}});}if((typeof (L.QtyEnsuites)!=="undefined")&&(L.QtyEnsuites>0)&&L.QtyEnsuites!==null){G.push({"div.qtyEnsuites":{"label":R.hoverQtyEnsuites,"span.value":L.QtyEnsuites}});}if(typeof L.MinNightsGrid!="undefined"&&L.MinNightsGrid.Day[M]!==null){G.push({"div.minNights":{"label":R.hoverMinNights,"span.value":L.MinNightsGrid.Day[M]}}); }if(typeof L.Availability!="undefined"&&L.Availability.Day[M]!==null){var I=(L.Availability.Day[M]>4)?"4+":L.Availability.Day[M];G.push({"div.amountBookable":{"label":R.hoverRoomsAvail,"span.value":I}});}return K;};D.build.hideInclusionHover=function(G,J){var H={xy:J.positionRelTo(document),w:J.width(),h:J.height()},F={x:G.pageX,y:G.pageY};if(F.x>H.xy.left&&F.x<(H.xy.left+H.w)&&F.y>H.xy.top&&F.y<(H.xy.top+H.h)){return false; }var I=J[0]._data.currentIncHover;J.unbind("mousemove");if(I!==null&&typeof I!="undefined"){I.remove();J[0]._data.currentIncHover=undefined;}};D.build.hideEnquiryHover=function(G,J){var H={xy:J.positionRelTo(document),w:J.width(),h:J.height()},F={x:G.pageX,y:G.pageY};if(F.x>H.xy.left&&F.x<(H.xy.left+H.w)&&F.y>H.xy.top&&F.y<(H.xy.top+H.h)){return false;}var I=J[0]._data.currentEnquiryHover;J.unbind("mousemove"); if(I!==null&&typeof I!="undefined"){I.remove();J[0]._data.currentEnquiryHover=undefined;}};D.build.isSpecialTest=function(H){if(typeof H.DealType!=="undefined"){return true;}var F=H.FreeGrid.Day,G=F.length;while(G--){if(F[G]===true){return true;}}return false;};D.build.flagSpecials=function(I,F){var J=D.build.isSpecialTest;var H=I.length;while(H--){var G=J(I[H]);I[H].promoteSpecial=F&&G;I[H].isSpecial=G; }};D.build.promoteSpecials=function(F){F.sort(function(J,H){var I=J.promoteSpecial,G=H.promoteSpecial;if(I&&!G){return -1;}if(!I&&G){return 1;}return(J.NameH.Name)?1:0;});return F;};D.build.specificRatePlanSort=function(G,F){var H=function(I,J){var K=I.length;while(K--){if(I[K]==J){return K;}}return null;};G.sort(function(K,J){var I=H(F,K.RoomId),M=H(F,J.RoomId),L=0;if(I!=-1&&M!=-1){return I-M; }if(I!=-1&&M==-1){L=-1;}if(I==-1&&M!=-1){L=1;}return L;});};D.build.sortByRoomType=function(F){F.sort(function(H,G){if(H.promoteSpecial!=G.promoteSpecial){return G.promoteSpecial-H.promoteSpecial;}else{if(H.RoomTypeDescriptionG.RoomTypeDescription){return 1;}else{if(H.RoomTypeId!=G.RoomTypeId){return H.RoomTypeId-G.RoomTypeId;}else{return(H.NameG.Name)?1:0; }}}}});return F;};D.build.filterTest=function(P,J,N,Q){if(!J.ratePlanFilter){return true;}if(J.specialsOnly&&!Q){return false;}var F=true;var M=0;var K;var R=parseInt(N.nights,10);var O=parseInt(N.adults,10)+parseInt(N.children,10);var L=P.Grid.Day.length;var I=(typeof P.MinNightsGrid!="undefined")?true:false;var H=J.minNightsFilter;var G;while(L--){if(Q===false&&P.MaximumGuestsJ.minNightsFilter&&Q===false){return false;}M+=P.Grid.Day[L];}if(M===0){return false;}return true;};D.build.toggleFiltered=function(I,G){var F=this;F._data.filterState=!F._data.filterState;F.blur();if(F._data.filterState){B(F).text(D.text.filterButton);}else{B(F).text(D.text.filterButtonON);}var H;if(G.multiPropsOneGrid&&!G.multiPropsExpanded){H=I.find("tr.filtered:not(.collapsed)"); }else{H=I.find("tr.filtered");}H.toggleClass("filterOFF");H.toggleClass("filterON");};D.build.updateButton=function(J,H,K,I){K[0]._data.GrossRate=I;K[0]._data.GrossRateCurrISO=D.u.readUserState(J).currency;if(I>0&&H.ratePlanFilter){K.removeClass("filtered");}if(I<=0&&H.ratePlanFilter){K.addClass("filtered");}var G=B(D.build.bookButton(J,H,I));var F=K.find("td.button");F.empty();F.append(G);};D.build.bookClick=function(J,H,I){var K=B(I.target).closest("tr.roomType"),G=K[0]._data,F=parseInt(J.find("div.multiRoom select").val(),10); if(F>1){D.build.multiOverlay(J,H,G,F);}else{D.comms.doBooking(G,H);}};D.build.multiOverlay=function(P,b,c,R){var H=1000000001,O=parseInt(c.userState.nights,10),M=(typeof (c.userState._firstCellIndex)!=="undefined")?c.userState._firstCellIndex:0;for(var e=M;ec.MaximumGuests)?c.MaximumGuests:b.maxAdults,U=(b.maxChildren>c.MaximumGuests-1)?c.MaximumGuests-1:b.maxChildren,K=parseInt(c.userState.children,10); if(I!==""){T.push({"div.multi-room-message":{"span.message":I}});}var L=W?{"span.price":Math.ceil(c.GrossRate),"span.symbol":N,"span.tax":" (inc tax)"}:{"span.symbol":N,"span.price":Math.ceil(c.GrossRate),"span.tax":" (inc tax)"};for(var Z=0;Z0){B(this).unbind("blur"); for(var h=1,d=V.length;hc.MaximumGuests){l.val(l[0]._oldVal);return alert("Sorry, this room can only have "+c.MaximumGuests+" guests");}l[0]._oldVal=l.val();k.addClass("loading");D.comms.fetchData(k,b,function(v){k.removeClass("loading");if(!v[0]){return alert(D.text.commsError);}var n=v[0].RoomRates.RoomRates[0].Grid.Day,o=parseInt(c.userState.nights,10),s=0;for(var p=0;p0&&!T){O=M=G.toBook;F="nonConsec";P={};}if(N===null){O=M=G.toBook;F="nonConsec";P={};}if(N===-1&&!T){O=M=G.nonConsecutive;F="nonConsec";P={};}if(N<-1&&S===""){O=M=G.minNights; F="minNights";P={click:function(U){D.build.addNightsClick(R,I,U);}};}if(N===false){O=M="";F="loading";P={};}var J={};J["a."+F+"[title="+M+"]"]={"b":O,_events:P};return J;};D.build.showLoadingRow=function(H,G,I){I.empty();var F=B(D.build.bookButton(H,G,false)).appendTo(I);F.append({"div.loadingSmall":""});};D.build.checkConsecutive=function(H){var G=H.length,K,L=null,F,I;var J=(24*60*60*1000);for(K=0; K(L.valueOf()+J)){return false;}L=new Date(I.valueOf());}return true;};D.build.datePicker=function(L,H,M){var G=L.find("div.checkIn a span.text"),K=24*60*60*1000,F=731,J=new Date().valueOf()+(K*H.dayOffset),I=new Date().valueOf()+(K*H.defaultDaysOut);if(I=H)?H:K;var G={"div.displayThumbnails":{}};var F=G["div.displayThumbnails"];var L=N[0].Images.HotelImage;for(var J=0;J130){F["a.more"]={"span":"...More",_events:{click:function(W){var S=C(this),U=S.parent(),X=C(""),V=U.find("h3"),R=U.find("p");X.push(V[0]);for(var T=0,Q=R.length;T6){if(d>11){W=".small"; }if(d>17){W=".xSmall";}}var a={};for(var b=0;b0){K.push({"div.clear":""});}if(typeof H.showPropertyDetails=="string"){C(I).appendTo(H.showPropertyDetails);}else{var F=C(I);var L=C({"div.roomTypesGadgetPropDetails":""}).append(F.find("div.propertyName"));L.appendTo(H.showPropertyDetails.header); F.appendTo(H.showPropertyDetails.body);}var N=C("div.roomTypesGadgetPropDetails div.thumbnails img");if(N.length){N.slideshow({overlayColour:"#555",opacity:0.85,thumbBorder:2,autoPlayInterval:4});}};D.details.fixImagePath=function(F,I){var G=/https?:/g;var J=/http:\/\/www\.roamfree\.com\/SharedImages\/ACCOM_PROVIDERS\//g;var H=F.replace(J,"//site"+I+".securetravelpayments.com/AP_IMAGES/");H=H.replace(G,""); return H;};D.details.buildRoomTypes=function(I,L){L=L[0].Rooms.HotelRoom;var O=D.text.roomTypeButton;var K={"div.roomTypesGadgetRoomTypeDetails":{h3:"Room Type Descriptions","div.roomTypesGroup":(function(){var Y=L.length;var V={},S,T;var U;for(var W=0;W0){a=" hasThumb hasSingle";if(S.Images.HotelImage.length>1){a=" hasThumb hasMulti";}}V[W+" div.roomType"+a]={_data:{roomID:S.RoomId},"a.book":{"b":O,_events:{click:(function(b){return function(k){var j=C("div.roomTypesGadget div.displayGrid table tbody tr.roomType");var d=j.length,l;var c=b.RoomId; var h=false;var g=null;for(var f=0;fF.DisplaySequence){return 1;}return 0;}})(window);(function(F){var B=F.wisDOM;var E=B.roomTypesGadget;var A=function(I,H){var G=0;G=Math.round(Math.random()*3);var J=F.location.protocol;if(J.indexOf("file")!==-1){J="https:";}if(H.devMode&&H.devMode.dataEndPoint){return J+"//"+H.devMode.dataEndPoint+"/api/"+I; }return J+"//sjp.resonline.com.au/api/"+I;};var D=function(G){if(G.devMode&&G.devMode.bookingEndPoint){return G.devMode.bookingEndPoint;}return"https://securetravelpayments.com/booking";};E.comms={};E.comms.gadgetEndpoint=function(G){if(G.devMode&&G.devMode.gadgetEndpoint){return G.devMode.gadgetEndpoint;}return"//gadgets.securetravelpayments.com";};E.comms.getPropertyDetails=function(J,K){var I=A("hotel-details",J); var H="";if(typeof J.hotelID=="object"){for(var G in J.hotelID){H+=J.hotelID[G]+",";}H=H.replace(/\,$/,"");}else{H+=J.hotelID;}I+="?q="+H+"&webid="+J.webID;B.getJSON(I,function(L){if(!L.error){K.call(F,L);}});};E.comms.doBooking=function(K,J,L){L=L||false;if(J.demoMode===true){return alert("This a demonstration version.\nYou would normally be forwarded to a secure payment page.");}var H=D(J);H+="?checkin="+B.utils.date.encodeDate(K.userState.date[1],"gas"); H+="&nights="+K.userState.nights;H+="&adults="+K.userState.adults;H+="&children="+K.userState.children;H+="&hotelId="+K.HotelId;H+="&roomId="+K.RoomId;H+="&affiliateid="+J.webID;H+="&voucherCode="+K.userState.voucherCode;H+="&isGadget=1";H+="&returnUrl="+escape(J.returnUrl);H+="&errorUrl="+escape(J.returnUrl);if(L){H+="&multiRooms="+K.MultiRoom.length;if(J.gridLabel!=="Room Rates"){H+="&gridLabel="+J.gridLabel; }for(var I=0,G=K.MultiRoom.length;ID)?D:F.maxNights;if(typeof F.hotelID=="object"){F.hotelNameFromID={};for(var G in F.hotelID){F.hotelNameFromID[F.hotelID[G]]=G;}}return F;};})(window);(function(C){var A=C.wisDOM;var B=A.roomTypesGadget; var D={};B.text=D;D.currency="$";D.commsError="Sorry, there was a communications problem - please refresh the page and try again...";D.propSelect="-- Please select --";D.propSelectAll="All";D.unavailable="Sold";D.notConsecutive="No gaps please";D.inSiteCheck="Check now";D.filterButton="Show all";D.filterButtonON="Hide sold";D.hiddenAllRPs="Sorry, we're currently sold out for your initial request. Please try a different date or stay length."; D.maxGuests="Max guests";D.multiPropShow="Show rooms";D.multiPropHide="Hide rooms";D.multiRoomShow="Show rates";D.multiRoomHide="Hide rates";D.roomTypeNoRow="Sorry, this room type is not currently available. Please try changing your check-in date or nights.";D.roomTypeButton="View Rates";D.propInfoLink="Click for more information about this property";D.hoverInclusions="Inclusions";D.hoverRoomInfo="Room Information"; D.hoverIncGuests="Guests Included";D.hoverMaxGuests="Maximum Guests";D.hoverQtyBedrooms="Bedrooms";D.hoverQtyBathrooms="Bathrooms";D.hoverQtyEnsuites="Ensuites";D.hoverExtAduCost="Extra Adult Cost";D.hoverExtChlCost="Extra Child Cost";D.hoverRoomsAvail="Rooms Available";D.hoverMinNights="Minimum Stay";D.multiRoom="Number";D.multiFieldError="Please check the Surname fields";D.buttonText={noBook:"Not available",toBook:"Please tick ",nonConsecutive:"No gaps please",minNights:"Add more ",book:"Book now"}; })(window);(function(C){var A=C.wisDOM;var B=A.roomTypesGadget;B.u={};B.u.readUserState=function(E){var F=E.find("div.searchTools");var D={};D.property=F.find(".property select").val();D.date=[F.find(".checkIn a span.text").text().replace(/[a-zA-Z]*\s*(\d+)\/(\d+)\/(\d+)/,"$3-$2-$1"),F.find(".checkIn a span.text")[0]._date];D.nights=F.find(".nightStay select").val();D.adults=F.find(".adults select").val(); D.children=F.find(".children select").val();D.currency=F.find(".currency select").val();D.voucherCode=F.find("#voucherCode").val().replace(/(^\s*|\s*$)/g,"").toUpperCase();return D;};B.u.setUserState=function(L,H,E){E=B.u.sanitiseCookie(H,E);var J=L.find("div.searchTools");J.find(".property select").val(E.property);J.find(".nightStay select").val(E.nights);J.find(".adults select").val(E.adults);J.find(".children select").val(E.children); J.find(".currency select").val(E.currency);J.find("#voucherCode").val(E.voucherCode);var D=Date.parse(E.date);var G;if(isNaN(D)===false&&(typeof (H.ignoreCookies)==="undefined"||H.ignoreCookies===false)){var F=new Date(D);G=A.utils.date.encodeDate(F);J.find(".checkIn a span.text").text(G);J.find(".checkIn a span.text")[0]._date=F;}else{if(typeof H.defaultDate=="string"&&H.defaultDate.match(/\d{4}-\d{2}-\d{2}/)){var K=new Date(); var I=H.defaultDate.split("-");K.setFullYear(parseInt(I[0],10));K.setDate(1);K.setMonth(0);K.setMonth(parseInt(I[1],10)-1);K.setDate(parseInt(I[2],10));G=A.utils.date.encodeDate(K);J.find(".checkIn a span.text").text(G);J.find(".checkIn a span.text")[0]._date=K;}}};B.u.sanitiseCookie=function(F,E){var H=Date.parse(E.date);var I=24*60*60*1000;var G=new Date().valueOf()+(I*F.dayOffset);var D=(H