function shareFileOption(node){
	if(node.attributes.bm_id != undefined){
		var share_id = node.attributes.bm_id;
		var share_source = 'mB';
		if(node.attributes.mm_key != '')
			createTreeNode(node.attributes.mm_key,'handleSharedBookmarkFileNode');	
		else
			shareFileOptionWindow(node.attributes.bm_id,'mB',node);	
	}else
		shareFileOptionWindow(node.attributes.mm_key,'mF',node);	
}

function handleSharedBookmarkFileNode(node){
	shareFileOptionWindow(getActiveFileTree().getSelectionModel().getSelectedNode().attributes.bm_id,'mB',node);
}


function shareFileOptionWindow(share_id,share_source,node){
	var disable_search = (Ext.value(myRSNA_customer_class,'') == 'MYRSNA' ? true:false);
	
	var share_window = new Ext.Window({
			id:'share_'+share_id,
			share_id:share_id,
			share_source:share_source,
			share_node:node,
			title:'Share Options',
			closable:true,
			width:800,
			height:'100%',
			autoScroll:true,
			iconCls:'iconGroupAdd',
			modal:true,
			shadow:false
			,items:[
				new Ext.TabPanel({
					id:'share_tabpanel_'+share_id
					,height:525
					,width:'100%'
					,border:false
					,activeTab:0
					,items:[
						{id:'share_property_tab_'+share_id
						,title:'Share Properties'
						,layout:'column'
						,listeners:{'activate':handleShareTabActivate}
							}
						   
						,{id:'share_search_tab_'+share_id
						,title:'Search Users'
						,layout:'column'
						,disabled:disable_search
						,listeners:{'activate':handleShareTabActivate}
							}
							
						,{id:'share_manage_tags_tab_'+share_id
						,title:'Manage Tags'
						,layout:'column'
//						,disabled:disable_search
						,listeners:{'activate':handleShareTabActivate}
							}
					]
				})
			]
		}
	).show();	
}


function getShareWindowArgs(obj){
	var share_args = {};
	var parent_window = (obj.getXType() == 'window' ? obj : obj.findParentByType('window'));
	share_args.share_id = parent_window.share_id;
	share_args.share_source = parent_window.share_source;
	share_args.share_node = parent_window.share_node;
	return share_args;
}


function handleShareTabActivate(tabpanel){
	var share_args = getShareWindowArgs(this);

	if(tabpanel.id.substring(0,17) == 'share_search_tab_'){
		var search_form = getShareSearchForm(share_args);
		var results_container = getShareResultsContainer(share_args);
		
		tabpanel.add(search_form);
		tabpanel.add(results_container);
		tabpanel.doLayout();
		
		var share_button = 	new Ext.Button({id:'share_button_'+share_args.share_id
						 ,text:'Share'
						 ,iconCls:'iconGroupAdd'
						 ,disabled:true
						 ,listeners:{'click':function(button,e){
										handleShareAddButton(share_args,'ADD');
									}
							}
					});	
	
		var paging_bar = Ext.getCmp('search_results_paging_tbar_'+share_args.share_id);
		paging_bar.addButton(share_button);
		paging_bar.items.items[paging_bar.items.length-1].el.dom.parentNode.align = 'right';
		paging_bar.items.items[paging_bar.items.length-1].el.dom.parentNode.width = paging_bar.el.dom.clientWidth-225;
	}else if(tabpanel.id.substring(0,19) == 'share_property_tab_'){
		var property_panel = getSharePropertyPanel(share_args);
		var users_container = getShareUsersContainer(share_args);
		
		tabpanel.add(property_panel);
		tabpanel.add(users_container);
		tabpanel.doLayout();
		
		var remove_button = new Ext.Button({id:'remove_share_button_'+share_args.share_id
						 ,text:'Remove'
						 ,iconCls:'iconGroupRemove'
						 ,disabled:true
						 ,listeners:{'click':function(button,e){
										handleShareButton(share_args,'REMOVE');
									}
							}
					});	
	
		var paging_bar = Ext.getCmp('shared_users_paging_tbar_'+share_args.share_id);
		paging_bar.addButton(remove_button);
		paging_bar.items.items[paging_bar.items.length-1].el.dom.parentNode.align = 'right';
		paging_bar.items.items[paging_bar.items.length-1].el.dom.parentNode.width = paging_bar.el.dom.clientWidth-225;
	}else{
		var radlex_column = getShareRadlexTree(share_args);
		var term_column = getShareAppliedTerms(share_args);
		var radlex_panel = new Ext.Panel({
				id:'user_radlex_panel_'+share_args.share_id
				,layout:'border'
				,height:tabpanel.getInnerHeight()
				,width:tabpanel.getInnerWidth()
				,items:[radlex_column,term_column]
			});
		
		tabpanel.add(radlex_panel)
		tabpanel.doLayout();
		
		var termgrid = Ext.getCmp('fileproperties_term_gridpanel'+share_args.share_id);
		termgrid.getStore().load();
		termgrid.getStore().sort('tag');

		var radlex_tree = Ext.getCmp('radlex_browser'+share_args.share_id);
		radlex_tree.getTopToolbar().addItem(new Ext.Button({id:'blankbutton'+share_args.share_id,text:'',disabled:true}));
		radlex_tree.setHeight(325);
		
		var gridtbar = termgrid.getTopToolbar();
		var remove_button = new Ext.Button({id:'delete_tag'+share_args.share_id
								,text:'Remove selected tags'
								,iconCls:'viewer-DELETE-TERM'
								,disabled:true
								,listeners:{'click':function(button,e){
													var selNodes = termgrid.getSelectionModel().getSelections();
													if(selNodes.length>0){
														var args = {};
														args.selNodes = selNodes;
														args.id = share_args.share_id;
														args.treeid = getActiveFileTree().id;
														args.node = share_args.share_node;
														removeRadlexTerms(args);
													}
												}
										}
								});
		
		gridtbar.addFill();
		gridtbar.addItem(remove_button);
		termgrid.setHeight(299);	
		
		
		var termviewer = Ext.getCmp('applied_viewer'+share_args.share_id);
		var viewertbar = termviewer.getTopToolbar();		
		var twintrigcombox = getShareCustomTagCombox(share_args);
	  
		viewertbar.addFill();
		viewertbar.addItem(twintrigcombox);
		termviewer.setHeight(200);
		
//		var term_viewer = Ext.getCmp('applied_viewer'+share_args.share_id);
//		term_viewer.getTopToolbar().addItem(new Ext.Button({id:'blankbutton_tv'+share_args.share_id,text:'',disabled:true}));
//		term_viewer.setHeight(200);
	}
	
	tabpanel.removeListener('activate',handleShareTabActivate);
}



