/* precision of the calculated co2-values */
var precision = 2;

var event_fix_value = 0;

/* 60 seconds to wait before reload */
var base_timer = -1;

/* Preis pro Tonne CO2 */
var preis_pro_tonne = 25.90;

/* 1 = t, 1000 = kg, 1000 000 = g, etc. */
var metric = 1000;
var metric_val = '&nbsp;kg';

var debug = false;

var values = new Array();

function tool_hider(e) {
	if (!e) e = event;
	if (e.keyCode == 220) {
		var tools = document.getElementById('tools');
		if (tools.style.display == 'none') {
			tools.style.display = 'block';
		} else
			tools.style.display = 'none';
	}
}

/* rab hovering */
var selected_tab;
function hover_tab(object) {
	if (object.className.indexOf('selected') < 0) object.className += ' hover';
}
function unhover_tab(object) {
	object.className = object.className.replace(' hover','');
}

/* tab closing */
function close_curr_tab() {
	var old_selected_tab = document.getElementById(selected_tab);
	if (old_selected_tab) {
		old_selected_tab.className = old_selected_tab.className.replace(' selected','');
		/*
		if (selected_tab == 'rechner2') {
			calc_car_em();
		} else if (selected_tab == 'rechner3') {
			calc_train_em();
		} else if (selected_tab == 'rechner4') {
			calc_plane_em();
		} else if (selected_tab == 'rechner5') {
			calc_hotel_em();
		}
		*/
	}
}

/* tab selecting */
function select_tab(object) {

	reset_timer(base_timer);
	var id = object.id;
	if (id == selected_tab) return null;
	
	/* change style of tab to selected */
	object.className += ' selected';
	close_curr_tab();
	unhover_tab(object);
	
	/* display content */
	var old_content = document.getElementById('rechner_content_'+selected_tab);
	if (old_content) old_content.style.display = 'none';
	var content = document.getElementById('rechner_content_'+id);
	content.style.display = 'block';
	
	/* load content if needed */
	if (content.className.indexOf('loaded') < 0) {
		new Ajax.Updater(content, id+'.php', {evalScripts: true, asynchronous: false} );
		content.className += ' loaded';
	}
	
	selected_tab = id;
}

/* tab select the next tab and close the current one */
function select_next_tab(object) {
	while (object.parentNode && !(object.className && object.className.indexOf('rechner_content') == 0)) {
		object = object.parentNode;
	}
	if (object.parentNode) {
		var name = object.id;
		name = 'rechner'+(parseInt(name.substring(23,name.length))+1);
		var next_tab = document.getElementById(name);
		if (next_tab) select_tab(next_tab);
	} else alert('not found!');
}

/* tab select the last tab and close the current one */
function select_last_tab(object) {
	while (object.parentNode && !(object.className && object.className.indexOf('rechner_content') == 0)) {
		object = object.parentNode;
	}
	if (object.parentNode) {
		var name = object.id;
		name = 'rechner'+(parseInt(name.substring(23,name.length))-1);
		var last_tab = document.getElementById(name);
		if (last_tab) select_tab(last_tab);
	} else alert('not found!');
}

/* prototyped form for easy access to entered data */
function get_input_val(name) {
	var objects = document.getElementsByName(name);
	if (objects.length == 0) return null;
	if (objects.length == 1) {
		/* it's just a value, return it */
		value = objects[0].value;
	} else if (objects.options) {
		/* it's a selection-button find the selected options */
		var options = object.options;
		for (var i = 0; i < options.length; i++) {
			if (options[i].selected) value = options[i].value;
		}
	} else {
		/* it's a radio-button, find the selected one */
		for (var i = 0; i < objects.length; i++) {
			if (objects[i].checked) value = objects[i].value;
		}
	}
	return value;
}

