﻿Ext.namespace("grafProducts");

grafProducts = {
	init: function(){

		var niederschlagsmengen = {
			"01":"630",
			"02":"650",
			"03":"560",
			"04":"560",
			"06":"510",
			"07":"770",
			"08":"1000",
			"09":"1000",
			"10":"550",
			"12":"590",
			"13":"550",
			"14":"540",
			"15":"530",
			"16":"470",
			"17":"550",
			"18":"660",
			"19":"650",
			"20":"800",
			"21":"770",
			"22":"740",
			"23":"660",
			"24":"820",
			"25":"1000",
			"26":"740",
			"27":"780",
			"28":"710",
			"29":"780",
			"30":"650",
			"31":"800",
			"32":"800",
			"33":"850",
			"34":"790",
			"35":"730",
			"36":"900",
			"37":"640",
			"38":"930",
			"39":"530",
			"40":"1100",
			"41":"800",
			"42":"1290",
			"44":"1000",
			"45":"880",
			"46":"1000",
			"47":"740",
			"48":"730",
			"49":"810",
			"50":"1250",
			"51":"1300",
			"52":"810",
			"53":"740",
			"54":"750",
			"55":"510",
			"56":"1130",
			"57":"1150",
			"58":"1220",
			"59":"1460",
			"60":"630",
			"61":"960",
			"63":"710",
			"64":"860",
			"65":"530",
			"66":"1250",
			"67":"650",
			"68":"640",
			"69":"770",
			"70":"680",
			"71":"1040",
			"72":"1590",
			"73":"940",
			"74":"790",
			"75":"790",
			"76":"740",
			"77":"1200",
			"78":"920",
			"79":"1020",
			"80":"1000",
			"81":"950",
			"82":"1200",
			"83":"1660",
			"84":"850",
			"85":"1000",
			"86":"1000",
			"87":"1300",
			"88":"1200",
			"89":"850",
			"90":"850",
			"91":"650",
			"92":"850",
			"93":"950",
			"94":"1250",
			"95":"1100",
			"96":"750",
			"97":"630",
			"98":"910",
			"99":"590"
		}
		
		var dachbeiwert = {
			"1":0.9,	// Ton/glasiert
			"2":0.8,	// Schiefer
			"3":0.8,	// Beton
			"4":0.95,	// Blech
			"5":0.4,	// Begrünt
			"6":0.6,	// Kiesschüttung
			"7":0.95,	// Kunststoff
			"8":0.95	// Bitumen
		}
		
		var language_uid = 0;
		
		var einsatzort = 'garten';
		
		var infoIcon = 'images/info_icon.gif';
		
		// Variablen fuer Ersparnisrechnung, Ausgabe der Werte mit Komma separiert (unten) aufgefuehrt; bitte immer beide Werte aendern!
		var verbrauchSpuelung = 8.5;
		var verbrauchWaschmaschine = 3.5;
		var verbrauchPutzen = 1.1;
		var gartenBewaesserung = 100;
		
		var verbrauchSpuelungAusgabe = '8,5';
		var verbrauchWaschmaschineAusgabe = '3,5';
		var verbrauchPutzenAusgabe = '1,1';

// Helfer	
		var setSelect = function(e,val) {
			for(i=0;i<document.getElementById(e).length;i++) {
				if(document.getElementById(e).options[i].value==val)	{
					document.getElementById(e).selectedIndex=i
				}
			}
		}		

// Cookie konfigurieren		
		Ext.state.Manager.setProvider(new Ext.state.CookieProvider({
			//path: "/produktberater/",
			expires: new Date(new Date().getTime()+(1000*60*60*24*30)) //30 days
			//domain: "graf-online.info"
		}));
	
// Actions
		
		// aktualisiert Berechnung
		var berechneteTankgroesse = 0;
		var tankgroesseTooltip;
		var regenwasserertragTooltip;
		var getErsparnis = function(){

			var bedarfHausGartenTpl = new Ext.Template(
				'<div class="regenwasserbedarf_back">',
					'<table cellspacing="0" cellpadding="0">',
						'<tbody>',
							'<tr>',
								'<td width="120">WC-Spülung</td>',
								'<td width="160">pro Person und Jahr '+verbrauchSpuelungAusgabe+' m³</td>',
								'<td width="80">× {personen} Personen</td>',
								'<td width="15">=</td>',
								'<td width="90" class="result">{wc} Liter</td>',
							'</tr>',
							'<tr>',
								'<td>Waschmaschine</td>',
								'<td>pro Person und Jahr '+verbrauchWaschmaschineAusgabe+' m³</td>',
								'<td>× {personen} Personen</td>',
								'<td>=</td>',
								'<td class="result">{waschmaschine} Liter</td>',
							'</tr>',
							'<tr>',
								'<td>Putzen/Reinigung</td>',
								'<td>pro Person und Jahr '+verbrauchPutzenAusgabe+' m³</td>',
								'<td>× {personen} Personen</td>',
								'<td>=</td>',
								'<td class="result">{reinigung} Liter</td>',
							'</tr>',
							'<tr>',
								'<td>Gartenbewässerung</td>',
								'<td>'+gartenBewaesserung+' l/m²</td>',
								'<td>× {gartengroesse} m²</td>',
								'<td>=</td>',
								'<td class="result">{gartenliter} Liter</td>',
							'</tr>',
						'</tbody>',
					'</table>',
				'</div>',
				'<table cellspacing="0" cellpadding="0" class="pb_summe">',
					'<tbody>',						
						'<tr>',
							'<th colspan="3" width="360">Regenwasserbedarf</th>',
							'<td width="15">=</td>',
							'<td width="90" class="result bedarf">{bedarf} Liter</td>',
						'</tr>',
					'</tbody>',
				'</table>'
			);

			var bedarfHausTpl = new Ext.Template(
				'<div class="regenwasserbedarf_back">',
					'<table cellspacing="0" cellpadding="0">',
						'<tbody>',
							'<tr>',
								'<td width="120">WC-Spülung</td>',
								'<td width="160">pro Person und Jahr '+verbrauchSpuelungAusgabe+' m³</td>',
								'<td width="80">× {personen} Personen</td>',
								'<td width="15">=</td>',
								'<td width="90" class="result">{wc} Liter</td>',
							'</tr>',
							'<tr>',
								'<td>Waschmaschine</td>',
								'<td>pro Person und Jahr '+verbrauchWaschmaschineAusgabe+' m³</td>',
								'<td>× {personen} Personen</td>',
								'<td>=</td>',
								'<td class="result">{waschmaschine} Liter</td>',
							'</tr>',
							'<tr>',
								'<td>Putzen/Reinigung</td>',
								'<td>pro Person und Jahr '+verbrauchPutzenAusgabe+' m³</td>',
								'<td>× {personen} Personen</td>',
								'<td>=</td>',
								'<td class="result">{reinigung} Liter</td>',
							'</tr>',
						'</tbody>',
					'</table>',
				'</div>',
				'<table cellspacing="0" cellpadding="0" class="pb_summe">',
					'<tbody>',
						'<tr>',
							'<th colspan="3" width="360">Regenwasserbedarf</th>',
							'<td width="15">=</td>',
							'<td width="90" class="result bedarf">{bedarf} Liter</td>',
						'</tr>',
					'</tbody>',
				'</table>'
			);

			var bedarfGartenTpl = new Ext.Template(
				'<div class="regenwasserbedarf_back">',
					'<table cellspacing="0" cellpadding="0">',
						'<tbody>',
							'<tr>',
								'<td width="120">Gartenbewässerung</td>',
								'<td width="160">'+gartenBewaesserung+' l/m²</td>',
								'<td width="80">× {gartengroesse} m²</td>',
								'<td width="15">=</td>',
								'<td width="90" class="result">{gartenliter} Liter</td>',
							'</tr>',
						'</tbody>',
					'</table>',
				'</div>',
				'<table cellspacing="0" cellpadding="0" class="pb_summe">',
					'<tbody>',
						'<tr>',
							'<th colspan="3" width="360">Regenwasserbedarf</th>',
							'<td width="15">=</td>',
							'<td width="90" class="result bedarf">{bedarf} Liter</td>',
						'</tr>',
					'</tbody>',
				'</table>'
			);

			var tmpBedarf = 0;
			if (Ext.DomQuery.selectValue('input[name=einsatzort]:checked/@value')=='haus') {
				if (anzpersonen.getValue()>0) {
					tmpBedarf = Math.round(anzpersonen.getValue()*(verbrauchSpuelung+verbrauchWaschmaschine+verbrauchPutzen)*1000);
					bedarfHausTpl.overwrite('regenwasserbedarf', {
						personen:anzpersonen.getValue(),
						wc:Math.round(anzpersonen.getValue()*verbrauchSpuelung*1000),
						waschmaschine:Math.round(anzpersonen.getValue()*verbrauchWaschmaschine*1000),
						reinigung:Math.round(anzpersonen.getValue()*verbrauchPutzen*1000),
						bedarf: tmpBedarf
					});
				} else Ext.DomHelper.overwrite('regenwasserbedarf','');
			}
			if (Ext.DomQuery.selectValue('input[name=einsatzort]:checked/@value')=='garten') {
				if (gartengroesse.getValue()>0) {
					tmpBedarf = Math.round(gartengroesse.getValue()*gartenBewaesserung);
					bedarfGartenTpl.overwrite('regenwasserbedarf', {
						gartengroesse:gartengroesse.getValue(),
						gartenliter:gartengroesse.getValue()*gartenBewaesserung,
						bedarf: tmpBedarf
					});
				} else Ext.DomHelper.overwrite('regenwasserbedarf','');
			}
			if (Ext.DomQuery.selectValue('input[name=einsatzort]:checked/@value')=='hausgarten') {
				if (gartengroesse.getValue()>0 && anzpersonen.getValue()>0) {
					tmpBedarf = Math.round(anzpersonen.getValue()*(verbrauchSpuelung+verbrauchWaschmaschine+verbrauchPutzen)*1000+gartengroesse.getValue()*100);
					bedarfHausGartenTpl.overwrite('regenwasserbedarf', {
						personen:anzpersonen.getValue(),
						wc:Math.round(anzpersonen.getValue()*verbrauchSpuelung*1000),
						waschmaschine:Math.round(anzpersonen.getValue()*verbrauchWaschmaschine*1000),
						reinigung:Math.round(anzpersonen.getValue()*verbrauchPutzen*1000),
						gartengroesse:gartengroesse.getValue(),
						gartenliter:gartengroesse.getValue()*gartenBewaesserung,
						bedarf: tmpBedarf
					});
				} else Ext.DomHelper.overwrite('regenwasserbedarf','');
			}
			
			
			var tankgroesseTpl = new Ext.Template(
				'<table cellspacing="0" cellpadding="0"><tbody>'+
				'<tr><th width="352">Regenwasserertrag</th><td width="15">=</td><td width="90" class="result">{regenwasserertrag} Liter</td><td><a href="javascript:;" id="regenwasserertraginfo"><img src="'+infoIcon+'" /></a></td></tr>'+
				'<tr><th width="352">Tankgröße</th><td width="15">=</td><td width="90" class="result">{tankgroesse} Liter</td><td><a href="javascript:;" id="tankgroesseinfo"><img src="'+infoIcon+'" /></a></td></tr>'+
				'</tbody></table>'
			);
			
			if (plz.getValue()>0 && dachtyp.getValue()>0 && tmpBedarf>0) {
				// alten Tooltip ausblenden
				//if (Ext.get('tankgroesseinfoTooltip')) Ext.get('tankgroesseinfoTooltip').hide();

				// Berechnung
				var tmpErtrag = (niederschlagsmengen[plz.getValue()] * dachflaeche.getValue() * dachbeiwert[dachtyp.getValue()]);
				var tankgroessealt = berechneteTankgroesse;
				berechneteTankgroesse = Math.round(((tmpErtrag+tmpBedarf)/2)*(21/365));
				tankgroesseTpl.overwrite('tankgroesse', {
					tankgroesse: berechneteTankgroesse,
					regenwasserertrag: tmpErtrag
				});
				var tankgroesseBerechnung = 
				'Als Bemessungsfaktor wird der durchschnittliche Wert aus Regenertrag und Regenbedarf verwendet:<br />' +
				'<table cellspacing="1" cellpadding="1" border="0">' +
				'<tbody><tr>' +
					'<td>'+tmpErtrag+' Liter + '+tmpBedarf+' Liter</td>'+
					'<td rowspan="2"> × </td>'+
					'<td>21 Tage (Sicherheitsreserve)</td>'+
					'<td rowspan="2">= '+berechneteTankgroesse+' Liter</td>'+
				'</tr>'+
				'<tr>'+
					'<td style="border-top: 1px solid #000; text-align: center;">2</td>'+
					'<td style="border-top: 1px solid #000; text-align: center;">365 Tage</td>'+
				'</tr>'+
				'</tbody></table>';
				
				if (tankgroesseTooltip) tankgroesseTooltip.hide();
				tankgroesseTooltip = new Ext.ToolTip({
					target: 'tankgroesseinfo',
					html: tankgroesseBerechnung,
					title: 'Wie wird die Tankgröße berechnet?',
					autoHide: false,
					width: 425,
					closable: true,
					draggable: false,
					hideDelay: 2000,
					dismissDelay: 8000
				});

				if (regenwasserertragTooltip) regenwasserertragTooltip.hide();
				regenwasserertragTooltip = new Ext.ToolTip({
					target: 'regenwasserertraginfo',
					title: 'Regenwasserertrag',
					html: 'Dieser Wert wird anhand des Niederschlagswertes, welcher für ihre PLZ gilt ermittelt.',
					autoHide: false,
					width: 200,
					closable: true,
					draggable: false,
					hideDelay: 2000,
					dismissDelay: 8000
				});

			} else {
				Ext.DomHelper.overwrite('tankgroesse','');
				berechneteTankgroesse = 0;
			}

			var ersparnisTpl = new Ext.Template(
				'<table cellspacing="0" cellpadding="0"><tbody><tr><th width="352">Jährliche Ersparnis</th><td width="15">=</td><td width="90" class="result">€{ersparnis}</td></tr></tbody></table>'
			);
			
			if (tmpBedarf > 0 && tmpErtrag > 0) {
				var tmpErsparnis;
				if (tmpErtrag < tmpBedarf) tmpErsparnis = Math.round(tmpErtrag * wasserpreis.getValue()/1000/1000);
				else tmpErsparnis = Math.round(tmpBedarf * wasserpreis.getValue()/1000/1000);
				ersparnisTpl.overwrite('ersparnis', {
					ersparnis: tmpErsparnis
				});
			} else Ext.DomHelper.overwrite('ersparnis','');
		
			// Werte in Cookie speichern
			Ext.state.Manager.set('plz',plz.getValue());
			Ext.state.Manager.set('dachflaeche',dachflaeche.getValue());
			Ext.state.Manager.set('dachtyp',dachtyp.getValue());
			Ext.state.Manager.set('anzpersonen',anzpersonen.getValue());
			Ext.state.Manager.set('gartengroesse',gartengroesse.getValue());
			Ext.state.Manager.set('wasserpreis',wasserpreis.getValue());			
		}
		
		// aktualisiert Einbau
		var updateInfotext = function(){
			if (Ext.DomQuery.selectValue('input[name=einsatzort]:checked/@value')=='garten') {
				Ext.get('garten').setStyle('display','block');
				Ext.get('haus').setStyle('display','none');
				Ext.get('hausgarten').setStyle('display','none');
			}
			if (Ext.DomQuery.selectValue('input[name=einsatzort]:checked/@value')=='haus') {
				Ext.get('garten').setStyle('display','none');
				Ext.get('haus').setStyle('display','block');
				Ext.get('hausgarten').setStyle('display','none');
			}
			if (Ext.DomQuery.selectValue('input[name=einsatzort]:checked/@value')=='hausgarten') {
				Ext.get('garten').setStyle('display','none');
				Ext.get('haus').setStyle('display','none');
				Ext.get('hausgarten').setStyle('display','block');
			}
		}

		// aktualisiert Anz. Personen
		var updateAnzPersonen = function(){
			if (Ext.DomQuery.selectValue('input[name=einsatzort]:checked/@value')=='garten') {
				Ext.get('pb_anzpersonen').setStyle('display','none');
			} else {
				Ext.get('pb_anzpersonen').setStyle('display','inline');
			}
		}
		
		// aktualisiert Belastbarkeit
		var updateBelastbarkeit = function(){
			// oberirdisch ausgewählt? blende Belastbarkeit aus
			if (Ext.DomQuery.selectValue('input[name=einbau]:checked/@value')==1) {
				Ext.get('pb_belastbarkeit').setStyle('display','none');
			} else {
				Ext.get('pb_belastbarkeit').setStyle('display','block');
			}
		}
						
// Formular

// einsatzort Begin
		if (Ext.state.Manager.get('einsatzort')) {
			if (Ext.state.Manager.get('einsatzort')=='haus') Ext.get('einsatzort1').set({checked:'checked'});
			if (Ext.state.Manager.get('einsatzort')=='garten') Ext.get('einsatzort2').set({checked:'checked'});		
			if (Ext.state.Manager.get('einsatzort')=='hausgarten') Ext.get('einsatzort3').set({checked:'checked'});		
		}

		Ext.get('einsatzort2').addListener('click',getErsparnis,this,{buffer: 500});
		Ext.get('labeleinsatzort2').addListener('click',getErsparnis,this,{buffer: 500});
		Ext.get('einsatzort2').addListener('click',updateInfotext,this,{buffer: 500});
		Ext.get('labeleinsatzort2').addListener('click',updateInfotext,this,{buffer: 500});
		Ext.get('einsatzort2').addListener('click',updateAnzPersonen,this,{buffer: 500});
		Ext.get('labeleinsatzort2').addListener('click',updateAnzPersonen,this,{buffer: 500});
				
		Ext.get('einsatzort1').addListener('click',getErsparnis,this,{buffer: 500});
		Ext.get('labeleinsatzort1').addListener('click',getErsparnis,this,{buffer: 500});
		Ext.get('einsatzort1').addListener('click',updateInfotext,this,{buffer: 500});
		Ext.get('labeleinsatzort1').addListener('click',updateInfotext,this,{buffer: 500});
		Ext.get('einsatzort1').addListener('click',updateAnzPersonen,this,{buffer: 500});
		Ext.get('labeleinsatzort1').addListener('click',updateAnzPersonen,this,{buffer: 500});
		
		Ext.get('einsatzort3').addListener('click',getErsparnis,this,{buffer: 500});
		Ext.get('labeleinsatzort3').addListener('click',getErsparnis,this,{buffer: 500});
		Ext.get('einsatzort3').addListener('click',updateInfotext,this,{buffer: 500});
		Ext.get('labeleinsatzort3').addListener('click',updateInfotext,this,{buffer: 500});
		Ext.get('einsatzort3').addListener('click',updateAnzPersonen,this,{buffer: 500});
		Ext.get('labeleinsatzort3').addListener('click',updateAnzPersonen,this,{buffer: 500});

		
// einsatzort Ende

Ext.get('pb_groessenberechnung').setStyle('display','block');
// Slider aktualisieren (wird vom IE benötigt)
if (dachflaeche) dachflaeche.syncThumb();
if (wasserpreis) wasserpreis.syncThumb();
if (gartengroesse) gartengroesse.syncThumb();
	
	
// plz Begin
		var plz = Ext.get('plz');
		if (Ext.state.Manager.get('plz')) {
			setSelect('plz',Ext.state.Manager.get('plz'));
		}
		plz.addListener('change',getErsparnis,this,{
		    buffer: 500
		});
// plz Ende
	
// dachflaeche Begin
		var dachflaeche = new Ext.Slider({
			renderTo: 'dachflaeche',
			width: 150,
			height: 20,
			increment: 10,
			minValue: 10,
			maxValue: 500
		});
		
		dachflaeche.addListener('change',getErsparnis,this,{
		    buffer: 500
		});

		// Wert einstellen
		if (Ext.state.Manager.get('dachflaeche')) {
			// Wert aus Cookie wiederherstellen
			dachflaeche.setValue(Ext.state.Manager.get('dachflaeche'));
		} else {
			// Default-Wert einstellen
			dachflaeche.setValue(40);		
		}
		
		// Wert mit Einheit ausgeben
		var dachflaechevalue = new Ext.Template(
			'{value}'
		);
		dachflaechevalue.overwrite('dachflaecheval', {value: dachflaeche.getValue()});
		
		dachflaeche.addListener('change',function(){
			dachflaechevalue.overwrite('dachflaecheval', {value: dachflaeche.getValue()});
		});

		var dachflaecheTooltip = new Ext.ToolTip({
			target: 'dachflaecheinfo',
			html: '<table width="100%" border="0" cellpadding="3"> <tr><td><img src="images/projezierte-Dachflaeche.gif" alt="Ermitteln der projizierten Dachfläche" width="120" height="176" /></td><td width="10"></td><td valign="top">Die projizierte Dachfläche ist unabhängig von Dachform und Dachneigung. Bitte nur Dachflächen berücksichtigen, die an die Anlage angeschlossen werden.</td>  </tr></table>',
			title: 'Projizierte Dachfläche',
			autoHide: false,
			closable: true,
			draggable: false,
			hideDelay: 2000,
			dismissDelay: 8000
		});


// dachflaeche Ende		

// dachtyp Begin
		var dachtyp = Ext.get('dachtyp');
		if (Ext.state.Manager.get('dachtyp')) {
			setSelect('dachtyp',Ext.state.Manager.get('dachtyp'));
		}
		dachtyp.addListener('change',getErsparnis,this,{
		    buffer: 500
		});
// dachtyp Ende
		
// gartengroesse Begin		
		
		var tipgartengroesse = new Ext.ux.SliderTip({
			getText: function(slider){
				return String.format('<b>{0}m²</b>', slider.getValue());
			}
		});

		var gartengroesse = new Ext.Slider({
			stateId: 'gartengroesse',
			renderTo: 'gartengroesse',
			width: 150,
			height: 20,
			increment: 25,
			minValue: 0,
			maxValue: 1000
			//plugins: tipgartengroesse
		});
		
		gartengroesse.addListener('change',getErsparnis,this,{
		    buffer: 500
		});
		
		// Wert einstellen
		if (Ext.state.Manager.get('gartengroesse')) {
			// Wert aus Cookie wiederherstellen
			gartengroesse.setValue(Ext.state.Manager.get('gartengroesse'));
		} else {
			// Default-Wert einstellen
			gartengroesse.setValue(200);
		}

		// Wert mit Einheit ausgeben
		var gartengroessevalue = new Ext.Template(
			'{value}'
		);
		gartengroessevalue.overwrite('gartengroesseval', {value: gartengroesse.getValue()});
		
		gartengroesse.addListener('change',function(){
			gartengroessevalue.overwrite('gartengroesseval', {value: gartengroesse.getValue()});				
		});
		
// gartengroesse Ende		

// anzpersonen Begin
		var anzpersonen = Ext.get('anzpersonen');
		if (Ext.state.Manager.get('anzpersonen')) {
			setSelect('anzpersonen',Ext.state.Manager.get('anzpersonen'));
		}
		anzpersonen.addListener('change',getErsparnis,this,{
		    buffer: 500
		});
// anzpersonen Ende

// wasserpreis Begin		
		
		var tipwasserpreis = new Ext.ux.SliderTip({
			getText: function(slider){
				return String.format('<b>{0}€/m³</b>', (slider.getValue()/1000));
			}
		});

		var wasserpreis = new Ext.Slider({
			stateId: 'wasserpreis',
			renderTo: 'wasserpreis',
			width: 150,
			height: 20,
			increment: 100,
			minValue: 2000,
			maxValue: 8000
			//plugins: tipwasserpreis
		});
		
		wasserpreis.addListener('change',getErsparnis,this,{
		    buffer: 500
		});
		
		// Wert einstellen
		if (Ext.state.Manager.get('wasserpreis')) {
			// Wert aus Cookie wiederherstellen
			wasserpreis.setValue(Ext.state.Manager.get('wasserpreis'));
		} else {
			// Default-Wert einstellen
			wasserpreis.setValue(3700);
		}

		// Wert mit Einheit ausgeben
		var wasserpreisvalue = new Ext.Template(
			'{value}'
		);
		wasserpreisvalue.overwrite('wasserpreisval', {value: (wasserpreis.getValue()/1000).toFixed(2).replace('.',',')});
		
		wasserpreis.addListener('change',function(){
			gartengroessevalue.overwrite('wasserpreisval', {value: (wasserpreis.getValue()/1000).toFixed(2).replace('.',',')});				
		});
		
		var wasserpreisTooltip = new Ext.ToolTip({
			target: 'wasserpreisinfo',
			title: 'Wasserpreis',
			html: 'Bei einer reinen Gartenbewässerung kann der Abwasserpreis zum Trinkwasserpreis addiert werden. Bei einer Hausnutzung (WC/ Waschmaschine) ist dies von der Satzung des örtlichen Wasserversorgers abhängig.',
			autoHide: false,
			closable: true,
			draggable: false,
			hideDelay: 2000,
			dismissDelay: 8000
			
		});
// wasserpreis Ende

		// Quicktips initialisieren
		Ext.QuickTips.init();
		
		// initiale Aufrufe
		updateInfotext();
		updateAnzPersonen();
		getErsparnis();
		var initialLoad=true;
	}
}

Ext.onReady(grafProducts.init);