function getShareRadlexTree(share_args){
	var radlex_panel = new Ext.Panel({
			id:'user_radlex_treepanel_'+share_args.share_id 
			,width:250
			,height:500
			,region:'west'
			,border:false
			,items:[
					new Ext.tree.TreePanel({
						id: 'radlex_browser'+share_args.share_id 
						,tbar:new Ext.Toolbar({autoWidth:true,cls:'x-panel-header',items:['<b>RadLex Browser</b>']})
						,bbar:new Ext.Toolbar({autoWidth:true,cls:'x-panel-header',items:[new Ext.app.SearchField({id:'radlex_searchfield'+share_args.share_id ,emptyText:'Search RadLex...',width:245})]})
						,border:true
			//			,height:517
						,height:325
						,width:250
						,autoScroll:true
						,rootVisible:false
						,root: new Ext.tree.AsyncTreeNode({id:'RID1'})
						,loader: new Ext.tree.RadlexTreeLoader({
								dataUrl:myRSNApath + 'myfiles/myfiles.json.radlex.cfm'
								,baseParams:{ACTION:'GETCHILDREN',treeformat:true,q:''}
								,requestMethod:'POST'
						})
						,listeners:{'click':function(node,e){if(!node.expanded){node.ui.ecClick(e);}}}
					})
					
					   ,{border:true,height:175,width:250,autoScroll:true
					,html:'<div style="font-size:12px; padding:10px;">Explore terms using the RadLex Browser or narrow your results with the search area immediately above.<br><br>The Applied Tags section displays all tags associated with this asset and an opportunity to add your custom tags, while the Term Viewer gives a detailed view of any selected RadLex terms.</div>'}
				   ]
			});

	var radlexTplMarkup = getRadlexViewerTplMarkup(share_args.share_id,false,true);  

	var radlexTpl = new Ext.XTemplate(radlexTplMarkup);	
	var radtree = Ext.getCmp('radlex_browser'+share_args.share_id);
	
	radtree.getSelectionModel().on('selectionchange',function(selModel,node){
			if(node != null){
				Ext.Ajax.request({
					url:'/myfiles/myfiles.json.radlex.cfm'
					,method:'POST'
					,params:{action:'GETTERM',radlexID:node.attributes.radlexID}
					,success:function(responseObj,optionsObj){
							var JSON = Ext.decode(responseObj.responseText);
							var tpl_args = {radlexID:JSON.attributes.id};
							tpl_args.share_id = share_args.share_id;
							Ext.each(JSON.children,function(child,index,a){
									if(child.children.length == 0){
										tpl_args[child.tag] = Ext.util.Format.capitalize(child.text);
									}else{
										tpl_args[child.tag] = child.children;
									}
								});
							
							var term_viewer = Ext.getCmp('applied_viewer'+share_args.share_id);
							radlexTpl.overwrite(term_viewer.body, tpl_args);
							var old_button = Ext.getCmp('apply_term'+share_args.share_id);

							if(old_button != undefined)
								old_button.destroy();

							var apply_button = new Ext.Button({id:'apply_term'+share_args.share_id
													,text:'Apply RadLex Tag'
													,iconCls:'viewer-ADD-TERM'
													,radlexID:JSON.attributes.id
													,renderTo:'term_viewer_button'+share_args.share_id
													,listeners:{'click':function(button,e){applyRadlexTerms(button.radlexID,share_args.share_id);}}
													});
						}
					,failure:function(responseObj,optionsObj){
							handleActionFailure('Sorry, we were unable to retrieve more information about the selected Radlex Term.');	
						}
				});	
			}
		});
	
		
	return radlex_panel;
}


