ug.SelectionPanel=function(A){ug.SelectionPanel.superclass.constructor.call(this,A);
this.task=new Ext.util.DelayedTask()
};
Ext.extend(ug.SelectionPanel,Ext.BoxComponent,{initComponent:function(){this.el=document.createElement("div");
this.loadingTpl=new Ext.XTemplate('<div class="loadingProfile">','<div><img class="cp_profileImage" src="{image}" alt="" /></div>','<div class="allClear"></div>',"</div>");
this.loadingTpl.disableFormats=true;
this.loadingTpl.compile();
this.loadingImg=ug.staticUrl+"/images/wait/96x96.gif";
this.userTpl=new Ext.XTemplate('<div class="userProfile">','<div><img class="cp_profileImage" src="{image}" alt="{name:htmlEncode}" /></div>','<div class="profileInfo">','<tpl if="values.name">','<div class="titleText">{name:htmlEncode}</div>',"</tpl>",'<tpl if="values.userName">','<div class="normal"><span class="fieldLabel">Username: </span>{userName:htmlEncode}</div>',"</tpl>",'<tpl if="values.emailAddress">','<div class="normal"><span class="fieldLabel">Email Address: </span>{emailAddress}</div>',"</tpl>","</div>",'<div class="allClear"></div>',"</div>");
this.userTpl.disableFormats=true;
this.userTpl.compile();
this.defaultUserImg=ug.staticUrl+"/images/userImage.png";
this.groupTpl=new Ext.XTemplate('<div class="groupProfile">','<div><img class="cp_profileImage" src="{image}" alt="{name:htmlEncode}" /></div>','<div class="profileInfo">','<tpl if="groupName">','<div class="titleText">{groupName:htmlEncode}</div>',"</tpl>",'<tpl if="groupId && (groupId.length < 16)">','<div class="normal"><span class="fieldLabel">Id: </span>{groupId:htmlEncode}</div>',"</tpl>",'<tpl if="term">','<div class="normal"><span class="fieldLabel">Term: </span>{term:htmlEncode}</div>',"</tpl>",'<tpl if="section">','<div class="normal"><span class="fieldLabel">Section: </span>{section:htmlEncode}</div>',"</tpl>",'<tpl if="body">','<div class="normal">{body}</div>',"</tpl>","</div>",'<div class="allClear"></div>',"</div>");
this.groupTpl.disableFormats=true;
this.groupTpl.compile();
this.defaultGroupImg=ug.staticUrl+"/images/groupImage.png";
this.peerTpl=new Ext.XTemplate('<div class="peerProfile">','<div><img class="cp_profileImage" src="{image}" alt="{name:htmlEncode}" /></div>','<div class="profileInfo">','<div class="titleText">{name:htmlEncode}</div>',"</div>",'<div class="allClear"></div>',"</div>");
this.peerTpl.disableFormats=true;
this.peerTpl.compile();
this.defaultPeerImg=ug.staticUrl+"/images/peerImage.png";
this.siteTpl=new Ext.XTemplate('<div class="siteProfile">',"<div>",'<tpl if="image">','<img class="cp_profileImage" src="{image}!96" alt="{name:htmlEncode}" />',"</tpl>",'<tpl if="icon && !image">','<img class="cp_profileImage" src="{icon}" alt="{name:htmlEncode}" />',"</tpl>","</div>",'<div class="profileInfo">','<div class="titleText">{name:htmlEncode}</div>','<tpl if="body != null">','<div class="normal">{body}</div>',"</tpl>","</div>",'<div class="allClear"></div>',"</div>");
this.siteTpl.disableFormats=true;
this.siteTpl.compile()
},setSelection:function(A){this.task.delay((A.length>0)?150:0,this.showSelection,this,[A])
},datum:{},showSelection:function(D){if(D.length==1){var C=D[0];
if(C.id!=this.datum.id){this.setDatum(C);
var B=(C.type=="user")?"User.getProfiles":(C.type=="group")?"Group.getProfiles":null;
if(B&&C.id){var A=function(F){var E=F[0];
if(E&&(E.id==this.datum.id)){Ext.applyIf(E,this.datum);
this.setDatum(E)
}};
ug.rpc(B,{ids:C.id},A,this)
}}}else{this.setDatum({})
}},setDatum:function(A){this.datum=A;
var C=A&&A.type;
if((C=="user")||(C=="group")){var D=Ext.apply({},A),B;
if(typeof (D.image)=="undefined"){D.image=this.loadingImg;
B=this.loadingTpl
}else{if(C=="user"){if(D.image){D.image=D.image+"!96"
}else{D.image=this.defaultUserImg
}B=this.userTpl
}else{if(D.image){D.image=D.image+"!96"
}else{D.image=this.defaultGroupImg
}B=this.groupTpl
}}Ext.fly("domainBrowserSelection").hide();
B.overwrite(this.el,D);
Ext.fly("domainBrowserSelection").show(true)
}else{if(C=="site"){var D=Ext.apply({},A);
if(!D.icon){D.icon=ug.staticUrl+"/images/"+D.iconName+"96.png"
}Ext.fly("domainBrowserSelection").hide();
this.siteTpl.overwrite(this.el,D);
Ext.fly("domainBrowserSelection").show(true)
}else{if(C=="peerDomain"){var D=Ext.apply({},A);
if(D.image){D.image=D.image+"!96"
}else{D.image=this.defaultPeerImg
}Ext.fly("domainBrowserSelection").hide();
this.peerTpl.overwrite(this.el,D);
Ext.fly("domainBrowserSelection").show(true)
}else{this.el.update("<div></div>")
}}}this.goButton.setVisible(A&&(((A.type=="user")||(A.type=="group"))&&A.canViewPortal||(A.type=="peerDomain"))&&(D.name!=null))
}});
ug.DomainRenderer=Ext.extend(ug.CellRenderer,{height:18,render:function(B,A){var D=Ext.fly(A);
D.addClass(B.type+"Cell");
var C=Ext.util.Format.htmlEncode(B.name);
ug.flyChild(D,".inner").update(C)
}});
ug.AbstractBrowser=function(A){ug.AbstractBrowser.superclass.constructor.call(this,A)
};
Ext.extend(ug.AbstractBrowser,ug.MillerColumns,{onColumnAction:function(A,B){if(A==1){this.columns[1].storage.getSelectedData(function(C){this.onGo(C,B.ctrlKey)
},this)
}else{ug.DomainBrowser.superclass.onColumnAction.apply(this,arguments)
}},onGoButton:function(B,A){if(this.activeColumn==1){var C=B.browserEvent?B:A;
var D=C.browserEvent.ctrlKey;
this.columns[1].storage.getSelectedData(function(E){this.onGo(E,D)
},this)
}},onGo:function(A,B){},onColumnSelection:function(B,E){var F=B+1;
var A=(E.length==1)&&E[0];
if(A&&A.type){var D=A.type;
if(D=="users"){var C=this.columns[F++];
C.reset({disabled:false,filterDisabled:false,filterHidden:false,singleSelect:this.singleSelect,source:{rpc:"User.findUsers",params:{sort:"familyName,givenName,middleName",queryField:"familyName,givenName,middleName",count:true,images:this.withImages},dataField:"users",countField:"totalCount",filterParam:"query",annotation:{type:"user"},paged:true}})
}else{if((D=="myGroups")||(D=="allGroups")){var C=this.columns[F++];
C.reset({disabled:false,filterDisabled:false,filterHidden:false,singleSelect:this.singleSelect,source:{rpc:"Group.findGroups",params:{sort:"name",dir:"ASC",archetype:A.archetype,directory:(D=="allGroups"),queryField:"name"},dataField:"groups",countField:"totalCount",filterParam:"query",annotation:{type:"group"},paged:true}})
}else{if(D=="peerDomains"){var C=this.columns[F++];
C.reset({disabled:false,filterDisabled:true,filterHidden:false,singleSelect:this.singleSelect,leaf:true,source:{paged:false,data:A.children}})
}else{if(D=="connections"){var C=this.columns[F++];
C.reset({disabled:false,filterDisabled:false,filterHidden:false,singleSelect:this.singleSelect,leaf:true,source:{url:"/control/component/"+A.componentId+"/findConnections",params:{sort:"name",network:A.id,dir:"ASC",queryField:"name"},dataField:"connections",countField:"totalCount",filterParam:"query",annotation:{type:"user"},paged:true}})
}}}}}this.resetColumns(F)
}});
ug.DomainBrowser=function(A){if(A.precalculateWidth){var C=Ext.fly("pageLayout-body").getWidth();
var B=ug.addAncestralOuterWidths(A.renderTo);
A.width=C-B-ug.getScrollBarWidth()
}ug.DomainBrowser.superclass.constructor.call(this,Ext.apply({},A,{cls:"domainBrowser",cols:2,singleSelect:true,renderer:new ug.DomainRenderer()}))
};
Ext.extend(ug.DomainBrowser,ug.AbstractBrowser,{initComponent:function(){ug.DomainBrowser.superclass.initComponent.apply(this,arguments);
var A=new Ext.Action({cls:"x-btn-text-icon domainBrowserGoAction",handler:this.onGoButton,scope:this,iconCls:"btn-go",text:"Go",hidden:true});
this.goButton=new Ext.Button(A);
this.selectionPanel=new ug.SelectionPanel({goButton:this.goButton});
this.add({xtype:"panel",layout:"auto",cls:"domainBrowserSelection",id:"domainBrowserSelection",width:256,height:this.height,border:false,items:[this.selectionPanel,this.goButton]})
},onGo:function(A,B){if((A.length>0)&&A[0]){if(A[0].url){ug.go(A[0].url,B)
}else{if(A[0].type=="peerDomain"){ug.go("/control/dynamic/IntegrationRpc.sso?system="+A[0].id,B)
}else{ug.rpc("NameRpc.getPath",{item:A[0].id},function(C){ug.go(C,B)
})
}}}}});
ug.PickerRenderer=Ext.extend(ug.CellRenderer,{height:80,width:112,render:function(B,A){var E=ug.flyChild(A,".inner");
E.addClass("miniProfile");
var C=B.image?B.image+"!48":ug.staticUrl+"/images/userThumbnail.png";
var D='<img class="miniProfileImage cp_roundedThumbnail" src="'+C+'" /><br /><span class="miniProfileName">'+Ext.util.Format.htmlEncode(B.name)+"</span>";
E.update(D)
}});
ug.VirtualPickerPanel=function(A){ug.VirtualPickerPanel.superclass.constructor.call(this,Ext.apply({},A,{cls:"virtualPanel pickerPanel"}))
};
Ext.extend(ug.VirtualPickerPanel,ug.VirtualPanel,{});
ug.RecipientPicker=function(A){ug.RecipientPicker.superclass.constructor.call(this,Ext.apply({},A,{cls:"recipientPicker",renderer:new ug.PickerRenderer(),withImages:true,singleSelect:true,columnConfig:[{columnWidth:0.3},{panelClass:ug.VirtualPickerPanel,columnWidth:0.7}]}));
if(this.okButton){this.okButton.on("click",this.onGoButton,this)
}};
Ext.extend(ug.RecipientPicker,ug.AbstractBrowser,{onColumnSelection:function(B,C){var A=C.length&&C[0];
if(this.okButton){this.okButton.dom.disabled=!A||(A.type!="user")
}ug.RecipientPicker.superclass.onColumnSelection.apply(this,arguments)
}});

