function birthdayCheck(el){
    var rX = new RegExp(/^[0-9]{1,2}\.[0-9]{1,2}\.(200[0-9]|19[2-9][0-9])$/);
    if(el.value != "" && rX.test(el.value))
        return true;
    else {
        el.errors.push("Bitte geben Sie Ihr Geburtsdatum im richtigen Format ein.");
        return false;
    }
}
function berufsgruppeCheck(el) {
    if(el.value != "0" && el.value != "a") {
        return true;
    }
    else {
        el.errors.empty().push("Bitte w&auml;hlen Sie die Berufsgruppe aus.");
        return false;
    }
}
function plzCheck(el) {
    if(isNaN(el.value)){
        el.errors.empty().push("Die Postleitzahl darf nur Zahlen enthalten.");
        return false;
    }
    if(el.value.length != 5) {
        el.errors.empty().push("Bitte tragen Sie Ihre 5 stellige Postleitzahl ein.");
        return false;
    }
    return true;
}

function checkEmail(el){
    if(el.value == "") {
        el.errors.empty().push("Geben Sie bitte eine E-mail Adresse ein.");
        return false;
    }
    var rX = new RegExp(/^[\w-\.\']{1,}\@([\da-zA-Z-]{1,}\.){1,}[\da-zA-Z-]{2,}$/);
    if(!rX.test(el.value)) {
        el.errors.empty().push("Geben Sie bitte eine g&uuml;ltige E-mail ein.");
        return false;
    }
    return true;
}
function phoneCheck(el){
    var rX1 = new RegExp(/^\+?(([\s]?[\-\(\)\/,]?[\s]?)?[0-9]+){5,}[\s]?[\)]?$/);
    var rX2 = new RegExp(/^(123|0123|000)/);
    var rX3 = new RegExp(/(00000|12345)/);
    if(el.value != "" && rX1.test(el.value) && !rX2.test(el.value) && !rX3.test(el.value)) {
        return true;
    }
    else {
        el.errors.push("Bitte geben sie eine g&uuml;ltige Telefonnummer an.");
        return false;
    }
}

window.addEvent('domready', function() {
	
	var form = $('t4t').getElement('form[id^=tx_t4tproof');
	if(form) {
		var addValidateClasses = function(validate){
			for(key in validate) {
				el = form.getElement('input[name="'+key+'"]');
				if(!el) el = form.getElement('select[name="'+key+'"]');
				if(el) el.addClass(validate[key]);			
			}
		};	  
	
		addValidateClasses({
			   "tx_t4tproof_request_pers_vorname": "validate['required']",		   
			   "tx_t4tproof_request_pers_nachname": "validate['required']",		   
			   "tx_t4tproof_request_pers_anschrift_group[tx_t4tproof_request_pers_strasse]": "validate['required']",		   
			   "tx_t4tproof_request_pers_anschrift_group[tx_t4tproof_request_pers_hausnummer]": "validate['required']",
			   "tx_t4tproof_request_pers_plzwohnort_group[tx_t4tproof_request_pers_plz]": "validate['required','~plzCheck']",
			   "tx_t4tproof_request_pers_plzwohnort_group[tx_t4tproof_request_pers_wohnort]": "validate['required']",
			   "tx_t4tproof_request_pers_berufsgruppe": "validate['required','%berufsgruppeCheck']",
			   "tx_t4tproof_request_pers_geburtstag_group[tx_t4tproof_request_pers_geburtstag]": "validate['required','~birthdayCheck']",
			   "tx_t4tproof_request_pers_telefonnummer": "validate['required','~phoneCheck']",
			   "tx_t4tproof_request_pers_email": "validate['required','%checkEmail']",
			   "tx_t4tproof_request_other_datenschutz_group[tx_t4tproof_request_other_datenschutz]": "validate['required','checkbox']",		   
			   "tx_t4tproof_request_submit": "validate['submit']"	   
		});    
	
	
		var myCheck = new FormCheck(form, {
	        tipsClass: 'fc-tbx',
	        trimValue: true,
	        display: {
				addClassErrorToField: true,
	            scrollToFirst: false
	        },
	        alerts: {
		    	required: "Dieses Feld wird ben&ouml;tigt.",
		    	alpha: "In diesem Feld sind nur Buchstaben zul&auml;ssig.",
		    	alphanum: "In diesem Feld sind nur Zahlen zul&auml;ssig.",
		    	nodigit: "Eingabe von Nummern nicht m&ouml;glich.",
		    	digit: "Nur Eingabe von Zahlen m&ouml;glich.",
		    	digitmin: "Die kleinstm&ouml;gliche Zahl ist %0.",
		    	digitltd: "Der Wert muss zwischen %0 und %1 liegen",
		    	number: "Geben Sie bitte eine g&uuml;ltige Zahl ein.",
		    	email: "Geben Sie bitte eine g&uuml;ltige E-mail ein.",
		    	phone: "Geben Sie bitte eine g&uuml;ltige Telefonnummer ein.",
		    	url: "Geben Sie bitte eine g&uuml;ltige Internetadresse ein.",
		    	confirm: "Das Feld ist verschieden von %0.",
		    	differs: "Der Wert muss unterschiedlich zu %0 sein.",
		    	length_str: "Das Feld ist verschieden von %0.",
		    	length_fix: "Falsche Länge, es müssen exakt %0 Zeichen sein.",
		    	lengthmax: "Der Wert ist nicht korrekt, maximale Anzahl Charakter %0.",
		    	lengthmin: "Der Wert ist nicht korrekt, minimale Anzahl Charakter %0.",
		    	checkbox: "Bitte stimmen Sie den AGB und Datenschutz zu.",
		    	radios: "Bitte einen Wert ausw&auml;hlen.",
		    	select: "Bitte einen Wert ausw&auml;hlen."
	        }
	    });
		
            //Preload Tipbox
            var fdeImgHost = (("https:" == document.location.protocol) ? "https://cdn." : "http://icdn.");
            images = [
                fdeImgHost + 'finanzen.de/sites/finanzende/images/rechner/tooltip/tl.png',
                fdeImgHost + 'finanzen.de/sites/finanzende/images/rechner/tooltip/t.png',
                fdeImgHost + 'finanzen.de/sites/finanzende/images/rechner/tooltip/tr.png',
                fdeImgHost + 'finanzen.de/sites/finanzende/images/rechner/tooltip/l.png',
                fdeImgHost + 'finanzen.de/sites/finanzende/images/rechner/tooltip/r.png',
                fdeImgHost + 'finanzen.de/sites/finanzende/images/rechner/tooltip/bl.png',
                fdeImgHost + 'finanzen.de/sites/finanzende/images/rechner/tooltip/br.png',
                fdeImgHost + 'finanzen.de/sites/finanzende/images/rechner/tooltip/b.png',
                fdeImgHost + 'finanzen.de/sites/finanzende/images/rechner/tooltip/c.png',
                fdeImgHost + 'finanzen.de/sites/finanzende/images/rechner/tooltip/close.png',
            ];
            var proofImages = new Asset.images(images);
	}
	
});