function getShareAppliedTerms(share_args){
	if(share_args.share_node.attributes.mm_key != ''){
		var media_id = share_args.share_node.attributes.mm_key;
		var media_type = 'CF';
	}else{
		var media_id = share_args.share_node.id;
		var media_type = 'BM';
	}

	var term_store = new Ext.data.JsonStore({
						id:'radlex_term_store'+share_args.share_id
						,url:'/myfiles/update_customer_file.cfm'
						,baseParams:{action:'GETMEDIATAGS',allCustomers:true,media_id:media_id,media_type:media_type}
						,fields:['ct_id','media_id','radlex_id','media_type','tag']
						,listeners:{'beforeload':function(store,o){
													Ext.getCmp('fileproperties_term_gridpanel'+share_args.share_id).getEl().unmask();
													Ext.getCmp('fileproperties_term_gridpanel'+share_args.share_id).getEl().mask('Loading...','ext-el-mask-msg x-mask-loading');
												}
									,'load':function(store,records,o){
													Ext.getCmp('fileproperties_term_gridpanel'+share_args.share_id).getEl().unmask();
													if(records.length == 1 && records[0].data.ct_id == 'blank_record'){
														store.remove(records[0]);
														Ext.getCmp('fileproperties_term_gridpanel'+share_args.share_id).getEl().mask('<div align="center">Navigate RadLex terms to the left or add your custom tag below.</div>');
													}
												}
								}
					});
	
    	var applied_panel = new Ext.Panel({
		id:'user_terms_panel'+share_args.share_id
		,height:500
		,width:540
		,region:'center'
		,border:false
		,items: [
			{
				xtype:'grid'
				,id:'fileproperties_term_gridpanel'+share_args.share_id
				,height:300
				,width:540
				,tbar:new Ext.Toolbar({autoWidth:true,cls:'x-panel-header',items:['<b>Applied Tags</b>']})
				,border:true
				,autoScroll: true
				,store: term_store
				,columns: [{header: "Tag/Term", width: 530, dataIndex:'tag'}]
				,multiSelector:true
				,hideHeaders:true
				,listeners: {'cellclick':handleTermLeftClick,'cellcontextmenu':handleTermRightClick}
				,viewConfig: {getRowClass: function(r,index) {if(r.get('radlex_id') != ''){return 'x-grid-radlex';}}}			
			}
			
			,{
				xtype:'panel'
				,id:'applied_viewer'+share_args.share_id
				,tbar:new Ext.Toolbar({autoWidth:true,cls:'x-panel-header',items:['<b>Term Viewer</b>']})
				,region:'center'
				,bodyStyle:'padding-left:5px; padding-top:5px;'
				,height:200
				,width:540
				,autoScroll:true
				,html:'<div align="center" style="width:100%;"><div align="center" style="width:90%;"><br><br><b>Use the Radlex Browser and search feature to navigate terms you can use to tag this asset.  Click on a Radlex term to view more information.</b></div></div>'
			}
		]
	});
	
	return applied_panel;
}


function getShareCustomTagCombox(share_args){
	var tag_store = new Ext.data.JsonStore({
						id:'custom_tag_store'+share_args.share_id
						,url:'/myfiles/update_customer_file.cfm'
						,baseParams:{action:'GETMEDIATAGS',media_id:'',media_type:'',allTags:true,distinctTags:true,excludeShared:true}
						,fields:['ct_id','media_id','radlex_id','media_type','tag']
					});
	tag_store.load();
	tag_store.sort('tag');
	
	var twintrigcombox = new Ext.form.TwinTriggerComboBox({id:'radlex_twintrigcombox'+share_args.share_id
										 ,emptyText:'Enter a tag...'
										 ,width:150
										 ,editable:true
										 ,mode:'local'
										 ,store: tag_store
										 ,displayField:'tag'
										 ,trigger1Class:'x-form-plus-trigger'
										 ,trigger2Class:'x-form-trigger'
										 ,onTrigger1Click:function(e,button,o){
											 var tag = this.getValue().trim();
											 if(tag.length < 3){
												Ext.Msg.show({
														title: 'Add a tag'
														,msg:'<div align="center">All tags must be at least 3 characters</div>'
														,minWidth:250
														,buttons: Ext.MessageBox.OK
												});
											 }else{
												var index = this.store.find('tag',tag);
												var tagID = (index>=0?this.store.getAt(index).data.radlex_id:'');
												
												var args = {};
												args.tag = tag;
												args.id = share_args.share_id;
												args.radlex_id = tagID;
												applyCustomerTag(args);

//												applyCustomerTag(tag,winid,tagID);  
												var temp_store = Ext.getCmp('custom_tag_store'+share_args.share_id);
												if(temp_store != undefined){temp_store.reload();}
											 }
										 }
									});
	return twintrigcombox
}


