function CalendarMonthView(F,E,A,C,D){this.langId=D;this.mcEl=F;this.t=null;this.offset=C;this.m=A;this.y=E;var B=new Date(skyscanner.$U.getServerTime());this.sdEnd=this.sdBg=skyscanner.$U.removeTime(new Date(skyscanner.$U.getServerTime()));this.dn=skyscanner.$CS.getShortWeekDays(this.langId)}CalendarMonthView.prototype.onClickDay=function(A){};CalendarMonthView.prototype.select=function(B,A){this.sdBg=B;if(A!=null&&A!=undefined){this.sdEnd=A}else{this.sdEnd=B}if(B!=null){B=skyscanner.$U.removeTime(B)}if(A!=null){A=skyscanner.$U.removeTime(A)}var D=this.mcEl.getElementsByTagName("td");if(D!=null&&D.length>0){for(var C=0;C<D.length;C++){var E=D[C];if(this.isSelectedDate(E.date)&&this.sdBg!=null&&this.sdBg.getDate()==this.sdEnd.getDate()){if(!skyscanner.$D.hasClass(E,"ss_month_selected")){skyscanner.$D.addCSSClass(E,"ss_month_selected")}}else{if(skyscanner.$D.hasClass(E,"ss_month_selected")){skyscanner.$D.removeCSSClass(E,"ss_month_selected")}}}}};CalendarMonthView.prototype.isSelectedDate=function(A){return(this.sdBg==null)||(A>=this.sdBg&&A<=this.sdEnd)};CalendarMonthView.prototype.renderHead=function(){var B=document.createElement("thead");var C=document.createElement("tr");B.appendChild(C);this.t.appendChild(B);for(i=0;i<7;i++){var D=document.createElement("td");var A=i-this.offset;if(A>=7){A=A%7}if(A<0){A+=7}D.innerHTML=this.dn[A].substring(0,1);C.appendChild(D)}};CalendarMonthView.prototype.render=function(){this.mcEl.innerHTML="";var I=this;var P=new Date(this.y,this.m,1).getDay()+this.offset;if(P>6){P=0}if(P<0){P=6}var H=skyscanner.$U.getMonthDays4Year(this.y);this.t=document.createElement("table");this.t.cellSpacing="0";this.t.cellPadding="0";this.t.className="ss_month";this.mcEl.appendChild(this.t);this.renderHead();var E=document.createElement("tbody");this.t.appendChild(E);var M=document.createElement("tr");if(P>0){var D=this.m-1;var O=this.y;if(D<0){D=11;O--}var A=H[D];for(var F=P;F>0;F--){var C=document.createElement("td");var K=(A-F+1);var J=new Date(O,D,K);var L=skyscanner.$U.removeTime(new Date(skyscanner.$U.getServerTime()));var B="ss_month_prev_month";if(J<L){B+=" ss_month_old"}if(skyscanner.$U.getDayOfWeek(P-F,this.offset)==0){B+=" ss_month_sun"}if(skyscanner.$U.getDayOfWeek(P-F,this.offset)==6){B+=" ss_month_sat"}var C=document.createElement("td");var N=document.createElement("a");N.appendChild(document.createTextNode(K));N.href="#";C.date=J;C.onclick=function(R){skyscanner.$E.preventDefault(R);I.onClickDay(this.date);return false};C.appendChild(N);C.className=B;M.appendChild(C)}}rc=P;for(var F=1;F<=H[this.m];F++){var C=document.createElement("td");var B="";if(skyscanner.$U.getDayOfWeek(rc%7,this.offset)==0){B+=" ss_month_sun"}if(skyscanner.$U.getDayOfWeek(rc%7,this.offset)==6){B+=" ss_month_sat"}var L=skyscanner.$U.removeTime(new Date(skyscanner.$U.getServerTime()));if(this.y==L.getFullYear()&&this.m==L.getMonth()&&F<L.getDate()){B+=" ss_month_old"}var N=document.createElement("a");N.appendChild(document.createTextNode(F));N.href="#";C.appendChild(N);C.date=new Date(this.y,this.m,F);if(this.isSelectedDate(C.date)&&this.sdBg!=null&&this.sdBg.getDate()==this.sdEnd.getDate()){B+=" ss_month_selected"}C.className=B;C.onclick=function(R){skyscanner.$E.preventDefault(R);I.onClickDay(this.date);return false};M.appendChild(C);rc++;if(rc%7==0){E.appendChild(M);M=document.createElement("tr")}}if(rc%7>0||Math.round(rc/7)<6){var Q=this.m+1;var G=this.y;if(Q>11){Q=0;G++}for(var F=1;true;F++){var C=document.createElement("td");var B="ss_month_next_month";if(skyscanner.$U.getDayOfWeek(rc%7,this.offset)==0){B+=" ss_month_sun"}if(skyscanner.$U.getDayOfWeek(rc%7,this.offset)==6){B+=" ss_month_sat"}var N=document.createElement("a");N.appendChild(document.createTextNode(F));N.href="#";C.appendChild(N);C.date=new Date(G,Q,F);if(this.isSelectedDate(C.date)&&this.sdBg!=null&&this.sdBg.getDate()==this.sdEnd.getDate()){B+=" ss_month_selected"}C.className=B;C.onclick=function(R){skyscanner.$E.preventDefault(R);I.onClickDay(this.date);return false};M.appendChild(C);rc++;if(rc%7==0){E.appendChild(M);if(Math.round(rc/7)==6){break}M=document.createElement("tr")}}}};exportSymbol("skyscanner.snippets.CalendarMonthView",CalendarMonthView);