/* calculate the emission for cars */
function calc_car_em(report_error) {
	reset_timer(base_timer);
	if (report_error == null) report_error = true;
	var result = 0;
	var result_display = document.getElementById('car_emission');
	var errors = new Array();
	
	var car_km = get_input_val('car_km');
	if (parseFloat(car_km)+'' != car_km) errors.push('Invalid value for driven km!');
	car_km = parseFloat(car_km);
	var car_type = get_input_val('car_type');
	var litres = get_input_val('car_litre');
	if (litres == 'known') litres = get_input_val('car_litre_known');
	if (parseFloat(litres)+'' != litres) errors.push('Ungültiger Wert beim Durschnittsverbrauch vom Auto!');
	litres = parseFloat(litres);
	var car_persons = get_input_val('car_persons');
	if (parseInt(car_persons)+'' != car_persons) errors.push('Ungültiger Wert bei der Anzahl der Mitfahrer vom Auto!');
	car_persons = parseInt(car_persons);
	
	if (errors.length == 0) {
		var faktor = 2.71; /* benzin */
		if (car_type == 'diesel') faktor = 3.08;
		
		/*
		faktor = 2.4;
		if (car_type == 'diesel') faktor = 2.6;
		*/
	
		result = ( (car_km / 100) * litres * (faktor / 1000) ) / car_persons;
		
		result *= metric;
		result = result.toFixed(precision);
	
		result_display.innerHTML = result+metric_val;
		document.getElementById('car_em_id').innerHTML = result;
		return true;
	} else {
		if (report_error) alert(errors.join("\n"));
	}
	return false;
}

/* calculate the emission for trains */
function calc_train_em(report_error) {
	reset_timer(base_timer);
	if (report_error == null) report_error = true;
	var result = 0;
	var result_display = document.getElementById('train_emission');
	var errors = new Array();
	
	var train_fv_km = get_input_val('train_fv');
	if (parseFloat(train_fv_km)+'' != train_fv_km) errors.push('Ungültiger Wert bei den gefahrenen Kilometern bei der Bahn (Fernverkehr)!');
	train_fv_km = parseFloat(train_fv_km);
	var train_nv_km = get_input_val('train_nv');
	if (parseFloat(train_nv_km)+'' != train_nv_km) errors.push('Ungültiger Wert bei den gefahrenen Kilometern bei der Bahn (Nahverkehr)!');
	train_nv_km = parseFloat(train_nv_km);
	var train_pnv_km = get_input_val('train_pnv');
	if (parseFloat(train_pnv_km)+'' != train_pnv_km) errors.push('Ungültiger Wert bei den gefahrenen Kilometern bei der Bahn (_PNV)!');
	train_pnv_km = parseFloat(train_pnv_km);
	var train_bus_km = get_input_val('train_bus');
	if (parseFloat(train_bus_km)+'' != train_bus_km) errors.push('Ungültiger Wert bei den gefahrenen Kilometern bei der Bahn (Reisebus)!');
	train_bus_km = parseFloat(train_bus_km);
	
	if (errors.length == 0) {
		result = train_fv_km * 0.052 / 1000;
		result += train_nv_km * 0.095 / 1000;
		result += train_pnv_km * 0.075 / 1000;
		result += train_bus_km * 0.032 / 1000;
		
		result *= metric;
		result = result.toFixed(precision);
		
		result_display.innerHTML = result+metric_val;
		document.getElementById('train_em_id').innerHTML = result;
		return true;
	} else {
		if (report_error) alert(errors.join("\n"));
	}
	return false;
}