function getSharePropertyPanel(share_args){
	if(share_args.share_source == 'mB' && share_args.share_node.attributes.mm_key == (undefined || null || '')){
		var mm_clientfile = share_args.share_node.attributes.text;
		var mt_name = share_args.share_node.attributes.node_type;
		var mm_filesize = 'N\\A';
		var mm_duration = '';
		var mm_height = '';
		var mm_width = '';
		var display_link = share_args.share_node.attributes.bm_url;
	}else{
		var mm_clientfile = share_args.share_node.attributes.mm_clientfile;
		var mt_name = share_args.share_node.attributes.mt_name;
		var mm_filesize = share_args.share_node.attributes.mm_filesize;
		var mm_duration = share_args.share_node.attributes.mm_duration;
		var mm_height = share_args.share_node.attributes.mm_height;
		var mm_width = share_args.share_node.attributes.mm_width;
		var display_link = mediapath+'myfiledisplay.cfm?q=' + share_args.share_id;
	}

	var prop_array = new Array();
	var field_height = 25;
	
	prop_array.push({xtype:'panel',border:false,html:'<br>'},
				 
				 new Ext.form.MiscField({
						fieldLabel: 'Name'
						,labelAlign:'top'
						,name: 'file_name'
						,style:'overflow:hidden;'
						,value: Ext.util.Format.ellipsis(mm_clientfile, 50)
					})
				 
					,new Ext.form.MiscField({
						fieldLabel: 'Type'
						,name: 'file_type'
						,height:field_height
						,value: mt_name
					})
				 	
					,new Ext.form.MiscField({
						fieldLabel: 'Size'
						,name: 'file_size'
						,height:field_height
						,value: mm_filesize
					})
				 );
	
	if(mm_duration != '' && mm_duration != null){
		prop_array.push(new Ext.form.MiscField({
					fieldLabel: 'Duration'
					,name: 'file_duration'
					,height:field_height
					,value: mm_duration
					})	 
				 );
	}else if(mm_height != '' && mm_width != ''){
		prop_array.push(new Ext.form.MiscField({
					fieldLabel: 'Height'
					,name: 'file_height'
					,height:field_height
					,value: mm_height + ' px'
					})	 
					 
					,new Ext.form.MiscField({
					fieldLabel: 'Width'
					,name: 'file_width'
					,height:field_height
					,value: mm_width + ' px'
					})
				 );
	}
	
	prop_array.push(
				 {xtype:'label',text:'Link:',style:'font-size:12px; font-weight:bold;',cls:'x-form-item-label'},
				 new Ext.form.TextField({
							fieldLabel:'Link'
							,name:'link'
							,id:'share_opt_link'
							,hideLabel:true
							,height:field_height
							,width:225
							,autoHeight:true
							,value: display_link
							,readOnly:true
							,selectOnFocus:true
						})
			);

	var searchable = (Ext.util.Format.undef(share_args.share_node.attributes.searchable) == '' ? false : true);
	var propPanel = new Ext.Panel({
			id:'user_search_panel_'+share_args.share_id 
			,width:250
			,height:500
			,items:[
				   new Ext.FormPanel({
						id:'user_property_form_'+share_args.share_id
						,width:250
						,border:false
						,bodyStyle:'padding:10px;'
						,labelWidth:70
						,defaults:{labelStyle:'font-size:12px; font-weight:bold; width:50px!important;'}
						,items:prop_array
						})

					 ,{border:false,html:'<table width="90%" align="center" style="font-size:12px;"><tr><td align="left"><input type="checkbox" name="share_check" id="share_check" onClick="Javascript:toggleMakeSearchable(this);"'+(searchable ? ' checked' : '')+ '>&nbsp;Make this asset publicly searchable</td></tr></table>'}
				   
					 ,{xtype:'panel',border:false,html:'<br><br>'}
					 ,{xtype:'panel',html:'<br><table width="95%" align="center"><tr><td><hr></td></tr></table>',border:false}
					   ,{border:false
//						,html:'<table width="90%" align="center" style="padding:10px; font-size:12px;"><tr><td align="center">The "Shared Users" area displays all RSNA members you have shared this asset with.  Click on a user to see more information about them in the "User Profile" section.  You can remove sharing privileges to this asset by selecting users and clicking the "Remove" button.</td></tr></table>'}
						
					,html:'<div style="font-size:12px; padding:10px;">The "Shared Users" area displays all RSNA members you have shared this asset with.  Click on a user to see more information about them in the "User Profile" section.  You can remove sharing privileges to this asset by selecting users and clicking the "Remove" button.</div>'}
				   ]
			});
		
	return propPanel;
}


function toggleMakeSearchable(cb){
	var share_args = getShareWindowArgs(Ext.WindowMgr.getActive());
	var checked = document.getElementById('share_check').checked;
	var source = (getActiveFileTree().id == 'my_bookmarks' ? 'mB' : 'mF');

	Ext.Ajax.request({
		url:'/myfiles/share_customer_file.cfm'
		,method:'POST'
		,params:{action:'TOGGLESEARCH',status:checked,share_id:share_args.share_id,am_id:Ext.util.Format.undef(share_args.share_node.attributes.am_id),source:source}
		,success:function(responseObj,optionsObj){
			var response = Ext.util.JSON.decode(responseObj.responseText);
			var share_args = getShareWindowArgs(Ext.WindowMgr.getActive());
			if(response.result == 'pass'){
				getActiveFileTree().getNodeById(share_args.share_id).attributes.searchable = checked;
				if(response.result == 'pass' )
					Ext.Msg.alert('Success',(checked?'Successfully made this assset searchable.':'Successfully revoked searching rights to this asset.'));
			}else{
				cb.checked = false;
				getActiveFileTree().getNodeById(share_args.share_id).attributes.searchable = false;
				handleActionFailure('You must add at least one Radlex term to this asset before making it publicly searchable.');
				var tabpanel = Ext.getCmp('share_tabpanel_'+share_args.share_id);
				tabpanel.setActiveTab(Ext.getCmp('share_manage_tags_tab_'+share_args.share_id).id);
			}
		}
		,failure:function(responseObj,optionsObj){}
	});
}


