
function resetForm() {
  resetEditors();
  document.forms[0].reset();
  return false;
}

function checkDate(fld) {
	currDate = new Date();
	year = fld.substr(6,4);
	month = fld.substr(3,2) - 1;
	day = fld.substr(0,2);
	formDate = new Date(year, month, day);
	diffDate = currDate - formDate;
	diffDays = Math.round(diffDate/(1000*60*60*24));
	
	currYear = currDate.getYear() + 1900;
	diffYears = currYear - year;
	
	if ((diffYears < 14) || (diffYears > 99)) {
		errorDate = "Geburtsdatum: Sie müssen zwichen 14 und 99 Jahre alt sein.\n";
		return false;
	}	else {
		return true;
	}
}

function isEmail(str) {
  var supported = 0;
  if (window.RegExp) {
    var tempStr = "a";
    var tempReg = new RegExp(tempStr);
    if (tempReg.test(tempStr)) supported = 1;
  }
  if (!supported) 
    return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
  var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
  var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");
  return (!r1.test(str) && r2.test(str));
}

function checkPLZ(fld) {
	var regDigits = /[0-9]{5}/;
	
	if ((!regDigits.test(fld)) || (fld.length > 5)) {
		errorPLZ = "PLZ: " + fld + " ist keine gültige PLZ.\n";
		return false;
	}	else {
		return true;
	}
}

function checkPhone(fld) {
	var telnr = /^\+?[0-9 ()-]+[0-9]$/  ;
	
	if (!telnr.test(fld)) {
		errorPhone = "Telefonnummer: Es sind nur Zahlen 0-9 sowie die Zeichen  +/- und Leerzeichen zugelassen.\n";
		return false;
	}	else {
		return true;
	}
}

function checkFax(fld) {
	var telnr = /^\+?[0-9 ()-]+[0-9]$/  ;
	
	if (!telnr.test(fld)) {
		errorFax = "Telefaxnummer: Es sind nur Zahlen 0-9 sowie die Zeichen  +/- und Leerzeichen zugelassen.\n";
		return false;
	}	else {
		return true;
	}
}

function validateForm() {

	var valid = 1;
	var bgBad = "#FBEEF1";
	var tekst = "Bitte ergänzen Sie noch folgende Felder:\n\n";

	errorEmail = "";
	errorDate = "";
	errorPLZ = "";
	errorPhone = "";
	errorFax = "";
	
	f = document.forms.anfrageForm;
	
	for (i=0;i<f.elements.length;i++) {
		if (f.elements[i].type == "text") setColor(f.elements[i],'#FFFFFF');
	}  

	for (var i = 0; i < arguments.length; i++) {

		if ((f.elements[arguments[i]].type == "text") && (f.elements[arguments[i]].name != "telefaxnummer")) {
			if (f.elements[arguments[i]].value == "") {
				valid  = 0;
				tekst += " - "+arguments[i].substr(0,1).toUpperCase()+arguments[i].substr(1)+"\n";
				setCSS (f.elements[arguments[i]]);
			}
		}

		if (f.elements[arguments[i]].type == "select-multiple") {
			hasSelections = 0;
			for(var j = 0; j < f.elements[arguments[i]].options.length; j++) {
				if (f.elements[arguments[i]].options[j].selected)	{
					hasSelections++;
				}
			}
			if (hasSelections == 0) {
				valid  = 0;
				tekst += ' - '+arguments[i].substr(0,1).toUpperCase()+arguments[i].substr(1)+"\n";;
			}
		}

		if (typeof FCKeditorAPI != "undefined")	{
			for (var sEditorName in FCKeditorAPI.__Instances) {
				if (sEditorName == arguments[i]) {
					if (FCKeditorAPI.__Instances[sEditorName].GetHTML() == "") {
						valid = 0;
						tekst += " - "+arguments[i].substr(0,1).toUpperCase()+arguments[i].substr(1)+"\n";
					}
				}
			}
		}
		
		if ((f.elements[arguments[i]].name == "geburtsdatum") && (f.elements[arguments[i]].value != "")) {
			errorDate = "";
			if (!checkDate(f.elements[arguments[i]].value)) {
				setCSS (f.elements[arguments[i]]);
			} else {
				setCSSnormal(f.elements[arguments[i]]);
			}
		}
		
		if ((f.elements[arguments[i]].name == "email") && (f.elements[arguments[i]].value != "")) {
			errorEmail = "";
			email = isEmail(f.elements[arguments[i]].value);
			if (!email) {
				setCSS (f.elements[arguments[i]]);
				errorEmail = "E-mail: Die angegebene E-Mail Adresse ist ungültig.\n";
			} else {
				errorEmail = "";
				setCSSnormal(f.elements[arguments[i]]);
			}
		}

		if ((f.elements[arguments[i]].name == "plz") && (f.elements[arguments[i]].value != "")) {
			errorPLZ = "";
			if (!checkPLZ(f.elements[arguments[i]].value)) {
				setCSS (f.elements[arguments[i]]);
			} else {
				setCSSnormal(f.elements[arguments[i]]);
			}
		}

		if ((f.elements[arguments[i]].name == "telefonnummer") && (f.elements[arguments[i]].value != "")) {
			errorPhone = "";
			if (!checkPhone(f.elements[arguments[i]].value)) {
				setCSS (f.elements[arguments[i]]);
			} else {
				setCSSnormal(f.elements[arguments[i]]);
			}
		}

		if (f.elements[arguments[i]].name == "telefaxnummer") {
			errorFax = "";
			if (f.elements[arguments[i]].value != "") {
				if (!checkFax(f.elements[arguments[i]].value)) {
					setCSS (f.elements[arguments[i]]);
				} else {
					setCSSnormal(f.elements[arguments[i]]);
				}
			} else {
				setCSSnormal(f.elements[arguments[i]]);
			}
		}

		
	} //End for

	/*
	if (f.anrufen.checked) {
	if (f.fon.value == "") {
		valid  = 0;
		tekst += " - Fon  \n";
		setColor (f.fon, bgBad);
	}
	}    
	*/

	if (valid) {
		f.submit();
		return true;
	} else {
		tekst += "\n\n";
		tekst += errorDate;
		tekst += errorEmail;
		tekst += errorPLZ;
		tekst += errorPhone;
		tekst += errorFax;
		tekst = tekst.replace('Plz','PLZ');
		tekst = tekst.replace('Versicherungsbeginn','Gewünschter Versicherungsbeginn');
		tekst = tekst.replace('Email','E-Mail-Adresse');
		alert (tekst + "\n \n");
		return false;
	}
}