/* calculate the emission for planes */
function calc_plane_em(report_error) {
	reset_timer(base_timer);
	if (report_error == null) report_error = true;
	var result = 0.0;
	var result_display = document.getElementById('plane_emission');
	var errors = new Array();
	
	var plane_type = get_input_val('plane_type'); /* one-way || fly to and back */
	plane_type = parseInt(plane_type);

	var plane_airport_a = get_input_val('plane_airport_a');
	var plane_airport_b = get_input_val('plane_airport_b');
	var plane_count = get_input_val('plane_count');
	if (parseInt(plane_count)+'' != plane_count) errors.push('Ungültiger Wert bei der Anzahl der Flüge (Fliegen)');
	plane_count = parseInt(plane_count);
	
	var value_f = plane_airport_a.split(",");
	var value_t = plane_airport_b.split(",");
		
	if (errors.length == 0 && value_f.length > 0 && value_t.length > 0) {
	
		var flugkm = 0.193;
		var rfi = 1;
		var flugkm500 = 0.133;
		var rfi500 = 3;
		var flugkm1600 = 0.133;
		var rfi1600 = 3;
	
	/*
		values of the airport database
		--------------------------------------
		0 'uid' int(11) NOT NULL
		1 `pid` int(11) NOT NULL default '0'
		2 `tstamp` int(11) NOT NULL default '0'
		3 `crdate` int(11) NOT NULL default '0'
		4 `cruser_id` int(11) NOT NULL default '0'
		5 `city` tinytext NOT NULL
		6 `country` tinytext NOT NULL
		7 `code` tinytext NOT NULL
		8 `latdeg` tinytext NOT NULL
		9 `latmin` tinytext NOT NULL
		10 `longdeg` tinytext NOT NULL
		11 `longmin` tinytext NOT NULL
		12 `sn` tinytext NOT NULL
		13 `ew` tinytext NOT NULL
	*/

		var flatdeg = parseInt(value_f[8]);
		var flatmin = parseInt(value_f[9]);
		var flongdeg = parseInt(value_f[10]);
		var flongmin = parseInt(value_f[11]);
		var tlatdeg = parseInt(value_t[8]);
		var tlatmin = parseInt(value_t[9]);
		var tlongdeg = parseInt(value_t[10]);
		var tlongmin = parseInt(value_t[11]);
		
		var flatloc = flatdeg + (flatmin / 60);
		var flongloc = flongdeg + (flongmin / 60);
		var tlatloc = tlatdeg + (tlatmin / 60);
		var tlongloc = tlongdeg + (tlongmin / 60);
		
		flatloc = flatloc / 180 * 3.1415;
		flongloc = flongloc / 180 * 3.1415;
		tlatloc = tlatloc / 180 * 3.1415;
		tlongloc = tlongloc / 180 * 3.1415;
		
		var co2 = 0;
			
		if (flatloc && flongloc && tlatloc && tlongloc) {
			var e = Math.acos( Math.sin(flatloc) * Math.sin(tlatloc) + Math.cos(flatloc) * Math.cos(tlatloc) * Math.cos(tlongloc - flongloc) );
			var dist = e * 6378.388;
			
			if (plane_type == 1) {
				/*  hinflug  */
				if (dist < 400)
					co2 += dist * 0.2 / 1000;
				if (dist >= 400)
					co2 += (400*0.138 + ((dist - 400)*0.138*3))/1000;
			} else {
				/*  hin- und rueckflug  */
				if (dist < 400)
					co2 += dist * 0.2 / 1000 * 2;
				if (dist >= 400)
					co2 += (400*0.138 + ((dist - 400)*0.138*3))/1000 * 2;
			}

			/*
			co2 = 0;
			if (dist < 400)
				co2 += dist * flugkm / 1000 * rfi;
			if (dist >= 400 && dist < 1600)
				co2 += dist * flugkm500 / 1000 * rfi500;
			if (dist >= 1600)
				co2 += dist * flugkm1600 / 1000 * rfi1600;
			*/
			
			//co2 = co2*plane_count;
			
			result = co2;
			result *= metric;
			result = result.toFixed(precision);
		}

		result_display.innerHTML = result+metric_val;
		document.getElementById('plane_em_id').innerHTML = result;
		return true;
	} else if (errors.length == 0) {
		result = 0;
		result_display.innerHTML = result+metric_val;
		document.getElementById('plane_em_id').innerHTML = result;
		return true;
	} else {
		if (report_error) alert(errors.join("\n"));
	}
	return false;
}