function getShareUsersContainer(share_args){
	var share_mbr_store = new Ext.data.JsonStore({
			id:'share_mbr_store_'+share_args.share_id
			,autoLoad:true
			,url:'/myfiles/share_customer_file.cfm'
			,baseParams:{	action:'SEARCHMEMBERS'
						,subaction:'SHARED'
						,share_id:share_args.share_id
						,share_source:share_args.share_source
						,am_id:Ext.util.Format.undef(share_args.share_node.attributes.am_id)}
			,root:'members'
			,totalProperty: 'total'
			,successProperty: 'success'
			,fields:[	{name:'id', mapping:'id'},{name:'first_name',mapping:'first_name'}
				    ,{name:'last_name', mapping:'last_name'}, {name:'city', mapping:'city'}
				    ,{name:'state', mapping:'state'}, {name:'country', mapping:'country'}
				    ,{name:'mbr_since', mapping:'mbr_since'}, {name:'l3', mapping:'l3'}
				    ]
			,listeners:{'beforeload':function(store,o){
										Ext.getCmp('shared_users_gridpanel_'+share_args.share_id).getEl().unmask();
										Ext.getCmp('shared_users_gridpanel_'+share_args.share_id).getEl().mask('Loading...','ext-el-mask-msg x-mask-loading');
									}
						,'load':function(store,records,o){
										Ext.getCmp('shared_users_gridpanel_'+share_args.share_id).getEl().unmask();
										if(records.length == 0)
											Ext.getCmp('shared_users_gridpanel_'+share_args.share_id).getEl().mask('<div align="center">This asset is currently not being shared. <br><br>Click the "Search Users" tab above to find users to share with.</div>');
									}
					}
		});
	
	var results_container = new Ext.Panel({
		id:'shared_users_container_'+share_args.share_id
		,height:500
		,columnWidth:1.0
		,border:false
		,layout:'border'
		,items:[new Ext.grid.GridPanel({
				id:'shared_users_gridpanel_'+share_args.share_id,
				store: share_mbr_store,
				columns: [{header:"First Name", width: 100, dataIndex:'first_name', sortable:true}
						,{header:"Last Name", width: 100, dataIndex:'last_name', sortable:true}
						,{header:"City", width: 150, dataIndex:'city', sortable:true}
						,{header:"State", width:50, dataIndex:'state', sortable:true}
						,{header:"Country", width:125, dataIndex:'country', sortable:true}
						],
				region:'center',
				title:'Shared Users',
				multiSelector:true,
				hideHeaders:false,
				enableColumnHide:false,
				enableHdMenu:false,
				enableColumnMove:false,
				enableColumnResize:true,
				stripeRows: false,
				height:300,
				width:500,
				bbar:new Ext.PagingToolbar({
						id:'shared_users_paging_tbar_'+share_args.share_id,
						store: share_mbr_store,
						pageSize: 10,
						emptyMsg: "No topics to display"
					})
				,listeners: {'rowclick':handleSharedUserLeftClick, 'sortchange':handleSharedUserSort}
				})
		   
		   ,new Ext.Panel({
				id:'shared_users_profile_'+share_args.share_id
				,region:'south'
				,title:'User Profile'
				,height:200
				,width:'100%'
				})
		   ]
  	});
	
	return results_container;
}


function getShareSearchForm(share_args){
	var country_store = new Ext.data.JsonStore({
						id:'country_store_'+share_args.share_id
						,autoLoad:true
						,url:'/myfiles/share_customer_file.cfm'
						,baseParams:{action:'COUNTRIES'}
						,fields:['country','country_code']
					});
	
	var state_store = new Ext.data.JsonStore({
						id:'state_store_'+share_args.share_id
						,autoLoad:true
						,url:'/myfiles/share_customer_file.cfm'
						,baseParams:{action:'STATES'}
						,fields:['state','descr']
					});
	
	var searchForm = new Ext.Panel({
			id:'user_search_panel_'+share_args.share_id 
			,width:250
			,height:500
			,items:[
				   new Ext.FormPanel({
						id:'user_search_form_'+share_args.share_id
//						,height:500
						,width:250
						,border:false
						,bodyStyle:'padding:10px;'
						,labelAlign:'top'
						,defaults:{labelStyle:'font-size:12px; font-weight:bold; width:75;'}
						,items:[{	id: 'user_search_form_first_name_'+share_args.share_id,
								xtype:'textfield',
								fieldLabel: 'First Name',
								anchor:'90%'}
							 ,{	id: 'user_search_form_last_name_'+share_args.share_id,
								xtype:'textfield',
								fieldLabel: 'Last Name',
								anchor:'90%'}
							 ,{	id: 'user_search_form_city_'+share_args.share_id,
								xtype:'textfield',
								fieldLabel: 'City',
								anchor:'90%'}
							,new Ext.form.ComboBox({
								id: 'user_search_form_state_combox_'+share_args.share_id
								,width:'100%'
								,editable: false
								,fieldLabel: 'State'
								,mode:'local'
								,triggerAction:'all'
								,store: state_store
								,displayField:'descr'
								,listeners: {'select': function(combox,record,index){
														Ext.getCmp('user_search_form_state_code_'+share_args.share_id).setValue(record.data.state);
													}
											}
							})
							 ,{	id: 'user_search_form_state_code_'+share_args.share_id,
								xtype:'hidden'}
							,new Ext.form.ComboBox({
								id: 'user_search_form_country_combox_'+share_args.share_id
								,width:'100%'
								,editable: false
								,fieldLabel: 'Country'
								,mode:'local'
								,triggerAction:'all'
								,store: country_store
								,displayField:'country'
								,listeners: {'select': function(combox,record,index){
														Ext.getCmp('user_search_form_country_code_'+share_args.share_id).setValue(record.data.country_code);
													}
											}
							})
							 ,{	id: 'user_search_form_country_code_'+share_args.share_id,
								xtype:'hidden'}
							,new Ext.form.Checkbox({
								id:'user_search_form_shared_users_'+share_args.share_id
								,boxLabel:'<b>Past myRSNA share users</b>'
								,hideLabel:true
							})
							]
						,buttons:[{text: 'Search',handler:shareSearchFormSubmit}
								,{text: 'Clear',handler:shareSearchFormClear}
								]
					  })	
				   
				   ,{html:'<br><table width="95%" align="center"><tr><td><hr></td></tr></table>',border:false}
				   
				   ,{border:false
					,html:'<div style="font-size:12px; padding:10px;">Use the form above to search for other RSNA members that you can share assets with.  Select a member to see more detailed information in the "User Profile" section.  Use the "Share" button to share your asset with the selected users.</div>'}
				   ]
		});
	
	return searchForm
}


