/* Copyright (c) 2006-2009, Apple Inc. All rights reserved. */
/* Compressed JavaScript. Do not modify. */


/* grouphome.js */

var UpcomingEventsSidebar=Class.createWithSharedInstance('upcomingEventsSidebar',true);UpcomingEventsSidebar.prototype={initialize:function()
{var element=$('UpcomingEventsList');if(!element)return invalidate;UpcomingEventsService.DayRange=parseInt(getMetaTagValue('caldav_upcoming_events_date_range'))||30;this.controller=new UpcomingEventsViewController(element,uid().mBaseLocation+'calendar/');}};var SidebarUpdater=Class.createWithSharedInstance('sidebarUpdater',true);SidebarUpdater.prototype={mRefreshTimeout:30000,enabled:true,initialize:function(){this.mPageListingElm=$('page_listing');if($$('#page_listing ul').length<=0)return invalidate;if($('HotList'))Element.cleanWhitespace('HotList');this.buildIndexFromPage();publisher().subscribe(this.handleAuthenticated.bind(this),'AUTHENTICATED');publisher().subscribe(this.startEdit.bind(this),'DID_START_EDITING');publisher().subscribe(this.endEdit.bind(this),'DID_FINISH_EDITING');var callback=function(){if(!this.enabled)return false;serverui().ensureLogin(this.getSidebarContents.bind(this),'read',true);};this.mTimer=setTimeout(callback.bind(this),10);},buildIndexFromPage:function(){this.mIndex={};$$('#page_listing li.EntryListItem').each(function(li){var parentKey=li.up().id;if(!this.mIndex[parentKey])this.mIndex[parentKey]={};var a=li.down('a');if(a){var uid=li.getAttribute('name');if(!uid){var uid=li.down('a').getAttribute('href').replace(/^(https?:\/\/[^\/]+\/|\/)/,'').replace(/(\/|\/[^\/]+.html)$/,'');}
this.mIndex[parentKey][uid]={mElement:li};}}.bind(this));},getSidebarContents:function(){if(this.mTimer){clearTimeout(this.mTimer);delete this.mTimer;}
server().wiki.getSidebarEntries([this.gotSidebarContents.bind(this),invalidate],uid().mBasePath,Loc.getBrowserLocale());},gotSidebarContents:function(inRequestObj,inResponseObj){$H(inResponseObj).each(function(parentObj){if(!parentObj.value.each)return;if(!this.mIndex[parentObj.key])this.mIndex[parentObj.key]={};if(parentObj.value.length==1&&parentObj.value[0]['emptyListString']){this.mIndex[parentObj.key]={};removeAllChildNodes(parentObj.key);var li=Builder.node('li',{className:'EntryListItem emptyList'},parentObj.value[0]['emptyListString']);$(parentObj.key).appendChild(li);return;}
var syncStatus=Array.syncKeyedArrayWithRows(this.mIndex[parentObj.key],parentObj.value);var emptyListPlaceholder=$(parentObj.key).down('li.emptyList');if(emptyListPlaceholder&&syncStatus.addedRows.length>0){Element.remove(emptyListPlaceholder);}
syncStatus.addedRows.each(function(item){var href=item.url;var subDate=createDateObjFromISO8601(item.subtitle,true);var li=Builder.node('li',{className:'EntryListItem',style:'display:none'},[Builder.node('a',{href:href},[item.title]),' ',Builder.node('span',{className:'snippet'},[subDate?Loc.getLongDateString(subDate):item.subtitle])]);this.mIndex[parentObj.key][item.uid]['mElement']=li;insertAtBeginning(li,$(parentObj.key));if(this.mAnimate)var effect=new Effect.BlindDown(li,{duration:0.2,scaleContent:false});else Element.show(li);}.bind(this));syncStatus.deletedRows.each(function(item){tooltipManager().stopObserving(item.mElement.firstChild);var removeAfterFinish=function(inEffect){Element.remove(inEffect.element);};var effect=new Effect.BlindUp(item.mElement,{duration:0.2,afterFinish:removeAfterFinish});});}.bind(this));if(SafariFixes.isTigerSafari)$A(d.getElementsByClassName('endmain')).each(function(forceElm){Element.forceReflow(forceElm);});else this.mAnimate=true;if(this.mTimer){clearTimeout(this.mTimer);delete this.mTimer;}
this.mTimer=setTimeout(this.getSidebarContents.bind(this),this.mRefreshTimeout);publisher().publish('DID_GET_SIDEBAR_CONTENT',this,inResponseObj);if(window.unitTestHandler)unitTestHandler.messageFromJS_('gotSidebarContents');},startEdit:function(){Element.hide(this.mPageListingElm);$A(this.mPageListingElm.getElementsByTagName('a')).each(function(elm){elm.target='_blank';});},endEdit:function(){Element.show(this.mPageListingElm);$A(this.mPageListingElm.getElementsByTagName('a')).each(function(elm){elm.target='';});},handleAuthenticated:function(inMessage,inObject,inUserInfo){if(this.mTimer){clearTimeout(this.mTimer);delete this.mTimer;}
var callback=function(inSuccess){this.buildIndexFromPage();this.getSidebarContents();};Element.reload('page_listing',callback.bind(this));}};if(window.loaded)loaded('grouphome.js');