(function(){var b=YAHOO.util.Dom,o=YAHOO.util.Element,w=YAHOO.util.Event;var q=Alfresco.util.encodeHTML;Alfresco.Header=function(y){this.name="Alfresco.Header";this.id=y;this.widgets={};Alfresco.util.ComponentManager.register(this);Alfresco.util.YUILoaderHelper.require([],this.onComponentsLoaded,this);YAHOO.Bubbling.on("favouriteSiteAdded",this.onFavouriteSiteAdded,this);YAHOO.Bubbling.on("favouriteSiteRemoved",this.onFavouriteSiteRemoved,this);YAHOO.Bubbling.on("siteDeleted",this.onSiteDeleted,this);this.preferencesService=new Alfresco.service.Preferences();return this};Alfresco.Header.prototype={options:{siteId:"",siteTitle:"",searchType:"",favouriteSites:{}},setOptions:function k(y){this.options=YAHOO.lang.merge(this.options,y);return this},setMessages:function j(y){Alfresco.util.addMessages(y,this.name);return this},onComponentsLoaded:function v(){w.onContentReady(this.id,this.onReady,this,true)},onReady:function f(){w.addListener(this.id+"-searchtext","focus",this.focusSearchText,null,this);w.addListener(this.id+"-searchtext","blur",this.blurSearchText,null,this);w.addListener(this.id+"-search-sbutton","click",this.doSearch,null,this);this.defaultSearchText();var z=b.get(this.id+"-searchtext");var B=this;new YAHOO.util.KeyListener(z,{keys:13},{fn:B.doSearch,scope:this,correctScope:true},"keydown").enable();var C=new YAHOO.widget.Menu(this.id+"-searchtogglemenu");C.render();C.owner=this;C.subscribe("show",C.focus);w.addListener(this.id+"-search-tbutton","click",this.openToggleSearchMenu,null,C);b.removeClass(this.id+"-searchtogglemenu","hidden");var y=new YAHOO.widget.Menu(this.id+"-sites-menu");y.render();y.subscribe("hide",this.onSitesMenuHide,this,true);this.widgets.sitesMenu=y;var A=new YAHOO.widget.Button(this.id+"-sites",{type:"menu"});A.subscribe("click",this.onSitesMenuShow,this,true)},focusSearchText:function r(){if(b.hasClass(this.id+"-searchtext","gray")){b.get(this.id+"-searchtext").value="";b.removeClass(this.id+"-searchtext","gray")}else{b.get(this.id+"-searchtext").select()}},blurSearchText:function s(){var y=b.get(this.id+"-searchtext").value;if(y.length==0){this.defaultSearchText()}},defaultSearchText:function l(){b.get(this.id+"-searchtext").value=this._getToggleLabel(this.options.searchType);b.addClass(this.id+"-searchtext","gray")},openToggleSearchMenu:function i(){this.show();var y=b.getXY(this.owner.id+"-search-tbutton");y[0]-=(b.get(this.owner.id+"-searchtogglemenu").offsetWidth-b.get(this.owner.id+"-search-tbutton").offsetWidth);y[1]+=b.get(this.owner.id+"-search-tbutton").offsetHeight;b.setXY(this.id,y)},doToggleSearchType:function x(y){this.options.searchType=y;this.defaultSearchText()},doSearch:function h(){var y=b.get(this.id+"-searchtext").value;if(y.length!=0){var A=(this.options.searchType=="all");var z=Alfresco.constants.URL_CONTEXT+"page/";if(this.options.siteId.length!=0){z+="site/"+this.options.siteId+"/"}z+="search?t="+encodeURIComponent(y);if(this.options.siteId.length!=0){z+="&a="+A}window.location=z}},_getToggleLabel:function c(y){if(y=="all"){return this._msg("header.search.searchall")}return this._msg("header.search.searchsite",this.options.siteTitle)},onSitesMenuShow:function t(y){var z=b.getXY(this.id+"-sites-linkMenuButton");z[1]+=b.get(this.id+"-sites-linkMenuButton").offsetHeight;b.setXY(this.widgets.sitesMenu.id,z);this.widgets.sitesMenu.show();this.widgets.sitesMenu.focus();b.addClass(this.id+"-sites-linkMenuButton","link-menu-button-menu-active")},onSitesMenuHide:function m(y){b.removeClass(this.id+"-sites-linkMenuButton","link-menu-button-menu-active")},showCreateSite:function e(){Alfresco.module.getCreateSiteInstance().show()},onFavouriteSiteAdded:function u(z,y){var A=y[1];if(A&&A.shortName!==null){this.options.favouriteSites[A.shortName]=A.title;this._renderFavouriteSites()}},onFavouriteSiteRemoved:function g(z,y){var A=y[1];if(A&&A.shortName!==null){if(A.shortName in this.options.favouriteSites){delete this.options.favouriteSites[A.shortName];this._renderFavouriteSites()}}},onSiteDeleted:function d(z,y){var A=y[1];if(A&&A.site!==null){if(A.site.shortName in this.options.favouriteSites){delete this.options.favouriteSites[A.site.shortName];this._renderFavouriteSites()}}},_renderFavouriteSites:function n(){var D=[],A,z=this.widgets.sitesMenu,y,B,C;for(A in this.options.favouriteSites){if(this.options.favouriteSites.hasOwnProperty(A)){D.push(A)}}D.sort();y=z.getItemGroups()[1];for(B=0,C=y.length;B<C;B++){z.removeItem(0,1,true)}b.setStyle(this.id+"-favouritesContainer","display",D.length>0?"block":"none");b.setStyle(this.id+"-favouriteSites","display",A.length>0?"block":"none");for(B=0,C=D.length;B<C;B++){z.addItem({text:q(this.options.favouriteSites[D[B]]),url:Alfresco.util.uriTemplate("sitedashboardpage",{site:D[B]})},1)}if(this.options.siteId!==""){b.setStyle(this.id+"-addFavourite","display",this.options.siteId in this.options.favouriteSites?"none":"block")}z.render()},addAsFavourite:function p(){var z={shortName:this.options.siteId,title:this.options.siteTitle};var y={failureCallback:{fn:function(A,B){Alfresco.util.PopupManager.displayPrompt({text:me._msg("message.siteFavourite.failure")})},scope:this},successCallback:{fn:function(A,B){YAHOO.Bubbling.fire("favouriteSiteAdded",B.site)},scope:this,obj:{site:z}}};this.preferencesService.set(Alfresco.service.Preferences.FAVOURITE_SITES+"."+z.shortName,true,y)},_msg:function a(y){return Alfresco.util.message.call(this,y,this.name,Array.prototype.slice.call(arguments).slice(1))}}})();