/* calculate the emission for hotels */
function calc_hotel_em(report_error) {
	reset_timer(base_timer);
	if (report_error == null) report_error = true;
	var result = 0;
	var result_display = document.getElementById('hotel_emission');
	var errors = new Array();
	
	var hotel_nights = get_input_val('hotel_nights');
	if (parseInt(hotel_nights)+'' != hotel_nights) errors.push('Ungültiger Wert bei den Hotel-_bernachtungen (Hotel)!');
	hotel_nights = parseInt(hotel_nights);
	var hotel_type = get_input_val('hotel_type');
	
	if (errors.length == 0) {
		result = hotel_nights;
		if ((hotel_type) == '2') result *= 0.029;
		if ((hotel_type) == '3') result *= 0.016;
		if ((hotel_type) == '4') result *= 0.020;
		if ((hotel_type) == '5') result *= 0.015;

		result *= metric;
		result = result.toFixed(precision);
		
		result_display.innerHTML = result+metric_val;
		document.getElementById('hotel_em_id').innerHTML = result;
		return true;
	} else {
		if (report_error) alert(errors.join("\n"));
	}
	return false;
}

/* calculate all emissions */
function calc_full_em() {
	reset_timer(base_timer);
	var result = 0;
	var result_display = document.getElementById('full_em');
	
	var result1 = parseFloat(document.getElementById('car_em_id').innerHTML);
	var result2 = parseFloat(document.getElementById('train_em_id').innerHTML);
	var result3 = parseFloat(document.getElementById('plane_em_id').innerHTML);
	//var result4 = parseFloat(document.getElementById('hotel_em_id').innerHTML);
	result = result1+result2+result3;
	
	result += event_fix_value; /* fixed value of each emission */
	
	result = result.toFixed(precision);
	
	if (result_display) {
	
		values = new Array();
		values.push(result);
		values.push(result1);
		values.push(result2);
		values.push(result3);
		//values.push(result4);
		
		var car_km = get_input_val('car_km');
		if (!car_km) car_km = 0;
		var car_type = get_input_val('car_type');
		if (!car_type) car_type = 'benzin';
		var litres = get_input_val('car_litre');
		if (!litres) litres = 'known';
		if (litres == 'known') litres = get_input_val('car_litre_known');
		if (!litres) litres = 0;
		var car_persons = get_input_val('car_persons');
		if (!car_persons) car_persons = 1;
	
		values.push(car_km);
		values.push(litres);
		values.push(car_persons);
		values.push("'"+car_type+"'");
		
		var train_fv_km = get_input_val('train_fv');
		if (!train_fv_km) train_fv_km = 0;
		var train_nv_km = get_input_val('train_nv');
		if (!train_nv_km) train_nv_km = 0;
		var train_pnv_km = get_input_val('train_pnv');
		if (!train_pnv_km) train_pnv_km = 0;
		var train_bus_km = get_input_val('train_bus');
		if (!train_bus_km) train_bus_km = 0;
	
		values.push(train_fv_km);
		values.push(train_nv_km);
		values.push(train_pnv_km);
		values.push(train_bus_km);
		
		var plane_type = get_input_val('plane_type');
		if (!plane_type) plane_type = 2;
		var plane_code_a = get_input_val('plane_code_a');
		if (!plane_code_a) plane_code_a = '';
		var plane_code_b = get_input_val('plane_code_b');
		if (!plane_code_b) plane_code_b = '';
		var plane_count = get_input_val('plane_count');
		if (!plane_count) plane_count = 1;
	
		values.push(plane_type);
		values.push("'"+plane_code_a+"'");
		values.push("'"+plane_code_b+"'");
		values.push(plane_count);
	
	/*
		var hotel_nights = get_input_val('hotel_nights');
		if (!hotel_nights) hotel_nights = 0;
		var hotel_type = get_input_val('hotel_type');
		if (!hotel_type) hotel_type = 0;
	
		values.push(hotel_nights);
		values.push(hotel_type);
	*/
		//insert_co2_value(values);

		result_display.innerHTML = result+metric_val;
		document.getElementById('user_count').innerHTML = actual_entry_count()+' Emissionen insgesamt';
	}
	replace_kommas();
	
	calc_barometer_by_now();
}

