function changeText( div2show, text ) {
  // Detect Browser
  var IE = (document.all) ? 1 : 0;
  var DOM = 0;
  if (parseInt(navigator.appVersion) >=5) {DOM=1};

  if (DOM) {
    var viewer = document.getElementById(div2show)
    viewer.innerHTML=text
  }
  else if(IE) {
    document.all[div2show].innerHTML=text
  }
}

function radioValue(rObj) {
	for (var i=0; i<rObj.length; i++) if (rObj[i].checked) return rObj[i].value;
	return false;
}

function getRadio(rObj) {
	for (var i=0; i<rObj.length; i++)
		if (rObj[i].checked)
			return rObj[i];
	return false;
}

function setRadio(rObj, value ) {
	for (var i=0; i<rObj.length; i++)
		if (rObj[i].value == value ) 
			rObj[i].checked = true;
		else
			rObj[i].checked = false;
}

function checkFields( requiredFields ) {
	var ok = true;
	var lnameRegxp = new RegExp(/^([ a-zA-Z.ßöäüÖÄÜ-]+)$/);
	var streeNumberRegxp = new RegExp(/^([0-9]+[a-zA-Z])$/);

	for (var i=0; i < requiredFields.length; i++) {
		templ = document.getElementById(requiredFields[i]+'l');
		if(templ) templ.style.color='';
	};

	for (var i=0; i < requiredFields.length; i++) {
		temp = document.getElementById(requiredFields[i]);
		type = temp.attributes["check"].value
		if(document.getElementById(requiredFields[i]+'l'))
			templ = document.getElementById(requiredFields[i]+'l');
		if(type=="s" && temp.value!="" && temp.value.match(lnameRegxp)) {
		}else if(type=="n" && !isNaN(parseInt(temp.value,10)) ) {
		} else if(type=="sn" && temp.value!="" && temp.value.match(streeNumberRegxp)) {
		} else {
			if(temp.attributes["label"]) templ=document.getElementById(temp.attributes["label"].value);
			if(templ) templ.style.color='red';
			ok = false;
		}
	};
	return ok;
}

function validate() {
	var text = '';
	var ok = true;
	var temp, templ;
	var requiredFields;

	infos = document.getElementById('infos').value;
	

	if(infos=="false") {
		requiredFields = new Array('name','vorname','strasse','nummer','postleitzahl','ort');
		ok = checkFields(requiredFields);

		temp = document.getElementById('eagbsl');
		if( document.getElementById('eagbs').checked==false) {
			temp.style.color='red';
			ok = false;
		}
		else
			temp.style.color='';

		temp = document.getElementById('anredel');
		if( getRadio(document.Rechner['q[ianrede]'])==false) {
			temp.style.color='red';
			ok = false;
		}
		else
			temp.style.color='';

		if(ok!=true) {
			text="<h1>Bitte füllen Sie alle rotmarkierten Felder aus!</h1>"
			changeText('einfo',text);
		}
		return ok;
	}
	else {
		requiredFields = new Array('everbrauch','eflaeche');
		ok = checkFields(requiredFields);

		wasserObj = document.Rechner['q[eboolwasser]'];
		if(!(wasser=radioValue(wasserObj))) ok = false;

		boolwasser = 'false';

		if( wasser=='true') {
			boolwasser = 'true';
			temp = document.getElementById('epersonenzahll');
			if( document.getElementById('epersonenzahl').value=='') {
				temp.style.color='red';
				ok = false;
			}
			else
				temp.style.color='';
		}

		temp = document.getElementById('etypl');
		if( getRadio(document.Rechner['q[etyp]'])==false) {
			temp.style.color='red';
			ok = false;
		}
		else
			temp.style.color='';

		temp = document.getElementById('hausbaul');
		if( getRadio(document.Rechner['q[hausbau]'])==false) {
			temp.style.color='red';
			ok = false;
		}
		else
			temp.style.color='';

		temp = document.getElementById('haustypl');
		if( getRadio(document.Rechner['q[haustyp]'])==false) {
			temp.style.color='red';
			ok = false;
		}
		else
			temp.style.color='';

		verbrauch = document.getElementById('everbrauch').value;
		personenzahl = document.getElementById('epersonenzahl').value;
		flaeche = document.getElementById('eflaeche').value;

		typ = document.Rechner['q[etyp]'];
		if(!(typ=radioValue(typ))) ok = false;

		if(isNaN(parseInt(verbrauch,10))) ok = false;
			if(isNaN(parseInt(flaeche,10)) || flaeche < 1 ) ok = false;

			if(typ=='Heizöl') verbrauch *= 10.08;

			if(wasser=='true') {
				if(isNaN(parseInt(personenzahl,10))) {
					ok = false;
				} else
					wasser = personenzahl * 1000;
			} else {
					wasser = 0;
					personenzahl = 0;
					}
		}

		if(ok) {
			if ( ((verbrauch-wasser)/flaeche) > 700 || ((verbrauch-wasser)/flaeche) < 1 ) {

			alert("Die eingegebenen Werte sind nicht realistisch.\nBitte überprüfen Sie die Angaben.");
			return false;
		}

		document.Rechner['q[verbrauch]'].value = verbrauch;
		document.Rechner['q[flaeche]'].value = flaeche;
		document.Rechner['q[wasser]'].value = wasser;
		document.Rechner['q[boolwasser]'].value = boolwasser;
		document.Rechner['q[personenzahl]'].value = personenzahl;

		// setRadio( wasserObj, 'false' );
		if (temp = getRadio(wasserObj))
			showInfo( temp );

		return true;

	} else {
		text="<h1>Bitte füllen Sie alle rotmarkierten Felder aus!</h1>"
		changeText('einfo',text);
	}

	return false;
}

function showInfo(name) {
	var helptext = name.getAttribute('info');
	var temp;
	changeText("einfo",helptext);
	
	if(name.id=="ebw") {
		if(name.value=='true') {
			temp = document.getElementById("epz");
			temp.style.display = "block";
		}else{
			temp = document.getElementById("epz");
			temp.style.display = "none";
		}
	}

	// if(name.getAttribute('name')=='q[etyp]') {
	// 	if(name.value!='Strom') {
	// 		temp = document.getElementById("wwueh");
	// 		temp.style.display = "block";
	// 	}else{
	// 		temp = document.getElementById("wwueh");
	// 		temp.style.display = "none";
	// 		temp = document.getElementById("epz");
	// 		temp.style.display = "none";
	// 		setRadio( document.Rechner['q[eboolwasser]'], 'false' );
	// 	}		
	// }

	if(name.getAttribute('name')=="q[etyp]") {
		changeText("ebwl","Warmwasserbereitung über Heizung:");
		if(name.value=='Erdgas') {
			changeText("everbrauchl","Erdgasverbrauch:");
			changeText("egasl","kWh/Jahr");
		}else if(name.value=='Strom'){
			changeText("everbrauchl","Stromverbrauch (Wärme):");
			changeText("egasl","kWh/Jahr");
		}else if(name.value=='Fernwärme'){
			changeText("everbrauchl","Fernwärmeverbrauch:");
			changeText("ebwl","Warmwasserbereitung über Fernwärme:");
			changeText("egasl","kWh/Jahr");
		}else{
			changeText("everbrauchl","Heizölverbrauch:");
			changeText("egasl","Liter/Jahr");
		}
	}

	if(name.id=="einfos") {
		if(name.checked==true) {
			temp = document.getElementById("adresse");
			temp.style.display = "block";
		}else{
			temp = document.getElementById("adresse");
			temp.style.display = "none";
		}
	}

}

