app.usermanager = { 
	
	active : null,
	
	applicants : null,
	
	approvalButtonClick : function(e){
		var targ = sb.events.target(e);
		if((targ.nodeName == 'BUTTON') && (!targ.disabled)){ 
			var lc_action = targ.innerHTML.toLowerCase();
			var mes = 'Are you sure you want to ' + lc_action + ' the user: ' + app.usermanager.selected.innerHTML;
			if(confirm(mes)){
				new sb.ajax({ 
					data : 'c=' + lc_action + '_user&uid=' + app.usermanager.selected.href.match(/\d*$/),
					handler : function(){
						app.usermanager.applicants.update({page : 1, selector : 'ALL'});
						app.usermanager.active.update({page : 1, selector :'ALL'});
						if(lc_action == 'reject'){ app.details.innerHTML = app.usermanager.defmsg;}
						
						app.usermanager.appButtonToggle(true);
					}
				}).fetch();
			}
		}
	},
	
	appButtonToggle : function(bSet){ 		
		$('#applicants_approval button').nodes.forEach(function(v){ 
			v.disabled = bSet;
		});
	},
	
	defmsg : '<p>Click a users name to see detials for that user</p>',
	
	listDetails : function(e){ 
		var targ = sb.events.target(e);
		var uid 
		

		
		if (targ.nodeName == 'A') {
			uid = targ.href.replace(/.*#/, '');
			
				if (targ.parentNode.parentNode.id != 'applicants_list') {
					new sb.ajax({
						data: 'c=user_detail&uid=' + uid,
						handler: function(user){
							app.details.innerHTML = user;
						}
					}).fetch();
				}else{
					app.details.innerHTML = app.usermanager.defmsg;
				}
				
				app.usermanager.setSelected(targ);
			}
		
	},
	
	init : function (){ 
		
		//Applicant Patch: Removed as per JoAnn's request
		//Replaced: Replaced as per JoAnn's request	
							
		if(app.active_shell  && app.applicants_shell){ 
						
			this.active = new tc.widget.pageControl(app.active_shell, this.listDetails);
			
			
			/* Replaced */
			this.applicants = new tc.widget.pageControl(app.applicants_shell, this.listDetails);	
			this.applicants.addElement({ 
					suffix : 'approval',
					events : { 
						click : this.approvalButtonClick
					}
				});
			
		}
		
		if(app.report_start && app.report_end && app.report){
			this.start = new tc.forms.date(app.report_start, {labelText : 'Start Date'});
			this.end = new tc.forms.date(app.report_end, {labelText : 'End Date'});
			this.report = new tc.forms(app.report);
			this.report.event('submit', function(e){sb.events.stopAndPrevent(e); app.usermanager.sendReport(e)});
			app.report_display.event('click',this.verfiy_credit);
		}
	},
	
	exit : function(){
		this.active.releaseEvents();
		this.applicants.releaseEvents();
		this.active = this.applicants = null;
	},
	
	verfiy_credit : function(e){		
		var matches, entry, targ = sb.events.target(e);
		var data, oldstyle;
		
		if(targ.nodeName == 'BUTTON'){			
			matches = targ.title.match(/credit_(\d*)\_(\d*)/);					
			entry = $('#'+targ.title);						
			data = {
				c : 'verfiy_credit',
				uid : matches[1],
				lid : matches[2]
			};
						
			entry.addClassName("deleting");
			
			msg = "Click ok to mark this item as being verified and remove from this list";
				
			if(confirm(msg)){	
				this.ajax = new sb.ajax({
					data : data,
					handler : function(ret){
						entry.remove();		
					}	
				}).fetch();
			}else{
				entry.removeClassName("deleting");
			}
			
		}
		
		
		
	},
	
	selected : null, 
	
	setSelected : function(oList){ 
	
		//Applicant Patch
		
		this.selected = oList || this.selected;
		var list = this.active.list.$('a').nodes.concat(this.applicants.list.$('a').nodes);
		
		list.forEach(function(v){ 
			v.className = v.className.replace('selected', '');
			
		});
		
		this.selected.className += ' selected';
		this.appButtonToggle(!(this.selected.parentNode.className == 'applicantli'));
				
	}, 
	
	sendReport : function(e){ 
		
		var form = sb.events.target(e);
		
		if(!this.start.empty()  && !this.end.empty()){
			app.report_display.innerHTML = '';			
			app.ajax = new sb.ajax({ 
				data : form.serialize(),
				format : 'json',
				handler : function(data){					
					app.report_display.innerHTML = data;
				}
			}).fetch();
			
			app.ajax = null;
		}else{
			app.warn(" Please fill both dates before running a report")
		}
	}
};