Function.prototype.bind=function(B){var C=this,A=function(){return C.apply(B,arguments)};return A};Weblife1.Calendar=Class.create();Weblife1.Calendar.getYear=function(A){var B=A.getYear();if(B<999){B+=1900}return B};Weblife1.Calendar.leftShiftDay=function(A){if(A==0){return 6}else{return --A}};Weblife1.Calendar.checkRestDays=function(A){if(A>=7){return 0}else{return A}};Weblife1.Calendar.getWeekOfYear=function(A){A=new Date(A.getFullYear(),A.getMonth(),A.getDate());var B=new Date(A.getFullYear(),0,1);return Math.ceil((((A-B)/86400000)+Weblife1.Calendar.leftShiftDay(B.getDay())+1)/7)};Weblife1.Calendar.getDaysInMonth=function(A){year=Weblife1.Calendar.getYear(A);leap=1;if((year%4)!=0){leap=0}if(year%400==0){leap=1}else{if((year>1582)&&(year%100==0)){leap=0}}if(leap==1){daysInMonth=[31,29,31,30,31,30,31,31,30,31,30,31]}else{daysInMonth=[31,28,31,30,31,30,31,31,30,31,30,31]}return daysInMonth[A.getMonth()]};Weblife1.Calendar.getFirstDateOfMonth=function(A){tmp=Weblife1.Calendar.cloneDate(A);tmp.setDate(1);return tmp};Weblife1.Calendar.getFirstDateOfView=function(A){start=Weblife1.Calendar.getFirstDateOfMonth(A);firstcurrentday=Weblife1.Calendar.getFirstDayOfMonth(A);start.setDate(start.getDate()-firstcurrentday);start.setHours(0);start.setMinutes(0);start.setSeconds(0);return start};Weblife1.Calendar.getLastDateOfMonth=function(A){tmp=Weblife1.Calendar.cloneDate(A);tmp.setDate(Weblife1.Calendar.getDaysInMonth(tmp));return tmp};Weblife1.Calendar.getLastDateOfView=function(A){end=Weblife1.Calendar.getLastDateOfMonth(A);lastcurrentday=Weblife1.Calendar.getLastDayOfMonth(A);end.setDate(end.getDate()+(6-lastcurrentday));end.setHours(23);end.setMinutes(59);end.setSeconds(59);return end};Weblife1.Calendar.cloneDate=function(A){return new Date(Weblife1.Calendar.getYear(A),A.getMonth(),A.getDate(),A.getHours(),A.getMinutes(),A.getSeconds())};Weblife1.Calendar.parseDateTime=function(A){return new Date(parseInt(A.substr(0,4),10),parseInt(A.substr(5,7),10)-1,parseInt(A.substr(8,10),10),parseInt(A.substr(11,13),10),parseInt(A.substr(14,16),10),parseInt(A.substr(17,19),10))};Weblife1.Calendar.getFirstDayOfMonth=function(B){var A=(B.getDay()-(B.getDate()-1))%7;return Weblife1.Calendar.leftShiftDay((A<0)?(A+7):A)};Weblife1.Calendar.getLastDayOfMonth=function(B){var A=(B.getDay()+(Weblife1.Calendar.getDaysInMonth(B)-B.getDate()))%7;return Weblife1.Calendar.leftShiftDay((A<0)?(A+7):A)};Weblife1.Calendar.getAppointmentForId=function(A){if(this._instance==undefined){return null}else{return this._instance.getAppointmentForId(A)}};Weblife1.Calendar.getACL=function(){if(this._instance==undefined){return null}else{return this._instance._config.acl}};Weblife1.Calendar.addAppointments=function(A){if(this._instance==undefined){return null}this._instance.addAppointments(A)};Weblife1.Calendar.getCalendarType=function(){if(this._instance==undefined){return null}return this._instance._config.calendar_type};Weblife1.Calendar.getGroupId=function(){if(this._instance==undefined){return null}return this._instance._config.groupId};Weblife1.Calendar.updateAppointments=function(A){if(this._instance==undefined){return null}this._instance.updateAppointments(A)};Weblife1.Calendar.sortAppointments=function(){if(this._instance==undefined){return null}this._instance.sortAppointments()};Weblife1.Calendar.removeAppointment=function(A){if(this._instance==undefined){return null}this._instance.removeAppointment(A)};Weblife1.Calendar.reDraw=function(A){if(this._instance==undefined){return null}this._instance.reDraw()};Weblife1.Calendar.clear=function(A){if(this._instance==undefined){return null}this._instance.clear()};Weblife1.Calendar.draw=function(A){if(this._instance==undefined){return null}this._instance.draw()};Weblife1.Calendar.getDefaultCalendarId=function(){if(this._instance==undefined){return null}return this._instance.getDefaultCalendarId()};Weblife1.Calendar.setInstance=function(A){this._instance=A};Weblife1.Calendar.getLanguage=function(){return this._instance._config.language};Weblife1.Calendar.prototype={initialize:function(A){if(A!=undefined){this.setLanguage(A)}},setConfig:function(A){this.setLanguage(A)},setConfig2:function(B){if(B==undefined){B=new Array()}this._config=B;B.language.weekdays=new Array("Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag","Sonntag");B.language.weekdayshort=new Array("Mo","Di","Mi","Do","Fr","Sa","So");B.language.months=new Array("J&auml;nner","Februar","M&auml;rz","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember");if(B.currentdate==undefined){B.currentdate=new Date()}else{B.currentdate=Weblife1.Calendar.parseDateTime(B.currentdate+" 00:00:00")}if(B.view==undefined){B.view="month"}if(B.coorddiv==undefined){B.coorddiv="wl1cal_calendar_content"}if(B.outerdiv==undefined){B.outerdiv="calendardiv"}if(B.baseurl==undefined){B.baseurl="undefined base url"}if(B.bordersize==undefined){B.bordersize=1}if(B.showInfoBox==undefined){B.showInfoBox=true}if(B.showEndTime==undefined){B.showEndTime=false}if(B.employee==undefined){B.employee=false}if(B.onedayappointments==undefined){B.onedayappointments=new Array()}if(B.moredayappointments==undefined){B.moredayappointments=new Array()}if(B.defaultappointmentcolor==undefined){B.defaultappointmentcolor="AC2222"}if(B.type==undefined){B.type="user"}if(B.calendar_type==undefined){B.calendar_type="user"}if(B.acl==undefined){B.acl="read"}if(B.view=="month"){var A=new Weblife1.Calendar.Month()}else{if(B.view=="week"){var A=new Weblife1.Calendar.Day();B.weekdays=7}else{if(B.view=="day"){var A=new Weblife1.Calendar.Day();B.weekdays=1}}}this._curview=A;Weblife1.Calendar.setInstance(this);this._loadstart=null;this._loadend=null;this._config.morebox=null;this._tmpspace=null;this._outerdiv=$(this._config.outerdiv);this.renderBasicLayout();this._curview.setConfig(this._config);this._coorddiv=$(this._config.coorddiv);this.getAppointmentsFromServer(true)},setLanguage:function(A){new Weblife1.AjaxApp.Setup.Servercall("mycalendar",{requesttype:"get_language"},(function(B){A.language=B[0];this.setConfig2(A)}).bind(this))},getDefaultCalendarId:function(){return this._config.defaultCalendarId},renderBasicLayout:function(){var A=new Date();var B='<div class="navigation_tabs clearfloat">';B+='<div class="szene1_paging float_right">';if(this._config.acl=="write"){B+='<a href="javascript:void(0);" id="'+A.print("%Y-%m-%d %H:00:00")+'"  onclick="javascript: Weblife1.Appointment.showCreateUpdateBox(this)" title="'+this._config.language.newAppointment+'" >'+this._config.language.newAppointment+"</a>"}B+='<a href="javascript:void(0);" onclick="javascript: cal.next()" title="'+this._config.language.next+'">'+this._config.language.next+" &raquo;</a>";B+='<a href="javascript:void(0);" onclick="javascript: cal.prev()" title="'+this._config.language.prev+'">&laquo; '+this._config.language.prev+"</a>";B+="</div>";B+='<ul id="wl1cal_tab">';B+='<li class="selected"><a id="tab_1" href="javascript:void(0);" onclick="javascript: cal.viewMonth();Weblife1.Html.hoverListElement(this, \'selected\'); return false;" title="'+this._config.language.month+'">'+this._config.language.month+"</a></li>";B+='<li><a id="tab_2" href="javascript:void(0);" onclick="javascript: cal.viewWeek();Weblife1.Html.hoverListElement(this, \'selected\'); return false;"  title="'+this._config.language.week+'">'+this._config.language.week+"</a></li>";B+='<li><a id="tab_3" href="javascript:void(0);" onclick="javascript: cal.viewDay(); Weblife1.Html.hoverListElement(this, \'selected\'); return false;"  title="'+this._config.language.day+'">'+this._config.language.day+"</a></li>";B+='<li><a id="tab_4" href="javascript:void(0);" onclick="javascript: cal.headerDate();"  title="'+this._config.language.date+'">'+this._config.language.date+"</a></li>";B+="</ul>";B+='<div id="wl1cal_header_title" class="wl1cal_nav_title" style="">'+this._config.language.months[this._config.currentdate.getMonth()]+", "+Weblife1.Calendar.getYear(this._config.currentdate)+"</div>";B+="</div>";B+='<div id="wl1cal_calendar_days" class="wl1cal_day_header clearfloat">';B+="&nbsp;</div>";B+='<div id="wl1cal_calendar_content" class="wl1cal_content" style="height: '+(this._outerdiv.getHeight()-28)+'px;">';B+="&nbsp;</div>";this._outerdiv.innerHTML=B},sortAppointments:function(){this._config.onedayappointments.sort(function(C,B){return C.startdate-B.startdate});for(var A=1;A<this._config.onedayappointments.length;++A){if(this._config.onedayappointments[A].appointmentId==this._config.onedayappointments[A-1].appointmentId&&this._config.onedayappointments[A].startdate.getHour()==this._config.onedayappointments[A-1].startdate.getHour()&&this._config.onedayappointments[A].startdate.getYear()==this._config.onedayappointments[A-1].startdate.getYear()){this._config.onedayappointments.splice(A,1)}}this._config.moredayappointments.sort(function(C,B){return C.startdate-B.startdate});for(var A=1;A<this._config.moredayappointments.length;A++){if(this._config.moredayappointments[A].appointmentId==this._config.moredayappointments[A-1].appointmentId&&this._config.moredayappointments[A].startdate.getHours()==this._config.moredayappointments[A-1].startdate.getHours()&&this._config.moredayappointments[A].startdate.getYear()==this._config.moredayappointments[A-1].startdate.getYear()){this._config.moredayappointments.splice(A,1)}}},getRandomNumber:function(B,A){if(B>A){return -1}if(B==A){return B}return(B+parseInt(Math.random()*(A-B+1)))},getRandomColor:function(C){hex=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F"];var A="";for(var B=0;B<6;B++){A+=hex[this.getRandomNumber(0,C)]}return A},randomAddAppointments:function(L,K,M){var C=[31,28,31,30,31,30,31,31,30,31,30,31];var H=C[L];var G=0;var B=0;for(var I=0;I<K;I++){var J=this.getRandomNumber(1,H);var A=this.getRandomNumber(J,H);if(J==A){moreday=0;G++}else{moreday=1;if((B*M)>G){I--;continue}B++}var P=this.getRandomNumber(0,23);var F=this.getRandomNumber(0,59);var O=new Date(2009,L,J,P,F,0);var D=new Date(2009,L,A,this.getRandomNumber(P,23),this.getRandomNumber(F,59),0);var N=Weblife1.getUniqueId();var E={appointmentId:N,calendarId:this.getRandomNumber(0,9),moredays:moreday,startdate:O,enddate:D,subject:"Termin"+N,location:"Ort"+N,allday:"false",color:this.getRandomColor(9),show:"true"};if(E.moredays==1){this._config.moredayappointments.push(E)}else{this._config.onedayappointments.push(E)}}},next:function(){this._curview.next();this.getAppointmentsFromServer()},prev:function(){this._curview.prev();this.getAppointmentsFromServer()},today:function(){this._curview.today()},draw:function(){this._curview.draw()},reDraw:function(){this._curview.reDraw()},clear:function(){this._curview.clear()},switchBG:function(B){var A=B.getStyle("backgroundColor");if(A=="transparent"){B.setStyle({backgroundColor:("#000000")})}else{B.setStyle({backgroundColor:("transparent")})}},viewMonth:function(A){if(A!=undefined){this._config.currentdate=Weblife1.Calendar.parseDateTime(A+" "+this._config.currentdate.print("%H:%M:%S"))}this.getAppointmentsFromServer();this._config.view="month";this._curview=new Weblife1.Calendar.Month();this._curview.setConfig(this._config);this._curview.renderExtendedLayout();this._curview.reDraw()},viewWeek:function(A){if(A!=undefined){this._config.currentdate=Weblife1.Calendar.parseDateTime(A+" "+this._config.currentdate.print("%H:%M:%S"))}this._config.view="week";this._curview=new Weblife1.Calendar.Day();this._config.weekdays=7;this._curview.setConfig(this._config);this._curview.renderExtendedLayout();this._curview.reDraw()},viewDay:function(A){if(A!=undefined){this._config.currentdate=Weblife1.Calendar.parseDateTime(A+" "+this._config.currentdate.print("%H:%M:%S"))}this._config.view="day";this._curview=new Weblife1.Calendar.Day();this._config.weekdays=1;this._curview.setConfig(this._config);this._curview.renderExtendedLayout();this._curview.reDraw()},headerDate:function(){if($("header_date_picker")!=null){$("header_date_picker").remove()}else{var A='<div id="header_date_picker" style="position: absolute; z-index: 10; left: '+315+"px; top: "+260+'px;">';A+='<input type="hidden" name="headerdate"  id="headerdate" value="'+this._config.currentdate.print("%Y-%m-%d")+'" />';A+="</div>";this._outerdiv.insert(A);var B=Calendar.setup({inputField:"headerdate",ifFormat:"%Y-%m-%d",button:"e_starttimeCalendarTrigger",flat:"header_date_picker",flatCallback:function(){if(this._config.view=="month"){this.viewMonth($("headerdate").value)}else{if(this._config.view=="week"){this.viewWeek($("headerdate").value)}else{this.viewDay($("headerdate").value)}}this.getAppointmentsFromServer()}.bind(this),firstDay:1,align:"BL",showsTime:false})}},changeAppointmentBox:function(A){app=this.getAppointmentForId(A);if(app==null){return }this.closeMoreBox();Weblife1.Appointment.showCreateUpdateBox(A)},saveAppointmentBox:function(){appointmentid=$("appointmentId").value;if(this._tmpspace.startdate.getDate()!=this._tmpspace.enddate.getDate()){moreday=1}else{moreday=0}app={appointmentId:"",calendarId:"0",moredays:moreday,startdate:this._tmpspace.startdate,enddate:this._tmpspace.enddate,subject:$("title").value,location:$("location").value,allday:"false",color:this._config.defaultappointmentcolor,show:"true"};this.clear();if(appointmentid===undefined||appointmentid===null||appointmentid===""){app.appointmentId=Weblife1.getUniqueId();if(app.moredays==0){this._config.onedayappointments.push(app)}if(app.moredays==1){this._config.moredayappointments.push(app)}}else{var A=false;app.appointmentId=appointmentid;for(var B=0;B<this._config.moredayappointments.length;++B){if(this._config.moredayappointments[B].appointmentId==appointmentid){if(app.moredays==this._config.moredayappointments[B].moredays){this._config.moredayappointments[B]=app}else{this._config.moredayappointments.splice(B,1);A=true}break}}for(var B=0;B<this._config.onedayappointments.length;++B){if(this._config.onedayappointments[B].appointmentId==appointmentid){if(app.moredays==this._config.onedayappointments[B].moredays){this._config.onedayappointments[B]=app}else{this._config.onedayappointments.splice(B,1);A=true}break}}if(A==true){if(app.moredays==0){this._config.onedayappointments.push(app)}if(app.moredays==1){this._config.moredayappointments.push(app)}}}this.closeMoreBox();this.closeAllAppointments();this.sortAppointments();this.draw()},showAllAppointments:function(A){this._curview.showAllAppointments(A)},closeAllAppointments:function(){if($("wl1cal_m_show_more_box")!=null){$("wl1cal_m_show_more_box").remove()}},getAppointmentForId:function(B){for(var A=0;A<this._config.moredayappointments.length;++A){if(this._config.moredayappointments[A].appointmentId==B){return this._config.moredayappointments[A]}}for(var A=0;A<this._config.onedayappointments.length;++A){if(this._config.onedayappointments[A].appointmentId==B){return this._config.onedayappointments[A]}}return null},removeAppointment:function(A){this._curview.removeAppointment(A);this.closeAllAppointments()},getLanguage:function(){return this._language},addAppointments:function(B){for(var A=0;A<B.length;++A){if((B[A].moredays==0)&&(B[A].allday=="false")){this._config.onedayappointments.push(B[A])}if((B[A].moredays==1)||(B[A].allday=="true")){this._config.moredayappointments.push(B[A])}}},updateAppointments:function(C){for(var B=0;B<C.length;++B){for(var A=0;A<this._config.moredayappointments.length;++A){if(this._config.moredayappointments[A].appointmentId==C[B].appointmentId){this._config.moredayappointments[A]=C[B]}}for(var A=0;A<this._config.onedayappointments.length;++A){if(this._config.onedayappointments[A].appointmentId==C[B].appointmentId){this._config.onedayappointments[A]=C[B]}}}},getAppointmentsFromServer:function(G){if(G==undefined){G=false}var H=Weblife1.Calendar.getFirstDateOfView(this._config.currentdate);var B=Weblife1.Calendar.getFirstDateOfView(H);var A=Weblife1.Calendar.getLastDateOfView(this._config.currentdate);var F=Weblife1.Calendar.getLastDateOfView(A);var C=null;var E=null;if(this._loadstart===null&&this._loadend===null){C=B;E=F;this._loadstart=B;this._loadend=F}else{if(B<this._loadstart){C=B;this._loadstart.setDate(this._loadstart.getDate()-1);E=this._loadstart;this._loadstart=B}else{if(F>this._loadend){E=F;this._loadend.setDate(this._loadend.getDate()+1);C=this._loadend;this._loadend=F}}}if(C===null&&E===null){}else{if(this._config.calendar_type=="group"){var D=this._config.groupId}else{var D=""}new Weblife1.AjaxApp.Setup.Servercall("mycalendar",{requesttype:"get_appointments",startdate:C.print("%Y-%m-%d"),enddate:E.print("%Y-%m-%d"),id:D,type:this._config.calendar_type},(function(I){this.handleResponseObject(I,G)}).bind(this))}},handleResponseObject:function(B,C){for(var A=0;A<B.length;++A){B[A].startdate=Weblife1.Calendar.parseDateTime(B[A].startdate);B[A].enddate=Weblife1.Calendar.parseDateTime(B[A].enddate);if(B[A].location==null){B[A].location=""}if(B[A].startdate.print("%Y-%m-%d")==B[A].enddate.print("%Y-%m-%d")){B[A].moredays=0}else{B[A].moredays=1}if(B[A].color==""){B[A].color=this._config.defaultappointmentcolor}this._config.defaultCalendarId=B[A].calendarId}this.addAppointments(B);this.sortAppointments();this._curview.reDraw()}};Weblife1.Calendar.Month=Class.create();Weblife1.Calendar.Month.prototype={initialize:function(A){if(A!=undefined){this.setConfig(A)}},setConfig:function(A){this._config=A;if(A.currentdate==undefined){A.currentdate=new Date()}if(A.appointmentheight==undefined){A.appointmentheight=12}if(A.headersize==undefined){A.headersize=12}if(A.footersize==undefined){A.footersize=12}if(A.appointmentspace==undefined){A.appointmentspace=2}if(A.coorddiv==undefined){A.coorddiv="wl1cal_calendar_content"}if(A.outerdiv==undefined){A.outerdiv="calendardiv"}if(A.baseurl==undefined){A.baseurl="undefined base url"}if(A.showInfoBox==undefined){A.showInfoBox=true}if(A.showEndTime==undefined){A.showEndTime=false}if(A.employee==undefined){A.employee=false}if(A.language==undefined){A.language=new Array()}this._outerdiv=$(this._config.outerdiv);A.daycount=this.getDayCount();A.weekcount=this.getWeekCount();this._coorddivheader=$(this._config.coorddivheader);this._coorddiv=$(this._config.coorddiv);this.renderExtendedLayout();this.setDynamicConfig()},setDynamicConfig:function(){this._config.daycount=this.getDayCount();this._config.weekcount=this.getWeekCount();this._config.possibleAppointments=this.getPossibleAppointments();this._config.contentWidth=this.getContentWidth();this._config.appointmentLength=this.getAppointmentLength();this._config.contentHeight=this.getContentHeight();this.setTimestamps()},setTimestamps:function(){start=Weblife1.Calendar.getFirstDateOfMonth(this._config.currentdate);firstcurrentday=Weblife1.Calendar.getFirstDayOfMonth(this._config.currentdate);start.setDate(start.getDate()-firstcurrentday);start.setHours(0);start.setMinutes(0);start.setSeconds(0);end=Weblife1.Calendar.getLastDateOfMonth(this._config.currentdate);lastcurrentday=Weblife1.Calendar.getLastDayOfMonth(this._config.currentdate);end.setDate(end.getDate()+(6-lastcurrentday));end.setHours(23);end.setMinutes(59);end.setSeconds(59);this._config.startstamp=Date.parse(start);this._config.endstamp=Date.parse(end)},renderExtendedLayout:function(){innerhtml='<table class="wl1cal_m_content_table" cellspacing="0" cellpadding="0">';innerhtml+="<thead>";innerhtml+="<tr>";for(var B=0;B<7;B++){innerhtml+='<th scope="col" title"'+this._config.language.weekdays[B]+'">'+this._config.language.weekdays[B]+"</th>"}innerhtml+="</tr>";innerhtml+="</thead>";innerhtml+="</table>";$("wl1cal_calendar_days").innerHTML=innerhtml;this._coorddiv.setStyle({height:("600px")});days=this.getDayArray();innerhtml='<table class="wl1cal_m_content_table" cellspacing="0" cellpadding="0">';for(var C=0;C<this._config.weekcount;C++){innerhtml+='<tr height="'+(Math.floor(this._coorddiv.getHeight()/this._config.weekcount))+'px">';for(var B=0;B<7;B++){innerhtml+="<td>";innerhtml+="<div";if(days[B+(7*C)][1]==0){innerhtml+=' class="wl1cal_m_appbox"'}else{innerhtml+=' class="wl1cal_m_appbox_today"'}innerhtml+=' style="height: ';if(C==this._config.weekcount-1){innerhtml+=(Math.floor(this._coorddiv.getHeight()/this._config.weekcount))}else{innerhtml+=(Math.floor(this._coorddiv.getHeight()/this._config.weekcount)-1)}innerhtml+='px;">';var A=new Date();innerhtml+='<div class="wl1cal_m_appbox_header" id="'+days[B+(7*C)][2].print("%Y-%m-%d")+" "+A.print("%H:00:00")+'" >';if(B==0){innerhtml+='<div class="wl1cal_m_appbox_header_week" onclick="javascript: cal.viewWeek(\''+days[B+(7*C)][2].print("%Y-%m-%d")+"');Weblife1.Html.hoverListElement('tab_2', 'selected'); return false;\" title=\""+this._config.language.week+'">'+days[B+(7*C)][2].print("%W")+"</div>"}innerhtml+='<div class="wl1cal_m_appbox_header_day"';if(this._config.acl=="write"){innerhtml+=" onclick=\"javascript: cal.viewDay('"+days[B+(7*C)][2].print("%Y-%m-%d")+"');Weblife1.Html.hoverListElement('tab_3', 'selected'); return false;\"  title=\""+this._config.language.day+'"'}innerhtml+=">"+days[B+(7*C)][0]+"</div>";innerhtml+="</div>";if(this._config.acl=="write"){innerhtml+='<a href="javascript:void(0);" id="'+days[B+(7*C)][2].print("%Y-%m-%d")+" "+A.print("%H:00:00")+'" class="wl1cal_m_newappointment" onclick="javascript: Weblife1.Appointment.showCreateUpdateBox(this)" title="'+this._config.language.newAppointment+'">&nbsp;</a>'}else{innerhtml+='<a href="javascript:void(0);" id="'+days[B+(7*C)][2].print("%Y-%m-%d")+" "+A.print("%H:00:00")+'" class="wl1cal_m_newappointment" title="'+this._config.language.newAppointment+'">&nbsp;</a>'}innerhtml+='<div class="wl1cal_m_appbox_content">';innerhtml+='<div id="footer_'+(B+(7*C))+'" class="wl1cal_m_appbox_footer"></div>';innerhtml+="&nbsp;</div>";innerhtml+="&nbsp;</div>";innerhtml+="</td>"}innerhtml+="</tr>"}innerhtml+="</table>";this._coorddiv.innerHTML=innerhtml;this.setHeader()},setHeader:function(){var B=Weblife1.Calendar.cloneDate(this._config.currentdate);B.setMonth(B.getMonth());var A=""+this._config.language.months[B.getMonth()]+"&nbsp;"+Weblife1.Calendar.getYear(this._config.currentdate)+"";$("wl1cal_header_title").innerHTML=A},next:function(){this._config.currentdate.setMonth(this._config.currentdate.getMonth()+1);this.setDynamicConfig();this.renderExtendedLayout();this.reDraw();this.setHeader()},prev:function(){this._config.currentdate.setMonth(this._config.currentdate.getMonth()-1);this.setDynamicConfig();this.renderExtendedLayout();this.reDraw();this.setHeader()},today:function(){this._config.currentdate=new Date();this.setDynamicConfig();this.renderExtendedLayout();this.reDraw();this.setHeader()},getDayArray:function(){days=new Array();today=new Date();date=Weblife1.Calendar.getFirstDateOfView(this._config.currentdate);for(i=0;i<this.getDayCount();i++){days[i]=new Array();days[i][0]=date.getDate();if(Weblife1.Calendar.getYear(date)==Weblife1.Calendar.getYear(today)&&date.getMonth()==today.getMonth()&&date.getDate()==today.getDate()){days[i][1]=1}else{days[i][1]=0}days[i][2]=Weblife1.Calendar.cloneDate(date);date.setDate(date.getDate()+1)}return days},getDatesForObject:function(A){date=new Date();startdate=Weblife1.Calendar.getFirstDateOfView(this._config.currentdate);startdate.setDate(startdate.getDate()+A.start);startdate.setHours(date.getHours());enddate=Weblife1.Calendar.getFirstDateOfView(this._config.currentdate);enddate.setDate(enddate.getDate()+A.end);enddate.setHours(date.getHours()+1);return{startdate:startdate,enddate:enddate}},draw:function(){this._slot=new Array(this._config.daycount+1);for(var C=0;C<this._slot.length;C++){this._slot[C]=new Array(this._config.possibleAppointments);for(var B=0;B<this._config.possibleAppointments;B++){this._slot[C][B]=false}}this._appointmentcount=new Array(this._config.daycount);for(var B=0;B<this._appointmentcount.length;B++){this._appointmentcount[B]=0}for(var A=0;A<this._config.moredayappointments.length;++A){if(this.isInView(this._config.moredayappointments[A].startdate,this._config.moredayappointments[A].enddate)){this.drawMoreDayAppointment(this._config.moredayappointments[A])}}for(var A=0;A<this._config.onedayappointments.length;++A){if(this.isInView(this._config.onedayappointments[A].startdate,this._config.onedayappointments[A].enddate)){this.drawOneDayAppointment(this._config.onedayappointments[A])}}this.drawShowMore()},isInView:function(B,A){start=Date.parse(B);end=Date.parse(A);if(((start>this._config.startstamp)&&(start<this._config.endstamp))||((end>this._config.startstamp)&&(end<this._config.endstamp))||((start<this._config.startstamp)&&(end>this._config.endstamp))){return 1}return 0},drawMoreDayAppointment:function(A){var H=this.getStartDayNumber(A.startdate);var C=this.getEndDayNumber(A.enddate);if(A.appointmentId==1000076){console.log(H+", "+C)}var D=new Date();var E=0;while(H<=C){if(A.show=="true"){if(this.getAppointmentCountForDay(H)<=this._config.possibleAppointments){var F=((Math.floor(H/7)+1)*7)-1;if(F>C){F=C}var K=(F-H)+1;var B=((this.getContentWidth()+1)*K)-6;if(Weblife1.Calendar.getWeekOfYear(A.startdate)==Weblife1.Calendar.getWeekOfYear(A.enddate)){J=A.subject}else{if(E==0){var J='<div class="wl1cal_moreright">&nbsp;'+A.subject+"</div>"}else{if((H+7)>=C){var J='<div class="wl1cal_moreleft">'+A.subject+"</div>"}else{var J='<div class="wl1cal_moreleft"><div class="wl1cal_moreright">'+A.subject+"</div></div>"}}}var I=this.getNextCoords(H);if(this._config.showInfoBox){var G="javascript:Weblife1.Appointment.showDetailBox("+A.appointmentId+");"}else{var G=""}var L='<div id="'+A.appointmentId+"_"+E+'" class="wl1cal_m_appointment"title="'+A.subject+'" onclick="'+G+'"style="width: '+B+"px; height: "+this._config.appointmentheight+"px;left: "+I.x+"px; top: "+I.y+'px;">'+J+"</div>";this._coorddiv.insert(L);this.closeSlots(H,F)}this.increaseAppointmentCount(H,F)}if((H%7)==0){H+=7}else{H=(Math.floor(H/7)*7)+7}E++}},drawOneDayAppointment:function(C){var B=this.getDayNumber(C.startdate);if(C.show=="true"){if(this.getAppointmentCountForDay(B)<=this._config.possibleAppointments){var E=this.getNextCoords(B);if(C.allday=="true"){var F=C.subject}else{if(this._config.showEndTime){var F="";if(C.startdate.getHours()<10){F+="0"}F+=C.startdate.getHours()+":";if(C.startdate.getMinutes()<10){F+="0"}F+=C.startdate.getMinutes()+" - "+C.enddate.getHours()+":"+C.enddate.getMinutes()+" : "+C.subject}else{var F="";if(C.startdate.getHours()<10){F+="0"}F+=C.startdate.getHours()+":";if(C.startdate.getMinutes()<10){F+="0"}F+=C.startdate.getMinutes()+": "+C.subject}}if(this._config.showInfoBox){var D="javascript: Weblife1.Appointment.showDetailBox("+C.appointmentId+");"}else{var D=""}var A='<div id="'+C.appointmentId+'" class="wl1cal_m_appointment"title="'+F+'" onclick="'+D+'"style="width: '+this._config.appointmentLength+"px; height: "+this._config.appointmentheight+"px;left: "+E.x+"px; top: "+E.y+'px;">'+F+"</div>";this._coorddiv.insert(A);this.closeSlots(B,B)}this.increaseAppointmentCount(B,B)}},reDraw:function(){this.setDynamicConfig();this.clear();this.draw()},clear:function(){for(var A=0;A<this._config.onedayappointments.length;++A){if($(this._config.onedayappointments[A].appointmentId)!=null){try{$(this._config.onedayappointments[A].appointmentId+"").remove()}catch(D){}}}for(var A=0;A<this._config.moredayappointments.length;++A){var C=this.getWeeksForMoreDay(this._config.moredayappointments[A].startdate,this._config.moredayappointments[A].enddate);for(var B=0;B<C;B++){if($(this._config.moredayappointments[A].appointmentId+"_"+B)!=null){$(this._config.moredayappointments[A].appointmentId+"_"+B).remove()}}}if($("show_more_box")!=null){$("show_more_box").remove()}},drawShowMore:function(){for(var A=0;A<this._config.daycount;A++){if(this._appointmentcount[A]>this._config.possibleAppointments){$("footer_"+A).innerHTML='<div style="cursor: pointer;" onClick="javascript:cal.showAllAppointments('+A+');" title="'+this._config.language.more+'" >+ '+(this._appointmentcount[A]-this._config.possibleAppointments)+" "+this._config.language.more+"</div>"}else{$("footer_"+A).innerHTML=""}}},showAllAppointments:function(J){if($("wl1cal_m_show_more_box")!==null){$("wl1cal_m_show_more_box").remove()}var F=new Array();for(var G=0;G<this._config.moredayappointments.length;++G){if(this.isInView(this._config.moredayappointments[G].startdate,this._config.moredayappointments[G].enddate)){if((this.getDayNumber(this._config.moredayappointments[G].startdate)<=J)&&(J<=(this.getDayNumber(this._config.moredayappointments[G].enddate)))){if(this._config.moredayappointments[G].show=="true"){F.push(this._config.moredayappointments[G])}}}}for(var G=0;G<this._config.onedayappointments.length;++G){if(this.isInView(this._config.onedayappointments[G].startdate,this._config.onedayappointments[G].enddate)){if(this.getDayNumber(this._config.onedayappointments[G].startdate)==J){if(this._config.onedayappointments[G].show=="true"){F.push(this._config.onedayappointments[G])}}}}var E=this.getWeekAndDay(J);var H=this.getDayCoords(J);var A=(this.getContentWidth()+2*this._config.bordersize);var D='<div id="wl1cal_m_show_more_box" class="wl1cal_m_show_more_box"';D+=' style="';if(E.week==(this._config.weekcount-1)){if(F.length>this._config.possibleAppointments){D+=" top: "+(H.y-((F.length-this._config.possibleAppointments-1)*(this._config.appointmentheight+this._config.appointmentspace))-15)+"px;"}}else{D+=" top: "+H.y+"px;"}if(E.day==6){D+=" left: "+(H.x-(2*this._config.bordersize)-5)+"px;"}else{D+=" left: "+H.x+"px;"}D+='">';this._coorddiv.insert(D);var K='<div id="wl1cal_m_show_more_box_header" class="wl1cal_m_show_more_box_header" >';var B=this.getDayArray();K+="<strong>"+B[J][2].print("%d.%m.%Y")+"</strong>";K+='<a onclick="javascript: cal.closeAllAppointments();" href="javascript:void(0);" class="szene1_box_button floatRight ICON16_BW_CLOSE"  title="'+this._config.language.close+'"/></a>';K+="</div>";$("wl1cal_m_show_more_box").insert(K);for(var G=0;G<F.length;++G){if((F[G].allday=="true")||(F[G].moredays==true)){var I=F[G].subject}else{var I="";if(F[G].startdate.getHours()<10){I+="0"}I+=F[G].startdate.getHours()+":";if(F[G].startdate.getMinutes()<10){I+="0"}I+=F[G].startdate.getMinutes()+": "+F[G].subject}var C='<div id="wl1cal_m_box_app_'+G+'" class="wl1cal_m_appointment wl1cal_m_appointment_box" title="'+I+'" onclick="javascript: Weblife1.Appointment.showDetailBox('+F[G].appointmentId+');" ';C+='style="height: '+this._config.appointmentheight+"px;";C+=" width: "+(A-2)+'px;">';C+=I;C+="</div>";$("wl1cal_m_show_more_box").insert(C)}},getDayCoords:function(C){var D=this.getWeekAndDay(C);var B=Math.floor(((this._config.bordersize/2)+(D.day*this._config.bordersize)+(D.day*this.getContentWidth())));var A=Math.floor(((this._config.bordersize/2)+(D.week*this._config.headersize)+((D.week-1)*this._config.bordersize)+(D.week*this._config.footersize)+(D.week*this.getContentHeight()))+this._config.appointmentspace);return{x:B,y:A}},increaseAppointmentCount:function(B,A){while(B<=A){this._appointmentcount[B]++;B++}},closeSlots:function(B,C){var A=this.getNextSlot(B);while(B<=C){this._slot[B][A]=true;B++}},getWeekCount:function(){return Math.floor((this._config.daycount)/7)},getDayCount:function(){return Weblife1.Calendar.getDaysInMonth(this._config.currentdate)+Weblife1.Calendar.getFirstDayOfMonth(this._config.currentdate)+Weblife1.Calendar.checkRestDays(6-Weblife1.Calendar.getLastDayOfMonth(this._config.currentdate))},getNextCoords:function(C){var D=this.getWeekAndDay(C);var B=Math.floor(((this._config.bordersize/2)+(D.day*this._config.bordersize)+(D.day*this._config.contentWidth))+1);var A=Math.floor(((this._config.bordersize/2)+((D.week+1)*this._config.headersize)+(D.week*this._config.bordersize)+(D.week*this._config.footersize)+(D.week*this._config.contentHeight))+this._config.appointmentspace)+(this.getNextSlot(C)*(this._config.appointmentheight+this._config.appointmentspace));return{x:B,y:A}},getNextSlot:function(A){for(var B=0;B<this._config.possibleAppointments;B++){if(this._slot[A][B]==false){return B}}return 10000},getContentHeight:function(){return(this._coorddiv.getHeight()/this._config.weekcount)-(this._config.bordersize+this._config.headersize+this._config.footersize)},getContentWidth:function(){return(this._coorddiv.getWidth()/7)-(this._config.bordersize)},getWeekAndDay:function(B){var C=Math.floor(B/7);var A=B%7;return{day:A,week:C}},getDayNumber:function(A){if(this._config.currentdate.getMonth()==A.getMonth()){return(Weblife1.Calendar.getFirstDayOfMonth(this._config.currentdate)+A.getDate())-1}if((this._config.currentdate.getMonth()+((Weblife1.Calendar.getYear(this._config.currentdate)-Weblife1.Calendar.getYear(A))*12))>A.getMonth()){return(Weblife1.Calendar.getFirstDayOfMonth(this._config.currentdate)-(Weblife1.Calendar.getDaysInMonth(A)-A.getDate()))-1}if(this._config.currentdate.getMonth()<(A.getMonth()+((Weblife1.Calendar.getYear(A)-Weblife1.Calendar.getYear(this._config.currentdate))*12))){return Weblife1.Calendar.getFirstDayOfMonth(this._config.currentdate)+Weblife1.Calendar.getDaysInMonth(this._config.currentdate)+A.getDate()-1}},getPossibleAppointments:function(){return Math.floor(this.getContentHeight()/(this._config.appointmentheight+this._config.appointmentspace))},getAppointmentCountForDay:function(A){return this._appointmentcount[A]},getAppointmentLength:function(){return this._config.contentWidth-6},getWeeksForMoreDay:function(B,A){return(Math.floor(this.getEndDayNumber(A)/7)-Math.floor(this.getStartDayNumber(B)/7))+1},getStartDayNumber:function(A){if(Weblife1.Calendar.getWeekOfYear(A)<(Weblife1.Calendar.getWeekOfYear(Weblife1.Calendar.getFirstDateOfMonth(this._config.currentdate))+((Weblife1.Calendar.getYear(Weblife1.Calendar.getFirstDateOfMonth(this._config.currentdate))-Weblife1.Calendar.getYear(A))*52))){return 0}else{return this.getDayNumber(A)}},getEndDayNumber:function(A){if(((Weblife1.Calendar.getWeekOfYear(A)+((Weblife1.Calendar.getYear(A)-Weblife1.Calendar.getYear(Weblife1.Calendar.getLastDateOfView(this._config.currentdate)))*52))+(Weblife1.Calendar.getYear(A)*52))>(Weblife1.Calendar.getWeekOfYear(this.getLastDateOfView())+(Weblife1.Calendar.getYear(this.getLastDateOfView())*52))){return this._config.daycount}else{return this.getDayNumber(A)}},getLastDateOfView:function(){days=this.getDayCount()-this.getDayNumber(Weblife1.Calendar.getLastDateOfMonth(this._config.currentdate))-1;date=Weblife1.Calendar.getLastDateOfMonth(this._config.currentdate);date.setDate(date.getDate()+days);return date},hideAppointments:function(B){for(var A=0;A<this._config.moredayappointments.length;++A){if(this._config.moredayappointments[A].calendarId==B){this._config.moredayappointments[A].show="false"}}for(var A=0;A<this._config.onedayappointments.length;++A){if(this._config.onedayappointments[A].calendarId==B){this._config.onedayappointments[A].show="false"}}},showAppointments:function(B){for(var A=0;A<this._config.moredayappointments.length;++A){if(this._config.moredayappointments[A].calendarId==B){this._config.moredayappointments[A].show="true"}}for(var A=0;A<this._config.onedayappointments.length;++A){if(this._config.onedayappointments[A].calendarId==B){this._config.onedayappointments[A].show="true"}}},removeAppointment:function(A){this.clear();for(var B=0;B<this._config.moredayappointments.length;++B){if(this._config.moredayappointments[B].appointmentId==A){this._config.moredayappointments.splice(B,1)}}for(var B=0;B<this._config.onedayappointments.length;++B){if(this._config.onedayappointments[B].appointmentId==A){this._config.onedayappointments.splice(B,1)}}this.draw()}};Weblife1.Calendar.Day=Class.create();Weblife1.Calendar.Day.prototype={initialize:function(A){if(A!=undefined){this.setConfig(A)}},setConfig:function(A){this._config=A;if(A.weekdays==undefined){A.weekdays=7}if(A.hours==undefined){A.hours=24}if(A.appointmentheight==undefined){A.appointmentheight=12}if(A.alldayboxheight==undefined){A.alldayboxheight=50}if(A.halfhourheight==undefined){A.halfhourheight=18}if(A.quarterhourheight==undefined){A.quarterhourheight=9}if(A.accuracy==undefined){A.accuracy=4}if(A.appointmentspace==undefined){A.appointmentspace=2}if(A.timespace==undefined){A.timespace=50}if(A.scrollbarspace==undefined){A.scrollbarspace=0}if(A.adjustment_multiplier==undefined){A.adjustment_multiplier=5}if(A.coorddivheader==undefined){A.coorddivheader="wl1cal_d_header"}if(A.coorddiv==undefined){A.coorddiv="wl1cal_calendar_content"}if(A.appdiv==undefined){A.appdiv="placeAppointmentDiv"}if(A.moredayslots==undefined){A.moredayslots=5}if(A.baseurl==undefined){A.baseurl="undefined base url"}if(A.showInfoBox==undefined){A.showInfoBox=true}A.correctIE=0;if(A.weekdays==7){dayofweek=Weblife1.Calendar.leftShiftDay(this._config.currentdate.getDay());A.currentdate=new Date(Weblife1.Calendar.getYear(this._config.currentdate),this._config.currentdate.getMonth(),(this._config.currentdate.getDate()-dayofweek))}this._coorddivheader=$(this._config.coorddivheader);this._coorddiv=$(this._config.coorddiv);this.renderExtendedLayout();this.setDynamicConfig()},setDynamicConfig:function(){this._config.appointmentLength=this.getAppointmentLength();this._config.contentWidth=this.getContentWidth();this._config.adjustment=Math.floor(this._config.contentWidth/this._config.adjustment_multiplier);this._config.headerDayCount=3;this.setTimestamps();this.scrollToTime()},setTimestamps:function(){start=new Date(Weblife1.Calendar.getYear(this._config.currentdate),this._config.currentdate.getMonth(),this._config.currentdate.getDate(),0,0,0);end=new Date(Weblife1.Calendar.getYear(this._config.currentdate),this._config.currentdate.getMonth(),this._config.currentdate.getDate()+(this._config.weekdays-1),23,59,59);this._config.startstamp=Date.parse(start);this._config.endstamp=Date.parse(end)},addAppointments:function(A){for(key in A){if((A[key].moredays==0)&&(A[key].allday=="false")){this._config.onedayappointments.push(A[key])}if((A[key].moredays==1)||(A[key].allday=="true")){this._config.moredayappointments.push(A[key])}}},clear:function(){for(var A=0;A<this._config.onedayappointments.length;++A){if($(this._config.onedayappointments[A].appointmentId)!=null){try{$(this._config.onedayappointments[A].appointmentId).remove()}catch(B){}}}for(var A=0;A<this._config.moredayappointments.length;++A){if($(this._config.moredayappointments[A].appointmentId)!=null){$(this._config.moredayappointments[A].appointmentId).remove()}}},renderExtendedLayout:function(){days=this.getDayArray();startdate=new Date(Weblife1.Calendar.getYear(this._config.currentdate),this._config.currentdate.getMonth(),this._config.currentdate.getDate());var D='<div class="wl1cal_d_timespacer">&nbsp;</div>';for(var C=0;C<this._config.weekdays;C++){D+='<div class="wl1cal_d_header_title" onclick="cal.viewDay(\''+startdate.print("%Y-%m-%d")+"');Weblife1.Html.hoverListElement('tab_3', 'selected'); return false;\" style=\"width:"+(((this._coorddiv.getWidth()-this._config.timespace)/this._config.weekdays)-1)+'px">'+this._config.language.weekdayshort[Weblife1.Calendar.leftShiftDay(startdate.getDay())]+". "+startdate.print("%d.%m")+"</div>";startdate.setDate(startdate.getDate()+1)}$("wl1cal_calendar_days").innerHTML=D;this._coorddiv.setStyle({height:("100%")});D='<div class="wl1cal_d_wdiv_header clearfloat">';D+='<div id="wl1cal_d_header_time" class="wl1cal_d_timespacer">&nbsp;</div>';D+='<div id="wl1cal_d_header" class="wl1cal_d_appheader"></div>';D+="</div>";D+='<div id="'+this._config.appdiv+'" style="position: relative;">';for(var B=0;B<48;B++){D+='<div id="time_'+B+'" class="wl1cal_d_box_halfhour_wide">';D+='<div class="wl1cal_d_box_time">';if(B%2==0){D+=(B/2)+":00";if((B/2)<10){var A="0"+(B/2)}else{var A=(B/2)}}D+="</div>";for(var C=0;C<this._config.weekdays;C++){D+='<div id="'+days[C][2].print("%Y-%m-%d ")+A+':00:00"';if(days[C][1]==0){D+=' class="wl1cal_d_box_content"'}else{D+=' class="wl1cal_d_box_content_today"'}if(this._config.acl=="write"){D+=' onclick="javascript: Weblife1.Appointment.showCreateUpdateBox(this);"'}D+=' style="width:'+Math.floor(((this._coorddiv.getWidth()-this._config.timespace-(3*this._config.bordersize))/this._config.weekdays)-this._config.bordersize)+'px"></div>'}D+="</div>"}D+="</div>";this._coorddiv.innerHTML=D;$("wl1cal_header_title").innerHTML=this.getHeaderDates()},next:function(){this._config.currentdate.setDate(this._config.currentdate.getDate()+this._config.weekdays);this.setDynamicConfig();this.renderExtendedLayout();this.reDraw();$("wl1cal_header_title").innerHTML=this.getHeaderDates()},prev:function(){this._config.currentdate.setDate(this._config.currentdate.getDate()-this._config.weekdays);this.setDynamicConfig();this.renderExtendedLayout();this.reDraw();$("wl1cal_header_title").innerHTML=this.getHeaderDates()},today:function(){this._config.currentdate=new Date();this.setDynamicConfig();this.renderExtendedLayout();this.reDraw();$("wl1cal_header_title").innerHTML=this.getHeaderDates()},getDayArray:function(){days=new Array(this._config.weekdays);date=new Date();startdate=new Date(Weblife1.Calendar.getYear(this._config.currentdate),this._config.currentdate.getMonth(),this._config.currentdate.getDate());for(var A=0;A<this._config.weekdays;A++){days[A]=new Array();days[A][0]=startdate.getDate();if(Weblife1.Calendar.getYear(date)==Weblife1.Calendar.getYear(this._config.currentdate)&&date.getMonth()==this._config.currentdate.getMonth()&&date.getDate()==days[A][0]){days[A][1]=1}else{days[A][1]=0}days[A][2]=Weblife1.Calendar.cloneDate(startdate);startdate.setDate(startdate.getDate()+1)}return days},getHeaderDates:function(){var A="";startdate=new Date(Weblife1.Calendar.getYear(this._config.currentdate),this._config.currentdate.getMonth(),this._config.currentdate.getDate());if(this._config.weekdays==1){A=(startdate.getDate())+". "+(this._config.language.months[startdate.getMonth()])}else{A=(startdate.getDate())+". "+(this._config.language.months[startdate.getMonth()])+" - ";startdate.setDate(startdate.getDate()+(this._config.weekdays-1));A+=(startdate.getDate())+". "+(this._config.language.months[startdate.getMonth()])}return A},getDatesForObject:function(A){dayofweek=Weblife1.Calendar.leftShiftDay(this._config.currentdate.getDay());startdate=new Date(Weblife1.Calendar.getYear(this._config.currentdate),this._config.currentdate.getMonth(),(this._config.currentdate.getDate()-dayofweek));startdate.setDate(startdate.getDate()+A.sday);startdate.setHours(Math.floor(A.shour/2));startdate.setMinutes((A.shour%2)*30);enddate=Weblife1.Calendar.cloneDate(startdate);if(startdate.getHours()<23){enddate.setHours(startdate.getHours()+1)}return{startdate:startdate,enddate:enddate}},draw:function(){this._infoOneDay=new Array(this._config.weekdays);for(var C=0;C<this._infoOneDay.length;C++){this._infoOneDay[C]=new Array(this._config.hours*this._config.accuracy);for(var B=0;B<(this._config.hours*this._config.accuracy);B++){this._infoOneDay[C][B]=0}}this._slotOneDay=new Array(this._config.weekdays);for(var C=0;C<this._slotOneDay.length;C++){this._slotOneDay[C]=new Array(this._config.hours*this._config.accuracy);for(var B=0;B<(this._config.hours*this._config.accuracy);B++){this._slotOneDay[C][B]=0}}this._slotMoreDay=new Array(this._config.weekdays);for(var C=0;C<this._slotMoreDay.length;C++){this._slotMoreDay[C]=new Array(this._config.moredayslots);for(var B=0;B<this._config.moredayslots;B++){this._slotMoreDay[C][B]=false}}for(var A=0;A<this._config.onedayappointments.length;++A){this.increaseInfoOneDay(this._config.onedayappointments[A])}for(var A=0;A<this._config.moredayappointments.length;++A){if(this.isInView(this._config.moredayappointments[A].startdate,this._config.moredayappointments[A].enddate)){this.drawMoreDayAppointment(this._config.moredayappointments[A])}}var D=null;for(var A=0;A<this._config.onedayappointments.length;++A){if(this.isInView(this._config.onedayappointments[A].startdate,this._config.onedayappointments[A].enddate)){if(D==null){D=this._config.onedayappointments[A].appointmentId}this.drawOneDayAppointment(this._config.onedayappointments[A])}}},isInView:function(B,A){start=Date.parse(B);end=Date.parse(A);if(this._config.weekdays==1){if(((start>=this._config.startstamp)&&(start<=this._config.endstamp))||((end>=this._config.startstamp)&&(end<=this._config.endstamp))||((start<=this._config.startstamp)&&(end>=this._config.endstamp))){return 1}}else{if(((start>this._config.startstamp)&&(start<this._config.endstamp))||((end>this._config.startstamp)&&(end<this._config.endstamp))){return 1}}return 0},drawMoreDayAppointment:function(A){startdaynumber=this.getStartDayNumber(A.startdate);enddaynumber=this.getEndDayNumber(A.enddate);if(A.show=="true"){if(this._config.weekdays==1){if((A.startdate.getDate()<this._config.currentdate.getDate())&&(A.enddate.getDate()>this._config.currentdate.getDate())){var C='<div class="wl1cal_moreleft"><div class="wl1cal_moreright">'+A.subject+"</div></div>"}else{if(A.enddate.getDate()>this._config.currentdate.getDate()){var C='<div class="wl1cal_moreright">&nbsp;'+A.subject+"</div>"}else{if(A.startdate.getDate()<this._config.currentdate.getDate()){var C='<div class="wl1cal_moreleft">'+A.subject+"</div>"}else{var C=A.subject}}}}else{if(Weblife1.Calendar.getWeekOfYear(A.startdate)==Weblife1.Calendar.getWeekOfYear(A.enddate)){var C=A.subject}else{if((Weblife1.Calendar.getWeekOfYear(A.startdate)<Weblife1.Calendar.getWeekOfYear(this._config.currentdate))&&(Weblife1.Calendar.getWeekOfYear(A.enddate)>Weblife1.Calendar.getWeekOfYear(this._config.currentdate))){var C='<div class="wl1cal_moreleft"><div class="wl1cal_moreright">'+A.subject+"</div></div>"}else{if(Weblife1.Calendar.getWeekOfYear(A.enddate)>Weblife1.Calendar.getWeekOfYear(this._config.currentdate)){var C='<div class="wl1cal_moreright">&nbsp;'+A.subject+"</div>"}else{if(Weblife1.Calendar.getWeekOfYear(A.startdate)<Weblife1.Calendar.getWeekOfYear(this._config.currentdate)){var C='<div class="wl1cal_moreleft">'+A.subject+"</div>"}}}}}coords=this.getNextCoords(startdaynumber);var B=0;if(this._config.weekdays==1){B=this._config.appointmentLength-(2*this._config.bordersize)}else{B=((enddaynumber-startdaynumber+1)*(this._config.contentWidth))+((enddaynumber-startdaynumber)*this._config.bordersize)}if(this._config.showInfoBox){onclickevent="javascript: Weblife1.Appointment.showDetailBox("+A.appointmentId+");"}else{onclickevent=""}$(this._config.coorddivheader).insert('<div id="'+A.appointmentId+'" class="wl1cal_m_appointment wl1cal_wd_apointment"title="'+A.subject+'" onclick="'+onclickevent+'"style="width: '+B+"px; height: "+this._config.appointmentheight+"px; left: "+coords.x+'px; ">'+C+"</div>");this.closeSlots(startdaynumber,enddaynumber)}},checkHeaderHeight:function(A){nextslot=this.getNextSlot(A);if(nextslot>this._config.headerDayCount){newval=((nextslot+1)*(this._config.appointmentheight+(2*this._config.appointmentspace)));$(this._config.coorddivheader).setStyle({height:(newval+"px")});$(this._config.coorddivheader+"_time").setStyle({height:(newval+"px")});$(this._config.coorddivheader+"_scroll").setStyle({height:(newval+"px")});this._config.headerDayCount=nextslot}},getNextCoords:function(C){var B=Math.floor(C*(this._config.contentWidth+this._config.bordersize));var A=Math.floor((this._config.bordersize)+(this.getNextSlot(C)*(this._config.appointmentheight+this._config.appointmentspace)));return{x:B,y:A}},getNextSlot:function(A){for(var B=0;B<this._config.moredayslots;B++){if(this._slotMoreDay[A][B]==false){return B}}return 10000},closeSlots:function(B,C){var A=this.getNextSlot(B);while(B<=C){this._slotMoreDay[B][A]=true;B++}},getStartDayNumber:function(A){if(Weblife1.Calendar.getWeekOfYear(A)<Weblife1.Calendar.getWeekOfYear(this._config.currentdate)){return 0}else{return this.getDayNumberForDate(A)}},getEndDayNumber:function(A){if(Weblife1.Calendar.getWeekOfYear(A)>Weblife1.Calendar.getWeekOfYear(this._config.currentdate)){return this._config.weekdays-1}else{return this.getDayNumberForDate(A)}},drawOneDayAppointment:function(B){daynumber=this.getDayNumberForDate(B.startdate);starthour=this.getHournumberForDate(B.startdate);duration=this.getDurationnumber(B.startdate,B.enddate);maxparallel=this.getMaximumParallelAppointments(daynumber,starthour,duration);slotcount=this._slotOneDay[daynumber][starthour];if(B.show=="true"){var D="";if(B.startdate.getHours()<10){D+="0"}D+=B.startdate.getHours()+":";if(B.startdate.getMinutes()<10){D+="0"}D+=B.startdate.getMinutes()+": "+B.subject;if(this._config.weekdays==1){coords=this.getOneDayCoords(daynumber,starthour,Math.floor(this._config.contentWidth/maxparallel))}else{coords=this.getOneDayCoords(daynumber,starthour,this._config.adjustment)}var C=B.subject;var A=(this._config.quarterhourheight+((duration*(this._config.quarterhourheight+this._config.correctIE))+((duration/(this._config.accuracy))*this._config.bordersize))-this._config.bordersize);if(this._config.showInfoBox){onclickevent="javascript: Weblife1.Appointment.showDetailBox("+B.appointmentId+");"}else{onclickevent=""}if(slotcount==(this._config.adjustment_multiplier-1)&&this._config.weekdays==7){$(this._config.appdiv).insert('<div class="wl1cal_m_appointment"title="'+this._config.language.more+'" onclick="cal.viewDay(\''+B.startdate.print("%Y-%m-%d")+'\')"style="width: '+this.calculateLength(slotcount)+"px; height: "+A+"px;left: "+coords.x+"px; top: "+coords.y+'px; border-top: 1px solid #FFF; border-left: 1px solid #FFF;">[+]</div>')}if(slotcount<(this._config.adjustment_multiplier-1)||this._config.weekdays!=7){$(this._config.appdiv).insert('<div id="'+B.appointmentId+'" class="wl1cal_m_appointment"title="'+C+'" onclick="'+onclickevent+'"style="width: '+this.calculateLength(slotcount)+"px; height: "+A+"px;left: "+coords.x+"px; top: "+coords.y+'px; border-top: 1px solid #FFF; border-left: 1px solid #FFF;">'+D+"</div>")}this.increaseSlotOneDay(B)}},getOneDayCoords:function(E,C,G){var H=this._infoOneDay[E][C];var A=this._slotOneDay[E][C];var F=0;if(H!=0){F=A*G}var D=Math.floor((E*(this._config.contentWidth+this._config.bordersize+this._config.correctIE))+F+this._config.timespace+(2*this._config.bordersize));var B=(((C+1)/2)*(this._config.halfhourheight+this._config.bordersize+this._config.correctIE))+this._config.bordersize+((C/this._config.accuracy)*this._config.correctIE);return{x:D,y:B}},getMaximumParallelAppointments:function(B,A,D){count=0;for(var C=0;C<D;C++){if(this._infoOneDay[B][A+C]>count){count=this._infoOneDay[B][A+C]}}return count},calculateLength:function(A){return(this._config.contentWidth-(A*this._config.adjustment))-(6*this._config.bordersize)},reDraw:function(){this.setDynamicConfig();this.clear();this.draw()},getContentWidth:function(){return Math.floor(((this._coorddiv.getWidth()-this._config.timespace-this._config.scrollbarspace-(3*this._config.bordersize))/this._config.weekdays)-this._config.bordersize)},getAppointmentLength:function(){return this.getContentWidth()-(4*this._config.bordersize)},getDayNumberForDate:function(A){if(this._config.weekdays==1){return 0}return Weblife1.Calendar.leftShiftDay(A.getDay())},getHournumberForDate:function(B){var A=((B.getHours()*this._config.accuracy)+Math.floor(B.getMinutes()/(60/this._config.accuracy)))-1;if(A<=0){return 0}else{return A}},getDurationnumber:function(B,A){return(this.getHournumberForDate(A)-this.getHournumberForDate(B))-1},increaseInfoOneDay:function(A){daynumber=this.getDayNumberForDate(A.startdate);starthour=this.getHournumberForDate(A.startdate);for(var B=0;B<=this.getDurationnumber(A.startdate,A.enddate);B++){this._infoOneDay[daynumber][starthour+B]++}},increaseSlotOneDay:function(A){daynumber=this.getDayNumberForDate(A.startdate);starthour=this.getHournumberForDate(A.startdate);for(var B=0;B<=this.getDurationnumber(A.startdate,A.enddate);B++){this._slotOneDay[daynumber][starthour+B]++}},scrollToTime:function(){},hideAppointments:function(B){for(var A=0;A<this._config.moredayappointments.length;++A){if(this._config.moredayappointments[A].calendarId==B){this._config.moredayappointments[A].show="false"}}for(var A=0;A<this._config.onedayappointments.length;++A){if(this._config.onedayappointments[A].calendarId==B){this._config.onedayappointments[A].show="false"}}},showAppointments:function(B){for(var A=0;A<this._config.moredayappointments.length;++A){if(this._config.moredayappointments[A].calendarId==B){this._config.moredayappointments[A].show="true"}}for(var A=0;A<this._config.onedayappointments.length;++A){if(this._config.onedayappointments[A].calendarId==B){this._config.onedayappointments[A].show="true"}}},removeAppointment:function(A){this.clear();for(var B=0;B<this._config.moredayappointments.length;++B){if(this._config.moredayappointments[B].appointmentId==A){this._config.moredayappointments.splice(B,1)}}for(var B=0;B<this._config.onedayappointments.length;++B){if(this._config.onedayappointments[B].appointmentId==A){this._config.onedayappointments.splice(B,1)}}this.draw()}};