function createGuiCalc1(paramMode) {
	
		document.getElementById("rechner1").innerHTML +=
			'<label for="weCount1" id="weCount1Label1">Anzahl der Wohneinheiten</label>'
			+ '<input type="text" id="weCount1" value="" /><br style="clear:both;" />'
			
			+ '<label for="binCount1" id="binCount1Label">Anzahl der Restmüllbehälter</label>'
			
			+ '<select id="binCount1" onchange="document.getElementById(\'binArea1\').removeChild(document.getElementById(\'brclear1\'));editBinCount1(this.value);">'
			+ '<option value="1">1</option>'
			+ '<option value="2">2</option>'
			+ '<option value="3">3</option>'
			+ '<option value="4">4</option>'
			+ '<option value="5">5</option>'
			+ '<option value="6">6</option>'
			+ '<option value="7">7</option>'
			+ '<option value="8">8</option>'
			+ '<option value="9">9</option>'
			+ '<option value="10">10</option>'
			+ '</select>'
			
			+ '<div id="binArea1">'
			+ '</div>'
			
			+ '<img onclick="calculateCalc1();return false;" src="/images/ausrechnen.png" id="ausrechnen_button" onmouseover="this.src=\'images/ausrechnen_hover.png\'" onmouseout="this.src=\'images/ausrechnen.png\'" />';
}

/* Liest die verfügbaren Größen aus und erstellt ein Auswahlfeld
 */
function showSizes1 (binNumber, cityIndex) {
	
	if(binCount1 < binNumber) binCount1 = binNumber;
	
	var elSelect = document.createElement("select");
	elSelect.id = "sizes1_" + binNumber;
	elSelect.className = "sizes";
	elSelect.onchange = function() { showIntervals1(binNumber, cityIndex, elSelect.value); };
	
	
	var elOption = document.createElement("option");
	elOption.innerHTML = "Behältergröße";
	elOption.value = -1;
	elSelect.appendChild(elOption);
	
	for (var i = 0; i < values[cityIndex].length; i++) {
		elOption = document.createElement("option");
		elOption.innerHTML = values[cityIndex][i][0] + " Liter";
		elOption.value = i;
		elSelect.appendChild(elOption);
	}
	
	document.getElementById("bin1_" + binNumber).appendChild(elSelect);
	
}

/*  Wird aufgerufen, sobald die Anzahl der Behälter verändert wird
 *  entfernt oder fügt neue Auswahlfelder hinzu und setzt die
 *  globale Variable count.
 */
 
function editBinCount1(count_str) {
	
	count = Number(count_str);
	
	if(activeCityIndex > -1) {
		var i = 0;
		
		if(binCount1 < count) {
			
			i = binCount1;
			for (; i < count; i++) {
				
				var divNumber = i;
				divNumber++; //Muss Zahl sein, deshalb ++
				
				var elDiv = document.createElement("div");
				elDiv.id = "bin1_" + divNumber;
				elDiv.className = "bin";
				document.getElementById("binArea1").appendChild(elDiv);
				showSizes1(divNumber, activeCityIndex);
			}
			var brElement = document.createElement("br");
			brElement.id = "brclear1";
			brElement.className = "clear";
			document.getElementById("binArea1").appendChild(brElement);
			
		} else {
			
			i = binCount1;
			for (; i > count; i--) {
				document.getElementById("binArea1").removeChild(document.getElementById("binArea1").lastChild);
			}
			var brElement = document.createElement("br");
			brElement.id = "brclear1";
			brElement.className = "clear";
			document.getElementById("binArea1").appendChild(brElement);
			
			
		}
		
		binCount1 = count;
	}
	
}


/* Zeigt die möglichen Leerungs-Intervalle zur jeweiligen
 * Behältergröße
 */