function replace_kommas() {
	document.getElementById('car_emission').innerHTML = document.getElementById('car_emission').innerHTML.replace('.',',');
	document.getElementById('train_emission').innerHTML = document.getElementById('train_emission').innerHTML.replace('.',',');
	document.getElementById('plane_emission').innerHTML = document.getElementById('plane_emission').innerHTML.replace('.',',');
	document.getElementById('hotel_emission').innerHTML = document.getElementById('hotel_emission').innerHTML.replace('.',',');
	document.getElementById('full_em_dis').innerHTML = document.getElementById('full_em').innerHTML.replace('.',',');
	
	//document.getElementById('submit_co2').value = parseFloat(document.getElementById('full_em').innerHTML.replace('&nbsp;kg',''))+' kg';
	document.getElementById('submit_preis').value = parseFloat(document.getElementById('full_em').innerHTML.replace('&nbsp;kg',''))/1000;
	
	var tonnen = parseFloat(document.getElementById('full_em').innerHTML.replace('&nbsp;kg',''))/1000;
	
	document.getElementById('submit_preis').value = (preis_pro_tonne*tonnen).toFixed(2);
	document.getElementById('submit_co2').value = tonnen+' t';
}

/* change the statusbar for the display - nr = which one, all = value of all emissions, value = current emission, curr_pos = moved to curr_pos px left */
function set_barometer( nr, all, value, curr_pos ) {
	reset_timer(base_timer);

	var balken_image_length = 606;
	var total_len = 400;
	var end_part_len = 30;

	var percent = value / (parseFloat(all) / 100);
	
	var len = (parseFloat(total_len) / 100) * percent;
	
	var elem = document.getElementById('bar_'+nr);
	var elem_1 = document.getElementById('bar_'+nr+'_1');
	var elem_2 = document.getElementById('bar_'+nr+'_2');
	elem.style.width = parseInt(len)+'px';
	
	var len_1 = total_len / 2;
	var len_2 = total_len / 2;
	
	len_1 -= curr_pos;
	if (len_1 < 0) len_1 = 0;
	if (len_1 > len) {
		len_1 = len;
		len_2 = 0;
	} else {
		len_2 = len - len_1;
	}
		
	//elem.style.left = curr_pos+'px';
	elem_1.style.width = parseInt(len_1)+'px';
	elem_1.style.backgroundPosition = '-'+curr_pos+'px 0px';
	
	elem_2.style.width = parseInt(len_2)+'px';
	
	var bg_pos = parseInt(0 - balken_image_length + len_2 + (total_len - (curr_pos + len)));
	elem_2.style.backgroundPosition = bg_pos+'px 0px';

	curr_pos += parseInt(len);
	return curr_pos;
}

/* calculates the statusbar for the emissions */
function calc_barometer() {
	reset_timer(base_timer);

	var results = get_results();
	var cnt = results.length;
	
	var car_em = 0;
	var train_em = 0;
	var plane_em = 0;
	var hotel_em = 0;
	var all = 0;
	
	for (var j = 0; j < results.length; j++) {
		all += results[j][0];
		car_em += results[j][1];
		train_em += results[j][2];
		plane_em += results[j][3];
		hotel_em += results[j][4];
	}
	
	var m = (all / results.length).toFixed(precision);
	all = all.toFixed(precision);
	if (cnt > 0) {
		document.getElementById('co2_em_count').innerHTML = cnt;
		document.getElementById('co2_em_all').innerHTML = all+metric_val;
		document.getElementById('co2_em_median').innerHTML = m+metric_val;
	}
	
	if (all == 0) {
		all = 100,
		car_em = 25;
		train_em = 25;
		plane_em = 25;
		hotel_em = 25;
	}
	
	var curr_pos = 0;
	curr_pos = set_barometer( 1, all, car_em, curr_pos );
	curr_pos = set_barometer( 2, all, train_em, curr_pos );
	curr_pos = set_barometer( 3, all, plane_em, curr_pos );
	curr_pos = set_barometer( 4, all, hotel_em, curr_pos );
}

