
if((typeof console)=="undefined"||(typeof console.log)=="undefined")
{console={log:function(v){}}}
Ext.BLANK_IMAGE_URL="ext/resources/images/default/s.gif";Ext.namespace("TraCorp");TraCorp.lms=function()
{return({lms_name:'TraCorp LMS7',xtra_copyright:'',xtra_footer:'',lms_version:'7',view:null,userdata:null,lms_opts:null,uf_list:null,custom:{},init:function()
{var i,j;Ext.apply(this.custom,TraCorp.custom);if(this.custom.lms_name!='')this.lms_name=this.custom.lms_name;if(this.custom.xtra_copyright!='')this.xtra_copyright=this.custom.xtra_copyright;if(this.custom.xtra_footer!='')this.xtra_footer=this.custom.xtra_footer;if(this.custom.lms_version!='')this.lms_version=this.custom.lms_version;for(i=0;i<this.custom.custom_buttons.length;i++)
{if((typeof this.custom.custom_buttons[i].menu)!='undefined')
{for(j=0;j<this.custom.custom_buttons[i].menu.items.length;j++)
{this.custom.custom_buttons[i].menu.items[j].scope=this;}}
else
this.custom.custom_buttons[i].scope=this;}
for(i=0;i<this.custom.custom_admin_buttons.length;i++)
{if((typeof this.custom.custom_admin_buttons[i].menu)!='undefined')
{for(j=0;j<this.custom.custom_admin_buttons[i].menu.items.length;j++)
{this.custom.custom_admin_buttons[i].menu.items[j].scope=this;}}
else
this.custom.custom_admin_buttons[i].scope=this;}
Ext.destroy(Ext.get("loading"));Ext.destroy(Ext.get("loading-mask"));this.view=new Ext.Viewport({id:"lms_viewport",layout:"border",items:[{region:"north",html:"<table class=\"x-panel-header\" style=\"width: 100%;\"><tr><td class=\"lms-header\" style=\"width: 33%;\">"+this.lms_name+"</td><td style=\"width: 34%;\"><div id=\"title_banner\"></div></td><td style=\"width: 33%;\"><div class=\"title_logo\"></div></td></tr></table>",autoHeight:true,id:"lms_main_header",bbar:new Ext.Toolbar({id:"lms_top_toolbar",scope:this,height:26})},{region:"center",id:"lms_main_win",cls:"lms-body",layout:"card",border:false,activeItem:0,items:[{}]},{region:"south",id:"lms_main_footer",autoHeight:true,border:false,html:"<h1 class=\"x-panel-header lms-footer\">"+this.lms_name+" "+this.lms_version+" copyright TraCorp, Inc."+(this.xtra_copyright!=""?" and "+this.xtra_copyright:"")+".  "+this.lms_name+" was developed by <a href=\"http://www.tracorp.com/\" target=\"_blank\">TraCorp, Inc.</a>"+(this.xtra_footer!=""?"<br>"+this.xtra_footer:"")+"</h1>"}]});Ext.QuickTips.init();Ext.form.Field.prototype.msgTarget='under';Ext.Window.prototype.constrainHeader=true;Ext.data.Connection.prototype.timeout=1000*60*5;setInterval(function(){var now=new Date();Ext.Ajax.request({url:'io.php?cache='+now.valueOf(),callback:Ext.emptyFn,params:{page_mode:"touch"}});},1000*60*10);try
{this.getuser();if(this.userdata.custom_style!=undefined&&this.userdata.custom_style!="")
{var new_style=document.createElement("link");new_style.setAttribute("rel","stylesheet");new_style.setAttribute("type","text/css");new_style.setAttribute("href",this.userdata.custom_style);document.getElementsByTagName("head")[0].appendChild(new_style);}}
catch(ex)
{}
try
{this.startup();}
catch(ex)
{}},get_user_data:function(name)
{if(this.userdata==null)
return null;for(var i in this.userdata)
{if(i==name)
return this.userdata[i];}
return null;},update_user_data:function(data)
{this.userdata=Ext.apply(this.userdata,data,this.userdata);var tb=Ext.getCmp("lms_top_toolbar");tb.items.get(4).getEl().innerHTML="Logged in as "+this.get_user_data("fullname")+" ("+this.get_user_data("username")+")";},submit_failure:function(frm,act)
{obj=Ext.util.JSON.decode(act.response.responseText);if(act.failureType=="server")
{if(typeof(obj.errors.reason)!="undefined")
{Ext.Msg.show({title:"Warning",msg:"Submit failed! "+obj.errors.reason,buttons:Ext.Msg.OK,icon:Ext.Msg.WARNING});}
else
{Ext.Msg.show({title:"Warning",msg:"Submit failed! Please review the form for errors.",buttons:Ext.Msg.OK,icon:Ext.Msg.WARNING});}}
else if(act.failureType=="client")
{Ext.Msg.show({title:"Warning",msg:"Submit failed!  Please review the form for errors.",buttons:Ext.Msg.OK,icon:Ext.Msg.WARNING});}
else if(act.failureType=="connect"||act.failureType=="load")
{Ext.Msg.show({title:"Warning",msg:"The server was not able to be contacted, this may happen during times of high traffic.  Please refresh the page and try again.  Failure type: "+act.failureType,buttons:Ext.Msg.OK,icon:Ext.Msg.WARNING});}
else
{msgtxt="Submit error!";if(typeof(obj.errors.reason)!="undefined")
msgtxt+=" "+obj.errors.reason;Ext.Msg.show({title:"Warning",msg:msgtxt,buttons:Ext.Msg.OK,icon:Ext.Msg.WARNING});}},get_content_type:function(num)
{if((typeof num)=="string")
num=parseInt(num,10);switch(num)
{case 1:return"Online Training";case 2:return"Offline/Classroom Training";case 3:return"Online Test/Questionnaire";case 4:return"Other Online Content";case 5:return"Live Online";}},load_options:function(callback_fn)
{var ajax_con=new Ext.data.Connection({url:"io.php",method:"post"});ajax_con.request({params:{page_mode:"get_all_options"},scope:this,callback:function(options,success,response)
{var resp_obj;if(success&&response.status==200)
{resp_obj=Ext.util.JSON.decode(response.responseText);this.lms_opts=resp_obj.data;if(typeof callback_fn=="function")
callback_fn.call(this);}
else
{Ext.Msg.show({title:"Warning",msg:"Communication with the server failed.  Please refresh the page.  "+response.status+": "+response.statusText,buttons:Ext.Msg.OK,icon:Ext.Msg.WARNING});}}});},toggle_user_active:function(recid)
{var store=Ext.getCmp('user_grid').getStore();var rec=store.getById(recid);var user=rec.data.id;if(rec.data.active=="1")
{rec.beginEdit();rec.set("active","0");rec.commit();rec.endEdit();var active=0;}
else
{rec.beginEdit();rec.set("active","1");rec.commit();rec.endEdit();var active=1;}
var ajax_con=new Ext.data.Connection({url:"io.php",method:"post"});ajax_con.request({params:{page_mode:"set_user_active",active:active,id:user},scope:this,callback:function(options,success,response)
{var resp_obj;if(success&&response.status==200)
{}
else
{Ext.Msg.show({title:"Warning",msg:"Communication with the server failed.  Please refresh the page.  "+response.status+": "+response.statusText,buttons:Ext.Msg.OK,icon:Ext.Msg.WARNING});}}});},choose_usergroup:function(callback)
{var ug_win=new Ext.Window({id:"choose_ug_win",layout:"fit",title:"Choose A Usergroup",height:400,width:400,modal:true,plain:true,items:[{xtype:"masktree",id:'choose_ug_tree',autoScroll:true,cls:'ug-tree',enableDD:false,maskConfig:{msg:"Loading user groups..."},loader:new Ext.tree.TreeLoader({dataUrl:'io.php',baseParams:{page_mode:"get_ug_nodes"}}),root:new Ext.tree.AsyncTreeNode({text:'All User Groups',allowDrag:false,expanded:true})}],buttons:[{text:"Select Usergroup",handler:function()
{var tree=Ext.getCmp("choose_ug_tree");var curnode=tree.getSelectionModel().getSelectedNode();var ug_id=0;var ug_title="All User Groups";if(curnode!=null&&!curnode.isRoot)
{ug_id=new String(curnode.id);ug_id=parseInt(ug_id.replace(/ug_node_/,""),10);ug_title=curnode.attributes.info.title;}
ug_win.close();if((typeof callback)=="function")
{callback(ug_id,ug_title);}},scope:this}]});ug_win.show();},select_users:function(opts)
{var params=opts.params||{};var note=opts.note||"";var callback=opts.callback||Ext.emptyFn;var prompt=opts.prompt||"";var userTypes=opts.userTypes||[[1,'Students'],[2,'Instructors'],[3,'User Group Admins'],[4,'Sub-admins'],[5,'Main Admins']];var single=opts.singleSelect||false;var dims=this.view.getSize();var user_store=new Ext.data.JsonStore({id:"user_store",url:"io.php",baseParams:params,root:'data',totalProperty:'totalCount',remoteSort:true,reader:new Ext.data.JsonReader({},Ext.data.Record.create(['id','username','fname','lname','email','active','date_registered','last_login','last_ip','main_admin','ug_admin','sub_admin','instructor','field1','field2','field3','field4','field5','field6','field7','field8','field9','field10','field11','field12','field13','field14','field15','field16','field17','field18','field19','field20','field21','field22','field23','field24','field25','field26','field27','field28','field29','field30'])),fields:["id",{name:"username",sortType:Ext.data.SortTypes.asUCString},{name:"fname",sortType:Ext.data.SortTypes.asUCString},{name:"lname",sortType:Ext.data.SortTypes.asUCString},{name:"email",sortType:Ext.data.SortTypes.asUCString},"active","date_registered","last_login","last_ip","main_admin","ug_admin","sub_admin","instructor","field1","field2","field3","field4","field5","field6","field7","field8","field9","field10","field11","field12","field13","field14","field15","field16","field17","field18","field19","field20","field21","field22","field23","field24","field25","field26","field27","field28","field29","field30"]});var user_cols=[{header:"Active",sortable:false,dataIndex:"active",renderer:function(val,meta,rec,row,col,store)
{var retval="<a href=\"javascript:void(0);\" class=\"";if(rec.data.active=="1")
retval+="x-icon-active";else
retval+="x-icon-inactive";retval+="\">&nbsp;</a>";return retval;},width:50,fixed:true,menuDisabled:true,resizable:false},{header:"Username",sortable:true,dataIndex:"username"},{header:"First",sortable:true,dataIndex:"fname"},{header:"Last",sortable:true,dataIndex:"lname"},{header:"Email",sortable:true,dataIndex:"email"}];var user_filter_where_opts=[['username','Username'],['fname','First Name'],['lname','Last Name'],['email','Email Address']];for(var i=0;i<this.uf_list.length;i++)
{if(this.uf_list[i].searchable==1)
{user_filter_where_opts.push([this.uf_list[i].id,this.uf_list[i].description]);newcol={header:this.uf_list[i].description,sortable:true,dataIndex:this.uf_list[i].id};if(this.uf_list[i].dropdown==1)
{var renderer=function(val,meta,record,rowIndex,colIndex,store)
{var uf_idx=0;var idx=colIndex-5;var nr=0;for(var j=0;j<this.uf_list.length;j++)
{if(this.uf_list[j].searchable==1)
{if(nr==idx)
{uf_idx=j;break;}
nr++;}}
for(var j=0;j<this.uf_list[uf_idx].drop_options.length;j++)
{if(this.uf_list[uf_idx].drop_options[j][2]==val)
return this.uf_list[uf_idx].drop_options[j][1];}}
newcol.renderer=renderer.createDelegate(this);}
user_cols.push(newcol);}}
var user_win=new Ext.Window({id:"choose_user_win",layout:"anchor",title:"Select Users",height:dims.height<600?dims.height-10:600,width:dims.width<1000?dims.width-10:1000,modal:true,plain:true,items:[{xtype:'grid',id:'select_user_grid',anchor:note==''?'99% 99%':'99% 94%',stripeRows:true,loadMask:{msg:"Retrieving Users..."},cm:new Ext.grid.ColumnModel(user_cols),sm:new Ext.grid.RowSelectionModel({singleSelect:single}),store:user_store,viewConfig:{autoFill:true,forceFit:true,emptyText:'No users matched the search criteria, or users have not been loaded yet.  Press the Go button above to load users.',deferEmptyText:false},tbar:new Ext.Toolbar({items:['Filter users where',{xtype:'combo',allowBlank:true,id:'select_user_filter_where',editable:false,triggerAction:'all',forceSelection:true,mode:'local',width:120,store:new Ext.data.SimpleStore({fields:['val','label'],data:user_filter_where_opts}),displayField:'label',valueField:'val',validateOnBlur:false,value:"username"},' ',{xtype:'combo',allowBlank:true,id:'select_user_filter_how',editable:false,triggerAction:'all',forceSelection:true,mode:'local',width:80,store:new Ext.data.SimpleStore({fields:['val','label'],data:[[1,'starts with'],[2,'contains'],[3,'ends with']]}),displayField:'label',valueField:'val',validateOnBlur:false,value:1},' ',{xtype:'textfield',allowBlank:true,id:'select_user_filter_what',width:80,validateOnBlur:false,enableKeyEvents:true},' ',{xtype:'button',id:'select_btn_use_filter',scope:this,handler:function()
{var where=Ext.getCmp('select_user_filter_where').getValue();var how=Ext.getCmp('select_user_filter_how').getValue();var what=Ext.getCmp('select_user_filter_what').getValue();Ext.getCmp('select_user_grid').getStore().baseParams=Ext.apply({filter:where,mode:how,term:what,inactive:Ext.getCmp('select_btn_toggle_inactive').pressed,user_type:Ext.getCmp('select_user_filter_type').getValue()},params);Ext.getCmp('select_user_grid').getStore().load({params:Ext.apply({filter:where,mode:how,term:what,inactive:Ext.getCmp('select_btn_toggle_inactive').pressed,user_type:Ext.getCmp('select_user_filter_type').getValue(),start:0,limit:this.lms_opts.recs_per_page},params)});},text:'Go'},'-',{xtype:'button',id:'select_btn_clear_filter',scope:this,handler:function(){Ext.getCmp('select_user_grid').getStore().baseParams=Ext.apply({inactive:Ext.getCmp('select_btn_toggle_inactive').pressed,user_type:Ext.getCmp('select_user_filter_type').getValue()},params);Ext.getCmp('select_user_grid').getStore().load({params:Ext.apply({start:0,limit:this.lms_opts.recs_per_page},params)});},text:'Clear Filter'},'-',{xtype:'button',id:'select_btn_toggle_inactive',scope:this,toggleHandler:function(){Ext.getCmp('select_user_grid').getStore().baseParams=Ext.apply({inactive:Ext.getCmp('select_btn_toggle_inactive').pressed,user_type:Ext.getCmp('select_user_filter_type').getValue()},params);Ext.getCmp('select_user_grid').getStore().load({params:Ext.apply({start:0,limit:this.lms_opts.recs_per_page},params)});},text:'Show Inactive',enableToggle:true,allowDepress:true,pressed:false},'-','User Type:',{xtype:'combo',allowBlank:false,id:'select_user_filter_type',editable:false,triggerAction:'all',forceSelection:true,mode:'local',width:120,store:new Ext.data.SimpleStore({fields:['val','label'],data:userTypes}),displayField:'label',valueField:'val',validateOnBlur:false,value:userTypes[0][0],listeners:{'select':function(c,r,i)
{Ext.getCmp('select_user_grid').getStore().baseParams=Ext.apply({inactive:Ext.getCmp('select_btn_toggle_inactive').pressed,user_type:r.data.val},params);Ext.getCmp('select_user_grid').getStore().load({params:Ext.apply({start:0,limit:this.lms_opts.recs_per_page},params)});},scope:this}}]}),bbar:new Ext.PagingToolbar({pageSize:this.lms_opts.recs_per_page,store:user_store,displayInfo:true,displayMsg:'Displaying users {0} - {1} of {2}',emptyMsg:'No users to display'}),listeners:{'rowdblclick':function()
{if((typeof callback)=="function")
{if(Ext.getCmp("select_user_grid").getSelectionModel().getCount()==0)
{Ext.Msg.alert("Error","No users are selected.");return;}
var sel=Ext.getCmp("select_user_grid").getSelectionModel().getSelections();if(prompt!="")
{Ext.Msg.confirm('Confirm',prompt,function(b)
{if(b=='yes')
callback.call(this,sel);},this);}
else
{callback.call(this,sel);}}},scope:this},buttons:[{text:"Select User",handler:function()
{if((typeof callback)=="function")
{if(Ext.getCmp("select_user_grid").getSelectionModel().getCount()==0)
{Ext.Msg.alert("Error","No users are selected.");return;}
var sel=Ext.getCmp("select_user_grid").getSelectionModel().getSelections();if(prompt!="")
{Ext.Msg.confirm('Confirm',prompt,function(b)
{if(b=='yes')
callback.call(this,sel);},this);}
else
{callback.call(this,sel);}}},scope:this}]},{xtype:"panel",border:false,bodyStyle:"background: transparent; text-align: right;",anchor:note==""?'0% 0%':'99% 5%',html:note}]});user_win.show();var key_nav=new Ext.KeyNav("select_user_filter_what",{'enter':function()
{var where=Ext.getCmp('select_user_filter_where').getValue();var how=Ext.getCmp('select_user_filter_how').getValue();var what=Ext.getCmp('select_user_filter_what').getValue();Ext.getCmp('select_user_grid').getStore().baseParams=Ext.apply({filter:where,mode:how,term:what,inactive:Ext.getCmp('select_btn_toggle_inactive').pressed,user_type:Ext.getCmp('select_user_filter_type').getValue()},params);Ext.getCmp('select_user_grid').getStore().load({params:Ext.apply({filter:where,mode:how,term:what,inactive:Ext.getCmp('select_btn_toggle_inactive').pressed,user_type:Ext.getCmp('select_user_filter_type').getValue(),start:0,limit:this.lms_opts.recs_per_page},params)});},scope:this});},remove_children:function(comp)
{if((typeof comp.removeAll)=="function")
comp.removeAll();else if((typeof comp.items)!="undefined")
{var items=comp.items.getRange();for(var i=0;i<items.length;i++)
{comp.remove(items[i].id);}}}});}();