// instituteGrid
// 
// 
// 
var instituteGrid = Ext.extend(r3remoteGrid, {



	// sendDeleteRequest
	// 
	// Löscht den Eintrag in der Datenbank
	// 
	sendDeleteRequest:function(btn){
		if(btn=='yes'){
			var selections = this.grid.selModel.getSelections();
			var entries = [];
			for(i = 0; i< this.grid.selModel.getCount(); i++){
				var sel = selections[i].json;
				var indexCol = this.getNameOfIndexColumn();
				entries.push(eval("sel."+indexCol));
			}
			var encoded_array = Ext.encode(entries);

			Ext.Ajax.request({  
				waitMsg: 'Please Wait',
				url: this.backend + this.tableName +  '/Institute/delete', 
				scope:this,
				params: { 
					task: "DELETE", 
					ids:  encoded_array,
					index: this.getNameOfIndexColumn()
				}, 
				success: function(response){
					var result=eval(response.responseText);
					switch(result){
						case 1:  // Success : simply reload
						this.dataStore.reload();  
						rcm.Application.loadCombostores();
						break;
						default:
						Ext.MessageBox.alert('Warnung','Das Institut kann nicht gelöscht werden, da Kostendaten oder Planwerte vorhanden sind!');
						break;
					}
				},
				failure: function(response){
					var result=response.responseText;
					Ext.MessageBox.alert('Fehler','Es konnte keine Verbindung zur Datenbank aufgebaut werden.');      
				}
			});
		}
	},
	
	
	// updateEntry
	//
	// Schickt alle Werte der (Text)Felder im addPanel an den Server
	updateEntry:function(){

		var values = this.getEditFieldsValues();
		
		
		Ext.Ajax.request({   
				        waitMsg: 'Bitte warten...',
				        url:this.backend+ this.tableName + "/Institute/update",
				        params: {
				          task: 	"UPDATE",
				          values:   Ext.util.JSON.encode(values),
						  index: 	this.getIndexFromEditField()
				        }, 
						scope:this,
				        success: function(response){              
				          var result=eval(response.responseText);
				          switch(result){
				          case 1:
							// this.growl('OK','Eintrag geändert')
							this.editWindow.hide();
				            // Ext.MessageBox.alert();
				            this.dataStore.reload();
							this.resetEditPanel();		
							rcm.Application.loadCombostores();	
				            break;
				          default:
				            Ext.MessageBox.alert('Fehler','Eintrag nicht geändert');
				            break;
				          }        
				        },
				        failure: function(response){
				          var result=response.responseText;
				          Ext.MessageBox.alert('error','could not connect to the database. retry later');          
				        }                      
				      });

	},
	
	
	
	// createEntry
	// 
	// wird i.d.R. von dem Speichern Button aufgerufen (createAddPanelButtons)
	//
	// Schickt alles Werte der (Text)Felder im addPanel an den Server
	createEntry:function(){

		var values = this.getAddFieldsValues();
		
		
		Ext.Ajax.request({   
				        waitMsg: 'Bitte warten...',
				        url: this.backend + this.tableName + "/Institute/create",
				        params: {
				          task: "ADD",
				          values:   Ext.util.JSON.encode(values)
				        }, 
						scope:this,
				        success: function(response){              
				          var result=eval(response.responseText);
				          switch(result){
				          case 1:
				            // Ext.MessageBox.alert('OK','Eintrag hinzugefügt');
				            this.dataStore.reload();
							this.resetAddPanel();	
							this.addWindow.hide();		
							rcm.Application.loadCombostores();	
				            break;
				          default:
				            Ext.MessageBox.alert('Fehler','Eintrag nicht hinzugefügt');
				            break;
				          }        
				        },
				        failure: function(response){
				          var result=response.responseText;
				          Ext.MessageBox.alert('error','could not connect to the database. retry later');          
				        }                      
				      });

	},
	
	
	
	//setDataProxy
	//
	setDataProxy:function(params){
		var params = params || {};
		
		if(Ext.isEmpty(params.method)){
			params.method = 'POST';
		}

		if(Ext.isEmpty(params.url)){
			params.url = this.backend + this.tableName + "/Institute";
		}
		

		
		this.dataProxy = new Ext.data.HttpProxy(params);		
	}
	








	
});