function showIntervals1 (binNumber, cityIndex, sizeIndex) {
	var elSelect;
	
	if(document.getElementById("intervals1_" + binNumber)) {
		elSelect = document.getElementById("intervals1_" + binNumber);
	} else {
		elSelect = document.createElement("select");
		elSelect.id = "intervals1_" + binNumber;
		elSelect.className = "intervals";
		document.getElementById("bin1_" + binNumber).appendChild(elSelect);
	}
	
	while (elSelect.hasChildNodes()) {
		elSelect.removeChild(elSelect.firstChild);
	}
	
	if(sizeIndex != -1) {
		var elOption;
		
		if(values[cityIndex][sizeIndex][8] != -1) {
			elOption = document.createElement("option");
			elOption.innerHTML = "3x wöchentlich";
			elOption.value = 8;
			elSelect.appendChild(elOption);
		}
		if(values[cityIndex][sizeIndex][1] != -1) {
			elOption = document.createElement("option");
			elOption.innerHTML = "2x wöchentlich";
			elOption.value = 1;
			elSelect.appendChild(elOption);
		}
		if(values[cityIndex][sizeIndex][2] != -1) {
			elOption = document.createElement("option");
			elOption.innerHTML = "1x wöchentlich";
			elOption.value = 2;
			elSelect.appendChild(elOption);
		}
		if(values[cityIndex][sizeIndex][3] != -1) {
			elOption = document.createElement("option");
			elOption.innerHTML = "14-tägig";
			elOption.value = 3;
			elSelect.appendChild(elOption);
		}
		if(values[cityIndex][sizeIndex][4] != -1) {
			elOption = document.createElement("option");
			elOption.innerHTML = "1x wöchentlich (Vollservice)";
			elOption.value = 4;
			elSelect.appendChild(elOption);
		}
		if(values[cityIndex][sizeIndex][5] != -1) {
			elOption = document.createElement("option");
			elOption.innerHTML = "1x wöchentlich (Teilservice)";
			elOption.value = 5;
			elSelect.appendChild(elOption);
		}
		if(values[cityIndex][sizeIndex][6] != -1) {
			elOption = document.createElement("option");
			elOption.innerHTML = "14-tägig (Vollservice)";
			elOption.value = 6;
			elSelect.appendChild(elOption);
		}
		if(values[cityIndex][sizeIndex][7] != -1) {
			elOption = document.createElement("option");
			elOption.innerHTML = "14-tägig (Teilservice)";
			elOption.value = 7;
			elSelect.appendChild(elOption);
		}
		
		
		var elDivFrankfurt;
		if(document.getElementById("frankfurt1_" + binNumber)) {
			elDivFrankfurt = document.getElementById("frankfurt1_" + binNumber);
			
			while (elDivFrankfurt.hasChildNodes()) {
				elDivFrankfurt.removeChild(elDivFrankfurt.firstChild);
			}
		} else {
			elDivFrankfurt = document.createElement("div");
			elDivFrankfurt.id = "frankfurt1_" + binNumber;
			
			document.getElementById("bin1_" + binNumber).appendChild(elDivFrankfurt);
		}
		
		if(cityIndex == 3) {
			
			var elInputDistanceLabel = document.createElement("label");
			elInputDistanceLabel.id = "distanceLabel1_" + binNumber;
			elInputDistanceLabel.className = "distanceLabel";
			elInputDistanceLabel.htmlFor = "distance1_" + binNumber;
			elInputDistanceLabel.innerHTML = "Behältertransportstrecke (in m)";
			elDivFrankfurt.appendChild(elInputDistanceLabel);
			
			var elInputDistance = document.createElement("input");
			elInputDistance.id = "distance1_" + binNumber;
			elInputDistance.className = "distance";
			elInputDistance.type = "text";
			elDivFrankfurt.appendChild(elInputDistance);
			
			var brclear = document.createElement("br");
			brclear.className = "clear";
			elDivFrankfurt.appendChild(brclear);
			
			if(values[activeCityIndex][sizeIndex][0] <= 240) {
				var elInputStepLabel = document.createElement("label");
				elInputStepLabel.id = "stepLabel1_" + binNumber;
				elInputStepLabel.className = "stepLabel";
				elInputStepLabel.htmlFor = "step1_" + binNumber;
				elInputStepLabel.innerHTML = "Stufe vorhanden?";
				elDivFrankfurt.appendChild(elInputStepLabel);
				
				var elInputStep = document.createElement("input");
				elInputStep.id = "step1_" + binNumber;
				elInputStep.className = "step";
				elInputStep.type = "checkbox";
				elDivFrankfurt.appendChild(elInputStep);
			}
			
		}
		
		
	}
	
}

/* Berechnet die verlangten Werte
 * 
 */