function setColor(el, bg) {
  if (el.style) el.style.backgroundColor = bg;
}

function setCSS(el) {
	if (el) el.className = 'inputTextWarn';
}

function setCSSnormal(el) {
	if (el) el.className = 'inputText';
}

function chooseProduct(prod) {
	f = document.forms.anfrageForm;
	
	for (var i = 0; i<f.elements.length; i++) {
		
		delete_cookie ( f.elements[i].name )
		
		if ((f.elements[i].type == 'select-one')) {
			val = f.elements[i].selectedIndex;
			document.cookie = f.elements[i].name + "=" + val;
		}
		if ((f.elements[i].type == 'text') && (f.elements[i].value != "")) {
			val = f.elements[i].value;
			document.cookie = f.elements[i].name + "=" + val;
		}
		if ((f.elements[i].type == 'textarea') && (f.elements[i].value != "")) {
			val = f.elements[i].value;
			document.cookie = f.elements[i].name + "=" + val;
		}
	}
	loc = this.location.protocol + "//" + this.location.hostname + this.location.pathname + "?prod=" + prod.selectedIndex;
	window.location = loc;
}

function delete_cookie ( cookie_name )
{
  var cookie_date = new Date ( );  // current date & time
  cookie_date.setTime ( cookie_date.getTime() - 1*24*60*60*1000 );
  document.cookie = cookie_name + "=; expires=" + cookie_date.toGMTString();
}


function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}

function emulateDisabled(selectBox) {

	for (var i=0, option; option = selectBox.options[i]; i++) {
		if (option.disabled) {
			option.style.color = "#c8c8c8";
		}else{
			option.style.color = "menutext";
		}
	}
}

function restoreEmulateDisabled(selectBox) {
	
	selDis = false;
	for (var i=0, option; option = selectBox.options[i]; i++) {
		if(option.selected && option.disabled){
//			option.selected=false;
			selectBox.selectedIndex = window.select_current[selectBox.id];
			selDis = true;
		}
	}
	if (!selDis) {
		chooseProduct(selectBox);
	}
}

function addEmulation(selectBox){

	window.select_current = new Array();
	selectBox.onfocus = function(){ window.select_current[this.id] = this.selectedIndex; }
	selectBox.onchange = function(){ restoreEmulateDisabled(this); }
}


window.onload = function() {

	if (document.getElementsByTagName) {
	
		var s = document.getElementsByTagName("select");

		if (s.length > 0) {
			window.select_current = new Array();
			
			for (var i=0, select; select = s[i]; i++) {
				if (select.name == 'produkt') {
					select.onfocus = function(){ window.select_current[this.id] = this.selectedIndex; }
					select.onchange = function(){ restoreEmulateDisabled(this); }
					emulateDisabled(select);
				}
			}
		}
	}
}

