/**
 * /modules/calendar/javascript/jquery.htmlEncode.js (2009-07-03 05:57:52)
 */;(function($){var htmlEncodeDiv=null;$.htmlEncode=function(text){if(text===null){return null;}
if(text===''){return'';}
if(htmlEncodeDiv===null){htmlEncodeDiv=$('<div></div>');}
var html=htmlEncodeDiv.text(text).html();html=html.replace(/"/g,'&quot;');return html;}})(jQuery);
/**
 * /modules/calendar/javascript/jquery.revealer.js (2009-06-30 01:04:44)
 */;(function($){ $.fn.revealer=function(options){var options=$.extend({},$.fn.revealer.defaults,options);var self=this;var callback=function(event){var value=options.getter(self,this);if(value===undefined){return;}
for(mapIndex in options.mapping){if(mapIndex==value){options.mapping[mapIndex].each(function(){options.matched(self,this);});}else{options.mapping[mapIndex].each(function(){options.unmatched(self,this);});}}};$(self).bind(options.event,callback);return this.each(function(){callback.apply(this);});};$.fn.revealer.defaults={event:'change',mapping:{},getter:function(revealer,element){var element=$(element);var node=element.attr('nodeName').toLowerCase();if(node=='input'){var type=element.attr('type').toLowerCase();if(type=='checkbox'&&!element.attr('checked')){return null;}
if(type=='radio'&&!element.attr('checked')){return;}}
return element.val();},matched:function(revealer,element){ $(element).show();},unmatched:function(revealer,element){ $(element).hide();}};})(jQuery);
/**
 * /modules/calendar/javascript/jquery.calendarBubble.js (2009-07-27 04:18:52)
 */;(function($){ $.__calendarBubbleDiv=null;$.__calendarBubbleMousePosition={x:0,y:0};$.calendarBubbleShow=function(mousePosition,headerHTML,bodyHTML,bindDocumentClick){if(bindDocumentClick===undefined){bindDocumentClick=true;}
var bubble=$.calendarBubbleGet();if(mousePosition!==undefined&&mousePosition!==null){ $.__calendarBubbleMousePosition=mousePosition;}
if(headerHTML!==undefined&&headerHTML!==null){bubble.find('#bubble-header').html(headerHTML);}
if(bodyHTML!==undefined&&bodyHTML!==null){bubble.find('#bubble-body').html(bodyHTML);}
mousePosition=$.__calendarBubbleMousePosition;bubble.css({top:'0',left:'0'}).show();var width=bubble.outerWidth();var height=bubble.outerHeight()+bubble.find('#bubble-arrow').outerHeight();var top=mousePosition.y-height-10;var left=mousePosition.x+6;var overHang=$(window).width()-left-width-10;if(overHang<0){left+=overHang;}
overHang=top-10;if(overHang<0){top-=overHang;}
bubble.css({top:top+'px',left:left+'px'});$(document.body).unbind('click',$.calendarBubbleHide);if(bindDocumentClick){window.setTimeout(function(){ $(document.body).one('click',$.calendarBubbleHide);},1);}
return bubble;};$.calendarBubbleHide=function(triggerEvent){if(triggerEvent===undefined){triggerEvent=true;}
var bubble=$.calendarBubbleGet();bubble.hide();bubble.find('#bubble-header').html('');bubble.find('#bubble-body').html('');$('.colorpicker').remove();if(triggerEvent){bubble.trigger('closed');}
$(document.body).unbind('click',$.calendarBubbleHide);return bubble;};$.calendarBubbleGet=function(){if($.__calendarBubbleDiv===null){ $.__calendarBubbleDiv=$('#calendar-bubble');if(!$.__calendarBubbleDiv.length){ $.__calendarBubbleDiv=$('<div id="calendar-bubble" style="display:none;"><div id="bubble-header"></div><div id="bubble-body"></div><div id="bubble-arrow"></div><div id="bubble-close"><a href="#"><span>X</span></a></div></div>').appendTo(document.body);}
$.__calendarBubbleDiv.find('#bubble-close a').click(function(event){event.preventDefault();$.calendarBubbleHide();});}
return $.__calendarBubbleDiv;};})(jQuery);
/**
 * /modules/calendar/javascript/jquery.dateRange.js (2009-07-17 00:55:21)
 */;(function($){ $.dateRange=function(date1,date2,options){var options=$.extend({},$.dateRange.defauts,options);var dateSpecifiers='dDjlNSwz';var monthSpecifiers='FmMnt';var yearSpecifiers='LoYy';var timeSpecifiers='BgGhHisu';var meridianSpecifiers='aA';var format=options.format;if(options.detail!='time'){format=$.dateRange.stripChars(format,timeSpecifiers+meridianSpecifiers);}
var leftFormat=format;var rightFormat=format;var left=$.date('YmdHisa',date1);var right=$.date('YmdHisa',date2);var sameMonth=false;var sameDate=false;var sameTime=false;var sameMeridian=false;var sameYear=left.substr(0,4)==right.substr(0,4);if(sameYear){sameMonth=left.substr(0,6)==right.substr(0,6);if(sameMonth){sameDate=left.substr(0,8)==right.substr(0,8);if(sameDate&&options.detail=='time'){sameTime=left==right;if(sameTime){sameMeridian=true;}else{sameMeridian=left.substr(10,2)&&right.substr(10,2);}}}}
if(sameYear){leftFormat=$.dateRange.stripChars(leftFormat,yearSpecifiers);rightFormat=$.dateRange.stripChars(rightFormat,yearSpecifiers);}
if(sameMonth){rightFormat=$.dateRange.stripChars(rightFormat,monthSpecifiers);}
if(sameDate){rightFormat=$.dateRange.stripChars(rightFormat,dateSpecifiers);}
if(sameTime){rightFormat=$.dateRange.stripChars(rightFormat,timeSpecifiers+meridianSpecifiers);}
if(sameMeridian){leftFormat=$.dateRange.stripChars(leftFormat,meridianSpecifiers);}
var trimRxp=new RegExp('(^\\s*['+options.trim+']|['+options.trim+']\\s*$|\\s+['+options.trim+']|['+options.trim+']{2,}|^\\s+|\\s+$)','g');var leftResult=$.date(leftFormat,date1).replace(trimRxp,'').replace(trimRxp,'');var rightResult=$.date(rightFormat,date2).replace(trimRxp,'').replace(trimRxp,'');var result=leftResult;if(rightResult){result+=options.separator+rightResult;}else{if(options.detail=='day'){result=options.dayOnlyPrefix+result;}}
return result;};$.dateRange.defauts={format:'D, F j, Y, g:ia',dayOnlyPrefix:'',trim:',:',detail:'time',separator:' - '};$.dateRange.stripChars=function(string,characters){return string.replace(new RegExp('['+characters+']','g'),'');};})(jQuery);
/**
 * /modules/calendar/javascript/calendar.common.js (2009-07-15 01:54:52)
 */
if(typeof String.prototype.ucFirst=='undefined'){String.prototype.ucFirst=function(){return this.substr(0,1).toUpperCase()+this.substr(1);};}
if(typeof Date.prototype.addTime=='undefined'){Date.prototype.addTime=function(msec){var offset1=this.getTimezoneOffset();this.setTime(this.getTime()+msec);var offset2=this.getTimezoneOffset();if(offset1!=offset2){var diff=(offset2-offset1)*60000;this.setTime(this.getTime()+diff)}};}
if(typeof Date.prototype.addDate=='undefined'){Date.prototype.addDate=function(days){this.setDate(this.getDate()+days);};}
if(typeof Date.prototype.equals=='undefined'){Date.prototype.equals=function(date){return this.getTime()==date.getTime();};}
if(typeof Date.prototype.setMidnight=='undefined'){Date.prototype.setMidnight=function(){this.setHours(0,0,0,0);};}
if(typeof Date.prototype.diffMsec=='undefined'){Date.prototype.diffMsec=function(date){var tzDiff=(date.getTimezoneOffset()-this.getTimezoneOffset())*60000;var diff=date.getTime()-this.getTime()-tzDiff;return diff;}}
if(typeof Date.prototype.diffDays=='undefined'){Date.prototype.diffDays=function(date,inclusive){if(inclusive===undefined){var inclusive=true;}
var d1=this.copy();d1.setMidnight();var d2=date.copy();if(!inclusive){d2.addTime(-1);}
d2.setMidnight();var tzDiff=(d2.getTimezoneOffset()-d1.getTimezoneOffset())*60000;var diff=(d2.getTime()-d1.getTime()-tzDiff)/IWP_Module_Calendar.msecPerDay;return diff;};}
if(typeof Date.prototype.isTime=='undefined'){Date.prototype.isTime=function(hour,minute,second,msec){if(hour!==this.getHours()){return false;}
if(typeof minute=='undefined'){return true;}
if(minute!==this.getMinutes()){return false;}
if(typeof second=='undefined'){return true;}
if(second!==this.getSeconds()){return false;}
if(typeof msec=='undefined'){return true;}
if(msec!==this.getMilliseconds()){return false;}
return true;};}
if(typeof Date.prototype.copy=='undefined'){Date.prototype.copy=function(){return new Date(this.getTime());};}
jQuery(function($){ $('.calendar-container').each(function(){var jThis=$(this);if(jThis.attr('id')){return;}
var uniqueId=IWP_Module_Calendar.generateUniqueId();jThis.attr('id','module-calendar-'+uniqueId);new IWP_Module_Calendar(uniqueId);});});IWP_Module_Calendar_Event=function(id){var $=jQuery;var self=this;if(id===undefined){id=IWP_Module_Calendar.generateUniqueId();}
self.id=id;self.summary=null;self.location=null;self.description=null;self.start=null;self.end=null;self.color=null;self.editable=false;self.deleteable=false;self.duration=null;self.daySpan=null;self.allDay=null;self.calculateValues=function(){self.duration=self.start.diffMsec(self.end);self.daySpan=self.start.diffDays(self.end,false)+1;self.allDay=self.start!=self.end&&self.start.isTime(0,0,0,0)&&self.end.isTime(0,0,0,0);};};IWP_Module_Calendar_Event.HexToRGB=function(hex){var hex=parseInt(((hex.indexOf('#')>-1)?hex.substring(1):hex),16);return{r:hex>>16,g:(hex&0x00FF00)>>8,b:(hex&0x0000FF)};};IWP_Module_Calendar_Event.RGBToYUV=function(rgb){var y,u,v,r,g,b;r=rgb.r;g=rgb.g;b=rgb.b;y=r*.299000+g*.587000+b*.114000;u=r*-.168736+g*-.331264+b*.500000+128;v=r*.500000+g*-.418688+b*-.081312+128;return{y:y,u:u,v:v};};IWP_Module_Calendar_Event.HexToYUV=function(hex){return IWP_Module_Calendar_Event.RGBToYUV(IWP_Module_Calendar_Event.HexToRGB(hex));};IWP_Module_Calendar_Occurrence=function(event,start){var $=jQuery;var self=this;self.event=event;self.start=start;self.id=event.id+'e'+$.date('YmdHi',start);self.end=self.start.copy();self.end.addTime(event.duration);self.startDay=self.start.copy();self.startDay.setMidnight();$(self).bind('click',function(event,clickEvent){clickEvent.preventDefault();clickEvent.stopPropagation();});};IWP_Module_Calendar_OccurrenceTreeNode=function(parent,baseOccurrence,occurrences){var self,parents;self=this;self.occurrence=baseOccurrence;self.parents=[parent];self.depth=self.parents[0].depth+1;self.children=[];self.getChildrenDepth=function(){var i,max,childDepth;max=self.depth;for(i=self.children.length;i--;){childDepth=self.children[i].getChildrenDepth();if(childDepth>max){max=childDepth;}}
return max;};self.getFlatNodeList=function(){var nodes;nodes=[self];for(i=0;i<self.children.length;i++){nodes=nodes.concat(self.children[i].getFlatNodeList());}
return nodes;};while(occurrence=occurrences.shift()){if(occurrence.start>=self.occurrence.end){occurrences.unshift(occurrence);break;}
parents=self.parents[0];breakMainLoop=false;while(parents&&parents.occurrence){if(occurrence.start>=parents.occurrence.end){occurrences.unshift(occurrence);breakMainLoop=true;break;}
parents=parents.parents[0];}
if(breakMainLoop){break;}
self.children.push(new IWP_Module_Calendar_OccurrenceTreeNode(self,occurrence,occurrences));}};IWP_Module_Calendar_OccurrenceTree=function(_occurrences){var self,occurrences,occurrence;self=this;self.parents=null;self.occurrence=null;self.depth=0;self.children=[];occurrences=_occurrences.concat();self.getFlatNodeList=function(){var nodes,i;nodes=[];for(i=0;i<self.children.length;i++){nodes=nodes.concat(self.children[i].getFlatNodeList());}
return nodes;};while(occurrence=occurrences.shift()){if(occurrence.event.allDay||occurrence.event.daySpan>1){continue;}
self.children.push(new IWP_Module_Calendar_OccurrenceTreeNode(self,occurrence,occurrences));}};IWP_Module_Calendar=function(uniqueId,options){var $=jQuery;var self=this;self.options=$.extend({},IWP_Module_Calendar.defaults,options);IWP_Module_Calendar.instances.list.push(this);if(typeof uniqueId=='object'){ $(self,uniqueId);}else{self.uniqueId=uniqueId;}
self.init=function(){self.renderContainer=$('#module-calendar-'+self.uniqueId).addClass('calendar-container');self.createdViews=[];self.parseAvailableViews();self.updateData();};var firstDayOfWeek=0;self.getFirstDayOfWeek=function(){return firstDayOfWeek;};self.setFirstDayOfWeek=function(value){if(value===undefined){return;}
if(firstDayOfWeek!=value){firstDayOfWeek=value;$(self).trigger('firstdayofweekchange');}};self._date=new Date();self.getDate=function(){return self._date.copy();};self.setDate=function(date,silent){if(silent===undefined){silent=false;}
var oldDate=self._date;self._date=date.copy();self.updateData();$(self).trigger('datechange',[oldDate,silent]);};self.updateData=function(){var caches=[]
var current=self.getDate();caches.push($.date('Ym',current));current.setMonth(current.getMonth()+1);caches.push($.date('Ym',current));current.setMonth(current.getMonth()-2);caches.push($.date('Ym',current));for(var cachesCounter=0;cachesCounter<caches.length;cachesCounter++){var cacheKey=caches[cachesCounter];if(IWP_Module_Calendar.occurrences[cacheKey]===undefined){IWP_Module_Calendar.occurrences[cacheKey]='pending';var uri=IWP_Module_Calendar.occurrenceHandler.replace(/%%range%%/gi,cacheKey);$.getJSON(iwp.config.get('siteURL')+uri,{},self.updateDataCallback);}}};self.clearData=function(silent,andUpdate){if(silent===undefined){silent=false;}
if(andUpdate===undefined){andUpdate=false;}
var key;for(key in IWP_Module_Calendar.occurrences){if(/^\d{4,8}$/.test(key)){delete IWP_Module_Calendar.occurrences[key];}}
if(!silent){ $(IWP_Module_Calendar.occurrences).trigger('change',[false,false]);}
if(andUpdate){self.updateData();}};self.updateDataCallback=function(data,status){if(typeof data=='undefined'||!data.k){return;}
var occurrences=[];for(var eventCounter=data.e.length;eventCounter--;){var eventData=data.e[eventCounter];if(IWP_Module_Calendar.events[eventData.i]){var event=IWP_Module_Calendar.events[eventData.i];}else{var event=new IWP_Module_Calendar_Event(eventData.i);IWP_Module_Calendar.events[eventData.i]=event;}
event.summary=eventData.s;event.location=eventData.l;event.description=eventData.d;event.color=eventData.c;if(eventData.ce!==undefined){event.editable=eventData.ce;}
if(eventData.cd!==undefined){event.deleteable=eventData.cd;}
event.start=IWP_Module_Calendar.parseJSONDate(eventData.ds);event.end=IWP_Module_Calendar.parseJSONDate(eventData.de);event.calculateValues();for(var occurrenceCounter=0;occurrenceCounter<eventData.o.length;occurrenceCounter++){var occurrenceData=eventData.o[occurrenceCounter];var occurrence=new IWP_Module_Calendar_Occurrence(event,IWP_Module_Calendar.parseJSONDate(occurrenceData));occurrences.push(occurrence);}}
IWP_Module_Calendar.occurrences[data.k]=occurrences;var pending=false;for(var cacheKey in IWP_Module_Calendar.occurrences){if(IWP_Module_Calendar.occurrences[cacheKey]==='pending'){pending=true;break;}}
$(IWP_Module_Calendar.occurrences).trigger('change',[pending,data.k]);};self.getOccurrences=function(from,to){var counter=from.copy();counter.setDate(1);var results={};while(counter<to){var cacheKey=$.date('Ym',counter);if(typeof IWP_Module_Calendar.occurrences[cacheKey]=='object'){var occurrences=IWP_Module_Calendar.occurrences[cacheKey];for(var occurrenceCounter=0;occurrenceCounter<occurrences.length;occurrenceCounter++){var occurrence=occurrences[occurrenceCounter];if(occurrence.start<to&&occurrence.end>from){results[occurrence.event.id+'_'+$.date('YmdHis',occurrence.start)]=occurrence;}}}
counter.setMonth(counter.getMonth()+1);}
var sortedResults=[];for(var occurrenceKey in results){sortedResults.push(results[occurrenceKey]);}
sortedResults.sort(function(a,b){var value;value=a.startDay.getTime()-b.startDay.getTime();if(value!=0){return value;}
value=b.event.daySpan-a.event.daySpan;if(value!=0){return value;}
value=b.event.allDay-a.event.allDay;if(value!=0){return value;}
value=a.event.start.getTime()-b.event.start.getTime();if(value!=0){return value;}
if(a.event.summary<b.event.summary){return-1;}else if(a.event.summary>b.event.summary){return 1;}
return 0;});return sortedResults;}
self._today=new Date();self.getToday=function(){return self._today.copy();};self.setToday=function(today){self._today=today.copy();$(self).trigger('todaychange');};self.parseAvailableViews=function(){self.availableViews=[];var first=null;self.renderContainer.find('.calendar-view').each(function(){var viewTemplate=$(this);$.each(viewTemplate.attr('className').split(/\s+/),function(){if(!/^calendar\-view\-(.*)/i.test(this)){return;}
var viewName=RegExp.$1;self.availableViews.push(viewName);if(viewTemplate.hasClass('calendar-firstview')){first=viewName;}});self.availableViews=$.unique(self.availableViews);});self.renderContainer.find('.viewnavigator').remove();if(self.availableViews.length<1){return;}
if(self.availableViews.length<2){self.showView(0);return;}
var viewNavigator=$('<ul class="viewnavigator"></ul>').prependTo(self.renderContainer);$.each(self.availableViews,function(){var viewClassName=this.ucFirst();var viewClass=IWP_Module_Calendar.viewClasses[viewClassName];if(!viewClass){return;}
var viewInstance=self.getView(viewClassName);var navigatorLink=$('<li class="viewnavigator-'+viewClassName+'"><a href="#'+viewClassName+'"><span>?</span></a></li>').appendTo(viewNavigator);navigatorLink.find('span').text(viewClass.viewName);navigatorLink.find('a').click(self.viewNavigatorClick);});if(first===null){self.showView(0);}else{self.showView(first.ucFirst());}};self.viewNavigatorClick=function(event){event.preventDefault();var matches=$(this).attr('href').match(/#(.+)$/);if(matches===null){return;}
self.showView(matches[1]);};self.getViewClassByAvailableIndex=function(index){return self.availableViews[index].ucFirst();}
self.getView=function(viewClass){switch(typeof viewClass){case'number':viewClass=IWP_Module_Calendar.viewClasses[self.getViewClassByAvailableIndex(viewClass)];break;case'string':viewClass=IWP_Module_Calendar.viewClasses[viewClass];break;}
for(var i=self.createdViews.length;i--;){if(self.createdViews[i].constructor==viewClass){return self.createdViews[i];}}
var view=new viewClass(self);$(view).bind('occurrenceclick',self.onOccurrenceClick);self.createdViews.push(view);return view;};self._currentView=null;self.getNewEventColor=function(){return'6A99D4';};self.getCurrentView=function(){return self._currentView;};self.showView=function(viewClass){if(typeof viewClass=='number'){viewClass=self.getViewClassByAvailableIndex(viewClass);}
var view=self.getView(viewClass);self._currentView=null;self.renderContainer.find('.viewnavigator li').removeClass('current').addClass('not-current');var viewToShow=null;for(var i=self.createdViews.length;i--;){var createdView=self.createdViews[i];if($.isFunction(createdView.clearSelectHighlight)){createdView.clearSelectHighlight();}
if(createdView===view){var scroll=$(window).scrollTop();self._currentView=createdView;for(var i=self.createdViews.length;i--;){if(self.createdViews[i]!==self._currentView){self.createdViews[i].hide();}}
self.renderContainer.find('.viewnavigator-'+viewClass).addClass('current').removeClass('not-current');self._currentView.show();self.deselectRanges();if(scroll){ $(window).scrollTop(scroll);}
$(self).trigger('viewchange',[self._currentView,viewClass]);break;}}};self.onOccurrenceClick=function(event,clickEvent,occurrence){ $(occurrence).trigger('click',[clickEvent]);$(self).trigger('occurrenceclick',[clickEvent,occurrence]);};self.deselectRanges=function(){for(var i=self.createdViews.length;i--;){var view=self.createdViews[i];if($.isFunction(view.deselectRanges)){view.deselectRanges();}}};self.init();$(IWP_Module_Calendar.instances).trigger('newinstance',[this]);};IWP_Module_Calendar.dateFormats={dmy:0,mdy:1,ymd:2};IWP_Module_Calendar.defaults={occurrenceDragging:false,rangeSelection:false,preferredDateFormat:IWP_Module_Calendar.dateFormats.dmy};IWP_Module_Calendar.occurrenceHandler='/calendar-remote/occurrences/%%range%%.json';IWP_Module_Calendar.occurrences={};IWP_Module_Calendar.getOccurrenceById=function(occurrenceId){for(var cacheKey in IWP_Module_Calendar.occurrences){if(IWP_Module_Calendar.occurrences[cacheKey].constructor!==Array){continue;}
for(var occurrenceCounter=IWP_Module_Calendar.occurrences[cacheKey].length;occurrenceCounter--;){if(IWP_Module_Calendar.occurrences[cacheKey][occurrenceCounter].id==occurrenceId){return IWP_Module_Calendar.occurrences[cacheKey][occurrenceCounter];}}}};IWP_Module_Calendar.events={};IWP_Module_Calendar.msecPerDay=86400000;IWP_Module_Calendar.instances={};IWP_Module_Calendar.instances.list=[];IWP_Module_Calendar.generateUniqueId=function(){return((Math.random()*899999)+100000).toFixed(0);};IWP_Module_Calendar.parseJSONDate=function(string){var parts=string.match(/^(\d{4})(\d{2})(\d{2})((\d{2})(\d{2}))?$/);if(parts===null){return;}
var year=parts[1];var month=parts[2];var date=parts[3];if(parts[4]){var hours=parts[5];var minutes=parts[6];}else{var hours=0;var minutes=0;}
return new Date(year,month-1,date,hours,minutes,0,0);}
IWP_Module_Calendar.lang={};IWP_Module_Calendar.lang={days_one:["S","M","T","W","T","F","S"],days_short:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],days_long:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],months_short:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]};IWP_Module_Calendar.viewClasses={};IWP_Module_Calendar.brightnessCutoff=160;IWP_Module_Calendar.brightColor='FFFFFF';IWP_Module_Calendar.darkColor='333333';(function($){ $.duration=function(a,b){var duration=Math.abs(b-a);duration=duration/1000;duration=duration/60;var minutes=Math.floor(duration%60);duration=duration/60;var hours=Math.floor(duration%24);duration=duration/24;var days=Math.floor(duration);var output=[];if(days){output.push(days+' '+_pluralise(days,'day','days'));}
if(hours){output.push(hours+' '+_pluralise(hours,'hour','hours'));}
if(minutes){output.push(minutes+' '+_pluralise(minutes,'minute','minutes'));}
var last=output.pop();output=output.join(', ');output+=' and '+last;if(b>a){output+=' away';}else{output+=' ago';}
return output;}
function _pluralise(value,singular,plural){if(value==1){return singular;}
return plural;}})(jQuery);;(function($){ $.dateRangeString=function(dateOne,dateTwo){return $.date('D, M j, h:ia',dateOne)+' - '+$.date('D, M j, h:ia',dateTwo);};})(jQuery);(function($){ $.__GMTTimezoneOffset=0,$.date=function(stringFormat,timestamp){var date,dateString='';if(typeof(stringFormat)==='undefined')
stringFormat='Y-m-d h:i:s';if(typeof(timestamp)==='object'&&timestamp.constructor===Date){date=timestamp;}else{if(typeof(timestamp)==='undefined'||isNaN(timestamp))
timestamp=$.mktime();date=new Date(timestamp*1000);}
var dates=new Object;dates.d=_zeroPad(date.getDate());dates.D=_abbr(_dayName(date));dates.j=date.getDate();dates.l=_dayName(date);dates.N=date.getDay()+1
dates.S=_suffix(date);dates.w=date.getDay();dates.z=(date.getMonth()+1)*date.getDate();dates.F=_monthName(date);dates.m=_zeroPad(date.getMonth()+1);dates.M=_abbr(_monthName(date));dates.n=date.getMonth()+1;dates.t=_daysPerMonth(date);dates.y=date.getFullYear().toString().substring(2,4);dates.Y=date.getFullYear();dates.h=_zeroPad((date.getHours()>12)?(date.getHours()-12):date.getHours()==0?12:date.getHours());dates.H=_zeroPad(date.getHours());dates.g=(date.getHours()>12)?(date.getHours()-12):date.getHours()==0?12:date.getHours();dates.G=date.getHours();dates.i=_zeroPad(date.getMinutes());dates.s=_zeroPad(date.getSeconds());dates.a=(date.getHours()<12)?'am':'pm';dates.A=(date.getHours()<12)?'AM':'PM';dates.p=(date.getHours()<12)?'a':'p';for(var i=0;i<stringFormat.length;i++){var curChar=stringFormat.charAt(i);if(dates[curChar]!==undefined)
dateString+=dates[curChar];else
dateString+=curChar;};return dateString;function _zeroPad(str,len){var pad;var s=str.toString();if(len===undefined)
len=2;for(var i=s.length;i<len;i++)
s='0'+s;return s;};function _dayName(date){var d=date.getDay();var days=new Array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday');return days[d];};function _monthName(date){var m=date.getMonth();var months=new Array('January','February','March','April','May','June','July','August','September','October','November','December');return months[m];};function _abbr(str,len){if(typeof(str)==='undefined')
return false;if(typeof(len)==='undefined')
var len=3;var s=str.toString();return s.substring(0,len);};function _suffix(date){var d=date.getDate();var st=new Array(1,21,31);var nd=new Array(2,22);var rd=new Array(3,23);if($.inArray(d,st)!=-1)
return'st';if($.inArray(d,nd)!=-1)
return'nd';if($.inArray(d,rd)!=-1)
return'rd';return'th';};function _daysPerMonth(date){var d=date.getMonth();var dpm=new Array(31,((_isLeapYear(date))?29:28),31,30,31,30,31,31,30,31,30,31);return dpm[d];};function _isLeapYear(date){var y=date.getYear();if(y%100===0){if(y%400===0)
return true;return false;}
if(y%4===0)
return true;return false;};};$.mktime=function(){var d=new Date(),thisDate=new Date();d.setSeconds((typeof arguments[2]!=='undefined')?parseInt(parseFloat(arguments[2])):thisDate.getSeconds());d.setMinutes((typeof arguments[1]!=='undefined')?parseInt(parseFloat(arguments[1])):thisDate.getMinutes());d.setHours((typeof arguments[0]!=='undefined')?parseInt(parseFloat(arguments[0])):thisDate.getHours());d.setDate((typeof arguments[4]!=='undefined')?parseInt(parseFloat(arguments[4])):thisDate.getDate());d.setMonth((typeof arguments[3]!=='undefined')?parseInt(parseFloat(arguments[3]))-1:thisDate.getMonth());d.setFullYear((typeof arguments[5]!=='undefined')?parseInt(parseFloat(arguments[5])):thisDate.getFullYear());return Math.floor((d.getTime())/1000);};$.timezone=function(gmtHourOffset){if(typeof gmtHourOffset==='undefined')
return $.__GMTTimezoneOffset;var date=new Date();var msec=date.getTime();var offset=-999999;for(var j=0;j<4;++j){date.setTime(msec+j*7884000000);offset=Math.max(offset,date.getTimezoneOffset());}
var localOffset=offset/60;var differenceFromTarget=localOffset+gmtHourOffset;$.__GMTTimezoneOffset=differenceFromTarget;};})(jQuery);
/**
 * /modules/calendar/javascript/calendar.views.week.js (2009-07-20 01:01:17)
 */
IWP_Module_Calendar.viewClasses.Week=function(calendar,initialise){if(initialise==undefined){initialise=true;}
var $=jQuery;var self=this;self.calendar=calendar;self.viewContainer=null;self.columns=7;self.dragResolution=30;self.minimumDuration=self.dragResolution;self.initialDuration=60;self.compactThreshold=30;self.gridHeight=96*11;self.minuteHeight=self.gridHeight/24/60;self.findViewContainer=function(){return self.calendar.renderContainer.find('.calendar-view-week');};self.firstOccurrenceUpdate=true;self.init=function(){self.viewContainer=self.findViewContainer();$(self.calendar).bind('datechange',function(event,oldDate){self.render();});$(IWP_Module_Calendar.occurrences).bind('change',function(event,pending,cacheKey){if(pending){return;}
self.render();self.firstOccurrenceUpdate=false;});};self.getScrollbarWidth=function(){if(self.__scrollbarWidthCache!==null){return self.__scrollbarWidthCache;}
var outer=$('<div></div>').css({position:'absolute',left:0,top:'-1000px',width:'100px',height:'100px',overflow:'auto'});var inner=$('<div></div>').css({width:'100%',height:'200px'}).appendTo(outer);outer.appendTo(document.body);var diff=100-inner.width();if(diff==0){diff=100-outer[0].clientWidth;}
outer.remove();self.__scrollbarWidthCache=diff;return diff;};self.__scrollbarWidthCache=null;self.onTodayClick=function(event){event.preventDefault();var today=self.calendar.getToday();today.setMidnight();self.calendar.setDate(today);};self.onNavigatorPreviousClick=function(event){event.preventDefault();self.deselectRanges();var date=self.calendar.getDate();date.addDate(0-self.columns);self.calendar.setDate(date);};self.onNavigatorNextClick=function(event){event.preventDefault();self.deselectRanges();var date=self.calendar.getDate();date.addDate(self.columns);self.calendar.setDate(date);};self.show=function(){if(!self.hidden()){return;}
self.viewContainer.show();self.render();};self.previousScroll=null;self.hidden=function(){return self.viewContainer.css('display')=='none';}
self.hide=function(){if(self.hidden()){return;}
self.previousScroll=self.viewContainer.find('.week-grid').scrollTop();self.viewContainer.hide();};self.getViewDateRange=function(){var first=self.calendar.getDate();first.setMidnight();first.addTime(0-((first.getDay()-self.calendar.getFirstDayOfWeek())*IWP_Module_Calendar.msecPerDay));var last=first.copy();last.addDate(self.columns);return{first:first,last:last};};self.previousRenderDate=null;self.render=function(){if(self.calendar.getCurrentView()!==self){return;}
var range=self.getViewDateRange();var isReRender=(!self.firstOccurrenceUpdate&&self.previousRenderDate!==null&&self.previousRenderDate.valueOf()==range.first.valueOf());var existingScroll=self.viewContainer.find('.week-grid').scrollTop();var occurrences=self.calendar.getOccurrences(range.first,range.last);var tree=new IWP_Module_Calendar_OccurrenceTree(occurrences);var nodes=tree.getFlatNodeList();var today=self.calendar.getToday();today.setMidnight();var html=[''];var navigatorLast=range.last.copy();navigatorLast.setMidnight();navigatorLast.addTime(-1);if(self.columns==1){var navigatorDateString=$.date('M jS, Y');}else{var firstFormat='M ';if(range.first.getMonth()!=navigatorLast.getMonth()){var lastFormat='M ';}else{var lastFormat='';}
firstFormat+='jS';lastFormat+='jS';if(range.first.getFullYear()!=navigatorLast.getFullYear()){firstFormat+=', Y';}
lastFormat+=', Y';var navigatorDateString=$.date(firstFormat,range.first)+' - '+$.date(lastFormat,navigatorLast);}
html.push('<ul class="datenavigator">');html.push('<li class="previous"><a href="#"><span>&laquo;</span></a></li>');html.push('<li class="date"><span>'+navigatorDateString+'</span></li>');html.push('<li class="next"><a href="#"><span>&raquo;</span></a></li>');html.push('</ul>');html.push('<div class="todaynavigator"><a href="#"><span>'+iwp.lang.get('module_calendar_Today')+'</span></a></div>')
var current;html.push('<div class="week-container">');html.push('<div class="week-top"><table cellspacing="0">')
var columns={};html.push('<thead><tr>');html.push('<td class="times">&nbsp;</td>');current=range.first.copy();for(var i=0;i<self.columns;i++){var currentYmd=$.date('Ymd',current);html.push('<td class="column col-'+currentYmd+'"><a href="#" class="col-'+currentYmd+'"><span>'+$.date(self.calendar.options.preferredDateFormat==IWP_Module_Calendar.dateFormats.mdy?'D n/j':'D j/n',current)+'</span></a></td>')
columns[$.date('Ymd',current)]=[];current.addDate(1);}
html.push('<td class="scrollbar" style="width:'+self.getScrollbarWidth()+'px;">&nbsp;</td>');html.push('</tr></thead>');var occurrence;for(var i=0;i<occurrences.length;i++){occurrence=occurrences[i];if(occurrence.event.daySpan<2&&!occurrence.event.allDay){continue;}
var bgColorYUV=IWP_Module_Calendar_Event.HexToYUV(occurrence.event.color);var fgColor=IWP_Module_Calendar.brightColor;if(bgColorYUV.y>=IWP_Module_Calendar.brightnessCutoff){fgColor=IWP_Module_Calendar.darkColor;}
var wrapFrom=false;var wrapTo=false;var daySpan=occurrence.event.daySpan;var start=occurrence.start.copy();if(start<range.first){wrapFrom=true;var diff=start.diffDays(range.first);daySpan-=diff;start.addDate(diff);}
if(occurrence.end>range.last){wrapTo=true;var diff=Math.ceil(range.last.diffMsec(occurrence.end)/IWP_Module_Calendar.msecPerDay);daySpan-=diff;}
var colspan=daySpan>1?' colspan="'+daySpan+'"':'';var columnKey=$.date('Ymd',start);var occurrenceHtml='<td class="column col-'+$.date('Ymd',start)+'"'+colspan+'>';occurrenceHtml+='<div class="event-occurrence event-day event-occurrence-'+occurrence.id;if(wrapFrom){occurrenceHtml+=' event-occurrence-wrapped-from';}
if(wrapTo){occurrenceHtml+=' event-occurrence-wrapped-to';}
occurrenceHtml+='" style="background-color:#'+occurrence.event.color+'; color:#'+fgColor+';">';occurrenceHtml+='<span>'+$.htmlEncode(occurrence.event.summary)+'</span>';if(wrapFrom){occurrenceHtml+='<div class="occurrence-wrap occurrence-wrap-from"></div>';}
if(wrapTo){occurrenceHtml+='<div class="occurrence-wrap occurrence-wrap-to"></div>';}
occurrenceHtml+='</div>';occurrenceHtml+='</td>';columns[columnKey].push(occurrenceHtml);var current=start.copy();current.addDate(1);while(daySpan>1&&current<range.last){columns[$.date('Ymd',current)].push('');current.addDate(1);daySpan--;}}
var rows=0;var columnKey;for(columnKey in columns){var column=columns[columnKey];if(column.length>rows){rows=column.length;}}
html.push('<tbody>');for(var row=0;row<=rows;row++){html.push('<tr>');html.push('<td class="times">&nbsp;</td>');current=range.first.copy();while(current<range.last){var columnKey=$.date('Ymd',current);if(columns[columnKey][row]===undefined){html.push('<td class="column col-'+columnKey+'">&nbsp;</td>');}else{html.push(columns[columnKey][row]);}
current.addDate(1);}
html.push('<td class="scrollbar" style="width:'+self.getScrollbarWidth()+'px;">&nbsp;</td>');html.push('</tr>');}
html.push('</tbody>');html.push('</table></div>');var prescroll=null;var msieTableFixStart='';var msieTableFixEnd='';if($.browser.msie){msieTableFixStart='<table style="width:auto; table-layout:fixed;" cellspacing="0"><tr><td>';msieTableFixEnd='</td></tr></table>';}
html.push('<div class="week-grid">'+msieTableFixStart);html.push('<table class="week-grid-table" cellspacing="0"><tbody><tr>')
html.push('<td class="times"><ul>');var ampm,time;var nowHour=self.calendar.getToday().getHours();for(var i=0;i<=23;i++){ampm=i<12?'am':'pm';time=i;if(time==0){time=12;}else if(time>12){time-=12;}
html.push('<li style="height:'+(self.gridHeight/24)+'px;" '+(nowHour==i?'class="now"':'')+'><span>'+time+ampm+'</span></li>');}
html.push('</ul></td>');current=range.first.copy();while(current<range.last){var todayClass=(current.getTime()==today.getTime())?' today':'';var weekendClass=(current.getDay()==0||current.getDay()==6)?' weekend':'';html.push('<td class="column column-'+$.date('Ymd',current)+todayClass+'"><div style="height:'+self.gridHeight+'px;position:relative;">');var foundOccurrence=false;var node;for(var i=0;i<nodes.length;i++){node=nodes[i]
occurrence=node.occurrence;if(occurrence.event.daySpan>1||occurrence.event.allDay){continue;}
columnKey=$.date('Ymd',current);if($.date('Ymd',occurrence.start)!==columnKey){continue;}
foundOccurrence=true;var offsetMinutes=current.diffMsec(occurrence.start)/60000;var startPixels=Math.ceil(offsetMinutes*self.minuteHeight);if(prescroll===null||startPixels<prescroll){prescroll=startPixels;}
var durationMinutes=occurrence.start.diffMsec(occurrence.end)/60000;var endPixels=Math.ceil((offsetMinutes+durationMinutes)*self.minuteHeight);var heightPixels=endPixels-startPixels-1;var occurrenceWidth=100/node.getChildrenDepth();var occurrenceIndent=occurrenceWidth*(node.depth-1);var bgColorYUV=IWP_Module_Calendar_Event.HexToYUV(occurrence.event.color);var fgColor=IWP_Module_Calendar.brightColor;if(bgColorYUV.y>=IWP_Module_Calendar.brightnessCutoff){fgColor=IWP_Module_Calendar.darkColor;}
html.push('<div class="event-occurrence event-occurrence-'+occurrence.id+' event-time" style="width:'+occurrenceWidth+'%; left:'+occurrenceIndent+'%; top:'+startPixels+'px;"><div style="height:'+heightPixels+'px; background-color:#'+occurrence.event.color+';color:#'+fgColor+';"><dl>');if(durationMinutes<=self.compactThreshold){html.push('<dd>');html.push($.date('g:ia',occurrence.start)+' '+$.htmlEncode(occurrence.event.summary));html.push('</dd>');}else{html.push('<dt>');html.push(($.date('g:ia',occurrence.start)+' - '+$.date('g:ia',occurrence.end)).replace(/(\:00|a|m)/g,''));html.push('</dt>');html.push('<dd>');html.push($.htmlEncode(occurrence.event.summary));html.push('</dd>');}
html.push('</dl></div></div>');}
if(!foundOccurrence){html.push('&nbsp;');}
html.push('</div></td>');current.addDate(1);}
html.push('</tr></tbody></table>');html.push(msieTableFixEnd+'</div>');html.push('</div>');self.viewContainer.html(html.join(''));self.previousRenderDate=range.first.copy();self.viewContainer.find('.week-top thead .column a').click(self.dayHeadClick);self.viewContainer.find('.event-occurrence').click(self.eventOccurrenceClick);if(self.calendar.options.rangeSelection){self.viewContainer.find('.week-grid-table .column > div').mousedown(self.timetableMouseDown);self.viewContainer.find('.week-top tbody .column').mousedown(self.onGridMouseDown);}
var headHeight=self.viewContainer.find('.week-top > table > tbody').height();var grid=$('.week-grid',self.viewContainer);var gridHeight=grid.outerHeight();var top=$('.week-top > table > tbody',self.viewContainer);var topHeight=top.outerHeight();var desiredTotal=400;var adjustBy=desiredTotal-topHeight-gridHeight;grid.height(grid.height()+adjustBy+'px');if(isReRender&&self.previousScroll!==null){self.viewContainer.find('.week-grid').scrollTop(self.previousScroll);self.previousScroll=null;}else if(isReRender&&existingScroll!==null){self.viewContainer.find('.week-grid').scrollTop(existingScroll);}else if(prescroll!==null){self.viewContainer.find('.week-grid').scrollTop(prescroll-1);}else{self.viewContainer.find('.week-grid').scrollTop(Math.ceil(300*self.minuteHeight)-1);}
self.viewContainer.find('.todaynavigator a').click(self.onTodayClick);self.viewContainer.find('.datenavigator .previous').click(self.onNavigatorPreviousClick);self.viewContainer.find('.datenavigator .next').click(self.onNavigatorNextClick);};self.timetableLassooColumn=null;self.timetableLassooInitial=false;self.timetableLassooBeginTop=null;self.timetableLassooBegin=null;self.timetableLassooEnd=null;self.timetableLassooDateBegin=null;self.timetableLassooDateEnd=null;self.timetableLassooPlaceholder=$('<div class="event-occurrence event-occurrence-lassoo event-time" style="width:100%; display:none;"><div style="background-color:#'+self.calendar.getNewEventColor()+'; color:#'+IWP_Module_Calendar.brightColor+';"><dl><dd></dd></dl></div></div>');self.timetableMouseUp=function(event){event.preventDefault();$(document.body).unbind('mousemove',self.timetableMouseMove);if(self.timetableLassooEnd===null||self.timetableLassooBegin===null){return;}
self.timetableLassooPlaceholder.css('opacity','1');event.pageX=self.timetableLassooColumn.offset().left;event.pageX+=self.timetableLassooColumn.width()*.5;$(self.calendar).trigger('rangeselect',[event,{first:$.date('YmdHi',self.timetableLassooDateBegin),last:$.date('YmdHi',self.timetableLassooDateEnd)}]);};self.timetableMouseMove=function(event){event.preventDefault();self.timetableLassooEnd=event.pageY;var column=self.timetableLassooColumn;if(!/column-([0-9]{4})([0-9]{2})([0-9]{2})/.test(column.attr('class'))){return;}
var dateBegin=new Date(parseInt(RegExp.$1,10),parseInt(RegExp.$2,10)-1,parseInt(RegExp.$3,10));var dateEnd=dateBegin.copy();var columnTop=column.offset().top;var minutesBegin=Math.floor((self.timetableLassooBegin-self.timetableLassooBeginTop)/self.minuteHeight);var minutesEnd=Math.ceil((self.timetableLassooEnd-columnTop)/self.minuteHeight);if(minutesEnd<minutesBegin){var tmp=minutesEnd;minutesEnd=minutesBegin;minutesBegin=tmp;delete tmp;}
if(minutesBegin<0){minutesBegin=0;}
if(minutesEnd>1440){minutesEnd=1440;}
var minutesBegin=Math.floor(minutesBegin/self.dragResolution)*self.dragResolution;var minutesEnd=Math.ceil(minutesEnd/self.dragResolution)*self.dragResolution;if(self.timetableLassooInitial&&self.timetableLassooBegin==self.timetableLassooEnd){minutesEnd=minutesBegin+self.initialDuration;}else{self.timetableLassooInitial=false;}
var duration=minutesEnd-minutesBegin;if(duration<self.minimumDuration){duration=self.minimumDuration;minutesEnd=minutesBegin+duration;}
dateBegin.addTime(minutesBegin*60000);dateEnd.addTime(minutesEnd*60000);self.timetableLassooDateBegin=dateBegin;self.timetableLassooDateEnd=dateEnd;var placeholderTop=Math.ceil(minutesBegin*self.minuteHeight);var placeholderHeight=Math.ceil((minutesEnd-minutesBegin)*self.minuteHeight)-1;self.timetableLassooPlaceholder.css('top',placeholderTop+'px');self.timetableLassooPlaceholder.children('div').css('height',placeholderHeight+'px');self.timetableLassooPlaceholder.find('dd').text(($.date('g:ia',dateBegin)+' - '+$.date('g:ia',dateEnd)).replace(/(\:00|a|m)/g,''));};self.timetableMouseDown=function(event){if($(event.target).hasClass('event-occurrence')||$(event.target).hasClass('ui-resizable-handle')||$(event.target).parents('.event-occurrence').length){event.preventDefault();return;}
event.preventDefault();if(self.timetableLassooBegin!==null){self.deselectRanges();return;}
self.deselectRanges();self.timetableLassooInitial=true;self.timetableLassooBegin=event.pageY;self.timetableLassooColumn=$(event.currentTarget).parent();self.timetableLassooBeginTop=self.timetableLassooColumn.offset().top;$(document.body).mousemove(self.timetableMouseMove).one('mouseup',self.timetableMouseUp);self.timetableLassooPlaceholder.appendTo(self.timetableLassooColumn.children('div')).show().css({'opacity':'0.75'}).find('> div').css({'background-color':'#'+self.calendar.getNewEventColor()});self.timetableMouseMove(event);};self.dayHeadClick=function(event){event.preventDefault();var parts=$(this).attr('class').match(/^col-(\d{4})(\d{2})(\d{2})$/);if(parts===null){return;}
var date=new Date(parseInt(parts[1],10),parseInt(parts[2],10)-1,parseInt(parts[3],10));$(self.calendar).trigger('dayclick',[event,date]);};self.eventOccurrenceClick=function(event){event.preventDefault();var className=$(this).attr('class');if(!/event-occurrence-([^\s]+)/i.test(className)){return;}
var occurrenceId=RegExp.$1;var occurrence=IWP_Module_Calendar.getOccurrenceById(occurrenceId);if(!occurrence){return;}
$(self).trigger('occurrenceclick',[event,occurrence]);};self.lassoRangeBegin=null;self.lassoRangeEnd=null;self.onLassoMouseDown=function(event){event.preventDefault();self.clearLasso();$(self.calendar).trigger('rangedeselect',[event]);};self.deselectRanges=function(){ $(document.body).unbind('mousemove',self.timetableMouseMove);self.viewContainer.find('.week-top .column').unbind('mouseover',self.onGridMouseOver);$('.calendar-createevent-lasso').unbind('mouseover',self.onGridMouseOver);self.clearLasso();self.timetableLassooPlaceholder.hide();self.lassoRangeBegin=null;self.lassoRangeEnd=null;self.timetableLassooBegin=null;$(self.calendar).trigger('rangedeselect');};self.clearLasso=function(){ $('#calendar-createevent-lasso-container').html('');};self.showLassoOverRange=function(from,to){var from=from.copy();var to=to.copy();self.clearLasso();var lassoContainer=$('#calendar-createevent-lasso-container');var tbody=self.viewContainer.find('.week-top tbody');var tbodyHeight=tbody.outerHeight();var tbodyOffset=tbody.offset();while(from.getTime()<=to.getTime()){var fromKey=$.date('Ymd',from);var column=self.viewContainer.find('.week-top tbody .col-'+fromKey+':last');var offset=column.offset();var lasso=$('<div class="calendar-createevent-lasso" abbr="'+fromKey+'"></div>').appendTo(lassoContainer).mouseover(self.onGridMouseOver).mousedown(self.onLassoMouseDown);lasso.show().css({width:column.outerWidth()+'px',height:tbodyHeight+'px',top:tbodyOffset.top+'px',left:(offset.left+0.5)+'px',opacity:0.333});from.addDate(1);}}
self.onGridMouseDown=function(event){if($(event.target).hasClass('event-occurrence')||$(event.target).hasClass('ui-resizable-handle')||$(event.target).parents('.event-occurrence').length){event.preventDefault();return;}
self.deselectRanges();self.viewContainer.find('.week-top .column').mouseover(self.onGridMouseOver);$(document.body).one('mouseup',self.onGridMouseUp)
self.onGridMouseOver(event);};self.onGridMouseOver=function(event){if($(event.target).hasClass('ui-resizable-handle')){return;}
event.preventDefault();var cell=$(event.target);if(cell.hasClass('calendar-createevent-lasso')){var dateParts=cell.attr('abbr').match(/^(\d{4})(\d{2})(\d{2})$/);var mouseOverDate=new Date(parseInt(dateParts[1],10),parseInt(dateParts[2],10)-1,parseInt(dateParts[3],10))}else{if(cell.attr('tagName')!='TD'){cell=cell.parents('td');}
var columnKey=cell.attr('class').match(/col-(\d{8})/)[1];var mouseOverDate=IWP_Module_Calendar.parseJSONDate(columnKey);}
if(self.lassoRangeBegin===null){self.lassoRangeBegin=mouseOverDate.copy();$(self.calendar).trigger('rangedeselect',[event]);}
if(self.lassoRangeEnd!==null&&self.lassoRangeEnd.getTime()===mouseOverDate.getTime()){return;}
self.lassoRangeEnd=mouseOverDate.copy();if(self.lassoRangeBegin.getTime()<mouseOverDate.getTime()){self.showLassoOverRange(self.lassoRangeBegin,mouseOverDate);}else{self.showLassoOverRange(mouseOverDate,self.lassoRangeBegin);}};self.onGridMouseUp=function(event){if(self.lassoRangeBegin===null){return;}
event.preventDefault();self.viewContainer.find('.week-top .column').unbind('mouseover',self.onGridMouseOver);$('.calendar-createevent-lasso').unbind('mouseover',self.onGridMouseOver);if(self.lassoRangeBegin.getTime()<self.lassoRangeEnd.getTime()){var first=$.date('Ymd',self.lassoRangeBegin);var last=$.date('Ymd',self.lassoRangeEnd);}else{var first=$.date('Ymd',self.lassoRangeEnd);var last=$.date('Ymd',self.lassoRangeBegin);}
$(self.calendar).trigger('rangeselect',[event,{first:first,last:last}]);self.lassoRangeBegin=null;self.lassoRangeEnd=null;};if(initialise){self.init();}};IWP_Module_Calendar.viewClasses.Week.viewName=iwp.lang.get('module_calendar_ViewName_Week');
/**
 * /modules/calendar/javascript/calendar.views.day.js (2009-07-08 23:54:02)
 */
IWP_Module_Calendar.viewClasses.Day=function(calendar){var self=this;IWP_Module_Calendar.viewClasses.Week.call(this,calendar,false);self.columns=1;self.findViewContainer=function(){return self.calendar.renderContainer.find('.calendar-view-day');};self.getViewDateRange=function(){var first=self.calendar.getDate();first.setMidnight();var last=first.copy();last.addDate(self.columns);return{first:first,last:last};};self.init();};IWP_Module_Calendar.viewClasses.Day.viewName=iwp.lang.get('module_calendar_ViewName_Day');
/**
 * /modules/calendar/javascript/calendar.views.month.js (2009-08-02 22:44:15)
 */
IWP_Module_Calendar.viewClasses.Month=function(calendar){var $=jQuery;var self=this;self.rows=6;self.columns=7;self.calendar=calendar;self.viewContainer=null;self.init=function(){self.viewContainer=self.calendar.renderContainer.find('.calendar-view-month').hide();self.render();self.initBinds();};self.show=function(){if(!self.hidden()){return;}
self.viewContainer.show();self.render();};self.hide=function(){if(self.hidden()){return;}
self.viewContainer.hide();};self.hidden=function(){return self.viewContainer.css('display')=='none';};self.render=function(){self.renderGrid();self.renderOccurrences();};$(self.calendar).bind('todaychange firstdayofweekchange',function(){self.renderToday();});$(IWP_Module_Calendar.occurrences).bind('change',function(event,pending,cacheKey){if(pending){return;}
self.renderOccurrences();});$(self.calendar).bind('datechange',function(event,oldDate){var newDate=self.calendar.getDate();if(oldDate.getMonth()==newDate.getMonth()&&oldDate.getFullYear()==newDate.getFullYear()){return;}
self.render();});self.renderGrid=function(){self.renderNavigator();self.renderDayNames();self.renderDates();};self.initBinds=function(){self.viewContainer.find('.todaynavigator a').click(self.onTodayClick);self.viewContainer.find('.datenavigator .previous').click(self.onNavigatorPreviousClick);self.viewContainer.find('.datenavigator .next').click(self.onNavigatorNextClick);if($.browser.msie){self.viewContainer.find('.datenavigator .previous').dblclick(self.onNavigatorPreviousClick);self.viewContainer.find('.datenavigator .next').dblclick(self.onNavigatorNextClick);}
if(self.calendar.options.rangeSelection){self.viewContainer.find('.month-grid').mousedown(self.onGridMouseDown);}
if(self.calendar.options.occurrenceDragging){self.viewContainer.find('.month-row-bg td').droppable({accept:'.event-occurrence'}).bind('drop',function(event,ui){var draggable=$(ui.draggable);var occurrenceId=draggable.attr('id').match(/^event\-occurrence\-(\d+e\d{4}\d{2}\d{2}\d{2}\d{2})$/)[1];var occurrence=IWP_Module_Calendar.getOccurrenceById(occurrenceId);var moveTo=$(this).attr('abbr');$(self.calendar).trigger('occurrencemove',[occurrence,moveTo]);});}};self.onLassoMouseDown=function(event){event.preventDefault();self.clearLasso();$(self.calendar).trigger('rangedeselect',[event]);};self.deselectRanges=function(){self.clearLasso();self.lassoRangeBegin=null;self.lassoRangeEnd=null;$(self.calendar).trigger('rangedeselect');};self.clearLasso=function(){ $('#calendar-createevent-lasso-container').html('');};self.isNonLassoElement=function(element){var element=$(element);return element.hasClass('nolasso')||element.hasClass('event-occurrence')||element.hasClass('ui-resizable-handle')||element.hasClass('event-morenotice')||element.parents('.event-occurrence').length||element.parents('.event-morenotice').length||element.parents('.nolasso').length;};self.onGridMouseDown=function(event){if(self.isNonLassoElement(event.target)){event.preventDefault();return;}
self.viewContainer.find('.month-grid').mouseover(self.onGridMouseOver);$(document.body).one('mouseup',self.onGridMouseUp)
self.onGridMouseOver(event);};self.lassoRangeBegin=null;self.lassoRangeEnd=null;self.showLassoOverRange=function(start,to){var start=start.copy();var to=to.copy();self.clearLasso();var lassoContainer=$('#calendar-createevent-lasso-container');while(start.getTime()<=to.getTime()){var background=self.viewContainer.find('.month-row-bg td[abbr='+$.date('Ymd',start)+']');var offset=background.offset();var lasso=$('<div class="calendar-createevent-lasso" abbr="'+$.date('Ymd',start)+'"></div>').appendTo(lassoContainer).mouseover(self.onGridMouseOver).mousedown(self.onLassoMouseDown);lasso.show().css({width:background.outerWidth()+'px',height:background.outerHeight()+'px',top:offset.top+'px',left:(offset.left+0.5)+'px',opacity:0.333});start.addDate(1);}}
self.onGridMouseOver=function(event){if($(event.target).hasClass('ui-resizable-handle')){return;}
event.preventDefault();var cell=$(event.target);if(cell.hasClass('calendar-createevent-lasso')){var dateParts=cell.attr('abbr').match(/^(\d{4})(\d{2})(\d{2})$/);var mouseOverDate=new Date(parseInt(dateParts[1],10),parseInt(dateParts[2],10)-1,parseInt(dateParts[3],10))}else{if(cell.attr('tagName')!='TD'){cell=cell.parents('td');}
var row=cell.parents('.month-row');var column=parseInt(cell.attr('class').match(/col\-(\d)+/)[1],10);var row=parseInt(row.attr('class').match(/month\-row\-(\d)+/)[1],10);var viewRange=calendar_admin.getCurrentView().getViewDateRange();var mouseOverDate=viewRange.first.copy();mouseOverDate.addDate((row*7)+column);}
if(self.lassoRangeBegin===null){self.lassoRangeBegin=mouseOverDate.copy();$(self.calendar).trigger('rangedeselect',[event]);}
if(self.lassoRangeEnd!==null&&self.lassoRangeEnd.getTime()===mouseOverDate.getTime()){return;}
self.lassoRangeEnd=mouseOverDate.copy();if(self.lassoRangeBegin.getTime()<mouseOverDate.getTime()){self.showLassoOverRange(self.lassoRangeBegin,mouseOverDate);}else{self.showLassoOverRange(mouseOverDate,self.lassoRangeBegin);}};self.onGridMouseUp=function(event){if(self.lassoRangeBegin===null){return;}
event.preventDefault();self.viewContainer.find('.month-grid').unbind('mouseover',self.onGridMouseOver);$('.calendar-createevent-lasso').unbind('mouseover',self.onGridMouseOver);if(self.lassoRangeBegin.getTime()<self.lassoRangeEnd.getTime()){var first=$.date('Ymd',self.lassoRangeBegin);var last=$.date('Ymd',self.lassoRangeEnd);}else{var first=$.date('Ymd',self.lassoRangeEnd);var last=$.date('Ymd',self.lassoRangeBegin);}
$(self.calendar).trigger('rangeselect',[event,{first:first,last:last}]);self.lassoRangeBegin=null;self.lassoRangeEnd=null;};self.onTodayClick=function(event){event.preventDefault();var today=self.calendar.getToday();today.setMidnight();self.calendar.setDate(today);};self.onNavigatorPreviousClick=function(event){event.preventDefault();self.deselectRanges();var date=self.calendar.getDate();date.setDate(1);date.setMonth(date.getMonth()-1);self.calendar.setDate(date);};self.onNavigatorNextClick=function(event){event.preventDefault();self.deselectRanges();var date=self.calendar.getDate();date.setDate(1);date.setMonth(date.getMonth()+1);self.calendar.setDate(date);};self.onOccurrenceClick=function(event){event.preventDefault();$(self).trigger('occurrenceclick',[event,event.data.occurrence]);};self.renderNavigator=function(){if(self.calendar.getCurrentView()!==self){return;}
self.viewContainer.find('.datenavigator .date span').text($.date('F Y',self.calendar.getDate()));};self.renderDayNames=function(){if(self.calendar.getCurrentView()!==self){return;}
var types=['one','short','long'];for(var dayColumn=self.columns;dayColumn--;){var weekdayNumber=(dayColumn+self.calendar.getFirstDayOfWeek())%self.columns;for(var j=types.length;j--;){self.viewContainer.find('.dayname-'+types[j]+'-'+dayColumn).text(IWP_Module_Calendar.lang['days_'+types[j]][weekdayNumber]);}}};self.getViewDateRange=function(){var first=self.calendar.getDate();first.setMidnight();first.setDate(1);first.addTime(0-((first.getDay()-self.calendar.getFirstDayOfWeek())*IWP_Module_Calendar.msecPerDay));var last=first.copy();last.addDate(self.columns*self.rows);return{first:first,last:last};};self.renderToday=function(){self.renderDates();};self.renderDates=function(){if(self.calendar.getCurrentView()!==self){return;}
self.viewContainer.find('.today, .othermonth').each(function(){ $(this).removeClass('today othermonth');});var range=self.getViewDateRange();var current=range.first;var today=self.calendar.getToday();today.setMidnight();var monthPrinted={};for(var y=0;y<self.rows;y++){var rowHeaders=self.viewContainer.find('.month-row-'+y+' > .month-row-fg > thead > tr > td > a > span');var rowBackgrounds=self.viewContainer.find('.month-row-'+y+' > .month-row-bg td');for(var x=0;x<self.columns;x++){var text=current.getDate();var month=current.getMonth();if(!monthPrinted[month]){text=IWP_Module_Calendar.lang.months_short[month]+' '+text;monthPrinted[month]=true;}
rowBackgrounds.eq(x).attr('abbr',$.date('Ymd',current));var link=rowHeaders.eq(x).text(text).parent();link.bind('click',{date:current.copy()},function(e){e.preventDefault();$(self.calendar).trigger('dayclick',[e,e.data.date]);});var cell=link.parent();if(current.getMonth()!=self.calendar.getDate().getMonth()){cell.addClass('othermonth');cell.parents('.month-row').find('.month-row-bg td').eq(x).addClass('othermonth');}
if(current.getTime()==today.getTime()){cell.addClass('today');cell.parents('.month-row').find('.month-row-bg td').eq(x).addClass('today');}
current.addDate(1);}}};self.eventRowTemplate='<tr><td class="col-0"></td><td class="col-1"></td><td class="col-2"></td><td class="col-3"></td><td class="col-4"></td><td class="col-5"></td><td class="col-6"></td></tr>';self.renderOccurrences=function(){if(self.calendar.getCurrentView()!==self){return;}
var hidden=self.hidden();if(hidden){self.show();}
self.viewContainer.find('.month-row-fg tbody').html(self.eventRowTemplate);self.viewContainer.find('td:empty, th:empty').each(function(){ $(this).html('&nbsp;');});var standardWeekHeight=self.viewContainer.find('.month-row-0').outerHeight();var standardHeaderHeight=self.viewContainer.find('.month-row-fg > thead').outerHeight();var standardOccurrenceHeight=self.viewContainer.find('.month-row-fg > tbody > tr > td').outerHeight();var availableOccurrenceHeight=standardWeekHeight-standardHeaderHeight;var availableOccurrenceRows=Math.floor(availableOccurrenceHeight/standardOccurrenceHeight);if(availableOccurrenceRows<1){availableOccurrenceRows=1;}
var eventRowContainers=self.viewContainer.find('.month-row-fg tbody').html(self.eventRowTemplate);var range=self.getViewDateRange();var occurrences=self.calendar.getOccurrences(range.first,range.last);var occurrence;for(var occurrenceCounter=0;occurrenceCounter<occurrences.length;occurrenceCounter++){occurrence=occurrences[occurrenceCounter];var wrapFrom=false;var daysIn=range.first.diffDays(occurrence.start);var daySpan=occurrence.event.daySpan;if(daySpan>1&&daysIn<0){daySpan+=daysIn;daysIn=0;wrapFrom=true;}
var rowNum=Math.floor(daysIn/self.columns);var colNum=daysIn%self.columns;var eventRowContainer=eventRowContainers.eq(rowNum);var cell=eventRowContainer.find('.col-'+colNum+':empty').eq(0);if(!cell.length){if(eventRowContainer.children().length<availableOccurrenceRows){cell=$(self.eventRowTemplate).appendTo(eventRowContainer).find('.col-'+colNum);}else{cell=eventRowContainer.find('.col-'+colNum+':last').eq(0);var notice=cell.find('.event-morenotice > a > em');if(!notice.length){cell.html('<div class="event-morenotice"><a href="#">+<em>2</em> <span>'+iwp.lang.get('module_calendar_more')+'</span></a></div>');cell.find('a').bind('click',{daysIn:daysIn},function(e){e.preventDefault();var current=self.getViewDateRange();current=current.first;current.addDate(e.data.daysIn);if($.inArray('day',self.calendar.availableViews)>=0){self.calendar.showView('Day');self.calendar.setDate(current);return;}
if($.inArray('week',self.calendar.availableViews)>=0){self.calendar.showView('Week');self.calendar.setDate(current);return;}
$(self.calendar).trigger('moreeventsclick',[e,current]);});}else{notice.text(parseInt(notice.text(),10)+1);}
continue;}}
var bgColorYUV=IWP_Module_Calendar_Event.HexToYUV(occurrence.event.color);var fgColor=IWP_Module_Calendar.brightColor;if(bgColorYUV.y>=IWP_Module_Calendar.brightnessCutoff){fgColor=IWP_Module_Calendar.darkColor;}
var occurrenceDiv;if(occurrence.event.allDay||occurrence.event.daySpan>1){var midnightStart=occurrence.start.isTime(0,0);var timeString=!midnightStart?'<i></i>':'';occurrenceDiv=$('<div class="event-occurrence event-day" id="event-occurrence-'+occurrence.id+'">'+timeString+'<span></span></div>').css({backgroundColor:'#'+occurrence.event.color,color:'#'+fgColor}).appendTo(cell).bind('click',{occurrence:occurrence},self.onOccurrenceClick);if(self.calendar.options.occurrenceDragging){occurrenceDiv.draggable({helper:self.dragHelper,distance:10});}
if(daySpan>1){if(colNum+daySpan>self.columns){var overHang=colNum+daySpan-self.columns;if(rowNum+1<self.rows){var wrapToRow=eventRowContainers.eq(rowNum+1);var wrapToCell=wrapToRow.find('.col-0:empty').eq(0);if(!wrapToCell.length){wrapToCell=$(self.eventRowTemplate).appendTo(wrapToRow).find('.col-0');}
var occurrenceWrap=$('<div class="event-occurrence event-occurrence-wrapped-from event-day" id="event-occurrence-'+occurrence.id+'-wrap">'+timeString+'<span></span><div class="occurrence-wrap occurrence-wrap-from"></div></div>').css({backgroundColor:'#'+occurrence.event.color,color:'#'+fgColor}).appendTo(wrapToCell).bind('click',{occurrence:occurrence},self.onOccurrenceClick).attr('title',occurrence.event.summary);if(self.calendar.options.occurrenceDragging){occurrenceWrap.draggable({helper:self.dragHelper,distance:10}).bind('dragstart',self.deselectRanges);}
occurrenceWrap.find('span').text(occurrence.event.summary);occurrenceWrap.find('i').text($.date('(g:ip)',occurrence.start));wrapToCell.attr('colSpan',overHang);for(var columnCounter=overHang-1;columnCounter--;){wrapToCell.next().remove();}}
$('<div class="occurrence-wrap occurrence-wrap-to"></div>').appendTo(occurrenceDiv);daySpan-=overHang;}
cell.attr('colSpan',daySpan);for(var columnCounter=daySpan-1;columnCounter--;){cell.next().remove();}}}else{occurrenceDiv=$('<div class="event-occurrence event-time" id="event-occurrence-'+occurrence.id+'"><i></i><span></span></div>').css('color','#'+occurrence.event.color).appendTo(cell).bind('click',{occurrence:occurrence},self.onOccurrenceClick);if(bgColorYUV.y>=IWP_Module_Calendar.brightnessCutoff){occurrenceDiv.css('background-image','url('+iwp.config.get('siteURL')+'/modules/calendar/images/000000_o16.png)');}
if(self.calendar.options.occurrenceDragging){occurrenceDiv.draggable({helper:self.dragHelper,distance:10});}}
if(wrapFrom){occurrenceDiv.addClass('event-occurrence-wrapped-from');$('<div class="occurrence-wrap occurrence-wrap-from"></div>').appendTo(occurrenceDiv);}
occurrenceDiv.attr('title',occurrence.event.summary).find('span').text(occurrence.event.summary);if(wrapFrom){occurrenceDiv.find('i').text($.date('(g:ip)',occurrence.start));}else{occurrenceDiv.find('i').text($.date('(g:ip)',occurrence.start));}}
self.viewContainer.find('td:empty, th:empty').each(function(){ $(this).html('&nbsp;');});if(hidden){self.hide();}};self.dragHelper=function(event){var helper=$('<div class="event-occurrence-draghelper"></div>').css({zIndex:10});$(event.currentTarget).clone().removeAttr('id').removeAttr('title').css({width:$(event.currentTarget).width()+'px'}).appendTo(helper);return helper;};self.init();};IWP_Module_Calendar.viewClasses.Month.viewName=iwp.lang.get('module_calendar_ViewName_Month');
/**
 * /modules/calendar/javascript/calendar.views.tinymonth.js (2009-07-14 00:31:26)
 */
IWP_Module_Calendar.viewClasses.Tinymonth=function(calendar){var $=jQuery;var self=this;self.rows=6;self.columns=7;self.calendar=calendar;self.viewContainer=null;self._clickableMonthNavigator=true;self.clickableMonthNavigator=function(value){if(value===undefined){return self._clickableMonthNavigator;}
if(self._clickableMonthNavigator===value){return;}
self._clickableMonthNavigator=value;self.render();};self.init=function(){self.viewContainer=self.calendar.renderContainer.find('.calendar-view-tinymonth').hide();self.render();};self.show=function(){self.viewContainer.show();};self.hide=function(){self.viewContainer.hide();};self.getViewDateRange=function(){var first=self.calendar.getDate();first.setMidnight();first.setDate(1);first.addTime(0-((first.getDay()-self.calendar.getFirstDayOfWeek())*IWP_Module_Calendar.msecPerDay));var last=first.copy();last.addDate(self.columns*self.rows);return{first:first,last:last};};$(IWP_Module_Calendar.occurrences).bind('change',function(event,pending,cacheKey){if(pending){return;}
self.render();});$(self.calendar).bind('datechange firstdayofweekchange todaychange',function(){self.render();});self._highlightRangeFirst=new Date(0);self._highlightRangeLast=new Date(0);self.setHighlightRange=function(first,last){var oldFirst=self._highlightRangeFirst.getTime();var oldLast=self._highlightRangeLast.getTime();self._highlightRangeFirst=first;self._highlightRangeLast=last;if(self._highlightRangeFirst.getTime()!=oldFirst||self._highlightRangeLast.getTime()!=oldLast){ $(self).trigger('highlightchange');}}
$(self).bind('highlightchange',function(){self.render();});self.render=function(){var calendarDate=self.calendar.getDate();var html=[];html.push('<div>');html.push('<ul class="datenavigator"><li class="previous"><a href="#"><span>«</span></a></li><li class="date">');if(self.clickableMonthNavigator()){html.push('<a href="#"><span>'+$.date('F Y',calendarDate)+'</span></a>');}else{html.push('<span>'+$.date('F Y',calendarDate)+'</span>');}
html.push('</li><li class="next"><a href="#"><span>»</span></a></li></ul>');html.push('<table cellspacing="0">');html.push('<thead><tr>');var fdow=self.calendar.getFirstDayOfWeek();var weekdayNumber;for(var x=0;x<self.columns;x++){weekdayNumber=(x+fdow)%self.columns;html.push('<th class="col-'+x+' weekday-'+weekdayNumber+'"><span>'+IWP_Module_Calendar.lang['days_one'][weekdayNumber]+'</span></th>');}
html.push('</tr></thead>');html.push('<tbody>');var calendarMonth=calendarDate.getMonth();var range=self.getViewDateRange();var current=range.first.copy();var today=self.calendar.getToday();today.setMidnight();var occurrences,currentEnd;for(var y=0;y<self.rows;y++){html.push('<tr>');for(var x=0;x<self.columns;x++){weekdayNumber=(x+fdow)%self.columns;classes=['col-'+x,'weekday-'+weekdayNumber];currentEnd=current.copy();currentEnd.addDate(1);if(current.getTime()==today.getTime()){classes.push('today');}
if(current.getMonth()!=calendarMonth){classes.push('othermonth');}
if(current>=self._highlightRangeFirst&&current<self._highlightRangeLast){classes.push('highlight');classes.push('highlight-'+x);}
occurrences=self.calendar.getOccurrences(current,currentEnd);if(occurrences.length){classes.push('occurrence');}
html.push('<td class="'+classes.join(' ')+'" abbr="'+$.date('Ymd',current)+'"><span>'+$.date('j',current)+'</span></td>');current.addDate(1);}
html.push('</tr>');}
html.push('</tbody>');html.push('</table>');html.push('</div>');self.viewContainer.html(html.join(''));self.bindEvents();};self.bindEvents=function(){self.viewContainer.find('td').click(self.onDayClick);self.viewContainer.find('.datenavigator .previous').click(self.onNavigatorPreviousClick);self.viewContainer.find('.datenavigator .next').click(self.onNavigatorNextClick);self.viewContainer.find('.datenavigator .date a').click(self.onNavigatorDateClick);if($.browser.msie){self.viewContainer.find('.datenavigator .previous').dblclick(self.onNavigatorPreviousClick);self.viewContainer.find('.datenavigator .next').dblclick(self.onNavigatorNextClick);}};self.onDayClick=function(event){var date=$(event.currentTarget).attr('abbr');$(self.calendar).trigger('rangeselect',[event,{first:date,last:date}]);};self.onNavigatorDateClick=function(event){event.preventDefault();$(self.calendar).trigger('datenavigatorclick',[event,self]);};self.onNavigatorPreviousClick=function(event){event.preventDefault();var date=self.calendar.getDate();date.setMonth(date.getMonth()-1);self.calendar.setDate(date);};self.onNavigatorNextClick=function(event){event.preventDefault();var date=self.calendar.getDate();date.setMonth(date.getMonth()+1);self.calendar.setDate(date);};self.init();};IWP_Module_Calendar.viewClasses.Tinymonth.viewName=iwp.lang.get('module_calendar_ViewName_Tinymonth');
