Ext.BLANK_IMAGE_URL='lib/ext/resources/images/default/s.gif';Ext.namespace('VEM');if(typeof console=="undefined"){var console={log:function(msg){}};}
VEM.loginApp=function(){Ext.state.Manager.setProvider(new Ext.state.CookieProvider());var strOrtsgruppen=new Ext.data.JsonStore({fields:["ID","Ortsgruppe"]});function doSubmit(){var loginForm=Ext.getCmp('loginform').getForm();if(loginForm.isValid()){VEM.Backend.request({service:'VEM.Login',method:'Login',params:{ortsgruppe:Ext.getCmp('cboOrtsgruppe').getValue(),lastname:Ext.getCmp('txtLastname').getValue(),password:Ext.getCmp('txtPassword').getValue()},success:function(response,options){if(response){if(Ext.getCmp('chkSetCookie').getValue()){Ext.state.Manager.set("ortsgruppe",Ext.getCmp('cboOrtsgruppe').getValue());Ext.state.Manager.set("nachname",Ext.getCmp('txtLastname').getValue());}
window.location='main.html';}else{Ext.MessageBox.alert('Anmeldung fehlgeschlagen','Bitte überprüfen Sie, ob Name und Passwort korrekt eingegeben wurden.');}},failure:function(a,b){Ext.MessageBox.alert('Anmeldung fehlgeschlagen','Der Server ist nicht erreichbar.');}});}}
return{LoginCaption:'Willkommen',init:function(){Ext.QuickTips.init();var pnlForm=new Ext.form.FormPanel({xtype:'form',frame:true,id:'loginform',border:false,labelWidth:150,defaults:{msgTarget:'side',width:220},items:[{html:'Willkommen bei VEM.
Bitte melden Sie sich am System an.',cls:'infotext',bodyStyle:'padding-bottom: 5px'},{xtype:'combo',fieldLabel:'Ortsgruppe',id:'cboOrtsgruppe',store:strOrtsgruppen,displayField:'Ortsgruppe',valueField:'ID',mode:'local',editable:false,triggerAction:'all',emptyText:'Bitte wählen..',disabled:true,listeners:{select:function(combo,record,index){Ext.getCmp('txtLastname').enable();Ext.getCmp('txtPassword').enable();}},value:Ext.state.Manager.get("ortsgruppe")},{xtype:'textfield',fieldLabel:'Anmeldename',id:'txtLastname',allowBlank:false,disabled:(Ext.state.Manager.get("nachname")==null),value:Ext.state.Manager.get("nachname")},{xtype:'textfield',fieldLabel:'Passwort',id:'txtPassword',inputType:'password',allowBlank:false,disabled:(Ext.state.Manager.get("nachname")==null)},{fieldLabel:'Namen merken',id:'chkSetCookie',xtype:'checkbox',width:16,checked:(Ext.state.Manager.get("nachname")!=null)}],buttons:[{text:'Anmelden',handler:doSubmit}],buttonAlign:'center',keys:[{key:Ext.EventObject.ENTER,fn:doSubmit}]});var loginWin=new Ext.Window({title:this.LoginCaption,width:450,closable:false,draggable:false,items:[pnlForm]})
VEM.Backend.request({service:'VEM.System',method:'getOrtsgruppen',params:{},success:function(result,options){var cboOrtsgruppen=Ext.getCmp('cboOrtsgruppe');strOrtsgruppen.loadData(result.data);cboOrtsgruppen.setValue(cboOrtsgruppen.getValue());cboOrtsgruppen.enable();},failure:function(error,options){Ext.MessageBox.alert('Verbindungsfehler','Fehler bei der Initialisierung'+(error?': '+error.message:'.')+'
Bitte versuchen Sie es später erneut.');loginWin.disable();}});loginWin.show();Ext.EventManager.onWindowResize(function(){loginWin.center()});}};}();VEM.Backend=function(){var connJSON=new Ext.data.Connection({url:'services/index.php',method:'post'});return{request:function(o){connJSON.request({jsonData:{service:o.service,method:o.method,params:o.params},failure:function(response,options){if(o.failure)o.failure(undefined,o);},success:function(response,options){var responseData=eval('('+response.responseText+')');if(responseData.error){if(responseData.error.code==7){Ext.MessageBox.show({title:'Sitzung abgelaufen',msg:'Aus Sicherheitsgründen wurde Ihre Sitzung beendet.
'
+'Sie müssen sich neu am System anmelden.',buttons:Ext.MessageBox.OK,fn:function(){window.location='index.php';}});}else{if(o.failure){o.failure(responseData.error,options);}else{Ext.MessageBox.alert('Fehler',responseData.error.message);}}}else{if(o.success){o.success.call(o.scope||this,responseData.result,o);}else{Ext.MessageBox.alert('Erfolgreich','Befehl ausgeführt.');}}}});},abort:function(){connJSON.abort();},remoteAddRow:function(grid,recordData,cfg){if(!grid.loadMask)return;grid.loadMask.show();var newRecord=new Ext.data.Record(recordData);VEM.Backend.request({service:cfg.service,method:'add'+grid.getStore().getName()+'Row',params:newRecord.data,success:function(response,options){newRecord.data.ID=response.newID;grid.getStore().add(newRecord);grid.loadMask.hide();},failure:function(error,options){Ext.MessageBox.alert('Fehler beim Hinzufügen',(error?error.message:'Verbindungsfehler'));grid.loadMask.hide();}})}}}();VEM.DataProxy=function(cfg){Ext.data.HttpProxy.superclass.constructor.call(this);this.service=cfg.service;this.method=cfg.method;};Ext.extend(VEM.DataProxy,Ext.data.DataProxy,{load:function(params,reader,callback,scope,arg){if(this.fireEvent("beforeload",this)!==false){VEM.Backend.request({service:this.service,method:this.method,params:arg,success:this.loadResponse,scope:this,reader:reader,request:{callback:callback,scope:scope,arg:arg}});}},loadResponse:function(result,o){var data;try{Ext.each(result.data,function(entry){for(var datum in entry)
if(entry[datum]=='0000-00-00')
entry[datum]='';});data=o.reader.readRecords(result);}catch(e){this.fireEvent("loadexception",this,o,result,e);o.request.callback.call(o.request.scope,null,o.request.arg,false);return;}
this.fireEvent("load",this,o,o.request.arg);o.request.callback.call(o.request.scope,data,o.request.arg,true);}});VEM.RemoteJsonStore=function(config){VEM.RemoteJsonStore.superclass.constructor.call(this,Ext.apply(config,{proxy:!config.data?new VEM.DataProxy({service:config.service,method:'get'+config.name+'Rows'}):undefined,reader:new Ext.data.JsonReader({root:'data'},config.fields)}));this.name=config.name;};Ext.extend(VEM.RemoteJsonStore,Ext.data.Store,{getName:function(){return this.name;}});VEM.RemoteJsonGroupingStore=function(c){VEM.RemoteJsonGroupingStore.superclass.constructor.call(this,Ext.apply(c,{proxy:!c.data?new VEM.DataProxy({service:c.service,method:'get'+c.name+'Rows'}):undefined,reader:new Ext.data.JsonReader({root:'data'},c.fields)}));this.name=c.name;};Ext.extend(VEM.RemoteJsonGroupingStore,Ext.data.GroupingStore,{getName:function(){return this.name;}});