function calculateCalc1() {
	
	if(checkFieldsCalc1()) {
		
		var amount = 0;
		var volume = 0;
		
		/* Wohneinheiten-Anzahl grundsätzlich nur im Modus 1,
		 * nur bei Frankfurt auch in Modus 2.
		 */
		var we = document.getElementById("weCount1").value;
			
		// Sonderfall Frankfurt: Grundgebühr 42 EUR pro WE
		if(activeCityIndex == 3) {
			amount = amount + (we * 42);
		}
	
		for (var i = 1; i <= binCount1; i++) {
			var sizeIndex = document.getElementById("sizes1_" + i).value;
			var intervalIndex = parseInt(document.getElementById("intervals1_" + i).value, 10);
			
			amount = amount + values[activeCityIndex][sizeIndex][intervalIndex];
			
			//Sonderfall für Frankfurt
			if(activeCityIndex == 3) {
				var distance = parseInt(document.getElementById("distance1_" + i).value, 10);
	      
				// Intervall für den aktuellen Behälter ermitteln
				var multiplier;
				if (intervalIndex == 1) {
					// 2x wöchentlich
					multiplier = 2;
				} else if (intervalIndex == 2) {
					// 1x wöchentlich
					multiplier = 1;
				} else if (intervalIndex == 8) {
					// 3x wöchentlich
					multiplier = 3;
				}
	
				if(values[activeCityIndex][sizeIndex][0] <= 240) {
					//Rechnung für Behälter bis 240 Liter
	
					if(distance >= 15 && distance <= 30) {
						//bei einer Strecke von 15 - 30 Metern Aufschlag von 34 Euro / Behälter
						amount = amount + (34 * multiplier);
					} else if (distance > 30) {
						//bei einer Strecke von mehr als 30 Metern Aufschlag von
						//134 Euro zzgl. 134 Euro pro angefangene 15 Meter
						amount = amount + ((Math.ceil(distance / 15) - 2) * 134 * multiplier);
					}
					
					if(document.getElementById("step1_" + i).checked) {
						//6 Euro für eine Stufe bei Behältern bis 240 Litern
						amount = amount + (6 * multiplier);
					}
					
				} else {
					//Rechnung für Behälter mit mehr als 240 Litern
					
					if(distance >= 15 && distance <= 30) {
						//bei einer Strecke von 15 - 30 Metern Aufschlag von 160 Euro / Behälter
						amount = amount + (160 * multiplier);
					} else if (distance > 30) {
						//bei einer Strecke von mehr als 30 Metern Aufschlag von
						//320 Euro zzgl. 320 Euro pro angefangene 15 Meter
						amount = amount + ((Math.ceil(distance / 15) - 2) * 320 * multiplier);
					}
					
				}
				
			}
			
			
			if (intervalIndex == 1) {
				volume = volume + (values[activeCityIndex][sizeIndex][0] * 2);
			} else if (intervalIndex == 2) {
				volume = volume + (values[activeCityIndex][sizeIndex][0]);
			} else if (intervalIndex == 3) {
				volume = volume + (values[activeCityIndex][sizeIndex][0] / 2);
			} else if (intervalIndex == 4) {
				volume = volume + (values[activeCityIndex][sizeIndex][0]);
			} else if (intervalIndex == 5) {
				volume = volume + (values[activeCityIndex][sizeIndex][0]);
			} else if (intervalIndex == 6) {
				volume = volume + (values[activeCityIndex][sizeIndex][0] / 2);
			} else if (intervalIndex == 7) {
				volume = volume + (values[activeCityIndex][sizeIndex][0] / 2);
			} else if (intervalIndex == 8) {
				volume = volume + (values[activeCityIndex][sizeIndex][0] * 3);
			}
	
		}
		
		
		vergleichswert = volume / we * 100 / compValues1[activeCityIndex];
		
		if(vergleichswert >= 100) {
			vergleichswertText = number_format((vergleichswert - 100), 0, "", ".") + "% über "
			document.getElementById("ray_pfeil1").src = "/images/pfeil_rot.png";
		} else {
			vergleichswertText = number_format((100 - vergleichswert), 0, "", ".") + "% unter "
			document.getElementById("ray_pfeil1").src = "/images/pfeil_gruen.png";
		}
		
		if((vergleichswert >= 95) && (vergleichswert <= 105)) {
			document.getElementById("ray_pfeil1").src = "/images/pfeil_grau.png";
		}
		
		resultString = "Ihre jetzigen Restmüllgebühren pro Jahr belaufen sich für die gesamte Liegenschaft auf ";
		resultString += number_format(amount, 2, ",", ".") + " Euro. Hierbei liegen Sie mit " + number_format((volume / we), 0, "", ".") + " Liter Restmüll je Wohneinheit ";
		resultString += vergleichswertText + "dem für Ihre Stadt vergleichbaren Wert.";

		
		document.getElementById("result1").innerHTML = resultString;
		
		var pdfLink = document.createElement("a");
		pdfLink.innerHTML = "Ausgabe als PDF";
		pdfLink.onclick = function(){createPDF1(number_format(amount, 2, ",", "."), number_format((volume / we), 0, "", "."), vergleichswertText)};

/*		pdfLink.type = "button";
		pdfLink.value = "Als PDF speichern"*/;
		pdfLink.className = "pdflink";
		document.getElementById("result1").appendChild(pdfLink);
		
		document.getElementById("resultBox1").style.display = "block";
		$("div#rechner1").corner("cc:#f4f4f4 bottom");
// 		document.getElementById("ray_pfeil1").style.left = "0px";
		
		$(document).ready(function(){
			$("#footer_white").ScrollTo(800);
			if (vergleichswert <= 200) {
			  $("img#ray_pfeil1").animate({
			    left: runden(vergleichswert * 1.25) + "px"
			  }, 2000);
			   
			} else {
			  $("img#ray_pfeil1").animate({
			    left: "260px"
			  }, 2000);
			  window.setTimeout("document.getElementById('ray_pfeil1').src = '/images/pfeil_anim.gif';", 2000);
			}

		});


		
	}
	
}

