given = true;

function validateForm(script, formName) {
	
	var error = '';
	var allNodes = Form.serialize(formName);
	new Ajax.Request(script, {
		method : 'post',
		parameters: allNodes,
		onComplete: function(transport) {
			if (200 == transport.status) {
				if (transport.responseText != '') {
					var error = eval('(' + transport.responseText + ')');
					var error_keys = array_keys(error);
					for (var i = 0; i < error_keys.length; i++) {
						var errElmnt = document.getElementById(''+error_keys[i]+'Info');
						alert(error[error_keys[i]]);
						errElmnt.innerHTML = error[error_keys[i]];
						errElmnt.className = 'rowInfo red';
						document.getElementById(error_keys[i]).focus();						
						return false;
					}
				} else {					
					document.getElementById(formName).submit();
				}
			}
		}
	});
}

function array_keys( input, search_value, strict ) {
    // http://kevin.vanzonneveld.net
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // *     example 1: array_keys( {firstname: 'Kevin', surname: 'van Zonneveld'} );
    // *     returns 1: {0: 'firstname', 1: 'surname'}
 
    var tmp_arr = new Array(), strict = !!strict, include = true, cnt = 0;
 
    for ( key in input ){
        include = true;
        if ( search_value != undefined ) {
            if( strict && input[key] !== search_value ){
                include = false;
            } else if( input[key] != search_value ){
                include = false;
            }
        }
 
        if( include ) {
            tmp_arr[cnt] = key;
            cnt++;
        }
    }
 
    return tmp_arr;
}

function allowSubmit(element) {
    
    if (!given && document.getElementById("agb").checked == true && document.getElementById("datenschutz").checked == true) {
    	document.getElementById("submit").disabled = false;
    } else if (given && document.getElementById("agb").checked == true && document.getElementById("bedingungen").checked == true && document.getElementById("datenschutz").checked == true) {
       	document.getElementById("submit").disabled = false;
    } else {
        document.getElementById("submit").disabled = true;
    }
}

function checkForm() {
    
    if ( (document.getElementById("agb").checked == false && document.getElementById("datenschutz").checked == false) || (given && document.getElementById("bedingungen").checked == false)) {
        
         if(given){
        	alert("Bitte bestätigen Sie alle drei Punkte (AGB, Datenschutz, Bedingungen) durch Klick in die Felder am Ende des Antrags.");
		}else{
        	alert("Bitte bestätigen Sie die beiden Punkte (AGB und Datenschutz) durch Klick in die Felder am Ende des Antrags.");
		}
        return false;
    } else {
        return true;
    }
}

function displayMenu(id) {
    
    var status = document.getElementById(id).style.display;
    
    if (status == 'none') {
        document.getElementById(id).style.display = '';
    } else {
        document.getElementById(id).style.display = 'none';
    }
}

function ferienhausChoice(value) {
	
	if (value == "gebaeude") {
		document.getElementById("gebaeudeRow").style.display = "";
		document.getElementById("hausratRow").style.display = "none";
		// document.getElementById('hausratSB').style.display = 'none';
	} else if (value == "hausrat") {
		document.getElementById("gebaeudeRow").style.display = "none";
		document.getElementById("hausratRow").style.display = "block";
		// document.getElementById('hausratSB').style.display = 'block';
	} else if (value == "beides") {
		document.getElementById("gebaeudeRow").style.display = "block";
		document.getElementById("hausratRow").style.display = "block";
		// document.getElementById('hausratSB').style.display = 'block';
	} else {
		document.getElementById("gebaeudeRow").style.display = "none";
		document.getElementById("hausratRow").style.display = "none";
		// document.getElementById('hausratSB').style.display = 'none';
	}
}

function ferienhausCheck(verm) {
	element = document.getElementById('vermietetInfo');
	if (verm == 'ja') {
		document.getElementById("absenden").disabled = "disabled";
		element.innerHTML = "Leider können wir für Ihr Ferienobjekt kein Angebot unterbreiten, da Sie dieses zu 100% fremd vermieten.";
		element.className = "rowInfo red";
	} else {
		document.getElementById("absenden").disabled = "";
		element.innerHTML = "Keine Eigennutzung und ohne Vermietung an Familie und Freunde";
		element.className = "rowInfo";
	}
}