function getShareResultsContainer(share_args){
	var mbr_dir_store = new Ext.data.JsonStore({
			id:'mbr_dir_store_'+share_args.share_id
			,autoLoad:true
			,url:'/myfiles/share_customer_file.cfm'
			,baseParams:{	action:'SEARCHMEMBERS'
						,share_id:share_args.share_id
						,share_source:share_args.share_source
						,am_id:Ext.util.Format.undef(share_args.share_node.attributes.am_id)}
			,totalProperty: 'total'
			,successProperty: 'success'
			,root:'members'
			,fields:[	{name:'id', mapping:'id'},{name:'first_name',mapping:'first_name'}
				    	,{name:'last_name', mapping:'last_name'}, {name:'city', mapping:'city'}
					,{name:'state', mapping:'state'}, {name:'country', mapping:'country'}
					,{name:'mbr_since', mapping:'mbr_since'}, {name:'l3', mapping:'l3'}
				    ]	
			,listeners:{'beforeload':function(store,o){
										Ext.getCmp('search_results_gridpanel_'+share_args.share_id).getEl().unmask();
										Ext.getCmp('search_results_gridpanel_'+share_args.share_id).getEl().mask('Loading...','ext-el-mask-msg x-mask-loading');
									}
						,'load':function(store,records,o){
										Ext.getCmp('search_results_gridpanel_'+share_args.share_id).getEl().unmask();
										if(records.length == 0)
											Ext.getCmp('search_results_gridpanel_'+share_args.share_id).getEl().mask('<div align="center">Use the form to the left to search for other users. <br><br>Click on the resulting names to see their profile in the area below.</div>');
									}
					}
		});	
	
	var results_container = new Ext.Panel({
		id:'search_results_container_'+share_args.share_id
		,height:500
		,columnWidth:1.0
		,border:false
		,layout:'border'
		,items:[new Ext.grid.GridPanel({
				id:'search_results_gridpanel_'+share_args.share_id,
				store: mbr_dir_store,
				columns: [{header:"First Name", width: 100, dataIndex:'first_name', sortable:true}
						,{header:"Last Name", width: 100, dataIndex:'last_name', sortable:true}
						,{header:"City", width: 150, dataIndex:'city', sortable:true}
						,{header:"State", width:50, dataIndex:'state', sortable:true}
						,{header:"Country", width:125, dataIndex:'country', sortable:true}
						],
				region:'center',
				title:'Search Results',
				multiSelector:true,
				hideHeaders:false,
				enableColumnHide:false,
				enableHdMenu:false,
				enableColumnMove:false,
				enableColumnResize:true,
				stripeRows: false,
				height:300,
				width:500,
				bbar:new Ext.PagingToolbar({
						id:'search_results_paging_tbar_'+share_args.share_id,
						store: mbr_dir_store,
						pageSize: 10,
						emptyMsg: "No topics to display"
					})
				,listeners: {'rowclick':handleCustomerSearchLeftClick, 'sortchange':handleCustomerSearchSort}
				})
		   
		   ,new Ext.Panel({
				id:'search_results_profile_'+share_args.share_id
				,region:'south'
				,title:'User Profile'
				,height:200
				,width:'100%'
				})
		   ]
  	});
	
	return results_container;
}



function shareSearchFormSubmit(button,e){
	var share_args = getShareWindowArgs(this);
	var search_form = Ext.getCmp('user_search_form_'+share_args.share_id);
	var first_name = search_form.findById('user_search_form_first_name_'+share_args.share_id).getValue();
	first_name = (first_name.length > 0 ? first_name.trim() : first_name);
	var last_name = search_form.findById('user_search_form_last_name_'+share_args.share_id).getValue();
	last_name = (last_name.length > 0 ? last_name.trim() : last_name);
	var city = search_form.findById('user_search_form_city_'+share_args.share_id).getValue();
	city = (city.length > 0 ? city.trim() : city);
	var state = search_form.findById('user_search_form_state_code_'+share_args.share_id).getValue();
	state = (state.length > 0 ? state.trim() : state);
	var country = search_form.findById('user_search_form_country_code_'+share_args.share_id).getValue();
	country = (country.length > 0 ? country.trim() : country);
	var share_users = search_form.findById('user_search_form_shared_users_'+share_args.share_id).getValue();

	var valid = false;
	if(first_name.length > 0 || last_name.length > 0 || city.length > 0 
			|| state.length > 0	|| country.length > 0 || share_users)
		{valid = true;}
	if(!valid){
		handleActionFailure('Please enter a search term or make a selection.');	
	}else{
		var share_button = Ext.getCmp('share_button_'+share_args.share_id);
		share_button.disable();
		var profile_panel = Ext.getCmp('search_results_profile_'+share_args.share_id);
		var gridpanel = Ext.getCmp('search_results_gridpanel_'+share_args.share_id);
		var url = '/myfiles/member_profile.cfm?id=&=l3=&ms=';
		profile_panel.load({url:url});
		gridpanel.getStore().load({params:{first_name:first_name,last_name:last_name,city:city,state:state,country:country,share_users:share_users,start:0}});
	}
}


