if(typeof(DD)=="undefined"){
	var DD = new Object();
	DD.validation = new Object();
}

DD.validation.checkNLForm=function(callObj){
	if(chkEmail(callObj.nl_usr_email,"E-Mail-Adresse","die")==false)return false;
}

DD.validation.clearValue=function(callObj,callDef,callAct){
	callObj.value=((callAct && callObj.value==callDef) ? "" : ((!callAct && !callObj.value) ? callDef : callObj.value));
}
DD.validation.checkRegistrationForm = function(callObj,callAuto,isAdopt){
	if(chkText(callObj.web_usr_firstname,"Vornamen","den")==false)return false;
	if(chkText(callObj.web_usr_lastname,"Nachnamen","den")==false)return false;
	if(chkText(callObj.web_usr_street,"Strasse","die")==false)return false;
	if(chkNumber(callObj.web_usr_zip,"Postleitzahl","die")==false)return false;
	if(chkText(callObj.web_usr_city,"Ort","den")==false)return false;
	if(chkEmail(callObj.web_usr_email,"E-Mail-Adresse")==false)return false;
	if(chkRadio(callObj.web_usr_donation_location)==false){
		alert("Bitte geben Sie an, wo Sie Ihre Spende spenden möchten!")
		callObj.web_usr_donation_location[0].focus();
		return false;
	}
	
	if(isAdopt){
		if(chkText(callObj.web_usr_donation_to_firstname,"Vornamen der geschenkerhaltenden Person","den")==false)return false;
		if(chkText(callObj.web_usr_donation_to_lastname,"Nachnamen der geschenkerhaltenden Person","den")==false)return false;
		if(chkText(callObj.web_usr_donation_to_street,"Strasse der geschenkerhaltenden Person","die")==false)return false;
		if(chkNumber(callObj.web_usr_donation_to_zip,"Postleitzahl der geschenkerhaltenden Person","die")==false)return false;
		if(chkText(callObj.web_usr_donation_to_city,"Ort der geschenkerhaltenden Person","den")==false)return false;
		if(chkEmail(callObj.web_usr_donation_to_email,"E-Mail-Adresse der geschenkerhaltenden Person")==false)return false;
	
	}
	if(chkRadio(callObj.web_usr_payment_option)==false){
		alert("Bitte wählen Sie eine Zahlungsform aus!");
		callObj.web_usr_payment_option[0].focus();
		return false;
	}
	var whichPayment=0;
	for(var p=0;p<callObj.web_usr_payment_option.length;p++){
		if(callObj.web_usr_payment_option[p].checked){
			whichPayment=callObj.web_usr_payment_option[p].value;
			break;
		}
	}
	
	if(whichPayment==1){
		var BankAccountNumber_field=false;
		var BankAccountCode_field=false;
		var BankAccountInstitution_field=false;
		var BankAccountValidityMonth_field=false;
		var BankAccountValidityYear_field=false;
		var allBankAccountFieldsFound=false;
		for(var f=0;f<callObj.elements.length;f++){
			if(callObj.elements[f].name.indexOf("web_usr_bankaccount_number_",0)!=-1){BankAccountNumber_field=callObj.elements[f];}
			if(callObj.elements[f].name.indexOf("web_usr_bankaccount_code_",0)!=-1){BankAccountCode_field=callObj.elements[f];}
			if(callObj.elements[f].name.indexOf("web_usr_bankaccount_institution_",0)!=-1){BankAccountInstitution_field=callObj.elements[f];}
			if(callObj.elements[f].name.indexOf("web_usr_bankaccount_validity_month_",0)!=-1){BankAccountValidityMonth_field=callObj.elements[f];}
			if(callObj.elements[f].name.indexOf("web_usr_bankaccount_validity_year_",0)!=-1){BankAccountValidityYear_field=callObj.elements[f];}
			if(BankAccountNumber_field && BankAccountCode_field && BankAccountInstitution_field && BankAccountValidityMonth_field && BankAccountValidityYear_field){
				allBankAccountFieldsFound=true;
				break;
			}
		}
		if(allBankAccountFieldsFound){
			if(chkNumber(BankAccountNumber_field,"Kontonummer","die")==false)return false;
			if(chkNumber(BankAccountCode_field,"Bankleitzahl","die")==false)return false;
			if(chkText(BankAccountInstitution_field,"Bank","die")==false)return false;
			if(chkNumber(BankAccountValidityMonth_field,"Monat des Ersten Einzugs","den")==false)return false;
			if(BankAccountValidityMonth_field.value < 1 || BankAccountValidityMonth_field.value >12){
				alert("Der Wert des Monats, des Ersten Einzuges liegt außerhalb des gültigen Bereiches!");
				BankAccountValidityMonth_field.focus();
				return false;
			}
			if(chkNumber(BankAccountValidityYear_field,"Jahr des Ersten Einzugs","das")==false)return false;
			var dateNow=new Date();
			if( (BankAccountValidityYear_field.value < dateNow.getFullYear()) || ( (BankAccountValidityYear_field.value==dateNow.getFullYear()) && BankAccountValidityMonth_field.value<dateNow.getMonth())){
				alert("Das Datum des Ersten Einzugs liegt in der Vergangenheit!");
				BankAccountValidityMonth_field.focus();
				return false;
			}
		}else{
			alert("Ein unbekannter Fehler ist aufgetretten!");
			return false;
		}
	}else if(whichPayment==2){
		/*nothing*/
	}else if(whichPayment==3){
		if(chkRadio(callObj.web_usr_creditcard_institution)==false){
			alert("Bitte wählen Sie Ihr Kreditkarten-Institut aus!")
			callObj.web_usr_creditcard_institution[0].focus();
			return false;
		}
		var CreditCardNumber_field=false;
		var CreditCardSecurityCode_field=false;
		var CreditCardOwner_field=false;
		var CreditCardValidityMonth_field=false;
		var CreditCardValidityYear_field=false;
		var allCreditCardFieldsFound = false;
		for(var f=0;f<callObj.elements.length;f++){
			if(callObj.elements[f].name.indexOf("web_usr_creditcard_number_",0)!=-1){CreditCardNumber_field=callObj.elements[f];}
			if(callObj.elements[f].name.indexOf("web_usr_creditcard_securitynumber_",0)!=-1){CreditCardSecurityCode_field=callObj.elements[f];}
			if(callObj.elements[f].name.indexOf("web_usr_creditcard_owner_",0)!=-1){CreditCardOwner_field=callObj.elements[f];}
			if(callObj.elements[f].name.indexOf("web_usr_creditcard_validity_month_",0)!=-1){CreditCardValidityMonth_field=callObj.elements[f];}
			if(callObj.elements[f].name.indexOf("web_usr_creditcard_validity_year_",0)!=-1){CreditCardValidityYear_field=callObj.elements[f];}
			if(CreditCardNumber_field && CreditCardSecurityCode_field && CreditCardOwner_field && CreditCardValidityMonth_field && CreditCardValidityYear_field){
				allCreditCardFieldsFound=true;
				break;
			}
		}
		if(allCreditCardFieldsFound){
			if(chkNumber(CreditCardNumber_field,"Kreditkartennummer","die")==false)return false;
			if(chkNumber(CreditCardSecurityCode_field,"CVC 2-Code","den")==false)return false;
			if(chkText(CreditCardOwner_field,"Kreditkarteninhaber","den")==false)return false;
			if(chkNumber(CreditCardValidityMonth_field,"Kreditkarten-Gültigkeitsmonat","den")==false)return false;
			if(CreditCardValidityMonth_field.value < 1 || CreditCardValidityMonth_field.value >12){
				alert("Der Wert des Kreditkarten-Gültigkeitsmonats liegt außerhalb des gültigen Bereiches!");
				CreditCardValidityMonth_field.focus();
				return false;
			}
			if(chkNumber(CreditCardValidityYear_field,"Kreditkarten-Gültigkeitsjahr","das")==false)return false;
			var dateNow=new Date();
			if( (CreditCardValidityYear_field.value < dateNow.getFullYear()) || ( (Number(CreditCardValidityYear_field.value)==dateNow.getFullYear()) && CreditCardValidityMonth_field.value<dateNow.getMonth())){
				alert("Die Gültigkeit Ihrer Kreditkarte ist abgelaufen!");
				CreditCardValidityMonth_field.focus();
				return false;
			}
		}else{
			alert("Ein unbekannter Fehler ist aufgetretten!");
			return false;
		}
	}
}
	
