String.prototype.pad=function(){return this.length==1?"0"+this:this};String.prototype.toDate=function(){var a=this.split("-");return new Date(a[0],a[1]-1,a[2])};Date.prototype.isoDate=function(){return[this.getFullYear(),String(this.getMonth()+1).pad(),String(this.getDate()).pad()].join("-")};Date.prototype.changeDay=function(a){var a=(a==undefined?0:a);return new Date(this.getFullYear(),this.getMonth(),this.getDate()+a)};Date.prototype.changeMonth=function(a){var a=(a==undefined?0:a);return new Date(this.getFullYear(),this.getMonth()+a,this.getDate())};Date.prototype.isInRange=function(b,a){return(this.getTime()>=b.getTime()&&this.getTime()<=a.getTime())};Date.prototype.isWeekEnd=function(){return(this.getDay()==0||this.getDay()==6)};Date.prototype.equalsTo=function(a){return(this.getFullYear()==a.getFullYear()&&this.getMonth()==a.getMonth()&&this.getDate()==a.getDate())};var otxCalendar={daysLabels:["Pn","Wt","Śr","Cz","Pt","So","Nd"],monthsLabels:["Styczeń","Luty","Marzec","Kwiecień","Maj","Czerwiec","Lipiec","Sierpień","Wrzesień","Październik","Listopad","Grudzień"],init:function(a){var a=a||{};this.html="";this.edited="";this.layout={};var b=new Date();if($(a.dateFrom)&&$(a.dateTo)){this.mode="complex";this.el1=$(a.dateFrom);this.el2=$(a.dateTo);this.layout.closeLink=true;this.today=b.changeDay();this.beforeThreeMonths=b.changeMonth(-3);this.month=this.today.getMonth();this.year=this.today.getFullYear();this.prepareContainer();this.manageEvents()}else{if($(a.dateInput)){this.mode="simple";this.el1=$(a.dateInput);this.layout.navMonth=true;this.today=b.changeDay();this.month=this.today.getMonth();this.year=this.today.getFullYear();this.prepareContainer();this.manageEvents()}}},prepareContainer:function(){this.el=new Element("div",{id:"otxCalendar"});this.el.hide();document.body.appendChild(this.el);
/*@cc_on @*/
/*@if (@_jscript_version <= 5.7)
      this.elFrame = new Element("iframe");
      this.elFrame.hide();
      this.elFrame.setStyle({ position: 'absolute', height: '170px', background: 'transparent' });
      document.body.appendChild(this.elFrame);
    @end @*/
},showContainer:function(){var pos=Position.cumulativeOffset(this.el1);if(this.mode==="complex"){this.el.setStyle({left:pos[0]-140+"px",top:pos[1]+25+"px",width:630+"px"}).show()}else{if(this.mode==="simple"){this.el.setStyle({left:pos[0]+"px",top:pos[1]+25+"px",width:160+"px"}).show();
/*@cc_on @*/
/*@if (@_jscript_version <= 5.7)
      if (this.mode === "complex") {
        this.elFrame.setStyle({ left: pos[0] - 140 + 'px', top: pos[1] + 25 + 'px', width: 630 + 'px' }).show();
      } else if (this.mode === "simple") {
        this.elFrame.setStyle({ left: pos[0] + 'px', top: pos[1] + 25 + 'px', width: 160 + 'px' }).show();
      }
    @end @*/
}}if(this.mode==="complex"){[$(this.el1),$(this.el2)].invoke("stopObserving","keydown").invoke("observe","keydown",function(e){switch(e.keyCode){case (Event.KEY_RIGHT):this.changeDate(1);break;case (Event.KEY_DOWN):this.changeDate(7);break;case (Event.KEY_LEFT):this.changeDate(-1);break;case (Event.KEY_UP):this.changeDate(-7);break;case (Event.KEY_RETURN):case (Event.KEY_ESC):e.stop();this.hideContainer();break}}.bind(this))}else{if(this.mode==="simple"){$(this.el1).stopObserving("keydown").observe("keydown",function(e){switch(e.keyCode){case (Event.KEY_RIGHT):this.changeDate(1);break;case (Event.KEY_DOWN):this.changeDate(7);break;case (Event.KEY_LEFT):this.changeDate(-1);break;case (Event.KEY_UP):this.changeDate(-7);break;case (Event.KEY_RETURN):case (Event.KEY_ESC):e.stop();case (Event.KEY_TAB):this.hideContainer();break}}.bind(this));$("top").observe("click",function(e){var el=e.element();if(el.hasClassName("activeDay")){this.el1.value=el.up(".month").identify()+"-"+String(el.innerHTML).pad();this.el1.fire("otx:change");this.hideContainer()}else{if(el.nodeName=="A"){e.preventDefault();if(el.hasClassName("navMonth")){if(el.innerHTML=="»"){this.changeMonth(1)}else{if(el.innerHTML=="«"){this.changeMonth(-1)}}}}else{if(el.id!=="objInsertion_FreeFrom"&&el.id!=="objWantedInsertion_FreeFrom"){this.hideContainer()}}}}.bind(this))}}},hideContainer:function(){this.el.hide();
/*@cc_on @*/
/*@if (@_jscript_version <= 5.7)
      this.elFrame.hide();
    @end @*/
if(this.mode==="complex"){[$(this.el1),$(this.el2)].invoke("stopObserving","keydown").invoke("observe","keydown",function(e){switch(e.keyCode){case (Event.KEY_DOWN):this.el.update(this.generateCalendar());this.showContainer();break}}.bind(this))}else{if(this.mode==="simple"){$(this.el1).stopObserving("keydown").observe("keydown",function(e){switch(e.keyCode){case (Event.KEY_DOWN):this.el.update(this.generateCalendar());this.showContainer();break}}.bind(this));$("top").stopObserving("click")}}},generateCalendar:function(){if(isNaN(parseInt($F(this.el1)))){if(this.mode==="complex"){this.dateFrom=this.today.changeDay(-1)}else{if(this.mode==="simple"){this.dateFrom=this.today}}this.el1.value=this.dateFrom.isoDate();this.el1.fire("otx:change")}else{this.dateFrom=String($F(this.el1)).toDate();if(!this.dateFrom.isoDate().match(/^(\d{4})(\/|-)(\d{2})(\/|-)(\d{2})$/)){this.dateFrom=this.today}}if(this.mode==="complex"){if(isNaN(parseInt($F(this.el2)))){this.dateTo=this.today.changeDay(-1);this.el2.value=this.dateTo.isoDate();this.el2.fire("otx:change")}else{this.dateTo=String($F(this.el2)).toDate();if(this.dateFrom>this.dateTo){this.dateTo=this.dateFrom;this.el2.value=this.dateTo.isoDate();this.el2.fire("otx:change")}}}var a='<div class="uniBox">';if(this.layout.closeLink===true){a+='<h4><span class="more"><a href="#">ukryj kalendarz</a></span>&nbsp;</h4>'}a+='<div id="calendarWrap">';if(this.mode==="complex"){a+=this.generateMonth(this.today,-3);a+=this.generateMonth(this.today,-2);a+=this.generateMonth(this.today,-1);a+=this.generateMonth(this.today)}else{if(this.mode==="simple"){a+=this.generateMonth(this.dateFrom)}}a+="</div></div>";return a},generateMonth:function(c,l){var h=c.getMonth();if(l){h=h+l}var n=c.getFullYear();var k=new Date(n,h,1);var a=k.getDay();var p=new Date(n,h+1,0);var m=p.getDate();var f='<div class="month" id="'+k.getFullYear()+"-"+String(k.getMonth()+1).pad()+'">';f+='<p class="monthHead">';if(this.layout.navMonth&&k.changeMonth(-1).isoDate().substr(0,7)>=this.today.isoDate().substr(0,7)){f+='<a href="#" class="navMonth">«</a>&nbsp;'}f+="<span>"+this.monthsLabels[k.getMonth()]+" "+k.getFullYear()+"</span>";if(this.layout.navMonth){f+='&nbsp<a href="#" class="navMonth">»</a>'}f+="</p>";f+='<div class="daysHead">';for(var e=0;e<=6;e++){f+="<p>"+this.daysLabels[e]+"</p>"}f+='</div><div class="days">';var g,b,j,o=1;if(a>0){b=a-1}else{b=6}if(this.mode==="complex"){for(var e=0;e<Math.ceil((m+b)/7)*7;e++){if(e<b||o>m){f+='<p class="inactiveDay">&nbsp;</p>'}else{j="";g=new Date(k.getFullYear(),k.getMonth(),o);if((this.edited=="el2"&&g<this.dateFrom)||g<this.beforeThreeMonths||g>this.today){j+=" inactiveDay"}else{if(g.isWeekEnd()){j+=" weekendDay"}if(g.equalsTo(this.today)){j+=" today"}else{j+=" activeDay"}if(g.isInRange(this.dateFrom,this.dateTo)){j+=" selected"}if(g.equalsTo(this.dateFrom)){j+=" pointed"}if(g.equalsTo(this.dateTo)){j+=" pointed"}}f+='<p class="'+j+'">';f+=o;f+="</p>";o++}}}else{if(this.mode==="simple"){for(var e=0;e<Math.ceil((m+b)/7)*7;e++){if(e<b||o>m){f+='<p class="inactiveDay">&nbsp;</p>'}else{j="";g=new Date(k.getFullYear(),k.getMonth(),o);if(g<this.today){j+=" inactiveDay"}else{j+=" activeDay";if(g.isWeekEnd()){j+=" weekendDay"}if(g.equalsTo(this.today)){j+=" today"}if(g.equalsTo(this.dateFrom)){j+=" pointed"}}f+='<p class="'+j+'">';f+=o;f+="</p>";o++}}}}f+="</div></div>";return f},changeDate:function(a){if(this.mode==="complex"){if(this.edited=="el1"){var b=this.el1;var d=this.dateFrom;var e=this.beforeThreeMonths;var c=this.today}else{var b=this.el2;var d=this.dateTo;var e=this.dateFrom;var c=this.today}if(d.changeDay(a)>=e&&d.changeDay(a)<c){b.value=d.changeDay(a).isoDate();this.el.update(this.generateCalendar())}}else{if(this.mode==="simple"){var b=this.el1;var d=this.dateFrom;var e=this.today;if(d.changeDay(a)>=e){b.value=d.changeDay(a).isoDate();this.el.update(this.generateCalendar())}}}},changeMonth:function(a){if(this.mode==="simple"){var b=this.el1;var c=this.dateFrom;var d=this.today;if(c.changeMonth(a)>=d){b.value=c.changeMonth(a).isoDate()}else{b.value=this.today.isoDate()}this.el.update(this.generateCalendar())}},manageEvents:function(){if(this.mode==="complex"){this.el.observe("click",function(b){var a=b.element();if(a.hasClassName("activeDay")){if(this.edited=="el1"){this.el1.value=a.up(".month").identify()+"-"+String(a.innerHTML).pad();this.el1.fire("otx:change");this.el2.focus()}else{if(this.edited=="el2"){this.el2.value=a.up(".month").identify()+"-"+String(a.innerHTML).pad();this.el2.fire("otx:change");this.hideContainer()}}}else{if(a.nodeName=="A"){b.preventDefault();this.hideContainer()}}}.bind(this));[$(this.el1),$(this.el2)].invoke("observe","focus",function(a){a.element().addClassName("focused");if(a.element()==this.el1){this.edited="el1"}if(a.element()==this.el2){this.edited="el2"}this.el.update(this.generateCalendar());this.showContainer()}.bind(this)).invoke("observe","blur",function(a){a.element().removeClassName("focused")}.bind(this))}else{if(this.mode==="simple"){(this.el1).observe("focus",function(a){this.el.update(this.generateCalendar());this.showContainer()}.bind(this))}}}};document.observe("dom:loaded",function(){if($("objInsertion_FreeFrom")){otxCalendar.init({dateInput:"objInsertion_FreeFrom"})}else{if($("objWantedInsertion_FreeFrom")){otxCalendar.init({dateInput:"objWantedInsertion_FreeFrom"})}else{otxCalendar.init({dateFrom:"periodStart",dateTo:"periodEnd"});if($("periodStart")){[$("periodStart"),$("periodEnd")].invoke("observe","focus",function(){$("days").writeAttribute("checked","checked");$("months").removeAttribute("checked")}).invoke("writeAttribute","autocomplete","off");[$("monthStart"),$("monthEnd")].invoke("observe","focus",function(){$("months").writeAttribute("checked","checked");$("days").removeAttribute("checked")})}}}});