function shareSearchFormClear(button,e){
	var share_args = getShareWindowArgs(this);
	var search_form = Ext.getCmp('user_search_form_'+share_args.share_id);
	search_form.findById('user_search_form_first_name_'+share_args.share_id).setValue('');
	search_form.findById('user_search_form_last_name_'+share_args.share_id).setValue('');
	search_form.findById('user_search_form_city_'+share_args.share_id).setValue('');
	search_form.findById('user_search_form_state_code_'+share_args.share_id).setValue('');
	search_form.findById('user_search_form_country_code_'+share_args.share_id).setValue('');
	search_form.findById('user_search_form_state_combox_'+share_args.share_id).setValue('');
	search_form.findById('user_search_form_country_combox_'+share_args.share_id).setValue('');
	search_form.findById('user_search_form_shared_users_'+share_args.share_id).setValue('off');
}


function handleSharedUserLeftClick(grid,index,e){
	var share_args = getShareWindowArgs(this);
	var record = grid.getStore().getAt(index);
	var profile_panel = Ext.getCmp('shared_users_profile_'+share_args.share_id);
	var url = '/myfiles/member_profile.cfm?id='+escape(record.data.id)+'&=l3='+escape(record.data.l3)+'&ms='+escape(record.data.mbr_since);
	profile_panel.load({url:url});
	
	var remove_button = Ext.getCmp('remove_share_button_'+share_args.share_id);
	remove_button.enable();
}


function handleSharedUserSort(gridpanel,sortinfo){
	if(gridpanel.store.data.items.length > 0){
		var share_args = getShareWindowArgs(this);
		var opts = (gridpanel.store.lastOptions.params != undefined ? gridpanel.store.lastOptions.params : {});
		opts.orderby = sortinfo.field;
		opts.sortorder = sortinfo.direction;
		opts.start = 0;
	
		var profile_panel = Ext.getCmp('shared_users_profile_'+share_args.share_id);
		var mbr_dir_store = Ext.getCmp('shared_users_gridpanel_'+share_args.share_id).getStore();
		var url = '/myfiles/member_profile.cfm?id=&=l3=&ms=';
		profile_panel.load({url:url});

		gridpanel.store.load({params:opts});
	}
}


function handleCustomerSearchLeftClick(grid,index,e){
	var share_args = getShareWindowArgs(this);
	var record = grid.getStore().getAt(index);
	var profile_panel = Ext.getCmp('search_results_profile_'+share_args.share_id);
	var url = '/myfiles/member_profile.cfm?id='+escape(record.data.id)+'&=l3='+escape(record.data.l3)+'&ms='+escape(record.data.mbr_since);
	profile_panel.load({url:url});
	
	var share_button = Ext.getCmp('share_button_'+share_args.share_id);
	share_button.enable();
}

function handleCustomerSearchSort(gridpanel,sortinfo){
	if(gridpanel.store.data.items.length > 0){
		var share_args = getShareWindowArgs(this);
		var opts = (gridpanel.store.lastOptions.params != undefined ? gridpanel.store.lastOptions.params : {});
		opts.orderby = sortinfo.field;
		opts.sortorder = sortinfo.direction;
		opts.start = 0;
	
		var profile_panel = Ext.getCmp('search_results_profile_'+share_args.share_id);
		var mbr_dir_store = Ext.getCmp('search_results_gridpanel_'+share_args.share_id).getStore();
		var url = '/myfiles/member_profile.cfm?id=&=l3=&ms=';
		profile_panel.load({url:url});

		gridpanel.store.load({params:opts});
	}
}


function handleShareAddButton(share_args, subaction){
	var share_win = Ext.WindowMgr.getActive();
	var zindex = share_win.el.dom.style.zIndex;

	new Ext.Window({
		id:'share_personal_message_'+share_args.share_id
		,title:'Add a message?'
		,closable:true
		,width:400
		,height:'100%'
		,autoScroll:true
		,iconCls:'myRSNA-email-edit'
		,modal:true
		,shadow:true	
		,plain:true
		,border:false
		,bodyCfg:{tag:'center'}
		,bodyStyle:'padding-left:5px;padding-right:5px;padding-bottom:10px;padding-top:5px;'
		,buttonAlign:'center'
		,listeners:{'show':function(win){share_win.el.dom.style.zIndex = '8000';}
				,'close':function(win){share_win.el.dom.style.zIndex = zindex;}
		}
		,items:[
			{xtype:'panel',border:false,plain:true,html:'<center><b>Use the textbox below to include a personal message with this asset.</b></center>',bodyStyle:'background:transparent;padding-top:5px;padding-bottom:10px;'}
			,{id:'share_personal_message_form_'+share_args.share_id
			,xtype:'textarea'
			,fieldLabel:'Notes'
			,width:300
			,height:100
			}
		]
		,buttons:[
			{xtype:'button'
			,text:'Share this asset'
			,iconCls:'iconGroupAdd'
			,listeners:{'click':function(button,e){
								var message = Ext.getCmp('share_personal_message_form_'+share_args.share_id);
								share_args.message = message.getValue();
								Ext.WindowMgr.getActive().destroy();
								Ext.WindowMgr.bringToFront(share_win)
								handleShareButton(share_args,'ADD');
							}
					}
			}
			
			,{xtype:'button'
			,text:'Cancel'
			,iconCls:'menu-CANCEL'
			,listeners:{'click':function(b,e){Ext.WindowMgr.getActive().destroy();}}}
		]
	}).show();
	
//	var msgbox = Ext.CustomMessageBox.prompt('Share File','Would you like to add a personal message with this file?',function(){share_win.el.dom.style.zIndex = zindex;},this,true,'test');
//	msgbox.setIcon(Ext.MessageBox.QUESTION);
	share_win.el.dom.style.zIndex = '8000';


//	handleShareButton(share_args,subaction);
}


    
    