DD.validation.checkedPaymentOptionPart=false;
DD.validation.checkRegistrationPaymentOption=function(callObj,callPart){
	if(callObj.checked){
		if(this.checkedPaymentOptionPart){
			this.checkedPaymentOptionPart.style.display="none";
		}
		this.checkedPaymentOptionPart = $("dvRegPaymentOption_" + callPart);
		this.checkedPaymentOptionPart.style.display="block";
	}
}



function chkText(fname,ftext,stext){
	if (!fname.value){
		alert("Bitte geben Sie " + stext + " " +  ftext + " ein!");
		fname.focus();
		return false;
	}
}

function chkAlphanum(fname,ftext,stext){
	if (fname.value.length > 0){
		var x = fname.value;
		var filter  = /([a-zA-Z0-9])/;
		if (!filter.test(x)){
			alert("Das Feld " + ftext + " darf nur Zahlen und Buchstaben enthalten!");
			fname.focus();
			fname.select();
			return false;
		}
	} else {
		alert("Bitte geben Sie " + stext + " " + ftext + " ein!");
		fname.focus();
		return false;
	}
}

function chkRadio(fname){
	var retBoolSuccess=false;
	if(fname.length){
		for(var i=0;i<fname.length;i++){
			if(fname[i].checked){retBoolSuccess=true;break;}
		}
	}
	return retBoolSuccess;
}

function chkNumber(fname,ftext,stext){
	if (fname.value.length > 0){
		var x = fname.value;
		var filter  = /^([0-9]+)$/;
		if (!filter.test(x)){
			alert("Das Feld " + ftext + " darf nur Zahlen enthalten!");
			fname.focus();
			fname.select();
			return false;
		}
	} else {
		alert("Bitte geben Sie "+stext + " " +  ftext + " ein!");
		fname.focus();
		return false;
	}
}

function chkEmail(fname, ftext){
	if (fname.value.length > 0){
		var x = fname.value;
		var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
		if (!filter.test(x)){
			alert("Bitte geben Sie die korrekte " + ftext +" ein!");
			fname.focus();
			return false;
		}
	} else {
		alert("Bitte geben Sie Ihre " + ftext + " ein!");
		fname.focus();
		return false;
	}
}

function chkNewListValue(listField,newValueField,fieldIdentifier){
	if(eval(newValueField.value)){
		alert("Bitte geben Sie einen gültigen Wert in das Feld: \"" + fieldIdentifier + "\" ein!");
		listField.previousSibling.focus();
		listField.previousSibling.select();
		return false;
	}
}