function calc() {
	
	var ta = $('select.tarif').val();
	var kl = $('select.klasse').val();
	var km = parseInt($('input#kilometer').val(), 10);
	
	var dat_von = $('#datum_von').val();
	var dat_bis = $('#datum_bis').val();
	
	var km_preis = 0;
	var zeit_preis = 0;
	var tmp_zeit_preis = 0;
	
	//Kilometerberechnung
	if (km > 0) {
		if (km > 100) {
			km_preis += (km-100) * calc_preise[ta][kl][5]; 
			km_preis += 100 * calc_preise[ta][kl][4];  
		} else {
			km_preis += km * calc_preise[ta][kl][4];
		}	
	} 
	
	//Zeitberechnung
	if (dat_von && dat_bis) {
		
		var r = dat_von.split("-");
		var von = { 
			Y : r[0],
			M : parseInt(r[1]-1, 10),
			D : r[2],
			h : parseInt($('#stunde_von').val(), 10)
		} 
		
		var r = dat_bis.split("-");
		var bis = { 
			Y : r[0],
			M : parseInt(r[1]-1, 10),
			D : r[2],
			h : parseInt($('#stunde_bis').val(), 10)
		} 
		
		var date_von = new Date(von.Y, von.M, von.D, von.h, 0, 0);
		var date_bis = new Date(bis.Y, bis.M, bis.D, bis.h, 0, 0);
		
		var date_gesamt = (Date.parse(date_bis) - Date.parse(date_von)) / 1000;
		
		if (date_gesamt > 0) {
			
			var wochen = Math.floor(date_gesamt/(60*60*24*7));
			if (wochen > 0) {
				date_gesamt -= wochen * (60*60*24*7);
				zeit_preis += wochen * calc_preise[ta][kl][3];
			}
			
			var tage = Math.floor(date_gesamt/(60*60*24));
			if (tage > 0) {
				date_gesamt -= tage * (60*60*24);
				tmp_zeit_preis += tage * calc_preise[ta][kl][2];
				//zeit_preis += tage * calc_preise[ta][kl][2];
			}
			
			var stunden = Math.floor(date_gesamt/(60*60));
						
			if (stunden > 0) {
				var rest = stunden;
				var ges = 0;	
				
				if (von.h + stunden > 24) {
					
					//Stunden im alten Tag
					var old_h = (23 - von.h);
					if (von.h < 7) {
						old_h -= (7-von.h);
					}
					
					if ( (stunden-old_h-8) > 0) {
						old_h += (stunden-old_h-8);
					} 
					
					rest = old_h;

				} else {
					ges = (7 - von.h);
					if (ges > 0) {
						rest -= ges;
					}				
				}
				
				var nachttarif = 0;
				if (stunden > rest) {
					var nachtstunden = 0;
					if (rest > 0) {
						 nachtstunden = rest;
					}
					var nachttarif = (stunden - nachtstunden)*calc_preise[ta][kl][0];
				}
				
				var tagtarif = 0;
				if (rest > 0) {
					tagtarif = rest * calc_preise[ta][kl][1];
					//tmp_zeit_preis += Math.min( (rest * calc_preise[ta][kl][1])+nachttarif, calc_preise[ta][kl][2]);
					//zeit_preis += Math.min(rest * calc_preise[ta][kl][1], calc_preise[ta][kl][2]);
				}
				
				if (nachttarif || tagtarif) {
					tmp_zeit_preis += Math.min(tagtarif+nachttarif, calc_preise[ta][kl][2]);
				}
									
			}
			zeit_preis += Math.min(tmp_zeit_preis, calc_preise[ta][kl][3]);
		}
			
	}
	
	
	//Setzen der Ergebnisse
	$('span.ergebnis_strecke').html(km_preis.toFixed(2)+" &euro;");
	$('span.ergebnis_zeit').html(zeit_preis.toFixed(2)+" &euro;");
	$('span.ergebnis_gesamt').html((km_preis + zeit_preis).toFixed(2)+" &euro;");
}