function handleShareButton(share_args,subaction){
	if(subaction == 'REMOVE'){
		var msg_1 = 'Removing shared users...';
		var msg_2 = 'Successfully removed sharing rights to this asset from the selected users.';
		var msg_3 = 'Sorry, there was an error while editing the "Share" properties of this asset.'
		var obj_prefix = 'shared_users';
		var gridpanel = Ext.getCmp('shared_users_gridpanel_'+share_args.share_id);
	}else{
		var msg_1 = 'Sharing...';
		var msg_2 = 'Successfully shared this asset with the selected users.';
		var msg_3 = 'Sorry, there was an error while sharing this asset.';
		var obj_prefix = 'search_results';
	}
	
	Ext.getBody().mask(msg_1,'ext-el-mask-msg x-mask-loading');
	var gridpanel = Ext.getCmp(obj_prefix + '_gridpanel_'+share_args.share_id);
	var selRecords = gridpanel.getSelectionModel().getSelections();
	var id_list = '';
	for(var i=0; i<selRecords.length; i++){
		id_list = id_list + (i>0 ? ',' : '') + selRecords[i].data.id;
	}
	



	Ext.Ajax.request({
		url:'/myfiles/share_customer_file.cfm'
		,method:'POST'
		,params:{action:'SHAREFILE',subaction:subaction,share_id:share_args.share_id,id:id_list,share_source:share_args.share_source,am_id:Ext.util.Format.undef(share_args.share_node.attributes.am_id),message:Ext.value(share_args.message,'')}
		,success:function(responseObj,optionsObj){
				Ext.getBody().unmask();

				var response = Ext.util.JSON.decode(responseObj.responseText);
				// need to get the args again so we have the most up to date info about the node
				var upd_args = getShareWindowArgs(Ext.WindowMgr.getActive());
				var shared_file = (Ext.util.Format.undef(upd_args.share_node.attributes.shared_file) == '' ? false : true);
				
				if(shared_file != response.shared_file){
					updateTreeNodeShareIcon(upd_args,'HOSTED');
					Ext.WindowMgr.getActive().share_node.attributes.shared_file = response.shared_file;
				}
											    
				if(subaction == 'REMOVE'){
					var store = gridpanel.getStore();
					for(var j=0; j<selRecords.length; j++){
						store.remove(selRecords[j]);
					}
					
					Ext.getCmp('remove_share_button_'+share_args.share_id).disable();
					var profile_panel = Ext.getCmp(obj_prefix + '_profile_'+share_args.share_id);
					var url = '/myfiles/member_profile.cfm?id=&=l3=&ms=';
					profile_panel.load({url:url});
					
				}else{
					var store = gridpanel.getStore();
					for(var j=0; j<selRecords.length; j++){
						store.remove(selRecords[j]);
					}
					
					Ext.getCmp('share_button_'+share_args.share_id).disable();
					var profile_panel = Ext.getCmp(obj_prefix + '_profile_'+share_args.share_id);
					var url = '/myfiles/member_profile.cfm?id=&=l3=&ms=';
					profile_panel.load({url:url});
					
					
					var share_tab = Ext.getCmp('share_property_tab_'+share_args.share_id);
					share_tab.on('activate',handleShareTabActivate);
				}
				
				Ext.Msg.alert('Success',msg_2);
			}
		,failure:function(responseObj,optionsObj){
				Ext.getBody().unmask();
				handleActionFailure(msg_3);	
			}
	});	

}


function updateTreeNodeShareIcon(share_args,type){
	var tree = getActiveFileTree();
	var prefix = getActiveFileTreePrefix();
	var node = tree.getNodeById(share_args.share_id);

	if(node != null){
		var iconCls = node.attributes.iconCls;
		var new_Cls = 'tree-' + (iconCls.indexOf(type) == -1 ? type+'-'+iconCls.substr(5) : iconCls.substr(5+type.length+1));
		node.ui.iconNode.className = node.ui.iconNode.className.replace(node.attributes.iconCls, new_Cls);
		node.attributes.iconCls = new_Cls;
		if(type == 'HOSTED') node.attributes.shared_file = (iconCls.indexOf(type) == -1 ? false : true);
		else if(type == 'SHARED') node.attributes.shared_copy = true;
	}

	var tbar_icon = Ext.getCmp(prefix+'viewfilespanel_tbar_icon');
	if(tbar_icon != null){
		var new_Cls = 'tree-' + (tbar_icon.iconCls.indexOf(type) == -1 ? type+'-'+tbar_icon.iconCls.substr(5) : tbar_icon.iconCls.substr(5+type.length+1));
		tbar_icon.setIconClass(new_Cls);
	}
}