function number_format (number, decimals, dec_point, thousands_sep) {
  
	var exponent = "";
 	var numberstr = number.toString ();
  	var eindex = numberstr.indexOf ("e");
  	
  	if (eindex > -1) {
    	exponent = numberstr.substring (eindex);
    	number = parseFloat (numberstr.substring (0, eindex));
  	}
  
  	if (decimals != null) {
    	var temp = Math.pow (10, decimals);
    	number = Math.round (number * temp) / temp;
  	}	
  	
  	var sign = number < 0 ? "-" : "";
  	var integer = (number > 0 ? Math.floor (number) : Math.abs (Math.ceil (number))).toString ();
  
  	var fractional = number.toString ().substring (integer.length + sign.length);
  	dec_point = dec_point != null ? dec_point : ".";
  	fractional = decimals != null && decimals > 0 || fractional.length > 1 ? (dec_point + fractional.substring (1)) : "";
  	
  	if (decimals != null && decimals > 0) {
    	for (i = fractional.length - 1, z = decimals; i < z; ++i)
      		fractional += "0";
  	}
  
  	thousands_sep = (thousands_sep != dec_point || fractional.length == 0) ? thousands_sep : null;
  	if (thousands_sep != null && thousands_sep != "") {
		for (i = integer.length - 3; i > 0; i -= 3)
      		integer = integer.substring (0 , i) + thousands_sep + integer.substring (i);
  		}
  
  	return sign + integer + fractional + exponent;
}

function get_beginn() {
	var elements = document.getElementsByName("versicherungsbeginn");
	var jetzt = new Date();

	for (i=0; i<elements.length; i++) {
		if (elements[i].checked == true) {
			return elements[i].value;
		}
	}	
	return jetzt.getFullYear();
}

function popup(url, width, height) {
 	fenster = window.open(url, "Popupfenster", "width=" + width + ", height=" + height + ", scrollbars=yes");
 	fenster.focus();
 	return false;
}

function utf8_encode ( string ) {
    // http://kevin.vanzonneveld.net
    // +   original by: Webtoolkit.info (http://www.webtoolkit.info/)
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +   improved by: sowberry
    // *     example 1: utf8_encode('Kevin van Zonneveld');
    // *     returns 1: 'Kevin van Zonneveld'
    
    string = string.replace(/\r\n/g,"\n");
    var utftext = "";
    var start, end;
 
    start = end = 0;
    for (var n = 0; n < string.length; n++) {
        var c = string.charCodeAt(n);
        var enc = null;
 
        if (c < 128) {
            end++;
        } else if((c > 127) && (c < 2048)) {
            enc = String.fromCharCode((c >> 6) | 192) + String.fromCharCode((c & 63) | 128);
        } else {
            enc = String.fromCharCode((c >> 12) | 224) + String.fromCharCode(((c >> 6) & 63) | 128) + String.fromCharCode((c & 63) | 128);
        }
        if (enc != null) {
            if (end > start) {
                utftext += string.substring(start, end);
            }
            utftext += enc;
            start = end = n+1;
        }
    }
    
    if (end > start) {
        utftext += string.substring(start, string.length);
    }
 
    return utftext;
}

// Automatische Ergänzung des flexiblen Textes / Peter Schories / 27.07.2009
function includeText(name,schlagwort) {
	if(schlagwort != ''){
		var param = '?name=' + name + '&schlagwort=' + schlagwort + '';
	}else{
		var param = '?name=' + name + '';
	}
	new Ajax.Request('getNews.php', {
		method : 'get',
		parameters:	param,	
		onComplete: function(transport) {
			if (200 == transport.status) {
				if (transport.responseText != '') {
					var ary = eval('(' + transport.responseText + ')');
					document.getElementById('text').innerHTML = ary['text'];
					document.getElementById('date1').innerHTML = ary['date1'];
					document.getElementById('date2').innerHTML = ary['date2'];
				} 
			}
		}
	});
}

// Überprüfung der Anzahl ausgewählter Tarife im Leistungsvergleich / Peter Schories / 08.10.2009
// var zeile - Tabellenzeile der Ergebnisliste (Variable $tr)
// var rechner - Dateiname des Vergleichrechners
function checkVL(zeile,rechner) {
	// Anzahl der Zeilen feststellen
	gesamtAnz = document.getElementsByName('info[]').length;
	// Anzahl der ausgewählten Tarife feststellen
	anz = 0;
	for (i = 0; i < gesamtAnz; ++i){
	  if (document.getElementById('info_' + i).checked == true){
		anz = anz + 1;
	  }
	}
	// Fehlermeldung, wenn kein Tarif ausgewählt ist
	if(anz == 0){
		alert('Für den Leistungsvergleich muss mindestens ein Tarif ausgewählt sein.');
	}
	// Fehlermeldung bei mehr als 3 ausgewählten Tarifen
	if(anz >= 4){
		// Auswahlfenster
		Check = confirm("Es können nur bis zu 3 Tarife verglichen werden. Möchten Sie den Leistungsvergleich mit den bereits vorher ausgewählten Tarifen starten?");		
		if (Check == true){
			// Start des VL
			document.getElementById('info_' + zeile).checked = false;
			var compare_popup = window.open('', 'Compare', 'width=900, height=850, resizable=no, scrollbars=yes');
			document.ergebnisForm.setAttribute('target', 'Compare', 0);
			document.ergebnisForm.setAttribute('action', './' + rechner + '?action=compareRate', 0);
			document.ergebnisForm.setAttribute('action', './' + rechner + '?action=compareRate', 0);
			document.ergebnisForm.submit();compare_popup.focus();
		}
	}
}
