// jahreskostenuebersicht
// 
// 
// 
var jahreskostenuebersicht =  new fClass({
	
	
	// =============
	// = Variablen =
	// =============
	
	view: 			null,
	container: 		null,
	comboStores: 	null,
	gridComponents: null,
	grid: 			null,
	state: 			new Object(),
	stateRaw: 		new Object(),
	
	
	// ======================
	// = private Funktionen =
	// ======================
	
	
	buildView:function(){		
		var jahreAnzahl = 4;
		
		// folgeJahreDaten
		var folgeJahreDaten = new Array();		
		for (var i=0; i < jahreAnzahl + 1; i++) {
			var tmp = new Array();
			tmp.push(i);
			folgeJahreDaten.push(tmp);
		}
		
		
		this.folgeJahre = new Ext.data.SimpleStore({
			fields:['jahr'],
			data:folgeJahreDaten
		});
		
		
		// toolbar
		this.tbar = new Ext.FormPanel({
			border:false,
			head:false,
			id:'maskeJahreskostenuebersicht',
			bodyStyle:'padding:4px',
			items:{
	            layout:'column',
				border:false,
				defaults:{
					border:false
				},
	            items:[{
	                columnWidth:.3,
	                layout: 'form',
					
	                items: [{
	                    xtype:'combo',
	                    fieldLabel: 'Institut',
						store:rcm.Application.multiStores['bcm_institute_name'],
						triggerAction:'all',
						editable:false,
						mode:'local',
						valueField:'id',
						displayField:'name',
	                    name: 'institut',
	                    anchor:'95%',
						allowBlank:false,
						id:'institut'
	                },
					{
		                xtype:'combo',
		                fieldLabel: 'Startjahr',
						store:rcm.Application.multiStores['bcm_kostendaten_jahre_jahr'],
						triggerAction:'all',
						editable:false,
						mode:'local',
						valueField:'id',
						displayField:'jahr',
		                name: 'startjahr',
		                anchor:'95%',
						allowBlank:false,
						id:'startjahr',
						value:rcm.Application.getIdOfFirstItemInMultiStore(rcm.Application.multiStores['bcm_kostendaten_jahre_jahr'])
		            }]
	            },{
	                columnWidth:.3,
	                layout: 'form',
	                items: [{
	                    xtype:'combo',
	                    fieldLabel: 'Bezugsgröße',
						store:rcm.Application.multiStores['bcm_bezugsgroessen_name'],
						triggerAction:'all',
						mode:'local',
						editable:false,
						valueField:'id',
						displayField:'name',
	                    name: 'bezugsgroesse',
	                    anchor:'95%',
						allowBlank:false,
						id:'bezugsgroesse',
						value:rcm.Application.getIdOfFirstItemInMultiStore(rcm.Application.multiStores['bcm_bezugsgroessen_name'])
	                },
					{
	                    xtype:'combo',
	                    fieldLabel: 'Folgejahre',
						store:this.folgeJahre,
						triggerAction:'all',
						mode:'local',
						editable:false,
						valueField:'jahr',
						displayField:'jahr',
	                    name: 'folgejahre',
	                    anchor:'95%',
						allowBlank:false,
						scope:this,
						validator:function(value){
							if(!Ext.getCmp('startjahr').isValid()){
								return "Bitte zuerst das Starjahr auswählen";
							}else{
								var startjahr = Ext.getCmp('startjahr').getValue();
								var letztesJahr = rcm.Application.multiStores['bcm_kostendaten_jahre_jahr'].getAt(rcm.Application.multiStores['bcm_kostendaten_jahre_jahr'].getCount()-1).json[0];
								
								var startjahr = parseInt(startjahr);
								var letztesJahr = parseInt(letztesJahr);
								
								if((startjahr + parseInt(value)) > letztesJahr){
									return "Für diese Zeitspanne sind keine Daten vorhanden.";
								}
								
								
							}
							
							
							return true;
						},
						id:'folgejahre',
						value:0
	                }]
	            },
				{
	                columnWidth:.3,
	                layout: 'form',
					labelWidth:150,
	                items: [{
	                    xtype:'combo',
	                    fieldLabel: 'Kostenebenen',
						store:rcm.Application.multiStores['bcm_kostenebenen_name'],
						triggerAction:'all',
						mode:'local',						
						editable:false,
						valueField:'id',
						displayField:'name',
	                    name: 'kostenebene',
	                    anchor:'95%',
						allowBlank:false,
						id:'kostenebene',
						value:rcm.Application.getIdOfFirstItemInMultiStore(rcm.Application.multiStores['bcm_kostenebenen_name'])
	                },{
	                    xtype:'checkbox',
	                    fieldLabel: 'Kommentare',
						hideLabel:true,
						boxLabel:'Kommentare anzeigen',
	                    name: 'kommentare_anzeigen',
	                    anchor:'95%',
						id:'kommentare_anzeigen'
	                }]
	            }]
	        },
			buttonAlign:'left',
			buttons:[
			{
				text:'Start',
				iconCls:'startIcon',
				scope:this,
				handler:function(){
						if(this.tbar.getForm().isValid()){
							Ext.MessageBox.wait('Daten werden geladen...',false,waitDialogConfig);
							Ext.Ajax.request({
								url:cfg_backend_url + "jahreskostenauswertung/getBezugsgroesseVergleichsDaten",
								method:'POST',
								scope:this,
								params:function(){
									var params = new Object();

									Ext.each(rcm.Application.jahreskostenuebersicht.tbar.form.items.items, function(field){
										if(!Ext.isEmpty(field.getValue)){
											params[field.name] = field.getValue();		
											this.stateRaw[field.name] = field.getRawValue();								
											this.state[field.name] = field.getValue();								
										}

									},this);
									
								

									return params;

								},
								success:function(response){
									var daten = Ext.util.JSON.decode(response.responseText);

									this.buildTable(daten);		
								}
							});
							
						}
						//
					
							
				}
			}
			]
			
			
			
		});
		// ende toolbar

		
		// view
		this.view = new Ext.Panel({
			scope:this,
			title:'Jahres-Kostenübersicht ('+rcm.Application.state.kostenstruktur.name+')',
			
			iconCls:'winJahreskostenuebersicht',
			layout:'border',
			border:false,
			items:[{
				region:'north',
				items:this.tbar,
				height:95,
				layout:'fit'
			},
			{
				region:'center',
				layout:'fit',
				id:'auswertungContent'
			}]
			
			
		});
		
		
		if(rcm.Application.state.eigenes_institut != null){
			Ext.getCmp('institut').setValue(rcm.Application.state.eigenes_institut);
		}
		

	},

	buildGrafikChooseWindowYear:function(jahr){
				
		this.radioGroupType = new Ext.form.RadioGroup({
			fieldLabel: 'Diagramm Typ',
            itemCls: 'x-check-group-alt',
			id:'radioType',
            // Put all controls in a single column with width 100%
            columns: 1,
            items: [
                {boxLabel: 'Kuchen', name: 'type', value:'pie', checked:true},
                {boxLabel: 'Balken', id:'cb_type', name: 'type', value:'bar'}
            ]

		});
		
		this.radioGroupWerte = new Ext.form.RadioGroup({
			fieldLabel: 'Werte',
            itemCls: 'x-check-group-alt',
			id:'radioWerte',
            // Put all controls in a single column with width 100%
            columns: 1,
            items: [
                {boxLabel: 'absolut', id:'cb_wert', name: 'werte', value:'absolute', checked:true},
                {boxLabel: 'prozentual', name: 'werte', value:'relative'}
            ]

		});
	
	
		this.grafikChoosePanel = new Ext.FormPanel({
			head:false,
			items:[this.radioGroupType, this.radioGroupWerte],
			bodyStyle:'padding:10px'
		});
	
	
	
		this.grafikChooseWindow = new Ext.Window({
			title:'Optionen für Grafik Ausgabe',
			width:230,
			height:230,
			modal:true,
			layout:'fit',
			items:this.grafikChoosePanel,
			buttons:[{
				text:'Grafik erstellen',
				scope:this,
				handler:function(){
					var wert = false;
					var typ = false;
					
					if(Ext.getCmp('cb_wert').getValue()){
						wert = 'absolute';
					}else{
						wert = 'relative';
					}
					
					if(Ext.getCmp('cb_type').getValue()){
						typ = 'bar';
					}else{
						typ = 'pie';
					}
					
					
					
					
					// if(Ext.getCmp('cb_wert').getValue()){
					// 	
					// }
					if(this.requestOptions.kostenebenen_eintrag_parent_id){
						var url = cfg_backend_url + "jahreskostenauswertung/getKostenverteilungGraphHtmlView/"+this.state.institut + '/' + this.requestOptions.kostenebene + '/' + jahr + "/" + typ + "/" + wert + "/" + this.requestOptions.kostenebenen_eintrag_parent_id;
					}else{
						var url = cfg_backend_url + "jahreskostenauswertung/getKostenverteilungGraphHtmlView/"+this.state.institut + '/' + this.requestOptions.kostenebene + '/' + jahr + "/" + typ + "/" + wert;						
					}

					var institut_for_title = this.stateRaw.institut;
					if(this.state.institut == rcm.Application.state.eigenes_institut){
						institut_for_title = 'eigenes Institut';
					}

					
					this.ausgabeWindow = new Ext.Window({
						width:800,
						height:600,
						autoLoad:{
							url:url,
							scripts:true,
							method:'post',
							params:{
								entry_level:this.requestOptions.entry_level
							}
							},
						modal:true,
						title:'Gesamtkostenverteilung '+ this.stateRaw.kostenebene +' '+jahr+' ('+institut_for_title+')' ,
						y:10,
						tools:[
						{
							id:'print',
							handler:function(){
								var chartToPrint = getChartFromId("bcm_chart");
								chartToPrint.print();
							}
						},{
							id:'save',
							handler:function(){

								var chartToPrint = getChartFromId("bcm_chart");
								chartToPrint.saveAsImage();
							}
						}]
					});
					this.ausgabeWindow.show();
					this.ausgabeWindow.center();
					this.grafikChooseWindow.destroy();
					
					
				}
				
				
			}]
			
		});
		
		this.grafikChooseWindow.show();
		
	},
	
	// tabelle aufbauen
	buildTable:function(daten){
		
		//request verarbeiten

		
		// eigenschaften sammeln
		this.requestOptions = new Object();
		this.requestOptions.institut = Ext.getCmp('institut').getValue();
		this.requestOptions.institutRaw = Ext.getCmp('institut').getRawValue();
		this.requestOptions.bezugsgroesse = Ext.getCmp('bezugsgroesse').getValue();
		this.requestOptions.bezugsgroesseRaw = Ext.getCmp('bezugsgroesse').getRawValue();
		this.requestOptions.kostenebene = Ext.getCmp('kostenebene').getValue();
		this.requestOptions.kostenebeneRaw = Ext.getCmp('kostenebene').getRawValue();
		this.requestOptions.startjahr = Ext.getCmp('startjahr').getValue();
		this.requestOptions.folgejahre = Ext.getCmp('folgejahre').getValue();
		this.requestOptions.kommentare_anzeigen = Ext.getCmp('kommentare_anzeigen').getValue();
		this.requestOptions.entry_level = Ext.getCmp('kostenebene').getValue();
		
		rcm.Application.jahreskostenuebersicht.requestOptions.kostenebenen_eintrag_parent_id = false;
		
		
		this.gridComponents = new Object();
		this.gridComponents.store = false; //der Datastore
		this.gridComponents.columnModel = false;
		this.gridComponents.proxy = false;
		this.gridComponents.reader = false;
		
		// spalten
		this.gridComponents.readerFields = new Array();
		

		var von = parseInt(this.requestOptions.startjahr) +1;
		var bis = von + parseInt(this.requestOptions.folgejahre) -1;
		
		this.gridComponents.readerFields.push({name:'buttons'});
		this.gridComponents.readerFields.push({name:'kostenebene'});
		this.gridComponents.readerFields.push({name:'betrag_'+this.requestOptions.startjahr});		
		this.gridComponents.readerFields.push({name:'vgl_'+this.requestOptions.startjahr});		

		
		for (var i=von; i <= bis; i++) {
			this.gridComponents.readerFields.push({name:'betrag_'+i});		
			this.gridComponents.readerFields.push({name:'vgl_'+i});		
			this.gridComponents.readerFields.push({name:'chg_'+i});		
		};
		
		
		
		// proxy erstellen
		this.gridComponents.proxy = new Ext.data.HttpProxy({
			url:cfg_backend_url + 'jahreskostenauswertung/json/getJahresKostenUebersicht',
			method:'POST'
		});
		
		
		// reader erstellen
		this.gridComponents.reader = new Ext.data.JsonReader({
			root:'results',
			totalProperty:'total',
			id:'id'
		},this.gridComponents.readerFields);
		
		// data store erstellen
		this.gridComponents.store =  new Ext.data.Store({
			proxy:this.gridComponents.proxy,
			reader:this.gridComponents.reader,
			remoteSort:true,
			listeners: {
				beforeload:{
					fn:function(){
						Ext.MessageBox.wait('Daten werden geladen..',false,waitDialogConfig);
					}
				},
			    load: {
					scope:this,
			        fn: function(){
				
						Ext.MessageBox.hide();
			            var view = this.grid.getView();

							var spalten = new Array();
							spalten.push(2);
							
							
							for (var i=0; i <= bis-von; i++) {
								var j = (i*3)+4;
								spalten.push(j);
							}
							
							for (var i=0; i < spalten.length; i++) {
								var spalte = spalten[i];

								for (var j=0; j < this.gridComponents.store.getCount(); j++) {

									var cell = Ext.fly(view.getCell(j,spalte));

									if(cell.child('.r3hidden')){

										new Ext.ToolTip({
									        target: cell,
											autoWidth:true,
								        	html: cell.child('.r3hidden').dom.innerHTML
										});
										
									}	
									
									
								};
							};

							
							
							
						///
			
			

			            for (var i = 0; i < this.gridComponents.store.getCount(); i++) {

			                var cell = Ext.fly(view.getCell(i, 0));
			
							if(cell.child(".chart_curve")){
								cell.child(".chart_curve").rel = i;
				                cell.child(".chart_curve").on('click',function(){
					
					
									var zeile = this.rel;

									
									if(zeile == rcm.Application.jahreskostenuebersicht.gridComponents.store.getCount()-2){
										var span= "0" 
									}else{
										var spanId = 'span_'+zeile;
										
										var span = Ext.get(spanId).dom.className;										

										
										
									}	
										
									
									var row = rcm.Application.jahreskostenuebersicht.gridComponents.store.getAt(zeile);

									
									
									var institut = rcm.Application.jahreskostenuebersicht.requestOptions.institut;
									var institutRaw = rcm.Application.jahreskostenuebersicht.requestOptions.institutRaw;
									var startjahr = rcm.Application.jahreskostenuebersicht.requestOptions.startjahr;
									var folgejahre = rcm.Application.jahreskostenuebersicht.requestOptions.folgejahre;
									var kostenebene = rcm.Application.jahreskostenuebersicht.requestOptions.kostenebene;
									var kostenebeneRaw = rcm.Application.jahreskostenuebersicht.requestOptions.kostenebeneRaw;
									

									

									
									
									// daten für graph
									var daten = rcm.Application.jahreskostenuebersicht.gridComponents.store.getAt(zeile);
									

									
									var jahre = new Object();
									
									var ende = parseInt(startjahr) + parseInt(folgejahre);

									
									for (var i=parseInt(startjahr); i <= ende; i++) {

										jahre[i] = daten.data['betrag_'+i];
									};
									
									
									var kostenPosition = daten.data.kostenebene;
									

									
									var url = cfg_backend_url + "jahreskostenauswertung/getKostenverlaufGraphHtmlView/"+rcm.Application.jahreskostenuebersicht.state.institut + '/' + rcm.Application.jahreskostenuebersicht.requestOptions.kostenebene + '/' + startjahr + "/" + folgejahre + "/" + span;

									
									
									var institut_for_title = institutRaw;
									if(institut == rcm.Application.state.eigenes_institut){
										institut_for_title = 'eigenes Institut';
									}
									
									rcm.Application.jahreskostenuebersicht.ausgabeWindow = new Ext.Window({
										width:800,
										height:600,
										modal:true,
										tools:[
										{
											id:'print',
											handler:function(){
												var chartToPrint = getChartFromId("bcm_chart");
												chartToPrint.print();
											}
										},{
											id:'save',
											handler:function(){

												var chartToPrint = getChartFromId("bcm_chart");
												chartToPrint.saveAsImage();
											}
										}],
										title:'Kostenverlauf ' +kostenebeneRaw + ", " + kostenPosition+ ' ('+institut_for_title+')',
										y:10
									});
									
									
									
									rcm.Application.jahreskostenuebersicht.ausgabeWindow.show();
									rcm.Application.jahreskostenuebersicht.ausgabeWindow.center();
									
									
									var mgr = rcm.Application.jahreskostenuebersicht.ausgabeWindow.getUpdater();
									mgr.update({
									        url: url,
											scripts:true,
									        params: {
									            jahre: Ext.util.JSON.encode(jahre),
									            kostenPosition: kostenPosition
									        }
									});
									
									// rcm.Application.jahreskostenuebersicht.ausgabeWindow.center();
									

								});								
							}
			            }
			
						// Anzahl spalten
						var spalten = 3;			
						for (var i = von; i <= bis; i++){
							spalten += 3;
						}
						
						
						for (var i=0; i < spalten; i++) {
							if(this.gridComponents.store.getCount()>0){
								var cell = Ext.fly(view.getCell(this.gridComponents.store.getCount()-1,i));
									if(cell.child('.chart_pie')){
						                cell.child(".chart_pie").on('click',function(){
											rcm.Application.jahreskostenuebersicht.buildGrafikChooseWindowYear(this.dom.id);

										});

									}
								}
								
							}
						
						
			        }
			    }
			}		
		});
		
		
		// col model erstellen
		this.gridComponents.modelFields = new Array();
		
		this.gridComponents.modelFields.push({header:'', width:30, dataIndex:'buttons', renderer:function(value, metadata, record, rowIndex, colIndex, store){
			if(colIndex == 0 && rowIndex < store.getCount()-1){
				return "<div class='chart_curve' style='height: 16px; width: 16px; overflow:hidden'></div>";
			}
		}});
		this.gridComponents.modelFields.push({header:this.requestOptions.kostenebeneRaw, width:275,id:'kostenebeneColumn', sortable:true, dataIndex:'kostenebene', renderer:function(value, metadata, record, rowIndex, colIndex, store){
			if(rowIndex == store.getCount()-2){
				metadata.css = 'summenZeile';				
			}

			return value;
		}});
		var startjahr = this.requestOptions.startjahr;
		this.gridComponents.modelFields.push({align:'right', header:"Betrag " + this.requestOptions.startjahr, width:100, sortable:true, dataIndex:'betrag_'+this.requestOptions.startjahr, renderer:function(value, metadata, record, rowIndex, colIndex, store){
			if(rowIndex == store.getCount()-2){
				metadata.css = 'summenZeile';				
			}
			
			
			if(value.indexOf('r3hidden')!=-1){
				metadata.css='hasComment';
			}
			
			// button grafik
			if(rowIndex == store.getCount()-1){
				metadata.css = 'pieZelle';
				// return "<div class='chart_pie' id='"+startjahr+"'></div>";
			}

			return value;
		}});
		this.gridComponents.modelFields.push({align:'right', sortable:true, header:"Prozentual", width:80, dataIndex:'vgl_'+this.requestOptions.startjahr, renderer:function(value, metadata, record, rowIndex, colIndex, store){
			if(rowIndex == store.getCount()-2){
				metadata.css = 'summenZeile';				
			}

			return value;
		}});
		
		for (var i=von; i <= bis; i++) {
			this.gridComponents.modelFields.push({align:'right', sortable:true, header: "Betrag "+i,dataIndex:'betrag_'+i,width:100, renderer:function(value, metadata, record, rowIndex, colIndex, store){
				if(rowIndex == store.getCount()-2){
					metadata.css = 'summenZeile';				
				}
				
				
				if(value.indexOf('r3hidden')!=-1){
					metadata.css='hasComment';
				}
				
				// button grafik
				if(rowIndex == store.getCount()-1){
					metadata.css = 'pieZelle';
					// return "<div class='chart_pie' id='"+i+"'></div>";
				}

				return value;
			}});		
			this.gridComponents.modelFields.push({align:'right', sortable:true, header: "Prozentual",width:80,dataIndex:'vgl_'+i,renderer:function(value, metadata, record, rowIndex, colIndex, store){
				if(rowIndex == store.getCount()-2){
					metadata.css = 'summenZeile';				
				}

				return value;
			}});		
			this.gridComponents.modelFields.push({align:'right', sortable:true, width:156, header: "% Änd. VJ",dataIndex:'chg_'+i,width:110,renderer:function(value, metadata, record, rowIndex, colIndex, store){
				if(rowIndex == store.getCount()-2){
					metadata.css = 'summenZeile';				
				}

				return value;
			}});		
		};
		
		

		// this.gridComponents.columnModel = new Ext.grid.ColumnModel(this.gridComponents.modelFields);
		

		
		// bezugsgrößen vergleich parsen
		var bbar = new Array();
		bbar.push('Bezugsgröße: <b>'+this.requestOptions.bezugsgroesseRaw+'</b>','-');
		if(daten.werteBezugsgroesse[von-1]!=null){
			bbar.push((von-1)+ ': <b>'+daten.werteBezugsgroesse[von-1].betrag+'</b>','-');			
		}else{
			bbar.push((von-1)+ ': <b>nicht erfasst</b>','-');			
		}
		
				
		
		for (var i=von; i <= bis; i++) {
			if(Ext.isEmpty(daten.werteBezugsgroesse[i])){
				var wert = "nicht erfasst";
			}else{	
				var wert = daten.werteBezugsgroesse[i].betrag;
			}

			bbar.push(i+': <b>'+wert+'</b>');
			if(i!=bis){
				bbar.push('-');
			}
		};
		
		
		this.grid = new Ext.grid.GridPanel({
			store: this.gridComponents.store, 
			columns: this.gridComponents.modelFields, 
			border:false,
			bbar:bbar,
			disableSelection:true,
			title:this.requestOptions.kostenebeneRaw,
			tools:[{id:'print', scope:this, handler:function(){
				if(this.requestOptions!=null){
					var ro = this.requestOptions;
					
					
					
					if(ro.kostenebenen_eintrag_parent_id){
						if(rcm.Application.jahreskostenuebersicht.gridComponents.store.lastOptions.params.dir!= null){
							var url = cfg_backend_url + "jahreskostenauswertung/getJahresKostenUebersichtPrintView/"+ro.institut + "/" + ro.bezugsgroesse + "/" + ro.kostenebene +"/"+  ro.startjahr + "/" + ro.folgejahre + "/" + ro.kommentare_anzeigen + "/" + ro.kostenebenen_eintrag_parent_id +"/"+ rcm.Application.jahreskostenuebersicht.gridComponents.store.lastOptions.params.dir + "/" + rcm.Application.jahreskostenuebersicht.gridComponents.store.lastOptions.params.sort + "/false";	
						}else{
							var url = cfg_backend_url + "jahreskostenauswertung/getJahresKostenUebersichtPrintView/"+ro.institut + "/" + ro.bezugsgroesse + "/" + ro.kostenebene +"/"+  ro.startjahr + "/" + ro.folgejahre + "/" + ro.kommentare_anzeigen + "/" + ro.kostenebenen_eintrag_parent_id + "/false/false/false";
						}
						
					}else{
						if(rcm.Application.jahreskostenuebersicht.gridComponents.store.lastOptions.params.dir!= null){
							var url = cfg_backend_url + "jahreskostenauswertung/getJahresKostenUebersichtPrintView/"+ro.institut + "/" + ro.bezugsgroesse + "/" + ro.kostenebene +"/"+  ro.startjahr + "/" + ro.folgejahre + "/" + ro.kommentare_anzeigen + "/false/"+ rcm.Application.jahreskostenuebersicht.gridComponents.store.lastOptions.params.dir + "/" + rcm.Application.jahreskostenuebersicht.gridComponents.store.lastOptions.params.sort + "/false";	
						}else{
							var url = cfg_backend_url + "jahreskostenauswertung/getJahresKostenUebersichtPrintView/"+ro.institut + "/" + ro.bezugsgroesse + "/" + ro.kostenebene +"/"+  ro.startjahr + "/" + ro.folgejahre + "/" + ro.kommentare_anzeigen +"/false/false/false/false";
						}
					}
					


					rcm.Application.print(url + "/"+rcm.Application.jahreskostenuebersicht.requestOptions.entry_level);
				}
			}},
			
			{id:'save', scope:this, handler:function(){
				if(this.requestOptions!=null){
					var ro = this.requestOptions;
					
					
					
					if(ro.kostenebenen_eintrag_parent_id){
						if(rcm.Application.jahreskostenuebersicht.gridComponents.store.lastOptions.params.dir!= null){
							var url = cfg_backend_url + "jahreskostenauswertung/getJahresKostenUebersichtPrintView/"+ro.institut + "/" + ro.bezugsgroesse + "/" + ro.kostenebene +"/"+  ro.startjahr + "/" + ro.folgejahre + "/" + ro.kommentare_anzeigen + "/" + ro.kostenebenen_eintrag_parent_id +"/"+ rcm.Application.jahreskostenuebersicht.gridComponents.store.lastOptions.params.dir + "/" + rcm.Application.jahreskostenuebersicht.gridComponents.store.lastOptions.params.sort +"/true";	
						}else{
							var url = cfg_backend_url + "jahreskostenauswertung/getJahresKostenUebersichtPrintView/"+ro.institut + "/" + ro.bezugsgroesse + "/" + ro.kostenebene +"/"+  ro.startjahr + "/" + ro.folgejahre + "/" + ro.kommentare_anzeigen + "/" + ro.kostenebenen_eintrag_parent_id + "/false/false/true";
						}
						
					}else{
						if(rcm.Application.jahreskostenuebersicht.gridComponents.store.lastOptions.params.dir!= null){
							var url = cfg_backend_url + "jahreskostenauswertung/getJahresKostenUebersichtPrintView/"+ro.institut + "/" + ro.bezugsgroesse + "/" + ro.kostenebene +"/"+  ro.startjahr + "/" + ro.folgejahre + "/" + ro.kommentare_anzeigen + "/false/"+ rcm.Application.jahreskostenuebersicht.gridComponents.store.lastOptions.params.dir + "/" + rcm.Application.jahreskostenuebersicht.gridComponents.store.lastOptions.params.sort+ "/true";	
						}else{
							var url = cfg_backend_url + "jahreskostenauswertung/getJahresKostenUebersichtPrintView/"+ro.institut + "/" + ro.bezugsgroesse + "/" + ro.kostenebene +"/"+  ro.startjahr + "/" + ro.folgejahre + "/" + ro.kommentare_anzeigen +"/false/false/false/true";
						}
					}
					

					window.location.href = url + "/"+rcm.Application.jahreskostenuebersicht.requestOptions.entry_level;
					// rcm.Application.print(url);
				}
			}}
			]
			
		});
		
		if(!Ext.isEmpty(Ext.getCmp('auswertungContent').items)){
			Ext.getCmp('auswertungContent').remove(Ext.getCmp('auswertungContent').getComponent(0));
		}
		
		Ext.getCmp('auswertungContent').add(this.grid);
		Ext.getCmp('auswertungContent').doLayout();
		
		Ext.MessageBox.wait('Daten werden geladen...',false,waitDialogConfig);
		
		this.gridComponents.store.load({
		
			params:function(){


				var params = new Object();						

			
				Ext.each(rcm.Application.jahreskostenuebersicht.tbar.form.items.items, function(field){
					if(!Ext.isEmpty(field.getValue)){
						params[field.name] = field.getValue();										
					}
			
				});
				
				if(rcm.Application.jahreskostenuebersicht.gridComponents.store.lastOptions.params.dir != null){
					params['dir'] = rcm.Application.jahreskostenuebersicht.gridComponents.store.lastOptions.params.dir;
				}
				
				if(rcm.Application.jahreskostenuebersicht.gridComponents.store.lastOptions.params.sort != null){
					params['sort'] = rcm.Application.jahreskostenuebersicht.gridComponents.store.lastOptions.params.sort;
				}
				
				
				params['entry_level'] = Ext.getCmp('kostenebene').getValue();					
				

				
				return params;
			}
			
		});
		
		this.newPanelTitle = rcm.Application.jahreskostenuebersicht.requestOptions.kostenebeneRaw;
		this.grid.on('celldblclick',function(grid, rowIndex, columnIndex, e){
			
			
			
			// return; // doppelklick erstmal raus

			if(rowIndex> rcm.Application.jahreskostenuebersicht.gridComponents.store.getCount()-3){
				return false;
			}
			
			
			// überprüfen ob man überhaupt noch tiefer gehen kann
			var ebenenStoreId = rcm.Application.multiStores['bcm_kostenebenen_name'].find('id',rcm.Application.jahreskostenuebersicht.requestOptions.kostenebene);
			
			var ebenePlus = rcm.Application.multiStores['bcm_kostenebenen_name'].getAt(ebenenStoreId+1);
			if(ebenePlus){

				
				rcm.Application.jahreskostenuebersicht.requestOptions.kostenebene = ebenePlus.data.id;
				rcm.Application.jahreskostenuebersicht.requestOptions.kostenebeneRaw = ebenePlus.data.name;
				Ext.getCmp('kostenebene').setValue(ebenePlus.data.id);
				
				rcm.Application.jahreskostenuebersicht.grid.getColumnModel().setColumnHeader(1,ebenePlus.data.name);
				
				
				// navigationspfad
				var ebenenName = grid.getStore().getAt(rowIndex).data.kostenebene;
				// console.log('ebenenName',ebenenName);
				rcm.Application.jahreskostenuebersicht.newPanelTitle = rcm.Application.jahreskostenuebersicht.newPanelTitle + " > " + 	ebenenName;
				rcm.Application.jahreskostenuebersicht.grid.setTitle(rcm.Application.jahreskostenuebersicht.newPanelTitle);
				

				// ende navagationspfad
				
				rcm.Application.jahreskostenuebersicht.grid.setTitle


				var record = rcm.Application.jahreskostenuebersicht.gridComponents.store.getAt(rowIndex);
				
				
				var spanInHtml = record.data.kostenebene;
				
				var strAbClass = spanInHtml.substr(spanInHtml.search(/class="/)+7, spanInHtml.length);
				
				var span = strAbClass.substr(0,strAbClass.search(/"/));

				
				
				rcm.Application.jahreskostenuebersicht.requestOptions.kostenebenen_eintrag_parent_id = span;	


				Ext.MessageBox.wait('Daten werden geladen..',false,waitDialogConfig);
				rcm.Application.jahreskostenuebersicht.gridComponents.store.reload({

					params:function(){
						var params = new Object();

						Ext.each(rcm.Application.jahreskostenuebersicht.tbar.form.items.items, function(field){
							if(!Ext.isEmpty(field.getValue)){
								params[field.name] = field.getValue();										
							}


						});
						
						
						if(rcm.Application.jahreskostenuebersicht.gridComponents.store.lastOptions.params.dir != null){
							params['dir'] = rcm.Application.jahreskostenuebersicht.gridComponents.store.lastOptions.params.dir;
						}

						if(rcm.Application.jahreskostenuebersicht.gridComponents.store.lastOptions.params.sort != null){
							params['sort'] = rcm.Application.jahreskostenuebersicht.gridComponents.store.lastOptions.params.sort;
						}
						
						params['entry_level'] = rcm.Application.jahreskostenuebersicht.requestOptions.entry_level;
						

						params['kostenebenen_eintrag_parent_id'] = span;
						params['pfad_id'] = span;

						return params;
					}


				});

			}
			

			
			
			
		});
		
		
	},
	
	
	
	

	
	// ==========================
	// = öffentliche Funktionen =
	// ==========================
	
	
	init:function(){
		this.buildView();
		// this.buildGrafikChooseWindow();
		
		
		return this;
	}
	
	
	
});