/* clear all fields in the parent innert_content-container */
function clear_fields(object) {
	reset_timer(base_timer);
	while (object.parentNode && !(object.className && object.className.indexOf('inner_content') == 0)) {
		object = object.parentNode;
	}
	if (object.parentNode) {
		var inputs = object.getElementsByTagName('input');
		for (var i = 0; i < inputs.length; i++) {
			var val = inputs[i];
			if (val.type == 'text') {
				val.value = '0';
				if (val.name == 'car_persons') val.value = '1';
				if (val.name == 'plane_count') val.value = '1';
				if (val.name == 'plane_code_a' || val.name == 'plane_code_b') val.value = '';
			}
		}
		inputs = object.getElementsByTagName('select');
		for (var i = 0; i < inputs.length; i++) {
			var val = inputs[i];
			inputs[i].selectedIndex = 0;
			if (val.name == 'plane_airport_a' || val.name == 'plane_airport_b') inputs[i].innerHTML = '';
		}
	}
}

function new_start() {
	window.location = 'index.php';
}

var interval = null;
var timer = null;
function check_on_timer() {
	var timer_frame = document.getElementById('debug');
	if (timer == 0) {
		new_start();
	} else {
		/* set base_timer to -1 to disable the timer */
		if (timer > 0) {
			if (timer_frame) timer_frame.innerHTML = timer;
			timer--;
		}
	}
}
function reset_timer( seconds ){
	timer = seconds;
	check_on_timer();
}
function stop_timer() {
	window.clearInterval(interval);
}
function start_timer() {
	timer = base_timer;
	interval = window.setInterval('check_on_timer()',1000);
}

function calc_barometer_new( vals ) {
	var blength = 400;
	var factor = 400 / (vals[0]+vals[1]+vals[2]+vals[3]+vals[4]);
		
	var values = new Array();
	for (var i = 0; i < vals.length; i++) {
		values.push( vals[i]*factor );
	}

	var curr_pos = 0;
	for (var i = 0; i < values.length; i++) {
		var element = document.getElementById('bar'+(i+1));
		var length = values[i];
		
		element.style.width = values[i]+'px';
		element.style.backgroundPosition = '-'+curr_pos+'px 0px';

		curr_pos += length;
	}


	var results = get_results();
	var cnt = results.length;
	var all = 0;
	for (var j = 0; j < results.length; j++) all += results[j][0];
	
	var m = (all / results.length).toFixed(precision);
	all = all.toFixed(precision);
	if (cnt > 0) {
		document.getElementById('co2_em_count').innerHTML = cnt;
		document.getElementById('co2_em_all').innerHTML = all+metric_val;
		document.getElementById('co2_em_median').innerHTML = m+metric_val;
	}
}

function calc_barometer_by_now() {
	var result1 = event_fix_value;
	var result2 = parseFloat(document.getElementById('car_em_id').innerHTML);
	var result3 = parseFloat(document.getElementById('train_em_id').innerHTML);
	var result4 = parseFloat(document.getElementById('plane_em_id').innerHTML);
	var result5 = parseFloat(document.getElementById('hotel_em_id').innerHTML);
	var vals = new Array();
	vals.push(result1);
	vals.push(result2);
	vals.push(result3);
	vals.push(result4);
	vals.push(result5);
	calc_barometer_new( vals );
}