/* Kontrolliert die notwendigen Formularfelder vor dem Berechnen
 * und gibt ggf. eine Fehlermeldung aus
 */
function checkFieldsCalc1() {
	
	if(document.getElementById("city").value == "-1") {
		errorMessage("Bitte wählen Sie zunächst Ihre Stadt aus.");
		return false;
	}
	
	//Überprüfung der Anzahl der Wohneinheiten (nur Modus 1 oder Frankfurt in beiden Modi)
	var checkWeCount = Number(document.getElementById("weCount1").value);
	var tester = /[^0-9]/;
	
	if((checkWeCount > 0) && !(isNaN(checkWeCount)) && !(tester.test(String(checkWeCount)))) {
		// alles in Ordnung
	} else if(checkWeCount <= 0 || document.getElementById("weCount1").value == "") {
		errorMessage("Bitte tragen Sie mindestens eine Wohneinheit ein.");
		return false;
	} else {
		errorMessage("Bitte geben Sie die Anzahl der Wohneinheiten ausschließlich in Ziffern (0-9) ein.");
		return false;
	}
	
	
	for (var i = 1; i <= binCount1; i++) {
		if(document.getElementById("sizes1_" + i).value == -1) {
			errorMessage("Bitte wählen Sie für jeden Restmüllbehälter eine Größe, z.B. \"" + values[activeCityIndex][0][0] + " Liter\" oder stellen Sie die Anzahl der Restmüllbehälter niedriger.");
			return false;
		}
	}
	
	/* Wenn bis hier noch nicht mit "return false;" aus der Funktion gesprungen wurde
	 * sind alle Felder in Ordnung und es wird "true" zurückgegeben
	 */
	return true;
}

function createPDF1(result1, result2, result3) {
	var mode = 1;
	
	//Werte auslesen und speichern
	var pdfvalue_city = document.getElementById("city").options[document.getElementById("city").selectedIndex].text;
	var pdfvalue_binCount1 = document.getElementById("binCount1").options[document.getElementById("binCount1").selectedIndex].text;
	var pdfvalue_name = document.getElementById("name").value
	var pdfvalue_mail = document.getElementById("mail").value
	var pdfvalue_street = document.getElementById("street").value
	
	var pdfvalue_size;
	var pdfvalue_rate;
	
	
	var pdf_urlString = "cgi/pdf.cgi?mode=" + mode + "&result1=" + result1 + "&result2=" + result2 + "&result3=" + result3 + "&city=" + pdfvalue_city + "&binCount=" + pdfvalue_binCount1 + "&name=" + pdfvalue_name + "&mail=" + pdfvalue_mail + "&strasse=" + pdfvalue_street;
	
	for(var i = 1; i <= binCount1; i++) {
		pdf_urlString += "&size" + i + "=" + document.getElementById("sizes1_" + i).options[document.getElementById("sizes1_" + i).selectedIndex].text;
		pdf_urlString += "&interval" + i + "=" + document.getElementById("intervals1_" + i).options[document.getElementById("intervals1_" + i).selectedIndex].text;
		
		if(activeCityIndex == 3) {
			pdf_urlString += "&distance" + i + "=" + document.getElementById("distance1_" + i).value;
			if(document.getElementById("step1_" + i)) {
				if(document.getElementById("step1_" + i).checked) {
					pdf_urlString += "&step" + i + "=1";
				} else {
					pdf_urlString += "&step" + i + "=0";
				}
			} else {
				pdf_urlString += "&step" + i + "=0";
			}
		}
		
	}
	
	pdf_urlString += "&weCount=" + document.getElementById("weCount1").value;
	
	window.open(pdf_urlString);
	
}
