(function(a){a.fn.availability=function(v){var h="div:first",l="right-arrow-disabled",k="left-arrow-disabled",g="none",n="propertyRoomName",d="",f="#",e=true,j="isPreviousRequested",c=false,i="isNextRequested",m="containerWidth",b="options",o=this.selector;return this.each(function(){var l='input[name="xDateIn"]',k="block",A=" td.propertyRoomName",z=" td.rate, #",y="Previous",x="absolute",h=a(this),w=a(h.parent()),E,D,F,B,C,G=w.width(),H;h.data(b,a.extend(u(),v));h.data(m,G);h.data(i,c);h.data(j,c);w.css({position:"relative",height:h.outerHeight(e)});h.css({position:x});E=a(f+h.data(b).previousLinkContainerID);D=a(f+h.data(b).nextLinkContainerID);E.append(a("<a>").addClass("left-arrow left-arrow-disabled").text(y).attr("title",y).attr("href",f).click(function(){t(h);return c}));D.append(a("<a>").addClass("right-arrow right-arrow-disabled").text("Next").attr("title","Next").attr("href",f).click(function(){s(h);return c}));if(h.data(b).loadOnInit)r(h,h.data(b).initialDate,d,d);else q(h);if(h.data(b).hoverID.length>0){C=a(f+h.data(b).hoverID);C.css({position:x,"z-index":999,width:h.data(b).getBest?300:150});a(o+z+w.parent().attr("id")+A).live("mouseover",function(){var c=a(this),d=c.position(),e=w.position(),b={display:k};if(c.hasClass(n)){b.top=d.top+30;b.left=d.left+(c.width()-30)}else{b.top=d.top+e.top+30;b.left=d.left+e.left-w.scrollLeft()}C.html(a("div div.hover-content",c).html());C.css(b)});a(o+z+w.parent().attr("id")+A).live("mouseout",function(){C.css({display:g})})}if(h.data(b).isSelectable){if(h.data(b).formTableID.length>0){a.browser.mozilla&&a("form").attr("autocomplete","off");F=a(h.data(b).formTableID);a(o+" td,"+o+" th").live("click",function(){var l=a(this).prevAll().length,d,i,b,f,j;a("tr",h).each(function(n){var m="disabled",h="selected";d=a(this);a("td,th",d).eq(l).toggleClass(h);if(j==null)j=a("td,th",d).eq(l).hasClass(h);if(n>1){$formTr=a("tr",F).eq(n-2);i=a("div.actions",$formTr);b=a("input[type=submit]",i);f=a("a",i);a("td form div.nightCheckboxes input:checkbox",$formTr).eq(l).attr("checked",j);if(a("td.selected",d).length==0||a("td.selected div.R, td.selected div.S",d).length>0){b.attr(m,e);b.css({display:g});f.css({display:k})}else{b.attr(m,c);b.css({display:k});f.css({display:g})}}})})}}else if(h.data(b).bookFormContainerID.length>0){B=a(f+h.data(b).bookFormContainerID+" form");a(o+" td,"+o+" th").live("click",function(){a(l,B).val(a("div.date",this).text());B.submit()});a(":submit",B).click(function(){var b;if(a.trim(h.html()).length>0){b=Math.round(w.scrollLeft()/p(h))+3;a(l,B).val(a("tr:eq(1) td:eq("+b+") div.date",h).text())}return e})}});function u(){return {loadOnInit:e,isSelectable:c,formTableID:d,roomNamesTableID:d,previousLinkContainerID:"previousLinkContainer",nextLinkContainerID:"nextLinkContainer",bookFormContainerID:d,hoverID:d,dataUrl:d,method:d,brandID:0,channelID:0,locationID:0,propertyID:0,numAdults:2,numChildren:0,initialDate:d,getBest:e,getConfigs:c,nights:[]}}function p(b){return a("tr:first td,th:first",b).outerWidth(e)}function q(c){var y=a(f+c.data(b).previousLinkContainerID),x=a(f+c.data(b).nextLinkContainerID),w=a("a",y),v=a("a",x),q,n=a(c.parent()).scrollLeft(),s=c.outerWidth(e)-(c.data(m)+n),t=p(c),g,u,o;if(c.position().left<0)w.removeClass(k);else w.addClass(k);if(s>0)v.removeClass(l);else v.addClass(l);if(!c.data(i)&&s<=t){g=c.data(b).nights;r(c,d,g[g.length-1],d);c.data(i,e)}if(!c.data(j)&&n<=t){g=c.data(b).nights;r(c,d,d,g[0]);c.data(j,e)}if(c.data(b).isSelectable){u=c.data(m)+n;a("tr:first td.selected",c).each(function(){q=a(this);o=q.position().left;(o<n||o>=u)&&a(h,q).click()})}}function t(c){!a(f+c.data(b).previousLinkContainerID+" a").hasClass(k)&&a(c.parent()).animate({scrollLeft:"-="+p(c)},"fast","linear",function(){q(c)})}function s(c){!a(f+c.data(b).nextLinkContainerID+" a").hasClass(l)&&a(c.parent()).animate({scrollLeft:"+="+p(c)},"fast","linear",function(){q(c)})}function r(d,m,l,k){var o=Math.random();a.getJSON(d.data(b).dataUrl+"?r="+o,{method:d.data(b).method,returnformat:"json",brandID:d.data(b).brandID,channelID:d.data(b).channelID,locationID:d.data(b).locationID,propertyID:d.data(b).propertyID,getBest:d.data(b).getBest,getConfigs:d.data(b).getConfigs,numAdults:d.data(b).numAdults,numChildren:d.data(b).numChildren,xDate:m,currentLastDate:l,currentFirstDate:k},function(x){var t="HoverItem",u="hover-content",o="<span>",m="<div>",s="<td>",r="<tr>";if(x.nights.length>0){var C,G,A=a(d.data(b).formTableID),v,H,E,D,B,z=a("tr",d).length==0,F=z,w=k.length>0,y=d.data(b).isSelectable?1:0;w&&x.nights.reverse();if(z&&d.data(b).roomNamesTableID.length>0){G=a(f+d.data(b).roomNamesTableID);a.each(x.prodCompDetails,function(c,b){G.append(a(r).append(a(s).addClass(n).append(a(m).append(a(o).text(b.prodCompName)).append(a(m).addClass(u).css({display:g}).append(a(m).addClass(t).text(b.roomHoverBoxBlurb))))))})}a.each(x.nights,function(j,i){var e="tr:eq(",f="tr:first";if(w)d.data(b).nights.unshift(i.xDate);else d.data(b).nights.push(i.xDate);if(z){d.append(a(r));a.each(i.prodComps,function(){d.append(a(r))});z=c}if(d.data(b).isSelectable){v=a(s).append(a(m));if(w)a(f,d).prepend(v);else a(f,d).append(v)}v=a("<th>").append(a(m).append(a(o).text(i.day)).append(i.date));if(w)a(e+y+")",d).prepend(v);else a(e+y+")",d).append(v);a.each(i.prodComps,function(j,k){var f=") td div.nightRates",c=") td div.nightCheckboxes";v=a(s).addClass("rate").append(a(m).text(k.rate).addClass(k.availability));H=a(m).text(i.xDate).addClass("date").css({display:g});H.appendTo(a(h,v));E=a(m).addClass(u).css({display:g});E.appendTo(a(h,v));a.each(k.hover,function(c,b){E.append(a(m).addClass(t).append(a(o).addClass("HoverLabel").text(b.label)).append(b.rate))});if(w)a(e+(j+y+1)+")",d).prepend(v);else a(e+(j+y+1)+")",d).append(v);if(d.data(b).isSelectable){D=a('<input type="checkbox" />').attr("name","night_"+i.xDate).attr("value","true");B=a("<input>").attr("format","hidden").attr("name","rates_"+i.xDate).attr("value","["+k.configs.toString()+"]");if(w){a(e+j+c,A).prepend(D);a(e+j+f,A).prepend(B)}else{a(e+j+c,A).append(D);a(e+j+f,A).append(B)}}})});if(F){a(d.parent()).css({height:d.outerHeight(e)});F=c}if(w){C=a(d.parent());C.scrollLeft(C.scrollLeft()+p(d)*x.nights.length);d.data(j,c)}l.length>0&&d.data(i,c);q(d)}})}};a.trace=function(a){window.console&&window.console.log(a)};a.dump=function(b){if(window.console){a.trace(b);a.trace(typeof b);for(var c in b)trace(c+": "+b[c])}}})(jQuery)