function update_airport_select( type ) {
	var val = document.getElementById('plane_country_'+type).value;
	var airports = document.getElementById('airports_'+val);
	if (airports) {
		var ap = document.getElementById('plane_airport_'+type);
		//ap.innerHTML = airports.innerHTML;
		ap.innerHTML = '';
		
		for (var i = 0; i < airports.options.length; i++) {
			var port = airports.options[i];
			var op = document.createElement('option');
			op.value = port.value;
			op.innerHTML = port.innerHTML;
			ap.appendChild(op);
		}
		
		
		/*
		var children = ap.childNodes;
		var i = 0;
		for (i = 0; i < children.length; i++) {
			ap.removeChild(children[i]);
		}
		var children = airports.childNodes;
		for (i = 0; i < children.length; i++) {
			var opt = document.createElement('option');
			opt.innerHTML = children[i].innerHTML;
			opt.value = children[i].value;
			ap.appendChild(opt);
		}
		*/
	}
}

function apply_airport_code( type ) {
}

/* returns all co2-values from the database */
function get_results( type ) {
	var result = new Array();
	
	return result;
	
	var rs;
	try {
		rs = db.execute("SELECT * FROM COOL");
	} catch (ex) {
		alert('Error: ' + ex.message);
		return;
    }
	
	if (type == 'all') {
		while (rs.isValidRow()) {
			var return_val = new Array();
			for (var i = 0; i < rs.fieldCount(); i++)
				return_val.push(rs.field(i));
			result.push(return_val);
			rs.next();
		}
	} else {
		while (rs.isValidRow()) {
			result.push(new Array(rs.field(1),rs.field(2),rs.field(3),rs.field(4),rs.field(5)));
			rs.next();
		}
	}
	rs.close();
	return result;
}

/* returns the row of the database-table - ver = a or b for takeoff-airport and landing-airport */
function get_airport( ver ) {

	var code = get_input_val('plane_code_'+ver);
	
	return new Array(0,0,0,0,0,0,0,0,0,0,0,0,0,0);
	
	var rs;
	success = false;
	try {
		//rs = db.execute("SELECT * FROM `tx_co2olcalc_co2ol_airports` WHERE country = '"+country+"' AND city = '"+airport+"'");
		rs = db.execute("SELECT * FROM `tx_co2olcalc_co2ol_airports` WHERE code = '"+code+"'");
		
	} catch (ex) {
		alert('Error: ' + ex.message);
		return false;
    }
	
	var value = new Array();
	if (rs.isValidRow()) {
		for (var i = 0; i < 14; i++) value.push(rs.field(i));
	}
	rs.close();
	
	return value;
}

/* returns the amount of entries in the emission database */
function actual_entry_count() {

	return 0;

	var rs;
	try {
		rs = db.execute("SELECT count(*) FROM COOL");
	} catch (ex) {
		alert('Error: ' + ex.message);
		return;
    }
	
	var value = 0;
	if (rs.isValidRow()) value = rs.field(0);
	rs.close();
	return value;
}

/* inserts the values to the database */
function add_result() {
	var currTime = new Date();
	var email = document.getElementsByName('email')[0];
	email = email.value;
	values.push("'"+currTime+"'");
	values.push(email);
	if (values.length == 21) {
		var valueNames = new Array('co2', 'auto_co2', 'bahn_co2', 'fliegen_co2', 'hotel_co2',
									'auto_km', 'auto_verbrauch', 'auto_mitfahrer', 'auto_diesel_benzin',
									'bahn_fernverkehr', 'bahn_nahverkehr', 'bahn_oepnv', 'bahn_reisebus',
									'fliegen_hin_und_zurueck', 'fliegen_code_von', 'fliegen_code_nach', 'fliegen_anzahl',
									'timestamp', 'email');
		var ajax_adder = "?save=true";
		for (var i = 0; i < values.length; i++) {
			ajax_adder += '&'+valueNames[i]+'='+values[i];
		}
		new Ajax.Updater('invisible_content', 'savedata.php'+ajax_adder, {evalScripts: true, asynchronous: false} );
	} else {
		new_start(); // einfach neu starten ohne zu speichern
	}
}
